Blender Basics 4-rd edition/Chapter 16- Armatures

Материал из wiki.nntc.nnov.ru
Перейти к навигации Перейти к поиску

Глава 16: Арматура

Автор: James Chronister
Оригинальный перевод: Юлия Корбут aka Balista
Переработка текста: Азовцев Юрий aka gumanoed

Использование арматуры для деформации меша

Все описанные ранее инструменты Blender великолепны для большинства случаев анимации объектов, кроме ситуации с анимацией движений персонажа или дерева, изгибающегося на ветру. Эти случаи требуют изменений формы меша, которые невозможно выполнить с помощью традиционных модификаторов. Мы можем деформировать меш двумя способами. Создать скелет и использовать его для деформации меша (арматура) или изменить положение вершин в режиме редактирования и создать слайдер, регулирующий их положение между начальным и конечным состоянием (ключ положения вершин - vertex keys). Эта глава описывает работу с арматурой. Система арматур в Blender находится в постоянном развитии. Мы поговорим лишь об основных вещах. Более подробную информацию вы сможете найти на b3d.mezon.ru и www.blender.org

Первое, что нам нужно сделать - создать меш с несколькими группами вершин в местах, где он будет сгибаться. Подойдет любой меш. Для получения дополнительного количества вершин вы можете экструдировать (extrude) или подразделить (subdivide) его. Но будьте осторожны, не создавайте вершин слишком много. Это может замедлить работу компьютера и, соответственно, скорость моделирования. Давайте используем цилиндр для создания руки. Я использую цилиндр с количеством образующих вершин по умолчанию - 32. Затем я переключаюсь в ортогональный вид спереди и, с помощью инструмента выделения прямоугольником ("B"), выбираю вершины верхней части цилиндра и экструдирую их вверх. Я предпочитаю использовать экструдирование вместо подразделения (subdivide) для минимизации количества вершин в меше. После экструдирования я немного масштабирую и уменьшаю диаметр получившейся части руки. 100px
100px Теперь поместите курсор в самый низ созданной вами формы. Нажмите Shift-"A", выберите Add, Armature - Single Bone. Вы увидите кость, появившуюся на месте 3D-курсора. Перейдите в Режим Редактирования, нажмите клавишу "G" для захвата вершины кости и увеличьте ее длину до нужного размера. Для создания следующей кости нажмите "E" и экструдируйте ее из конца предыдущей. Если вы вышли за пределы 3D-окна, просто щелкните в любом места и затем еще раз нажмите "G" для перемещения конца кости в нужное место. Как и в случае с другими объектами для редактирования костей вы должны находиться в Режиме Редактирования. При работе с арматурой убедитесь, что у вас выделен конец одной из костей, а не вся арматура. После завершения расположения кости, нажмите Tab для выхода из режима редактирования. Проверьте арматуру еще раз и убедитесь, что все кости размещены именно так, как нужно. Для добавления дополнительных костей снова нажмите Tab, и перейдите в Режим Редактирования. Вы сможете экструдировать дополнительные кости из окончаний уже имеющихся.
Следующим шагом будет создание связи Потомок-Родитель между мешем и арматурой, где меш будет потомком, а арматура - родителем. Удерживая клавишу "Shift", первым выберите меш, затем арматуру. Нажмите Ctrl-"P" для создания связи. В появившемся меню выберите опцию "Armature Deform" и "With Automatic Weights". Компьютер автоматически определит какие вершины какой костью будут деформироваться. Если автоматическое определение связи вершин с костями будет неверным - вы сможете позже это исправить. 250px
Для проверки работы только что созданной арматуры, выделите только арматуру и переключитесь с Объектного режима в режим "Pose". Выберите верхнюю кость и вращайте ее. Мешь будет деформироваться вместе с движением кости. Вращая нижнюю кость, вы будете вращать весь меш целиком.


BlenderBasics 3rdEdition2009b-13 5.jpg

РобоЧувак Говорит:
При переходе из режима Pose в Режим Редактирования арматура или объект вернутся в свое первоначальное положение до выхода из режима редактирования.

200px

Создание Сложных Цепочек Костей:

250px Экструдирование костей, как мы это только что делали, хорошо работает для простых арматур. Если вам понадобится создать более сложный скелет, вам нужно освоить еще несколько вещей, кроме экструдирования одной кости из конца предыдущей. Наверняка, вы заметили, что первая созданная кость является Родителем для всех остальных костей системы и вы можете экструдировать не только из ее верхнего но и из нижнего конца. Проблема лишь в том, что экструдированная из нижней части кость в режиме Pose не будет связанна с ней родительской связью. Вы можете создавать различные арматуры и объединять их с помощью команды Ctrl-"J". Но в режиме Pose эти цепочки арматур так же не будут связанны родительской связью между собой. Как же это исправить?


Первое что понадобится - знать название (Name) каждой кости. Вы можете в режиме Pose щелкать ПКМ по костям и имя каждой из них будет отображаться в левом-нижнем углу. Но гораздо удобнее видеть имена сразу всех костей, включив соответствующую опцию в разделе Object Data (теперь закладка выглядит как арматура). Пример на иллюстрации состоит из двух отдельных арматур, которые в объектном режиме были объединены командой Ctrl-"J".

При переходе в режим Pose эти две системы не двигаются совместно. В разделе Object Data на панели Display вы видите опцию Names - отображение имен костей на экране. Также здесь присутствуют опции формы отображения костей в сцене. Для исправления поведения двух арматур перейдите в раздел Bone, переключитесь в Режим Редактирования, определите название кости, которую хотите сделать Основным Родителем для остальных и выберите ее на панели Relations в поле Parent. Возможно вам понадобиться активировать опцию Connected.


Подсказки для Анимации:

При анимации арматуры есть несколько приемов, которые упростят вашу жизнь. Они обсуждались в главе об анимации, но мы еще раз вспомним их. При анимации вам нужно будет работать с большим количеством костей, имеет смысл воспользоваться инструментом Автоматического Создания Ключей Анимации (Automatic key-framing). Также будет полезным использование графического виджета вращения и шкалы времени для перехода между кадрами. Возможно, будет полезным еще раз просмотреть главу об анимации. Ниже на иллюстрации указаны основные инструменты, которые будут использоваться при анимации арматуры:



BlenderBasics 3rdEdition2009b-13 5.jpg

РобоЧувак Спрашивает: Почему анимация моей арматуры начинается не с 1-го кадра?
При использовании инструмента автоматического создания ключей анимации (automatic key-framing) не забывайте сделать небольшое перемещение костей в первом кадре, для создание начального ключа анимации. Затем вы можете как обычно перейти в следующий кадр и придать арматуре нужное положение. Многие начинающие Blender-аниматоры забывают создать начальный ключ анимации в 1-м кадре!

Создание Групп Вершин Костей

Использование опции автоматического назначения весов влияния перемещения кости на меш (Automatic Weights) отлично работает для простых цепочек костей и простых форм меша. Но когда кости или вершины меша расположены близко друг к другу либо очень далеко, у Blender могут возникнуть сложности с решением какие кости на какие вершины должны влиять. На примере справа вы можете видеть, как вершины меша на одном пальце были связаны с костью из другого. Мы можем избежать этого, используя Группы Вершин. 200px


BlenderBasics 3rdEdition2009b-13 5.jpg

РобоЧувак Говорит: Как вам в примере удалось сделать кости видимыми сквозь меш в режиме сплошного затенения?
Для этого используется опция "X-Ray", находящаяся в разделе Object Data на панели Display. С помощью нее вы сможете облегчить процесс работы с арматурой!

150px


Включите отображение названий костей, чтобы можно было видеть для какой кости вы создаете эффект на меше. Выделите меш и перейдите в режим редактирования. Редактирование групп вершин для костей похоже на работу с обычными группами вершин, отличие лишь в уже имеющихся названиях каждой группы и их связи с соответствующей костью. Все это было сделано автоматически при создании связи между мешем и арматурой. Если вы перейдете в раздел Object Data (мы все еще находимся в Режиме Редактирования меша), то увидите на панели Vertex Groups список всех имеющихся групп вершин на меше. Вы также увидите стандартные кнопки "Assign" (назначить) и "Remove" (снять назначение) под списком групп вершин.


Для исправления проблемы с нашем мешем, сначала нужно выделить проблемные вершины, затем выделить группу вершин, к которой они ошибочно были назначены и нажать кнопку "Remove". После этого данные вершины больше не будут связанны с этой группой вершин. В моем случае они были ошибочно связанны с костью "Bone.004". Я выбираю группу вершин, с которой они в действительности должны быть связаны (Bone.010) и нажимаю кнопку "Assign". Выйдите из режима редактирования, выберите арматуру и включите режим Pose для проверки работы системы арматур после изменений. 400px

Вершины, расположенные близко к месту соединения пальцев, могут принадлежать сразу нескольким группам. Вы можете использовать слайдер "Weight" для определения степени влияния кости на деформацию меша, но обычно используется значение 1.000.

Вам нужно вернуть арматуру из некоторого положения в изначальное? В разделе Object Data на панели Skeleton вместо "Pose Position" нажмите кнопку "Rest Position". Файл:BlenderBasics 4rdEdition2011-130 4.jpg

Использование Инверсной Кинематики (IK)

Инверсная Кинематика используется для манипуляции скелетом простым перемещением (G) конечной кости, при этом все остальные связные кости двигаются за ней. Инверсная Кинематика постоянно развивается и имеет большое количество опций в зависимости от необходимых вам параметров поведения скелета. Посетите сайты www.blender.org и b3d.mezon.ru для более подробного знакомства с ней.

300px Для использования Инверсной Кинематики выберите кость в конце цепочки, перейдите в раздел Bone Constraint и добавьте ограничитель Iverse Kinematics. Вы можете задавать количество костей в цепочке, для которых будет производиться расчет движения (Chain Length), а также можете выбрать Цель (Target), перемещением которой будет задаваться движение скелета (например Пустышку). Здесь есть и другие опции, включая Influence (влияние, количество эффекта). После добавления ограничителя вы можете перемещать ("G") крайнюю кость и остальные кости в цепочке будут следовать за ней.


BlenderBasics 3rdEdition2009b-13 5.jpg

РобоЧувак Говорит: Используйте команду Ctrl-"A" для сброса параметров поворота и масштабирования костей. Это поможет при работе с ограничителем Inverse Kinematics!


Использование Ограничителей Rotation (поворота):

При анимировании объекта (как, например, палец), вам наверняка захочется ограничить направления и углы поворота его частей. Иначе при создании ключей анимации могут получаться неестественные позы. Использование ограничителя Limit Rotation может значительно помочь в этом. На примере справа я добавил ограничитель к двум верхним костям пальца, установив ограничения поворота по осям Y и Z (0 градусов) и установил ограничение поворота от 0 до -60 градусов по оси X. Это отлично работает, потому что я переключил опцию Convert со значения "World Space" в "Local Space". Файл:BlenderBasics 4rdEdition2011-131 2.jpg

Ограничитель Copy Rotation (копирование поворота)

Ограничитель Copy Rotation может значительно упростить процесс анимации арматуры. Для примера я создал отдельную арматуру из одной кости (не в составе существующей арматуры) и связал ее с арматурой руки (связь типа Потомок-Родитель). Эта кость может быть расположена где угодно. Я расположил кость над пальцем, которым она будет управлять. Установите и настройте ограничители поворота, как мы это делали чуть раньше. Затем, добавьте ограничитель "Copy Rotation" к каждой кости, которая будет копировать движения управляющей. В поле Taret выберите имя управляющей кости. В моем случае, для правильной работы пришлось инвертировать (Invert) копируемое движение. Файл:BlenderBasics 4rdEdition2011-131 3.jpg

Практическое Задание: Создание скелета