Документация/Статьи/Обзор редактора систем частиц

From NeoAxis 3D Engine Wiki

Jump to: navigation, search
Перейти на уровень выше

Contents

Описание

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

Редактор систем частиц

При работе с системами частиц полезно знать следующие термины:

  • Particle (частица) — отдельная частица в системе.
  • Emitter (эмиттер, излучатель) — генератор частиц.
  • Affector (аффектор) позволяет управлять параметрами частиц в течении времени, такими как цвет, вращение, изменение размера и т.д.
  • Billboard (билборд) — плоский объект, всё время обращенный к камере.

Примеры готовых эффектов хранятся в папке Data\Effects. Там можно найти примеры огня, дыма, взрыва и других эффектов.

Урок — Создание системы частиц

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

Создание нового файла системы частиц

Первым делом полезно создать директорию для нашего эффекта. Для того, чтобы создать папку, нажмем правой кнопкой мыши на папке Effects и в появившемся меню выберем подменю New, а в нем — пункт Folder.

ParticleSystemEditor 003.jpg

Укажем имя директории (например, BlueFireParticle). После того как имя указано, нажмем правой кнопкой мыши по новой директории и в контекстном меню снова выберем подменю New, а в нем — пункт Particle System.

ParticleSystemEditor 004.jpg

В появившемся окне введем имя нашей частицы. Например, BlueFireParticle. После этого нажмем кнопку Next.

ParticleSystemEditor 005.jpg

Файл с частицей создан. Теперь можно приступить к его редактированию.

Настройка материала

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

Для нашего случая будем использовать готовый материал, который находится в папке Data\Effects\FireParticle. Достаточно скопировать файлы FireParticle.highMaterial и fire.png в нашу папку и переименовать. Для этого выделим их, кликнем правой кнопкой мыши по ним и выберем пункт контекстного меню Copy (копировать).

ParticleSystemEditor 006.jpg

Затем кликнем правой кнопкой мыши по папке BlueFireParticle с нашей системой частиц и в контекстном меню выберем пункт Paste (вставить).

ParticleSystemEditor 007.jpg

Приступим к настройке системы частиц. Для перехода в режим редактирования, щелкнем дважды левой кнопкой мыши по файлу BlueFireParticle.particle.

ParticleSystemEditor 008.jpg

Первым делом назначим системе материал. Для этого выберем поле MaterialName и нажмем на кнопку "...".

ParticleSystemEditor 009.jpg

В появившемся окне выберем FireParticle.highMaterial из директории с нашим эффектом (Data\Effects\BlueFireParticle).

ParticleSystemEditor 010.jpg

Материал назначен. Теперь нужно настроить эмиттер и аффектор.

Настройка эмиттера

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

Чтобы настроить эмиттер, выберем параметр Emitters в свойствах системы частиц и нажмем на кнопку "...".

ParticleSystemEditor 011.jpg

В появившемся окне с помощью кнопки Add добавим PointEmitter.

ParticleSystemEditor 012.jpg

Теперь укажем параметры эмиттера:

  • Angle выставим в 30 (угол рассеивания частиц),
  • в свойстве Color опустим все ползунки вниз и получим в результате все 0 вместо 255 (начальный цвет частиц),
  • Direction выставим в "0 0 1" (начальное направление полета частиц),
  • ParticleVelocity выставим в "1 2" (начальная скорость в виде интервала),
  • TimeToLive выставим в "1 1" (время жизни в виде интервала),
  • остальные параметры оставим со значениями по умолчанию.

и нажмем кнопку OK.

ParticleSystemEditor 013.jpg

На этом настройка эмиттера, излучающего частицы, закончена.

Настройка аффекторов

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

Чтобы оживить наши частицы, создадим три аффектора:

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

Для начала редактирования аффекторов выберем параметр Affectors и нажмем кнопку "...".

ParticleSystemEditor 014.jpg

Сначала настроим аффектор для изменения цвета системы. У огня есть несколько особенностей: снизу он яркий и полупрозрачный, далее идет зона плотного свечения и в конце частицы становятся невидимыми и исчезают. Чтобы добиться такого эффекта удобно использовать аффектор ColourInterpolaterAffector. Он позволяет задать несколько переходных по цвету и времени жизни зон.

В окне настройки аффекторов с помощью кнопки Add добавим новый эффектор ColourInterpolaterAffector.

ParticleSystemEditor 015.jpg

Далее настроим его следующим образом:

  • Item0Color выставим в "15 111 205 0".
  • Item0Time выставим в 0.
  • Item1Color выставим в "15 111 205 255".
  • Item1Time выставим в 0.2.
  • Item2Color выставим в "0 0 255 0".
  • Item2Time выставим в 1,
  • остальные параметры оставим со значениями по умолчанию.
ParticleSystemEditor 016.jpg

Мы настроили изменение цвета части во времени. Приступим к изменению размера частиц. Для этого добавим ScaleAffector с помощью кнопки Add.

ParticleSystemEditor 017.jpg

Выставим значение его единственного параметра Adjust в 0.5.

ParticleSystemEditor 018.jpg

Наконец, последнее влияние на частицы, которое необходимо настроить — это вращение частиц. Аффектор, ответственный за вращение носит имя RotationAffector. Добавим его через кнопку Add.

ParticleSystemEditor 019.jpg

Настроим аффектор следующим образом:

  • Rotation выставим в 0 359 градусов.
  • RotationSpeed в "-30 30".

Все влияния на частицы мы настроили и теперь можем нажать кнопку OK.

ParticleSystemEditor 020.jpg

На этом настройка аффекторов завершена.

Завершение настройки системы

Теперь нам осталось отредактировать размер частиц. Изменим значение параметра Size у системы на значение "2 3".

ParticleSystemEditor 020.jpg

Не забудем сохранить нашу систему частиц, выбрав пункт Save в меню File редактора. На этом создание новой системы частиц завершено!

Система частиц для имитации голубого пламени

Параметры систем частиц

Название Описание
General
Affectors Список аффекторов.
MaterialName Имя материала.
Emitters Список эмиттеров.
Renderer Настройки рендерера (отображение частиц). Подробное описание.
Size Начальный размер частиц.
Quota
AutomaticQuota Включает/выключает автоматический подбор наиболее оптимального максимального количества частиц (см. свойство Quota).
Quota Максимальное одновременное число активных частиц системы.
Special
CullIndividually Включает/выключает режим определения видимости отдельных частиц.
LocalSpace Включает/выключает сохранение частицами положения относительно узла, к которому присоединена система.
Sorted Включает/выключает сортировку частиц относительно камеры.

Настройки рендерера

Название Описание
AccurateFacing Включает/выключает использование модели с точными гранями, основанной на векторе от каждого билборда до камеры, в противовес оптимизированной модели, использующей лишь направление камеры.
BillboardOrigin Координаты, выступающие в роли начальной точки для всех билбордов системы.
BillboardRotation Тип вращения билборда.
BillboardType Тип билборда частицы.
CommonDirection Вектор, по которому направлен билборд частицы.
CommonUpVector Вектор, задающий направление "вверх" билборда частицы.
PointRendering Включает/выключает точечную отрисовку.

Эмиттеры

Эмиттеры — это генераторы частиц или места появления частиц. Существует несколько типов эмиттеров, которые различаются по форме.

Типы эмиттеров:

  • PointEmitter (точечный эмиттер),
  • BoxEmitter (параллелепипедный эмиттер),
  • CylinderEmitter (цилиндрический эмиттер),
  • RingEmitter (кольцевой эмиттер),
  • EllipsoidEmitter (эллипсоидный эмиттер),
  • HollowEllipsoidEmitter (полый эллипсоидный эмиттер).

У всех эмиттеров есть общие свойства:

Название Описание
Angle Максимальный угол разброса частиц в градусах, на который вылетающие частицы могут отклоняться от направления эмиттера. Значение 180 позволяет излучать частицы в любом направлении, в то время как 0 означает, что частицы всегда будут излучаться точно в одном направлении, указанном в свойстве Direction.
Color Начальный цвет частиц.
Direction Начальное направление частиц.
Duration Интервал работы эмиттера в секундах. При значении "0 0" эмиттер работает постоянно.
EmissionRate Количество излучаемых частиц в секунду. По умолчанию генерируется 10 частиц в секунду.
ParticleVelocity Минимальная и максимальная скорости частиц. Частицы будут иметь произвольную начальную скорость в заданном диапазоне.
Position Координаты эмиттера относительно центра.
RepeatDelay Определяет количество секунд ожидания перед следующим излучением частиц, если система завершила свою работу и все частицы закончились. Настраивается минимальное и максимальное время, через которое система будет перезапущена. Время будет выбираться случайным образом в заданных пределах.
TimeToLive Время жизни для отдельных частиц. Частицы живут произвольное время в указанном диапазоне.

У некоторых типов эмиттеров есть особые свойства для задания размеров и формы:

Название Описание
InnerSize Размер внутренней части эмиттера в метрах. Задается с помощью трех координат.
Size Размер эмиттера в метрах. Задается с помощью трех координат.

Аффекторы

Аффекторы позволяют управлять параметрами частиц в течение времени, такими как цвет, вращение, изменение размера и т.д.

Типы аффекторов:

  • LinearForce (линейная сила),
  • ColourFader (цветовой ползунок),
  • ColourFader2 (цветовой ползунок),
  • ColourInterpolator (преобразователь цвета),
  • Scaler (преобразователь масштаба),
  • Rotator (преобразователь поворота),
  • DirectionRandomiser (аффектор случайного направления),
  • DeflectorPlane (отражатель частиц),

Аффектор LinearForce

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

Название Описание
ForceApplication Способ, которым вектор силы применяется к частице. При значении Add к обычному импульсу движения частиц добавляется действие вектора силы. Это может привести к безграничному ускорению. При значении Average происходит вычисление средней скорости частицы в зависимости от вектора силы и текущего движения частицы. Это не приводит к стабилизации скорости частиц. Скорость, с которой частицы перемещаются не является линейной.
ForceVector Вектор силы, применяемый к системе частиц. Задается с помощью трех координат.

Аффектор ColourFader

Данный аффектор изменяет цвет частиц в течение времени.

Название Описание
Adjust Корректировка каждой компоненты цвета (RGBA), производимая в течение секунды. Эти значения будут добавлены к каждой частице каждый кадр пропорционально, чтобы обеспечить сглаженное изменение цвета.

Аффектор ColourFader2

Данный аффектор изменяет цвет частиц в течение времени. Разница от ColourFader в том, что вместо одного цвета он позволяет настраивать сразу два.

Название Описание
Adjust1 Корректировка каждой компоненты цвета (RGBA) во время жизни частицы, производимая в течение секунды. Эти значения будут добавлены к каждой частице каждый кадр пропорционально, чтобы обеспечить сглаженное изменение цвета. Применяется до того, как время жизни превысило значение параметра StateChange.
Adjust2 Корректировка каждой компоненты цвета (RGBA), производимая в течение секунды. Эти значения будут добавлены к каждой частице каждый кадр пропорционально, чтобы обеспечить сглаженное изменение цвета. Применяется после того, как время жизни превысило значение параметра StateChange.
StateChange Время с начала жизни частицы, после которого в действие ступает параметр корректировки цвета Adjust2. До этого времени используется Adjust1.

Аффектор ColourInterpolatоr

Как и в ColourFader и ColourFader2 данный аффектор изменяет цвет частиц, но у него имеется 6 этапов. Каждый этап запускается в указанное время и ему присвоены свои цвета. Одна и та же частица окрашивается в разные цвета в заданные промежутки времени.

У аффектора есть 12 параметров, которые представляют собой 6 пар из двух следующих свойств:

Название Описание
ItemColour Цвет частицы.
ItemTime Время, начиная с которого действует текущий этап.

Аффектор Scaler

Данный аффектор меняет размер частиц в течение времени. Может либо увеличивать их, либо уменьшать.

Название Описание
Adjust Коэффициент изменения размера частицы в секунду.

Аффектор Rotator

Данный аффектор управляет вращением частиц в течение времени. Это достигается путем поворота текстуры.

Название Описание
Rotation Минимальный и максимальный угол поворота частиц. Частицы будут закручиваться в указанном диапазоне.
RotationSpeed Минимальная и максимальная скоростью поворота частиц. Частицы будут закручиваться со скоростью из указанного диапазона.

Аффектор DirectionRandomiser

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

Название Описание
KeepVelocity Включает/выключает изменение скорости частиц. Если выбрано значение True, то скорость будет постоянной.
Randomness Коэффициент случайного отклонения. Частица случайным образом отклоняется в любом их трех направлений.
Scope Радиус действия. Частицы случайно отклоняются в пределах заданного объема.

Аффектор DeflectorPlane

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

Название Описание
Bounce Определяет силу отражения частиц, c которой будут отражаться частицы. К примеру, 0.5 указывает на силу отражения, равную 50% от исходной.
PlaneNormal Нормаль плоскости отражения.
PlanePoint Точка на плоскости отражения.

Настройка редактора

Для настройки редактора нужно нажать кнопку Options в главной панели или выбрать одноименный пункт в меню Tools. В появившемся окне выбрать вкладку Particle System.

Настройки редактора систем частиц
Название Описание
General
Background Color Цвет фона в редакторе.
Show Axes Включить/выключить отображение осей координат.
Show Grid Включить/выключить отображение сетки.
Sky Box Скайбокс (небо), который будет отображаться в качестве фона при просмотре редактируемых объектов.