Хитрости Cinema4D. Скелетная анимация

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

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

Начало работы

Предполагается, что с интерфейсом постоянные читатели уже знакомы (кстати, для самых начинающих скоро будет отдельная интересная серия). В разделе 3D-примитивов есть один интересный, который называется Human Figure. На самом деле, это обычная «болванка». Выбираем и ставим ее в рабочую область. Как это делать, думаю, понятно.
Теперь давайте представим, как мы будем строить скелет. Конечно, в идеале он должен повторять человеческий. Заходим в анатомический справочник человека, узнаем, сколько у человека костей, начинаем… Не пугайтесь, это я шучу:))).

Работаем с примитивом Human Figure — создаем скелет для левой руки

В принципе, пойдем по пути Цезаря, из серии «Разделяй и властвуй». То есть нам понадобится в простейшем варианте:
. Кости для левой ноги (сверху вниз от таза: родительская до колена, дочерняя — от колена до ступни, дочерняя дочерней — ступня).
. Кости для правой ноги (сверху вниз от таза: родительская до колена, дочерняя — от колена до ступни, дочерняя дочерней — ступня).
. Кости для левой руки (слева направо от плеча: родительская до локтя, дочерняя — от локтя до кисти, дочерняя дочерней — кисть).
. Кости для правой руки (справа налево от плеча: родительская до локтя, дочерняя — от локтя до кисти, дочерняя дочерней — кисть).
. Кости для торса и головы (сверху вниз до таза, тоже три).

Как устанавливать кости, формировать от них дочерние, мы рассматривали… Хотя лучше повторить.

Итак, в модификаторах-деформаторах находим Bone Deformation. Включаем ее в проект, в результате в красном контейнере появилась первая кость. Давайте сделаем вариант для левой руки. Причем наш примитив в виде Human Figure выгоден тем, что все ключевые суставы отображены в виде сфер. И, кстати, потом мы сможем проверять и ошибки.
Кость мы установили, она направлена по оси Z от зрителя. С помощью инструмента вращения поворачиваем ее на -90 градусов по горизонтальной оси, переносим на руку. Подгоняем нужные размеры — эта кость простирается от плечевого сустава до локтя. Потом, удерживая Ctrl, из оранжевой точки (вершины) этой кости вытягиваем дочернюю. Подгоняем размеры, а из нее — еще одну дочернюю.

Скелет готов

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

Скелет готов, теперь нам нужно поместить его внутрь модели фактически, то есть производим закрепление скелета. В менеджере объектов объединяем все кости, удерживая нажатой клавишу Shift, после чего указателем мыши переносим все это выделение внутрь нашей Human Model. Как вы можете заметить, возле каждой кости стоит красный крестик, это значит, что кость не зафиксирована. Поэтому дальнейшими действиями станут подключения каждой кости (контекстное меню — Fix Bones). При подключении красные крестики заменяются на зеленые птички.

Используем Zygote Man. Внимание: скелет можно изначально подготовить и проверить на базе Human Figure, предварительно подогнав ее размеры под Zygote Man

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

Все отрегулировали — молодцы! Верните кости в первоначальное положение, сгруппируйте их в единый объект (Alt+G), назовите его «Skeleton», сохраните проект.

Внедряем скелет

Работа с реальной моделью

В окне менеджера объектов есть закладка Contents, в которой находятся модели и примеры, поставляемые с программой Cinema4D. Из версии в версию постоянной является закладка Humans, в которой представлено несколько готовых моделей людей. Из них мы выберем вариант Zygote Man. В результате он появился в рабочей области просмотра.
Переходим к менеджеру объектов и смотрим на структуру. Она очень сложна и подразумевает разбитие на множество элементов. Мы можем двигаться тремя путями. Использовать уже готовый скелет из прошлого примера (1), создать новый таким же образом (2), не использовать скелет, а просто менять углы поворота каждой структурной части Zygote Man (3). Лучшими вариантами являются 1 и 2.

Проверяем движения

Важное замечание!!! Кости прикрепляются как подобъекты, то есть дочерние к основному. При этом существует иерархия. Например, если вы просто поместите группу Skeleton из прошлого примера внутрь Zygote Man и «подключите кости», ничего не произойдет. Потому как кости будут ассоциироваться со Skeleton, а не с Zygote Man. Исправление ситуации — перенос каждой кости из группы в объект напрямую.

Общая тема

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

Небольшая сцена. Скелеты можно копировать и внедрять в другие модели (главное — соблюдение пропорций)

Задание на самостоятельную проработку

Как делать обычную скелетную анимацию, мы рассмотрели в прошлом материале. На базе трех моделей Zygote Man, Zygote Woman и Zygote Child сделайте анимацию: мужчина идет, женщина танцует, мальчик играет в мяч. Это не так сложно, как сразу может показаться.

Кристофер christopher@tut.by


Компьютерная газета. Статья была опубликована в номере 04 за 2010 год в рубрике soft

©1997-2022 Компьютерная газета