Jump to content


Риггинг головы фуря


  • Please log in to reply
No replies to this topic

#1 Axon Dezno

Axon Dezno

    Участник

  • Писатели
  • PipPipPip
  • 217 posts
  • Пол:М
  • Основной цех:Строители
  • Второй цех:Художники
  • SL Status: 

Posted 07.07.09 - 00:00

Цикл статей резидента Axon Dezno

…И снова здрасте!

Поскольку анимировать скелет, в котором насчитывается хотя бы 20-30 костей вручную способом прямой кинематики не всегда удобно, перейдём к изучению основ инверсной кинематики.

Для создания более-менее понятной инверсно-кинематической цепочки нам нужно перед родительской костью уже имеющейся цепи создать ещё одну кость с «ниспадающей» привязкой:

В Edit Mode выделяем родительскую кость. Дублируем её (Shift+D) и ставим перед родительской.

Теперь нам надо привязать цепочку к новой родительской кости — выделяем с зажатым Shift СПЕРВА родительскую кость цепи, ЗАТЕМ нашу дублированную кость, жмём Ctrl+P и из выпадающего списка выбираем Keep Offset:

Attached Image: image047.png

Примечание: если нажать на Connected, то первая выделенная нами кость будит пристыкована ко второй на прямую, в данном случае можно конечно сделать и так, но если вам нужно прилинковать кость лежащую далеко от родителя, то Keep Offset — самое оптимальное решение.

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

Attached Image: image049.png

Примечание: порядок выделения костей при линковке ОЧЕНЬ ВАЖЕН! Если вы линкуете более, чем две кости, то первыми должны быть выделены кости КОТОРЫЕ вы хотите привязать, а последней та, К КОТОРОЙ будит осуществлена привязка.

Для создания полной IK-цепочки, нам осталось только добавить и настроить кость-привод.

Щёлкнув правой кнопкой мыши где-нибудь рядом со скелетом устанавливаем курсор.

Создаём ещё одну кость (при этом остаёмся всё в том же Edit Mode) — задерживаем правую (или левую как удобней) кнопку мыши — Add → Bone:

Attached Image: image051.png

Выделяем конечный сегмент последней кости в цепи (это если что правый шарик самой правой кости на рисунке выше).

Нажав Shift+S выбираем „Cursor -> Selection“:

Attached Image: image053.png

Теперь выделяем рутовую часть нашей недавно созданной кости (Рисунок с тремя циферками ещё не забыли? Так вот рутовая или родительская часть это та, что под номером 3).

Опять жмём Shift+S, только теперь выбираем уже „Selection -> Cursor“ (тобиш переместить выделенное к курсору).

Примечание: комбинация Shift+S чрезвычайно полезна, если вам часто приходится перемещать один объект к другому и не только, например если вам надо поставить курсор или выделенный объект точно по координатной сетке, то выделив объект переносим его как можно ближе к нужному краю ячейки сетки жмём „Selection -> Grid“.

В результате выделенная часть кости переместилась на позицию курсора.

Подводим дочернюю часть кости поближе к родительской, а затем с зажатым Shift выделяем родительскую кость цепи (предпоследняя слева) и линкуем к ней конечную кость с сохранением позиции последней.

Должно получиться вот это:

Attached Image: image055.png

Ну вот собственно сама цепь костей для нашей первой IK-цепочки и готова, осталосць её только правильно настроить.

Небольшая дополнительная информация: Принцип расчёта движения IK как я уже неоднократно говорил базируется на расчете ПОВОРОТА костей прямой кинематики относительно ПОЛОЖЕНИЯ В ПРОСТРАНСТВЕ костей инверсной кинематики. Для того, чтобы Blender понял, какая кость прямой кинематической цепочки подчиняется триггеру кости IK, надо его (Blender) ткнуть носом в эту самую кость.

Облегчу вам работу и перед тем, как мы начнём линковку, объясню функции некоторых кнопок панели настроек скелета:

Attached Image: image052.png

Преходим в Pose Mode (Attached Image: image059.png ).

Выделяем нашу кость IK, Затем с зажатым Shift кость левее неё и жмём Ctrl+I:

Attached Image: image061.png

В списке контроллеров «пожелтевшей» кости появился ограничитель IK (так для не особо владеющих английским — ограничитель в переводе на буржуйский звучит как constrain — зачем я это сказал? А чтобы одноимённую вкладку с параметрами найти смогли, она на верхнем скриншоте самая нижняя).

Собственно теперь у нас получиласць IK цепочка — поздравляю…

Только, если мы выделим конечную кость и попробуем её переместить, то заметим, что перемещается она как-то странновато:

Attached Image: image063.png

О.о

Назревает вопрос… с какого перепугу?

Дело в том, что в параметре Chain Length (он в жёлтой кости находится, а не в последней, в списке ограничителей — мы же не жёлтую кость линковали, а к ней…) по умолчанию стоит значение — ноль, а это означает, что расчет кинематики будит производиться от самой первой кости и до указанной IK-кости ВКЛЮЧИТЕЛЬНО!

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

Если значение данного параметра больше нуля, то расчет как раз пойдёт не от начала, а от конца. Поскольку у нас вращаться должны всего 3 кости перед IK-контроллером — ставим там значение 3:

Attached Image: image065.png

Вот теперь наша цепочка работает как надо.

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

Как бы нам упростить процесс перемещения костей, но только так, чтобы всё можно было видеть и самое главное понимать как это работает?

Ну в принципе возможно, — создаём где-нибудь рядом новую кость.

Ставим её так, как показано на рисунке (Shift+S использовать не забываем):

Attached Image: image067.png

Линкуем кость „Bone 005“ с сохранением офсета к кости „Bone 004“ скелета.

Теперь линкуем к „Bone 005“ кость „Bone 003“ (с сохранением офсета или без, значения в данном случае не имеет, ибо они находятся рядом).

Переходим в Pose Mode и масштабируем „Bone 005“.

Другое дело — теперь можно анимировать сразу несколько костей. :)

Так, непосредственно с самим IK вроде бы более-менее разобрались, переходим к контроллерам и ограничителям…

Создаём такую вот конструкцию (выделение рамкой – „B“, а копирование выделенного — Shift+D если что…):

Attached Image: image069.png

Теперь в Pose Mode поворачиваем один из двух объектов:

Attached Image: image071.png

Мда… многовато костей получается… даже при таком упрощённом управлении, как у нас…

Что же делать? Ну что, что — естественно упрощать. :)

Для начала рассмотрим такой ограничитель, как Track To.

В Pose Mode выделяем рутовую кость любой из двух IK-цепей, во вкладке Constrains щёлкнув по кнопке Add constrain добавляем ограничитель Track to.

Ограниченная нами кость оперативно посинела:

Attached Image: image073.png

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

А вот тут есть одна небольшая заковырка — трекер НЕ МОЖЕТ следить за объектами, которые являются частью той же самой арматуры, где находитсця следящая кость!

Переходим в Object Mode.

Ставим курсор где-нибудь перед нашей цепочкой и создаём там… ну например кубик:

Attached Image: image075.png

В свитке Links and materials копируем имя нашего кубика:

Attached Image: image077.png

Выделяем нашу арматуру, переходим в Pose Mode и вставляем имя кубика в поле Target списка ограничителей:

Attached Image: image079.png

Давим Enter и в Object Mode пробуем переместить наш куб.

Как видите рутовая кость теперь направляет всю цепь непосредственно на куб.

продолжение…
X________________________________________________x

Хто хочет - ищет способ, хто не хочет - ищет причину.




1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users