Первый информационно-развлекательный портал о новостях индустрии компьютерной графики, визуальных эффектов и 3D анимации.

Скелетная анимация, прямая и инверсная кинематика

Автор: Юрий Ильин
27.07.2009

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

Никто, однако, не считает зазорным изучать анимацию годами, натыкаясь на каждом углу на справедливость поговорки «Век живи — век учись».

Если в общем, то скелетная анимация — это анимирование 3D-фигуры посредством относительно небольшого количества управляющих элементов, и внешне и по принципу работы, напоминающие скелет — или строение марионетки.

Как он «изготавливается», мы рассматривали в статье «Риггинг». От того, насколько разумно и правильно риггинг был выполнен, зависит и результаты первых попыток анимировать что-либо. Если иерархия костей сделана как надо, то и поведение цепочки, равно как и привязанных к ней вершин, будет «жизнеподобным». Ошибки же могут привести к совершенно нелепым последствиям: ноги могут «уехать» за голову, например.

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

Существуют два основных типа планирования движения «скелета» — это прямая кинематика (Forward Kinematics - FK) и инверсная, или обратная кинематика (Inverse Kinematics — IK). Их также выбирают на этапе риггинга, — впрочем, этот процесс от скелетной анимации вообще неотделим.

Итак: создадим отдельно взятую цепочку «костей» — без добавления мяса пока что. Все операции осуществляются в пакете Blender3D, скриншоты, стало быть, тоже оттуда.




Видим четыре кости, где первая - «родительская», все последующие — находятся в последовательной иерархической зависимости от предыдущих.

В случае если мы используем прямую кинематику, то при попытке сдвинуть какие-либо звенья (кости) ниже уровнем, чем родительская, приведут к тому, что двигаться будут только нижестоящие:



Повернули кость 2, вместе с ней повернулись (но остались на одной прямой) кости 3 и 4.

Это прямая кинематика: перемещение старших по иерархии костей приводят к тому, что перемещаются и младшие.

При использовании обратной кинематики алгоритм получается ровно противоположный:




Задав режим автоматического выбора инверсной кинематики (Blender делает вид, что подбирает оптимальный вариант, и иногда вполне успешно), сдвигаем самую младшую в иерархии кость 4; вся цепочка послушно изогнулась.

Звено цепочки, изменение положения которого приводит к изменению положения других звеньев, называется effector (существует диковинный перевод «влиятель», но как на самом деле это слово переводить?..).



Подвигали кость 3. Звенья 1-2 поменяли своё положение, а 4 — осталось на одной прямой со звеном 3. Кость 3 теперь является effector'ом, и всё, что находится ниже его по иерархии подчиняется алгоритмам прямой кинематики.

Инверсная кинематика применяется главным образом там, где требуется точное расположение конечного звена в нужной точке (например, чтобы при ходьбе ноги персонажа не «проскальзывали» по поверхности или не утопали в полигонах, изображающих твердь земную).

Самое же важное — это грамотная расстановка ограничителей (constraints) для подвижных элементов на этапе риггинга. Конечности модели персонажа должны вести себя «в разумных антропоморфических пределах», например, чтобы колени не прогибались не в ту сторону или пальцы рук не заворачивались за запястье.

Далее начинается процесс автоматизации движений — тут всё делается так же, как и при обычной анимации. Задаются ключевые кадры для отдельных управляющих элементов, и они тащат за собой все остальные. При этом анимационные пакеты вполне могут регистрировать ключевые положения только для индивидуальных костей, для всех звеньев разом или для отдельных их групп. При этом генерируются кривые движения/вращения/масштаба для каждого элемента, участвующего в анимации. Современные пакеты, разумеется, предоставляют в избытке средства, позволяющие экономить на усилиях — например, «глобализовать» управление сразу множеством элементов, группируя их более-менее удобным способом. На скриншоте ниже представлено всё рабочее окно Blender с активированными Action Editor и Timeline Editor.

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

Ну, и напоследок, добавим, что если целью стоит сделать не «реалистичную» анимацию, а стилизацию под анимацию рисованную, то необходимо иметь в виду пресловутые 12 принципов, заложенные диснеевскими аниматорами.

С прискорбием придётся констатировать, что глубокое понимание того, как работать с анимацией в общеми и прямой и обратной кинематикой в частности, можно получить лишь по изучению мануалов (а в руководстве к Blender3D соответствующие разделы занимают более полутора сотен страниц) — и долгих экспериментов.

Компания Disney представила первй трейлер классического мультфильма "Красавица и чудовище", ...
Поклонники Зака Снайдера замерли в ожидании... 3D мультфильма «Ночные стражи», который готовит ...
Боб Уайтхилл, 3D супервайзер компании Pixar, сообщил о намерении студии конвертировать мультфильм ...
Анимационный фильм "История игрушек 3: Большой побег" студии Pixar получил самые тёплые отзывы ...
Студия «Дисней» предложила публике новые концепт-арты анимационного фильма «Рапунцель» - CG ...
29.12.2009
Когда в прошлом году назрел Кризис, архвизную и рекламную ...
10.11.2009
В работах Алекса Романа особое внимание уделено деталям ...
27.10.2009
Руководители iCube Илья Варламов и Константин Абатуров ...
20.10.2009
Google по своему трактовала самую популярную уловку ...
11.09.2009
Компания EON Reality внедряет трёхмерные наглядные ...
Спецэффекты: докомпьютерная эпоха

Эволюция визуальных и механических эффектов в кино

Это был крайне малобюджетный фильм, который сняли за 32 дня. В нем было примерно 80 планов со спецэффектами и все они создавались прямо на съемочной площадке.
Мы продолжаем рассказ о том, как снималась знаменитая лента Стэнли Кубрика "Космическая одиссея". Как люди конца 70-х видели наше время и как без помощи компьютера создать один из самых масштабных фантастических фильмов в истории кино.
Фильм «2001 год: Космическая одиссея» вышел на экраны в 1968 году, а работа над фильмом началась на несколько лет раньше. В 1965 году, конечно, никто не знал, как будут выглядеть космические корабли в начале следующего тысячелетия.