Инверсионная кинематика
Чтобы освоить инверсную кинематику (Inverse Kinematics – IK), необходимо разобраться, что представляет собой прямая кинематика (Forward Kinematics – FK). В действительности все не так сложно. Прямая кинематика – это то, чем вы занимались до сих пор, перемещая объекты и создавая опорные кадры.
По сути, инверсная кинематика – это один из вариантов нацеливания. По принципу инверсной кинематики создается анимация целевого объекта, в которой конец связанной цепочки (посредством связи типа "родитель-ребенок") всегда нацелен на него. Помните, ранее в этой главе была рассмотрена камера, направленная на нулевой объект? При перемещении объекта камера поворачивалась вслед за ним.
Подобным образом действует и инверсная кинематика. Только вместо одного элемента на объект нацелена целая цепь связанных элементов. Настоящая инверсная кинематика начинается в тот момент, когда конец такой связки уже не может оставаться направленным на целевой объект, и остальные элементы цепочки начинают изменять свое положение, чтобы нацеливание вновь стало возможным.
Легче всего проиллюстрировать IK на каком-либо несложном примере. Возьмите карандаш и поднесите его к лицу. Теперь представьте, что карандаш – это целевой объект. Восстановите последовательность выполненных действий. Так, вы совершали движения рукой, чтобы поднести карандаш к лицу, при этом работали кисть, запястье и локоть. Все кости руки действовали подобно элементам, связанным в одну цепочку. Это и есть инверсная кинематика.
Создание цепочки инверсной кинематики
- Из выпадающего меню View (Вид), расположенного в верхнем левом углу окна проекции, выберите пункт Right (ZY).
- Чтобы получить доступ к новым инструментам, щелкните по кнопке Items.
- Из выпадающего меню Add, расположенного на панели инструментов, вы берите пункты Object › Add Null (Объект › Добавить нулевой объект). В появившемся диалоговом окне введите его имя – IK-Chain.
- Чтобы добавить в нулевой объект кость, из выпадающего меню Add (Добавить) выберите пункты Bones › Add Bone (Кости › Добавить кость) или нажмите клавишу = (Равно).
- В появившемся диалоговом окне введите имя созданной кости (например, Upper-Arm) и нажмите клавишу Enter.
- Чтобы добавить еще одну кость, нажмите клавишу = (Равно). Присвойте ей имя Lower-Arm.
- Снова нажмите клавишу = (Равно). Эту кость назовите Hand. В результате должна получиться цепочка костей, изображенная на рис. 10.56.
Рис. 10.56. На рисунке изображена простая цепочка связанных элементов - Выполните шаг 3, но назовите объект Arm-Goal.
- На панели инструментов щелкните по кнопке Move (Переместить) или нажмите клавишу Т. Переместите объект Arm-Goal в точку с координатой 4 т, расположенную на оси Z. Он будет находиться в конце цепочки (рис. 10.57).
- Выделите объект Hand, щелкнув по нему в окне проекции (рис. 10.58).
Рис. 10.57. Создайте целевой объект и поместите его в конце цепочки
Рис. 10.58. Целевой объект завершает цепочку