В нашем примере антенны или щупальца персонажа-инопланетянина должны динамически и эластично двигаться при каждом движении головы. Конечно же, наш пример также можно применить к прядям волос, хвостам динозавров и многому другому.
В рабочем файле "PSD_C4D_R12_IK_Dyn_Start.c4d" вы найдете смоделированную и текстурированную голову инопланетянина для совместной работы.
Структура суставного каркаса
Наша голова инопланетянина состоит из полигональной геометрии головы и двух сферических объектов для глаз. Далее мы связываем все объекты иерархически или через веса с суставами, чтобы целая голова вместе с щупальцами могла легко анимироваться.
Давайте начнем с создания структуры суставного каркаса с первым объектом сустава для головы. Вы можете найти его в меню Персонаж.
Так как голова инопланетянина находится прямо в начале координатной системы, сустав головы может оставаться на нулевой позиции.
Мы сразу же выделяем только что созданный объект сустава и активируем инструмент сустава в меню Персонаж. В диалоговом окне настроек инструмента сустава отключаем создание родительского объекта Root Null. Мы позже сами создадим его, чтобы лучше понять, какую функцию он выполняет в суставном каркасе.
Чтобы работать симметрично, раскрываем раздел Симметрия и используем опцию Рисовать на плоскости YZ мира. На этой плоскости, соответственно, в этом виде, мы будем рисовать суставы.
Если мы сейчас с активированным инструментом сустава и зажатой клавишей Ctrl или Cmd кликнем в вид, нам будут автоматически и симметрично созданы суставы, подчиненные суставу головы.
Мы выбираем одно из двух щупалец и устанавливаем первый сустав прямо у основания щупальца к голове. Сустав для другого щупальца устанавливается CINEMA 4D автоматически благодаря активированной симметрии.
Далее мы поочередно создаем цепь суставов, щелкая с удерживаемой клавишей Ctrl или Cmd на показанных на рисунке позициях. Там, где нужна более детальная структура, суставы должны находиться ближе друг к другу. Мы не должны экономить на суставах, потому что только в этих местах суставов вообще может происходить деформация или изгиб геометрии.
После создания всех суставов мы увидим в Объект-менеджере суставную иерархию, показанную на рисунке. Объект сустава головы имеет в общей сложности две цепочки суставов в качестве дочерних объектов - одна цепочка для каждого щупальца.
Чтобы симметрично корректировать позицию суставов также в виде сбоку, выбираем по паре суставов в Объект-менеджере и перемещаем суставы вдоль их ось Z в геометрию.
Таким образом, суставной каркас для анимации щупалец или антенн уже готов. К сожалению, он пока не имеет связи с нашей головой инопланетянина, что позволило бы нам анимировать голову.
Это возможно только после того, как мы соединим иерархию суставов с геометрией. Для этого мы сначала выбираем через Объект-менеджер все объекты суставов и полигональный объект геометрии инопланетянина.
Соединение иерархии суставов с полигональной сеткой для нас выполняет команда Привязка из меню Персонаж>Команды.
Что сделала команда Привязка-Befehl теперь? Полигональный объект геометрии инопланетянина теперь имеет тег веса, в диалоговом окне настроек которого собраны все объекты суставов, способные влиять на геометрию головы инопланетянина. Эта автоматическая весовая функция зависит от позиции суставов относительно геометрии и является хорошей отправной точкой.
Вес суставов
Однако эта весовая функция далеко не идеальна в большинстве случаев; поэтому требуется некоторая доработка. Чтобы получить представление о текущих весах, сначала отключаем функцию кейджа HyperNURBS через Объект-менеджер. Инструмент веса показывает веса на геометрии, когда полигональная сетка не сглажена. Для полного обзора сначала выбираем все объекты суставов с геометрией в Объект-менеджере.
Инструмент Весовая кисть находится в меню Символы. После его активации геометрия головы приобретает цвет. Каждый Сустав имеет свой цвет, показывающий его влияние на геометрию.
Чтобы оценить суставы и их влияние на геометрию поотдельности, нам просто нужно выделить соответствующий сустав в Области объектов. Все области геометрии, которые не обхватываются этим суставом, остаются черными.
На суставе головы заметно, что кончик носа не находится целиком в цвете сустава. С помощью инструмента Весовая кисть мы можем предотвратить возможные отклонения деформации, увеличив вес для сустава целенаправленно с помощью Кисти весов.
Также в области переходов к усам и антеннам наблюдается слишком сильное влияние на геометрию головы. Чтобы уменьшить смежные веса, мы используем инструмент Весовая кисть, удерживая клавишу Ctrl.
Для завершения работы с весами рекомендуется еще раз выделить все суставы через Область объектов, установить отображение цвета веса на Однотонный и проверить, имеет ли вся геометрия вес. Как показано на изображении, вся геометрия головы окрашена в белый цвет, что говорит о том, что все участки геометрии имеют веса.
Исключены из весов сферические объекты глаз. Чтобы эти объекты также двигались вместе с головой при ее повороте или передвижении, мы просто присваиваем их к суставу головы в Области объектов. Когда сустав головы поворачивается, например, глаза следуют за его ориентацией из-за своего подчинения этому суставу.
Теперь самое время проверить структуру суставов и содержащиеся в ней веса на практике. Мы выделяем сустав головы и вращаем его с помощью инструмента Поворот вдоль оси y. При этом весь головной участок при движении сустава головы должен без проблем перемещаться.
Интеграция обратной кинематики с динамикой
После того как суставы действуют на соответствующие области головы нужным образом, мы можем приступить к анимации усов и антенн через Обратную кинематику (IK). Для этого нам нужно определить две цепи суставов для усов и антенн в качестве IK-цепи.
Для этого мы выделяем эти две цепи суставов в Области объектов - обратите внимание, что сустав головы остается за пределами этого!
Здесь также CINEMA 4D предлагает специальную команду под названием Cоздать IK-цепь, которая автоматически преобразует выбранные цепи суставов в IK-цепи. Мы находим ее в меню Символы>Команды.
Мы применяем команду Создать IK-цепь и проверяем, что произошло с нашей цепью суставов. Оба сустава в области у основания головы получили по одному IK-тегу. А в этом теге автоматически были указаны начало и конец IK-цепи.
Кроме того, мы находим два новых нулевых объекта в качестве Целей в Области объектов. Эти два цели названы аналогично концам цепи суставов и позволяют нам анимировать всю IK-цепь через эти простые управляющие цели.
Хотя мы фактически хотим автоматически управлять движениями усов и антенн через динамические свойства. Сохранение этих двух целей нам вреда не принесет, так как усы и антенны снова выравниваются по этим целям после каждого движения и деформации, автоматически подстраиваясь.
Взглянем на параметры IK-тегов, которые определяют концы или цели IK-цепи. Эти параметры в разделе Тег мы можем оставить, теперь нас больше интересуют настройки динамики.
Для этого мы переходим на вкладку Динамика и сначала активируем опцию Динамика. Теперь усилия влияния, такие как Гравитация или Движение, уже воздействуют на усы и антенны.
Но чтобы усы не просто висели провисшими, а выглядели эластично и упруго, мы уменьшаем Силу динамики примерно до 40-45% и резко увеличиваем Демпфирование до около 70%. Чтобы усы еще сильнее стремились вернуться к исходному положению, увеличиваем параметр Сохранять угол до примерно 40-45%.
В этом месте я могу только пригласить вас продолжать экспериментировать с параметрами. Таким образом быстро можно понять, как каждая настройка влияет на всю цепь обратной кинематики - и это, конечно, приносит удовольствие.
Поскольку оба внешних объекта-цели ничего не знают о динамической анимации щупалец или антенн, нам нужно научить IK, что эти цели также должны перемещаться. Иначе щупальца очень быстро запутаются при быстром повороте.
Вкладка Дополнительные настройки в теге IK предлагает нам для этого очень элегантную функцию. Мы просто активируем здесь опцию Перемещение цели, и оба объекта-цели автоматически сопровождают движения.
Теперь функциональность обратной кинематики щупалец или антенн также закреплена. Давайте также немного порядка внесем в Менеджер объектов, переименовав подходящим образом объекты-цели и цепи сочленений.
В настоящее время для анимации головы пришельца используется сустав головы. К сожалению, этот сустав довольно неудобен, так как он повернут в пространстве из-за своих вложенных суставных цепей.
Однако нам на самом деле нужно "чистое" начальное положение углов, чтобы вращение и движение головы пришельца проходили без нежелательных поворотов.
И вот в игру вступает Объект-нуль-корень, на который мы уже немного натолкнулись в начале.
Он предоставляет нам совершенно новую, невинную базу координат. И чтобы вся цепь IK учитывалась, ее нужно просто предоставить Объекту-нулю-корню.
Сначала мы создаем новый объект-нуль через меню Объекты. Поскольку сустав головы находится в нулевой позиции, новый объект-нуль не требуется смещать.
Этот новый объект-нуль мы последовательно переименовываем в Корень и привязываем к нему всю иерархию суставов через Менеджер объектов.
Теперь можно нажать кнопку воспроизведения и вращать и анимировать пришельца, вращая корень-нуль во всех направлениях. Щупальца или антенны будут динамически контролироваться гравитацией и нашими движениями.
Объект-нуль-корень - это удобный помощник при анимации иерархии суставов. При создании каркаса суставов, как минимум главный сустав (обычно бедра) получает такой вышестоящий объект-нуль, чтобы это происходило автоматически, нам просто нужно активировать опцию Объект-нуль-корень в диалоговом окне настроек Инструмента суставов.