Ограничитель Spline IK костей арматуры в Blender
В Blender ограничитель кости Spline IK | Сплайновая ИК позволяет расположить звенья арматуры вдоль кривой. Далее, изменяя изгибы кривой, можно менять взаимное расположение костей. Данный ограничитель может подойти для моделирования и анимации хвостов, веревок и т. п.
В общей сложности, если у нас есть объект, для которого мы хотим настроить сплайновую инверсную кинематику, надо создать под него арматуру и кривую, привязать кривую к арматуре, связать кости арматуры с объектом через группы его вершин.
Несмотря на то, что в названии ограничителя упоминается инверсная кинематика, и влияние дочерних элементов на родительские очевидно будет, его основа ‒ все же прямая кинематика. Установив Spline IK и трансформируя старшие в иерархии кости, вы поменяете положение младших. Это хорошо видно, если поворачивать кость вдоль ее локальной оси Y (R → Y → Y). Вместе с ней это будут делать дочерние, но не родительские.
Количество контрольных точек кривой может быть меньше, чем костей. Обычно такое соотношение является предпочтительным. Чем мельче кости, тем они лучше повторяют изгибы кривой.
Размеры костей имеют значение, как они расположены друг относительно друга ‒ нет. Они все равно потом "лягут" по форме кривой. Так что проще изначально выложить их вдоль прямой линии.
Во избежание неожиданных эффектов сначала лучше создать модель и совместить ее с арматурой. После этого добавить кривую, например, Безье или путь (path).
На примере схематичной модели опишем последовательность действий при использовании ограничителя Spline IK.
Добавим цилиндр. Повернем его на 90 градусов по оси Y (R → Y → 90 → Enter). Через боковую панель (N) установим размер (dimensions) X = 0.5, Y = 0.5, Z = 10. Перейдем на вид спереди. В режиме редактирования с помощью инструмента Loop Cut (разрезать петлей) подразделим цилиндр 50 раз поперек его длинной оси (разделяете пополам, потом в регионе последнего действия указываете число).
Выйдем из режима редактирования цилиндра. Добавим арматуру. Повернем ее на 90 градусов по оси Y. Включим отображение во вьюпорте "спереди" (in front). Совместим корень кости с левым основанием цилиндра (G → X). В режиме редактирования выполним выдавливания кончика звена вдоль оси X (E → X → 1 → Enter), создав тем самым вторую кость такого же размера. Повторим последнее действие (Shift + R) еще 8 раз. В результате должно получиться 10 костей, вся арматура должна "покрывать" модель.
В объектном режиме выделим сначала цилиндр, затем арматуру. Установим родительскую связь (Ctrl + P), выбрав вариант With Automatic Weights (с автоматическими весами). Blender сам создаст цилиндру группы для костей и распределит вершины по ним. В его режиме редактирования вы можете проверить правильность распределения (одни и те же вершины могут относиться сразу в две смежные группы, это нормально). Также в режиме позы арматуры посмотреть, что все работает как надо (потом очистите трансформации).
В объектном режиме добавим кривую Path (путь). Установим размер по оси X в 10м, переключимся на вид сверху и немного сместим кривую по оси Y, чтобы ее было видно.
Перейдем в режим позы арматуры. Выделим последнюю кость (самое младшее звено в иерархии) и добавим ей ограничитель Spline IK | Сплайновая ИК. В его настройках в качестве цели (target) укажем нашу кривую, установим длину цепи (length chain) в 10 костей. После этого вся арматура и модель вместе с ней переместятся на кривую.
Теперь если править путь в режиме редактирования, модель будет соответственно изгибаться. Поскольку кривая не видна за арматурой, перед этим следует выбирать ее в аутлайнере (редактор Outliner), находясь в объектном режиме. Можно также через редактор свойств включить ее отображение во вьюпорте.
Для таких простых моделей, как цилиндр, использование Spline IK может быть излишним, поскольку можно выдавливать различными способами саму кривую (в этом случае она станет видимой при рендере). Однако во многих случаях работать с мешем удобнее (добавление материалов, волос и др.).
Практическая работа
В качестве цели Spline IK используйте кривую Безье, подразделенную 1-2 раза. Попробуйте ее редактировать, отметьте отличия от пути.
Добавьте на сцену окружность Безье. Привяжите к ней арматуру через сплайновую инверсную кинематику. Посмотрите как ведет себя модель при увеличении и уменьшении окружности, изменении ее формы.
Добавьте цилиндру два материала таким образом, чтобы вдоль него проходила отличающаяся по цвету полоска. В режиме позы выполните скручивание разных костей относительно их локальных осей Y. Чем отличается результат такого поворота родительских костей от дочерних?