Введение в скелетную анимацию в Blender

Так называемая скелетная анимация, которая в Blender реализуется с помощью арматуры ‒ особого типа объекта, позволяет создавать такие движения, когда перемещения одной части фигуры влечет за собой изменение положения в пространстве других. Характерный пример ‒ поднятие или поворот плеча потянет за собой предплечье и кисть руки.

Скелетная анимация ‒ сложная и многогранная техника. Чтобы у нас сложилось целостное общее представление, в данном уроке в общих чертах на простом примере рассмотрим основные этапы ее создания (подготовка меша и арматуры, установка связи между ними, анимация в режиме позы). На самом деле возможностей, которые дает использование арматур, больше. И это требует освоения ряда новых понятий.

Вместо куба добавим на сцену цилиндр. В режиме редактирования выдавим два раза верхнюю грань. Каждый раз на 2 единицы, чтобы все части были равны между собой.

В объектном режиме скроем цилиндр (H) и добавим арматуру (Shift + AArmature | Арматура). Любая арматура в Blender состоит из системы костей, или звеньев. Исходно в ней только одна кость. Переключившись в режим редактирования, мы увидим, что сама кость не монолитна, а состоит из элементов. При этом верхний шарнир будет выделен. Не снимая с него выделения, выполним выдавливание на одну единицу по вертикали (E → Z → 1 → Enter). Повторим выдавливание уже на втором звене.

Поскольку каждая часть цилиндра составляет 2 м, а каждое звено арматуры только 1 м, в объектном режиме увеличим последнюю в два раза (S → 2 → Enter).

Не обязательно, чтобы объект и связанная с ним арматура находились в одном месте сцены и были соразмерно друг с другом совмещены. Однако, чтобы движения объекта были более предсказуемы, обычно в скелетной анимации меш как бы одевается на систему костей. В английском этот процесс описывается специальным термином ‒ skinning (skin ‒ кожа, шкура).

При отображении цилиндра (Alt + H) кости окажутся внутри него и не будут видны. Исправить ситуацию можно разными способами. Например, переключиться в каркасный способ отображения. Однако вместо этого включим у арматуры флажок In Front | Спереди на панели Viewport Display | Отображение во вьюпорте вкладки Data редактора свойств.

На скрине выше, чтобы окончательно совместить объекты, цилиндр был поднят на одну единицу (G → Z → 1 → Enter).

Теперь все готово для того, чтобы связать отдельные кости скелета с отдельными элементами "тела", роль которого у нас выполняет цилиндр.

Для этого первым делом между арматурой и объектом устанавливается связь родитель-потомок. При этом роль родителя выполняет арматура. В Blender родительский объект всегда выделяется последним. Поэтому выделим сначала цилиндр, затем при зажатом Shift арматуру. После этого нажмем Ctrl + P. Появится меню, в котором следует выбрать Armature Deform → With Empty Groups | Арматурная деформация → С пустыми группами.

Вариант с автоматическим назначением весов также возможен. Однако Blender обычно не так распределяет вершины меша, как требуется.

После установления такой связи у цилиндра появятся группы вершин. Из можно увидеть на вкладке Data редактора свойств. Группы будут называться по именам костей арматуры. Поскольку у нас три кости, и мы их не переименовывали, по умолчанию Blender из называл "Кость", "Кость.001", "Кость.002" (вместо "Кость..." может быть "Bone..."). При этом "Кость" ‒ это нижнее звено, а "Кость.002" ‒ верхнее. Чтобы было удобнее ориентироваться поменяем на обратный порядок групп с помощью стрелок справа от списка групп.

На время работы с группами переключимся на каркасный вид (Z → 4). В режиме редактирования выделим нижний обод вершин цилиндра и назначим (assign) их группе "Кость". Выделим только второе снизу кольцо вершин, назначим их группе "Кость.001". Два верхних кольца поместим в оставшуюся группу.

На этом скиннинг закончен, и можно приступить к анимации.

Хотя целью анимации является какой-либо "материальный" объект (прорисовываемый при рендеринге), в случае использования арматуры анимируется именно она, для нее создаются ключевые кадры. Но поскольку она является родительским объектом по отношению к целевому, то вслед на ней движения будет повторять и он.

Анимация системы костей выполняется в специальном режиме ‒ режиме позы (pose mode). Для переключения в него надо выделить арматуру и нажать Ctrl + Tab (или выбрать в списке режимов, там где объектный и редактирования).

Когда в режиме позы меняется положение костей арматуры, это никак не отражается на ее состоянии в режиме редактирования. Здесь арматура всегда остается в так называемом положении покоя (rest position). По-сути это исходная поза, которую вы задаете, конструируя скелет для объекта.

Прежде чем создавать ключевые кадры, посмотрим как себя ведут кости в режиме позы. Выделим среднюю и попробуем ее поворачивать и масштабировать. Вы увидите, что вместе с ней действия повторяет и верхняя кость. Дело в том, что кости соединены между собой не просто, а находятся в своих подчиненных отношениях. Мы экструдировали звенья так, что каждое следующее выступало дочерним по отношению к предыдущему. Поэтому то, что происходит с родителем (главным), отражается на его потомках. Если повернуть нижнюю кость, повернется весь объект. Однако трансформации верхней никак не затронут остальные.

Чтобы привести кость в исходное состояние, "очистить от позы", надо ее выделить и в контекстном меню выбрать Clear User Transformation | Очистить пользовательские трансформации. Это действие можно производить сразу над всеми или несколькими звеньями, предварительно выполнив их групповое выделение.

Каждую кость можно анимировать отдельно, создавая более сложные, последовательные и частично совмещенные комбинации движений. Однако сразу выделим все три кости и создадим ключевой кадр (I). Перейдем в 50-й кадр. Немного повернем каждую кость, у верхней изменим размер, снова выделим все и создадим еще один ключ.

Перейдем в 100-й кадр. Очистим трансформации с помощью меню вьюпорта (Pose → Clear Transform → All | Поза → Очистить трансформацию → Все), создадим ключ.

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

Практическая работа

В объектном режиме продублируйте цилиндр с его арматурой. Копию конструкции поместите недалеко от исходной. Поскольку копируется и анимация, сейчас оба цилиндра движутся одинаково.

В уроке было сказано, что кости находится в определенной связи друг с другом. Однако это не обязательно. Удалим отношения между звеньями у второй арматуры. Для этого в ее режиме редактирования на вкладке Bone редактора свойств, панели Relations | Отношения следует удалить родителя (parent) у средней и верхней костей.

Вернитесь в объектный режим и отметьте разницу между движениями объектов при проигрывании анимации.

Перейдите в режим позы второй арматуры. Уменьшите нижнюю кость. Отметьте, что размер остальных при этом не меняется.

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

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

Анимация в Blender 4.3.0




Все разделы сайта