Трехмерная графика Maya для продвинутых

         

Атака частиц

Как создать спиральную туманность, атакующую мою камеру (а затем исчезающую в космосе)?

Тема:

Динамика.

Используемые техники и инструменты:

Emitter (Источник), Expressions (Выражения), Particle Goal (Цель Частиц), Goal Weighting (Целевой Вес), Particle Cloud (Тип Частиц Облако).

Движение частиц определяется силовыми полями, такими, как, например, гравитация и турбулентность. Именно в этом сочетании они чаще всего используются. Частицы также направляются целями - ими может быть что угодно, от сферы до кривой со свойствами мягкого тела или камеры. В этом уроке мы используем Particle Goal (Цель Частиц), для того чтобы приманить вихревой поток облаков к нашей камере. Мы немного драматизируем сцену: спиральная туманность медленно найдет нашу камеру, устремится к ней, закружится вокруг и, наконец, исчезнет.


Создайте пушку для частиц. Нажмите F5, выберите Particles / Create Emitter (Частицы / Создать Источник) (рис. 19.1).

Рис. 19.1. Частицы, испускаемые из начала координат во всех направлениях

    В окне Timeline Preferences (Настройки временной шкалы) установите Playback Speed (Скорость Воспроизведения) на значение Play every Frame (Воспроизводить Каждый Кадр). Запустите симуляцию.

Параметр Play every Frame (Воспроизводить Каждый Кадр) очень важен: мы не хотим пропусков в шагах симуляции при работе модуля динамики MAYA.

Затем мы создадим локатор, движущийся вокруг камеры при ее движении. Локаторы - это объекты, которые не визуализируются, как вы, наверное, помните из главы 8.

Идите в начало анимации к сцене без частиц. Создайте новую камеру и локатор. Разместите локатор над камерой. В режиме Insert mode (Режим редактирования опорной точки) передвиньте опорную точку локатора к центру камеры, который совпадает с началом координат сцены (рис. 19.2).

Рис. 19.2. Передвиньте опорную точку локатора к центру камеры. Вы можете привязать его к сетке в центре координат сцены

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

В окне Channel Box (Окно Каналов) нажмите на Rotate Z (Вращение по оси Z). Используя контекстное меню правой кнопки мышки, откройте Expression Editor (Редактор Выражений). Используя среднюю кнопку мышки, скопируйте строку locatorl .rotateZ из поля Selected Obj and Attr и вставьте ее в пустое поле снизу. Завершите выражение вводом = frame (см. рис. 19.3). Активизируйте выражение, нажав Create (Создать). Сверните окно Expression Editor (Редактор Выражений) и воспроизведите анимацию.

Рис. 19.3. Зависимое от времени уравнение заставит локатор медленно кружить вокруг начала координат сцены

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

    Откройте снова окно Expression Editor (Редактор Выражений) и отредактируйте существующее выражение, умножив переменную frame на 10. Нажмите Edit (Редактирование) для сохранения изменений.

Выражение locatorl .rotateZ =10*frame увеличивает скорость вращения в 10 раз. Если вы теперь передвинете камеру, локатор будет продолжать вращаться вокруг начала координат сцены, а не вокруг центра камеры. Мы должны сделать его дочерним объектом по отношению к камере.

    Выделите локатор, затем камеру и нажмите клавишу Р.

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

Выделите частицы, вслед за ними - локатор. Привлеките частицы к локатору. Для этого выберите Particles / Goal (Частицы / Цель) (см. рис. 19.4). Просмотрите анимацию в окне Perspective View (Вид Перспективы) и в окне Camera View (Вид сквозь Камеру).

Через камеру кажется, что поток частиц атакует нас, а затем кружит вокруг. Окно Perspective View (Вид Перспективы) показывает, что на самом деле частицы залетают далеко за камеру. Причиной такого перелета являются весовые коэффициенты частиц по отношению к их цели. Сейчас это все имеет среднюю величину, но мы это исправим.

Рис. 19.4. Локатор будет служить целью для частиц

Выделите частицы (не источник) и в окне Channel Box (Окно Каналов) найдите атрибут Goal Weight [0] (Целевой Вес [0]). Идите в кадр 100 анимации. Уменьшите значение атрибута Goal Weight [0] (Целевой Вес [0]) до 0 (рис. 19.5).

Рис. 19.5. Атрибуты частиц в окне Channel Box (Окно Каналов). Атрибут Goal Weight [0] (Целевой Вес [0]) определяет, насколько точно частицы следуют по пути движения мишени

    Используя контекстное меню, установите ключевой кадр для этого значения. Идите в кадр 300. Увеличьте значение Goal Weight [0] (Целевой Вес [0]) до 0,2 и установите еще один ключ.

Теперь частицы разбрызгиваются во всех направлениях на протяжении 100 кадров, затем они устремляются к локатору и кружат вокруг камеры (рис. 19.6 - 19.10). Теперь сквозь объектив камеры анимация выглядит гораздо более драматично.

Рис. 19.6. Частицы вылетают из источника во всех направлениях...

Рис. 19.7. ...пока их не привлечет камера...

Рис. 19.8. ...они в форме ядра устремляются к локатору, который непрерывно вращается вокруг камеры...

Рис. 19.9. ... они ослепляют камеру...

Рис. 19.10. ...а затем залетают за свою мишень и возвращаются

Создайте анимацию движения камеры между кадрами 50 и 400. Просмотрите анимацию через камеру.

Чтобы еще более драматизировать анимацию, в окне Graph Editor (Редактор Анимационных Кривых) задайте касательным анимационной кривой атрибута Goal Weight [0] (Целевой Вес [0]) тип flat (горизонтальные). Теперь смена направления движения будет мягче начинаться и заканчиваться. Если значение атрибута Goal Weight [0] (Целевой Вес [0]) ниже 0,1, его действие незаметно, поэтому, может быть, вам стоит установить еще один ключевой кадр для более быстрого перехода с 0 до установленного значения. Вы можете вставить ключ в окне Graph Editor (Редактор Анимационных Кривых).

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

В Окне Attribute Editor (Редактор Атрибутов) для частиц откройте секцию Render Attributes (Атрибуты Рендеринга). Измените Particle Render Type (Тип Рендеринга Частиц) с Points (Точка) на Cloud (s\w) (Облако) (рис. 19.11).

Рис. 19.11. Тип частиц изменен с Points (Точка) на Cloud (s\w) (Облако)

    Визуализируйте вид сквозь камеру (рис. 19.12).

Рис. 19.12. Вид спиральной туманности, состоящей из облака сфер, сквозь объектив камеры

Если в результате рендеринга вы видите просто голубой экран, скорее всего, у вас слишком много частиц большого размера, которые расположены слишком близко к камере. Частицы нельзя масштабировать по отдельности, вам придется работать с ними как с одним целым. И прежде чем вы начнете этим заниматься, попробуйте увеличить их прозрачность. Созданный шейдер particleCloud имеет по умолчанию значение прозрачности 0,5 (см. в главе 17 о шейдинге облака частиц при извержении вулкана).

Щелкните правой кнопкой мыши по частицам и выберите Materials / Material Attributes (Материалы / Атрибуты Материала). Так вы откроете Attribute Editor (Редактор Атрибутов) для шейдера частиц. В окне Attribute Editor (Редактор Атрибутов) нажмите на вкладку particleCloud 1 (рис. 19.13). Поменяйте его цвет и прозрачность.

Рис. 19.13. Используя контекстное меню, откройте Attribute Editor (Редактор Атрибутов) для шейдера particleCloud. Поменяйте его цвет с голубого на желтый и увеличьте прозрачность. Теперь объект в центре сцены становится видимым сквозь густую желтую спиральную туманность

    Создайте объект-ссылку (только для расположения текстуры) в центре координат сцены. Визуализируйте вид сквозь камеру.

Вы также можете наложить текстуру на цвет, прозрачность и другие атрибуты материала с помощью ramp-текстур. Incadescence (Самосветимость) - это важный атрибут шейдинга частиц. Он заставляет их светиться. Как только вас устроит вид частиц, вы можете отрегулировать движение облака частиц. Как насчет небольшой (анимированной) турбулентности?

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

Создайте второй локатор, который будет служить конечной целью для частиц. Поместите локатор в точку, которую будет видно из камеры в конце анимации, но достаточно далеко от нее. Выделите частицы, затем новый локатор и создайте вторую цель. Выберите Particles / Goal (Частицы / Цель).

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

Сейчас частицы больше не приближаются к камере. Основной параметр, который изменил их поведение, - это вес новой цели, который вы можете увидеть в окне Channel Box (Окно Каналов): Goal Weight [1] (Целевой Вес [1]). Этот атрибут определяет, насколько точно частицы следуют за новым локатором. Поскольку сейчас это значение установлено на 0,5, частицы, находясь под его влиянием, уносятся от камеры к средней точке между первым и вторым локатором.

Идите в кадр 400. Выделите частицы. Установите Goal Weight [1] (Целевой Вес [1]) второго локатора на 0 и установите здесь ключевой кадр. Идите в кадр 500. Задайте еще один ключ для Goal Weight [1] (Целевой Вес [1]) со значением 0,5.

Теперь через 10 с частицы теряют интерес к камере и устремляются ко второму локатору - невидимой далекой цели. Наш полет может спокойно продолжаться.

А теперь кое-что новенькое. Приходилось ли вам искать Instant Maya через клавишу F1?