Иллюстрированный самоучитель по анимации персонажей в 3ds max

         

Анимация хвоста


Следующим этапом в создании анимации бездействия Widge является работа с хвостом. Widge может помахивать хвостом из стороны в сторону по-кошачьи, тем самым показывая, что ему не терпится начать атаку и он переполнен энергией.

Сначала нужно просчитать длительность. Чтобы определить правильную длительность анимации, можно применять сложные формулы, но лучше просто ориентироваться на то. что выглядит правильно при данном диапазоне кадров. Другими словами, экспериментируйте, проверяйте, работает ли ваш вариант, и если нет, то пробуйте что-то еще. Так как создание ключевых кадров через каждые пять кадров подошло для движения головы и время уложилось в цикл, воспользуйтесь этим методом пяти кадров и для движения хвоста. Однако основное движение хвоста из стороны в сторону должно происходить каждые 10 кадров, чтобы времени хватило на вставку вторичного движения, которым достигается кошачье, а не собачье виляние хвостом.

Активизируйте окно проекции Тор, включите режим Wireframe и посмотрите на первую кость хвоста, Widge Tail (рис. 6.35).

Так как первый объект хвоста уже загнут влево во всех кадрах, выделите Widge Tail и определите анкерный ключ в кадре 40. Для этого переведите ползунок шкалы времени в кадр 20 и щелкните по нему правой кнопкой мыши. В поле Destination Time (Конечное время) введите число 40 и снимите отметки напротив опций Position (Положение) и Scale (Масштаб) - рис. 6.36.

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


Рис. 6.35. б исходной позе бездействия хвост Widge уже согнут влево


Рис. 6.36 При копировании ключей удобно пользоваться окном Create Key


Рис. 6.37. Верните параметру Angle (deg) значение 5

Еще раз щелкните правой кнопкой мыши по кнопке Angle Snap и верните параметру Angle (deg) значение 5 (рис. 6.37).


Закройте окно, убедитесь, что кнопка Auto Key включена, перейдите в кадр 30 и поверните хвост вправо на 70°, щелкнув по желтой части манипулятора оси Y или нажав клавишу F6, чтобы сделать ось Y осью поворота. Измените положение оставшейся части хвоста, чтобы он выглядел как в кадре 20, но был направлен в обратную сторону (рис. 6.38).



Рис. 6.38. Поместите все кости хвоста в кадре 30 в противоположное положение по сравнению с кадром 20

Выделив все объекты хвоста, перетащите, удерживая нажатой клавишу Shift, единственный отображаемый в шкале времени ключ в кадр 50. Это самый быстрый способ скопировать ключ множественных объектов. Подвигайте ползунок шкалы времени из стороны в сторону и посмотрите, как перемещается хвост. В кадре 40 видно, что положение хвоста не является обратным к положению в кадре 20 (рис. 6.39).

Это обусловлено тем, что ключ был определен только для Widge Tail, а не для всех костей хвоста. Выделите все кости хвоста и просто перетащите, удерживая нажатой клавишу Shift, ключ кадра 20 в кадр 40 и тем самым еще раз определите ключ для Widge Tail и всех его дочерних костей. Теперь при перетаскивании ползунка шкалы времени движения выглядят так, как нужно, интерполируя переход между двумя определенными позами.

Движение гладкое, но хвост выглядит негибким, он похож скорее на собачий, а не на более пластичный кошачий хвост. Эту проблему легко исправить с помощью вторичного движения. Перейдите в кадр 25, оставьте выделенными все кости хвоста, кроме основной кости Widge Tail, и согните их все одновременно обратно в том же направлении, из которого они только что вернулись (рис. 6.40).



Рис. 6.39. Хвост в кадре 40 отличается от хвоста в кадре 20, а это плохо



Рис. 6.40. Согните дочерние элементы Widge Tail в направлении первой позы в кадре 20

Скопируйте новую позу в кадр 45 и перейдите в кадр 35. Теперь согните выделенные кости в направлении позы кадра 30 и скопируйте новый ключ в кадр 55. Воспроизведите анимацию и проверьте результат. Хвост больше похож на кошачий!

Чтобы получить доступ к таким свойствам контроллера ключа, как Continuity, можно также воспользоваться шкалой времени, даже если выделено много объектов. Просто щелкните правой кнопкой мыши по шкале времени в нужном ключе, а не по ползунку шкалы времени (рис. 6.41, позиция 1) и выделите кость, ключ которой нужно изменить (рис. 6.41, позиция 2); появится окно атрибутов ключевого кадра (рис. 6.41, позиция 3).



Рис. 6.41. Получить доступ к атрибутам контроллера для ключей можно и с помощью шкалы времени

Анимация бездействия для Widge в основном завершена, но в character studio есть еще один инструмент, о котором нужно знать, а именно слои (Layer).

 

Блокировка ступней и рук


Чтобы в character studio заблокировать ладони и ступни, нужно просто нажать на специальную кнопку Set Key, которая находится в свитке Key Info (Информация о ключе). Не выходя из кадра 20, выделите объект Widge R Hand и откройте на панели Motion свиток Key Info (рис. 6.17). В этом свитке кроме обычной красной кнопки Set Key есть еще три похожие на нее кнопки: Set Planted Key (Задать закрепляющий ключ), Set Sliding Key (Задать скользящий ключ) и Set Free Key (Задать свободный ключ). Не отменяя выделения Widge R Hand, щелкните по кнопке Set Planted Key. Снимите отметку напротив опции Join to Prev IK Key (Присоединить к предыдущему ключу обратной кинематики), которая появится, если раскрыт раздел IK свитка Key Info, и посмотрите, какие изменения произошли в ключевом кадре (рис. 6.18).

Чтобы получить доступ к специальным кнопкам группы Set Keys, например Set Planted Key, в один момент времени нужно выделить одну конечность. Если же выделено много конечностей, то воспользоваться специальными кнопками обратной кинематики не получится.


Рис. 6.17. В свитке Key Info есть все, что нужно для блокировки ладоней и ступней


Рис. 6.18. Если нажать на кнопку Set Planted Key, параметр IK Blend (Переход обратной кинематики) и параметр пространства объекта будут другими

Такая «закрепляющая» конечность получается в результате изменения параметра IK Blend и смены пространства объекта. Параметр IK Blend определяет, каких решений - обратной или прямой кинематики -будет выбрано больше для выделенной конечности. По умолчанию значение IK Blend равно нулю, а если при этом активен переключатель Body, то конечность находится в обычном пространстве Biped и для движения используется прямая кинематика. Нажатием на кнопку Set Planted Key значение IK Blend изменяется на 1, а конечность оказывается в пространстве Object. В пространстве Object можно в дальнейшем выбрать одну из двух опций, а именно, за каким объектом сцены будет следовать выделенная конечность, или же поместить конечность в координатное пространство этого объекта. Если объект, за которым будет следовать выделенная конечность, не выбран, то программа character studio считает, что конечность нужно заблокировать на месте, оставив его в координатном пространстве World (Мир) вместо Biped. Опция Join to Prev IK Key - способ связать ключи друг с другом; с ее помощью выделенная конечность помещается в координатное пространство предыдущего ключа.

Звучит запутанно. Но полезно помнить, что при определении ключа для ступни или ладони, которые должны остаться закрепляющими, нужно убедиться, что значение IK Blend этого ключа равно 1, а в качестве координатной системы выбрана система Object (а не Body).



АНИМАЦИЯ НА ОСНОВЕ КЛЮЧЕВЫХ КАДРОВ. ЧАСТЬ I


Сначала о началах

Режимы Footstep и Freeform

Представьте себе папку с анимациями

Подготовка Biped

Основы анимации с использованием ключевых кадров

Нулевой кадр Окно Track View

Выбор конфигурации времени

Копирование ключевых кадров

Временной промежуток между анимациями

Track View и текущий диапазон анимации

Расположение центра тяжести СОМ и конечностей

Блокировка ступней и рук

Уточнение позы бездействия

Упругость, непрерывность, смещение

Параметры Ease To и Ease From Ключевые кадры и отметки под ползунком шкалы времени

Режим запрета клавиатурных комбинаций

Вторичное движение

Анимация хвоста

Использование слоев

Использование временных тегов

Резюме

 



Использование слоев


В character studio слои используются для добавления анимаций поверх анимаций Biped. По существу это идеальный способ внесения глобальных изменений в набор анимаций персонажа. Можно просмотреть слои по отдельности или свернуть их в новую анимацию. В случае с Widge с помощью этого мощного инструмента будет добавлено еще одно вторичное движение.

Нажмите клавишу К, чтобы вызвать вид сзади (окно проекции Back), и переместите ползунок шкалы времени из стороны в сторону. Посмотрите, как при движении от кадра 20 к кадру 35 хвост опускается вниз по мере перемещения его влево. С помощью операций со слоями хвост получит такое же движение вниз при перемещении вправо (рис. 6.42).


Рис. 6.42. При перемещении хвоста влево Widge опускает его вниз

Скройте все объекты Biped, кроме Widge Tail и его дочерних объектов. По умолчанию считается, что необходимо получить доступ ко всем костям хвоста. Доступ к ключам дочерних объектов Widge Tail не понадобится, поэтому при работе в окне Track View сожмите область отображения, свернув иерархическое дерево объектов хвоста (снимите отметку напротив опции Tail в разделе Separate Tracks) - рис. 6.43.


Рис. 6.43 Чтобы свернуть иерархическое дерево, снимите отметку напротив опции Tail в разделе Separate Tracks

Не забывайте, что в любой момент можно отделить доступные треки анимации и закрыть их тем же удобным способом. Выделите объект Widge Tail, откройте свиток Layers на панели Motion и щелкните по кнопке Create Layer (Создать слой)

. К анимации будет применен новый слой, а все остальные кнопки Layers станут доступными (рис. 6.44).


Рис. 6.44 Теперь доступны практически все кнопки в свитке Layers

Теперь начните изменять добавленный анимационный слой: перейдите в кадр 20 и поверните корневой элемент хвоста относительно оси X на 60°, кривая хвоста должна указывать вниз (рис. 6.45).

Создание ключа в первом кадре диапазона анимации слоя влияет и на оставшуюся часть анимации. Перейдите в кадр 30 и поверните Widge Tail примерно на 95° относительно оси X, чтобы он был направлен еще ниже, чем до определения кадра 20 (рис. 6.46).


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

Чтобы скопировать два только что определенных ключа в соответствующее положение в оставшуюся часть анимации, вызовите окно Track View. Скопируйте ключ из кадра 20 в кадры 40 и 60. Скопируйте ключ из кадра 30 в кадр 50 (рис. 6.47).

При открытии окна Track View сразу бросается в глаза, что отображаются все дочерние объекты Widge Tail с определенными ключевыми кадрами, хотя отметка данной опции в разделе Separate Tracks может быть снята. Причина этому - ошибка в character studio, имеющая отношение к разделу Separate Tracks, опции Tail и операции добавления слоев. Если в анимацию добавляется новый слой, программа оставляет опции раздела Separate Tracks в исходном состоянии, то есть отмеченными.



Рис. 6.45. Если повернуть хвост в кадре 20, то взмах станет заметнее



Рис. 6.46. В кадре 30 поверните хвост относительно оси X, чтобы он указывал вниз



Рис. 6.47. Опция Tail в разделе Separate Tracks не отмечена, но для нового слоя она будет отмечена по умолчанию

Закройте окно Track Mew. воспроизведите анимацию и посмотрите, как она выглядит с новым слоем (рис. 6.48).



Рис. 6.48. В новом анимационном слое взмах выразительнее

Если изменения привели к удовлетворительным результатам, то нужно свернуть слои. Для этого щелкните по кнопке Collapse (Свернуть) -рис. 6.49.



Рис. 6.49 Как только слой готов, сверните его, чтобы перейти в обычное состояние анимации без слоев

 

Использование временных тегов


Анимация бездействия завершена, теперь ее можно использовать в качестве экземпляра в дальнейшем, быстро указав на нее с помощью удобного инструмента 3ds max, который называется Time Tag (Временной тег). Перейдите в кадр 20 и щелкните по полю сообщений рядом с кнопкой Auto Key, где написано Add Time Tag (Добавить временной тег) - рис. 6.50, позиция 1. Затем выделите пункт Add Tag (Добавить тег) - рис. 6.50, позиция 2-й введите в поле Tag Name (Имя тега) значение Idle (Бездействие) - рис. 6.50, позиция 3. Теперь всякий раз, когда ползунок шкалы времени окажется в кадре 20, в окне Time Tags появится поле сообщений Idle (рис. 6.50, позиция 4).


Рис. 6.50. С помощью временных тегов можно быстро вызвать отрезок анимации

Переместите ползунок шкалы времени в кадр 50. Щелкните по полю сообщений Add Time Tag, появится новый пункт - 20 Idle. Щелкните по ней - и ползунок шкалы времени автоматически перейдет в первый кадр анимации бездействия (рис. 6.51).

Персонаж Widge будет экспортироваться в движок WildTangent, поэтому при последующем экспорте анимаций нужно знать время начала и конца анимации. Еще раз вызовите окно Time Configuration и измените значение в поле End Time с 60 на 59. Затем откройте меню Time Tags и выберите пункт Edit Tag (Редактирование тега) - рис. 6.52.

Когда появится окно Edit Time Tag (Редактирование временного тега), выделите тег 20 Idle в списке и переименуйте его в поле Tag Name на Idle Start (Начало бездействия). Нажмите кнопку ОК, и затем перейдите в кадр 60. Еще раз щелкните по полю сообщений Add Time Tag и создайте новый временной тег с именем Idle End (Конец бездействия) - рис. 6.53.


Рис. 6.51. Если щелкнуть по полю сообщений Add Time Tag, то появятся окно Time Tags


Рис. 6.52. Чтобы изменить имя временного тега или удалить его, отредактируйте его с помощью меню Time Tags


Рис. 6.53 В список временных тегов добавьте заключительную часть анимации бездействия

Польза применения временных тегов очевидна. Больше всего они полезны, если персонаж имеет весьма большое число анимаций. Завершив анимацию, сохраните файл с расширением .max, перепрыгните на 20 кадров вперед - теперь можно переходить к любым другим анимациям.

Загрузите файл Widge4.max (рис. 6.54).


Рис. 6.54. Загрузите файл Widge4.max и посмотрите, как должно выглядеть тело чужака

 



Ключевые кадры и отметки под ползунком шкалы времени


Активизируйте окно проекции Front, нажмите кнопку Zoom Extents и воспроизведите анимацию. Персонаж Widge движется из стороны в сторону, но можно добавить небольшие прыгающие движения. Похоже, что ему не помешает немного попрыгать вверх-вниз. Снова выделите объект СОМ персонажа Widge. убедитесь, что кнопка Auto Key имеет красный цвет, то есть активна, перейдите к кадру 40 и опустите объект СОМ вниз на 2 единицы вдоль оси Z. определив новый ключевой кадр в треке анимации Vertical для Widge. Перейдите к кадру 30 и поднимите объект СОМ примерно на 8 единиц по оси Z.

Заметьте, что определяемые ключевые кадры отображаются на шкале времени под ползунком: невыделенные ключи имеют вид красных прямоугольников, а выделенные - белых (рис. 6.30).


Рис. 6.30. Ключи, определенные для выделенных объектов, доступны для редактирования на шкале времени

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

Отображаемые на шкале времени ключевые кадры можно перемещать, удалять и копировать так же, как и в окне Track View. Выделите только что созданный в кадре 30 ключевой кадр, нажмите и удерживайте клавишу Shift и перетащите этот кадр вправо в кадр 50. Отпустите кнопку мыши - ключевой кадр был только что скопирован на шкале времени. Воспроизведите анимацию и посмотрите, как персонаж меняет свой вид (рис. 6.31).


Рис. 6.31. Widge начинает внушать страх

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

 



Копирование ключевых кадров


Теперь скопируем несколько ключевых кадров. В поле Current Frame (Текущий кадр), которое находится слева от кнопки Time Configuration, введите 20 и нажмите клавишу Enter (рис. 6.14).


Рис. 6.14 С помощью поля Current Frame можно перейти к кадру, просто введя его номер

Анимация перейдет в кадр 20, Этим инструментом удобно пользоваться при работе с огромной анимацией, состоящей из сотен или тысяч кадров. Еще раз откройте окно Track View и примените команду Auto Expand, если это необходимо. Чтобы полностью показать текущий временной диапазон, щелкните по пиктограмме Zoom Horizontal Extents

которая находится в правой нижней части окна Track View. Увеличьте масштаб, чтобы увидеть кадры с 0 по 30, и с помощью инструмента Truck (Прокрутка)
переместите рабочую область вправо или влево, если это необходимо.

В среднюю кнопку мыши с тремя кнопками (а именно такая мышь у вас должна быть) обычно встроено колесико. Так же как и в обычном окне проекции 3ds max, перетаскивая указатель мыши в окне Track View, можно изменять масштаб рабочей области, увеличивая или уменьшая число отображаемых ключей. Также можно прокручивать окно влево и вправо, удерживая нажатой среднюю кнопку мыши и перемещая мышь в нужном направлении.

В кадре 0 выделите все ключевые кадры, протащив вдоль них рамку выделения. Убедитесь, что инструмент Slide Keys (Сместить ключ)

активен, и, удерживая нажатыми клавишу Shift и левую кнопку мыши, перетащите ключи вправо, пока они не окажутся над кадром 20. Кадры будут скопированы (часто говорят «клонированы»), так же как копируются или клонируются объекты и подобъекты.

Скопировать ключевые кадры из одного кадра в другой можно, щелкнув правой кнопкой мыши по ползунку шкалы времени. Шкала времени расположена в нижней части окна проекции, и в ней отражается размер диапазона анимации и номер текущего кадра. Если щелкнуть по ней правой кнопкой мыши (рис. 6.15, позиция 1), то появится окно Create Key (Создать ключ) - рис. 6.15, позиция 2, — с помощью которого можно скопировать все трансформации или некоторые из них. Однако, если нужно определить ключи для всех треков объекта СОМ, придется использовать окно Track View.


Рис. 6.15. Скопировать кадры можно другим способом — щелкнув правой кнопкой мыши по ползунку шкалы времени

Заметьте, что сквозь только что скопированные в кадр 20 ключи проходит розовая линия. Такое цветное напоминание того, какой кадр является текущим, очень полезно. При перемещении ползунка шкалы времени розовая линия тоже перемещается.

 



Нулевой кадр


При анимации кадр 0 лучше оставлять нетронутым. Он, если не оговорено иное, служит началом для любой анимации из всего набора анимаций. Но в случае с Widge существует и техническая причина. Кадр 0 должен быть исходным положением, в котором сетка была присоединена к Biped, - это обусловлено весовыми значениями. Технология WildTangent рассчитывает весовые параметры, которые определяются для любого персонажа с помощью модификатора Physique на основе первого кадра набора анимаций. Это кадр 0, поэтому персонаж всегда должен быть в одной и той же позе, веса которой настроены. Иначе результаты выполнения будут странными, не теми, которые ожидались.

Убедитесь, что режим Figure выключен (в этом режиме нельзя анимировать Biped). Чтобы выделить объект Biped и его дочерние элементы, из созданных ранее наборов выделения Named Selection Sets выберите набор biped (или щелкните дважды по объекту СОМ персонажа Widge). Чтобы сделать текущим тип преобразования вращения, щелкните по кнопке Select and Rotate (Выделить и повернуть). На панели Motion щелкните по кнопке Set Key (Установить ключ) - рис. 6.6.

Теперь для всех выделенных объектов определены ключевые кадры. Однако корневому элементу СОМ соответствуют три трека анимации, в то время как другим объектам Biped соответствует только один трек. Определите ключевой кадр для каждого трека анимации объекта СОМ персонажа Widge, поочередно щелкнув по кнопкам Body Horizontal (Тело по горизонтали), Body Vertical (Тело по вертикали) и Body Rotate (Поворот тела) в разделе Track Selection (Выбор трека), а затем нажмите кнопку Set Key (рис. 6.7).


Рис. 6.6. Чтобы определить ключевой кадр для выделенных объектов Biped, щелкните по кнопке Set Key


Рис. 6.7. Выберите для объекта СОМ треки анимации Body Horizontal, Body Vertical или Body Rotate

При вводе значений перемещения объектов в окне Type-In Transform (Точное преобразование) на результат также влияют активная ось перемещения и выделенный трек анимации для объекта СОМ. Если по какой-то причине ввод координат не дал результата, еще раз отметьте текущую ось.

 



Окно Track View


Добавить ключевой кадр в любой трек анимации можно и с помощью функции Add Key (Добавить ключ), которая находится в окне Track View (Просмотр треков). Чтобы вызвать это окно, выберите пункт Track View -Dope Sheet (Просмотр треков - Монтажный стол) в меню Graph Editors (Графические редакторы) - рис. 6.8.


Рис. 6.8. В окне Track View в 3ds max удобнее всего добавлять, копировать и перемещать ключевые кадры

Окно Track View - Dope Sheet - это просто способ представления ключевых кадров, определенных для анимации, в виде ряда точек, которыми можно управлять. Именно в этом окне присваиваются дополнительные контроллеры, изменяются свойства ключевых кадров и даже добавляются в анимацию звуковые эффекты.

В одной сцене 3ds max можно открыть несколько окон Track View. Поэтому и существует возможность присваивать открытым окнам

Track View имена. Эти отдельные окна будут сохранены вместе со сценой при сохранении файла с расширением max.

Количество информации, которое можно отобразить в окне Track View, настолько велико, что разработчики 3ds max предусмотрели возможность отфильтровывать то, что отображать не нужно. В левом верхнем углу окна Track View щелкните по пиктограмме Filters (Фильтры)

. Появится диалоговое окно Filters, в котором можно определить, какие объекты показывать в окне Track View. Чтобы отображались треки только анимированных объектов или объектов, для которых определен набор ключевых кадров, в разделе Show Only (Показывать только) отметьте опцию Animated Tracks (Анимированные треки) - рис. 6.9.

Щелкните по кнопке ОК - в окне Track View отобразятся только те треки, в которых есть ключевые кадры. Чтобы выделить строку Objects (Объекты), которая находится слева в списке треков под строкой Sound (Звук), щелкните по ней левой кнопкой мыши (она станет желтой). Наведите курсор на строку Objects и вызовите контекстное меню, щелкнув правой кнопкой мыши. Наведите указатель мыши на пункт Auto Expand (Раскрыть автоматически) и еще раз щелкните правой или левой кнопкой по нужному пункту. Раскроется дерево всех дочерних элементов списка Objects. Также в дереве Objects можно задать отображение только отдельных подобъектов или треков (рис. 6.10).




Рис. 6.9. Чтобы в окне Track View отображались только анимированные треки, отметьте : Animated Tracks

Измените масштаб рабочей области окна Track View, щелкнув по пиктограмме Zoom (Масштаб) в нижней части окна, - увеличьте масштаб так, чтобы лучше различить кадр 0.

Если ваша мышь имеет три кнопки с колесиком на средней, то, прокручивая его, можно изменять масштаб в окне Track View. С помощью инструмента Zoom можно изменять масштаб только по горизонтали или по вертикали. Щелкните по этой пиктограмме и, удерживая кнопку мыши нажатой, выберите любую команду в выпадающем графическом меню (рис. 6.11).



Рис. 6.10. Чтобы одновременно получить доступ ко всем ключевым кадрам трека, воспользуйтесь командой Auto Expand



Рис. 6.11. Масштаб можно изменять либо по горизонтали, либо по вертикали

Чтобы вызвать список объектов сцены, которые можно выделять, нажмите на клавишу Н и выберите из списка объект СОМ персонажа Widge. Вернитесь в окно Track View: в списке треков желтый квадратик рядом со строкой Widge будет подсвечен желтым. Таким образом, смотря на окно Track View, проще всего понять, выделен ли объект. Если при выполнении команды Set Key для объекта СОМ активна кнопка Select and Rotate, то набор ключевых кадров будет только у трека Widge/Transform/ Turning (Преобразование/Поворот). Если активна кнопка Select and Move, а текущими осями являются X, Y или XY, то ключ будет определен для трека анимации Widge/ Transform/Horizontal. А при активной кнопке Select and Move и текущей оси Z ключ будет определен для трека Widge/Transform/Vertical.

Независимо от того, какой ключ определен, для каждого трека анимации объекта СОМ он нужен. Добавьте ключ с помощью кнопки Add Keys
, которая находится в верхней части окна Track View. Активизируйте кнопку, щелкнув по ней (рис. 6.12, позиция 1), а затем щелкните по пустому пространству, где нужно вставить ключевой кадр, в любом из трех треков - Vertical, Horizontal и Turning (рис. 6.12, позиция 2). Заполните все пустоты в треках - теперь у всех объектов Biped в кадре 0 есть ключи.



Рис. 6.12. Чтобы вручную добавить ключи в треки анимации объекта, воспользуйтесь кнопкой Add Keys

 

Основы анимации с использованием ключевых кадров


Создание ключевых кадров - основа анимации. Анимация вручную полезна, но может обмануть ожидания. Опыт и практика улучшат навыки работы с ключевыми кадрами, но нужно придерживаться и некоторых советов и предложений, которые помогут вам в процессе работы.

 



Параметры Ease To и Ease From


Персонаж Widge напряжен, готов к атаке, его поза одинакова в первом и последнем кадрах анимации, однако нужно, чтобы он совершал еще какие-либо действия. Можно заставить его покачиваться из стороны в сторону в ожидании. Это довольно просто, и движение не должно получиться очень скучным. Перейдите к кадру 38 и нажмите кнопку Auto Key, она изменит цвет на красный и станет активной. Выделите объект СОМ и переместите его вправо (примерно на 55 единиц) вдоль оси X. Воспользуйтесь командой Zoom Extents, чтобы лучше видеть персонаж, откройте панель Motion и нажмите кнопку Biped Playback (Воспроизведение Biped)

. Анимация будет воспроизведена на объекте Biped без полигонов, и она выглядит неплохо даже на компьютере со слабым процессором (рис. 6.25).


Рис. 6.25. Команда Biped Playback позволяет увидеть движения в простом режиме фигуры

Можно сказать, что результат изменения параметра Continuity для объекта СОМ персонажа Widge на 0 в первом и последнем кадрах анимации придает циклу по достижении точки повтора неприятный эффект. Это достаточно просто исправить. Вернитесь в окно Track View, выделите три ключа, определенных для трека анимации Horizontal объекта СОМ, и щелкните правой кнопкой по одному из них. Измените значение параметра Continuity обратно на 25 (рис. 6.26).


Рис. 6.26 Если вернуть параметру Continuity значение 25, то анимация будет более гладкой

У ключевого кадра, который определяется между двумя ключевыми кадрами с одинаковыми параметрами, будут те же самые параметры, даже если по умолчанию они были другими.

Кривая всех трех ключей вновь примет сглаженную форму, а не перевернутой буквы V. Откройте окно Time Configuration и в поле End Time вместо значения 60 введите 59 (рис. 6.27).

Первый и последний кадры теперь не повторяются, что должно привести к более плавному циклу. Вернитесь в окно проекции Тор, примените команду Zoom Extents и еще раз воспроизведите анимацию. В процессе воспроизведения анимации при переходе от последнего кадра к первому все еще происходит скачок. Сначала проверьте, совпадают ли ключевые кадры всех треков: скопируйте их еще раз из кадра 20 в кадр 60. Попытайтесь воспроизвести анимацию. Неполадка не исчезла. И здесь нужно более детально изучить элементы управления ключевыми кадрами, настроив значение параметра Ease To. Этот дополнительный параметр контроллера ТСВ позволяет замедлить приближение к конкретному ключевому кадру, экспоненциально уменьшив число изменений от положения предыдущего ключевого кадра при приближении к данному.


Вызовите окно Track View и выделите последний ключ в треке Horizontal для объекта СОМ. Щелкните по нему правой кнопкой мыши (рис. 6.28, позиция 1) и введите значение 25 в поле Ease To в верхней части маленького окна (рис. 6.28, позиция 2).



Рис. 6.27. Чтобы кадры не перекрывались друг с другом при воспроизведении, уменьшите значение в поле End Time на единицу


Рис. 6.28. Увеличить параметр Ease To - значит, замедлить движение прямо перед ключом
Закройте диалоговое окно, окно Track View и воспроизведите анимацию еще раз. Теперь она выглядит гораздо лучше. Но сейчас кажется, что в начале анимации Widge буквально перескакивает в среднее положение ключевого кадра. Как будет выглядеть анимация, если добавить в первый ключ значение параметра Ease From так, чтобы Widge не покидал это положение так быстро? Легко догадаться, что Ease From вынуждает анимацию ускоряться при переходе от одного кадра к другому.

Еще раз вызовите окно Track View, выделите ключевой кадр в кадре 20 для трека Horizontal, щелкните по нему правой кнопкой мыши и введите в поле Ease From значение 25. Но на этот раз не закрывайте окна трека анимации и Track View, переместите последнее из рабочей области и нажмите кнопку Biped Animation (Анимация Biped) - рис. 6.29.



Рис. 6.29. Значения ключей можно интерактивно настроить при воспроизведении анимации
Анимация выглядит хорошо, хотя, возможно, значение 25 слишком велико. Не останавливая воспроизведение, в поле Ease From введите 15. Анимация изменится соответствующим образом. Во время воспроизведения не бойтесь поэкспериментировать со значениями любых ключей и посмотрите на результат изменений.

Изменять значения можно не только в окне Track View: откройте панель Motion и настройте параметры в ней. Перед воспроизведением анимации убедитесь, что объект, параметры анимации которого нужно изменить, выделен.

 

Подготовка Biped


Мы будем учиться работать с ключевыми кадрами на персонаже Widge. Как упоминалось ранее, это один из отрицательных персонажей игры Betty Bad. Он не обычный игровой персонаж, не двуногий - это четвероногое живое существо, которое можно анимировать только с помощью ключевых кадров. Это несложный процесс, но на нем легко проиллюстрировать гибкость и полезность объекта Biped.

Откройте файл WidgeS.max (рис. 6.1).

Как можно видеть, для Widge создан каркас, заданы веса и он готов двигаться. Однако, как и для любого персонажа, сначала нужно выполнить подготовительные действия, которые упростят процесс анимирования. Сделайте так, чтобы сетку было проще видеть в затененном окне проекции: всем объектам Biped присвойте прозрачный материал.


Рис. 6.1. Widge вернулся и ждет, пока из него сделают отрицательного героя

Щелкните по пиктограмме Material Editor (Редактор материала)

и создайте материал с именем invisio, непрозрачность которого равна 0 (рис. 6.2).

Выделите все объекты Biped и присвойте им этот материал. Затем щелкните где-либо в окне проекции, чтобы отменить выделение объектов, и откройте панель Display. Нет необходимости отображать объекты-пустышки, поэтому, чтобы скрыть их все, отметьте опцию Helpers (в разделе Hide by Category) - рис. 6.3.

Персонажи лучше представлять себе как группы элементов. Проще говоря, любой персонаж можно разделить на сетку и объект Biped. Чтобы быстро выделить их как один объект сцены, выделите все объекты Biped (без объектов-пустышек), а затем включите их в именованный набор выделения. Для этого, не отменяя выделения объектов, введите слово biped в пустое поле Named Selection Sets (Именованные наборы выделения) в верхней части экрана (рис. 6.4).

Теперь, когда нужно будет выделить все объекты Biped сразу, просто щелкните по маленькой стрелке рядом с полем Named Selection Sets, появится список (пока в нем только один элемент) определенных наборов выделения, из которого можно выбрать нужный элемент. Таким образом, рабочий процесс ускоряется.




Рис. 6.2. Создайте полностью прозрачный материал и присвойте его объектам Biped



Рис. 6.3. Чтобы сэкономить на списке объектов, скройте объекты-пустышки направляющих Biped



Рис. 6.4. Отличный способ выделить все объекты Biped сразу — использовать поле Named Selection Set

Как показано на рис. 6.5, чтобы отредактировать или удалить именованные наборы выделения, сначала в меню Edit (позиция 1) щелкните по пункту Edit Named Selections (Редактирование наборов выделения), а затем выберите один или несколько из перечисленных наборов Named Selections (позиция 2). Добавьте объекты в набор, удалите их из набора или удалите весь набор. К множеству наборов выделения можно даже применять своего рода булевы операции, объединяя, вычитая или пересекая их.

Наконец выделите и заморозьте два объекта сетки Widge - m_eye и m_widge, - чтобы не выделить их случайно при анимировании Biped.



Рис. 6.5. Удалить набор выделения можно только в диалоговом окне Named Selection Sets

 

Представьте себе папку с анимациями


Попытайтесь представить, что отдельный файл 3ds max - это папка с определенными анимациями, а анимации персонажа - клипы, находящиеся в этой папке. Файл 3ds max становится большой виртуальной коллекцией, содержащей все, что нужно для персонажа: от сетки, текстурных карт и каркаса до всевозможных анимаций. Преимущества применения такого унифицированного подхода к анимациям, собранным в одном файле, становятся особенно очевидны, когда нужно внести структурные изменения в персонаж или объект Biped. Если для одного персонажа существует много отдельных анимационных файлов, придется повторить эти структурные изменения во всех файлах. Это просто не имеет смысла, лишняя работа -огромная трата времени.

Однако иногда можно и даже нужно создавать особые анимации и сохранять их в отдельных файлах. Это скорее относится к созданию каркаса Biped, а не файла персонажа. Такой подход в основном применяется при захвате движения или если файлы анимаций очень большие (более подробно об этом далее, после рассказа о том, как соединять анимации с помощью Motion Flow Editor).

 



Расположение центра тяжести СОМ и конечностей


Первый шаг в покадровой анимации - это задание позы персонажа при активной кнопке Auto Key (в этом случае она красная). Анимация бездействия - не исключение. Персонаж Widge всегда готов двигаться, и он должен вести себя, как будто вот-вот ринется в атаку, даже если стоит спокойно. Его анимация бездействия должна содержать в себе энергию раздражения. Поза бездействия Widge также должна быть адекватной для него, иначе, когда он начнет ходить или атаковать, переход будет выглядеть неестественно.

Определяя положение любого персонажа, начните с корневого объекта иерархии Biped и перемещайтесь вниз по ней. Выделите центр тяжести персонажа Widge. определите его местоположение, а затем переместите руки и ноги в нужное положение. Как только эти пять объектов Biped окажутся на месте, заблокируйте кисти и ступни и настройте оставшуюся часть персонажа. В табл. 6.1 приведены координаты, которые помогут расположить Widge в анимации бездействия, но определить позу можно и приблизительно.

Таблица 6.1. Координаты анимации бездействия Widge

Объект

ОсьХ

ОсьУ

OcbZ

Widge (COM)

-22

-12

66

Widge R Foot

-168

24

0

Widge R Hand

-191

-175

0

Widge L Hand

192

-98

0

Widge L Foot

165

99

0

Убедитесь, что кнопка Auto Key активна и окрашена в красный цвет, переместите объект СОМ, руки и ступни в нужное положение (рис. 6.16).

Основная поза определена, теперь ее нужно улучшить, настроив объекты Pelvis, Spine, Head и Tail. Но прежде заблокируйте ладони и ступни. Это значит, что не придется изменять их положение при каждом перемещении или вращении объектов, которые находятся в иерархической цепочке выше конечностей.


Рис. 6.16. Первый шаг в создании позы ожидания Widge -размещение объекта СОМ и конечностей в нужном положении

 



Режим запрета клавиатурных комбинаций


Итак, вы усердно поработали: Widge, правда, еще ничего не делает, но на него интересно смотреть. Теперь рассмотрим еще несколько полезных инструментов помимо тех, которые вам уже известны. В окне проекции Right щелкните по кнопке Zoom Extents, а затем - по кнопке Keyboard Shortcut Override Toggle (Режим запрета клавиатурных комбинаций), которая в 3ds max 6 расположена на панели инструментов Extras (Дополнительные), - рис. 6.32. Панель Extras по умолчанию не показывается. Чтобы вывести ее на экран, щелкните правой кнопкой мыши по панели инструментов и выберите пункт Extras.


Рис. 6.32 С помощью этой кнопки можно получить доступ к дополнительным «горячим» клавишам

Если эта кнопка активна, то любые «горячие» клавиши, возможность задания которых предусмотрена в таких дополнительных модулях, как character studio, будут иметь более высокий приоритет по отношению к «горячим» клавишам, которые установлены в 3ds max по умолчанию или определены пользователем. Ниже перечислены наиболее удобные «горячие» клавиши character studio:

 0 - устанавливает ключ Biped;

 Alt+C - копирует позу выделенного объекта Biped в буфер обмена;

 Alt+V - вставляет позу из буфера обмена.

Придав голове немного вторичного движения, попробуйте применить по крайней мере две из этих «горячих» клавиш.

 



Режимы Footstep и Freeform


В character studio объект Biped можно анимировать в режиме Footstep (След), в режиме Freeform (Свободная деформация) или с использованием обоих этих режимов. Анимирование персонажа в режиме Freeform -это не более чем позиционирование и анимирование персонажа старомодным способом, созданием одного ключевого кадра за другим. Режим Footstep - мощный инструмент пакета character studio, с помощью которого быстро создается анимация ходьбы, бега или прыжков со всеми основными движениями, которые им соответствуют. Параметры инструмента Footstep можно настроить для разных шагов или походок любого анимируемого персонажа.

В этой книге не рассказывается о режиме Footstep, если же вы хотите научиться работать в нем, обратитесь к пособиям, которые прилагаются к character studio и содержат огромное количество информации. Этот инструмент - мощный и многофункциональный, но одновременно и сложный, и он скорее подходит для анимационного подхода больше технического, чем художественного. Анимацию, которая полностью определяет позу персонажа и его движения, нельзя создать простым нажатием кнопки, рисованием отметок на полу и приказом «Иди туда». Отсутствие описания режима Footstep в этой книге не означает, что он плох. Просто это не самый лучший способ анимирования персонажа игры в реальном времени с учетом последних требований к анимации человекоподобных персонажей.

 



к анимированию, определите, будете ли


Перед тем как приступить к анимированию, определите, будете ли вы создавать ключевые кадры, использовать захват движения или выполните и то и другое. Независимо от выбранного метода, представьте, что файл 3ds max - это папка с анимациями, в которой содержатся все шаги персонажа. Прежде чем определять ключевые кадры, убедитесь, что Biped подготовлен к анимации: присвойте ему прозрачный материал и/или создайте набор быстрого выбора Named Selection Set.

Начните анимирование с сохранения кадра 0 в исходной позе Biped, в той самой, в которой он был присоединен к сетке. Для этого воспользуйтесь окном Track View или кнопками Set Key на панели Motion. Определите диапазон анимации в окне Time Configuration. Там же можно задать скорость смены кадров и скорость воспроизведения. Скопируйте ключевые кадры с помощью окна Track View или шкалы времени, но не забудьте оставить между клипами промежутки, чтобы анимации было проще идентифицировать. Изучите результат применения параметров упругости, непрерывности и смещения контроллера анимации ТСВ, которые устанавливаются по умолчанию. Создайте с их помощью плавные циклы в анимационных клипах. Чтобы добавить еще немного деталей в анимацию, примените вторичное движение. А чтобы добавить такое дополнительное движение поверх остальной анимации, воспользуйтесь меню Layers.

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


Сначала о началах


Чтобы научиться анимировать персонаж, нужно сначала овладеть процессом создания ключевых кадров и познакомиться с основными функциями инструментов (в данном случае 3ds max и character studio). Также необходимо освоить несколько процедурных подходов, характерных для анимирования персонажей игр в реальном времени. При чтении данной главы вы познакомитесь с этими методами и функциями на примере создания простой анимации бездействия для относительно несложного персонажа Widge.

 



Track View и текущий диапазон анимации


Текущий временной диапазон с 20 по 60 кадр не был определен с самого начала из-за того, что в окне Track View просмотр ключей зависит от текущего диапазона анимации. Попытайтесь увеличить или уменьшить масштаб в окне Track View либо прокрутить его вправо или влево, когда диапазон определен с 20 до 60 кадр. При навигации по окну Track View в 3ds max считается, что если определен текущий диапазон анимации, то просматривать ключевые кадры, находящиеся до этого диапазона (а иногда и после), нет необходимости. С такими ключами можно случайно начать работать, даже не заметив этого. Во избежание этого просто расширьте рамки начального и конечного кадров, если нужно получить доступ к кадрам до или после текущего диапазона анимации. Поэтому ранее при изменении конфигурации времени и был добавлен кадр 0. Это единственный способ, с помощью которого можно получить доступ к ключам.

 



Упругость, непрерывность, смещение


Если положения объекта в кадрах 20 и 60 совпадают и если в кадрах, находящихся между ними, нет ключевых, то движения вообще не должно быть. Но в кадре 0 определены ключи, поэтому программа «считает», что вы хотите применять анимационную кривую от первого ключа к последнему. Существует по крайней мере три ключа, разделенных между собой некоторым пространством, поэтому получается едва различимое движение, вызванное применением анимационной кривой. Кривая, которая применялась к ключам, в аббревиатуре ТСВ отвечает букве С (Непрерывность).


Рис. 6.20. Создайте начало и конец цикла

Непрерывность определяет, насколько гладкой будет анимация, ключевые кадры становятся касательными к анимационной кривой; таким образом, анимация выглядит гладкой и естественной. Напряжением определяется величина искривления анимационной кривой, его можно использовать для создания небольшого эффекта замедления или ускорения. Смещением определяется место максимума анимационной кривой по отношению к ключу. Чтобы просмотреть параметры контроллера ТСВ, выделите объект СОМ персонажа Widge и откройте панель Motion. Откройте свиток Key Info и посмотрите параметры контроллера ТСВ выделенного объекта (рис. 6.21).

Свиток Key Info для выделенного объекта появится, только если активная трансформация соответствует треку анимации, для которого был определен ключ. Например, если для трека поворота объекта определен ключевой кадр и активна кнопка Select and Move (Выделить и переместить), информация о ключе поворота на панели Motion не появится.

Параметры контроллера ТСВ, устанавливаемые по умолчанию, показаны на рис. 6.21. Они определены так, чтобы переход от одного ключевого кадра к другому был плавным. Чтобы увидеть результат применения значения параметра Continuity, равного 0, убедитесь, что текущим является кадр 20, дважды щелкните по полю Continuity и введите 0. Щелкните по кнопке Next Key (Следующий ключ - маленькая красная стрелка, указывающая вправо) в верхней части свитка Key Info, перейдите к следующему ключевому кадру для объекта СОМ в кадре 60 и также измените его параметр Continuity на 0. Теперь на месте кривой в окне просмотра, находящемся над значениями параметров, появилась ломаная линия в форме перевернутой буквы V. Это значит, что изгиба интерполяции между ключами нет, от одного к другому идет прямая линия (рис. 6.22).




Рис. 6.21. В большинстве случаев параметры контроллера ТСВ, устанавливаемые по умолчанию для трансформации поворота, подходят



Рис. 6.22. Если значение параметра Continuity равно 0, то движение будет выполняться с линейной интерполяцией между ключевыми кадрами и дополнительного движения добавлено не будет

Если нужно выделить каждую конечность, объекты Spine, Head и Tail, изменить для всех ключей их параметр Continuity на 0, то при передвижении ползунка шкалы времени из стороны в сторону не появится никакого дополнительного движения и персонаж останется неподвижным. Однако, если все же придется выполнить описанные выше действия (а не хочется переходить от объекта к объекту, от ключа к ключу с помощью свитка Biped на панели Motion), воспользуйтесь окном Track View.

Если окно Track View закрыто, откройте его и выделите оба ключа для кадров 20 и 60 для объекта Widge L Clavicle. Щелкните правой кнопкой мыши по любому ключевому кадру, появится маленькое окно (похожее на раздел ТСВ панели Motion). Так в окне Track View можно получить доступ к параметрам контроллера ТСВ и конечностей (рис. 6.23).



Рис. 6.23. Получить доступ к параметрам контроллера ТСВ и обратной кинематики можно с помощью и окна Track View, и панели Motion

Этот хороший способ влиять на множество ключей, но он работает только для одного трека анимации в один момент времени. Нельзя изменить сразу все ключи или более одного трека единственного объекта, например СОМ.

Треки конечностей сжаты, чтобы было легче производить операции над ключевыми кадрами; треки от ключицы до пальцев рук и от бедер до пальцев ног свернуты в один трек для каждого набора, но их можно раскрыть и просмотреть ключи для каждого подобъекта конечности. Выделите объект Biped, откройте свиток Keyframing Tools (Инструменты работы с ключевыми кадрами) на панели Motion и в разделе Separate Tracks (Отделить треки) отметьте опцию Arms (Руки) и/или Legs (Ноги) - рис. 6.24.



Рис. 6.24 Если в разделе Separate Tracks отмечены опции, то в окне Track View будут отображены треки анимации для остальных частей поверхности, таких как ладони, пальцы рук и ног

Настраивая параметры Continuity, можно добавить или вычесть незначительные движения, которые влияют на целостность цикла. Существуют и еще две части контроллера ТСВ, которые можно использовать при анимировании простого цикла. Это параметры Ease To (Освободить к) и Ease From (Освободить от).

 

Уточнение позы бездействия


Теперь нужно уточнить позу, повернув объекты Pelvis, Spine и Head. Воспользуйтесь координатами из табл. 6.2 или просто задайте их положение на глаз.

Таблица 6.2. Значения углов поворота объектов Pelvis, Spine и Head персонажа Widge

Объект

ОсьХ

ОсьУ

OcbZ

Widge Pelvis

&nbsp

&nbsp
Widge Spine


&nbsp

Widge Head

&nbsp -2o

&nbsp

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

Таблица 6.3. Значения углов поворота руки и ноги Widge

Объект

ОсьХ

Widge R Calf

18o

Widge R Forearm

15o

Widge L Forearm

-1o

Widge L Calf

16°

Завершите уточнение первого кадра простоя, задав положение объектов хвоста Tail. Такие изменения также выводят персонажа из застывшей исходной позы, она становится естественной, более анимированной. Воспользуйтесь координатами из табл. 6.4.

Таблица 6.4. Координаты положения хвоста Widge

Объект

ОсьУ

OcьZ

Widge Tail

33°

-22°

Widge Tail 1


&nbsp
Widge Tail2

23°


Widge TailS

18°

&nbsp
Widge TaiW

10°


Как только уточнения внесены, поза завершена (рис. 6.19). Полностью определив и уточнив основную позу Widge, скопируйте ключевые кадры в конец диапазона анимации, чтобы задать цикл. Конечно, между этими ключевыми кадрами Widge должен что-то делать. Эти движения должны быть достаточно сдержанными и не привлекать к себе большого внимания. Откройте окно Track View, убедитесь, что пиктограмма Slide Keys

в верхней части экрана активна, выделите ключи в кадре 20 и перетащите их, удерживая нажатой клавишу Shift, в кадр 60. Так вы получите скопированную точку начала и конца анимации. Это первый шаг в создании цикла (рис. 6.20).


Рис. 6.19. У персонажа Widge есть первая поза

Переместите ползунок шкалы времени из стороны в сторону - и вы увидите, что персонаж немного движется. Это происходит из-за того, что при определении ключевого кадра трекам анимации поворотов Biped по умолчанию присваивается контроллер анимации. Он называется ТСВ (Tension, Continuity, Bias - упругость, непрерывность, смещение).

 



Временной промежуток между анимациями


При использовании подхода с «анимационной папкой» для файлов персонажа 3ds max нужно оставлять некоторое временное пространство между анимациями, иначе их будет сложнее найти в окне Track View и отредактировать. Если оставлять заметные промежутки между анимациями, то придется также в начале и в конце каждой анимации определять полные столбцы ключей для всех треков Biped. Так движения будут отделены друг от друга и различимы, в окне Track View проще будет увидеть, где они начинаются и где заканчиваются.

Вернитесь в окно Time Configuration и в поле Start Time введите значение 20 вместо 0. Еще раз откройте окно Track View и щелкните по пиктограмме Zoom Horizontal Extents, чтобы показать целиком диапазон отображаемых ключей.

Вместо того чтобы каждый раз, закончив работу с окном Track View, закрывать его, просто сверните его.

Создаваемая анимация бездействия будет состоять из 41 кадра: от 20 до 60. Где будет находиться анимация - не важно, так как файл 3ds max представляет собой виртуальную папку анимаций. То, что она начинается с кадра, кратного 10, - просто вопрос удобства; всегда оставляйте между анимациями промежуток по крайней мере в 20 кадров. Если это число будет меньше, то промежуток при просмотре всей анимации станет малозаметным, особенно при работе с захватом движения: в этом случае обычно для каждого трека в каждом кадре анимации задан ключ.

 



Вторичное движение


Один из самых важных аспектов анимации (на создание которого уходит больше всего времени) - вторичное движение. Этот термин применяется к маленьким, практически незначительным движениям, которые усиливают или подчеркивают основные движения анимации. Вторичное движение - это, например, постукивание ступней во время бездействия или легкое сгибание пальцев, то есть едва заметные, но все же ключевые при «оживлении» персонажа движения.

В окне проекции Right выделите объект Head персонажа Widge, выберите команду преобразования Rotate и сделайте ось Z активной осью поворота. Активизируйте пиктограмму Angle Snap (Угловая привязка)

, щелкнув по ней левой кнопкой мыши. Затем, чтобы вызвать окно Grid and Snap Settings (Параметры сетки и привязок), щелкните по этой же пиктограмме правой кнопкой мыши. В поле Angle (Угол) измените исходное значение, равное 5, на 3 и закройте диалоговое окно. Теперь поворот объекта будет осуществляться с шагом 3° (рис. 6.33).


Рис. 6.33 В этом диалоговом окне можно быстро и легко изменить параметры привязок

Чтобы добавить это вторичное (или вспомогательное) движение к голове, сначала определите несколько ключевых кадров без поворота. Не отменяя выделения объекта Biped, пройдитесь по кадрам 30, 40 и 50, нажимая в каждом из них клавишу 0, чтобы определить ключ для головы в ее исходном положении. Затем перейдите в кадр 25 и поверните голову против часовой стрелки относительно оси Z (синяя ось) на 3°, или на одно деление поворота. Перейдите в кадр 35 и поверните голову по часовой стрелке относительно оси Z на 3°, перейдите в кадр 45 и поверните голову против часовой стрелки еще раз на 3° (или, удерживая нажатой клавишу Shift, на шкале времени перетащите ключ из кадра 25) и наконец перейдите в кадр 55 и поверните голову по часовой стрелке относительно оси Z на 3° (или скопируйте кадр 35).

Воспроизведите анимацию, нажав клавишу / (слэш), и проверьте анимацию (рис. 6.34).


Рис. 6.34. Голова персонажа Widge включается в анимацию

Это очень небольшое движение придает голове более живой, естественный вид. Нужно создать впечатление того, что движение головы замедляется, поэтому в кадрах 30, 40 и 50 были определены ключи, чтобы обеспечить своего рода привязки - анкеры (anchor) - для положения, в котором голова будет неподвижна. Если поворачивать голову между этими анкерными ключами, то будет казаться, что движение больше привязано к поднятию головы вверх или опусканию ее вниз. То есть по мере поднятия туловища (кадры 20-30) голова под собственным весом немного опустится (кадр 25) и потом примет позу смотрящего вперед (кадр 30). Чтобы определить эти ключи при анимации, требуется немного умственных усилий, и не забывайте об этом подходе, добавляя вторичное движение.

 



Выбор конфигурации времени


Теперь нужно исключить возможность случайной перезаписи кадра 0, для этого используйте окно Time Configuration. Закройте окно Track View и щелкните по пиктограмме Time Configuration

в правой нижней части экрана. Когда появится окно, в поле Start Time (Начало воспроизведения) введите значение 0, а в поле End Time (Конец воспроизведения) - 60. Остальные параметры оставьте без изменения, но помните, что скорость воспроизведения кадров равна 30 кадрам в секунду - рис. 6.13.

В окне Time Configuration можно изменить скорость смены кадров и воспроизведения анимации и даже масштаб текущего диапазона анимации. Однако определенный в этом окне диапазон может повлиять на операции с ключами, отображаемыми в окне Track View, - немного позже вы поймете, почему. А пока нужно научиться копировать ключевые кадры.


Рис. 6.13 В окне Time Configuration можно определить диапазон анимации

 



Анимации бездействия


Betty нужны три анимации бездействия: левая ступня впереди, правая ступня впереди, обе ступни на одном уровне. Это делается для разнообразия и для того, чтобы переход от одной анимации к другой поддерживался соответствующим образом. Создавая такие анимации бездействия, вы также получите некоторые представления о позах бездействия для анимации своего персонажа.

Загрузите файл Betty08.max (рис. 7.2).


Рис. 7.2. Betty нужно несколько анимаций бездействия

 



Анимации персонажа Betty


Betty Bad - нетипичный персонаж игры в реальном времени. Она (Betty) состоит из 2000 полигонов, основана на динамическом LOD-коде WildTangent, число полигонов в этом персонаже - между средним и малым. Betty - героиня игры action от третьего лица, которая запускается только в режиме онлайн и использует необычный игровой движок - технологию WildTangent Web Driver. Этот персонаж с такой же легкостью мог быть выполнен на игровом движке Quake, Unreal или LithTech. Есть у Betty и еще одна нетипичная особенность - у нее нет доступа к множеству типов оружия, которые словно по волшебству появляются и исчезают по команде. У нее есть только одно оружие, которое преобразует энергию в различные формы боеприпасов.

 



Анимация стрельбы


Игра жанра action не может обойтись без стрельбы. Большинство персонажей игр в реальном времени перемещаются с большими ружьями в руках и стреляют весьма часто. К сожалению, определить позу персонажа с ружьем и предусмотреть расположение множества типов оружия - очень трудная задача.

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

Первая анимация стрельбы, которую нужно создать, - это стрельба из положения стоя. И конечно, сначала нужно определить позу стрельбы.

 



Анкерные ключи


Очень важно заблокировать ступни в начале и в конце анимации, чтобы Betty можно было анимировать, заставляя ее совершать небольшие движения в середине отрезка анимации. Блокирование ступней с помощью кнопки Set Planted Key - один из хороших способов, но можно воспользоваться и функцией Anchor Keys (Анкерные ключи) из свитка Keyframing Tools (Инструменты работы с ключевыми кадрами) - рис. 7.6.


Рис. 7.5. При активной кнопке Select Pivot выберите новый центр трансформации для ступни


Рис. 7.6. Заблокировать ступни можно и с помощью кнопок группы Anchor Keys

Чтобы понять, как работает метод блокирования ступней, вернитесь в окно Track View и удалите в кадре 50 ключ для объекта Betty R Thigh. Закройте или сверните окно Track View, выделите правую ступню, перейдите в кадр 20 и нажмите кнопку Set Free Key в свитке Key Info. Значение IK Blend станет равным 0, а ступня снова окажется в координатном пространстве Body, она будет разблокирована (рис. 7.7).

Красная точка, обозначавшая центр трансформаций, исчезнет, и, перетаскивая ползунок шкалы времени, вы увидите, что ступня не закреплена. Перейдите в кадр 20 и щелкните по кнопке Anchor Right Leg (Анкер на правую ногу), чтобы активизировать ее и тем самым заблокировать правую ногу (рис. 7.8).

Чтобы выключить кнопку Anchor Right Leg, еще раз щелкните по ней - и кадр 20 опять станет закрепляющим ключом для правой ступни, значение IK Blend изменится на 1, и ступня снова окажется в пространстве Object (рис. 7.9).


Рис. 7.7. С помощью кнопки Set Free Key ключевой кадр вновь становится незаблокированным


Рис. 7.8. Если кнопка Anchor Right Leg активна, то ступня заблокирована


Рис. 7.9. Ключевые кадры конечностей автоматически преобразуются в закрепляющие ключи при повторном нажатии на кнопку Anchor

При добавлении небольшого движения в средний отрезок анимации ступню необходимо закрепить независимо от того, какой метод используется. Но сначала удалите дополнительное движение, вызванное параметром Continuity: откройте окно Track View, выделите ряд ключей, щелкните правой кнопкой по одному из них и введите в поле Continuity значение 0. Повторите эти действия для всех треков анимации, кроме Betty L Clavicle и Betty R Clavicle, - их параметр Continuity измените на 15 (рис. 7.10).


Закройте окно Track View, затем перетащите ползунок шкалы времени, чтобы увидеть изменение движения всех объектов Biped. Убедитесь, что кнопка Auto Key все еще активна, выделите объект СОМ персонажа Betty, перейдите к кадру 35 и перетащите СОМ вниз на 0,6 единицы по оси Z. Нажмите клавишу / (слэш), чтобы воспроизвести анимацию и проверить, как она выглядит (рис. 7.11).



Рис. 7.10. Измените параметры Continuity всех треков, кроме треков для рук, на О



Рис. 7.11. Betty с удовольствием бездействует

Измените значение в поле End Time в окне Time Configuration на 50 и создайте временные теги для анимации. Назовите первый кадр Idle1 Start, а последний - Idle1 End (рис. 7.12).



Рис. 7.12 В начало и конец анимации добавьте временные теги

 

Betty снова в прыжке


В 1980-х и в начале 1990-х годов был широко известен создатель комиксов Фрэнк Миллер (Frank Miller). Он и сейчас делает замечательные комиксы, но в его первых произведениях («Daredevil», «Spider-Man» и, конечно, «Batman») был определен стиль работы с изображением, который важен и для аниматора персонажей - динамическое действие. Каждая картинка, изображающая персонаж Фрэнка Миллера в движении, - это кинетическое чудо. Когда смотришь на этих двумерных персонажей, кажется, что любой из них может в любую минуту спрыгнуть со страницы. Это происходит потому, что Миллер умеет захватить наиболее мощный и интересный момент анимации: руки разбросаны в стороны, ноги согнуты, идеальное равновесие и вписываемость в окружающую обстановку. То, как он изображает персонажей, впечатляет.

Определяя позу персонажа в любой анимации, представьте, что он -герой комикса. Выйдите на улицу и купите любой сборник Джима Ли (например, «Х-Men» или «Divine Right»). Он также мастерски создает интересные, яркие позы в движении. Изучая позы двух других прыжков Betty (рис. 7.48), попробуйте сами придумать несколько поз, которые подошли бы для комиксов Джима Ли или Фрэнка Миллера.

Создавая первую позу 11-кадровой анимации, не забудьте изменить ее немного в конце. Изобразите незначительные движения при полете персонажа в воздухе. Постарайтесь сделать каждую позу уникальной. Например, поза на рис. 7.48 показывает, как Betty в прыжке наклоняется вправо и поднимает правую ногу. А на рис. 7.49 Betty поднимает левую ногу вверх и наклоняется вперед, а не назад. Даже по силуэтам эти две позы должны быть легко различимы.

 



Betty в прыжке


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

Загрузите файл Betty10.max, если вы этого еще не сделали (рис. 7.39).


Рис. 7.39. Betty уже готова кого-нибудь подстрелить, пора заставить ее прыгать


Рис. 7.40. Снова измените параметры в окне Time Configuration

В окне Time Configuration измените диапазон анимации: в поле Start Time введите значение 250, а в поле End Time - 300 (рис. 7.40).

Чтобы понять, как персонаж будет переходить в анимацию прыжка и выходить из нее, скопируйте ключевые кадры для позы бездействия из кадра 135 в кадр 250. Эта поза не будет точно совпадать с той, которая окажется начальной для прыжка в реальной игровой ситуации. Представьте ее в игре, когда включается код интерполяции и происходит перемещение персонажа вверх при получении входных данных для прыжка

Длительность прыжка зависит от игры и от ее движка, но для прыжка Betty будет достаточно 11 кадров. Перейдите в кадр 155 и определите позу в первом кадре прыжка. Поместите Betty в позу, похожую на ту, в которой группа поддержки приветствует участников спортивного состязания. Спина ее должна быть относительно прямой, левая рука - немного поднятой. Пусть рука указывает на что-нибудь впереди, чтобы при стрельбе из этого положения интерполяция была не слишком заметна. Поворачивая бедро и голень, заметьте, что пальцы ног направлены в стороны, тем самым автоматически поддерживая позу. Не поворачивайте ноги до конца, оставьте запас для второй позы, в которой они будут полностью разведены в стороны. Завершите позу, вытянув правую руку Betty, выделив и опустив вниз по оси Z ладонь (рис. 7.41).


Рис. 7.41. Betty прыгает

Когда члены группы поддержки выполняют движения, которые пытается воспроизвести Betty, они подпрыгивают, а затем, когда опускаются, их тела заметно наклоняются вперед, в то время как ноги еще более отдаляются друг от друга. Перейдите в кадр 165, немного согните объекты Spine и поверните ноги еще вверх. Вытяните пальцы правой руки, чтобы создать видимость того, что в воздухе Betty напряжена (рис. 7.42).




Рис. 7.42. Давай, Betty!

Прежде чем определять позу для последующего зависания, скопируйте позу Idle3 из кадра 250 в кадры 278 и 285. Это позволит определить положение ступни для части анимации, отвечающей за приземление. Для приземления можно выбрать любую из трех поз бездействия, но Idle3 -самая характерная. Всякий раз при приземлении после прыжка персонаж автоматически перейдет в эту позу.

Теперь перейдите в кадр 278, заблокируйте ступни и расположите Betty как если бы она только что коснулась земли, упав с высоты. Изобразите прыжок и приземление и то, что сделало бы туловище реального человека. Добавьте детали: опустите голову немного вниз, а ладонь поверните вверх (рис. 7.43).

Перейдите на два кадра вперед и добавьте вторичное движение, например наклоните голову, опустите руки и выгните талию (за которую отвечает объект Betty Spine) вперед. Так станет понятнее, что произошло соприкосновение (рис. 7.44).

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



Рис. 7.43. Она приземлилась, дамы и господа!



Рис. 7.44. Добавление вторичного движения после приземления подчеркнет эффект удара о землю

При определении позы представьте себе, как происходит падение с высоты. Убедитесь, что ступни сбалансированы прямо над землей, готовы принять горизонтальное положение при приземлении (рис. 7.45).



Рис. 7.45. Betty готова приземлиться, но она все еще должна выглядеть, как будто падает

Руки Betty нельзя поднимать слишком высоко из-за эполетов, но если они направлены в стороны, то создается ощущение, что персонаж пытается, падая, удержать равновесие. Поза касания целиком связана с положением готовности к приземлению, поэтом}- анимация не нужна. Однако технология WildTangent требует, чтобы все анимации состояли по крайней мере из трех кадров. Поэтому, как только поза будет подходящей, скопируйте ее в кадры 273 и 274. Перетащите ползунок по шкале времени, чтобы увидеть анимацию прыжка целиком.



Теперь нужно распределить компоненты прыжка как отдельные анимации, дополненные временными тегами и временными промежутками, между конечными ключами. Откройте окно Track View и сначала удалите позу бездействия из кадра 250, а затем переместите два ключа, разделяющих прыжок. Продублируйте ключи в начале и в конце движения, чтобы параметр Continuity не влиял на анимацию. Затем переместите столбец из трех ключей, из которых состоит поза касания, в кадр 280. Наконец, перетащите последовательность приземления так, чтобы она начиналась в кадре 300, удваивая кадры в конце каждой анимации (рис. 7.46).



Рис. 7.46. Переместите ключи так, чтобы между компонентами прыжка был промежуток

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



Рис. 7.47 Если ограничить число тегов типа Start и End, то списком временных тегов будет проще управлять

Теперь можно создать для Betty другие прыжки для разнообразия -ведь на нее придется смотреть всю игру!

 

Бездействие при плавании


Иллюзия нахождения под водой достигается затемнением «воздуха» уровня и/или повышением плотности «тумана». Добавьте пузырьков, несколько спокойно летающих объектов и воображаемое течение - получится достаточно реалистичный водный мир. Но на самом деле ощущение пребывания под водой достигается анимацией персонажа, который погружен в эту воду. Когда Betty попадает в воду, ей становится трудно перемещаться, потому что она может пользоваться только одной рукой (и ногами, конечно). Чтобы получить анимацию бездействия под водой, сначала надо «научить» Betty убедительно удерживаться на поверхности воды или под водой. Тогда нетрудно будет заставить ее медленно плыть в ожидании какого-либо действия.

Продолжайте работать с тем же самым файлом или загрузите файл Betty11.max.

Измените параметры в окне Time Configuration: в поле Start Time введите значение 500, а в поле End Time - 700 (чтобы достигнуть нужной замедленности и гладкости в плавательной анимации бездействия, потребуется много времени). Как и в любой главной анимации, сначала нужно составить ее схему, а затем уточнить и добавить вторичное движение на каждом шаге. Это значит, что для достижения правильного результата основные позы определяются в начале, в середине и в конце анимационного отрезка. Затем добавляются позы между началом и серединой и между серединой и концом. Это дает возможность полностью воспроизвести анимацию, чтобы получить представление о ее согласованности и подумать, что делать дальше.

Бездействие Betty под водой будет изображаться медленным перемещением ног, как при езде на велосипеде, и плавательными движениями рук. Перейдите в кадр 500 и определите позу Betty так, как показано на рис. 7.65. Не забудьте повернуть талию и область таза в противоположных направлениях, сначала повернув объект СОМ, а затем - объекты Spine.


Рис. 7.65. Первый кадр анимации плавания изображает движение в воде со средним размахом

Скопируйте только что определенные ключевые кадры в кадр 600 и перейдите в кадр 550, чтобы задать следующую позу. Расположите Betty так же, как и раньше, но в зеркальном отражении: левая рука займет положение правой, а правая - положение левой, объекты Spine повернутся в противоположном направлении по отношению к позе в кадре 500. Сначала поверните объекты СОМ и Spine, затем измените положение рук и ног. Не сгибайте ступни слишком сильно, так как их придется сгибать при взмахе вниз на последующих стадиях (рис. 7.66).


Проще всего скопировать позу одной конечности и перенести ее на противоположную конечность в другой кадр следующим образом. Перейдите в кадр, в котором находится поза, щелкните дважды по корневому элементу конечности и нажмите кнопку Copy Posture (Копировать положение) -рис. 7.67, позиция 1-е свитке Copy/Paste (Копировать/Вставить). Перейдите в кадр, в который нужно перенести позу, убедитесь, что кнопка Auto Key активна, дважды щелкните по элементу целевой конечности и нажмите кнопку Paste Posture/Pose/Track Opposite (Вставить положение/ позу/трек противоположной) — рис. 7.67, позиция 2.



Рис. 7.66. Это середина в плавательной анимации бездействия, противоположная первому кадру



Рис. 7.67 Кнопка Paste Posture/Pose/Track Opposite - отличный способ достичь соответствия поз рук и ног с обеих сторон

Удвойте ключи в начальном и конечном кадрах анимации, чтобы избавится от движения, вызванного параметром Continuity, воспроизведите анимацию и посмотрите, как она выглядит. Это должна быть плавная, циклическая анимация, в которой Betty выполняет основное ленивое толкающее движение. Чтобы добавить ощущение свободного перемещения, перейдите в кадр 525, а затем - в окно проекции Right, выделите объект СОМ и опустите его на 1 единицу по оси Z. Скопируйте ключ в кадр 575 и воспроизведите анимацию. Теперь Betty двигается, немного покачиваясь, этим усиливается иллюзия пребывания под водой.

Анимируя Biped, старайтесь не закрывать панель Motion. Это поможет держать все координатные оси в правильном положении по отношению к Biped (чтобы не получилось, что вместо оси Y вверх направлена ось Z).

Следующий тип вторичного движения, которое нужно добавить, - это дополнительное движение ноги. Оно также подчеркнет отсутствие веса и свободное перемещение в воде. Перейдите в кадр 525 и настройте левую ногу. Поверните объекты Betty L Thigh и Betty L Calf на -20°, a Betty L Foot - на 60° относительно оси Z. Позиционируйте правую ногу, повернув Betty R Calf на 50° относительно оси Z. Параметры обратной кинематики, установленные по умолчанию, определят положение ступни автоматически (рис. 7.68).





Рис. 7.68. Сгибание ног перед толчком вниз усиливает иллюзию пребывания под водой

Дважды щелкните по звену Betty L Thigh и нажмите кнопку Сору Posture, чтобы скопировать положение для левой ноги. Перейдите к кадру 575 и щелкните по кнопке Paste Posture/Pose/Track Opposite, чтобы перенести позу на правую ногу. Вернитесь в кадр 525, щелкните по звену Betty R Calf и нажмите кнопку Copy Posture, перейдите в кадр 575 и точно так же вставьте позу для левой икры (рис. 7.69).



Рис. 7.69. Чтобы зеркально отобразить только что созданную позу, воспользуйтесь командами Сору и Paste

 

Добавление эффекта отдачи


Посмотрев на переход из кадра 165 к кадру 170, можно понять, как в игре будет выглядеть интерполяция позы персонажа при стрельбе, однако нужно добавить еще одну черту для анимации стрельбы. В большинстве случаев игроки хотят видеть немедленный результат нажатия клавиши огня. Им не нравится, когда персонаж готовится, заряжает ружье, а затем стреляет. Поэтому анимация стрельбы Betty, как и анимация стрельбы обычного персонажа, должна быть короткой, сделанной со вкусом. Только что созданная поза с оружием наготове предназначена для того, чтобы после выстрела персонаж мог снова встать в эту же позу готовности за короткое время с относительно незаметной интерполяцией.

Ключи, скопированные в кадр 165, больше не нужны - удалите их. Определив в кадрах 170 и 177 ключевые кадры, перейдите в кадр 172 и добавьте результат выстрела из ружья. Он не может быть слишком сложным или специфическим, так как должен подходить под несколько типов вооружения. Просто переместите объект СОМ немного назад и поверните объекты Spine относительно оси X, как если бы от выстрела ружья плечо переместилось назад. В завершение немного поверните голову по часовой стрелке. Часто раздражающее перемещение рук из-за обратной кинематики, из-за которого при повороте объектов Spine они остаются на том же самом месте относительно позвоночника, на этот раз вам на пользу (рис. 7.30).

Анимация незначительна, так как она должна подойти и для результата стрельбы из скорострельного оружия, и для одиночного выстрела. Увеличение времени возвращения к исходной позе стрельбы делает выстрел/ отдачу внезапнее и реалистичнее. Но обратите внимание на позу, в которой Betty переходит в состояние готовности к стрельбе. Как будет показано в следующей главе, иногда, если ружье просто указывает в нужном направлении, в отдаче нет необходимости. Добавьте в анимацию стрельбы временные теги и переходите к двум следующим отрезкам анимации стрельбы.


Рис. 7.30. Отдача при стрельбе незначительна, но все же заметна

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

 



Две другие атаки в состоянии бездействия


Выполните перечисленные ниже шаги для двух других анимаций бездействия:

1. Скопируйте первый или последний кадр нужной анимации бездействия.

2. Задайте диапазон для анимации стрельбы.

3. Определите позу положения готовности к выстрелу в первом кадре анимации.

4. Скопируйте ключи в кадр через восемь кадров.

5. Продвиньтесь на два ключа после первого и добавьте эффект отдачи.

6. Удвойте ключи в начале и в конце отрезка движения.

7. Добавьте временные теги.

Вторая анимация стрельбы при бездействии должна происходить в кадрах 200-207. Вот несколько советов по созданию этой анимации и эффекта отдачи. Слегка опустите и поверните объект СОМ; немного поверните объекты Spine; протяните руку так, чтобы дуло ружья было параллельно поверхности земли и указывало на цель; слегка наклоните голову и проверьте дважды конечную позу: персонаж не должен терять равновесия. В момент стрельбы сначала переместите объект СОМ немного назад и поверните все объекты Spine относительно оси X, чтобы отвести левую руку назад. Немного поверните левую ключицу относительно оси Z, чтобы подчеркнуть толчок от оружия, а правую руку не перемещайте (рис. 7.31).


Рис. 7.31. Во второй анимации бездействия поза стрельбы должна быть такой же динамичной, как и в первой

Третья анимация должна происходить в кадрах 230-237. Попробуйте создать в ней нечто, отличное от предыдущих, и придайте Betty ковбойский вид. Опустите объект СОМ и поставьте Betty в позу готовности. Затем поместите ее руку поверх оружия, подобно Клинту Иствуду (Clint Eastwood) в каком-нибудь вестерне (рис. 7.32).

При создании стреляющего движения убедитесь, что правая рука занимает во всех трех кадрах (кадры 230-232) одинаковое положение на ружье. Если руку поворачивать или перемещать так, чтобы она двигалась вместе с ружьем, то движение станет убедительным, потому что игрок мысленно свяжет две формы и поверит, что рука Betty действительно находится на ружье. Убедитесь, что при возвращении в позу готовности рука лежит на верхней части ружья (рис. 7.33).


Рис. 7.32. Сделайте третью позу немного другой, в стиле вестерна


Рис. 7.33. Убедитесь, что правая рука остается на месте при отдаче

Завершите анимационные отрезки, удвоив ключи в каждом конце их диапазонов, и добавьте временные теги для начальных и конечных кадров. Затем в анимации стрельбы нужно совершить еще одно действие - определить способ прицеливания.

 



Новое оружие одним щелчком мыши


АНИМАЦИЯ НА ОСНОВЕ КЛЮЧЕВЫХ КАДРОВ

Анимации персонажа Betty

Новое оружие одним щелчком мыши

Особые движения

Анимации бездействия

Все дело в позе

Анкерные ключи Удвоение ключей

Вторичное движение

Использование опции Join to Previous IK Key

Третья анимация бездействия

Анимация стрельбы



Поза стрельбы

Добавление эффекта отдачи

Две другие атаки в состоянии бездействия

Способ прицеливания

Прыжки

Прыжки с места и с разбега

Выполнение прыжка в игре в реальном времени

Betty в прыжке

Betty снова в прыжке

Прыжок с поворотом

Прыжок со стрельбой

Использование снимка для объектов-экземпляров

Стрельба при касании земли

Идеология анимации

Плавание



Бездействие при плавании

Создание плавного цикла

Плавание вперед

Резюме

 

Идеология анимации


Может возникнуть вопрос: почему так много внимания уделяется относительно незначительной и часто игнорируемой анимации (в Q3A нет подобного движения с прыжком и стрельбой)? В этой книге подробно рассказывается как об идеологии анимации персонажа, так и об анимации для игр в реальном времени, о 3ds max и character studio. Трудно переоценить важность некоторых штрихов имитации реального мира, таких как импульс, центробежная сила и воздействие их на персонажа. Явления реального мира такого типа, которые накладываются на фантастические создания и движения, сводятся к превосходной анимации персонажа игры в реальном времени. Маленькие детали производят большое впечатление на зрителя. Постоянно оценивайте анимации, задавайтесь вопросом, можно ли их улучшить. Наклонить голову вправо или влево? Повернуть ступню внутрь или наружу? Чтобы быть знатоком анимации персонажей, для начала придется учиться у жизни.


Рис. 7.64. Чтобы обратить внимание на руки, перетащите ключи для треков Pelvis, Spine и Head

 



Использование опции Join to Previous IK Key


Прежде чем переходить к третьей, и последней, анимации бездействия, нужно кое-что исправить. Если вы недостаточно находчивы и изобретательны, то наверняка в кадре 50 для звена Betty R Thigh вы не определили ключевой кадр. Создание второй анимации бездействия, особенно ключ, определенный для трека Betty R Thigh в кадре 70, очевидно, неблагоприятно влияет на первую анимацию бездействия. Измените диапазон анимации в окне Time Configuration: в поле Start Time введите значение 21, а в поле End Time - 50 (рис. 7.21).


Рис. 7.21 Измените диапазон анимации в окне Time Configuration, чтобы вернуться к первой анимации бездействия и добавить недостающий ключевой кадр

В процессе добавления недостающего ключевого кадра вы узнаете нечто новое, а именно, что можно сделать с помощью опции Join to Previous IK Key. Перейдите в кадр 50, выделите правую ступню и нажмите кнопку Set Planted Key (рис. 7.22, позиция 1), убедившись, что поставлен флажок Join to Prev IK Key (рис. 7.22, позиция 2).

Звено Betty R Foot будет привязано к положению, в котором оно находилось в предыдущем ключе, определенном для звена Betty R Thigh (кадр 20). Однако проблема не решена. Подвигайте ползунок шкалы времени из стороны в сторону. Ступня вращается - и притом сильно (рис. 7.23).


Рис. 7.22. Наконец этoт флажок пригодился


Рис. 7.23. Ступня находится в том же положении, что и в предыдущем ключе обратной кинематики, но при этом вращается

Иногда, чтобы исправить какую-либо проблему, нужно воспользоваться несколькими инструментами. Перейдите в кадр 21 и включите режим Anchor Right Leg (рис. 7.24).

Перейдите в кадр 50 и нажмите кнопку Set Key просто так, чтобы убедиться, что ступня закреплена. Подвигайте ползунок шкалы времени - и вы увидите, что ступня заблокирована. Однако при нажатии на кнопку Anchor Right Leg для звена Betty R Thigh ключ будет определен, в каком бы кадре вы ни находились. Таким образом, ключ был определен в кадре 21. Этот ключ можно оставить там или удалить. В любом случае анимация завершена, так как в кадрах 20 и 50 есть ключи. Подвигайте ползунок шкалы времени - и вы увидите, что ступня остается заблокированной.


Безусловно, возникает вопрос, почему нельзя было просто открыть окно Track View и скопировать ключевой кадр из кадра 20 в кадр 50. Можно было поступить и так. Но в этом случае все равно осталось бы избыточное движение, вызванное тем, что значение Continuity равно 25. Пришлось бы поменять его на 0 (рис. 7.25).



Рис. 7.24. Кнопка Anchor Key снова используется, но на этот раз совместно с опцией Join Prev IK Key



Рис. 7.25. Если, скопировав первый ключ, изменить значение Continuity на 0, то проблема также будет решена

 

Использование снимка для объектов-экземпляров


Когда поза определена, нужно каким-то образом удержать ружье в устойчивом положении на протяжении 11 -кадровой анимации прыжка. Лучше всего это сделать, зафиксировав мгновенное состояние конца ружья и используя его в качестве направляющей. Разморозьте все объекты, выделите объект m_gun (рис. 7.58, позиция 1), найдите пункт Snapshot (Снимок) в меню Tools (Инструменты) и щелкните по нему (рис. 7.58, позиция 2). Затем убедитесь, что в диалоговом окне Snapshot выбран переключатель Single (Один), и нажмите кнопку ОК (рис. 7.58, позиция 3).


Рис. 7.58. Чтобы создать экземпляр ружья Betty в положении стрельбы, воспользуйтесь инструментом Snapshot

Измените цвет сетки нового объекта, чтобы он выделялся на фоне текущего цвета. Затем скопируйте в кадр 430 только что определенные в кадре 420 ключи и немного измените позу, просто ради интереса.

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


Рис. 7.59. Немного изменив позу Betty, выровняйте ружье

Удвойте ключи, чтобы избавиться от смещения, связанного со значением параметра Continuity, и проверьте, не нужно ли настроить руку с ружьем в каком-либо другом кадре анимации. Все должно быть в порядке, поэтому удалите экземпляр объекта ружья и добавьте временной тег.

Прыжок - относительно короткая анимация, она включает в себя значительное движение, поэтому нет необходимости анимировать эффект отдачи. Это относится как к встроенному ружью Betty, так и к традиционному игровому оружию.

Теперь найдите ключ Jump Shoot Idle (Бездействие при атаке в прыжке) в кадре 450. Опустите ружье Betty вниз и придайте ей вид «подойди ближе - и получишь пулю» (рис. 7.60).

Не стоит создавать снимок для экземпляра, с которым необходимо выровнять руку с ружьем, потому что в этой части нет анимации. Просто скопируйте ключевые кадры в кадры 451 и 452, добавьте временной тег в кадр 450 и точно так же расположите оружие в фазе приземления прыжка. Перейдите в кадр 470 и закончите последнюю часть прыжка.


Рис. 7.60. Betty вот-вот приземлится и все еще хочет кого-нибудь подстрелить

 



Новое оружие одним щелчком мыши


Арсенал оружия Betty невелик: у нее есть дробовик, гранатомет, пулемет, ракетница и рельсовая пушка. Они отличны друг от друга скорее эффектом воздействия, а не различными физическими формами. Выбор этого подхода основан на попытке обойти две обычные для игр action проблемы: использования «волшебного» бездонного рюкзака и решения сложной задачи ношения множества видов оружия одновременно, которое по идее должно закрывать большую часть персонажа. Механика воспроизведения игры не нарушается из-за отсутствия возможности в этой игре носить с собой артиллерию, состоящую из дюжины различных орудий. На самом деле при введении вышеупомянутого альтернативного подхода с рюкзаком, производящим энергию для оружия, вместо бездонного рюкзака экономятся полигоны. Всякий раз, когда Betty убивает врага, он оставляет на месте своей смерти энергию, которую она поднимает и добавляет в свою рюкзачную систему подпитки вооружения. Наряду с тем, что Betty применяет такую совокупность популярных типов оружия, она также служит для эксперимента, в котором разработчики игры хотели опробовать некоторые идеи (однако это не было сделано) в специальных анимациях движения для Quake III Arena (Q3A).

 



Особые движения


Как и fighting, игры жанра action, в которых персонажам приходится в основном бегать и стрелять, можно немного оживить комбинациями движений или специальными движениями. Эти анимации запускаются, когда игрок нажимает одновременно пару клавиш или когда во время игры выполняется определенное условие, например происходит быстрая смена направления движения персонажа. Итак, помимо стандартного набора анимаций, который имеет обычный персонаж игры такого жанра, у Betty есть несколько дополнительных анимаций, которые и обеспечивают наличие специальных движений. Дополнительные анимации присутствуют также из-за требований окружающей среды в игре и ограничений игровой технологии. Однако Betty имеет и стандартные анимации: Idle (Бездействие), Run (Бег), Backpedal (Бег назад), Walk (Ходьба), Jump (Прыжок), Strafe (Бросок вбок), Shoot (Стрельба), Melee (Рукопашная атака), Pain (Получение повреждения) и Death (Смерть).

Также используются анимации групп Special Moves (Специальные движения), Use Moves (Движения использования), Swimming (Плавание), Recovery (Восстановление) и Angled (Угловые).

Как упоминалось ранее, персонаж Betty имеет почти 3000 кадров анимации, и это явно не средняя величина анимации для типичного персонажа. В первую очередь она обусловлена способом выполнения персонажа, тем, что он должен соответствовать игровой технологии. Причиной также является то, что игрок видит Betty со стороны. Постоянное присутствие на сцене персонажа с обычным, более коротким набором анимаций быстро надоест, станет неинтересным, поэтому у Betty широкий диапазон анимаций. Также на примере Betty можно изучить анимации, похожие на те, с которыми вы столкнетесь, анимируя своего персонажа. При чтении этой главы вы выполните часть набора анимаций Betty, особое внимание будет уделено тем движениям, которые полностью (без использования захвата движения) созданы на основе ключевых кадров. В следующей главе для создания оставшихся анимаций будет использован захват движения. Сначала создадим пару анимаций бездействия.

 



Плавание


Плавающие персонажи нужны не во всех играх. В Q3A персонажи плавают, но вода есть только на нескольких уровнях. В Betty Bad вода представлена как составная часть игры, уровень затапливается, а потом осушается. И если в Q3A персонажи просто плавали по-лягушачьи или кролем, то у Betty обширный набор анимаций, который отвечает за плавание и включает в себя плавание вперед, плавание вперед со стрельбой, плавание назад, плавание назад со стрельбой, бездействие при плавании, бездействие при плавании со стрельбой, получение повреждения при плавании, смерть при плавании, - картина понятна. Персонаж целиком погружается в воду, используя тот же дыхательный аппарат, что и Qui-Gon Jinn и Obi-Wan Kenobi в Star Wars: Episode I. Поэтому все анимации должны выглядеть так, как будто Betty действительно плывет под водой. Чтобы получить общее представление о водных анимациях, создадим анимации плавания вперед и бездействия при плавании.

 



Плавание вперед


Любой персонаж с оружием при движении сквозь массу воды должен рассчитывать только на свои ноги, поэтому пригодятся лишь движения ног при плавании кролем или брассом. Можно воспользоваться подходом «русалки», как в The Man from Atlantis, где все тело находится в движении, но таком случае наличие оружия сильно усложняет плавный переход к другим анимациям. Важен первый кадр анимации, потому что он представляет собой позу, которую принимает персонаж после бездействия. С помощью интерполяции такой переход создается несложно, но и в этом случае есть над чем задуматься. В первом кадре Betty растянулась в лежачем положении, а правая рука отведена назад - Betty скользит по воде. Дело в том, что с помощью автоматической интерполяции переход от бездействия к плаванию осуществляется резко. Измените границы анимации в окне Time Configuration: в поле Start Time введите значение 410, а в поле End Time - 670. Расположите Betty в кадре 470, чтобы она выглядела, как показано на рис. 7.71.


Рис. 7.71. Первый кадр анимации плавания вперед пользуется преимуществом интерполяции

Скопируйте ключи из кадра 670 в кадр 710 и перейдите в кадр 690, чтобы создать следующую позу. Это средняя точка, в которой Betty свободно дрейфует, а затем делает следующее движение рукой и готовится оттолкнуться мощным рывком. Однако самое важное здесь - движение объекта СОМ. Создавая позу, показанную на рис. 7.72, переместите СОМ назад по оси Y на 4 единицы и вниз по оси Z на 8 единиц. Несмотря на то что Betty будет перемещаться в воде программными средствами, такое движение создаст впечатление, что паузы между гребками приводят к потере импульса и даже к небольшому погружению в воду. Это помогает составить общее впечатление о движении под водой (рис. 7.72).


Рис. 7.72. В средней точке Betty способна грести и отталкиваться

От перемещения СОМ перейдите к настройке ног. Это случай, когда настройка родительского объекта производится перед дочерним. Если вы собираетесь анимировать конечность, убедитесь, что не нужно анимировать родительский объект. Для ног это объекты СОМ и Pelvis, а для рук- звенья Spine. Есть некоторые исключения, особенно для рук, и вы увидите их через некоторое время.


Ноги должны двигаться по-лягушачьи, перемещая Betty в воде. Вытянутые в кадре 690 ноги нужно немного выгнуть наружу прямо перед внезапным перемещением назад в кадре 695. Наконец, они вытянутся в кадре 702, а потом вернутся в исходное положение (рис. 7.73).



Рис. 7.73. Три шага создания движения плавания брассом: поднять ноги, согнуть их и выбросить назад

Определив основные положения ног, уточните положение ступней так, чтобы они немного поворачивались по мере того, как ноги перемещаются. В кадрах 695 и 698 подчеркните вращение ступней вовнутрь относительно осей Y и X при сгибании ног наружу. Затем в кадре 702 поверните ступни наружу при сведении ног, моделируя результат перемещения воды между ногами Betty. Под этим давлением ступни вынуждены вращаться, иллюзия плавательного движения завершена (рис. 7.74).

Поза ног определена, теперь нужно изменить анимацию правой руки, чтобы движение было больше похоже на гребок. Однако не забывайте, что подвижность правой руки Betty невелика из-за большого эполета. Перейдите в кадр 680, скройте объект Spine и объекты Biped левой руки и поверните правую руку вверх так, чтобы ладонь оказалась примерно в том положении, которое она занимает в кадре 690. Сожмите пальцы, чтобы они выглядели так, как будто готовы пройти сквозь воду. Сожмите пальцы и в кадре 690. В кадре 696 оставьте ладонь на месте, но поверните вниз локоть, так как рука должна пойти назад. Затем перейдите в кадр 706, откройте окно Track View и скопируйте в кадр 706 ключ из кадра 710 для звена Betty L Clavicle. Закройте окно Track View и вытяните пальцы. Наконец, вернитесь в кадр 702, немного поверните ладонь и пальцы относительно оси Z, чтобы казалось, что они разогнулись при прохождении сквозь воду (рис. 7.75).



Рис. 7.74. Ступни реагируют на перемещение воды ногами



Рис. 7.75. При движении рука должна чувствовать, действовать и реагировать

Последними нужно настроить движения талии. Перейдите в кадр 684, выполните команду Unhide All (Показать все) и выделите все четыре объекта Spine. Откройте окно Track View и удалите ключ, определенный в кадре 690 для Betty Spine. Поверните все четыре объекта Spine в левую сторону относительно оси Y в тот момент, когда правая рука поднимается вверх над водой, чтобы сделать гребок. Затем перейдите в кадр 705 и поверните объекты Spine относительно оси Y по направлению движения гребка (рис. 7.76).



Анимирование объектов Spine ( родительского объекта) после анимирования руки (дочернего объекта) - один из особых случаев, обычно этот процесс происходит в обратном порядке. В рамках Biped так можно поступать из-за уникального строения обратной кинематики ладони Biped. Анимация завершена, осталось только добиться гладкости этого цикла плавания. Время начала для анимации плавания важнее, чем для анимации бездействия. Поэтому нужно переместить весь отрезок движения и добавить ключевые кадры спереди и сзади, чтобы параметр Continuity вам не мешал.

Откройте окно Track View и примените операцию Add Keys ко всем трекам в кадрах 680 и 702 (рис. 7.77).

Затем измените параметры в окне Time Configuration: в поле Start Time введите значение 670, а в поле End Time - 270. Вернитесь в окно Track View, выделите ключи, добавленные в кадр 680, и скопируйте их в кадр 720. Затем активизируйте кнопку Slide Keys
, щелкнув по ней, выделите все ключи в кадре 670 и переместите всю 20-кадровую анимацию вправо. Еще раз щелкните по кнопке Move Key (Переместить ключ): она станет активной. Выделите ключи в кадре 712 и скопируйте их в кадр 670.



Рис. 7.76. Завершите гребок незначительными поворотами объектов Spine



Рис. 7.77. Добавьте ключевые кадры в кадры 680 и 702, чтобы их можно было скопировать еще куда-нибудь



Рис. 7.78. Betty вот-вот станет пловчихой-разрядницей

Снова измените параметры в окне Time Configuration: в поле Start Time введите значение 680, а в поле End Time - 720. Воспроизведите анимацию и посмотрите, как она выглядит (рис. 7.78).

Конечно, у Betty есть еще много других анимаций плавания. Ей приходится плыть в обратном направлении, стрелять в бездействии, плыть вперед и назад, а также чувствовать боль и умирать в двух позах. Эта глава призвана рассказать лишь о некоторых приемах анимации, требуемых при создании персонажа игры в реальном времени только с помощью операций над ключевыми кадрами.

Загрузите файл Betty12.max и просмотрите завершенные анимации плавания. Затем подготовьтесь к чтению следующей главы, в которой рассказывается о захвате движения.

 

Поза стрельбы


Поза стрельбы для обычного игрового персонажа иногда зависит от типа оружия, обычно персонаж держит ружье двумя руками. Однако в случае с Betty все немного по-другому (рис. 7.27).


Рис. 7.27. А если бы Betty пришлось носить большое ружье, как и всем обычным персонажам?

Единственное оружие Betty прикреплено к ее руке, а боезапас располагается на спине. Передняя часть большинства персонажей, которые держат оружие двумя руками, закрыта, но Betty это не свойственно. Поэтому создавать анимации стрельбы проще, но нужно помнить, что разные анимации стрельбы должны соответствовать различным позам, из которых персонаж может стрелять.

Загрузите файл Betty09.max, если вы еще не сделали этого, и измените параметр конца анимации в окне Time Configuration в поле End Time на 200. Откройте окно Track View и скопируйте ключи из кадра 20 в кадры 165 и 170, чтобы получить отправную точку для позы стрельбы.

При копировании ключевых кадров в окне Track View следите за полями назначения кадров, которое показывает, куда копируются ключи, - так вам будет проще убедиться, что они копируются в правильный кадр (рис. 7.28).


Рис. 7.28. Чтобы убедиться, что ключи перемещены или скопированы в правильный кадр, наблюдайте за полями в нижней части окна Track View

Скопировав ключи, перейдите в кадр 170, включите кнопку Auto Key и расположите Betty в позе готовности к стрельбе. Для этого немного опустите ее объект СОМ, переместив тем самым центр тяжести так, чтобы Betty выражала готовность. Поверните все четыре объекта Spine, чтобы Betty повернула руку с ружьем по направлению к цели. Поднимите руку с ружьем, повернув ее относительно осей X, Y и Z, передняя часть оружия должна быть направлена прямо к цели. (Не забудьте повернуть звено Clavicle относительно оси Y, чтобы поднять плечо.) Поверните правую руку вниз (по часовой стрелке), немного назад, как если бы Betty пыталась с ее помощью сохранить равновесие, пальцы должны быть вытянуты. Наконец, немного поверните правую ногу, чтобы ступня и голень были правее, а зритель почувствовал еще раз, что Betty готовится к выстрелу. Задав позу, осмотрите ее, включив режим Arc Rotate, и убедитесь, что Betty не теряет равновесия.


В Biped встроены автоматические ограничения, поэтому невозможно повернуть объекты Calf относительно оси Y. Однако их можно повернуть относительно оси X - результат будет интересным. Ступню тоже нельзя переместить, даже если она не заблокирована. Попробуйте сделать это при определении положения ног и посмотрите на результат.

Когда поза Betty будет задана, она должна выглядеть, как показано на рис. 7.29.



Рис. 7.29. Betty готова выстрелить

Создав позу, подвигайте ползунок шкалы времени из стороны в сторону, чтобы просмотреть переход из первой позы бездействия в позу стрельбы. Ключи из кадра 120 были скопированы в кадр 165 только для того, чтобы увидеть этот переход. При экспорте они не войдут в анимацию - это обусловлено способом выполнения анимаций. Фактически, когда Betty находится в позе Idlel и начинает стрелять из оружия, она сразу же принимает позу из кадра 170. Программист определит время, которое уйдет на переход из последнего кадра анимации бездействия в только что созданную позу. Игровой движок затем интерполирует позу- и она станет практически анимированной.

Персонажи Quake II были анимированы с частотой 15 кадров в секунду с линейной интерполяцией. Анимационная система для моделирования анимации была основана не на костях, а на деформации вершин - это так называемый подход целей морфинга. Каждый кадр анимации экспортировался в то, что в терминологии разработчиков называлось ключевым кадром вершины. Если посмотреть замедленное движение персонажей, то можно увидеть, что они при перемещении вершин из кадра в кадр принимают странные формы, попадая в следующую позу по кратчайшему пути.

В игре Betty Bad интерполяция между кадрами оказывает влияние на кости, которые управляют сеткой. Если есть возможность применить такой подход, то есть переходить из одной позы в другую, не анимируя на самом деле движение, то суммарное число кадров анимации сократится. Другими словами, анимационная система, основанная на костях, работает лучше, чем система деформации вершин. Это обусловлено тем, что кости поворачивают или перемещают вершины, на которые они влияют, а не просто переносят их из одной позы в другую. А без интерполяции позы просто привязывались бы друг к другу, выглядели бы резкими и неестественными.

Поза Betty определена, теперь скопируйте ключи позы готовности к стрельбе в кадр 177, чтобы перейти к следующему шагу в создании анимации стрельбы, а именно к добавлению эффекта отдачи.

 

Прыжки


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

 



Прыжки с места и с разбега


Сама по себе анимация прыжка - важная часть всего набора анимации, реализация которой, однако, создает сложности. Обычный прыжок с места, представленный на рис. 7.36, состоит из четырех частей: ожидание (1), подъем (2), зависание (3) и приземление (4).


Рис. 7.36. Прыжок с места можно разделить на четыре различные части

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

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


Рис. 7.37. Начальная и конечная фазы прыжка с разбега должны быть длиннее, чем у прыжка с места

 



Прыжок с поворотом


В четвертом прыжке создайте что-нибудь из репертуара баскетболиста или фигуриста, например прыжок с поворотом. Сначала измените параметры в окне Time Configuration: в поле Start Time введите значение 390, а в поле End Time - 410. Затем определите позу Betty в кадре 390, подняв ее колени, опустив правое плечо, поместив опущенную правую руку позади туловища и опустив руку с ружьем, чтобы казалось, что оно почти лежит на бедре. То, что руки опущены вниз, важно, поскольку при повороте они смогут подниматься, создавая иллюзию центробежной силы. Betty будет поворачиваться против часовой стрелки, поэтому слегка наклоните ее туловище в этом направлении (рис. 7.50).


Рис. 7.48. Betty очень легко прыгает на большие расстояния


Рис. 7.49. Даже в воздухе Betty сохраняет самообладание и собранность


Рис. 7.50. Начните анимацию с поворотом, наклонив Betty в направлении движения

Эта анимация должна продолжаться немного дольше, чем другие прыжки, в целом примерно 13 кадров. Но вместо того чтобы переходить в конец анимации и поворачивать объект СОМ на один полный оборот, разделите анимацию на три отдельных поворота. Для начала перейдите на четыре кадра вперед, выделите только объект СОМ и поверните его относительно оси Z на 120° (рис. 7.51, позиция 1). Больше ничего не анимируйте. Снова перейдите на четыре кадра вперед и поверните объект СОМ на 120° (рис. 7.51, позиция 2), а затем перейдите еще на четыре кадра вперед и опять поверните его на 120°. В кадре 402 получится полный оборот (рис. 7.51, позиция 3).

Протестируйте поворот и посмотрите, как он выглядит. Теперь задайте конечную позу. Поднимите руки Betty и наклоните ее торс вперед, как если бы она с помощью туловища увеличивала скорость вращения. Поверните объекты Spine и правую руку немного правее, чем в первом кадре. Настройте ноги, чтобы они больше были направлены вперед (рис. 7.52).


Рис. 7.51. Осуществите полный оборот СОМ на 360° за три шага, поворачивая его на 120° через каждые четыре кадра




Рис. 7.52. Конец прыжка с поворотом должен быть таким же динамичным, как и его начало

Когда в соревновании гонщик или фигурист выполняет ряд поворотов или сальто на большой скорости, он поворачивает голову в направлении вращения. Это делается из практических целей: так он видит, куда приземляться, или просто следит за своим положением в пространстве. Добавьте подобные штрихи к анимации, присовокупив вторичное движение такого типа к позвоночнику, голове и рукам Betty. Вернитесь в кадр 396. Изогните дугой ее спину и поверните объекты Spine относительно оси X, чтобы передать движение поворота. Также поверните относительно оси X и голову Betty и немного наклоните ее по оси Y. Вытяните левую руку, чтобы снова подчеркнуть центробежную силу вращения. Согните правую руку так, чтобы казалось, что Betty вот-вот выбросит ведущую руку в направлении вращения (рис. 7.53).



Рис. 7.53. Добавьте вторичное движение в позу в середине анимации

В кадрах 393 и 399 поверните голову и наклоните ее в сторону поворота, чтобы добавить ощущение, что персонаж определяет свое положение. В кадре 400 поднимите вверх правую руку и отведите ее немного назад: должно получиться что-то вроде движения кнута, которое в еще большей степени придаст чувство вращения и скорости (рис. 7.54).



Рис. 7.54. Завершите анимацию, внеся последние изменения во вторичное движение

Подвигайте ползунок шкалы времени и посмотрите, как выглядит анимация. Результат достигнут, удвойте ключи в начале и в конце отрезка движения, добавьте временные теги - и четвертый прыжок готов. Пятая анимация прыжка создается на тот случай, если персонажу нужно будет стрелять в прыжке и/или при приземлении.

 

Прыжок со стрельбой


Чтобы создать такой прыжок, начнем с анимаций, которые уже сделаны. Скопируйте ключевые кадры, которые составляют позы Jump2, позы касания (кадры 280-282) и приземления (кадры 283-307), но, чтобы добраться до них, не изменяйте параметры в окне Time Configuration. Вот одно из преимуществ использования временных тегов. Щелкните по полю сообщений Add Time Tag, а затем - по пункту Jump2 (рис. 7.55).


Рис. 7.55 Если щелкнуть по пункту Jump2, то анимация перейдет в эту точку независимо от параметров, установленных в окне Time Configuration

Если временные теги не были добавлены ранее, то, чтобы редактировать эти ключи в окне Track View, придется изменить диапазон анимации в окне

Time Configuration.

Параметры в окне Time Configuration автоматически изменятся, когда ползунок шкалы времени перепрыгнет в позу Jump2. Откройте окно Track View и скопируйте все ключи из кадров 329-341, чтобы они начались в кадре 419. Конечно, временные теги не помогут, если в окне Time Configuration нужно расширить диапазон времени. Измените параметры в окне Time Configuration: в поле Start Time введите значение 280, а в поле End Time - 480. Так вы получите доступ к позам бездействия и приземления, а также раздвинете диапазон анимации, чтобы создать новую анимацию прыжка. Скопировав все ключи из кадров 280-308 в кадры 450-478, еще раз измените диапазон в окне Time Configuration: в поле Start Time введите значение 420, а в поле End Time - 480. Ключи должны выглядеть примерно так, как в окне Track View: Jump2 (рис. 7.56, позиция 1), касание1 (рис. 7.56, позиция 2) и приземление (рис. 7.56, позиция 3).

Скопировав все ключи, удалите ключи из следующих кадров: 419, 430, 431, 451, 452, 469 и 478 (будут использоваться новые позы, поэтому старые ключи уже не нужны). Затем перейдите в кадр 420 и определите позу готовности к стрельбе. Поверните объект СОМ, объекты Spine, руки и голову, чтобы персонаж казался собранным и беспощадным (рис. 7.57).


Рис. 7.56. Скопируйте ключи предыдущих анимаций, чтобы обеспечить начальные данные для новой анимации


Рис. 7.57. Betty снова прыгает, но теперь она готова поразить любого врага



в реальном времени может иметь


Обычный персонаж игры в реальном времени может иметь примерно от 200 до 2000 кадров анимации. Насколько маленьким или большим будет это число - зависит от роли персонажа в игре, а также от способа, которым он реализован в игре. Больше всего кадров анимации определенно приходится на главных персонажей, потому что они должны многое делать, особенно если в игре на них смотрят со стороны.

Как правило, первым движением, которое нужно создать в анимационной папке (файле персонажа 3ds max), является анимация бездействия. Независимо от того, одна или несколько анимаций бездействия есть у персонажа, в основном создание движения при бездействии заключается в определении интересной позы, которая затем при прохождении по циклу немного изменяется. После определения первой позы заблокируйте ступни с помощью кнопки Set Planted Key и скопируйте позу в конец диапазона анимации. Чтобы избавится от избыточной анимации, обнулите параметры Continuity или воспользуйтесь удваиванием ключей - так быстрее всего избавится от подобного рода дополнительного движения. Вторичное движение - ключевой момент, определяющий качество любой анимации. Всегда добавляйте в анимацию, тем или иным способом, дополнительные детали.

При создании анимаций стрельбы сначала определите позу персонажа, в которой он держит оружие. Затем добавьте эффект отдачи при выстреле из оружия. Как и в случае с анимациями бездействия, особое внимание уделите созданию интересной позы, которая удовлетворяет требованиям набора анимации. Экспериментируйте с различными идеями. Определив положение оружия, присоедините к звену Biped Forearm кость или объект-пустышку - он будет играть роль прицельного механизма для программиста, помогая ему определить, в какой точке образуется выстрел.

Захват движения - хороший способ создания анимаций прыжка, но при разработке персонажа игры в реальном времени прыжки настолько специфичны, что их порой проще выполнить с помощью ключевых кадров. В физическом мире прыжок состоит из четырех частей: ожидание, подъем, зависание и приземление. В мире персонажей игр в реальном времени анимации прыжка разделены на три части: прыжок, касание и приземление. Анимируйте одну полную последовательность прыжка, затем разделите ее на эти части, чтобы они соответствовали игровому движку и персонажу. Некоторым персонажам придется, возможно, стрелять в прыжке, а для этого требуется другая анимация, в которой оружие всегда должно быть направлено на воображаемую цель. Воспользуйтесь инструментом Snapshot и создайте экземпляр объекта, по которому можно выровнять оружие по мере того, как персонаж совершает прыжок.


Наконец, есть много анимаций, которые необходимы персонажу и для которых захват движения был бы более эффективен, но плавание требует особой анимации с ключевыми кадрами, потому что с помощью захвата движения трудно получить точные движения под водой. Чтобы создать правильный цикл с таким медленным движением в жидкой среде, иногда необходимо дублировать ключевые кадры не просто методом «двойного касания» (double-tap), нужно скопировать целые сегменты ключевых кадров до и после диапазона анимации.


Создание плавного цикла


Иногда в 3ds max очень трудно достичь идеально плавного цикла. Независимо от того, что настраивается или изменяется, неизбежны небольшие расхождения в положениях объектов. В большинстве случаев они незаметны и/или игровой движок сглаживает их с помощью интерполяции. Однако при плавательных движениях цикл обязательно должен быть гладким. Вспомните, что файл 3ds max - это на самом деле папка с анимациями, поэтому можно создавать столько ключей, сколько нужно на протяжении отрезка анимации, ведь многие игровые движки позволяют вам задавать время начала и конца анимаций при экспорте (об экспорте подробно рассказывается далее). Поэтому временные теги так полезны. Имея все это в виду, очень просто с помощью нескольких дополнительных кадров создать практически идеальный цикл.

Измените параметры в окне Time Configuration: в поле Start Time введите значение 500, а в поле End Time - 700. Удалите ключи, удвоенные в кадрах 499 и 601. Затем скопируйте все ключевые кадры из кадра 525 в кадр 625 и все ключи из кадра 550 в кадр 650. Установите начало и конец анимации в кадрах 525 и 624 и воспроизведите анимацию (рис. 7.70).


Рис. 7.70. Создайте гладкий цикл: продублируйте ключи, тем самым увеличив диапазон анимации и изменив сам диапазон так, что он попадет в больший цикл

Теперь анимация должна быть полностью плавной. Копирование ключей таким способом - всего лишь вариация приема с удваиванием ключей, которое вынуждает программу 3ds max либо распознавать, либо игнорировать ключи до и после текущей анимации. Поэтому, используя подход с анимационной папкой, нужно представлять себе анимации, находящиеся в файле 3ds max, скорее как близкие по смыслу отрезки движений, а не отдельные анимации. Эта аналогия поможет в дальнейшем при работе в режиме Flow Mode (который будет обсуждаться в следующей главе).

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

 



Способ прицеливания


Когда персонаж игры в реальном времени стреляет из различных типов оружия, программист должен знать, откуда исходит выстрел. Единственный способ, которым можно заставить игровой движок сделать так, чтобы казалось, что выстрелы исходят из конца оружия, - определить это место за него самим. В Q3A система тегов, допускавшая анимационную схему из трех частей, обеспечивала и механизм определения места на оружии, из которого делается выстрел. Это место также называлось тегом. В анимационной системе Betty следует добавить еще одну кость на конце оружия, которую нужно оставить во время процесса экспорта (об этом рассказывается в главе 9), - так программист узнает, откуда произойдет выстрел. В 3ds max любой объект может быть костью, поэтому к звену Betty L Forearm будет привязан объект-пустышка, который и станет такой костью. Таким образом, дополнительная полигональная геометрия не добавляется и не визуализируется.

На панели Create активизируйте пиктограмму Helpers и кнопку Dummy, щелкнув по ним. Создайте и расположите объект-пустышку так, чтобы он совпадал в кадре 230 с передней частью дула ружья (рис. 7.34).

Переименуйте объект-пустышку в Weapon Pointer и свяжите его с звеном Betty L Forearm. Для этого выделите объект-пустышку и щелкните по кнопке Select and Link (Выделить и привязать) - рис. 7.35, позиция 1. Затем нажмите клавишу Н, чтобы вызвать список объектов сцены, и выберите объект Betty L Forearm (рис. 7.35, позиция 2). В завершение щелкните по кнопке Link, которая находится в нижней части окна (рис. 7.35, позиция 3).

Связывание объекта Weapon Pointer с предплечьем Betty логичнее, чем с ладонью, потому что оно не используется для деформации и не анимируется. Этот кадр, содержащий объект, который является источником выстрелов, исходящих из оружия, также дает точку присоединения геометрии и эффектов вспышки из дула. Завершите отрезки анимации стрельбы, добавив временные теги, и сохраните файл.

При желании загрузите файл Betty10.max и посмотрите, как выглядят анимации стрельбы. Встряхните руки, наклонитесь и приготовьтесь к прыжкам!


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


Рис. 7.35. Если связать объект Weapon Pointer с рукой Betty, то можно определить место, в котором образуется выстрел

 



Стрельба при касании земли


И снова ключ к такого рода анимации - физическое обоснование этого движения, приземления. При приземлении после прыжка даже Клинту Иствуду будет трудно прицелиться из такой пушки, которой пользуется Betty. Заставить игрока поверить в невозможное - требование игры action, в этом ее прелесть; добавьте героического реализма - это сделает игру еще более правдоподобной. Не забывайте об этом, задавая первую позу приземления (рис. 7.61).

Теперь добавьте в анимацию поворот, позаимствовав его из анимации Fire3. Положение ступней взято из позы приземления, которая, в свою очередь, перешла из Idle3, поэтому имеет смысл закончить анимацию в позе Fire3. Вызовите список временных тегов и щелкните по анимации Fire3 в кадре 230, чтобы использовать ее в качестве конечной позы в этой анимации. Скопируйте ключевые кадры из кадра 230 в кадр 480, удлинив анимацию приземления на несколько кадров.

Затем добавьте убедительности процессу приземления, обратившись к кадру 273, - изогните талию Betty, немного опустите ее руки, наклоните голову и ладонь вниз. Добавление этих вторичных движений при подъеме Betty после наклона к земле усиливает впечатление, что она только что приземлилась (рис. 7.62).

Перейдите к кадру 275 и добавьте последнюю часть вторичного движения, усиливая эффект восстановления Betty от столкновения с землей, повернув ее голову, руку с ружьем и правую ладонь немного вперед до того, как она перейдет в позу из кадра 230. Так будет казаться, что реакция Betty на приземление была быстрой и она снова готова к действию (рис. 7.63). Наконец еще немного уточните анимацию.


Рис. 7.61. Если во время приземления оружие наведено, то Betty придется присесть сразу после касания земли


Рис. 7.62. Betty реагирует на резкий удар при приземлении

Рис. 7.63. Реакция Betty позволяет ей быстро оправиться после удара при приземлении

Откройте окно Track View и с помощью инструмента Slide Keys перетащите ключи для треков Betty Spine, Betty Pelvis и Betty Head из кадра 480 в кадр 478. Так, ладони, которые занимают обычное положение (наготове и поверх оружия), заметнее, потому что туловище восстанавливает свое положение быстрее, чем они (рис. 7.64). Добавьте ключи для недостающих нюансов в кадре 480 и создайте двойные ключи в начале и конце анимации. В завершение создайте временные теги в начале и в конце.

 



Третья анимация бездействия


Третья анимация бездействия Betty более статична, в ней меньше движения, в основном это анимация перехода. Она была добавлена в набор анимаций после долгих раздумий, чтобы объединить другие анимации и чтобы Betty могла смотреть вперед. Кроме того, эта анимация была создана для разнообразия. Если существует три анимации бездействия (для левой, правой ступни и обеих ступней), остальные анимации не будут привязываться только к одной анимации бездействия. С помощью программного кода можно выбирать самую близкую позу бездействия в конце анимационного цикла - это делает анимацию Betty более разнообразной и интересной.

Ниже приведены действия, которые нужно выполнить, чтобы создать короткую повторяющуюся анимацию бездействия:

1. Задайте диапазон анимации.

2. Определите позу персонажа.

3. Заблокируйте ступни.

4. Скопируйте ключ из начального кадра в конечный.

5. В середине анимации создайте слабое движение.

6. Настройте параметры контроллера ТСВ или удвойте ключи, чтобы цикл был гладким.

7. Добавьте временные теги в начальный и конечный кадры анимации. Для этой анимации бездействия создайте позу, в которой персонаж смотрит вперед, а правая ступня слегка выступает относительно левой. Заблокируйте ступни. Затем, чтобы создать движение, заставьте Betty покачиваться из стороны в сторону, сгибая и разгибая пальцы. Измените диапазон анимации в окне Time Configuration на 120 и 149, перейдите в кадр 20, убедитесь, что кнопка Auto Key включена, и определите позу персонажа, как показано на рис. 7.26.


Рис. 7.26. Поза в третьей анимации бездействия не такая динамичная

В кадре 135 сдвиньте Betty с одной сторону в другую, добавив вторичное движение к левой руке и голове, как в предыдущей анимации бездействия. Также немного согните пальцы в кадре 135, чтобы получить движение сжимания/разжимания. Затем измените параметры в окне Time Configuration так, чтобы видеть кадр 150, добавьте временные теги для начала и конца анимации. На этом работа над анимациями бездействия закончена.

Сохраните файл или загрузите файл Betty09.max и посмотрите, как должны выглядеть эти три анимации бездействия. Теперь можно перейти к анимации стрельбы.

 



Удвоение ключей


Использовать 3ds max файл в качестве папки с анимациями, в которой хранится набор анимаций персонажа, чрезвычайно полезно, но контроллер ТСВ может привести к некоторым проблемам с промежуточным движением, которые возникают из-за исходного значения параметра Continuity. Чтобы избавиться от этого, необязательно вручную изменять значение Continuity на 0, можно просто удвоить ключи. Воспользуйтесь этим методом - он также называется «заключением в скобки» (bracketing) -в следующей анимации бездействия Betty. Сначала измените диапазон анимации: в поле Start Time введите значение 70, а в поле End Time - 99. В кадре 70 определите позу Betty так, чтобы она выглядела, как показано на рис. 7.13, - правая ступня должна быть впереди.


Рис. 7.13. Betty в позе бездействия с правой ступней впереди

Снова заблокируйте ступни, но на этот раз в окне Track View введите вручную значение IK Blend и выберите пространство Object. Откройте окно Track View, выделите ключ в кадре 70 для объекта Betty L Thigh и щелкните по нему правой кнопкой мыши, чтобы вызвать окно параметров ключевого кадра. Измените параметр IK Blend с 0 на 1, а вместо переключателя Body выберите Object (рис. 7.14).


Рис. 7.14. Чтобы заблокировать ступни, определите значение IK Blend равным 1 и переключитесь на пространство Object

Проделайте то же самое для трека Betty R Thigh, а затем скопируйте все ключи из кадра 70 в кадр 100. Сверните окно Track View и подвигайте ползунок шкалы времени из стороны в сторону. Очевидно, что лишняя анимация осталась. Вернитесь в окно Track View и скопируйте столбец ключей из кадра 70 в кадры 69 и 101 (рис. 7.15).

Закройте окно Track View и еще раз протащите ползунок по шкале времени. Теперь дополнительное движение отсутствует. Этот метод двойного «заключения в скобки» позволяет избавиться от изгиба анимационной кривой параметром Continuity, хотя его значение по-прежнему равно 25. Между двойными ключами нет временного промежутка, анимационная кривая становится прямой и так же влияет на движение объекта, как если значение бы параметра Continuity было равно 0.

Теперь нужно придать персонажу небольшую анимацию, как при первом бездействии, - добавить незначительное колебательное движение. Перейдите в кадр 85, выделите объект СОМ персонажа Betty, убедитесь, что кнопка Auto Key активна и опустите корневой объект Biped на 0,7 единицы вниз по оси Z (рис. 7.16).


Рис. 7.15. Результат удвоения ключей такой же, как при изменении параметра Continuity на 0


Рис. 7.16. Если немного сдвинуть тело вниз в середине анимации, то движение приобретет оттенок нетерпеливости

 



Все дело в позе


Анимации бездействия должны быть относительно короткими циклами; поскольку это все-таки состояние неподвижности, они не должны слишком усложняться - в основном в них требуется определить позу. Измените параметры диапазона анимации в окне Time Configuration: в поле Start Time введите значение 20, а в поле End Time - 50. Затем с помощью команды преобразования Rotate and Move задайте в кадре 20 позу Betty так, чтобы она выглядела, как показано на рис. 7.3. В качестве поверхности, на которой располагается персонаж, воспользуйтесь основной строительной плоскостью (main construction plane) - ступни должны быть на одной плоскости.


Рис. 7.3. Сделайте позу бездействия интересной

Тело Betty немного повернуто, оружие наготове, правая рука отведена для равновесия, а центр тяжести смещен вниз -Betty настороже и готова к атаке. Теперь нужно заблокировать ступни и скопировать все ключевые кадры из кадра 20 в кадр 50. Для этого выделите по очереди каждую ступню и в свитке Key Info нажмите кнопку Set Planted Key. Убедитесь, что опция Join to Prev IK Key не активна (рис. 7.4).


Рис. 7.4 Как только поза определена, заблокируйте ступни с помощью кнопки Set Planted Key

Кнопку Set Planted Key нельзя применять одновременно к нескольким конечностям. Выделите и определите закрепляющий ключ для одной конечности, а затем повторите процедуру для других.

В character studio при определении закрепляющего ключа на выделенной конечности автоматически появляется красная точка, которая обозначает активную точку центра трансформаций обратной кинематики. Эти точки на руках (ладонях) и ступнях не только позволяют лучше воспользоваться цепочкой обратной кинематики, которая определена для рук и ног, но могут повлечь за собой некоторые интересные анимации. Выделите объект Betty L Foot и в свитке Key Info в разделе IK нажмите кнопку Select Pivot (Выделить центр трансформаций), чтобы просмотреть доступные центры трансформаций для ступни (они показаны синими точками). Измените активный центр трансформаций, щелкнув по любой из точек, которые появляются на ступне, когда кнопка Select Pivot активна (рис. 7.5).

Выбрать центр трансформаций объекта с помощью кнопки Select Pivot можно в любое время, но ладонь или ступня поворачиваются вокруг этой точки, только если для конечности определен закрепляющий ключ. Иначе они поворачиваются вокруг обычной точки центра трансформаций прямой кинематики.

Отожмите кнопку Select Pivot, откройте окно Track View и скопируйте все ключи из кадра 20 в кадр 50. Закройте или сверните окно Track View и подвигайте ползунок шкалы времени из стороны в сторону. Вы увидите незначительное движение, так как параметр Continuity для всех ключей равен 25, а ключи определены в кадре 0.

 



Вторичное движение


В кадре 85 выделите все пальцы правой руки (кроме большого) и поверните их относительно оси Z, создавая видимость того, что Betty слегка сгибает руку. Немного согните большой палец вниз и вовнутрь (рис. 7.17).


Рис. 7.17. Добавьте вторичное движение правой руке, слегка согнув пальцы

Чтобы быстро выделить только пальцы руки, дважды щелкните по руке объекта Biped. Затем, удерживая нажатой клавишу Alt, щелкните по объектам Hand и Thumb (Большой палец руки) и тем самым отмените их выделение.

Не выходя из кадра 85, выделите объект Betty L UpperArm и поверните его вниз (по часовой стрелке) на 2° относительно оси Z. Чтобы выделить левое предплечье, нажмите клавишу Page Down (эта «горячая» клавиша выделяет объект, стоящий в иерархии на уровень ниже, чем выделенный), перейдите в кадр 90 и поверните предплечье вниз (по часовой стрелке) на 3° относительно оси Z (рис. 7.18).

Не выходя из кадра 90, поверните голову Betty на 3° по часовой стрелке, чтобы голова слегка наклонялась (рис. 7.19).


Рис. 7.18. Добавьте вторичное движение левой руке, задав небольшие вращения предплечья и плеча


Рис. 7.19. Поверните голову Betty в кадре 90, создайте ощущение, что она готова к бою и горит от нетерпения

Завершите настройку вторичных движений, присвоив ключам для треков Betty Head, Betty L Clavicle и Betty R Clavicle в кадре 100 значение параметра Ease To, равное 25, - цикл анимации станет более плавным (рис. 7.20).


Рис. 7.20. Если задать значение параметра Ease To, равное 25, для последнего ключа анимированных объектов, то цикл анимации станет более плавным

Кивок головой и поворот предплечья в кадре 90 нужен из-за эффекта задержки, который он создает. Если незначительный кивок головой сочетается с небольшим движением основного тела, то Betty выглядит проворной, неукротимой, готовой к действию. Задержка в повороте предплечья создает впечатление, что огромное ружье немного тяжелее, чем казалось. В завершение добавьте временные теги в первый и последний кадры второй анимации бездействия.

 



Выполнение прыжка в игре в реальном времени


Чтобы персонаж в игре прыгал, движение придется разбить на части, или сегменты, которые программист сможет запускать в зависимости от того, насколько высоко должен подпрыгнуть персонаж, как далеко он пролетит и когда ударится о землю. Прыжок не может быть одним длинным движением, иначе его нельзя будет выполнить, ведь невозможно сказать, как долго персонаж будет находиться в воздухе после толчка и как далеко он улетит, поскольку скорость и направление движения все время меняются. Прыжок в игре будет работать, только если он продуман немного по-другому и разделен на три части: прыжок (1), касание (2) и приземление (3) -рис. 7.38.

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


Рис. 7.38. Чтобы выполнить последовательность прыжка, ее нужно разбить на три части

Еще одно условие выполнения прыжка - он анимируется «на месте». Это значит, что персонажи не перемещаются во время анимации, потому что в игре они перемещаются движком вертикально и горизонтально на основе кода, который зависит от команд, полученных от игрока. Также это обусловлено ограничениями габаритного контейнера и ограничениями, связанными со столкновениями. Создавая анимацию прыжка, сначала добейтесь нужного ее вида, прежде чем думать об ограничениях. Затем просто удалите вертикальные ключи для объекта СОМ и остальное предоставьте коду, когда персонаж будет в игре.

Многие персонажи игр в реальном времени окружены так называемым габаритным контейнером (bounding box), который базируется на заранее заданном размере и/или на крайних вершинах персонажа. В этом случае граничные прямоугольники можно создавать по зонам (высокие, средние и низкие) или для каждой кости в каркасной анимационной системе. Из трех подходов к созданию граничных прямоугольников первый - наименее, а последний - наиболее дорогостоящий.