3ds max
Меню сайта
Категории каталога
уроки [96]
Чертежи [1]
Мини-чат
300
Наш опрос
Оцените мой сайт
Всего ответов: 171
Главная » Статьи » Моделирование » уроки

Звук в 3ds max Часть 2

Часть вторая

  • Перейдем к построению составной карты, для чего справа от имени градиентной карты прозрачности, с которой мы работали, щелкните на кнопке Gradient Ramp (Улучшенный градиент), в результате чего откроется окно диалога Material / Map Browser (Просмотр материалов и карт текстур).
  • В открывшемся окне Material / Map Browser (Просмотр материалов и карт текстур) выберите из списка карту Mask (Маска) и щелкните на кнопке Ok для подтверждения выбора и закрытия окна. В результате выполненных действий появится окно диалога с вопросом оставить ли существующую карту в качестве компонента новой карты. Ответьте утвердительно.
  • После выбора карты Mask (Маска) окно редактора автоматически перейдет к параметрам этой карты. В свитке Mask Parameters (Параметры маски) щелкните на кнопке None (Отсутствует) справа от Mask (Маска) и выберите из раскрывшегося окна диалога Material / Map Browser (Просмотр материалов и карт текстур) еще одну карту Gradient Ramp (Улучшенный градиент).
  • Как и для предыдущей карты градиента, в свитке Gradient Ramp Parameters (Параметры улучшенного градиента) для первого флага установите белый цвет.
  • Постройте третий флаг, для чего щелкните в пределах шкалы градиента и установите для него черный цвет. Положение флага значения не имеет.
  • Щелкните на построенном флаге правой кнопкой мыши и выберите из контекстного меню строку Edit Properties (Правка свойств).
  • В появившемся окне диалога, в поле имени впечатайте новое имя флага, например LevelMask (рис. 13). Это позволит в будущем, при анимации, проще находить нужные объекты.
рис. 13
  • В этом же свитке выберите из списка Interpolation (Интерполяция) строку Solid (Сплошной).
  • В свитке Coordinates (Координаты) установите значение счетчике W группы Angle (Угол) равное -90 , что позволит развернуть карту в вертикальное положение (рис. 14).
рис. 14
  • Вернитесь на верхний уровень к многокомпонентной карте, для чего трижды щелкните на кнопке Go to Parent (Перейти к предку), расположенной на панели инструментов редактора материалов.

Итак, мы создали составной материал на основе трех градиентных карт и карты маски, которые полностью способны решить все наши задачи. Ниже, на рисунке 15, приведено дерево материала для текущего состояния редактирования. Если вы все сделали правильно, у вас должно быть точно такое же изображение в окне Material / Map Navigator (Путеводитель по материалам/картам текстур), вызываемом одноименной кнопкой , в противном случае повторите настройку карты.

рис. 15

Сейчас нам необходимо анимировать положение флага LevelMask в соответствии с уровнями кривой звукового контроллера. Можно было бы использовать один из контроллеров Audio Controller (Контроллер звука), присвоенных вспомогательным объектам для управления динамиками, но я хочу показать то, как можно создавать собственные параметры объекта и использовать их для решения задач анимации.

В одном из окон проекций выделите объект analyzer_wave. Выполните из главного меню команду Animation>Parameter Editor (Анимация>Редактор параметров), в результате откроется окно диалога Parameter Editor (Редактор параметров). В свитке Attribute (Свойства) выберите из раскрывающегося списка Add to Type (Добавить к типу) строку Selected Object's Material (Материал выделенного объекта). Это позволит добавить создаваемый параметр к материалу анализатора звука — объекту analyzer_wave. Далее впечатайте в поле Name (Имя) значимое имя параметра, например sound_wave (рис. 16).

рис. 16

После внесенных изменений щелкните на кнопке Add (Добавить) из свитка Attribute (Свойства) и новый параметр будет добавлен к выделенному объекту analyzer_wave. После создания параметра свиток и счетчик с его значением появится в редакторе материалов при выборе многокомпонентного материала, присвоенного объекту. Но нам необходимо присвоить этому значению контроллер звука ( Audio Controller ), а для этого снова обратимся к редактору кривых:

  • Выполните из главного меню команду Graph Editors>Track View - Curve Editor (Редакторы графов>Просмотр треков-Редактирование кривых).
  • В левой части редактора кривых перейдите по дереву иерархии к многокомпонентному материалу объекта analyzer_wave и выберите в самом низу строку с именем sound_wave (созданный нами атрибут) (рис. 17) и щелкните на ней правой кнопкой мыши, в результате чего откроется контекстное меню.
рис. 17
  • В контекстном меню выберите строку Assign Controller (Назначить контроллер), в результате чего откроется окно диалога Assign Float Controller (Назначить контроллер с плавающей точкой), в котором выберите из списка строку с именем контроллера AudioFloat (Звук, использующий значения с плавающей точкой). После выбора контроллера откроется следующее окно диалога — Sound Option (Свойства звука).
  • В окне диалога Sound Option (Свойства звука) щелкните на кнопке Choose Sound (Выбор звука) и укажите путь к звуковому файлу.
  • В группе Controller Range (Диапазон контроллера) увеличьте значение поля Max (Максимум) до 5 . Величина этого значения влияет на амплитуду звуковых колебаний и может отличаться в зависимости от выбранного звукового файла. Данное значение можно впоследствии скорректировать с таким расчетом, чтобы колебания уровней анализатора звука длительное время не превышали максимального значения.
  • В группе Channel (Канал) установите переключатель на Mix (Смешивание). Для строящегося анализатора звука мы возьмем один смешанный канал, хотя можно было бы использовать все три.
  • В группе Sample (Выборка) установите значение, равное 500 (рис. 18). Так как для имитации анализатора частотных характеристик звука мы используем кривую уровня звука, увеличение этого параметра позволит частично сгладить пороговые значения кривой.
  • рис. 18
  • Закройте окно диалога Audio Controller (Контроллер звука).

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

рис. 19

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

рис. 20

Сейчас, в окне Expression (Функция), можно записать формулу, которая будет управлять поведением флага LevelMask согласно звуковой волне (рис. 21). После всех выполненных операций щелкните на кнопке Evaluate (Оценить) для присвоения функции анимируемому параметру.

рис. 21

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

Если все сделано правильно, можно переходить к копированию первого материала вместо расположенных ниже девяти материалов многокомпонентного материала анализатора.

СОВЕТ

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

Задать отображение анимации карты улучшенного градиента в окне проекции (перейдя к этой карте, щелкните на кнопке Show Map in Viewport (Показать карту в окне проекции) , расположенной в редакторе материалов).

Выполнить эскиз анимации текстуры, используя кнопку редактора материалов Make P review (Создать эскиз) .

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

рис. 22

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

  1. Сместить время, задаваемое в поле счетчика Tick Offset (Смещение в тиках) для созданной нами переменной, расположенного в левой части окна.
  2. В записанной нами формуле изменить значение переменной wave .

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

рис. 23

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

Ниже, на рисунке 24 представлен кадр из анимации, выполненной в настоящем уроке.

рис. 24

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

СОВЕТ 1

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

рис. 25

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

СОВЕТ 2

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

Источник easy-render.nm.ru

Категория: уроки | Добавил: alteros (13.03.2008)
Просмотров: 847 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа
Поиск
Друзья сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Copyright MyCorp © 2017