Ригг в Maya: Введение в ригг головы и шеи человека

Опубликовано by AJIEHA . Размещено в Уроки

В третьей части урока по риггу Джахрул Амин сосредочится на создании ригга для шеи и головы.

head_rigging_01

Maya rigging_Introduction to rigging a human torso_02

Здесь можно найти все материалы по риггу, которые используются в данном уроке.

Я продолжаю серию уроков, посвященных риггу. В этот раз мы научимся создавать ригг головы и шеи. Шея состоит из 7 позвонков, но мы поступим с ней так же, как поступали с позвонками груди и поясницы – упростим, чтобы облегчить работу аниматора. Обычно я создаю аниматору 2 контроллера для шеи: один у основания шеи, второй между основанием и первым шейным позвонком, там, где спина сходится с черепом. Такой ригг достаточно гибок, однако, свободно экспериментируйте, поскольку ничто в уроке не является неписанным правилом, поэтому, если вам нужен меньший или больший контроль над геометрией, вносите в ригг любые изменения.

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

Перед тем как двигаться дальше, хочу объяснить кое-что, о чем забыл написать в предыдущем уроке. Ось Х управляет растяжением/сжатием джоинтов. Таким образом, длину джоинтов будут определять перемещения по оси Y, а не Х.

Итак, преступим.

Создание джоинтов головы, шеи и челюсти

В окне боковой проекции перейдите Skeleton > Joint Tool. Мы собираемся привязать цепочку шейных позвонков к существующему «позвоночнику». Для этого зажмите V (привязка к точке) и кликните рядом с последним джоинтом спины, но не на нем. Теперь, когда первый джоинт создан, отпустим V, и создадим джоинт посередине шеи, а затем у основания головы. Зажмите Shift, не выходя из инструмента, и создайте последний джоинт на макушке. Переименуйте джоинты начиная с root следующим образом: neckA_jnt, neckB_jnt, head_jnt и headEnd_jnt. Теперь нужно настроить ориентацию осей, чтобы шея сгибалась при перемещении джоинтов вдоль положительной Х. Для этого выберите neckA_jnt и перейдите Skeleton > Orient Joint Tool (Options). Установите Y Primary Axis, Secondary Axis X , а Secondary Axis World Orientation X. Нажмите Apply, чтобы посмотреть, что получилось.

Пришел черед джоинта челюсти. Перейдите в боковую проекцию и создайте цепочку из трех джоинтов, первый джоинт должен быть за ухом, второй в углу челюсти, третий на подбородке. Мы можем создать цепочку из двух джоинтов, начинающуюся за ухом и заканчивающуюся на подбородке. Но для удобства я добавляю третий джоинт. Переименуйте джоинты следующим образом: jawA_Jnt, jawB_jnt и jawEnd_jnt. Выберите jawA_jnt и перейдите Skeleton > Orient Joint Tool. Настройки остаются теми же. Затем припарентите jawA_jnt к head_jnt.

Перейдем к контроллерам глаз. Глазные яблоки находятся немного не по центру. Для того чтобы упростить настройку контроллеров глаз, я решил поставить их на место, повращав геометрию по Y. Затем, выбрав глазные яблоки, выполните Modify > Freeze Transforms. Теперь создайте сферу, повращайте ее, отмасштабируйте и переместите на место существующих глазных яблок. Это будет прокси-геометрия, которая также поможет позиционировать джоинты. Переименуйте созданную сферу в  l_eyeball_proxy. Откройте Attribute Editor и в левой вкладке перейдите Display и включите отображение Display Handle. Теперь мы можем воспользоваться Display Handle, чтобы привязать геометрию извне. Поэтому активируйте Joint Tool, зажмите V, чтобы активировать привязку по точке, и создайте джоинт, начинающийся от центра глаза. Переименуйте джоинты следующим образом: l_eye_jnt и l_eyeEnd_jnt. Сдублируйте l_eyeball_proxy и l_eye_jnt и вбейте минус в значение атрибута перемещения по Х. Это создаст правый прокси-глаз. Переименуйте префикс l_ в r_. Выберите l_eye_jnt и r_ eye_jnt и перейдите в настройки инструмента Skeleton > Orient Joint Tool. Включите галочку Orient Joint to World и нажмите Apply (на видео я делаю это позже, в шаге 4). Припарентите l_eye_jnt и r_ eye_jnt к head_jnt.

head_rigging_03

Создание джоинтов для головы, шеи и челюсти

Создание лоупольного меша

Далее необходимо «облегчить» меш и припарентить его к соответствующим джоинтам. Это делается по тому же принципу, что и в уроке по торсу, поэтому мы не будем его тщательно рассматривать в этом уроке. Однако хочу упомянуть, что я удалил внутреннюю часть глаз и полость рта, чтобы максимально облегчить ригг. Кроме этого, не забудьте переименовать лоупольный меш по тому же принципу, который мы использовали при ригге торса. Также можно припарентить по паре сфер под каждый джоинтом глаз. Убедитесь, что они правильно переименованы.

head_rigging_04

Создание лоупольного меша головы и припаренчивание его к соответствующим джоинтам

Создание контроллеров шеи и головы

Далее добавим контроллеры для головы, шеи и челюсти. Выберите neckA_jnt, neckB_jnt, head_jnt, jawA_jnt и откройте скрипт createControls.py в Script Editor. Последняя строка должна быть такой:

cmds.orientConstraint(ctrl, s, mo=0)

Запустите скрипт.

Теперь создадим иерархию контроллеров. Выберите jawA_ctrl_offset и припарентите его к under head_ctrl. Далее припарентите head_ctrl_offset к neckB_ctrl, затем neckA_ctrl_offset к neckA_ctrl_offset. В завершении приконстрейните с помощью point constrain neckA_jnt к neckA_ctrl, далее припарентите neckA_ctrl_offset к chest_IK_ctrl.

Для редактирования формы контроллеров перейдите в режим компонентов, нажав F8. Выберите CV контроллеров, отмасштабируйте и переместите их соответствующим образом. Наведем в сцене порядок: выберите neckA_jnt, нажмите Ctrl+G и переименуйте группу в head_jnt_grp. Выберите как head_jnt_grp, так и spine_jnt_grp и снова нажмите Ctrl+G. Полученную группу переименуйте в torso_jnt_grp.

head_rigging_05

Создание контроллеров для головы, шеи и челюсти

Создание контроллеров для глаз

Для контроллеров глаз мы создадим локатор произвольной формы. Для этого перейдите в боковую проекцию и откройте инструмент CV Curve Tool с Curve degree установленным как 1 Linear. Включите привязку по сетке, зажав Х, и нарисуйте крестик. Не выходя из инструмента, перейдите в вид сверху и создайте еще 2 контрольные точки, чтобы кривая больше походила на локатор. Переименуйте кривую в l_eye_ctrl и дважды нажмите CTRL+G. Верхнюю группу переименуйте в l_eye_ctrl_offset, нижнюю в l_eye_ctrl_auto.

Для позиционирования контроллера выберите l_eye_ctrl_offset и припарентите его к l_eye_ctrl_auto. После того, как контроллер займет нужное место, обнулите значения атрибутов перемещения и группы оффсета и отпарентите его от джоинта. Затем сместите оффсет по оси Z, чтобы поместить его перед персонажем. Выберите l_eye_ctrl_offset и нажмите Ctrl+D, чтобы сдублировать его. Замените префикс l_ на r_ для контроллера и нод групп и вбейте минус в графу значения перемещений по Х.

Создадим контроллер, который будет управлять контроллерами глаз. Перейдите во фронтальную проекцию и выберите CV Curve Tool, чтобы создать кривую в виде квадрата. Назовите ее eyes_ctrl и дважды нажмите  Ctrl+G, чтобы создать иерархию контроллеров. Верхнюю группу назовите eyes_ctrl_offset, нижнюю eyes_ctrl_auto. Выберите контроллеры поочередно l _eye_ctrl, r_eye_ctrl и eyes_ctrl_offset. Выполните Point Constraint, и иерархия займет нужное место. Удалите ноду PointConstraint, которая находится ниже eyes_ctrl_offset. Измените форму контроллера eyes_ctrl в режиме работы с компонентами. Затем припарентите l_eye_ctrl_offset и r_eye_ctrl_offset к eyes_ctrl.

В завершении настроим констрейны глаз. Выберите l_eye_ctrl, с Shift’ом выберите l_eye_jnt и выполните Constraints > Aim (Options). Установите Aim Vector 0, 0, 1 и нажмите Apply. Проделайте то же самое с правым глазом, и персонаж начнет смотреть по сторонам.

head_rigging_06

Контроллеры глаз на своих местах

Настройка пространства следования для глаза

Начнем с создания 2х локаторов, которые затем переименуйте в eyesHeadFollow_low и eyesWorldFollow_loc. Выберите оба локатора и припарентите их к eyes_ctrl. Обнулите значения атрибутов перемещения и отпарентите их. Далее припарентите eyesHeadFollow_loc к head_ctrl, локатор eyesWorldFollow_loc оставьте как есть. Выберите по порядку eyesHeadFollow_loc, eyesWorldFollow_loc, eyes_ctrl_auto и выполните команду Constrain > Parent.

Далее мы добавим атрибут к контроллеру eyes_ctrl, что позволит при необходимости настроить, кого будет «слушаться» локатор: контроллера головы или world. Выберите eyes_Ctrl и перейдите Modify > Add Attribute. Присвойте ему длинное имя (Long name) eyesFollow, тип данных Data Type установите Enum. Ниже Enum Names, выделите Green и установите New name как Head, затем выделите Blue и задайте New name как World. Нажмите Add. Перейдите Animate > Set Driven Key > Set. Выберите eyes_ctrl и нажмите Load Driver в окне Set Driven Key. Затем выделите ноду parentConstraint ниже контроллера eyes_ctrl_auto и нажмите Load Driven. Установите атрибут eyesFollow как Head выше eyes_ctrl и установите Eyes Head Follow Loc W0 1, а Eyes World Follow Loc W1 0 для parentConstraint. Выберите атрибут eyesFollow в правой верхней части окна Set Driven Key и веса констрейна в нижней части окна и нажмите Key. Теперь установите для eyesFollow режим World, измените значения весов на противоположные в ноде parentConstraint и нажмите Key еще раз в окне Set Driven Key. Таким образом, контроллер глаз eyes_ctrl будет следовать или не следовать за контроллером головы. 

Затем выберите eyesWorldFollow_loc, нажмите Ctrl+G и переименуйте полученную группу как worldFollow_loc_grp. В завершении выделите как eyesWorldFollow_loc, так и eyesHeadFollow_loc и нажмите Ctrl+H, чтобы скрыть их.

head_rigging_07

Использование окна Driven Key для настройки контроллера глаз, который будет следовать или не следовать за контроллером головы

Создание переключателя пространства для головы

Создайте 4 локатора и переименуйте их следующим образом: headNeckFollow_loc, headTorsoFollow_loc, headCOGFollow_loc и headWorldFollow_loc. Припарентите все 4 локатора к контроллеру head_ctrl, обнулите значения атрибутов перемещения и нажмите Shift+P, чтобы отпарентить их.

Затем выберите локаторы в следующем порядке headNeckFollow_loc, headTorsoFollow_loc, headCOGFollow_loc, headWorldFollow_loc и head_ctrl_auto и выполните команду Constrain > Orient. Выберите head_ctrl и выполните команду Modify > Add Attribute. Переименуйте контроллер в headFollow, тип атрибута установите Enum и добавьте 4 следующих Enum-имени: neck, torso, COG и world. 

Откройте окно Set Driven Key и загрузите контроллер head_ctrl как Driver, а ноду orientConstraint как Driven. Установите Enum в соответствующие режимы и отключите все, кроме весов констрейна. В завершении нажмите key и повторите операцию для остальных локаторов.

После создания  Driven Keys припарентите локаторы к соответствующим контроллерам: headNeckFollow_loc к neckB_ctrl; headTorsoFollow_loc к chest_IK_ctrl; headCOGFollow_loc к COG_ctrl и headWorldFollow_loc к worldFollow_loc_grp. Затем скройте все локаторы, нажав Ctrl+H.

head_rigging_08

Создание переключателя пространства для головы

Наведение порядка в сцене

Начнем с того, что залочем и спрячем атрибуты, которые аниматор не будет ключевать. Выберите neckA_ctrl, neckB_ctrl, head_ctrl и jaw_ctrl, выделите все каналы перемещения и масштабирования в Channel Box. Зажмите RMB и выберите Lock and Hide Selected. Выберите eyes_ctrl, l_eye_ctrl и r_eye_ctrl, выполните команду Lock and Hide всех каналов масштабирования.

При желании вы можете раскрасить контроллеры в соответствующие цвета, включив галочку Enable Overrides и воспользовавшись ползунком Color, который находится Display > Drawing Overrides в Attribute Editor. Тададам! Вы создали ригг шеи и головы. В следующий раз мы создадим ригг для плеча и руки. Удачных вам риггов!

head_rigging_09

Для удобства аниматора контроллеры необходимо раскрасить, а ненужные атрибуты скрыть и залочить

Видео от Джахрул Амина по созданию ригга шеи и головы

Совет дня:

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

Предыдущие уроки от Джахрул Амина:

Ригг в Maya: Введение в ригг человеческого торса

Введение в ригг

Журналист: Алена

Вас могут также заинтересовать:

Тэги: , , ,


Присоединяйтесь к нашему сообществу вКонтакте и читайте свежие новости и статьи о мире 3D