Кости созданы в «свободном» режиме (а); результат включения функции X-Axis Mirror (б) 242Глава 5Т TrartsfotTm Head Tail Roll ' X: 0.000 • Y 0.000 , z. 0.000 0.0000002 0 0000003 Z: 1.000 i5866t)O Lock ▼ Relations Рис. 5.37. Настройки отдельной костиРис. 5.38. Опция X-Axis Mirror для арматуры ArmatureФ Edit Mode O bject Mode ЯГ Edit Mode т I CРис. 5.39. Режим Pose Mode меню Mode Для включения собственно режима симметричного редактирования имеется специаль ная опция X-Axis M irro r на панели Tool Shelf (рис. 5.38). Установите флажок у этой опции и попробуйте переместить Tip любого из элементов с именем Shoulder. Программа мгновенно выровняет параллельную Bone симметрично выделенной (рис. 5.36, б). Теперь любые операции с такими костями (добавление, манипулирова ние, удаление) будут дублироваться противоположной стороной. Интересно, что про грамма при создании нового элемента уже будет прибавлять указанный суффикс к его имени. Устали держать руку на мыши? Поднимите и взмахните ею в воздухе. Как видите, движение начинается от плеча и поступательно передается всей руке. В мире Blender такое поведение костей называется прямой кинематикой (Forward Kinematics, FK). По умолчанию арматура работает именно так. А теперь представьте, что вы с кем-то здо роваетесь за руку. В этом случае движение начинается с кисти и передается по цепочке назад. Это уже инверсная кинематика (Inverse Kinematics, IK). Для настройки кинематики и создания анимации используется специальный режим Pose Mode (Режим позы) (рис. 5.39). Переключитесь в этот режим и передвиньте любую кость, а теперь нажмите клавишу <ТаЬ> для возврата в E dit Mode. Вы увидите, что расположение костей разное — в за висимости от выбранного режима. Этос л е д у е тз а п о м н и т ь!Манипуляции в Pose Mode не влияют на основное строение арматуры, в то же время изменение костей в режиме Edit Mode отразится для Pose Mode. Анимация 243 Для понимания работы FK и IK выполним настройку руки: от кисти до плеча. Добавьте еще три кости к любой из Shoulder и назовите их Forearm (предплечье), Arm (рука), Hand (кисть) соответственно. Переключитесь в режим Pose Mode и попробуйте сдвинуть кость Forearm . Вслед за этой Bone будет двигаться остальная часть «руки» (рис. 5.40). Рис. 5.40. Движение руки от плеча (FK) С овет По умолчанию в сцене Blender присутствует вспомогательная решетка, которая помогает подгонять узлы объекта при моделировании. Если она вам мешает, то ее можно временно выключить с помощью опции G rid F loor на закладке Display панели свойств (). А теперь подготовим «руку» к крепкому, дружескому пожатию. Создание 1К-связи можно выполнить разными способами, но наиболее простой— это воспользоваться специальным Constraint. Выделите кисть (Hand) в режиме Pose Mode и откройте па нель C onstraint в окне Properties (рис. 5.41). Нужный ограничитель называется IK (Inverse Kinematics). После его добавления к Bone вы увидите пунктирную линию, протянувшуюся от кисти до Root. Так Blender отмечает элементы, которые будут участвовать в цепочке IK. Если теперь попробовать передвинуть кисть, то весь скелет придет в движение. Нам этого не нужно. Правиль ным решением этой проблемы является ограничение цепочки IK костью плеча (Shoulder). Это можно сделать в настройках ограничителя IK (см. рис. 5.41). Здесь всего лишь нужно указать в параметре Chain Length количество костей, участвующих в цепочке
244 Гпава 5 1К. По умолчанию там содержится значение 0. В этом случае ограничитель использует максимально возможное количество звеньев. Введите в поле цифру 4 — и пунктир пе ребросится к корню Shoulder (рис. 5.42). Рис. 5.41. Настройки IK Рис. 5.42. Движение руки от кисти к плечу
Анимация245Теперь возможно движение костей руки, как от плеча, так и от кисти. При этом осталь ные кости скелета в процессе не участвуют. Запомните, в отличие от Edit Mode с включенной опцией Axis M irror, настройка костей в Pose Mode осуществляется ин дивидуально. Не рассчитывайте, что проделанные манипуляции с IK. отразятся на дру гой части скелета. Внимательный читатель, выполнивший на практике этот урок, заметит неправильное поведение костей руки. Так, плечо (Shoulder) слишком выдвигается при движении кис ти вперед или назад, то же самое происходит при поднятии или опускании конечности. Попробуйте сами выполнить похожие движения рукой, чтобы понять, о чем идет речь. У реального человека эта часть тела относительно неподвижна. Blender позволяет настроить индивидуально каждую кость, участвующую в цепочке IK. Эти параметры находятся в группе Inverse Kinematics окна Properties (рис. 5.43). Установка ограничений (не путать с C onstraint) возможна по всем осям элемента. Тут все просто: выбираете нужную ось, включаете опцию Limit и в соответствующих полях устанавливаете минимальный и максимальный угол отклонения. Выделите плечо (Shoulder). Движение плеча может осуществляться только по двум координатам: X и Z. Соответственно, необходимо отключить перемещение его по Y. Сделать это можно, включив кнопочку с замком с соответствующей буквой (см. рис. 5.43). Установите флажки в полях Limit (Лимит) для осей X и Z. Программа активирует оп ции настройки значений. Обратите внимание, что в окне 3D View вокруг выделенной кости появились окружно сти красного и синего цвета (рис. 5.44). Так Blender отображает возможный угол дви- 1 111( 9 *UArmatu *й |& I Shoulder L Armatu * t^ r' Shoulder ► Transform >Transform Locks ► R elations ► D isplay ▼ Inverse Kinematics Stiffness. O.OQO ) . Lim it I Y Stiffness: 0.000 jLim it • to o * 1 ISO* 1 _____ 0.000 }Z I Stiffness. £ Lim it Stretch ^80^ Г iao* 1ч . . . TOOOJ^ Рис. 5.43. Настройки IK для выделенной костиР и с. 5.44. Визуальное отображение лимита движения 246 Гпава 5 жения элемента. По умолчанию минимальные и максимальные значения для обеих осей установлены в 180 градусов— это явно излишне. Пусть плечо будет двигаться лишь в пределах 20 градусов в каждом направлении. Поменяйте значение лимита для всех полей. Не забудьте сохранять знаки плюса или минуса! Вот теперь движение конечности выглядит гораздо естественнее. 5.8. Наращиваем «мясо» Создание и настройка скелета— это всего лишь полдела. Теперь нужно правильно присоединить его к модели, для которой он создавался. Blender предлагает несколько вариантов создания привязки (Skinning). Удобнее всего использовать автоматический, когда программа на основе сопоставления элементов скелета и модели создает области воздействия. Правда, все равно некоторые места при дется дорабатывать вручную. Выполнив рекомендации разд. 5.7, вы уже сделали арматуру, где имеется настроенная инверсная кинематика одной из рук. Если нет, то вы можете воспользоваться готовым файлом Scenes\glava5\glava5_simple_armature.blend из архива примеров к этой книге (см. приложение). Однако сначала нужно создать модель для арматуры. Ограничимся созданием челове ческого торса с двумя конечностями. Не будем гоняться за реалистичностью, важно научиться работать со Skinning. Основой модели послужит обычный примитив Cube. Добавьте куб в любом удобном месте сцены и переключитесь в ортогональную проекцию F ro nt View. Для быстроты воспользуемся принципом симметричного моделирования. Нажмите <ТаЬ> для редактирования куба и, используя функцию Subdivide (), дважды раз бейте структуру объекта. Переключитесь в режим W irefram e () и удалите все вер шины с левой стороны до центра. Добавьте к примитиву модификатор M irror (рис. 5.45). Рис. 5.45. Заготовка для торса
Анимация 247 Сожмите немного куб по оси Y с помощью Scale (). Это можно сделать и в режиме редактирования. Теперь ему нужно придать более обтекаемую форму. Выделите вер шины, как показано на рис. 5.46. Используя инструменты масштабирования и переме щения, добейтесь округлой формы. Рис. 5.46. Переместите эти вершины Рис. 5.47. Сужение торса к основанию для сглаживания краев Теперь выделите центральные вершины между указанными на рис. 5.46 и немного сдвиньте их по оси X. Получившийся цилиндр мало похож на человеческий торс. Включите общее сглажива ние для объекта (это можно сделать в Tool Shelf путем нажатия кнопки Smooth, но только в режиме Object Mode) и добавьте еще один модификатор Subdivision Surface (Разбиение поверхности). Этот инструмент работает наподобие M ultires и создает сглаженные поверхности путем увеличения промежуточных элементов. Установите в настройках модификатора в опциях View и R ender цифру 2. Полученный объект больше смахивает на кусок мыла, поэтому немного доработаем его. Выделите все нижние вершины и сместите вниз по оси Z для придания объекту вытянутой формы. Используя манипулятор G rab, сузьте низ модели (рис. 5.47). Теперь дело осталось за малым— добавить руки. Основой конечности послужат два полигона в верхней части торса. Выполните следующие шаги: 1. Нажмите клавишу <Е> и немного вытяните новые грани. Проделайте эту операцию трижды. Таким образом вы создадите место для изгиба плеча. Впоследствии это пригодится. 2. Выполните Extrude и переместите полигоны на расстояние, достаточное для созда ния предплечья. Уменьшите размер граней с помощью масштабирования. 3. Создайте еще три ступени граней для локтевого сгиба.
248 Гпава 5 4. Нажмите <Е> и выдавите следующую часть конечности. Уменьшите масштаб. 5. Проделайте эти же операции для создания кисти. В результате у вас должна получиться грубая заготовка руки, как на рис. 5.48. Рис. 5.48. Макет руки По желанию вы можете довести модель торса до приемлемого вида. Используйте пере мещение вершин, инструмент пропорционального редактирования и даже скульптур ные кисти. Помните, если имеющейся структуры недостаточно, то вы всегда можете добавить новые ребра с помощью инструмента Loop C ut and Slide (Создать петлю и переместить) (+). А вот теперь настало время совместить арматуру с моделью. В режиме Object Mode переместите скелет в центр модели. Скорректируйте масштаб, если это нужно. Основная задача состоит в том, чтобы каждая кость и каждый сустав находились в по ложенном месте. Так, кость Shoulder должна заканчиваться на суставе плеча, Forearm — в месте локтя, a H and — покрывать кисть. Подгонка костей осуществляет ся в режиме редактирования арматуры. Наверняка возникнет сложность изменения костей из-за того, что они перекрываются структурой модели. Конечно, можно переключиться в вид W irefram e, но есть способ поизящнее. Blender имеет глобальные настройки A rm ature, которые позволяют управлять внеш ним видом скелета и не только. Все эти опции доступны в окне Properties группы Display (рис. 5.49). Кнопки O ctahedral (Восьмигранник), Stick (Палка), В-Вопе (В-кость), Envelope (Обо лочка), W ire (Проволока) отвечают за внешний вид костей. Изменение стандартного O ctahedral на что-то другое может быть полезно при специфичных задачах— напри мер, Stick удобно использовать для арматуры пальцев.
Анимация249Рис. 5.49. Настройки арматуры Помимо кнопок в группе имеются переключатели: ♦ Names (Имена) — при включении этой опции Blender будет отображать имя каж дой кости в сцене; ♦ Axes (Координаты) — показ локальных координат костей. Работает для выделенных элементов и только в режимах Edit Mode и Pose Mode; ♦ Shapes (Формы) — для удобства можно поменять внешний вид кости на любой иной объект. Опция Shapes позволяет это сделать; ♦ Colors (Цвета) — цветное отображение групп костей; ♦ X-Ray (Рентген)— установка этой опции заставит арматуру просвечивать сквозь модель; ♦ Delay Refresh (Задержка обновления)— опция используется только в Pose Mode. Отключает деформацию. Включите X-Ray и установите кости, как на рис. 5.50. Это в а ж н о!Перед выполнением подгонки арматуры к модели желательно выполнить сброс парамет ров трансформации костей, особенно ротации. Это можно сделать в режиме Pose Mode, выбрав соответствующий тип в меню Pose | Clear Transform . Во избежание проблем с анимацией выделите кости и нажмите +. Для привязки арматуры к модели переведите оба объекта в режим Object Mode. Сна чала выделите модель, затем, удерживая нажатой клавишу , отметьте скелет. Нажмите клавиши + для вызова контекстного меню Set P aren t и выберите в нем пункт W ith Automatic W eights (Автоматический вес).
250 Гпава 5 Рис. 5.50. Совмещение арматуры с моделью Опция заставит Blender создать группы вершин для модели и привязать их к соответст вующим костям. Группы вершин — это запоминание части элементов объекта для последующего ис пользования сторонними функциями — например, модификаторами. Увидеть создан ные группы можно на панели Object Data (рис. 5.51). Рис. 5.51. Группы вершин
Анимация251В списке Vertex Groups находятся группы, привязанные к определенным костям и имеющие те же названия. Работа с ними не отличается от использования мультимате риалов, которые рассматривались в главе 4. После выделения нужной группы вы може те просмотреть элементы (Select), добавить новые вершины (Assign) или удалить их (Remove). Вернемся к нашей модели. Попробуйте в режиме Pose Mode подвигать костями арма туры. Вы увидите, что части модели будут послушно следовать за ними (рис. 5.52). Хотя Blender старается в автоматическом режиме правильно создать и привязать груп пы вершин к костям, но не всегда это получается гладко. Бывает так, что при движении какой-либо кости перемещается ненужная часть модели или, как в данном случае, про исходит наложение поверхности M esh-объекта (присмотритесь внимательнее к области живота на рис. 5.52). Рис. 5.52. Арматура привязана к модели Вот эти искажения необходимо исправлять вручную. Есть два пути: отредактировать область вершин конкретной кости в специальном режиме или создать новую группу с привязкой к арматуре. В терминологии Blender имеется понятие вес вершин, которое используется в разных областях программы. В применении к Skinning под этим понимается степень подвиж ности вершин по отношению к каждой кости. Blender предлагает специальный режим W eight Paint (Выделение веса) окна 3D View, который позволяет визуально настраи 252 Гпава 5 вать вес вершин. Выбрать его можно в меню Mode, предварительно выделив редакти руемый Mesh-объект (рис. 5.53). Если выделить любую кость арматуры, привязанной к модели, то Blender отобразит в цветовой гамме степень влияния Bone на близлежащие вершины. Чем темнее цвет, тем менее подвижна вершина. Таким образом, прощелкав по всем костям, можно опреде лить, как программа будет деформировать модель при анимации. Однако главное на значение этого режима — редактирование веса вершин. По сути, инструментарий здесь ничем не отличается от ранее рассмотренного Vertex Paint (Окраска вершин). Вы мо жете выбрать тип кисти, силу воздействия (Strenght), радиус курсора (Radius). Рис. 5.53. Модель в режиме Weight Paint Сначала нужно выделить кость, которая неправильно деформирует модель, и настроить кисть. На панели Tool Shelf есть опция W eight (Вес). Чем больше значение этого пара метра, тем ярче цвет окрашиваемой вершины, и соответственно, она становится более подвижной по отношению к выделенной кости. После настройки кисти можно смело окрашивать вершины. Для удобства будет нелиш ним развернуть кость так, чтобы были видны нарушения. При этом Blender в реальном времени отобразит изменение деформации области вершин по мере их настройки. Посмотрите на рис. 5.52. Разрыв в области живота вызван тем, что скелет модели сде лан не полностью, и программа не смогла правильно настроить вес вершин. Отредак тировать нужные области для имеющихся костей, как уже оказалось, не представляет особого труда. Но можно добавить новые Bone к арматуре и привязать к ним группы вершин. Основная работа выполняется на панели Object Data в группе Vertex Groups. Как работать с группами, мы уже рассматривали. После создания новой группы ее нужно привязать к кости. Это можно сделать с по мощью меню Parent, но в этот раз нужно будет выбрать пункт Bone. После привязки группы к кости необходимо настроить вес вершин в режиме W eight Paint.
Анимация 253 5.9. Для чего нужны «ограничители»? Вы уже знаете, что C o n stra in t— это дополнительные функции, которые позволяют контролировать анимацию объекта. Некоторые из них уже рассматривались примени тельно к скелетной анимации, но использование C onstraint не ограничивается только арматурой. Меню Constraint в окне Properties содержит большое количество пунктов (рис. 5.54). Все они разбиты на четыре группы: ♦ Motion Tracking (Отслеживание движения)— начиная с версии 2.61, в Blender по явилась технология Motion Tracking. Это дает возможность программе отследить перемещение объекта на видео с помощью специальных меток; ♦ Transform (Трансформация)— набор ограничителей, обеспечивающих контроль над свойствами объектов: позиции, масштаб, ротация; ♦ Tracking (Слежение)— здесь предлагается набор функций, способных настроить поведение одного объекта в зависимости от другого. К примеру, с помощью огра ничителя T rack То можно с легкостью заставить камеру всегда следить за переме щением объекта; ♦ Relationship (Связь)— ограничители этой группы позволяют манипулировать свя зями между объектами, как, например, функция Follow Path. Motion Tracking Transform Tracking Relationship (Р Camera Solver (P Copy Location (P Clamp To (P Action (Р Follow Track (P Copy Rotation (P Damped Trade
Child Of (P Object Solver < p Copy Scale ( P Inverse Kinematics (P Floor (P Copy Transforms
Locked Track (P Follow Path
Limit Distance (P Spline IK
Pivot
Limit Location (P Stretch To ( p Rigid Body joint
Limit Rotation
Track To < P Shrinkwrap (P Limit Scale (P Maintain Volume (P Transformation Рис. 5.54. Меню Constraint Работа с C onstraint напоминает чем-то использование модификаторов. Здесь также имеется возможность добавления нескольких ограничителей к одному объекту, но, в отличие от модификатора, C onstraint не может быть применен (рис. 5.55). Стандартный заголовок C onstraint позволяет: переименовать его, отключить работу (кнопка в виде глаза), переместить по стеку и удалить. Особо важная опция — это
254Гпава 5Рис. 5.55. Заголовок Constraint перемещение по стеку. Результат работы нескольких ограничителей может зависеть от порядка их расположения. Наиболее популярная группа по использованию— это Transform . Начнем рассмотре ние ограничителей с нее. В эту группу входит десять Constraint. ♦ Copy (Location, Rotation, Scale, Transform s) (Копировать (Расположение, Враще ние, Масштаб, Трансформация))— задача этих ограничителей состоит в копирова нии выбранных параметров у объекта, указанного в поле Target, и присвоении их к текущему объекту (рис. 5.56). В ограничителях этого типа присутствуют опции выбора координатных осей и системы (локальная или глобальная). Рис. 5.56. Ограничитель Copy Location На практике такие ограничители могут использоваться для настройки вспомога тельных элементов при анимации скелета. Так, на рис. 5.57 показана арматура кис ти, где для движения указательного пальца используется дополнительная кость, не привязанная к модели. Собственно, C onstraint применен к фаланге пальца. В этом примере используется ограничитель Copy Rotation. ♦ Limit (Distance, Location, Rotation, Scale) (Ограничить (Расстояние, Расположение, Вращение, Масштаб) — как вы уже догадались, назначение этих C onstraint в огра ничении движения или деформации по определенным осям. Возьмем, к примеру, анимацию пальца на руке. В реальности у живого человека пальцы могут раздви гаться или гнуться на определенный угол. По умолчанию кости кисти на рис. 5.57 способны вращаться так, как им заблагорассудится. Для установки лимита на вра щение можно использовать ограничитель Lim it Rotation. В настройках C onstraint достаточно выбрать нужную ось вращения, установить минимальное и максималь ное значения параметров движения (рис. 5.58). Анимация 255 Рис. 5.57. Дополнительная кость обеспечивает удобное управление арматурой Особняком в группе Limit находится ограничитель Limit Distance. Его используют для установки минимального расстояния, которое должно выдерживаться между двумя объектами. При движении главного объекта подчиненный всегда будет сле довать за ним на установленном расстоянии. Примером может служить движение локомотива с вагонами. С овет Многие C o n stra in t имеют в своих настройках параметр Influence, который отвечает за точ ность выполнения поставленного условия. При уменьшении этого значения у контролируе мого объекта появляется большая свобода в действии. ♦ M aintain Volume (Обслуживание объема)— очень простой ограничитель, позво ляющий контролировать сжатие объекта. Не стоит путать этот эффект с изменением
256 Гпава 5 Рис. 5.59. Maintain Volume. Сверху результат работы ограничителя, снизу обычное масштабирование масштаба! Настройки тут минимальные: выбор оси и установка качества деформа ции (рис. 5.59). Группа Т racking содержит семь Constraint. ♦ Clamp То (Фиксировать)— по своей функциональности этот ограничитель похож на рассмотренный ранее Follow Path. Однако для работы с последним нужно созда вать временные ключи (см. разд. 5.4). Использование ограничителя Clamp То намертво привязывает объект к траектории, что позволяет анимировать его с по мощью простых анимационных ключей позиции. Рассмотрим несложный пример. Создайте в сцене два объекта: Cube и C urve Path. Измените форму кривой, как вам заблагорассудится. Добавьте к кубу ограничитель Clamp То (рис. 5.60). Рис. 5.60. Ограничитель Clamp То Использовать этот C onstraint просто. В поле T arget необходимо установить кривую Path, выбрать ось в группе Axis и, при необходимости, зациклить анимацию в оп ции Cyclic. Выполните описанные здесь действия и попробуйте просто передвинуть куб. Вы увидите, что вне зависимости от выбранной оси движения объект будет переме щаться только по установленной кривой. Для создания анимации нужно установить обычные ключевые кадры Location.
Анимация257Попробуйте сделать простейшую анимацию. Сделайте нулевой кадр ключевым, на жмите клавишу <1> и выберите пункт Location в появившемся меню. Установите другой активный кадр, передвиньте объект и добавьте новый ключ Location. Соче тание клавиш + заставит куб двигаться по кривой. Как видите, использовать Clamp То гораздо удобнее, нежели Follow Path. Но у этого ограничителя имеется один существенный недостаток — отсутствие воз можности установки ориентации объекта по движению. ♦ Damped T rack (Мягкое слежение)— используйте этот ограничитель, если хотите, чтобы ось объекта всегда «смотрела» в сторону другого объекта. В настройках име ется выбор T arget и установки оси. ♦ Inverse Kinematics (Инверсная кинематика)— инверсная кинематика рассматрива лась в разд. 5.7. ♦ Locked T rack (Блокировка слежения)— смысл этого ограничителя заключается в «замораживании» одной из оси объекта. Проще всего представить работу Locked T rack на примере обычного компаса. Вы можете переворачивать компас как угодно, но стрелка всегда будет указывать на север, при этом вращаясь на оси шпиля. ♦ Spline IK (Кривая IK )— ограничитель, который поможет выровнять кости армату ры при помощи кривой. Это может пригодиться, к примеру, для создания модели змеи (рис. 5.61). Рис. 5.61. Ограничитель Spline IK ♦ Stretch То (Эластичность)— объект, после выбора этого ограничителя всегда «смотрит» на T arget и изменяет свой масштаб по одной из осей при движении по следнего. ♦ T rack То (Слежение)— наиболее популярный C onstraint, который чаще всего ис пользуется для привязки одного объекта к другому. К примеру, с его помощью можно заставить камеру следить за движущимся объектом.
258 Гпава 5 С овет Некоторые Constraint настолько популярны, что могут устанавливаться горячими клави шами. К таким относятся: Damped Track, Track То и Lock Track Выделите первым объект, к которому должен быть присоединен ограничитель, затем с помощью клавиши до бавьте объект Target и нажмите +. Появится меню с указанными Constraint. Нужно заметить, что в этом случае Blender выполнит автоматическую настройку ограничителей, которая вполне оказывается работоспособной. Группа Relationship (Связь) содержит еще 8 типов ограничителей. ♦ Action (Действие)— ограничитель, позволяющий использовать анимацию объекта T arget для собственной анимации. Звучит достаточно запутанно, поэтому рассмот рим его использование на простом примере. Добавьте в сцену примитивы Cube и Sphere. Пусть куб у нас будет иметь простей шую анимацию движения из точки А в точку Б за 25 кадров. Создайте эту анимацию с помощью ключей Location. По умолчанию программа добавит действие с назва нием CubeAction (вы его можете увидеть, например, в окне DopeSheet). Теперь к сфере присоедините ограничитель Action (рис. 5.62). Рис. 5.62. Настройки Action В опции T arget выберите из списка примитив Cube, а в То Action — CubeAction. Параметр From T arget отвечает за действие, которое будет производить объект. Выберите из списка опцию X Location (движение по координате X). Группа Action Range позволяет выбрать начальный (Start) и конечный (End) кадры анимации. Так как движение куба осуществляется с 1 по 25 кадр, то установите в соответствующие поля эти значения. Action Range отвечает за время анимации главного объекта. Группа T arget Range имеет поля для установки минимального и максимального значений смещения главного объекта. Установите их в 0. Теперь при проигрывании анимации будет видно, что сфера совершает прыжок из точки А в точку Б, пока движется куб. Попробуйте установить в поле Мах значе ние 3 и еще раз включите анимацию. На этот раз сфера совершит плавное переме щение вместе с кубом.
Анимация 259 ♦ Child O f (Дочерний элемент)— установка родительской связи между объектами наподобие известной функции Parent. В отличие от последней имеет возможность более широкой настройки связи объектов. ♦ Floor (П ол)— этот C onstraint может использоваться для создания непроходимых препятствий, таких как стены или пол. Смысл его заключается в том, что по дости жении объекта T arget ограничитель запрещает перемещение главного объекта в вы бранном направлении. Для примера создайте в проекте Plane и расположите над ним UV Sphere. Присо едините к сфере ограничитель Floor. В качестве параметра T arget выберите прими тив Plane. Так как движение сферы осуществляется по координате Z (сверху вниз), то включите кнопку Z в настройках Floor (рис. 5.63). Попробуйте переместить сферу вниз, и вы увидите, что она «упирается» в плоскость (своим центром). Вы можете передвигать ее по координатам X или Y, или даже по Z, но не ниже Plane. В параметрах Floor имеется опция Sticky. Включите ее, если хотите, чтобы сфера при соприкосновении «прилипала» к Target. В этом случае остается лишь возмож ность движения объекта по оси Z вверх. Рис. 5.63. Настройки Floor ♦ Follow Path (Следовать маршрутом)— движение по траектории рассматривалось в разд. 5.4. ♦ Pivot (Центр)— по умолчанию вращение объекта осуществляется вокруг его цен тра. Этот ограничитель позволяет использовать в качестве центра вращения объект, указанный в поле Target. ♦ Rigid Body Joint (Соединитель Rigid Body) — специфичный ограничитель, исполь зуемый для настройки физики объекта. ♦ Script (Скрипт)— позволяет выбрать скрипт для выполнения. По умолчанию вер сия Blender не имеет сторонних скриптов Constraint.
260 Гпава 5 ♦ Shrinkw rap (Упаковка) — с помощью этого ограничителя можно получить эффект, когда один объект при соприкосновении с другим как бы обтекает его со стороны. 5.10. Работа с A c tio n E d ito r Вы уже знаете, что анимация арматуры создается в режиме Pose Mode. Принцип рабо ты все тот же — использование ключевых кадров. Откройте проект Blender, где вы соз дали скелет человеческого торса, или загрузите файл Scenes\glava5\glava5_skin_ simple.blend из архива примеров к этой книге (см. приложение). Выделите арматуру и включите режим Pose Mode. Для настройки анимации оптималь но подходит раскладка окон Animation. Выберите ее из главного меню программы. В отличие от ранее рассмотренных способов, анимация арматуры выглядит несколько сложнее из-за обилия элементов скелета. Поэтому, в данном случае, удобнее использо вать режим автоматической записи (см. рис. 5.2). Активируйте красную кнопку записи в окне Timeline. Теперь попробуем создать первое движение скелета. Пусть это будет поднятие вверх руки, которая имеет настроенный lK-привод. Текущим фреймом установите кадр 0. Выберите самую нижнюю Bone, нажмите клавишу <1> для вызова меню Insert Keyframe (рис. 5.64). Location Rotation Scaling LocRot RotScale Insert Keyframe Menu O Visual Location Visual Rotation Visual Scaling Visual LocRot Visual LocScale Visual LocRotScale Visual RotScale Whole Character Рис. 5.64. Начальная позиция скелета
Анимация 261 Для работы с арматурой меню Insert Keyframe имеет пункт Whole C haracter (Весь персонаж), при выборе которого Blender создаст ключевые кадры всех костей выделен ного скелета. Выберите этот пункт. Если вы посмотрите на окна Dope Sheet и C urve Editor, то увидите список всех Bone, участвующих в анимации. Теперь передвиньте анимационный курсор на несколько кадров дальше. Поднимите руку. Так как кнопка записи анимации ранее была включена, то программа создаст ключи для нужных костей (рис. 5.65). Рис. 5.65. Окно Dope Sheet для арматуры Таким образом, вы можете создавать любую мыслимую анимацию своей модели. Рабо та с Dope Sheet и C urve Editor уже рассматривалась. Теперь представьте ситуацию, когда необходимо выполнение разных действий персо нажа. Допустим, модель должна уметь ходить, бегать, да хоть плясать вприсядку! Все это сделать можно, но несложно догадаться, какой объем анимации придется выпол нить. Ведь даже для одного действия — скажем, бега, будут задействованы почти все кости скелета. Обилием ключевых точек в анимационных редакторах вы будете обес печены. И если вдруг понадобится скорректировать время выполнения нужной анима ции, то немудрено будет запутаться. «Действие» (Action) — это слово уже не раз использовалось в книге, но сейчас здесь имеется в виду специальная возможность, предоставляемая программой. Действием называется законченная анимация, объединяющая в себе множество движений элемен тов объекта. Таким образом, бег, ходьба, пляска — это Action. Конечно, вы вправе не использовать действия в своей анимации, а просто ограничиться ключами, но посмотрим на преимущества этой техники: ♦ Action не зависят друг от друга. А это значит, что вы можете редактировать каждое действие без боязни нарушить другие. ♦ Action могут многократно использоваться в общей анимации объекта со сдвигом во времени или даже скорости исполнения.
262Гпава 5♦ Action могут экспортироваться в другие форматы (вместе с моделью) для использо вания в сторонних программах. Даже если вы не планируете использовать действия в своей сцене, при работе с анима цией Blender автоматически их создает. Но они являются одиночными для каждого объекта. Посмотрите на рис. 5.65, где показывается окно Dope Sheet. В левой части редактора список костей объединен в папку с названием Arm atureA ction. Это и есть автоматически созданное действие для арматуры. Забегая вперед скажу, что в Blender имеется специальный редактор для работы с Action —- NLA Editor. С его помощью и контролируется глобальная анимация объек та и сцены. Но сначала нужно научиться создавать свои собственные действия. Для этой цели редактор Dope Sheet имеет специальный режим Action Editor (Редактор действий), который доступен в меню Mode на заголовке окна (рис. 5.66). 100 2 СИ Z Dope Sheet ыИШыШ Marker Channel Key j t l Dope Sheet * Summary Рис. 5.66. Редактор Dope Sheet в режиме Action Внешне Action Editor особо не отличается от стандартного Dope Sheet. По сути дела, это всего лишь смена режима работы окна Dope Sheet, и основные возможности редак тирования анимации здесь не претерпели никаких изменений. Но несколько изменился заголовок окна, где появилось поле управления действиями (рис. 5.67). Это стандартный интерфейс создания новых блоков данных Blender. Такой, например, используется для мультиматериалов или текстур. Вы можете: переименовать текущее действие, щелкнув по его названию; выбрать иное из списка; добавить или удалить с помощью кнопок + и х. Так как вы сделали ранее анимацию движения руки, то действие уже существует и на зывается A rm atureA ction. Теперь щелкните по кнопке со знаком плюс для добавления нового Action. Внешне при этом в окне Action E ditor ничего не изменится. Дело в том, что Blender при создании действия копирует данные ключей из активной зоны. Выде лите все ключи клавишей <А> и нажмите <Х> для удаления. Теперь вы можете созда вать новые движения персонажа. Анимация2635.11. N LA E d it o r— заключительный аккордNLA E ditor (Non-Linear Animation Editor, Нелинейный Анимационный Редактор) — это высокоуровневый редактор, который позволяет компоновать все анимации сцены удобным и понятным для пользователя способом, в любой последовательности и с раз личными эффектами. Вся анимация в окне редактора выглядит в виде полосок, с которыми и происходит ра бота. Вы можете выстроить их одну за другой, изменить время запуска, увеличить или уменьшить скорость и многое другое. Если вы работали раньше с какой-нибудь про граммой видеомонтажа, то подобная концепция будет вам знакомой. Рассмотрим работу с этим редактором с помощью простого примера. В нашей сцене будут участвовать два объекта: Cube и UV Sphere. Куб двигается по горизонтали, сталкивается со сферой, которая отлетает в сторону. Создайте новую сцену Blender и добавьте сферу. Переключитесь в режим просмотра Front. Разместите два объекта на некотором удалении друг от друга. Сначала нужно сделать анимацию. Включите раскладку окон Animation и активируйте в окне Timeline режим автоматической записи (рис. 5.68). Рис. 5.68. Подготовка к анимации Выделите куб, нажмите клавишу для вызова меню Insert Keyframe. В этом меню выберите пункт Location. Установите анимационный курсор в окне Timeline на кадр 20. Теперь передвиньте куб вправо близко к сфере. Займемся анимацией сферы. Установите активным первый кадр. Выберите сферу и создайте ключ Location. Затем в кадре 20 передвиньте сферу вправо на некоторое рас стояние. Нажмите клавиши + для проигрывания анимации. Вы увидите, что оба объек та одновременно уедут в правую сторону. Это, конечно, не тот результат, которого нужно достичь, но все можно исправить в NLA Editor. Откройте в любом удобном месте окно NLA E d ito r— например, на месте Dope Sheet. Окно редактора разбито на две области: в левой отображаются объекты, а в правой — собственно ключи (рис. 5.69).
264Гпава 5 Рис. 5.69. Окно NLA EditorВ левой части редактора имеется список объектов сцены, у которых есть анимация. Сейчас там находятся Cube и Sphere. Для каждого примитива NLA E ditor показывает действие, которое было последним в окне Action Editor. По умолчанию Blender создал действия: SphereAction и Action. Выглядит просто, но если вы попытаетесь передвинуть любую точку в правой области окна, то потерпите поражение. Дело в том, что NLA E ditor в настоящий момент пока зывает лишь наличие действий для объектов, но работать он умеет только с собствен ными данными. Поэтому названия анимаций выделены оранжевым цветом — как неак тивные. Присмотритесь к Action в окне редактора (см. рис. 5.69). Справа у каждого названия имеется небольшая кнопка с изображением стрелки. Если ее нажать, то редактор станет работать с анимацией, как с данными NLA. Щелкните по этим кнопкам у обоих объек тов (рис. 5.70). Рис. 5.70. NLA Editor в режиме редактированияДавайте рассмотрим, что же получилось. Во-первых, каждый объект получил дополни тельные полосы с названиями NlaTrack. Во-вторых, в главной области окна появились полоски желтого цвета с названиями действий. В терминологии Blender полоски желтого цвета называются Strip (стрип, полоска). Проще говоря, каждая из них является тем или иным действием объекта. Теперь вы можете настроить анимацию так, как необходимо. Анимация265Щелкните правой кнопкой мыши по Strip с названием SphereAction. Вы увидите, что полоска с именем Action станет серого цвета. Таким образом, Blender помечает выде ленный Strip желтым фоном. Нажмите правой кнопкой мыши на SphereAction и, не отпуская кнопки, сдвиньте SphereAction в сторону. Strip изменит название на Tem pM eta и станет фиолетового цвета. Но самое главное, что теперь движением мыши вы можете перетаскивать полос ку в любое место. Переместите ее в конец полоски Action и нажмите левую кнопку мыши для фиксации результата (рис. 5.71). Вот теперь анимация столкновения куба со сферой будет работать корректно. Полосы с названиями N laTrack являются слоями. В каждом таком слое могут нахо диться несколько Strip с различными Action. Передвиньте анимационный курсор в окне редактора так, чтобы он не находился ни на одном из Strip. Выделите Strip с именем SphereAction и нажмите клавиши +. Появится меню, где программа выдаст список имеющихся действий в сцене. Выберите пункт Action (рис. 5.72). Рис. 5.72. Слой с несколькими анимациями Как видите, к анимации SphereAction присоединилась CubeAction. Попробуйте проиг рать то, что получилось. Результат вас наверняка обескуражит. Несмотря на то, что вторая анимация называется CubeAction, она расположена в кана ле примитива Sphere. Логично предположить, что произойдет повтор движения куба.
266 Гпава 5 В действительности, вторично будет двигаться сфера, причем при этом дублировать анимацию куба. Такое возможно из-за того, что NLA E ditor считает Action независи мыми от их объектов. Этот фокус позволяет использовать чужую анимацию на разных объектах (правда, не всегда). Попробуйте расставить Strip, как на рис. 5.73, и вы полу чите своеобразные догонялки объектов друг за другом. Рис. 5.73. Это расположение Strip поменяет местами объекты в анимации По умолчанию NLA E ditor создает по одному слою для каждого объекта и помещает в него Strip с последним активным действием. Вы можете управлять количеством таких слоев. Для этого нужно сначала выделить имя последнего слоя левой кнопкой мыши. После этого буквы станут белого цвета. Для создания нового слоя воспользуй тесь меню Add | Add Tracks в заголовке окна NLA Editor. Чтобы удалить слой пустой или со всеми Strip, переведите курсор мыши в левое поле, выделите название нужного канала и нажмите клавишу <Х>. Это базовые возможности использования NLA Editor, но есть еще у него немало до полнительных функций. Допустим, вам захотелось один из Strip проиграть в обратном направлении и с удвоен ной скоростью. Выделите любой Strip и нажмите клавишу . В правой части окна редактора появится панель Properties для этого слоя и объекта на нем (рис. 5.74). Здесь вы можете переименовать сам слой или отдельно выбранный Strip, изменить привязанное действие к Strip (опция Action закладки Action Clip), вообще отключить Strip от участия в анимации (опция M uted) и многое другое. В нашем случае понадобится задействовать всего две функции: ♦ Reversed (закладка Active Strip) — при включении этой опции анимация выделен ного Strip будет проигрываться реверсивно; ♦ Scale (закладка Action Clip) — масштабирование Strip приводит к тому, что изме няется время проигрывания анимации. Попробуйте в поле Scale установить значение 0.5 и включить опцию Reversed. Вы уви дите, что эта Strip будет проигрываться с конца с удвоенной скоростью.
Анимация 267 Рис. 5.74. Панель свойств окна NLA Editor 5.12. Практика. Жарим яичницу Помните процесс жарки яичницы? Берется яйцо, разбивается и содержимое выливается на сково родку. Нечто подобное мы проделаем в этом уроке. Рассмотрим этапы решения этой задачи: 1. Создание моделей: скорлупы, содержимого яйца, сковородки. 2. Анимация раскрытия скорлупы. 3. Анимация вытекания жидкости яйца. 4. Анимация растекания яйца по сковородке. Если с первыми двумя пунктами вопросов возник нуть не должно, то последние вызывают сомнение. По сути, работу с жидкостями нужно выполнять с помощью физики Blender, но так как эта тема пока не раскрывалась, то придется обойтись теми инструментами, которые уже известны. В действи тельности, использовать физику для такого про стого действия не нужно. Дело в том, что расчет физики жидкости задача весьма трудоемкая и по требует немалого процессорного времени. Вам придется вспомнить принципы моделирова ния, работу с модификаторами и, конечно же, ис пользование анимационных редакторов. Так как урок посвящен работе с анимацией, то настройка материалов будет самой примитивной. Начнем с создания модели яйца. Проще всего ее сделать из примитива UV Sphere. Откройте новый проект, удалите из сцены куб и создайте сферу. Выделите верхнюю вершину сферы и переключи тесь в режим просмотра Front View. Для придания остроконечной формы нужно вытя нуть выделенную вершину по координате Z вверх. Вот только делать это нужно с включенным режи мом пропорционального редактирования. Нажмите клавишу < 0> , затем и . Переместите вершину вверх, одновременно регулируя колесиком мыши зону охвата (рис. 5.75).
268 Гпава 5 Рис. 5.75. Создание внешней оболочки яйца Включите функцию Smooth в режиме Object M o d e— и внешняя форма яйца готова. Нажмите клавишу <Н>, чтобы временно скрыть модель в сцене. Теперь займемся созданием сковородки. В качестве основы для нее послужит прими тив Circle из группы Mesh. Переключитесь в режим просмотра Top View () и добавьте объект. На панели Tool Shelf найдите группу Add Circle, которая содержит настройки нового примитива. Включите в них опцию Fill (Заливка). Для создания сковородки выполните следующие шаги: 1. Переключитесь в режим Front View () и войдите в режим редактирова ния (<ТаЬ>). 2. Нажмите кнопку E xtrude на панели Tool Shelf (или просто <Е>) и вытяните немно го вверх выделение. Не забудьте отключить перед этой операцией режим пропор ционального редактирования. Теперь с помощью масштабирования () немного расширьте верхнюю часть объекта. В результате получилась объемная модель (рис. 5.76). 3. Не снимая выделения, переключитесь в Top View. Нажмите клавишу <Е> для выполнения операции выдавливания и сразу же зафиксируйте результат щелчком левой кнопки мыши. Немного сожмите выделение с помощью инструмента Scale (). Этим вы сделаете заготовку для днища сковородки (рис. 5.77).
Анимация 269 Рис. 5.76. Создание формы Рис. 5.77. Заготовка для создания углубления 4. Разверните сцену для удобного просмотра. Опустите выделение до днища сково родки. Возможно, придется немного подогнать масштаб опускаемой части. 5. Выйдите из режима редактирования и добавьте к объекту модификатор Subdivision Surface. Установите значение 2 для опции View (рис. 5.78). Займемся созданием содержимого яйца. Роль его будет играть примитив UV Sphere, но сначала нажмите клавишу <Н>, чтобы временно скрыть сковородку. Добавьте сферу в сцену из меню Add | Mesh | UV Sphere. Сразу же включите для объекта сглаживание кнопкой Smooth на панели Tool Shelf. В принципе, редактировать объект нет надобности, но мы немного настроим материал для большей правдоподоб ности. Перейдите в настройки материала в окне Properties и нажмите кнопку New. Этот мате риал будет играть роль белка, поэтому он должен быть белого цвета. Установите цвет Diffuse белым. Переименуйте материал в White.
270Глава 5Рис. 5.78. Готовая модель сковородки Добавьте новый слот в списке материалов, создайте материал, измените его цвет на желтый и назовите его Yellow (рис. 5.79). Перейдите в режим редактирования и выде лите верхнюю часть яйца, как на рис. 5.80. Рис. 5.79. Мультиматериалы для содержимого яйца Сов етИспользуйте инструмент C ircle (<С>) для кругового выделения в просмотре Top View. На панели M aterial выберите из списка материал с именем Yellow и нажмите кнопку Assign. Выделенная область сразу же окрасится в желтый цвет, все остальное останется белым. Если что-то не получается, еще раз прочтите разд. 4.6.На этом создание моделей завершено. Нажмите клавиши +1>1> перейти в каталог файлов |