Инверсная кинематика

Инверсная кинематика

Инверсная кинематика (инверсная кинематическая анимация, англ. inverse kinematics, IK) — процесс определения параметров связанных гибких объектов (например, кинематическая пара или кинематическая цепь) для достижения необходимой позиции, ориентации и расположения этих объектов. Инверсная кинематика является типом планирования движения (англ.). Инверсная кинематика активно используется в робототехнике, трёхмерной компьютерной анимации и в разработке компьютерных игр. Она используется в основном в тех ситуациях, когда необходимо точное позиционирование гибких сочленений одного объекта относительно других объектов окружающей среды. Алгоритм инверсной кинематики противоположен алгоритму прямой кинематики.

Содержание

Описание

Инверсная кинематика, как и прямая, применяются к моделям каких-либо персонажей или объектов, которые созданы с использованием скелетной анимации. Суть скелетной анимации состоит в том, что объект состоит из набора твёрдых сегментов (компонентов), соединённых сочленениями (англ. joint). При этом сегменты могут объединяться в кинематические пары, которые в свою очередь объединяются в кинематические цепи. Данные сегменты образуют иерархические цепочки, которые имеют «верхний» и «нижний» уровень. Сегменты (компоненты) верхних уровней называются компонентами-предками (или родительскими сегментами), а компоненты нижних — компонентами-потомками (или дочерними сегментами). Например, если рассмотреть руку человека, то плечевой сустав будет самым верхним уровнем, а кончик пальца — самым нижним, т. е. компонентом-потомком к плечевому суставу. Локтевой сустав находится внутри цепочки, он будет иметь как родительские (плечо), так и дочерние (запястье, пальцы) сегменты.[1]

Основным отличием прямой кинематики от инверсной кинематики является то, что при прямой любое воздействие передается по иерархической цепочке сверху вниз. Например, при движении тазобедренного сустава двигаются все потомки, т. е. коленный сустав и все остальные. Инверсная кинематика использует принцип, диаметрально противоположный принципу прямой — перемещение компонентов-потомков приводит к изменению положения компонентов-предков, то есть алгоритм рассчитывает положение и ориентацию компонентов-предков, исходя из положения и ориентации компонентов-потомков.[1]

В инверсной кинематике дочерний сегмент (компонент-потомок), который вызывает изменение положения и ориентацию других объектов и расположен в середине отдельной иерархической цепочке сегментов, называется эффектором (англ. effector)[1]. Если эффектор является конечным объектом данной иерархической цепочки, то он называется конечным эффектором (англ. end effector). Именно через эффектор осуществляется манипулирование всей иерархической цепочкой. Изменение положения и/или ориентации конечного эффектора приводит к изменению положения и/или ориентации всех сегментов иерархической цепочки по законам инверсной кинематики. Изменение положения и/или ориентации простого (не конечного) эффектора приводит к тому, что положение объектов, стоящих по иерархии ниже его, меняется по законам прямой кинематики, а объектов с более высокой иерархией — по законам инверсной кинематики.

Ключом к успешной реализации инверсной кинематики является анимация в пределах ограничений (англ. constraints): конечности модели персонажа должны вести себя в разумных антропоморфических пределах. Точно такая же ситуация и с робототехническими устройствами, которые имеют физические ограничения, такие как среда, в которой они работают, ограничения движения их суставов и ограниченные физические нагрузки и скорости, с которыми они в состоянии работать.[1]

Использование и примеры

Инверсная кинематика является инструментом, который часто используют художники трёхмерной графики. Для художника проще выразить желаемое пространственное действие, чем непосредственно манипулировать углами сочленений. Например, инверсная кинематика позволяет художнику двигать рукой модели трёхмерного гуманоидного персонажа к желаемой позиции и ориентации. При этом сам алгоритм, а не художник, выбирает правильные углы запястья, локтя и плечевого сустава.

Например, если человек хочет схватить дверную ручку рукой, то его мозг должен сделать необходимые вычисления для правильного позиционирования руки и туловища человека. Основная цель состоит в том, чтобы двигать рукой, но нужно задействовать много сложных суставов с несколькими сочленениями, чтобы добраться рукой к желаемому объекту. Подобным образом происходит процесс в технологических приложениях — чтобы достичь желаемой цели, должны быть выполнены математические вычисления инверсной кинематики для расположения конечностей правильным образом. Примером, когда вычисления инверсной кинематики часто необходимы, является робототехника. Например, оператор робота хочет поместить какой-либо объект с помощью манипулятора, однако, естественно, он не хочет управлять каждым сочленением манипулятора отдельно.

Другими приложениями, где используется инверсная кинематика, являются приложения компьютерной графики и анимации. Например, аниматоры хотят управлять моделью гуманоидного персонажа, анимация которого генерируется компьютером, однако очень трудно анимировать индивидуальные сочленения. Решение состоит в том, чтобы смоделировать виртуальные сочленения «марионеточной куклы» и позволить аниматору двигать руками, ногами и туловищем куклы, а компьютер с использованием инверсной кинематики автоматически сгенерирует необходимые позиции конечностей для достижения результата.

Инверсная кинематика часто используется в компьютерных играх для создания анимации гуманоидных персонажей. В основном инверсная кинематика используется для создания анимации ног моделей человекоподобного существа или человека. Например, довольно просто создать анимацию передвижения (ходьба, бег) человека или наземного животного, если он движется по ровной плоскости. Однако если ландшафт неровный (бугристый, ухабистый, пересечённая или горная местность), то создание точной анимации ходьбы является фактически невозможной задачей. Анимация ног не будет соответствовать рельефу поверхности, что проявится в таких эффектах, как проскальзывание ног по поверхности и неточном позиционировании ног относительно её (ступня будет «утопать» в поверхность или «не доставать» до неё). Именно для качественного и эффективного решения этих проблем используется инверсная кинематика.[1]

К другим приложениям, которые используют инверсную кинематику, относятся интерактивная манипуляция, управление анимацией и избежание столкновений.

Примечания

  1. 1 2 3 4 5 Юрий Ильин Скелетная анимация, прямая и инверсная кинематика. Mir3D.ru (27 июля 2009 года). Архивировано из первоисточника 13 августа 2011. Проверено 7 декабря 2009.

Внешние ссылки

Англоязычные источники
Русскоязычные источники

Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Полезное


Смотреть что такое "Инверсная кинематика" в других словарях:

  • Кинематика (значения) — Кинематика  совокупность дисциплин, изучающая математическое описание движения. Кинематика в физике  раздел механики, изучающий математическое описание движения идеализированных объектов: Кинематика точки; Кинематика твёрдого тела;… …   Википедия

  • Asura (игровой движок) — Asura Игровой движок (Список) Разработчик …   Википедия

  • Earth 2160 — Разработчик Reality Pump Studios Издатель Eidos Interactive Steam Акелла Локализатор …   Википедия

  • Blender — У этого термина существуют и другие значения, см. Blender (журнал) …   Википедия

  • Риг — Для улучшения этой статьи желательно?: Найти и оформить в виде сносок ссылки на авторитетные источники, подтверждающие написанное. Добавить иллюстрации. Риг …   Википедия

  • CryEngine — Игровой движок (Список) Разработчик …   Википедия

  • Физика Ragdoll — Ранний пример использования физики Ragdoll, 1997 год. Физика Ragdoll (рэгдолл) вид процедурной анимации, пришедший на замену статичной, пререндеренной анимации. Название произошло от английских слов rag (русск. тряпка) и doll (русск. кукла), в… …   Википедия

  • Lightwave 3D — NewTek LightWave 3D Тип Редактор трёхмерной графики Разработчик NewTek ОС Amiga, Microsoft Windows, Mac OS X Версия 9.6 (21 января 2009) Ли …   Википедия

  • S.T.A.L.K.E.R.: Чистое небо — Эта статья или раздел нуждается в переработке. Пожалуйста, улучшите статью в соответствии с правилами написания статей …   Википедия

  • S.T.A.L.K.E.R.: Clear Sky — S.T.A.L.K.E.R.: Чистое небо Разработчик GSC Game World Издатели …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»