Для более рационального манипулирования персонажем существует специальный инструментарий. Прежде всего нужно ограничить неестественные степени свободы суставов и выбрать пределы изменения углов между костями, теперь уже нашего героя будет не так просто поставить в неестественную позу, а количество параметров для управления заметно сократилось. Но управление все равно не оптимально. В большинстве пакетов трехмерной графики для управления персонажами предусмотрена как прямая кинематика (управление путем изменения взаимного расположения костей), так и инверсная (ИК). При использовании ИК для управления рукой можно перемещать кисть в пространстве, а локоть сам займет наиболее естественное положение. Такой способ зачастую бывает намного удобнее предыдущего, но не всегда. Например, для анимации расслабленной походки, когда рука просто качается, лучше подходит первый способ, ведь это всего лишь циклическое изменение одного параметра (угла поворота руки относительно плеча), а в случае ИК – это движение кисти по нелинейной траектории.
И для имитации работы мышц существует насколько способов. В скелет могут быть добавлены особые кости, которые, поворачиваясь и изменяя длину, имитируют увеличения объема и «перетекание» кожи по суставам. А можно под кожей разместить специальное тело, обычно это эллипсоид, который подобно костям будет деформировать кожу. И когда надо, менять размер этого тела. Этот способ позволяет более тонко передать работу мышцы, но более требователен к ресурсам машины, так как, по существу, каждая вершина деформирующего тела – это отдельная кость.
Если для создания инверсной кинематики обычно достаточно пары кликов мышкой, то для того, чтобы сделать мышцу, придется программировать. Большинство солидных 3D-пакетов включают в себя язык для написания встроенных программ. Вот и в этом случае поведение мышцы зависит не только от расположения костей, но и от скорости их взаимного движения. Ведь при одном и том же положении локтевого сустава бицепс будет находиться в совершенно разных состояниях в зависимости от того, сгибается рука или разгибается.
Если мы присмотримся, например, к бегущей собаке, то увидим, что некоторые части ее тела колеблются в такт прыжкам. Это, конечно, можно сделать аналогично мышцам, написав соответственный код. Но можно воспользоваться возможностью 3D-пакетов рассчитывать динамику упругих тел. Многие физические процессы можно моделировать встроенными средствами программ для моделирования. И так «подвесив» в нужном месте деформирующее тело на специальные пружины и настроив необходимые динамические параметры, мы получим желаемый результат. Существенно повысить реалистичность можно, если применить аналогичный метод ко всем крупным мышцам существа.
Посмотрите на свою руку: видите морщины, появляющиеся на ней, когда вы сгибаете локоть? Нашему персонажу такие морщины тоже нужны. Для их имитации строятся специальные кривые, которые, в отличие от костей, продавливают кожу. И после размещения в нужном месте «привязываются» к скелету.
Теперь тело персонажа практически готово. Но лицо, ну или морда, что у него там есть, остается неподвижным. А если в фильме будут крупные планы? Для создания мимики существует несколько принципиально разных подходов. Естественный – для мимики используется имитация лицевых мышц. Они, как ни удивительно, делаются из тех же костей, что и скелет, но работают, как настоящие мышцы, – изменяя длину, двигают ткани лица. Этот метод дает практически полную свободу в создании различных выражений лица, но достаточно сложен в управлении, ведь лицевых мышц может быть очень много.
Более простой в управлении метод основан на плавной модификации трехмерных объектов. Сначала лицо персонажа дублируется в нескольких экземплярах, обычно не более пяти. Каждый из дублей модифицируется таким образом, что выражает крайнюю степень той или иной эмоции: радости, гнева, страха.… После чего специальный инструмент позволяет «смешивать» в разных пропорциях эти лица. Теперь при помощи пяти ползунков можно управлять мимикой персонажа. Более того, таким же образом можно создать и эффект плавной трансформации, всего лишь сделав пару из новых лиц, сильно не похожих друг на друга.