Об элементах управления
Главная Статьи и Медиа 3D технологии Практикум по ZBRUSH и MAYA Оснастка 3d персонажей Об элементах управления
Об элементах управления

Некоторые тонкости управления оснасткой 3d персонажа в Maya

Универсальная оснастка 3d персонажа подразумевает и элементы управления ею. Самое время поговорить о принципах работы и методах создания этих элементов.



 

Оснастка (RIG) и элементы управления ног 3д персонажаИнверсная кинематика суставов оснастки это как ниточки у куклы марионетки. Кукловод управляет куклой, дёргая за определённые ниточки, а аниматор, хватая и двигая конец цепочки суставов, связанных законами инверсной кинематики, может заставить оснастку, а вместе с ней и саму модель совершать нужные ему движения.
Прямую кинематику, по способу управления, можно сравнить с пластилиновой куклой, снабженной жестким каркасом. Чтобы заставить двигаться такую куклу, надо вращать каждый сустав её "скелета" отдельно.
Элементы управления оснасткой — не что иное как хватательные приспособления, помогающие аниматору найти определённый сустав или конец цепочки суставов (для инверсной кинематики), чтобы затем, используя уже стандартные манипуляторы 3д пакета совершать с объектом требуемые манипуляции, пардон за тавтологию.

Обычно, у аниматора "круто оснащённой" 3d модели в глазах рябит от обилия всевозможных разноцветных элементов управления. Я считаю, что всё хорошо в меру. Некоторые, нечасто используемые элементы можно и спрятать, включив в наборы атрибутов и прикрепив эти наборы к каким-нибудь характерным частям оснастки.

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


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

Естественно, можно найти и готовые скрипты для создания "стандартных" элементов управления, но мне кажется, что интереснее поэкспериментировать самому...

В качестве примера, приведу скрипт элемента управления "Joint Curve ", состоящего из трёх "кружочков" и повторяющего внешний вид стандартного joint в Maya.

//Joint Curve элемент управления

//Создаем кривые
string $cv1[] = `circle -c 0 0 0 -nr 0 1 0 -sw 360 -r 1 -d 3 -ut 0 -ch 1`;
string $cv2[] = `circle -c 0 0 0 -nr 0 1 0 -sw 360 -r 1 -d 3 -ut 0 -ch 1`;
string $cv3[] = `circle -c 0 0 0 -nr 0 1 0 -sw 360 -r 1 -d 3 -ut 0 -ch 1`;
//Вращаем как положено
rotate -r -os 90 0 0 $cv2[0];
rotate -r -os 0 0 90 $cv3[0];
//Замораживаем повёрнутые кривые
select $cv2[0]; select -add $cv3[0];
makeIdentity -apply 1 -t 1 -r 1 -s 1 ;
//Подчиняем shapes кривых 2 и 3 кривой 1
string $relCrv2[] = `listRelatives -shapes $cv2[0]`;
string $relCrv3[] = `listRelatives -shapes $cv3[0]`;
parent -r -shape $relCrv2[0] $cv1[0];
parent -r -shape $relCrv3[0] $cv1[0];
//Удаляем "trns node" кривых 2 и 3
select $cv2[0]; select -add $cv3[0]; doDelete;
//Переименовываем joint curve
string $rnmCrv = `rename $cv1[0] "jntCrv"`;
//Удаляем историю joint curve
select $rnmCrv; DeleteHistory;
//Готово...

 

Вернёмся к нашему персонажу и его оснастке. Поработаем с элементами управления для ног.

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

  1. Кривая "ступня", напрямую связанная с голеностопным суставом и с инверсной кинематикой ноги. Для этого её "опорная точка" (pivot point) совмещается с управляемым суставом. Тогда,  "выделив" элемент управления, мы всегда увидим манипулятор на нужном месте, не видя, может быть, самого сустава.
  2. Кубики "пивоты" (опоры) со всех сторон подошвы сапога, позволяющие имитировать различные положения и наклоны её в разные стороны, с опорой на конкретный кубик

 

Элементы управления ступнёй 3d персонажа

Опорные кубики для управления ступнёй 3d персонажа

Для элемента управления "ступня" оставляем возможность работы с атрибутами: Translate и Rotate, а остальные советую "закрыть" (lock) и "спрятать" (hide).

В свою очередь, для опорных кубиков оставляем только атрибуты Rotate.

Ещё одно важное замечание. Строя элементы управления, мы используем трансформации, иногда, вспомогательные временные связи. Нужно проследить, чтобы после всех "перетурбаций"  нужные управляющие атрибуты (Translate, Rotate) наших элементов управления имели нулевые значения. Для кривых надо (когда возможно) просто выполнить "Freeze Transformations",   предварительно, временно "оторвав" дочерние объекты.

Для управления ступнями ног персонажа у нас пока не хватает ещё одного элемента — "Вращателя пальцев", кривую которого можно создать использовав приведённый выше скрипт.

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

Элементы управления ступнёй 3d персонажа

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

Элементы управления ног 3d персонажа

 

О тонкостях и "маленьких хитростях" при создании элементов управления оснасткой я расскажу уже в серии видео уроков, а пока...

продолжение следует...

 

GRANDIKOS

 


Grandikos Если Вам нравится сайт, а главное, статьи и обучающие материалы, на нём представленные... Вы можете стимулировать автора, бросив на его счёт любую "символическую" сумму, что, неизбежно, подвигнет его на дальнейшее проявление здорового альтруизма...
Кстати, если Вы, к тому же, вместе с "пожертвованием" оставите и комментарий, содержащий ВАШИ пожелания на будущее, то автор непременно учтёт их при планировании своей работы...


Счет на "Яндекс деньги": 41001131476679

Кошельки "WEB money":

Z148021440215
R515650544848


GRANDIKOS

2007—2017 © ТМИП | Все права защищены

К началу