
Огонь в 3d Max. Реализация эффекта - Часть третья
Теперь нам предстоит создать и настроить систему частиц, с помощью которой имитируется движение пламени.
В окне проекции Тор создайте систему потока частиц (Particle Flow) небольшого размера и назовите ее Flamethrower (Огнемет). Задайте для параметров раздела Quantity Multiplier (Количественный множитель) значение 100, откройте раскрывающуюся панель System Management (Управление системой) и установите параметр Viewport Integration Step (Шаг интеграции в окне проекции) в значение Half Frame (Половина кадра). При выделенной системе частиц щелкните на инструменте Align (Выравнивание) и выделите объект
Cylinder 01. Выставьте флажки в разделах Align Position (Выравнивание положения) и Align Orientation (Выравнивание ориентации) для направлений X, Yи Z, а затем в подразделах Current Object (Текущий объект) и Target Object (Целевой объект) установите переключатели Pivot Point (Опорная точка). Наконец привяжите систему частиц к объекту Cylinder 01.

Размер системы никаким образом не представляет количество частиц, эмитируемых из опорной точки значка системы частиц. Небольшой ее размер позволяет поддерживать окно проекции незагороможденным. Параметр Quantity Multiplier, установленный в значение 100, дает возможность ознакомиться с реальным количеством частиц в системе. Шаг же интеграции задан таким, чтобы мы могли при визуализации наблюдать на экране в точности тот эффект, который будем получать. Поскольку в системе используется относительно небольшое количество частиц (по сравнению с другими системами, рассматриваемыми раньше в этой книге), увеличение этих двух параметров не приведет к ощутимому повышению качества эффекта в окне проекции. Опорная точка объекта Cylinder 01 совмещается с сопловой частью водяного пистолета на фоновом изображении, а потому и система частиц привязывается к концу дула оружия. По мере перемещения и поворота пистолета на исходном (фоновом) изображении нам необходимо смещать соответствующим образом и систему частиц, связанную с цилиндром. Как и рассчитывалось, система частиц неотрывно связана с цилиндром, поэтому частицы генерируются каждый кадр и всегда «вылетают» из сопловой части пистолета. В противном случае система будет оставаться неподвижной даже при смещении пистолета в исходном материале, что совсем не предполагается эффектом.
Щелкните на кнопке Particle View (Представление частицы) в разворачивающейся панели Setup настроек системы частиц или нажмите <6>, чтобы открыть диалоговое окно Particle View. Переименуйте событие Event 01 на Flames (Пламя). Выделите оператор Birth (Рождение) и задайте для его параметра Emit Start (Начало эмиссии) значение 49, для параметра Emit Stop (Завершение эмиссии) — значение 155, а в качестве значения параметра Amount (Степень) укажите 500. Выделите оператор Position Icon (Значок положения) и задайте его параметру Location (Расположение) значение Pivot (Опорная точка). Перейдите к оператору Speed (Скорость) и установите параметр Speed в значение 500, а параметр Variation (Вариация) — в значение 200. Выставьте флажок Reverse (Обратить), а настройке Divergence (Разброс) задайте значение 3.

Только что вы настроили базовые параметры эффекта, которые весьма однозначны и не требуют детального описания. Поскольку Роб нажимает курок пистолета в кадре 49 (мы это можем отследить по появлению водной струи в кадре 50), то и начало эмиссии частиц нужно задать в соответствующий момент времени. Параметр Location оператора Position Icon установлен в значение Pivot, чтобы обеспечить генерацию частиц из правильной точки, соответствующей концу дула пистолета. В случае реального огнемета сопло имеет намного большие размеры, а в нашем случае круглый значок обеспечивает равномерное распределение частиц. Повышение значения настройки Speed приводит к увеличению скорости водной струи, используемой в качества основы эффекта. Параметр Variation изменяется для скрытия промежутков в системе частиц, иллюзии прохождения частиц между собой и эффекта подробности, возникающего благодаря анимации в системе частиц всего одного спрайта.
Выделите оператор Rotation (Поворот) и выберите в качестве ориентационной матрицы Random Horizontal (Произвольная горизонтальная). Включите оператор Shape Facing (Плоская фигура) в событие и замените им уже существующий оператор Shape (Форма). В этом новом операторе на панели параметров щелкните на кнопке в разделе Look At (Относительно) и выберите на сцене камеру. В разделе Size/Width (Размер/ Ширина) выставьте переключатель In World Space Units (В реальных единицах измерения), а затем введите в поле Units (Элементы) значение 300, а в поле Variation — значение 35, раскройте меню Orientation (Ориентация) и выберите команду Allow Spinning (Разрешить вращение). Добавьте оператор Spin (Вращение) и задайте в нем скорость вращения (Spin Rate), равную 100, и отклонение (Variation) 200.

Оператор Rotation поворачивает частицы сразу же после их генерации (в противном случае все они будут ориентированы относительно камеры одинаково). Оператор Spin отвечает за дальнейшее вращение частиц, которого нельзя добиться с помощью оператора Shape Facing, не нарушив сразу все оси вращения.
Добавьте в событие оператор Material Dynamic (Динамический материал) и включите в его ячейку экземпляр материала Flam Sprite. Добавьте оператор Force (Сила), включите в него искривление пространства Gravity 01 (доба вив в список Force Space Warps), а параметру Influence (Влияние) задайте значение 100. Добавьте в событие оператор Delete, выставьте переключатель By Particle Age (По возрасту частиц), параметру Life Span (Время жизни) задайте значение 38, а параметру Variation — значение 0. Добавьте в событие критерий Collision (Столкновения), после чего включите в сцену два отражателя, создав их в списке Deflectors.

Поскольку материал, назначенный частицам, изменяется во времени, необходимо для его управления применять оператор Material Dynamic. Параметр Influence оператора Force умышленно уменьшен, чтобы несколько «прижать» поток частиц к земле, имитируя поток топлива, которое полностью не выгорело, а потому все еще тяжелее, чем воздух. Исходная спрайтовая анимация длится 75 кадров, поэтому ее воспроизведение с удвоенной скоростью уменьшит длительность до 37,5 кадров. Таким образом, частицы по достижении возраста 38 кадров становятся прозрачными, а потому их можно смело удалить. Критерий Collision добавляется для перевода частиц в следующее событие после отражения от земли или стены.
Выделите событие, скопируйте его и вставьте экземпляр на холст, чтобы создать новое событие. Назовите это событие Flames Wall (Стена огня). Удалите в нем операторы Birth, Position Icon и Rotation. Сделайте операторы Speed и Force уникальными. Выделите новый оператор Speed и установите его параметры Speed и Variation в значение 100, а настройке Direction (Направление) задайте значение Random 3D (Произвольно в трехмерном пространстве). В новом операторе Force параметр Influence установите в значение -100. В начало иерархии события добавьте критерий Spawn, а затем задайте для параметра Spawnable , % (Порождаемость, %) значение 4. Свяжите выход критерия Collision события Flames со входом события Spawn. Перетащите на холст оператор Shape Mark, чтобы создать новое событие. Назовите это событие Scorch Mark (Обугливание), а затем свяжите выход критерия Spawn события Flames Wall со входом этого нового события.

Нам пришлось скопировать большое количество свойств, настроенных в первом событии, поскольку они изменяются или вообще удаляются при переходе в другое событие. Параметр Speed задан так, чтобы частицы (огонь) сильнее рассредоточивались при попадании в стену и устремлялись ввысь, благодаря инвертированному значению параметра Influence оператора Force. Критерий Spawn позволяет создавать дополнительные частицы, огибающие стену вверху. Для управления и отображения таких частиц применяется оператор Shape Mark.
