particlefx.md 18 KB


title: Компонент Particle FX

brief: Это руководство объясняет, как работает компонент Particle FX и как его редактировать для создания визуальных эффектов частиц.

Компонент Particle FX

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

ParticleFX Editor{srcset="images/particlefx/[email protected] 2x"}

Эффекты частиц состоят из нескольких эмиттеров и, опционально, модификаторов:

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

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

Создание эффекта

Выберите New... ▸ Particle FX из контекстного меню в браузере Assets. Присвойте имя новому файлу эффекта частиц. Редактор откроет файл в Scene Editor.

Представление Outline отобразит эмиттер по умолчанию. Выделите эмиттер, чтобы отобразить его свойства в панели Properties ниже.

Default particles{srcset="images/particlefx/[email protected] 2x"}

Чтобы добавить новый эмиттер к эффекту, кликните ПКМ в корне компонента в Outline и выберите Add Emitter ▸ [type] из контекстного меню. Следует отметить, что тип эмиттера можно изменить в его свойствах.

Чтобы добавить новый модификатор, кликните ПКМ в расположении модификатора в Outline (корень компонента или конкретный излучатель) и выберите Add Modifier, затем выберите тип модификатора.

Add modifier{srcset="images/particlefx/[email protected] 2x"}

Add modifier select{srcset="images/particlefx/[email protected] 2x"}

Модификатор в корне эффекта (не дочерний по отношению к эмиттеру), влияет на все частицы в этом эффекте.

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

Предпросмотр эффекта

  • Выберите View ▸ Play из меню для предпросмотра эффекта. Возможно, придется уменьшить масштаб камеры, чтобы увидеть эффект должным образом.
  • Выберите View ▸ Play снова чтобы приостановить эффект.
  • Выберите View ▸ Stop чтобы полностью остановить эффект. Повторное воспроизведение перезапускает его с изначального состояния.

При редактировании эмиттера или модификатора результат сразу же виден в редакторе, даже если эффект приостановлен:

Edit particles

Свойства эмиттера

Id : Идентификатор эмиттера (используется при установке рендер-констант для определенных эмиттеров).

Position/Rotation : Трансформации эмиттера относительно компонента Particle FX.

Play Mode : Управляет процессом воспроизведения эмиттера:

  • Once --- останавливает эмиттер по истечении его длительности.
  • Loop --- перезапускает эмиттер по истечении его длительности.

Size Mode : Управляет изменением размера мултикадровой анимации:

  • Auto --- сохраняет размер каждого кадра мултикадровой анимации в соответствии с исходным изображением.
  • Manual --- устанавливает размер частиц в соответствии со свойством размера.

Emission Space : Геометрическое пространство, в котором будут существовать порожденные частицы:

  • World --- перемещает частицы независимо от эмиттера.
  • Emitter --- перемещает частицы относительно эмиттера.

Duration : Количество секунд, в течение которых эмиттер должен испускать частицы.

Start Delay : Количество секунд, которое эмиттер должен подождать прежде, чем начнет испускать частицы.

Start Offset : Количество секунд, через которое должен произойти запуск эмиттера, или, другими словами, как долго эмиттер должен подготавливаться для эффекта.

Image : Файл изображения (Tile Source или Atlas), используемый для текстурирования и анимации частиц.

Animation : Анимация из файла свойства Image, используемая в частицах.

Material : Материал, используемый для шейдинга частиц.

Blend Mode : Доступные режимы наложения: Alpha, Add и Multiply.

Max Particle Count : Количество частиц, исходящих от данного эмиттера, способных существовать одновременно.

Emitter Type : Форма эмиттера

  • Circle --- испускает частицы из случайного места внутри окружности. Частицы направлены наружу от центра. Диаметр окружности определяется свойством Emitter Size X.

  • 2D Cone --- испускает частицы из случайного места внутри плоского конуса (треугольника). Частицы направлены из вершины конуса. Свойство Emitter Size X определяет ширину вершины, Y --- высоту.

  • Box --- испускает частицы из случайного места внутри бокса. Частицы направлены вверх вдоль локальной оси Y бокса. Свойства Emitter Size X, Y и Z определяют ширину, высоту и глубину соответственно. Для 2D прямоугольника размер Z должен быть равен нулю.

  • Sphere --- испускает частицы из случайного места внутри сферы. Частицы направлены наружу от центра. Диаметр сферы определяется свойством Emitter Size X.

  • Cone --- испускает частицы из случайного места внутри трехмерного конуса. Частицы направляются наружу через верхний диск конуса. Свойство Emitter Size X определяет диаметр верхнего диска, Y --- высоту конуса.

emitter types{srcset="images/particlefx/[email protected] 2x"}

Particle Orientation : Ориентация испускаемых частиц:

  • Default --- sets the orientation to unit orientation
  • Initial Direction --- сохраняет начальную ориентацию испускаемых частиц.
  • Movement Direction --- корректирует ориентацию частиц в зависимости от их скорости.

Inherit Velocity : Масштабное значение определяющее, какую часть скорости эмиттера должны унаследовать частицы. Это значение доступно, только если Space установлено в World. Скорость эмиттера рассчитывается каждый кадр.

Stretch With Velocity : Если опция отмечена, будет выполняться масштабирование любых растяжений частиц в направлении движения.

Режимы наложения

:blend-modes

Программируемые свойства эмиттера

Эти свойства имеют два поля: значение и разброс. Разброс --- это вариация, которая применяется случайным образом для каждой порожденной частицы. Например, если значение равно 50, а разброс равен 3, каждая порожденная частица получит значение между 47 и 53 (50 +/- 3).

Property{srcset="images/particlefx/[email protected] 2x"}

Если активировать ключ-кнопку, значение свойства будет контролироваться посредством кривой в течение длительности действия эмиттера. Чтобы сбросить запрограммированное свойство, кликните ключ-кнопку снова.

Property keyed{srcset="images/particlefx/[email protected] 2x"}

Редактор Curve Editor (доступен среди вкладок в нижнем представлении) используется для изменения кривой. Запрограммированные свойства нельзя редактировать в представлении Properties, только в Curve Editor. Кликните и перетащите поинты и тангенты для изменения формы кривой. Двойным кликом на кривой добавляйте управляющие поинты. Чтобы удалить управляющий поинт, сделайте двойной клик по нему.

ParticleFX Curve Editor{srcset="images/particlefx/[email protected] 2x"}

Чтобы автоматически масштабировать Curve Editor для отображения всех кривых, нажмите F.

Следующие свойства могут быть запрограммированы в течение времени воспроизведения эмиттера:

Spawn Rate : Количество частиц, испускаемых в секунду.

Emitter Size X/Y/Z : Размеры формы эмиттера, см. выше Emitter Type.

Particle Life Time : Время жизни каждой порожденной частицы в секундах.

Initial Speed : Начальная скорость каждой порожденной частицы.

Initial Size : Начальный размер каждой порожденной частицы. Если Size Mode установлено в Automatic, а в качестве источника изображения используется мултикадровая анимация, это свойство игнорируется.

Initial Red/Green/Blue/Alpha : Начальные значения оттенка компонентов цвета для частиц.

Initial Rotation : Начальные значения вращения (в градусах) для частиц.

Initial Stretch X/Y : Начальные значения растяжения (в юнитах) для частиц.

Initial Angular Velocity : Начальная угловая скорость (в градусах/секунду) каждой порожденной частицы.

Следующие свойства могут быть запрограммированы в течение времени жизни частиц:

Life Scale : Значение масштаба в течение жизни каждой частицы.

Life Red/Green/Blue/Alpha : Значение оттенка компонента цвета в течение жизни каждой частицы.

Life Rotation : Значение вращения (в градусах) в течение жизни каждой частицы.

Life Stretch X/Y : Величина растяжения (в юнитах) в течение жизни каждой частицы.

Life Angular Velocity : Угловая скорость (в градусах/секунду) в течение жизни каждой частицы.

Модификаторы

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

Acceleration : Ускоряет в общем направлении.

Drag : Уменьшает ускорение частиц пропорционально их скорости.

Radial : Притягивает или отталкивает частицы к/от позиции.

Vortex : Воздействует на частицы в круговом или спиралевидном направлении вокруг своей позиции.

modifiers{srcset="images/particlefx/[email protected] 2x"}

Свойства модификатора

Position/Rotation : Трансформация модификатора относительно своего родителя.

Magnitude : Степень влияния модификатора на частицы.

Max Distance : Максимальное расстояние, в пределах которого частицы вообще подвержены влиянию этого модификатора. Используется только для Radial и Vortex.

Управление эффектом частиц

Чтобы запустить и остановить эффект частиц из скрипта:

-- запустить эффект частиц в текущем игровом объекте
particlefx.play("#particles")

-- остановить эффект частиц в текущем игровом объекте
particlefx.stop("#particles")

::: sidenote Эффект частиц будет продолжать испускать частицы, даже если игровой объект, к которому принадлежал этот компонент эффекта частиц, будет удален. ::: За подробностями обращайтесь к справочнику по Particle FX.

Константы материала

Материал эффекта частиц по умолчанию имеет следующие константы, которые можно изменить с помощью particlefx.set_constant() и восстановить с помощью particlefx.reset_constant() (за подробностями обращайтесь к руководству по материалам):

tint : Цветовой оттенок эффекта частиц (vector4). Для представления оттенка с компонентами x, y, z и w, соответствующими красному, зеленому, синему и альфа оттенкам, используется тип vector4. За примером обращайтесь к справочнику по API.

Конфигурация проекта

В файле game.project имеются несколько настроек проекта, относящихся к частицам.