Skinning (Скининг). Задача моделлера заключается в присвоении частей объекта определенным костям. Анимация239 С помощью специальных инструментов имеется возможность установки области влияния каждой кости или шарнира. Например, при движении руки у живого чело- века изменяются формы грудных мышц, плечевого пояса и спины. Если бы этой возможности в Blender не было, получился бы эффект сломанной конечности. Для упрощения настройки Skinning программа предлагает автоматическое распределе- ние областей влияния костей скелета. В некоторых случаях эта функция работает некорректно, поэтому имеется возможность ручной подгонки результата. Третий, заключительный этап — создание анимации. Для этого программа предла- гает специальный режим работы с арматурой, который называется Pose Mode (Режим позы). Работа заключается в создании анимационных ключей для каждого движения. Эти последовательности носят название Action (Действие) и могут ком- бинироваться в специальном редакторе. Таким образом, для работы с арматурой программа имеет целых три режима: Object Mode (Режим объекта) — манипуляция всем скелетом в пределах сцены; Edit Mode (Режим редактирования) — редактирование костей и настройка связей; Pose Mode (Режим позы) — создание анимации. Все эти режимы становятся доступными в меню Mode окна 3D View при выделе- нии объекта Armature. Конечно же, использовать арматуру можно не только для движения персонажей. Рассматривайте скелетную анимацию лишь как еще один очень эффективный спо- соб анимации объекта. 5.7. Создание и редактирование скелетаСоздание скелета, правильная настройка костей — очень важный этап, от которого будет зависеть дальнейшая анимация модели. Тема сложная и многогранная, по- этому рассматривать работу с арматурой будем с помощью небольших практиче- ских уроков. Как вы уже знаете, базовой частью скелета является Bone, или кость. Именно ее предлагает создать Blender в меню Add | Armature. Арматура является стандарт- ным объектом программы, который подчиняется основным правилам манипулиро- вания в сцене. Кость как отдельный элемент Armature доступна для редактирова- ния в режиме Edit Mode. Прежде чем начинать работу со скелетом, советую включить режим просмотра Front View, который является наиболее удобным. Итак, добавьте в сцену объект Single Bone и нажмите клавишу . В режиме редактирования у кости можно выделять и манипулировать всеми эле- ментами (см. рис. 5.34). Правда, в зависимости от выделения будут доступны раз- ные режимы манипулирования: Root и Tip позволяют изменять размер и ориентацию кости с помощью манипу- лятора Grab ();
240 Глава 5 выделение Body отмечает целиком всю кость, поэтому становятся доступными все три вида манипуляции: перемещение, ротация, масштабирование. Создавать дополнительные кости можно различными способами, но удобнее ис- пользовать стандартную функцию Extrude. Выделите верхнюю сферу кости (Tip) и нажмите клавишу . Сдвиньте мышь в любом направлении (рис. 5.35). Рис. 5.35. Результат Extrude для Tip Теперь проделайте ту же операцию, но со сферой Root первой кости. И в этот раз создастся новый элемент, но между этими, казалось, одинаковыми результатами имеется серьезное отличие. В первом случае была создана неразрывная цепочка, где начальный объект являлся родительским, а второй — подчиненным. Попробуй- те сдвинуть любой из них (выделите для этого Body) и убедитесь в том, что они неразрывно связаны между собой. Однако попытка переместить третью кость, соз- данную из Root, приведет к тому, что она оторвется и отправится в "свободное плавание", как отдельный объект. Таким образом, Bone, созданная из Root другой кости, является отдельным элементом, но принадлежит к одной и той же арма- туре.Это следует запомнить. Для редактирования скелета имеется стандартный набор функций, что и для эле- ментов Mesh: Extrude, Duplicate, Subdivide, Delete, Merge. Как и обычно, они дос- тупны в виде горячих клавиш, на панели Tool Shelf или в меню Armature. Прин- цип использования их практически ничем не отличается от ранее рассмотренных объектов Mesh. Поэтому заострять внимание на них не будем. Вы всегда сможете
Анимация241 найти описание функций в соответствующем разделе книги. Конечно же, есть и специфический набор, характерный только для Armature. Удалите из сцены все кости, кроме первой. Разверните Bone по оси X на 180 граду- сов, т. е. так, чтобы сфера Root оказалась вверху объекта. Выделите Tip и создайте новую кость с помощью функции Extrude. Еще раз выделите Tip первой кости и добавьте второй элемент. На рис. 5.36, а новые кости располагаются свободно, имеют разный размер и ме- стоположение. Вроде бы ничего необычного, но если учесть, что строение любых живых организмов симметричное, то легко представить объем работы, необходи- мый для создания одинаковых частей скелета. Разработчики программы предлагают легкий способ создания симметричной арма- туры, но для этого нужно учитывать важный момент — давать правильные имена звеньям. Это выполняется на специальной панели Bone окна Properties (рис. 5.37). В верхней части панели имеется окошко, где можно изменить текущее имя эле- мента. По умолчанию Blender создает производные имена от слова Bone (Bone001, Bone002 и т. д.). Дайте следующие названия имеющимся элементам: первая, главная кость — Root; кость справа — Shoulder_R; кость слева — Shoulder_L. С английского слово "Root" переводится, как "Корень", а "Shoulder" — "Плечо". Дело вовсе не в конкретном слове. Вы вправе называть кости как заблагорассудит- ся, но если хотите использовать симметричное редактирование, то прибавляйте к имени через подчеркивание ключевые буквы: "R" или "Right" для правой стороны; "L" или "Left" для левой стороны. В этом случае программа сможет определить, что данные звенья являются симмет- ричными по отношению друг к другу. Для включения собственно режима симметричного редактирования имеется специ- альная опция X-Axis Mirror на панели Tool Shelf (рис. 5.38). Установите галочку в данной опции и попробуйте переместить Tip любого из эле- ментов с именем Shoulder. Программа мгновенно выровняет параллельную Bone симметрично выделенной (рис. 5.36, б). Теперь любые операции с такими костями (добавление, манипулирование, удаление) будут дублироваться противоположной стороной. Интересно, что программа при создании нового элемента уже будет при- бавлять указанный суффикс к его имени. Устали держать руку на мышке? Поднимите и взмахните ею в воздухе. Как ви- дите, движение начинается от плеча, которое поступательно передается всей руке. В мире Blender такое поведение костей называется прямой кинематикой(Forward Kinematics, FK). По умолчанию арматура работает именно так. А теперь 242 Глава 5 а б Рис. 5.36. Кости созданы в "свободном" режиме (а ), результат включения функции X-Axis Mirror ( б )
Анимация 243 представьте, что вы с кем-то здороваетесь за руку. В этом случае, движение начи- нается с кисти и передается по цепочке назад. Это уже инверсная кинематика (Inverse Kinematics, IK). Рис. 5.38. Опция X-Axis Mirror для арматуры Рис. 5.39. Режим Pose Mode меню Mode Рис. 5.37. Настройки отдельной кости Для настройки кинематики и создания анимации используется специальный режим Pose Mode (Режим позы)(рис. 5.39). Переключитесь в этот режим и передвиньте любую кость, а теперь нажмите кла- вишу для возврата в Edit Mode. Вы увидите, что расположение костей раз- ное, в зависимости от выбранного режима. Манипуляции в Pose Mode не влияют на основное строение арматуры, в то же время изменение костей в режиме Edit Mode отразится для Pose Mode. Для понимания работы FK и IK выполним настройку руки, от кисти до плеча. До- бавьте еще три кости к любой из Shoulder и назовите их Forearm (предплечье), Arm (рука), Hand (кисть) соответственно. Переключитесь в режим Pose Mode и попробуйте сдвинуть кость Forearm. Вслед за этой Bone будет двигаться остальная часть "руки" (рис. 5.40). С ОВЕТ По умолчанию в сцене Blender присутствует вспомогательная решетка, которая помо- гает подгонять узлы объекта при моделировании. Если она вам мешает, то ее можно временно выключить с помощью опции Grid Floor на закладке Display панели свойств ().
244 Глава 5 Рис. 5.40. Здесь движение руки от плеча (FK) А теперь подготовим "руку" к крепкому, дружескому пожатию. Создание IK-связи можно выполнить разными способами, но наиболее простой — это воспользоваться специальным Constraint. Выделите кисть (Hand) в режиме Pose Mode и откройте панель Constraint в окне Properties (рис. 5.41). Рис. 5.41. Настройки IK
Анимация 245 Нужный ограничитель называется IK (Inverse Kinematics). После его добавления к Bone вы увидите пунктирную линию, протянувшуюся от кисти до Root. Так Blender отмечает элементы, которые будут участвовать в цепочке IK. Если теперь попробовать передвинуть кисть, то весь скелет придет в движение. Нам этого не нужно. Правильным решением этой проблемы является ограничение цепочки IK костью плеча (Shoulder). Это можно сделать в настройках ограничителя IK (см. рис. 5.41). Здесь всего лишь нужно указать в параметре Chain Length количество костей, участвующих в це- почке IK. По умолчанию там находится значение 0. В этом случае, ограничитель использует максимально возможное количество звеньев. Введите в поле цифру 4 и пунктир перебросится к корню Shoulder (рис. 5.42). Рис. 5.42. Здесь движение руки от кисти к плечу Теперь возможно движение костей руки, как от плеча, так и от кисти. При этом ос- тальные кости скелета в процессе не участвуют. Запомните, в отличие от Edit Mode с включенной опцией Axis Mirror, настройка костей в Pose Mode осуществляется индивидуально. Не рассчитывайте, что проделанные манипуляции с IK отразятся на другой части скелета. Внимательный читатель, испытавший на практике этот урок, заметит неправильное поведение костей руки. Так, плечо (Shoulder) слишком выдвигается при движении кисти вперед или назад, то же самое происходит при поднятии или опускании ко- нечности. Попробуйте сами выполнить похожие движения рукой, чтобы понять, о чем идет речь. У реального человека эта часть тела относительно неподвижна.
246 Глава 5 Blender позволяет настроить индивидуально каждую кость, участвующую в цепоч- ке IK. Эти параметры находятся в группе Inverse Kinematics в окне Properties (рис. 5.43). Установка ограничений (не путать с Constraint) возможна по всем осям элемента. Тут все просто, выбираете нужную ось, включаете опцию Limit и в соответствую- щих полях устанавливаете минимальный и максимальный угол отклонения. Выделите плечо ( Shoulder). Движение плеча может осуществляться только по двум координатам: X и Z. Соответственно, необходимо отключить перемещение его по Y, Сделать это можно, включив кнопочку с замком с соответствующей буквой (см. рис. 5.43). Установите галочки в полях Limit (Лимит) для осей X и Z. Программа активирует опции настройки значений. Обратите внимание, что в окне 3D View появились окружности красного и синего цвета вокруг выделенной кости (рис. 5.44). Так Blender отображает возможный угол движения элемента. По умолчанию минимальные и максимальные значения для обеих осей установлены в 180 градусов — это явно излишне. Пусть плечо бу- дет двигаться лишь в пределах 20 градусов в каждом направлении. Поменяйте зна- чение лимита для всех полей. Не забудьте сохранять знаки плюса или минуса! Вот теперь движение конечности выглядит гораздо естественнее. Рис. 5.43. Настройки IK для выделенной кости Рис. 5.44. Визуальное отображение лимита движения Анимация 247 5.8. Наращиваем "мясо" Создание и настройка скелета — это всего лишь полдела. Теперь нужно правильно присоединить его к модели, для которой он создавался. Blender предлагает несколько вариантов создания привязки (Skinning). Удобнее все- го использовать автоматический, когда программа на основе сопоставления эле- ментов скелета и модели создает области воздействия. Правда, все равно некоторые места придется дорабатывать вручную. С помощью разд. 5.7 вы уже сделали арматуру, где имеется настроенная инверсная кинематика одной из руки. Если нет, то вы можете воспользоваться готовым фай- лом Scenes\glava5\glava5_simple_armature.blend из архива примеров к этой книге (см. приложение 2). Однако сначала нужно создать модель для арматуры. Ограничимся созданием че- ловеческого торса с двумя конечностями. Не будем гоняться за реалистичностью, важно научиться работать со Skinning. Основой модели послужит обычный примитив Cube. Добавьте куб в любом удоб- ном месте сцены и переключитесь в ортогональную проекцию Front View. Для быстроты воспользуемся принципом симметричного моделирования. Нажмите для редактирования куба и, используя функцию Subdivide (), дважды разбейте структуру объекта. Переключитесь в режим Wireframe () и удалите все вершины с левой стороны до центра. Добавьте к примитиву модификатор Mirror (рис. 5.45). Рис. 5.45. Заготовка для торса Сожмите немного куб по оси Y с помощью Scale (). Это можно сделать и в ре- жиме редактирования. Теперь ему нужно придать более обтекаемую форму. Выде- лите вершины, как показано на рис. 5.46. Используя инструменты масштабирова- ния и перемещения, добейтесь округлой формы.
248 Глава 5 Рис. 5.46. Переместите эти вершины для сглаживания краев Рис. 5.47. Сужение торса к основанию Теперь выделите центральные вершины между указанными на рис. 5.46 и немного сдвиньте по оси X. Получившийся цилиндр мало похож на человеческий торс. Включите общее сгла- живание для объекта (это можно сделать в Tool Shelf путем нажатия кнопки Smooth, но только в режиме Object Mode) и добавьте еще один модификатор Subdivision Surface (Разбиение поверхности). Этот инструмент работает наподобие Multires и создает сглаженные поверхности путем увеличения промежуточных элементов. Установите в настройках модификатора цифру 2 в опциях View и Render. Полученный объект больше смахивает на кусок мыла, поэтому немного доработаем его. Выделите все нижние вершины и сместите вниз по оси Z для придания объекту вытянутой формы. Используя манипулятор Grab, сузьте низ модели (рис. 5.47). Теперь осталось дело за малым — добавить руки. Основой конечности послужат два полигона в верхней части торса. Выполните следующие шаги: 1. Нажмите клавишу и немного вытяните новые грани. Проделайте эту опера- цию трижды. Таким образом вы создадите место для изгиба плеча. Впоследст- вии это пригодится. 2. Выполните Extrude и переместите полигоны на расстояние, достаточное для создания предплечья. Уменьшите размер граней с помощью масштабирования. 3. Создайте еще три ступени граней для локтевого сгиба. 4. Нажмите и выдавите следующую часть конечности. Уменьшите масштаб. 5. Проделайте эти же операции для создания кисти. Таким образом, у вас должна получиться грубая заготовка руки, как на рис. 5.48.
Анимация 249 Рис. 5.48. Макет руки По желанию вы можете довести модель торса до приемлемого вида. Используйте перемещение вершин, инструмент пропорционального редактирования и даже скульптурные кисти. Помните, если имеющейся структуры недостаточно, то вы всегда можете добавить новые ребра с помощью инструмента Loop Cut and Slide (Создать петлю и переместить) (+). А вот теперь настало время совместить арматуру с моделью. В режиме Object Mode переместите скелет в центр модели. Скорректируйте масштаб, если это нужно. Основная задача состоит в том, чтобы каждая кость и каждый сустав находился в положенном месте. Так кость Shoulder должна заканчиваться на суставе плеча, Forearm — в месте локтя, а Hand — покрывать кисть. Подгонка костей осуществ- ляется в режиме редактирования арматуры. Наверняка возникнет сложность изменения костей из-за того, что они перекрыва- ются структурой модели. Конечно, можно переключиться в вид Wireframe, но есть способ поизящнее. Blender имеет глобальные настройки Armature, которые позволяют управлять внешним видом скелета и не только. Все эти опции доступны в окне Properties группы Display (рис. 5.49). Кнопки Octahedral (Восьмигранник), Stick (Палка), B-Bone (B-кость), Envelope (Оболочка), Wire (Проволока) отвечают за внешний вид костей. Изменение стан- дартного Octahedral на что-то другое может быть полезно при специфичных зада- чах, например Stick удобно использовать для арматуры пальцев. Помимо кнопок в группе имеются переключатели: Names (Имена) — при включении этой опции Blender будет отображать имя каждой кости в сцене;
250 Глава 5 Рис. 5.49. Настройки арматуры Axes (Координаты) — показ локальных координат костей. Работает для выде- ленных элементов и только в режимах Edit Mode и Pose Mode; Shapes (Формы) — для удобства можно поменять внешний вид кости на любой иной объект. Опция Shapes позволяет это сделать; Colors (Цвета) — цветное отображение групп костей; X-Ray (Рентген) — установка данной опции заставит арматуру просвечивать сквозь модель; Delay Refresh (Задержка обновления) — опция используется только в Pose Mode. Отключает деформацию. Включите X-Ray и установите кости, как на рис. 5.50. Рис. 5.50. Совмещение арматуры с моделью
Анимация251 ЭТО ВАЖНО! Перед выполнением подгонки арматуры к модели желательно выполнить сброс пара- метров трансформации костей, особенно ротации. Это можно сделать в режиме Pose Mode, выбрав соответствующий тип в меню Pose | Clear Transform. Во избежание проблем с анимацией выделите кости и нажмите +. Для привязки арматуры к модели переведите оба объекта в режим Object Mode. Сначала выделите модель, затем, удерживая нажатой клавишу , отметьте скелет. Нажмите клавиши + для вызова контекстного меню Set Parent и выберите в нем пункт With Automatic Weights (Автоматический вес). Опция заставит Blender создать группы вершин для модели и привязать их к соот- ветствующим костям. Группы вершин — это запоминание части элементов объекта для последующего использования сторонними функциями, например модификаторами. Увидеть соз- данные группы можно на панели Object Data (рис. 5.51). Рис. 5.51. Группы вершин В списке Vertex Groups находятся группы, привязанные к определенным костям и имеющие те же названия. Работа с ними не отличается от использования мультима- териалов, которые рассматривались в главе 4. После выделения нужной группы вы можете просмотреть элементы (Select), добавить новые вершины (Assign) или уда- лить их (Remove). Вернемся к нашей модели. Попробуйте в режиме Pose Mode подвигать костями арматуры. Вы увидите, что части модели будут послушно следовать за ними (рис. 5.52). Хотя Blender старается в автоматическом режиме правильно создать и привязать группы вершин к костям, но не всегда это гладко получается. Бывает так, что при движении какой-либо кости перемещается ненужная часть модели или, как в дан-
252 Глава 5 ном случае, происходит наложение поверхности Mesh-объекта (присмотритесь внимательнее к области живота на рис. 5.52). Вот эти искажения необходимо исправлять вручную. Есть два пути: отредактиро- вать область вершин конкретной кости в специальном режиме или создать новую группу с привязкой к арматуре. Рис. 5.52. Арматура привязана к модели В терминологии Blender имеется понятие "вес вершин", которое используется в разных областях программы. В применении к Skinning под этим понимается сте- пень подвижности вершин по отношению к каждой кости. Blender предлагает спе- циальный режим Weight Paint (Окраска вершин) окна 3D View, который позволяет визуально настраивать вес вершин. Выбрать его можно в меню Mode, предвари- тельно выделив редактируемый Mesh-объект (рис. 5.53). Если выделить любую кость арматуры, привязанной к модели, то Blender отобразит в цветовой гамме степень влияния Bone на близлежащие вершины. Чем темнее цвет, тем менее подвижна вершина. Таким образом, прощелкав по всем костям, можно определить, как программа будет деформировать модель при анимации. Однако главное назначение этого режима — редактирование веса вершин. По сути, инструментарий здесь ничем не отличается от ранее рассмотренного Vertex Paint (Окраска вершин). Вы можете выбрать тип кисти, силу воздействия (Strenght), радиус курсора (Radius).
Анимация 253 Сначала нужно выделить кость, которая неправильно деформирует модель, и на- строить кисть. На панели Tool Shelf есть опция Weight (Вес). Чем больше значение этого параметра, тем ярче цвет окрашиваемой вершины, и соответственно, она ста- новится более подвижной по отношению к выделенной кости. Рис. 5.53. Модель в режиме Weight Paint После настройки кисти можно смело окрашивать вершины. Для удобства будет не- лишним развернуть кость так, чтобы были видны нарушения. При этом Blender в реальном времени отобразит изменение деформации области вершин по мере их настройки. Посмотрите на рис. 5.52. Разрыв в области живота вызван тем, что скелет модели сделан не полностью и программа не смогла правильно настроить вес вершин. От- редактировать нужные области для имеющихся костей, как уже оказалось, не пред- ставляет особого труда. Но можно добавить новые Bone к арматуре и привязать к ним группы вершин. Основная работа выполняется на панели Object Data в группе Vertex Groups. Как работать с группами, мы уже рассматривали. После создания новой группы ее нужно привязать к кости. Это можно сделать с помощью меню Parent, но в этот раз нужно будет выбрать пункт Bone. После при- вязки группы к кости необходимо настроить вес вершин в режиме Weight Paint. 5.9. Для чего нужны "ограничители" Вы уже знаете, что Constraint — это дополнительные функции, которые позволяют контролировать анимацию объекта. Некоторые из них уже рассматривались, при- менительно к скелетной анимации, но использование Constraint не ограничивается только арматурой.
254 Глава 5 Меню Constraint в окне Properties содержит большое количество пунктов (рис. 5.54). Все они разбиты на четыре группы. Motion Tracking (Отслеживание движения). Начиная с версии 2.61, в Blender появилась технология Motion Tracking. Это дает возможность программе от- следить перемещение объекта на видео с помощью специальных меток. Transform (Трансформация).Набор ограничителей, обеспечивающих контроль над свойствами объектов: позиции, масштаб, ротация. Tracking (Слежение). Здесь предлагается набор функций, способных настроить поведение одного объекта в зависимости от другого. К примеру, с помощью ограничителя Track To можно с легкостью заставить камеру всегда следить за перемещением объекта. Relationship (Связь). Ограничители данной группыпозволяют манипулировать связями между объектами, как, например, функция Follow Path. Рис. 5.54. Меню Constraint Работа с Constraint напоминает чем-то использование модификаторов. Здесь также имеется возможность добавления нескольких ограничителей к одному объекту, но в отличие от модификатора, Constraint не может быть применен (рис. 5.55). Стандартный заголовок Constraint позволяет: переименовать его, отключить рабо- ту (кнопка в виде глаза), переместить по стеку и удалить. Особо важная опция — Рис. 5.55. Заголовок Constraint
Анимация255 это перемещение по стеку. Результат работы нескольких ограничителей может зависеть от порядка их расположения. Наиболее популярная группа по использованию — это Transform. Начнем рас- смотрение ограничителей с нее. В эту группу входит десять Constraint. Copy (Location, Rotation, Scale, Transforms) (Копировать (Расположение, Вра- щение, Масштаб, Трансформация)). Задача этих ограничителей состоит в копи- ровании выбранных параметров у объекта, указанного в поле Target, и присвое- нии их к текущему объекту (рис. 5.56). В ограничителях этого типа присутству- ют опции выбора координатных осей и системы (локальная или глобальная). Рис. 5.56. Ограничитель Copy Location На практике такие ограничители могут использоваться для настройки вспомога- тельных элементов при анимации скелета. Так, на рис. 5.57 показана арматура кисти, где для движения указательного пальца используется дополнительная кость, не привязанная к модели. Собственно, Constraint применен к фаланге пальца. В данном примере используется ограничитель Copy Rotation. Limit (Distance, Location, Rotation, Scale) (Ограничить (Расстояние, Располо- жение, Вращение, Масштаб). Как вы уже догадались, назначение этих Constraint в ограничении движения или деформации по определенным осям. Возьмем, к примеру, анимацию пальца на руке. В реальности у живого человека пальцы могут раздвигаться или гнуться на определенный угол. По умолчанию кости кисти на рис. 5.57 способны вращаться так, как им заблагорассудится. Для установки лимита на вращение можно использовать ограничитель Limit Rotation. В настройках Constraint достаточно выбрать нужную ось вращения, установить минимальное и максимальное значения параметров движения (рис. 5.58). Особняком в группе Limit находится ограничитель Limit Distance. Его исполь- зуют для установки минимального расстояния, которое должно выдерживаться между двумя объектами. При движении главного объекта подчиненный всегда будет следовать за ним на установленном расстоянии. Примером может служить движение локомотива с вагонами. 256 Глава 5 Рис. 5.57. Дополнительная кость обеспечивает удобное управление арматурой Рис. 5.58. Ограничитель Limit Rotation С ОВЕТ Многие Constraint имеют в своих настройках параметр Influence , который отвечает за точность выполнения поставленного условия. При уменьшении этого значения у кон- тролируемого объекта появляется большая свобода в действии. Maintain Volume (Обслуживание объема). Очень простой ограничитель, позво- ляющий контролировать сжатие объекта. Не стоит путать этот эффект с измене- нием масштаба! Настройки тут минимальные: выбор оси и установка качества деформации (рис. 5.59). Группа Tracking содержит семь Constraint. Clamp To (Фиксировать). По своей функциональности этот ограничитель похож на рассматриваемый ранее Follow Path. Однако для работы с последним нужно
Анимация 257 Рис. 5.59. Maintain Volume . Сверху результат работы ограничителя, снизу обычное масштабирование создавать временные ключи (см. разд. 5.4). Использование ограничителя Clamp To намертво привязывает объект к траектории, что позволяет анимировать его с помощью простых анимационных ключей позиции. Рассмотрим несложный пример. Создайте в сцене два объекта — Cube и Curve Path. Измените форму кривой, как вам заблагорассудится. Добавьте к кубу ограничитель Clamp To (рис. 5.60). Рис. 5.60. Ограничитель Clamp To Использовать этот Constraint просто. В поле Target необходимо установить кривую Path, выбрать ось в группе Axis и, при необходимости, зациклить ани- мацию в опции Cyclic. Выполните выше описанные действия и попробуйте просто передвинуть куб. Вы увидите, что вне зависимости от выбранной оси движения объект будет перемещаться только по установленной кривой. Для создания анимации нужно установить обычные ключевые кадры Location. Попробуйте сделать простейшую анимацию. Сделайте нулевой кадр ключевым, нажмите клавишу и выберите пункт Location в появившемся меню. Устано-
258 Глава 5 вите другой активный кадр, передвиньте объект и добавьте новый ключ Location. Сочетание клавиш + заставит куб двигаться по кривой. Как видите, использовать Clamp To гораздо удобнее, нежели Follow Path. Но у этого ограничителя имеется один существенный недостаток. Здесь нет воз- можности установки ориентации объекта по движению. Damped Track (Мягкое слежение). Используйте этот ограничитель, если хотите, чтобы ось объекта всегда "смотрела" в сторону другого объекта. В настройках имеется выбор Target и установки оси. Inverse Kinematics (Инверсная кинематика). Инверсная кинематика рассматри- валась в разд. 5.7. Locked Track (Блокировка слежения). Смысл этого ограничителя заключается в "замораживании" одной из оси объекта. Проще всего представить работу Locked Track на примере обычного компаса. Вы можете переворачивать компас, как за- благорассудится, но стрелка всегда будет указывать на север, при этом вращаясь на оси шпиля. Spline IK (Кривая IK). Ограничитель, который поможет выровнять кости арма- туры при помощи кривой. Это может пригодиться, к примеру, для создания мо- дели змеи (рис. 5.61). Рис. 5.61. Ограничитель Spline IK Stretch To (Эластичность). Объект, после выбора этого ограничителя, всегда "смотрит" на Target и изменяет свой масштаб по одной из оси при движении последнего. Track To (Слежение).Наиболее популярный Constraint, который чаще всего используется для привязки одного объекта к другому. К примеру, с помощью него можно заставить камеру следить за движущимся объектом.
Анимация 259 С ОВЕТ Некоторые Constraint настолько популярны, что могут устанавливаться горячими кла- вишами. К таким относятся: Damped Track, Track To и Lock Track . Выделите первым объект, к которому должен быть присоединен ограничитель, затем с помощью клави- ши добавьте объект Target и нажмите +. Появится меню с указанны- ми Constraint . Нужно заметить, что в данном случае Blender выполнит автоматиче- скую настройку ограничителей, которая вполне оказывается работоспособной. Группа Relationship (Связь) содержит еще 8 типов ограничителей. Action (Действие). Ограничитель, позволяющий использовать анимацию объек- та Target для собственной анимации. Звучит достаточно запутанно, поэтому рассмотрим его использование на простом примере. Добавьте в сцену примитивы Cube и Sphere. Пусть куб у нас будет иметь про- стейшую анимацию движения из точки А в точку Б за 25 кадров. Создайте эту анимацию с помощью ключей Location. По умолчанию программа добавит дей- ствие с названием CubeAction (вы его можете увидеть, например, в окне DopeSheet). Теперь к сфере присоедините ограничитель Action (рис. 5.62). Рис. 5.62. Настройки Action В опции Target выберите из списка примитив Cube, а в Action — CubeAction. Параметр Transform Channel отвечает за действие, которое будет производить объект. Выберите из списка опцию Location X (движение по координате X). Группа Action Lenght позволяет выбрать начальный (Start) и конечный (End) кадры анимации. Так как движение куба осуществляется с 1 по 25 кадр, то уста- новите в соответствующие поля эти значения. Action Length отвечает за время анимации главного объекта. Группа Target Range имеет поля для установки минимального и максимального значений смещения главного объекта. Установите их в 0. Теперь при проигрывании анимации будет видно, что сфера совершает прыжок из точки А в точку Б, пока движется куб. Попробуйте установить в поле Max
260 Глава 5 значение 3 и еще раз включите анимацию. На этот раз сфера совершит плавное перемещение вместе с кубом. Child Of (Дочерний элемент). Установка родительской связи между объектами наподобие известной функции Parent. В отличие от последней имеет возмож- ность более широкой настройки связи объектов. Floor (Пол). Этот Constraint может использоваться для создания непроходимых препятствий, таких как стены или пол. Смысл его заключается в том, что по дос- тижении объекта Target ограничитель запрещает перемещение главного объекта в выбранном направлении. Создайте в проекте Plane и расположите над ним UV Sphere. Присоедините к сфере ограничитель Floor. В качестве параметра Target выберите примитив Plane. Так как движение сферы осуществляется по координате Z (сверху вниз), то включите кнопку Z в настройках Floor (рис. 5.63). Рис. 5.63. Настройки Floor Попробуйте переместить сферу вниз, и вы увидите, что она "упирается" в плос- кость (своим центром). Вы можете передвигать ее по координатам X или Y, или даже по Z, но не ниже Plane. В параметрах Floor имеется опция Sticky. Включите ее, если хотите, чтобы сфе- ра при соприкосновении "прилипала" к Target. В этом случае остается лишь возможность движения объекта по оси Z вверх. Follow Path (Следовать маршрутом). Движение по траектории рассматривалось в разд. 5.4. Pivot (Центр). По умолчанию вращение объекта осуществляется вокруг его цен- тра. Этот ограничитель позволяет использовать в качестве центра вращения объект, указанный в поле Target. Rigid Body Joint (Соединитель Rigid Body). Специфичный ограничитель, ис- пользуемый для настройки физики объекта. Script (Скрипт). Позволяет выбрать скрипт для выполнения. По умолчанию вер- сия Blender не имеет сторонних скриптов Constraint.
Анимация 261 Shrinkwrap (Упаковка). С помощью этого ограничителя можно получить эф- фект, когда один объект при соприкосновении с другим как бы обтекает его со стороны. 5.10. Работа с Action Editor Вы уже знаете, что анимация арматуры создается в режиме Pose Mode. Принцип работы все тот же — использование ключевых кадров. Откройте проект Blender, где вы создали скелет человеческого торса, или загрузите файл Scenes/glava5/ glava5_skin_simple.blend из архива примеров к этой книге (см. приложение 2). Выделите арматуру и включите режим Pose Mode. Для настройки анимации опти- мально подходит раскладка окон Animation. Выберите ее из главного меню про- граммы. В отличие от ранее рассмотренных способов, анимация арматуры выглядит не- сколько сложнее из-за обилия элементов скелета. Поэтому, в данном случае, удоб- нее использовать режим автоматической записи (см. рис. 5.2). Активируйте крас- ную кнопку записи в окне Timeline. Теперь попробуем создать первое движение скелета. Пусть это будет поднятие вверх руки, которая имеет настроенный IK-привод. Текущим фреймом установите кадр 0. Выберите самую нижнюю Bone, нажмите клавишу для вызова меню Insert Keyframe (рис. 5.64). Рис. 5.64. Начальная позиция скелета Для работы с арматурой данное меню имеет пункт Whole Character (Весь персо- наж). При выборе этой опции Blender создаст ключевые кадры всех костей выде- ленного скелета. Выберите этот пункт.
262 Глава 5 Если вы посмотрите на окна Dope Sheet и Curve Editor, то увидите список всех Bone, участвующих в анимации. Теперь передвиньте анимационный курсор на несколько кадров дальше. Подними- те руку. Так как кнопка записи анимации ранее была включена, то программа соз- даст ключи для нужных костей (5.65). Рис. 5.65. Окно Dope Sheet для арматуры Таким образом, вы можете создавать любую мыслимую анимацию своей модели. Работа с Dope Sheet и Curve Editor уже рассматривалась. Теперь представьте ситуацию, когда необходимо выполнение разных действий персонажа. Допустим, модель должна уметь ходить, бегать, да хоть плясать впри- сядку! Все это сделать можно, но несложно догадаться, какой объем анимации придется выполнить. Ведь даже для одного действия, скажем бега, будут задейст- вованы почти все кости скелета. Обилием ключевых точек в анимационных редак- торах вы будете обеспечены. И если вдруг понадобится скорректировать время вы- полнения нужной анимации, то немудрено будет запутаться. "Действие" (Action) — это слово уже не раз использовалось в книге, но в данный момент здесь понимается специальная возможность, предоставляемая программой. Действием называется законченная анимация, объединяющая в себе множество движений элементов объекта. Таким образом, бег, ходьба, пляска — это Action. Конечно, вы вправе не использовать действия в своей анимации, а просто ограни- читься ключами, но посмотрим на преимущества этой техники. Action не зависят друг от друга. А это значит, что вы можете редактировать каждое действие, без боязни нарушить другие. Action могут многократно использоваться в общей анимации объекта со сдви- гом во времени или даже скорости исполнения. Action могут экспортироваться в другие форматы (вместе с моделью) для ис- пользования в сторонних программах. Даже если вы не планируете использовать действия в своей сцене, при работе с анимацией Blender автоматически их создает. Но они являются одиночными для
Анимация 263 каждого объекта. Посмотрите на рис. 5.65, где показывается окно Dope Sheet. В левой части редактора список костей объединен в папку с названием ArmatureAction. Это и есть автоматически созданное действие для арматуры. Забегая вперед скажу, что в Blender имеется специальный редактор для работы с Action — NLA Editor. С его помощью и контролируется глобальная анимация объекта и сцены. Но сначала нужно научиться создавать свои собственные действия. Для этой цели редактор Dope Sheet имеет специальный режим Action Editor (Редактор действий), который доступен в меню Mode на заголовке окна (рис. 5.66). Рис. 5.66. Редактор Dope Sheet в режиме Action Как видите, внешне Action Editor особо не отличает- ся от стандартного Dope Sheet. По сути дела, это все- го лишь смена режима работы окна Dope Sheet, и основные возможности редактирования анимации здесь не претерпели никаких изменений. Но несколь- ко изменился заголовок окна, где появилось поле управления действиями (рис. 5.67). Рис. 5.67. Опции управления действиями Это стандартный интерфейс создания новых блоков данных Blender. Такой, напри- мер, используется для мультиматериалов или текстур. Вы можете: переименовать текущее действие, щелкнув по его названию; выбрать иное из списка; добавить или удалить с помощью кнопок "+" и " ".
264 Глава 5 Так как вы сделали ранее анимацию движения руки, то действие уже существует и называется ArmatureAction. Теперь щелкните по кнопке со знаком плюс для до- бавления нового Action. Внешне при этом в окне Action Editor ничего не изменит- ся. Дело в том, что Blender при создании действия копирует данные ключей из ак- тивной зоны. Выделите все ключи клавишей и нажмите для удаления. Теперь вы можете создавать новые движения персонажа. 5.11. NLA Editor — заключительный аккорд Non-Linear Animation Editor (НеЛинейный Анимационный Редактор) — это высо- коуровневый редактор, который позволяет компоновать все анимации сцены удоб- ным и понятным для пользователя способом. С помощью NLA Editor появляется возможность компоновки анимации в любой последовательности и с различными эффектами. Вся анимация в окне редактора выглядит в виде полосок, с которыми и происходит работа. Вы можете выстроить их одну за другой, изменить время запуска, увеличить или уменьшить скорость и многое другое. Если вы работали раньше с какой-нибудь программой видеомонта- жа, то подобная концепция будет вам знакомой. Рассмотрим работу с этим редактором с помощью простого примера. В нашей сце- не будут участвовать два объекта: Cube и UV Sphere. Куб двигается по горизонта- ли, сталкивается со сферой, которая отлетает в сторону. Создайте новую сцену Blender и добавьте сферу. Переключитесь в режим просмот- ра Front. Разместите два объекта на некотором удалении друг от друга. Сначала нужно сделать анимацию. Включите раскладку окон Animation и активи- руйте в окне Timeline режим автоматической записи (рис. 5.68). Рис. 5.68. Подготовка к анимации Выделите куб, нажмите клавишу для вызова меню Insert Keyframe. В этом ме- ню выберите пункт Location. Установите анимационный курсор в окне Timeline на кадр 20. Теперь передвиньте куб вправо близко к сфере.
Анимация265 Займемся анимацией сферы. Установите активным первый кадр. Выберите сферу и создайте ключ Location. Затем в кадре 20 передвиньте сферу вправо на некоторое расстояние. Нажмите клавиши + для проигрывания анимации. Вы увидите, что оба объекта одновременно уедут в правую сторону. Это, конечно, не тот результат, ко- торый нужно достичь, но все можно исправить в NLA Editor. Откройте в любом удобном месте окно NLA Editor, например на месте Dope Sheet. Окно редактора разбито на две области: в левой отображаются объекты, а в пра- вой — собственно ключи (рис. 5.69). Рис. 5.69. Окно NLA Editor В левой части редактора имеется список объектов сцены, у которых есть анимация. Сейчас там находятся Cube и Sphere. Для каждого примитива NLA Editor показы- вает действие, которое было последним в окне Action Editor. По умолчанию Blender создал действия: SphereAction и CubeAction. Выглядит просто, но если вы попытаетесь передвинуть любую точку в правой об- ласти окна, то потерпите поражение. Дело в том, что NLA Editor в данный момент показывает лишь наличие действий для объектов, но работать он умеет только с собственными данными. Поэтому названия анимаций выделены красным цветом, как неактивные. Присмотритесь к Action в окне редактора (см. рис. 5.69). Справа у каждого назва- ния имеется небольшая круглая кнопка. Если ее нажать, то редактор станет рабо- тать с анимацией, как с данными NLA. Щелкните по этим кнопкам у обоих объек- тов (рис. 5.70). Давайте рассмотрим, что же получилось. Во-первых, каждый объект получил до- полнительные полосы с названиями NlaTrack. Во-вторых, в главной области окна появились полоски желтого цвета с названиями действий. В терминологии Blender полоски желтого цвета называются Strip (стрип, полоска). Проще говоря, каждая из них является тем или иным действием объекта. Теперь вы можете настроить анимацию так, как необходимо. Щелкните правой кнопкой мыши по Strip с названием SphereAction. Вы увидите, что полоска с именем CubeAction станет серого цвета. Таким образом, Blender по- мечает выделенный Strip желтым фоном.
Анимация 267 Как видите, к анимации SphereAction присоединилась CubeAction. Попробуйте проиграть то, что получилось. Результат вас наверняка обескуражит. Несмотря на то, что вторая анимация называется CubeAction, она расположена в канале примитива Sphere. Логично предположить, что произойдет повтор движе- ния куба. В действительности, вторично будет двигаться сфера, причем при этом дублировать анимацию куба. Такое возможно из-за того, что NLA Editor считает Action независимыми от их объектов. Этот фокус позволяет использовать чужую анимацию на разных объектах (правда, не всегда). Попробуйте расставить Strip, как на рис. 5.73, и вы получите своеобразные догонялки объектов друг за другом. Рис. 5.73. Это расположение Strip поменяет местами объекты в анимации По умолчанию NLA Editor создает по одному слою для каждого объекта и поме- щает в него Strip с последним активным действием. Вы можете управлять количе- ством таких слоев. Для этого нужно сначала выделить имя последнего слоя левой кнопкой мыши. По- сле этого буквы станут белого цвета. Для создания нового слоя воспользуйтесь ме- ню Add | Add Track в заголовке окна NLA Editor. Чтобы удалить слой пустой или со всеми Strip, переведите курсор мыши в левое поле, выделите название нужного канала и нажмите клавишу . Это базовые возможности использования NLA Editor, но есть еще у него немало дополнительных функций. Допустим, вам захотелось один из Strip проиграть в обратном направлении и с удвоенной скоростью. Выделите любой Strip и нажмите клавишу . В правой части окна редактора появится панель Properties для данного слоя и объекта на нем (рис. 5.74). Здесь вы можете переименовать сам слой или отдельно выбранный Strip. Изменить привязанное действие к Strip (опция Action закладки Action Clip). Вообще отклю- чить Strip от участия в анимации (опция Muted) и многое другое. В нашем случае понадобится задействовать всего две функции: Reversed (закладка Active Strip) — при включении данной опции анимация вы- деленного Strip будет проигрываться реверсивно; Scale (закладка Action Clip) — масштабирование Strip приводит к тому, что из- меняется время проигрывания анимации.
268 Глава 5 Рис. 5.74. Панель свойств окна NLA Editor Попробуйте в поле Scale установить значение 0.5 и включить опцию Reversed. Вы увидите, что данный Strip будет проигрываться с конца с удвоенной ско- ростью. 5.12. Практика. Жарим яичницу Помните процесс жарки яичницы? Берется яйцо, разби- вается, и содержимое выливается на сковородку. Нечто подобное будем делать в этом уроке. Рассмотрим этапы решения этой задачи: 1. Создание моделей: скорлупы, содержимого яйца, сковородки. 2. Анимация раскрытия скорлупы. 3. Анимация вытекания жидкости яйца. 4. Анимация растекания яйца по сковородке. Если с первыми двумя пунктами вопросов возникнуть не должно, то последние вызывают сомнение. По сути, работу с жидкостями нужно выполнять с помощью фи- зики Blender, но т. к. эта тема пока не раскрывалась, то придется обойтись теми инструментами, которые уже известны. В действительности, использовать физику для такого простого действия не нужно. Дело в том, что расчет физики жидкости задача весьма трудоемкая и потребует немалого процессорного времени. Вам придется вспомнить принципы моделирования, работу с модификаторами и, конечно же, использова- ние анимационных редакторов. Так как урок посвящен работе с анимацией, то настройка материалов будет самой примитивной. Начнем с создания модели яйца. Проще всего ее сделать из примитива UV Sphere. Откройте новый проект, удалите из сцены куб и создайте сферу. Выделите верх- нюю вершину сферы и переключитесь в режим просмотра Front View. Для придания остроконечной формы нужно вытянуть выделенную вершину по координате Z вверх. Вот только делать это нужно с включенным режимом пропор-
Анимация269 ционального редактирования. Нажмите клавишу , затем и . Переместите вершину вверх, одновременно регулируя колесиком мыши зону охва- та (рис. 5.75). Рис. 5.75. Создание внешней оболочки яйца Включите функцию Smooth в режиме Object Mode, и внешняя форма яйца готова. Нажмите клавишу перейти в каталог файлов | Образовательный портал
Как узнать результаты егэ
Стихи про летний лагерь
3агадки для детей |