Войти
АртСтатьи

Настройка скелета модели человека в Maya. (2 стр)

Автор:

Advanced human skeleton setup

Данная часть имеет более краткое изложение — опускаются подробные разъяснения некоторых действий и команд, описанных ранее в первой части. Как обычно, постарайтесь не делать лишних кликов и нажатий клавиш. Не забывайте про команду Undo.

Архив с проектами для этой части: part2.zip.

По-хорошему, в скелете нашего персонажа не хватает ещё много-много костей для более тонкого управления моделью.

Например, совершенно отсутствуют плечи, пальцы рук и ног, и другие важные детали.
Загрузите проект Dummy2.mb.

Как можно заметить, в модели присутствует много новых Mesh объектов.

Изображение

Итак, что мы имеем? :

· Челюсть (Jaw)
· Плечи (Clavicle)
· Пальцы ног, представленные в виде единого объекта (Toe)
· Коленный и локтевой суставы (Knee, Elbow)
· Пальцы рук (Fingers)
· Ягодицы (левое и правое полупопие) (Ass)
· Распиленные надвое плечо и предплечье (Shoulder_Twist, ForeArm_Twist)

Adding Joints
В данном проекте уже присутствует ранее созданный нами скелет, но Mesh объекты не присоединены к костям (сделаем это после добавления костей). Включите отображение костей из меню “Show”. Теперь приступим к добавлению недостающих костей:

Clavicle (плечи)

· Отсоединяем обе руки от грудной кости командой Unparent (Shift + p).
· Создаём кость правого плеча, дублируем её и перемещаем по оси Х со знаком минус.
· Привязываем руки к плечам, а затем плечи к грудной кости командой Parent (p).
· Переименуйте новые кости в L_Clavicle и R_Clavicle

Изображение

Shoulder & Forearm Twist (скручивание плеча и предплечья)

· Создаём небольшую кость (используйте snap to grid что-бы кость была прямая), и дублируем её.
· Присоединяем одну к плечу (L_Shoulder) а другую к предплечью (L_ForeArm).
· Перемещаем кости как на рисунке (используйте Snap to Vertex).
· Немного поверните кости по направлению их «родителей».
· Именуем кости в L_Shoulder_Twist и L_ForeArm_Twist.

Изображение

Добавьте кости скручивания плеча и предплечья для правой руки самостоятельно (R_Shoulder_Twist  и R_ForeArm_Twist).

Fingers (пальцы)

· Удаляем концевые кости обеих ладоней – их заменят кости пальцев.
· Используя вид front создаём кость для одного пальца, затем дублирем её три раза и перемещаем в соответствии с Mesh-пальцами (при позиционировании не вращайте кости! Используйте только перемещение (Translate) и как опцию — режим редактирования Pivot point (Insert).
· На виде сверху (top) создаём  кость для большого пальца.
· Присоединяем все пальцы к кости L_Hand командой Parent.

Изображение

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

Изображение

Чтобы быстро сделать пальцы для правой руки, можно воспользоваться методом из первой части:

· Дублируем кость левой кисти (L_Hand joint > Ctrl + d).
· «Отцепляем» дубликат от предплечья (Shift + p).
· «Заворачиваем» дубликат в группу (Ctrl +g), изменяем значение группы Scale X = –1.
· Создаём новые кости пальцев правой руки поверх дубликата, используя Snap to Vertex.
· Удаляем группу и прикрепляем пальцы к кости R_Hand.

Elbow & Knees (локти и колени)

· На виде сбоку (side) создаём кость для колена, дублируем и перемещаем дубликат на правую сторону.
· «Прикрепляем» колени к ногам (Parent) и помещаем их в точку сгиба.

Изображение

· На виде сверху (top) создаём кость левого локтя, дублируем и перемещаем дубликат на правую сторону.
· «Прикрепляем» локти к предплечью и помещаем их в точку сгиба.

Изображение

· Именуем кости - L_Knee, R_Knee, L_Elbow, R_Elbow

! В случае, когда точка вращения коленной кости (или локтя) не совпадает с точкой сгиба – кости лучше крепить к плечевой и бедренной кости соответственно. Надо отметить, что такая ситуация встречается наиболее часто.

Изображение

Toe (носки ступней)

· На виде сбоку (side) «рамкой» выбираем сразу две концевые кости ног и перемещаем их.
· Дублируем эти кости (Ctrl+d) и перемещаем ещё раз.
· На виде (Persp) «пере-привязываем» новые концевые кости к ногам (Parent).

Изображение

Ass (полупопия)

· На виде сбоку создаём «попную» кость.
· Дублируем её и перемещаем дубликат на правую сторону.
· Присоединяем кости обоих полупопий к Hip joint.

Изображение

Jaw (челюсть)

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

Изображение

Ну вот, наконец, все недостающие кости добавлены, сверим изображения. На данном этапе у вас должен получиться примерно такой скелет:

Изображение

Теперь можно прикреплять все Mesh — куски модели к соответствующим костям. Сделайте ЭТО с помощью команды (Parent). Будьте внимательны с руками.

Изображение

Если все части прикреплены успешно, то можно переходить к следующему шагу — настройке управления новых костей.

Ну а если вам лень долго и нудно прикреплять Mesh к костям — просто загрузите файл Dummy2_skelet.

Изображение

Functionality & Controls

Clavicle (Плечи)

Для управления плечами нам потребуется два дополнительных локатора (L_Clavicle и R_Clavicle).

· Создаём локатор, уменьшаем его до приемлемых размеров (Scale), дублируем (Ctrl +d) и прикрепляем их к грудной кости:
L_Clavicle_locator + R_Clavicle_locator + Chest joint –> Parent

· Устанавливаем зависимость вращения костей от вращения локаторов:
L_Clavicle_locator + L_Clavicle joint – > Orient Constrain
R_Clavicle_locator + R_Clavicle joint – > Orient Constrain

Так как от этих локаторов нам нужны только атрибуты Rotate, то остальные «лочим» (Lock Selected) и делаем Non keyable (см. первую часть).

Shoulder & Forearm Twist (скручивание плеча и предплечья).

Для настройки костей «скручивания рук» нам понадобится редактор «выражений» — Expression Editor, который можно найти в меню Window –> Animation Editors –> Expression Editor… Сила этого редактора заключается в том, что он позволяет устанавливать сложные зависимости (в виде формул) между различными атрибутами. …Правда нам для настроек понадобится только одно действие – умножение.

Установите фильтр выражений на «By Expression Name»

Изображение

Введите имя выражения, например — «Joints Control». Теперь приступим к написанию «тела» выражения. Начнём с кости, имитирующей скручивание предплечья. Добавьте в поле “Expression” следующую строку:

L_ForeArm_Twist.rx=L_Hand.rx*0.3;

Изображение

!  Набирайте строку в точности с выше написанным, не добавляйте пробелов и не меняйте регистр букв. Для минимизации возможных ошибок – копируйте имена костей из Channel Box.

Смысл её предельно прост — вращение  кости скручивания предплечья по оси Х равняется вращению кисти по оси Х умноженному на 0,3. То есть, если кость кисти повернётся на 1 градус, то кость скручивания предплечья повернётся на 0,3.

Нажмите кнопку «Create», чтобы создать наше выражение.

(Как можно заметить строка немного изменилась: сокращение атрибута вращения “rx” теперь имеет полное написание “rotateX” Не пугайтесь – на смысл выражения это никак не влияет).

Посмотрим на результат в действии:

В меню команд Modify –> Evaluate Nodes отключите всю инверсную кинематику в сцене.

Изображение

Теперь повращайте кость кисти левой руки.

Изображение

Добавим ту же зависимость для правой руки (а вот тем, кто игнорировал системное название костей, будет немного сложнее):

1. копируем строку:

    L_ForeArm_Twist.rotateX=L_Hand.rotateX*0.3;   <- copy

    L_ForeArm_Twist.rotateX=L_Hand.rotateX*0.3;  <- paste

2. изменяем начальные буквы костей:

    L_ForeArm_Twist.rotateX=L_Hand.rotateX*0.3;

    R_ForeArm_Twist.rotateX=R_Hand.rotateX*0.3;  <- edit

Нажимаем кнопку «Edit», что означает вступление в силу изменений сделанных в теле выражения  (в нашем случае – добавлена новая строка). Проверьте настройку покрутив кость правой кисти.

! Не пугайтесь, если вы случайно закрыли окно редактора выражений – каждое нажатие «Edit» сохраняет все строки тела выражения. Попробуйте провести такой эксперимент – удалите все строки и закройте окно редактора не нажимая «Edit». Теперь заново откройте редактор и кликните в имя выражения «Joints control» в поле Objects – все строки должны появиться снова.

Таким же образом добавляем настройки для скручивания плеч, поворота локтей, коленей и «попных» костей. В итоге, всё выражение должно выглядеть таким образом:

//--------- Arms ----------//
L_ForeArm_Twist.rotateX=L_Hand.rotateX*0.3;    <- скручивание левого предплечья
R_ForeArm_Twist.rotateX=R_Hand.rotateX*0.3;    <- скручивание правого предплечья

L_Shoulder_Twist.rotateX=L_Arm.rotateX*-0.3;   <- скручивание левого плеча
R_Shoulder_Twist.rotateX=R_Arm.rotateX*-0.3;   <- скручивание правого плеча
L_Elbow.rotateY=L_ForeArm.rotateY*-0.5;   <- вращение левого локтя
R_Elbow.rotateY=R_ForeArm.rotateY*-0.5;   <- вращение правого локтя

Если локти прикреплены к плечевым костям, то уберите знак «минус» из обеих строк.

//--------- Legs ----------//
L_Knee.rotateX=L_Leg.rotateX*-0.6;  <- вращение левого колена
R_Knee.rotateX=R_Leg.rotateX*-0.6;   <- вращение правого колена
Если колени прикреплены к бедренным костям, то уберите знак «минус» из выражения.
L_Ass.rotateX=L_Thig.rotateX*0.3;   <- вращение левого полу-попия
R_Ass.rotateX=R_Thig.rotateX*0.3;   <- вращение правого полу-попия

Повращайте кости для проверки правильности настроек. Если всё в ажуре — закрываем редактор выражений, и включаем обратно инверсную кинематику из меню «Modify».

Для тех, кому было лень вбивать строки или почему-то не получилось — загрузите файл  Dummy2_controls.

Jaw & Toes (челюсть и «носки» ступней).

Для управления челюстью добавим атрибут «Jaw» в локатор головы (Head_locator), а для носок ступней — атрибут «Toe» в локаторы ног (L_Leg_locator и R_leg_lacotor).

Изображение

Соединяем с помощью Connection Editor добавленные атрибуты с вращением соответствующих костей по оси Х:

Изображение

Теперь, изменяя атрибут «Toe» у локаторов ног, можно регулировать сгиб носков ступней, а атрибутом «Jaw» — степень открывания рта персонажа.

Fingers (пальцы)

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

· Создаём локатор, позиционируем его над «костяшкой» большого пальца (L_Finger1_locator).
· Прикрепляем локатор к кистевой кости (L_Hand Joint).
· Дублируем локатор четыре раза, позиционируя дубликаты над костяшками остальных пальцев (L_Finger2, 3,4, 5_locator).
· Выбрав все локаторы пальцев, «лочим» их атрибуты Translate, Scale.
· В редакторе Channel Control меняем атрибуты Translate Scale и Visibility на “Non Keyable”, оставив только Rotate.
· Добавляем всем локаторам два новых атрибута для сгиба фаланг – Bend1 и Bend2.

Изображение

Теперь открываем Connection Editor и «соединим» управляющие локаторы с костями пальцев, будьте внимательны:

· «Соединяем» атрибуты вращения (Rotate) каждого локатора с костью первой фаланги соответствующего пальца.
· Соединяем атрибут локаторов «Bend1» с вращением соответствующей кости второй фаланги (обозначены жёлтым цветом).
· Соединяем атрибут локаторов «Bend2» с вращением соответствующей кости третьей фаланги (обозначены коричневым цветом).

Если вы соединили всё правильно, то теперь можно корчить замысловатые фигуры пальцами левой руки. Настройте управляющие локаторы для пальцев правой руки самостоятельно.

Посмотреть финальный вариант скелета со всеми настройками можно загрузив файл Dummy2_controls2

Изображение

Вот, пожалуй, и всё, мальчики и девочки, чем хотелось с вами поделиться. Присылайте, пожалуйста, автору свои письма с вопросами и пожеланиями или оставляйте их в комментариях к статье.

Архив с проектами для этой части: part2.zip.

Страницы: 1 2

#Maya, #персонажи, #скелетная анимация

12 марта 2005 (Обновление: 3 дек 2017)

Комментарии [39]