Лабораторная работа № 13

Тема: Введение в анимацию в 3D Studio MAX

Цель: рассмотреть примеры анимацию объектов 3D Studio MAX

Практическая работа

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

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

Базовые инструменты управления анимацией

Для управления параметрами анимации предназначены специальные панели, расположенные в нижней части программного окна, — панель управления, временная шкала (Time Bar) и шкала треков (Track Bar) — рис. 1.

Рис. 1. Базовые панели для управления анимацией

Панель управления содержит кнопки для перехода с кадра на кадр, воспроизведения/остановки анимации, определения режима ее воспроизведения и создания ключей. Настройка режима воспроизведения анимации происходит в окне Time Configuration (Конфигурация шкалы времени) — рис. 2, вызываемом щелчком по одноименной кнопке. Здесь можно задать диапазон воспроизведения анимации и ее продолжительность (группа Animation), а также скорость воспроизведения (группа PlayBack) и частоту кадров (группа Frame Rate). Диапазон анимации устанавливает общее количество входящих в нее кадров и вычисляется в зависимости от того, сколько секунд должна длиться анимация, при этом число секунд нужно умножить на частоту кадров. Например, если анимация должна длиться 10 секунд, а частота кадров равна 24 кадрам в секунду, то диапазон анимации будет включать 240 кадров. Скорость воспроизведения позволяет установить способ воспроизведения анимации — оптимальный вариант предполагает включение флажка Real Time (Режим реального времени), при котором скорость воспроизведения соответствует установленной частоте кадров. При недостатке компьютерных ресурсов (когда плавное движение отображается рывками) данный флажок следует отключить. Частота кадров является одним из основных параметров анимации, поскольку от нее напрямую зависит продолжительность и плавность воспроизведения. По умолчанию в 3D Studio MAX установлен американский стандарт телевизионного сигнала (NTSC), который обеспечивает воспроизведение с частотой 30 кадров в секунду — это означает, что каждую секунду демонстрируются 30 кадров. При желании возможно использование европейского стандарта PAL (25 кадров в секунду) и киностандарта Film (24 кадра в секунду), а также пользовательского стандарта Custom, позволяющего задавать собственную частоту воспроизведения.

Рис. 2. Окно Time Configuration

Временная шкала Time Bar позволяет перейти на нужный кадр и задать ключевые кадры анимации — перемещая с помощью мыши ползунок таймера анимации, можно увидеть движение объектов в сцене, а запустив проигрывание анимации, по положению ползунка слайдера контролировать ее этапы. Для перехода к нужному кадру достаточно щелкнуть по нему левой кнопкой мыши или перетащить ползунок — выбранный кадр будет выделен на шкале треков голубым прямоугольником.

Шкала треков Track Bar предназначена для визуального отображения номера текущего кадра и имеющихся в анимационном ролике ключей анимации, а также для выполнения некоторых операций с ключами. При этом выделение одного ключа осуществляется щелчком левой кнопки мыши, а нескольких ключей — путем удерживания клавиши Ctrl. Выделенные ключи несложно перемещать по шкале треков обычным перетаскиванием или редактировать через контекстное меню.

Более тонкая настройка анимации осуществляется в редакторе треков Track View (Просмотр треков). Данный редактор может работать в двух режимах — как редактор кривых Curve Editor либо как редактор дескрипторов Dope Sheet. Для открытия редактора треков в нужном режиме выбирается соответствующая режиму команда из меню Graph Editor (Редактор графов): Track View-Curve Editor или Track View-Dope Sheet. В окне редактора кривых анимация отображается в виде так называемых анимационных кривых (animation curves) с ключами в качестве узловых точек (рис. 3) — редактируя эти кривые, можно управлять анимацией. Наиболее важными этапами управления анимацией через Curve Editor является создание (кнопка Add Keys — Добавить ключи) и перемещение ключевых точек (кнопка Move Keys — Переместить ключи), а также изменение формы кривой и типа ее экстраполяции.

Рис. 3. Возможный вид окна Track View — Curve Editor

Форма кривой меняется путем перемещения имеющихся в ключевых точках касательных (Set Tangents to Custom — переход в режим ручного редактирования положения касательных) или настраивается автоматически с помощью следующих кнопок (рис. 4):

· Set Tangents to Auto — приводит к автоматическому сглаживанию кривой до и после ключевой точки;

· Set Tangents to Fast — обеспечивает изменение параметра с ускорением в районе точки ключа, что приводит к ускорению анимации;

· Set Tangents to Slow — задает изменение параметра с замедлением в районе точки ключа, что влечет за собой замедление анимации;

· Set Tangents to Step — обеспечивает отсутствие изменений анимируемого параметра в интервале между ключами и резкое изменение параметра при достижении ключевого кадра, что приводит к скачкообразному движению;

· Set Tangents to Linear — устанавливает равномерное изменение анимируемого параметра;

· Set Tangents to Smooth — обеспечивает плавное изменение анимируемого параметра в районе ключевого кадра.

Рис. 4. Кнопки для управления формой кривой

Один из нижеследующих типов экстраполяции кривых выбирается при щелчке по кнопке Parameter Curve Out-of-Range Types (рис. 5):

· Constant (Постоянный) — сохраняет значения анимирующего параметра вне диапазона по первому и последнему ключам;

· Cycle (Циклический) — заставляет анимацию повторяться по циклу, определяемому в пределах ее диапазона;

· Loop (Периодический) — обеспечивает плавное периодическое повторение анимации за счет усреднения значений начала и конца диапазона;

· Ping-Pong (Циклически зеркальный) — повторяет анимацию, комбинируя прямое и обратное направление ее развития;

· Linear (Линейный) — дополняет анимацию до и после диапазона по линейному закону;

· Relative Repeat (Относительно повторяемый) — обеспечивает плавное периодическое повторение анимации за счет совмещения начального и конечного значений диапазона.

Рис. 5. Окно выбора типов экстраполяции кривых

В окне редактора дескрипторов (рис. 6) анимация представлена в виде листов дескрипторов, на которых отображаются ключи (Keys) и диапазоны (Ranges) либо числовые значения параметров, если трек не содержит анимации. Управлять анимацией в данном окне можно посредством создания, редактирования, копирования и удаления ключей анимации, назначения и настройки контроллеров анимации, создания и редактирования трека видимости (Visibility Track) и т.д. Знакомиться с нюансами управления анимацией через редактор дескрипторов мы будем в одном из следующих уроков.

Рис. 6. Возможный вид окна Track View — Dope Sheet

Помимо вышеназванных меню и окон, за работу с анимацией отвечают команды Modifiers=>Animation Modifiers (Модификаторы=>Анимационные модификаторы) и Animation (Анимация) из командного меню и вкладка Motion (Движение) на командной панели Command Panel.

## Технология создания анимации на базе ключевых кадров

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

Рис. 7. Условная схема перемещения объекта (позиции объекта, соответствующие ключевым кадрам, выделены красным цветом)

Данная технология получения анимации предполагает, что нужно задать, как должен выглядеть объект в том или ином кадре, то есть связать с определенным моментом времени событие анимации. Затем следует определить данные кадры как ключевые (keyframes), что и приведет к созданию для объекта ключей анимации, в которых будут зафиксированы особенности его отображения в определенные моменты времени. Помимо ключевых в анимации будут присутствовать и промежуточные кадры (in-betweens), которые формируются программой автоматически и определяют изменение объекта между ключевыми позициями.

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

Создание анимации в режиме автоматической установки ключевых кадров

В качестве первого примера попробуем получить анимацию изменения масштаба обычного шара, когда шар вначале будет увеличиваться в размерах до некой максимальной величины, а затем так же плавно уменьшаться. Создайте новую сцену с шаром в центре. Задайте требуемую частоту кадров (в нашем случае 24 кадра в секунду), щелкнув на кнопке Time Configuration и установив для параметра Frame Rate (Кадровая частота) вариант Film. Укажите диапазон анимации, введя требуемые значения в полях Start Time (Начало анимации) и End Time (Конец анимации), — для примера будем считать, что анимация должна длиться 3 секунды, а частота кадров равна 24 кадрам в секунду, поэтому в создаваемой анимации должно быть 72 кадра — с 0-го по 71-й (рис. 8).

Рис. 8. Определение диапазона анимации

Попробуем в данном примере работать в режиме автоматической установки ключевых кадров — в нем любое изменение параметров объекта автоматически приводит к созданию ключа анимации. Для активации данного режима щелкните на кнопке Toggle Auto Key Mode (Переключить в режим автоматического создания ключей), находящейся на панели управления. Выделите шар и перетащите ползунок временной шкалы вправо на 30-й кадр. Увеличьте масштаб шара, воспользовавшись инструментом Select and Uniform Scale. Это приведет к появлению на шкале треков меток сразу двух ключей — в 0-м и 30-м кадрах, первый из которых создается автоматически (рис. 9).

Рис. 9. Появление меток первых двух ключей

Переместите ползунок на последний кадр, уменьшите масштаб шара до первоначального и отключите режим автоматического создания ключей, щелкнув на кнопке Toggle Auto Key Mode. Перейдите в окно проекции Perspective, нажмите на панели управления кнопку Play Animation (Проиграть анимацию) — она тут же превратится в кнопку Stop Animation, а анимация начнет проигрываться. Для более удобного просмотра можно предварительно развернуть окно проекции на весь экран, воспользовавшись кнопкой Min/Max Toggle (Переключить во весь экран/возврат назад). Понаблюдайте за созданным шедевром и остановите анимацию, щелкнув на кнопке Stop Animation.

Подобное воспроизведение анимации в окне проекции Perspective (Перспектива) дает лишь примерное представление о том, как она будет выглядеть в действительности. Дело в том, что 3D Studio MAX каждый раз просчитывает то или иное изображение перед его показом, а программа воспроизведения анимации проигрывает уже готовые изображения, а значит, скорость воспроизведения (в зависимости от сцены и характеристик компьютера) может немного или даже весьма существенно отличаться от действительной. Для просмотра анимации в реальном времени необходимо создать файл эскиза анимации, воспользовавшись командой Animation=>Make Preview (Анимация=>Создать Эскиз). Это приведет к формированию множества моментальных снимков экрана (для каждого кадра формируется свой снимок) с последующей их демонстрацией в окне установленного по умолчанию в Windows проигрывателя. Попробуйте применить команду Animation=>Make Preview с параметрами по умолчанию и увидите, что вначале анимация вновь будет воспроизводиться в окне Perspective (только на этот раз данный процесс будет сопровождаться созданием снимков), а затем откроется окно проигрывателя, где можно будет увидеть результат (рис. 10). Имейте в виду, что подобный просчет анимации требует немало времени, поэтому на стадии отладки ролика разумнее не загружать сцену лишними деталями: скрыть те объекты, которые не имеют значения для анимации, заменить объекты со сложной структурой более простыми и т.п.

Рис. 10. Демонстрация анимации в окне Windows-проигрывателя

Полученную анимацию несложно сохранить. Откройте окно настройки параметров визуализации Render Scene, применив команду Rendering=>Render, и перейдите на вкладку Common Parameters. В группе параметров Time Output (Временной интервал) активируйте переключатель Active Time Segment (Активный сегмент времени) и определите диапазон анимации (рис. 11). В группе Render Output (Вывод визуализации) щелкните на кнопке Files (Файлы) и укажите имя файла, формат расширения (AVI) и формат сжатия (рис. 12), а затем щелкните на кнопке Render, что и приведет к формированию AVI-файла в указанной папке.

Рис. 11. Определение диапазона анимации

Рис. 12. Настройка параметров сохранения анимации

Создание анимации в режиме ручной установки ключевых кадров

Теперь попробуем получить анимацию в режиме ручной установки ключевых кадров, заставив перемещаться обычный шар по криволинейной траектории, представленной на рис. 13, где красным цветом отмечены ключевые позиции перемещающегося объекта, а белым — некоторые промежуточные. Создайте новую сцену с шаром и перейдите в режим работы с одной проекцией Front. Щелкните на кнопке Time Configuration и укажите в качестве диапазона анимации интервал с 0-го по 30-й кадр. Включите режим ручной установки ключевых кадров, щелкнув на кнопке Toggle Set Key Mode (Переключить в режим ручного создания ключей). Проверьте, чтобы ползунок временной шкалы стоял на 0-м кадре, перетащите шар вверх и влево и создайте первый ключ анимации, щелкнув на кнопке Set Keys (Установить ключ) — рис. 14. Обратите внимание на то, что при нажатии данной кнопки фиксируются изменения только тех свойств, которые помечены галочками в окне Key Filters (рис. 15).

Рис. 13. Траектория перемещения шара

Рис. 14. Вид сцены для 0-го кадра

Рис. 15. Окно Key Filters

Переключитесь на 6-й кадр, переместите шар в соответствии с задуманной траекторией (то есть вниз и вправо) и опять же вручную создайте второй ключ (рис. 16). Активируйте 10-й кадр, вновь переместите шар и создайте ключ (рис. 17) и т.д., пока не сформируете ключевые кадры для всей траектории. Примерное положение всех ключевых позиций шара на проекции Front представлено на рис. 18, где цифрами отмечены номера кадров, соответствующих ключевым положениям. Выключите режим ручной установки ключевых кадров, щелкнув на кнопке Toggle Set Key Mode, сохраните сцену и оцените полученную анимацию.

Рис. 16. Вид сцены для 6-го кадра

Рис. 17. Вид сцены для 10-го кадра

Рис. 18. Позиции шара для всех ключевых кадров

Редактирования ключей

Если анимация не соответствует вашим ожиданиям, придется перейти к ее отладке. Рассмотрим этот процесс на примере только что созданной анимации перемещения шарика по криволинейной траектории. Определенные возможности для этого имеются в главном окне программы. Например, несложно изменить положение объекта в ключевом кадре — для этого достаточно активировать ключевой кадр, включить режим ручного создания ключей, переместить объект, создать новый ключ анимации и щелкнуть на кнопке Toggle Set Key Mode.

Кроме того, можно создать новые ключевые кадры. Попробуем, например, подкорректировать первый этап движения шарика. В промежутке, охватывающем с 1-го по 6-й кадры, шарик перемещается по прямой, а должен (в соответствии с физическими законами) двигаться по параболе с широким основанием. Для достижения нужной траектории придется отвести на указанный этап перемещения больше времени и создать еще несколько ключей. Получается, что общее число кадров анимации нужно увеличить, кадры с 6-го по 30-й перенести по временной шкале вперед и скорректировать позиции шара в добавленных кадрах. Расширьте диапазон анимации до 36 кадров. На шкале треков при нажатой клавише Ctrl выделите все ключи, стоящие в кадрах с 6-го по 30-й, и перетащите их на 12-й кадр. Проиграйте анимацию и увидите, что после перемещения ключевых кадров программой автоматически было отрегулировано положение шара в добавленных кадрах (рис. 19) и теперь начальный промежуток шарик пробегает в более медленном темпе. На самом деле скорость его не изменилась — просто за счет удвоения кадров увеличилось время, отведенное шарику на прохождение начального этапа пути. Однако данные действия пока не привели к желаемому изменению траектории на рассматриваемом участке (от прямолинейной к параболической) — положение шарика в начальных кадрах необходимо скорректировать вручную.

Рис. 19. Новое положение шара в 6-м кадре

Поэтому включите режим ручного создания ключей, активируйте 1-й кадр, переместите шарик чуть вверх и вправо и создайте новый ключ анимации, щелкнув на кнопке Set Keys. Аналогичную операцию выполните в отношении всех кадров со 2-го по 11-й, и при проигрывании анимации вы увидите, что траектория стала ближе к желаемой, но отнюдь не идеальной.

Как видите, корректировать ключи непосредственно в главном окне программы не всегда удобно, поскольку траектории шарика мы не видим. Иное дело, если открыть редактор треков Track View в режиме Curve Editor (команда Graph Editor=>Track View => Curve Editor — Редактор графов => Просмотр треков => Редактор кривых), в котором отображаются анимационные кривые вместе с ключами, представленными в виде явно выраженных точек, лежащих на кривых (рис. 20). По оси X в окне кривых откладываются номера кадров, а по оси Y — числовые значения ключей. Редактируя форму этих анимационных кривых, можно управлять анимацией, например ускорять и замедлять движение объекта, так как в случае перемещения увеличение крутизны наклона кривой приведет к ускорению движения, а более пологая форма, наоборот, к его замедлению. Подобное редактирование осуществляется за счет изменения значений ключей, а также посредством корректировки кривизны кривых. Отметим, что окно Curve Editor разбито на две части: в левой находится дерево объектов и свойств сцены и всех их параметров, поддерживающих анимацию, — в нем удобно выбирать редактируемый параметр, а справа — окно кривых, в котором производится редактирование.

Рис. 20. Окно Curve Editor для анимации движения шарика

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

Вернемся к ранее рассмотренной, но так до конца и не решенной проблеме движения шарика по параболической траектории. Попробуем продолжить редактирование ключей, но уже в окне Curve Editor. Щелкните в его левой части и у объекта Sphere 01 сделайте выделенной только строку Z Pozition — останется одна анимационная кривая, отвечающая за перемещение по оси Z. При нажатой клавише Ctrl выделите все анимационные ключи и увидите, что в точках их размещения появились касательные (рис. 21). Внимательно рассмотрите участок кривой, соответствующий первым 13 кадрам, — видно, что для более плавного движения шарика желательно немного изменить кривизну кривой, переместив все ключи на данном участке, за исключением ключа в 0-м кадре, немного вниз. На встроенной панели инструментов редактора кривых выберите инструмент Move Keys (Переместить ключи), выделите все нужные ключи, сформировав вокруг них габаритный контейнер, и переместите их вниз примерно так, как показано на рис. 22. Второй ключ потребует более точной индивидуальной настройки — щелкните на нем правой кнопкой мыши и в открывшемся окне параметров введите его новое значение (рис. 23). А затем, для того чтобы касательные ключа установились автоматически на основе кривизны участков кривой до и после ключевой точки, щелкните на кнопке Set Tangents to Auto (Автоматическая установка касательных) — рис. 24. Включите воспроизведение анимации и оцените результат.

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

Рис. 21. Появление касательных к ключам анимационных кривых

Рис. 22. Результат перемещения группы ключей

Рис. 23. Ввод значения 2-го ключа в окне параметров

Рис. 24. Окончательный вид анимационной кривой