Скачиваний:
73
Добавлен:
17.11.2019
Размер:
27.76 Mб
Скачать

Рис. 8.104. Окно Material/Map Navigator (Путеводитель по материалам/картам текстур) на данном этапе редактирования многокомпонентного материала

Рис. 8.105. Окно Parameter Editor (Редактор параметров)

1.Выполните команду Graph Editors ► Track View – Curve Editor (Графические редакторы ► Просмотр треков – редактирование кривых).

2.В левой части редактора кривых перейдите по дереву иерархии к многокомпонентному материалу объекта analyzer_wave, выберите строку sound_wave (созданный нами атрибут) (рис. 8.106) и щелкните на ней правой кнопкой мыши.

Рис. 8.106. Окно редактора кривых с выделенным дополнительным параметром

3.В появившемся контекстном меню выберите строку Assign Controller (Назначить контроллер). В открывшемся окне Assign Float Controller (Назначить контроллер с плавающей точкой) выберите из списка строку AudioFloat (Звук, использующий значения с плавающей точкой).

4.В открывшемся окне Audio Controller (Контроллер звука) щелкните на кнопке Choose Sound (Выбор звука) и укажите путь к звуковому файлу.

5.В области Controller Range (Диапазон контроллера) увеличьте значение параметра Max (Максимум) до 5. Данное значение можно впоследствии скорректировать с таким расчетом, чтобы колебания уровней анализатора звука длительное время не превышали максимального значения.

6.Установите переключатель Channel (Канал) в положение Mix (Смешивание). Для строящегося анализатора звука мы возьмем один смешанный канал, хотя можно было бы использовать все три.

7.В области Sample (Выборка) задайте параметру Oversampling (Усреднение) значение 500 (рис. 8.107). Для имитации анализатора частотных характеристик звука мы используем кривую уровня звука, поэтому увеличение значения этого параметра позволит частично сгладить пороговые значения кривой.

Рис. 8.107. Настройки окна Audio Controller (Контроллер звука) для атрибута sound_wave

8. Закройте окно Audio Controller (Контроллер звука).

В окне редактора кривых присвоим флагу LevelMask карты улучшенного градиента, используемого в канале прозрачности, контроллер Float Expression (Выражение с плавающей точкой). Для этого в левой части редактора кривых выберите из иерархического списка объект analyzer_wave и, передвигаясь по его компонентам, перейдите к параметру Position (Положение) флага LevelMask из канала прозрачности первого материала (рис. 8.108).

Рис. 8.108. Окно редактора с активным параметром Position (Положение) флага LevelMask

Щелкните на выбранном параметре Position (Положение) правой кнопкой мыши и выберите строку Assign Controller (Назначить контроллер) в контекстном меню. В появившемся окне Assign Float Controller (Назначить контроллер с плавающей точкой) выберите из списка строку Float Expression (Выражение с плавающей точкой). В области Create Variables (Создать переменную) открывшегося окна Expression Controller (Контроллер управления по алгоритмическому выражению) введите в поле Name (Имя) имя создаваемой переменной (например, wave) и щелкните на кнопке Create (Создать). В результате будет создана пользовательская переменная, которой необходимо присвоить значение контроллера звука. Для этого щелкните на кнопке Assign to Controller (Назначить контроллеру) и укажите в открывшемся окне Track View Pick (Выбрать трек) на трек с именем созданного нами атрибута sound_wave (рис. 8.109).

В поле Expression (Выражение) запишите формулу, которая будет управлять поведением флага LevelMask согласно звуковой волне: floor(wave/0.05)*0.05 (рис. 8.110). Щелкните на кнопке Evaluate (Оценить) для присвоения функции анимируемому параметру.

Разберем записанную формулу. Начнем с параметров. Несмотря на то что в настройках диапазона звукового контроллера мы задали максимальное значение равным 5, позиция флага градиентной карты использует значение от 0 до 1. Кроме того, наш анализатор звука имеет 20 сегментов, и смещение значений положения флага должно происходить с учетом количества этих сегментов. Таким образом, первое, что мы делаем в этой функции, – округляем в меньшую сторону значение звукового контроллера (присвоенное переменной wave), деленное на 20 частей (floor(wave/0.05)). Для округления необходимо, чтобы значение было больше нуля, что мы и делаем, используя для деления значение, уменьшенное в 100 раз, но для возврата к прежнему уровню уже округленного значения нам необходимо умножить полученный результат на 0,05. Таким образом, полностью выражение выглядит как floor(wave/0.05)*0.05. В результате расчетов значение положения флага LevelMask в каждом кадре анимации становится кратным 0,05.

Рис. 8.109. Окно Track View Pick (Выбрать трек)

Рис. 8.110. Окно Expression Controller (Контроллер управления по алгоритмическому выражению) после выполнения всех настроек

Теперь следует в настройках многокомпонентного материала анализатора в окне Material Editor (Редактор материалов) скопировать первый материал и вставить вместо расположенных ниже девяти материалов.

СОВЕТ

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

редакторе материалов к этой карте и щелкните на кнопке Show Map in Viewport (Показать карту в окне проекции)

Второй способ: выполнить эскиз анимации текстуры, используя кнопку редактора материалов Make Preview (Создать эскиз)

Для создания копий настроенного материала перейдите к верхнему уровню многокомпонентного материала. В свитке Multi/Sub-Object Basic Parameters (Базовые параметры многокомпонентного материала) щелкните на кнопке с именем первого материала и, не отпуская кнопку мыши, перетащите ее на кнопку с именем второго материала. После того как вы отпустите кнопку мыши, появится окно, в котором в качестве метода копирования выберите Copy (Независимая копия объекта). Новый материал для второго канала создан. Теперь необходимо изменить настройки этого материала, чтобы анимация уровней каналов отличалась друг от друга. Для этого обратитесь к редактору кривых и выберите из иерархического списка анимированный флаг LevelMask для градиентной карты второго материала (рис. 8.111).

Перейдите к параметру Position (Положение) этого флага и, щелкнув на нем правой кнопкой мыши, выберите из контекстного меню строку Properties (Свойства). В результате откроется окно Expression Controller (Контроллер управления по алгоритмическому выражению). После копирования это окно содержит функцию и параметры анимации первой карты. Изменить значения анимации можно следующим образом:

изменить время, задаваемое в поле Tick Offset (Смещение в тиках) области Variable Parameters (Параметры переменной) для созданной нами переменной;

изменить значение переменной wave в записанной формуле.

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

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

Рис. 8.111. Редактор кривых с выделенным флагом LevelMask второго материала

Рис. 8.112. Окно контроллера Expression Controller (Контроллер управления по алгоритмическому выражению) с измененными параметрами для второго материала

И в завершение несколько советов к данному упражнению.

Кривая звука имеет нерегулярную форму, что вызывает изменения значений в каждом кадре анимации. Контроллер, который мы использовали, округляет значения кривой до цифры, кратной 0,05 (это необходимо для того, чтобы маска всегда открывала полные сегменты анализатора), но не отслеживает частые скачки значений. Частично сгладить кривую и сделать более плавную анимацию можно при помощи контроллера Float Script (Сценарий, использующий значения с плавающей точкой). В этом случае можно получать значения из кадров до и после текущего и усреднять их. Такой код может выглядеть, как на рис. 8.114. Аналогичным способом можно написать более сложный код, который будет не только получать значения кривой звука в определенные промежутки времени, но и строить собственную кривую на основе этих значений.

Рис. 8.113. Визуализация одного из кадров анимации

Рис. 8.114. Окно контроллера Float Script (Сценарий, использующий значения с плавающей точкой)

Более простой способ сглаживания анимации анализатора – при котором визуализируется каждый третий кадр анализатора. Естественно, что в этом случае необходимо использовать раздельную анимацию, при которой анализатор визуализируется с альфа-каналом для последующего совмещения его с остальной композицией в программе постобработки или в модуле Video Post (Видеомонтаж). При добавлении такой анимации в качестве нового слоя необходимо увеличить в три раза отображение каждого кадра. В модуле Video Post (Видеомонтаж) это делается при помощи параметра Multiplier (Усилитель) в окне Image File List Control (Файл контроля списка изображений) при выборе последовательности кадров.

Улучшить эффект анимации анализатора можно, добавив к анимации эффект Glow (Сияние). Проще всего для этого использовать одну из программ постобработки (например, Combustion), предварительно выполнив послойную визуализацию. Можно также применить модуль Video Post (Видеомонтаж), но в данном случае мы используем для анимации один объект и несколько карт прозрачности, что может создать определенные трудности при непосредственной анимации всей сцены. Для создания такого эффекта можно также применить предварительно визуализированные в отдельном слое кадры с анимацией анализатора.

ПРИМЕЧАНИЕ

Если у вас возникли трудности с присвоением и настройкой контроллеров, загрузите для анализа файл с готовой анимацией sound_wave_end.max, который находится на прилагаемом DVD в папке Examples\Глава 08\Sound_wave. В папке Video\l7iaBa 08 имеется готовая анимация

sound_wave.avi.

Песочные часы

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

В данном разделе мы рассмотрим более простые, но не менее интересные подходы к анимации песка. Загрузите с DVD, который прилагается к книге, файл sandglass_start.max,

находящийся в папке Examples\Глава 08\sandglass (рис. 8.115).

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

1.В окне проекции Front (Спереди) выделите стеклянную колбу часов или выберите ее (объект Glass) из списка объектов сцены, воспользовавшись клавишей H.

2.Создайте копию объекта, выполнив команду Tools ► Snapshot (Инструменты ► Снимок).

Воткрывшемся окне Snapshot (Снимок) переключатель в области Snapshot (Снимок) должен быть установлен в положение Single (Единичный), а переключатель Clone Method (Метод клонирования) – в положение Mesh (Сетка). Щелкните на кнопке OK.

3.Используя клавишу H, откройте окно Select From Scene (Выбор из сцены) и выберите в нем созданную копию – объект Glass01.

4.Перейдите в режим изоляции объекта, для чего воспользуйтесь сочетанием клавиш Alt+Q.

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

5.Перейдите на вкладку Modify (Изменение) командной панели и переключитесь в режим редактирования подобъектов Element (Элемент).

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

7.Удалите выделенный элемент, нажав клавишу Delete.

8.Снова щелкните на объекте для выделения внутренней поверхности стекла и в области Normals (Нормали) свитка Surface Properties (Свойства поверхности) нажмите кнопку Flip

(Обратить). Таким образом мы установим правильное направление нормалей (у внутренней поверхности стекла они были обращены внутрь).

9.Перейдите на уровень редактирования вершин, выделите нижнюю половину оставшейся внутренней поверхности стекла и удалите ее.

10.Используя инструмент Select and Uniform Scale (Выделить и равномерно масштабировать)

масштабируйте три или четыре нижних ряда вершин таким образом, чтобы получилась замкнутая форма (причем нижний ряд необходимо свести в точку), и, используя кнопку Selected (Выделенное) области Weld (Слияние) свитка Edit Geometry (Редактирование геометрии), объедините образующие ее вершины (рис. 8.116).

Рис. 8.115. Визуализация модели песочных часов

11.Выйдите из режима редактирования вершин, повторно щелкнув в свитке Selection (Выделение) на кнопке Vertex (Вершина)

12.Установите режим использования центра трансформаций на середину выделения, для чего щелкните на кнопке Use Selection Center (Использовать центр выделения)

главной панели инструментов.