Программа: Основы трехмерной графики
Группа: 1
19.05.2020
Тема: Технологии создания анимации на базе ключевых кадров.
Цель урока: ознакомиться с технологией создания анимации на базе ключевых кадров, научиться работать с анимацией сцены на примере создания катящегося по кругу шара.
Задания:
| № урока | № зада-ния | Задания | Время выполнения задания |
| 1 | 1. | Изучите теоретический материал темы | 15 мин. |
| 2. | Ответьте на вопросы для самопроверки | 10 мин. |
| | Перерыв 10 мин. |
| 2-3 | 3. | Выполните практическое задание | 25 мин. |
| Перерыв 10 мин. |
| 20 мин. |
| 4. | Готовые задания отправьте на адрес электронной почты преподавателя: taytatpet61@mail.ru | 5 мин. |
Основной теоретический материал
Технология создания анимации на базе ключевых кадров
С
уществует несколько различных способов анимации объектов сцены. Наиболее распространенным методом является создание анимации путем определения последовательности ключевых кадров, под которыми понимаются моменты времени, когда наблюдаются какие-либо события анимации, отображающие начало неких преобразований объекта. Например, на рис. 1 представлена условная схема движения объекта по криволинейной траектории с отображением ключевых и промежуточных позиций объекта. С каждым событием анимации связан свой ключ анимации, поэтому кадры, в которых созданы ключи анимации, считают ключевыми. Законы изменения анимации между ключами описываются математическими, графическими или алгоритмическими функциями и запоминаются в контроллерах анимации, автоматически назначаемых каждому изменяемому параметру объекта.
Рис. 1. Условная схема перемещения объекта (позиции объекта, соответствующие ключевым кадрам, выделены красным цветом)
Данная технология получения анимации предполагает, что нужно задать, как должен выглядеть объект в том или ином кадре, то есть связать с определенным моментом времени событие анимации. Затем следует определить данные кадры как ключевые (keyframes), что и приведет к созданию для объекта ключей анимации, в которых будут зафиксированы особенности его отображения в определенные моменты времени. Помимо ключевых в анимации будут присутствовать и промежуточные кадры (in-betweens), которые формируются программой автоматически и определяют изменение объекта между ключевыми позициями.
Суть технологии анимации на основе ключевых кадров заключается в том, что нужно создать ключи анимации для крайних положений объекта (каждый ключ связан с определенным моментом времени), предоставив программе возможность самостоятельно рассчитать состояние объекта в промежуточных положениях. Рассмотрим данную технологию на примере простых анимаций и параллельно обратим внимание на особенности создания анимации в режимах автоматической и ручной установки ключевых кадров.
Создание анимации в режиме автоматической установки ключевых кадров
В
качестве первого примера попробуем получить анимацию изменения масштаба обычного шара, когда шар вначале будет увеличиваться в размерах до некой максимальной величины, а затем так же плавно уменьшаться. Создайте новую сцену с шаром в центре. Задайте требуемую частоту кадров (в нашем случае 24 кадра в секунду), щелкнув на кнопке Time Configuration и установив для параметра Frame Rate (Кадровая частота) вариант Film. Укажите диапазон анимации, введя требуемые значения в полях Start Time (Начало анимации) и End Time (Конец анимации), — для примера будем считать, что анимация должна длиться 3 секунды, а частота кадров равна 24 кадрам в секунду, поэтому в создаваемой анимации должно быть 72 кадра — с 0-го по 71-й (рис. 2).
Рис. 2. Определение диапазона анимации
Попробуем в данном примере работать в режиме автоматической установки ключевых кадров — в нем любое изменение параметров объекта автоматически приводит к созданию ключа анимации. Для активации данного режима щелкните на кнопке Toggle Auto Key Mode (Переключить в режим автоматического создания ключей), находящейся на панели управления. Выделите шар и перетащите ползунок временной шкалы вправо на 30-й кадр. Увеличьте масштаб шара, воспользовавшись инструментом Select and Uniform Scale. Это приведет к появлению на шкале треков меток сразу двух ключей — в 0-м и 30-м кадрах, первый из которых создается автоматически (рис. 3).
Рис. 3. Появление меток первых двух ключей
Переместите ползунок на последний кадр, уменьшите масштаб шара до первоначального и отключите режим автоматического создания ключей, щелкнув на кнопке 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 (только на этот раз данный процесс будет сопровождаться созданием снимков), а затем откроется окно проигрывателя, где можно будет увидеть результат (рис. 4). Имейте в виду, что подобный просчет анимации требует немало времени, поэтому на стадии отладки ролика разумнее не загружать сцену лишними деталями: скрыть те объекты, которые не имеют значения для анимации, заменить объекты со сложной структурой более простыми и т.п.
Рис. 4. Демонстрация анимации в окне Windows-проигрывателя
Полученную анимацию несложно сохранить. Откройте окно настройки параметров визуализации Render Scene, применив команду Rendering=Render, и перейдите на вкладку Common Parameters. В группе параметров Time Output (Временной интервал) активируйте переключатель Active Time Segment (Активный сегмент времени) и определите диапазон анимации (рис. 5). В группе Render Output (Вывод визуализации) щелкните на кнопке Files (Файлы) и укажите имя файла, формат расширения (AVI) и формат сжатия (рис. 6), а затем щелкните на кнопке Render, что и приведет к формированию AVI-файла в указанной папке.
Рис. 5. Определение диапазона анимации
Рис. 6. Настройка параметров сохранения анимации
2. Вопросы для самопроверки:
В чем суть технологии анимации на основе ключевых кадров?
Что нужно сделать для просмотра анимации в реальном времени?
Как сохранить созданную анимацию?
3. Практическое задание: Катящийся по кругу шар
Создайте новую сцену и разместите на ней плоскость, шар и окружность (рис. 7). Попробуем заставить шар катиться по данной плоскости, но не по прямой, а по окружности, которая и будет играть роль траектории. Выделите шар и примените к нему модификатор деформации по траектории, открыв из меню Modifiers (Модификаторы) команду Animation Modifiers=Path Deform (WSM) (Анимационные модификаторы=Деформация по траектории (WSM)). В открывшемся свитке параметров модификатора щелкните на кнопке Pick Path (Указать путь) и укажите окружность в одном из окон проекций. После этого щелкните на кнопке Move to Path (Передвинуть на путь) — шар займет нужное положение на траектории (рис. 8).
Рис. 7. Исходная сцена
Рис. 8. Результат передвижения шара по траектории
Включите режим создания анимации с автоматическим созданием ключей, передвиньте ползунок таймера анимации в последний кадр и переместите шар по оси Z так, чтобы он прошел по всей траектории и остановился в исходной точке. Это можно сделать либо вручную (рис. 9), либо щелкнув правой кнопкой мыши на инструменте Select and Move и в открывшемся окне задав нужное значение (его можно подобрать экспериментальным путем) для параметра Offset:World — Z (рис. 10).
Рис. 9. Перемещение шара по траектории вручную
Рис. 10. Задание относительной координаты перемещения шара по оси Z
Выйдите из режима создания анимации, проиграйте ролик и сразу увидите, что шар начинает двигаться, доходит до определенной точки, а потом продолжает движение совсем из другой позиции. Это неудивительно, ведь вместо расчетов мы просто прикинули на глаз примерную позицию шара в последнем кадре. В действительности следовало вспомнить, что длина проходимой им траектории равна длине окружности (2 х Radius х
, или 1257), учитывая, что радиус окружности в нашем случае был равен 200. Теоретически данное значение можно было изначально указать и в окне Move Transform Type-In (если бы оно было посчитано), но можно и в редакторе кривых, однако исправлять его (что требуется в данный момент) в любом случае придется через редактор кривых. Поэтому откройте его, найдите для сферы (в нашем случае Sphere01) строку Z Position, выделите ключ, стоящий в последнем кадре, и введите в поле ввода нужное значение (рис. 11).
Рис. 11. Изменение значения ключа Z Position
Проиграйте анимацию — теперь шар возобновляет движение в той точке, где закончился предыдущий цикл. Однако бросается в глаза другая проблема: в начале траектории шар явно ускоряет свое движение, а в конце замедляет — нам же требуется равномерное движение. Поэтому при нажатой клавише Ctrl выделите обе ключевые точки и щелкните на кнопке Set Tangents to Linear (Установка касательных для линейной анимации) — криволинейная траектория превратится в прямолинейную (рис. 12).
Рис. 12. Корректировка вида касательных
Теперь движение шара станет действительно линейным — без ускорений и замедлений, однако качением такое движение не назовешь, ведь шар перемещается, но не поворачивается вокруг своей оси (для того чтобы четко увидеть отсутствие вращения, присвойте шару клетчатую текстуру). Поэтому зададим шару еще и вращение по оси X. Откройте редактор кривых, найдите для шара строку X Rotation, активизируйте кнопку Add Keys (Добавить ключи) и дважды щелкните по пунктирной линии с небольшим смещением по ней. На линии появятся две ключевые точки (рис. 13) — изначально местоположение их на кривой не имеет значения, так как его все равно придется корректировать. Для корректировки активизируйте инструмент Move Keys (Переместить ключи), выберите первую точку на кривой и в левом поле ввода укажите значение 0 для номера кадра и значение 0 для величины поворота, так как в начальном кадре шар поворачиваться пока не должен (рис. 142). Далее выберите вторую точку и укажите для 75-го кадра (четверть временной шкалы) значение 360 (рис. 15) — это будет означать, что за 75 кадров шар сделает полный оборот вокруг своей оси. При желании можно более точно вычислить, за сколько кадров шар должен повернуться вокруг своей оси (так же, как мы это делали в предыдущем примере), но сейчас ограничимся прикидочным вариантом.
Рис. 13. Создание ключевых точек в редакторе кривых
Рис. 14. Ввод значения ключа для 0-го кадра
Рис. 15. Ввод значения ключа для 75-го кадра
Выделите обе ключевые точки и зациклите созданное движение — для этого кликните на кнопке Param Curve Out-of-Range Types (Типы экстраполяции кривых) и установите вариант Relative Repeat (Относительно повторяемый) — рис. 16. В результате вид кривой изменится (рис. 17). И напоследок вновь выделите обе ключевые точки и щелкните на кнопке Set Tangents to Linear, чтобы исключить ускорение и замедление в процессе вращения (рис. 18). Запустите анимацию и убедитесь, что ожидаемый результат полностью достигнут и шар действительно равномерно катится по окружности (рис. 19).
Рис. 16. Установка варианта Relative Repeat
Рис. 17. Вид кривой после смены типа экстраполяции
Рис. 18. Вид кривой после изменения варианта касательных
Рис. 19. Вид шара в отдельных кадрах анимации