3D Studio MAX: первые шаги. Урок 24. Персонажная анимация средствами Character Studio
Помещение скелета внутрь модели
Подключение готовой анимации и корректировка связей
Создание анимации по методу Footstep
Создание анимации по методу Freeform
Связывание скелета с моделью
На следующем этапе, к которому не следует переходить, пока не убедитесь, что кости внутри скелета находятся на предназначенных им местах, скелет связывают с моделью.
Для этого модели назначают модификатор Physique (Телосложение), по принципу своего действия напоминающий рассмотренный на предыдущем уроке модификатор Skin (Кожа), а затем проводят само связывание. Как правило, скелет связывается с моделью не за один прием, а путем проведения множества операций связывания, в каждой из которых группа костей связывается с соответствующим ей фрагментом внешней оболочки. Например, сначала присоединяют к скелету руки, затем ноги и т.д. Для осуществления связывания выделяют элемент оболочки модели, назначают ей модификатор Physique, после чего в одноименном свитке данного модификатора щелкают на кнопке AttachtoNode (Присоединить к оболочке) — рис. 27 и указывают главный в группе костей (с которой производится в данный момент связывание оболочки) элемент скелета. Затем таким же образом с оболочкой связывают следующую группу костей и т.д.
Рис. 27. Активация кнопки Attach to Node
Откройте сцену с цилиндром. Выделите цилиндр и назначьте ему модификатор Physique, а затем в свитке Physique данного модификатора щелкните на кнопке AttachtoNode и укажите в окне Select by Name объект Bip01. В открывшемся в результате окне Physique Initialization (Условия составления телосложения) оставьте все настройки по умолчанию (рис. 28) и щелкните на кнопке Initialize (Составить). В итоге цилиндр окажется связанным со скелетом. Сохраните сцену.
Рис. 28. Окно Physique Initialization
Переключитесь к сцене с персонажем-кубиком. Займемся установкой связей между костями и фрагментами оболочки. Выделите куб (то есть в данном случае туловище), назначьте ему модификатор Physique, в свитке Physique данного модификатора щелкните на кнопке AttachtoNode и укажите кость Bip01. Выделите сферу-голову и через модификатор Physique свяжите ее с костью Bip01 Head, а цилиндр-шею — с Bip01 Neck. Точно так же свяжите кости Bip01 R Thigh и Bip01 L Thigh с примитивами, играющими роль ног, кости Bip01 R UpperArm и Bip01 L UpperArm — с примитивами, выступающими в роли рук, кости Bip01 R Hand и Bip01 L Hand — с кистями рук, а кости Bip01 R Foot и Bip01 L Foot — с кистями ног. Сохраните сцену в двух разных файлах.
Подключение готовой анимации и корректировка связей
После того как связи между внешней оболочкой и костями скелета налажены, приступают к анимированию модели. Это можно сделать путем собственноручной подготовки требуемой по замыслу анимации либо подключив подходящий файл движений.
Данные файлы имеют расширение *.bip и содержат информацию о движении скелета, представленную в виде анимационных последовательностей. В поставке программы (среди разнообразных примеров в папках Samples и Tutorials) BIP-файлов очень много: имеются BIP-файлы, с помощью которых скелет (а значит, и связанный с ним персонаж) можно заставить ходить, бегать, прыгать, кувыркаться, танцевать и т.д. Ознакомиться с тем, какие именно движения скрываются в том или ином файле, можно заглянув по адресу: http://www.character-studio.net/motion_library.htm либо непосредственно просмотрев анимации путем их подключения к скелету. Собственноручно созданные анимационные последовательности также могут быть сохранены в файлах движений и использованы в дальнейшем для других персонажей, что существенно ускорит процесс подготовки анимаций.
Для подключения файла движений нужно выделить объект Bip01, перейти на вкладку Motion, в свитке Biped нажать кнопку LoadFile (Загрузить файл) — рис. 29 и указать BIP-файл с нужной анимационной последовательностью. Обратите внимание, что режим FigureMode в этот момент должен быть отключен, поскольку в режиме фигуры кнопка LoadFile отвечает за загрузку файла с настройками скелета (FIG), а не файла движений (BIP). После этого можно сразу проиграть анимацию — персонаж начнет двигаться в соответствии с настройками BIP-файла. Теоретически увидеть результат анимации персонажа можно и иным способом — щелкнув на кнопке BipedPlayback (Воспроизведение движений) в свитке Biped вкладки Motion, правда в этом случае двигаться будет схематично нарисованный персонаж (рис. 30), а не трехмерная модель.
Рис. 29. Активация кнопки Load File
Рис. 30. Просмотр анимации в схематичном режиме
Для примера откройте сцену с цилиндром. Выделите объект Bip01, активируйте вкладку Motion и, нажав на кнопку Load File, загрузите файл с анимационной последовательностью прыжков с переворотами — это может быть файл flip1. bip, flip2. bip, flip3. bip и т.п. (мы остановились на flip2. bip). Данные файлы перед этим нужно поискать по поиску на диске с дистрибутивом 3D Studio MAX либо загрузить с диска с уроком из папки BIP, в которую мы включили некоторые из поставляемых с программой файлов движений. Проиграйте анимацию и увидите, что цилиндр вместе с заключенным в него скелетом начнет переворачиваться (рис. 31).
Рис. 31. Вид сцены в одном из промежуточных кадров анимации
А теперь усложним задачу. Откройте сцену с созданным выше персонажем-кубиком (первый из файлов) — попробуем заставить его шагать естественным образом. Выделите кость Bip01 и отключите режим FigureMode. Нажмите на кнопку LoadFile и укажите файл walk_stop. bip, содержащий анимационную последовательность обычной ходьбы. Проиграйте анимацию и убедитесь, что персонаж начнет двигаться, причем вполне естественно.
Откройте редактор материалов и вместо полупрозрачного материала назначьте элементам оболочки разноцветные материалы, после чего просмотрите анимацию в увеличенном масштабе и более внимательно. Скорее всего, окажется, что в некоторых местах оболочка персонажа при движении неестественно искажается (рис. 32) — например в нашем случае отчетливо просматриваются странные деформации в нижней части обеих ног и рук. Подобная ситуация наблюдается в случаях, когда какие-то отдельные вершины не попадают под действие огибающей поверхности, формируемой под действием модификатора Physique. В итоге в процессе присоединения оболочки персонажа к системе костей формируются неверные связи, что ведет к неправильной деформации формы оболочки.
Рис. 32. Неправильная деформация формы оболочки (искаженные фрагменты выделены)
Попробуем исправить ситуацию. Начнем с редактирования одной из ног. Выделите соответствующий примитив, перейдите на панель Modify, щелкните на значке плюса слева от модификатора Physique и переключитесь в режим редактирования вершин, щелкнув на строке Vertex (рис. 33). В свитке Vertex-Link-Assignment (Вершины-Связи-Назначение) нажмите кнопку Select (Выбрать) и в проекции Left, предварительно увеличив масштаб, выделите те вершины, для которых связи оказались неверными. В данном случае для ускорения процесса можно выделять не только вершины, имеющие неверные связи, но и близлежащие. Это гораздо быстрее, поскольку можно выделить все вершины разом, а не по одной, а что касается результата, то разницы не будет никакой, поскольку все эти вершины должны быть связаны с голенью (рис. 34). Однако на практике таким образом упростить процесс можно не всегда. Нажмите кнопку AssigntoLink (Назначить связь) и укажите в качестве кости, на которой должны быть закреплены выделенные вершины, кость Bip01 L Calf — вершины тут же изменят свое положение (рис. 35). Выйдите из режима работы с вершинами, подсветив на панели Modify сам модификатор Physique, а затем выделите вторую ногу и перенастройте связи для вершин в ее нижней части, привязав их к кости Bip01 R Calf. Аналогичные операции проведите в отношении вершин, находящихся в нижней части обеих рук, связав их с костями Bip01 R Forearm и Bip01 L Forearm. В итоге названные проблемы будут устранены, а ноги и руки кубика при его движении уже не будут неестественно искажаться. Некоторые кадры полученной в итоге анимации представлены на рис. 36.
Рис. 33. Вид ноги в режиме редактирования вершин модификатора Physique
Рис. 34. Выделение вершин с неправильными связями
Рис. 35. Результат повторного связывания вершин голени
Рис. 36. Шагающий кубик
Создание анимации по методу Footstep
Если подходящего файла движений нет, то соответствующую анимационную последовательность создают самостоятельно. В Character Studio Biped-объект можно анимировать в режимах Footstep (След) и Freeform (Свободная деформация) либо с использованием обоих режимов одновременно. Анимирование в режиме Freeform представляет собой не что иное, как последовательное и кропотливое формирование требуемых для задуманной анимации ключевых кадров. Подготовка анимации в режиме Footstep гораздо проще и быстрее, поскольку создавать вручную ключевые кадры необходимости нет (программа генерирует их сама), однако возможности его ограничены лишь получением анимаций ходьбы, бега или прыжков со всеми основными движениями, которые им соответствуют.
Попробуем заставить наш персонаж-кубик ходить по некоторой сложной кривой — пусть, например, он будет двигаться по дорожке, которую мы специально для этого создадим (рис. 37). В списке идущих в поставке BIP-файлов можно найти немало вариантов ходьбы персонажа, однако нам нужно организовать его перемещение не в любом, а в конкретном направлении, причем в результате перемещения персонаж должен пройти не произвольный, а строго определенный по длине участок пути. Поэтому будем создавать анимацию самостоятельно, работая в режиме Footstep (След).
Рис. 37. Исходная сцена с имитацией дорожки в виде сплайна
Откройте второй из ранее сохраненных файлов с персонажем-кубиком, выделите объект Bip01, перейдите на вкладку Motion и в свитке Biped щелкните на кнопке FootstepMode (рис. 38) — это активирует режим создания анимации по шагам. В свитке Footstep Creation (Создание следа) щелкните на кнопке Create Multiple Footsteps (Создать многократные следы — рис. 39) и поле Number ofFootstep s (Количество следов) установите желаемое число следов, например 12 (рис. 40). В результате на плоскости появится указанное количество следов (рис. 41). Однако проигрывать анимацию пока еще бесполезно: для того чтобы скелет (а значит, и связанный с ним персонаж) начал шагать, требуется создать также анимационные ключи. Кроме того, обратите внимание, что по умолчанию следы (а затем и анимационные ключи) создаются в расчете на ходьбу, поскольку автоматически активируется режим Walk (Прогулка), однако характер движения может быть изменен на бег (кнопка Run) либо прыжки (кнопка Jamp) — рис. 42. Сделать это нужно до создания цепочки следов.
Рис. 38. Активация режима FootstepMode
Рис. 39. Нажатие кнопки CreateMultipleFootsteps
Рис. 40. Установка количества шагов в траектории
Рис. 41. Появление следов
Рис. 42. Кнопки, отвечающие за выбор характера движения
Для генерации анимационных ключей (их программа создает, руководствуясь цепочкой следов) раскройте свиток Footstep Operations (Footstep-операции) и щелкните на кнопке Create Keys For Inactive Footsteps (Создать ключи для неактивных следов). После этого кубик добросовестно пойдет по следам (рис. 43), но, увы, пока не по предназначенной для него траектории.
Рис. 43. Первоначальный вариант движения кубика по следам
Чтобы добиться нужного нам варианта перемещения кубика, выключите режим FootstepMode и переместите плоскость вместе с траекторией в точку начала его движения по следам (рис. 44). Вновь выделите объект Bip01 и активируйте режим работы со следами (кнопка FootstepMode) — это необходимо, чтобы следы стали вновь редактируемыми. Выделите первые четыре следа (рис. 45) и в свитке Footstep Operations панели Motion введите в поле Bend (Изгиб) значение –10 — цепочка следов изменит свою форму (рис. 46). Окончательно отредактируйте положение следов вручную, выделяя их по одному (или по несколько) и перемещая инструментом Select and Move (рис. 47).
Рис. 44. Перемещение плоскости с траекторией
Рис. 45. Выделение первых четырех следов
Рис. 46. Вид сцены после корректировки параметров следов
Рис. 47. Вид сцены после перемещения следов вручную
Поскольку цепочка следов занимает примерно лишь треть дорожки (рис. 48), создайте еще 24 следа, щелкнув на кнопке Create Multiple Footsteps и введя в поле Number of Footsteps число 24 (рис. 49). Отредактируйте положение дополнительных следов: вначале выделите следы с 11-го по 25-й и исказите цепочку, установив параметр Bend равным 5 (рис. 50), затем выделите следы с 25-го по 29-й и измените Bend на –16 (рис. 51), а потом окончательно доведите вид цепочки до нужного состояния уже вручную (рис. 52). По окончании для создания ключей для данной цепочки щелкните на кнопке Create Keys For Inactive Footsteps, а затем убедитесь в том, что кубик проходит размеренным шагом всю цепочку от начала до конца. Некоторые кадры полученной в итоге анимации представлены на рис. 53.
Рис. 48. Короткая цепочка следов
Рис. 49. Появление дополнительных следов
Рис. 50. Длинная цепочка следов после первой корректировки
Рис. 51. Длинная цепочка следов после второй корректировки
Рис. 52. Окончательный вид цепочки следов
Рис. 53. Движущийся по дорожке кубик