Скелет представляет собой иерархическую цепочку. Создаваемые кости сразу связываются друг с другом соотношением «предок — потомок», при этом наверху оказывается корневой сустав (root joint), который становится предком для всех ниже расположенных костей. В качестве примера рассмотрим ногу (рис. 9.1). Корневым является бедренный сустав. Коленный сустав является по отношению к нему потомком, в свою очередь являясь предком расположенного ниже голеностопного сустава. В самом низу иерархической цепочки находятся пять суставов, управляющих сгибанием пальцев ноги.
Рис. 9.1. Иерархическая цепочка костей, формирующих ногу
Скелет позволяет немедленно получить пригодную для анимации иерархическую цепочку, которая повторяет форму геометрической оболочки. Соответственно, в процессе соединения скелета с оболочкой деформировать последнюю не требуется. Оболочка становится дочерним объектом по отношению к системе костей, то есть ее преобразования повторяют преобразования элементов скелета. Скелет представляет собой всего лишь набор сгруппированных и корректно размещенных опорных точек, называемых суставами (joints). Именно с их помощью осуществляется перемещение, а в некоторых случаях и деформация геометрической оболочки. Кости (bones) всего лишь задают расстояние между двумя суставами. Кроме того, они делают систему более наглядной.
Для анимации системы костей используются методы прямой и обратной кинематики. В первом случае нужная поза придается поворотом самого старшего в иерархической цепочке сустава. Этот метод применялся при создании покадровой анимации, в которой положение кукол менялось и фиксировалось в каждом кадре. Изменение положения куклы достигалось непосредственным поворотом суставов (рис. 9.2).
Рис. 9.2. Анимация по методу прямой кинематики осуществляется непосредственным поворотом суставов
Поворот сустава влияет на положение всех дочерних по отношению к нему членов иерархической цепочки. Поворот бедренного сустава вверх заставит колено и голеностопный сустав совершить такое движение, как будто нога бьет по мячу. Поворот коленного сустава вниз заставит лодыжку повернуться так, как будто человек садится. Такая форма реакции на преобразования свойственна обычной иерархической цепочке. Именно поэтому данный метод называется методом прямой кинематики (forward kinematics).
В методе обратной кинематики (inverse kinematics (IK)) движением управляет сложная система присоединенных к конечным суставам цепочек IK-манипуляторов (IK-handles). Основа IK-системы присоединяется к суставу, который выбран корневым для данного IK-сегмента. Это может быть произвольный сустав иерархической цепочки.
Кости и суставы в методе обратной кинематики двигаются только под действием IK-манипуляторов. При этом IK-решатель определяет, как повернуть суставы цепочки, чтобы они соответствовали изменившемуся положению манипулятора. Поворот суставов, в свою очередь, приводит к изменению положения костей.
Представьте, что кто-то взял кисть вашей руки и перемещает ее. Этот кто-то, держащий вас за руку, является аналогом IK-манипулятора. Перемещение кисти заставляет остальные кости руки поворачиваться в плечевом и локтевом суставах, а также в области запястья. Анимация начинается с самого младшего члена иерархии (рис. 9.3). Именно поэтому данный метод называется методом обратной кинематики.
Рис. 9.3. При анимации системы костей по методу обратной кинематики суставы вращаются в ответ на перемещение ИК-манипулятора