Академия компьютерной графики, №5

 | 11.34

Мой Компьютер, №02 (506), 26.05.2008

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

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

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

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

Попробуйте провести для себя такой нехитрый эксперимент. Создайте анимацию вращающегося чайника таким образом, чтобы за сто кадров чайник выполнил один полный оборот. Воспроизведите анимацию и присмотритесь. Ничего не замечаете необычного? Правильно, в начале движения чайник ускоряется, а при приближении к сотому кадру он замедляет свое вращение. Такую картину вы будете наблюдать, если вы не меняли настройки 3ds Max, которые установлены по умолчанию.

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

Характер протекания анимации между двумя ключевыми кадрами определяется формой некоторой кривой, которая представляет собой график изменения анимированного параметра во времени. Точки начала и конца этой кривой — это ключевые значения анимированного параметра. Главный способ управления формой такой кривой — с помощью касательных, которые располагаются в начале и конце кривой. На графике эти точки соответствуют ключевым кадрам.

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

На панели управления анимацией вы можете увидеть кнопку Default In/Out Tangents For New Keys (см. рис), на которой нарисован график.

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

Таким образом, перед созданием ключа анимации можно нажать кнопку Default In/Out Tangents For New Keys и выбрать кривую, которая будет определять характер протекания анимации.

Различают два типа касательных: входящие и исходящие. Касательная, определяющая положение кривой до ключевого кадра, называется входящей, а касательная, которая определяет положение кривой после ключевого кадра, называется исходящей.

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

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

Конечно же, предустановленные формы кривой подходят далеко не всегда, и тогда ее нужно корректировать вручную. Для этого в 3ds Max предусмотрено окно Curve Editor (Редактор кривых), которое можно вызвать из меню Animation или нажав кнопку Open Mini Curve Editor, расположенную слева от шкалы анимации. Работа с ним будет рассмотрена в этом уроке.

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

Чтобы вам было проще понять нашу цель, посмотрите готовую анимацию, скачав ее по адресу http://www.cgliberty.com/cgliberty/31/cgliberty31.rar (2 Мб). Чтобы было нагляднее, мы добавили в этот ролик звук, хотя создание звукового сопровождения в задачу урока не входит, речь идет исключительно об анимации.

Наверное, многие из вас помнят (а может, у кого-то еще до сих пор сохранился) старый классический многодиапазонный радиоприемник а-ля VEF.

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

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

Все надписи на шкале делаются при помощи текстуры, назначенной в слот Diffuse (Основной рисунок).

Перед шкалой частоты нужно установить источник света Omni. В его настройках укажите, чтобы этот источник света освещал только указатель частоты и стенку, расположенную за прозрачной шкалой частот. На другие объекты этот источник света влиять не должен. Для этого в свитке General Parameters необходимо нажать кнопу Include и исключить из воздействия источника света все объекты, кроме перечисленных выше.

Кроме этого, для источника света нужно задать соответствующий цвет свечения, в нашем случае — зеленый.

Итак, у нас есть модель приемника. Начнем настройку анимации.

Сначала вызовите диалоговое окно Time Configuration (Конфигурация времени) нажатием на одноименную кнопку. В этом окне установите частоту 25 кадров в секунду (формат Pal) и задайте продолжительность анимации 200 кадров.

Создайте анимацию вращающейся ручки настройки с нулевого до 140 кадра. Напомним, что для этого необходимо нажать кнопку AutoKey, передвинуть ползунок на 140 кадр и повернуть колесико на нужный угол. Воспроизведите анимацию, чтобы убедиться, что ручка вращается. Характер протекания анимации, который установлен по умолчанию, нам подходит — сначала ручка вращается быстро, а затем замедляется, когда мы приближаемся к нужной частоте.

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

Чтобы не делать лишнюю работу, в 3ds Max предусмотрена возможность связывания параметров (Wire Parameters). Эта функция программы позволяет связать значение одного параметра с другим так, чтобы изменение одного из них влекло за собой автоматическое изменение другого. В нашем случае есть два параметра, которые необходимо связать между собой: угол вращения вокруг одной из осей для ручки настройки и координату оси, вдоль которой перемещается указатель частоты.

Для того, чтобы нам было легче работать, скроем в окне проекции все объекты, которые могут нам мешать.

Для того, чтобы связать вращение ручки с перемещением указателя, выделим ручку, щелкнем правой кнопкой мыши и выберем в контекстном меню команду Wire Parameters. Появится небольшое меню, в котором нужно выбрать связываемый параметр. В нашем случае это Y Rotation (см. рис.).

Появится пунктирная линия, которая тянется от объекта к курсору. Наведем ее на указатель частоты и щелкнем по этому объекту. Опять появится меню, где нужно будет указать связываемый параметр указателя. В нашем случае это X Position (см. рис.).

Появится окно Parameter Wiring. В нем при помощи стрелок указывается направление связи. Если выбрать стрелку, направленную в одну сторону, то при изменении параметра первого объекта будет меняться параметр второго объекта, а параметр второго объекта изменить будет невозможно. Если же выбрать стрелку, направленную в обе стороны, связь будет двусторонней. В нашем случае именно это и нужно. Выбрав направление соединения, нажмите кнопку Connect.

По умолчанию, изменение связанных параметров будет происходить с одинаковой скоростью, однако во многих случаях необходимо установить коэффициент изменяемости зависимого параметра. Например, если вы вращаете ручку, а указатель частоты двигается слишком медленно, то можно определить выражение, которое опишет характер зависимости. В нашем случае, как вы можете увидеть, положение объекта Cylinder01 (указателя) по оси X будет вычисляться как значение координаты вращения объекта Cylinder09 (ручка) вокруг оси Y, умноженное на пять. Иными словами, Y_Rotation*5 означает, что скорость перемещения указателя по шкале будет в пять раз быстрее (см. рис.).

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

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

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

В нашем случае такое связывание параметров неоправданно. Характер изменения интенсивности источника света будет совпадать с характером протекания анимации ручки: сначала интенсивность свечения будет увеличиваться с ускорением, а затем замедляться. Но, если вспомнить задачу, которую мы перед собой поставили, то станет понятно, что такой характер протекания анимации для источника света не подходит. Необходимо, чтобы интенсивность источника света менялась хаотично до кадра 140, где прекращается вращение ручки. В этом кадре яркость максимальная и далее не изменяется.

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

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

Анимируем источник света. Нажмем кнопку AutoKey, передвинем ползунок на 140 кадр и установим для параметра Multiplier значение 1.

Нажмем кнопку Open Mini Curve Editor, расположенную слева от шкалы анимации. В левой части окна Curve Editor выделим параметр Multiplier объекта Omni. Вы увидите кривую, определяющую протекание анимации. По горизонтали указаны номера кадров, а по вертикали — значение интенсивности. Как можно увидеть, на 140 кадре значение максимальное и равно единице. Вращая колесико мыши, можно изменять масштаб графика (см. рис.).

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

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

После использования инструмента Draw Curves вы можете увидеть, что на шкале анимации добавилось

нструмент Reduce Keys. Он дает возможность оптимизировать кривую так, чтобы она сохраняла свою форму при меньшем количестве ключевых точек. То, насколько много ключей будет убрано, определяется пороговым значением Threshold. Чем больше его число, тем меньше ключей. Возможно, вам понадобится использовать инструмент Reduce Keys несколько раз и делать откат (CTRL+Z), чтобы подобрать значение Threshold.

На этом настройка анимации завершена. Закройте окно Curve Editor, нажав кнопку Close.

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

Чтобы отрендерить анимацию, вызовите окно Render Scene (Rendering>Render), в группе параметров Time Output установите переключатель в положение Active Time Segment, чтобы отрендерить анимацию с нулевого по двухсотый кадр. На протяжении последних кадров ничего происходить не будет, мы просто нашли нужную станцию и слушаем музыку.

В группе настроек Output Size нажмите кнопку 640×480 или другую (это зависит от того, с каким разрешением вы хотите отрендерить анимацию).

Установите флажок Save File в группе настроек Render Output, после чего нажмите кнопку Files. Выберите папку для сохранения файла и его название. В поле Save as Type выберите AVI. Если вы рендерите анимацию впервые, вы увидите окно настроек сжатия. Если оно не появилось, нажмите кнопку Setup. В этом окне нужно выбрать кодек в списке Compressor. После установки параметров сжатия нажмите кнопку Save и, вернувшись в окно Render Scene, нажмите кнопку Render.

(Продолжение следует)

Robo User
Web-droid editor

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *