Это
всего лишь краткий обзор особенностей системы частиц (эмиттеров) «движка» Undying. Лучший способ узнать, что он может делать, - это «испачкать
руки» и начать играться с различными параметрами, которые можно выставить в
редакторе UndEd.
Имейте
в виду, что любой эмиттер частиц будет работать, если вы его добавите из набора
акторов и настроите (или оставите настройки по
умолчанию для ParticleFX). Копирование уже существующих на карте эмиттеров недопустимо. Они не будут работать!
Base, Max,
Rand:
Base: Это нормальные значения системы. При использовании
параметров Max базовые параметры будут
выступать в качестве базовых или минимальных параметров.
(см. ниже Max)
Max: При
установке параметров Base и Max, вы будете иметь систему частиц, меняющуюся между двумя
отдельными настройками для параметра Strength (устойчивость)
системы.
Так что думайте обо всех основных
параметрах Base и Max, как о двух отдельных
системах. Представьте, что базовые параметры заданы таким образом, что
система выглядит как тлеющий огонь, из которого поднимается только дым. Теперь
представьте, что параметры Max настроены так, чтобы
выглядеть как бушующий огонь. Теперь, если вы установите Strength системы на 0.0, она будет выглядеть как дым, а если
вы установите ее на 1.0, она будет выглядеть как бушующий огонь. Если затем
написать функцию-скрипт, которая вычисляла бы
устойчивость системы по другим внешним факторам, то внешний вид системы можно
было бы контролировать другими способами. Вы можете написать триггер, который
регулирует устойчивость системы в зависимости от здоровья игрока или расстояния
игрока до системы частиц и т.д.
ParticleFX и AeonsParticleFX
ParticleFX -
это система частиц по умолчанию для Undying, без
излишеств и произвольных настроек.
Если вы хотите иметь возможность управлять
испусканием частиц, вам нужно использовать AeonsParticleFX или любой класс, производный от AeonsParticleFX.
Настройка
активации актора AeonsParticleFX триггером
NormalParticles – тоже, что и ParticleFX (по-умолчанию).
TriggerControl – триггер, «прикрепленный» к системе частиц, должен
быть активен, чтобы система испускала частицы.
TriggerToggles -
триггер, «прикрепленный» к системе, включает или выключает систему частиц
каждый раз, когда активируется триггер.
TriggerTurnsOff - триггер, «прикрепленный» к
системе частиц, выключит систему только если она включена.
TriggerTurnsOn - триггер, «прикрепленный» к
системе, включит систему только если она выключена.
ПРИМЕЧАНИЕ: «Прикрепить» триггер к актору
AeonsParticleFX
очень просто. Используйте параметр Event актора Trigger и впишите то же значение в параметр Tag актора AeonsParticleFX.
Редактирование
в реальном времени
Вы
можете редактировать систему частиц в режиме реального времени в UndEd и сразу видеть результаты изменений!
Чтобы
попробовать, просто откройте любую карту и поместите объект Particle FX. ParticleFX находится среди классов видимых (Visible) акторов.
Теперь
нажмите на значок автоматического обновления в 3D-представлении редактора (это маленький значок
джойстика в левом верхнем углу)
Теперь
вы должны увидеть желтые и оранжевые частицы.
Теперь,
кликните правой кнопкой «мыши» на размещённом объекте Particle FX и
выберите Свойства (Properties).
Откройте
категорию PS_Appearance. Затем откройте начальную категорию цвета.
Нажмите
на оранжевую цветную полосу (базовый параметр), затем нажмите на маленькую
кнопку с эллипсами (...).
Выберите
другой начальный цвет и нажмите OK.
AngularSpreadWidth / AngularSpreadHeight
AngularSpreadWidth и AngularSpreadHeight задаются
в градусах. Допустимый диапазон
от 0 до 180 градусов.
Примеры:
Установка
обоих параметров в 0 градусов приведёт к испусканию узкой линии частиц в
направлении, куда ориентирована система.
Установка
обоих параметров в 180 приведёт к сферической эмиссии.
bPrime
Если
этот параметр включен, то при запуске карты система сразу начнёт испускать
частицы, чтобы они выглядели естественно.
Это
важно для систем с медленно движущимися частицами, и где было бы очевидно, что
система не работала до возникновения игрока.
Decay
В
настоящее время не реализовано.
Distribution
DIST_Uniform
Частицы распределяются только тогда, когда система
частиц движется от своего текущего местоположения. Также, ParticlesPerSec означает
число единиц на 1 частицу, когда используется распределение DIST_Uniform. Так, если
ParticlesPerSec=32, то новая
частица будет испущена каждый раз, как ParticleSystem сдвинется
на 32 единицы.
ПРИМЕЧАНИЕ:
Это отлично подходит для визуальных эффектов наподобие Motion Blur.
DIST_Random
Типичная
случайная эмиссия.
ParticlesAlive
Максимальное
число частиц, одновременно разрешённое. Если будет испущено большее число
частиц, более «старые» частицы будут уничтожены.
ParticlesMax
Максимальное число частиц, которое система может
испустить. Т.е. система имеет конечное число частиц. После того, как все
частицы будут испущены и больше не будут «живы», система уничтожит себя.
ParticlesPerSec
Число частиц, испускаемое каждую секунду. За
исключением случая DIST_Uniform, где это значение интерпретируется как количество
единиц между выбросами частиц (см.выше).
Period
В
настоящее время не реализовано.
SourceDepth / SourceHeight / SourceWidth
Используя эти три параметра, вы можете эмулировать
испускание примитивов в одну линию, в форме прямоугольного листа и т.д. На
диаграмме, ось X представляет направление
системы и является глубиной (Depth). Ось Y -
это ширина, а ось Z - Высота (Height).
Эти значения выражаются в условных единицах редактора с точностью до 6-го знака
после разделителя.
Примечание:
Это расстояние от начала системы (Origin)
до края, поэтому в действительности истинные размеры вдвое превышают введённые
вами значения.
Примеры:
Эмиттер в форме листа (Sheet) может использовать такие параметры: SourceWidth=500, SourceHeight=500, SourceDepth=0
Эмиттер в форме линии (Line) может использовать такие параметры: SourceWidth=500, SourceHeight=5, SourceDepth=5
Attraction
Определяет насколько частица
тяготеет к центру системы.
Значения находятся в «Мировом пространстве», поэтому не имеет значения, в каком
направлении ориентирована система.
bSystemRelative
Все
движения частиц будут относительны расположения системы.
bUpdate
Будет ли система модифицировать Цвет (Color), Alpha
и Размер (Size) со временем. Этот параметр почти всегда должно быть
включен. Скриптовые частицы обычно являются исключением.
bVelocityRelative
Если параметр включен, тогда скорости частиц будут
относительны скорости системы. Таким образом, если система имеет скорость 500
единиц в секунду, и она испускает частицу со скоростью 0 единиц в секунду,
частица все равно будет иметь скорость 500 единиц в секунду.
bWindPerParticle
Если это значение равно True, то система будет выполнять отдельные вычисления
направления ветра для каждой частицы. Это очень грузит процессор и должно
использоваться экономно.
Chaos
Насколько хаотично будут меняться скорости частиц.
ChaosDelay
Задержка в секундах при включенном параметре Chaos. Чем меньше значение, тем более случайными будут
казаться частицы. Типичные
значения 0.25 - 2.00 секунды. Экспериментируйте, чтобы получить
различные эффекты.
Damping
Фактор,
имитирующий сопротивление воздуха. Это приведет к замедлению скорости частиц с
течением времени.
Elasticity
Какая часть скорости частицы остаётся после удара.
Типичные значения 0.0 - 0.5. Большинство частиц должны иметь упругость, равную
0,0, так как это означает, что они ни с чем не сталкиваются. Установка
упругости на что-либо кроме 0.0 очень грузит процессор, так как расчёты должны
быть сделаны для частицы в каждом кадре, чтобы увидеть, если она столкнулась с
чем-либо.
Gravity
Вектор,
который может имитировать другую гравитационную силу помимо гравитации уровня.
Как ветер, дующий со стороны, например. Располагается
в «Мировых координатах», поэтому не имеет значения, в каком направлении
находится система. Это скорость в единицах в секунду.
GravityModifier
Насколько
гравитация в текущей зоне влияет на частицы. Симулирует массу частицы. Типичные
значения 0.0 - 1.0.
Lifetime
Сколько
времени частица «проживёт» перед исчезновением.
Speed
Скорость
частицы при испускании. Измеряется в игровых единицах в секунду.
WindModifier
Наподобие GravityModifier, но относится к ветру в зоне и его влиянию на
движение частиц. Типичные значения 0.0 - 1.0.
ПРИМЕЧАНИЕ: Система должна иметь Демпфирующий фактор (Damping) >0, чтобы сработал WindModifier.
AlphaDelay
Сколько
секунд ждать до начала линейного перехода от AlphaStart к AlphaEnd.
AlphaStart / AlphaEnd
Непрозрачность
частиц при излучении и непосредственно перед исчезновением. Значения линейно
интерполируются на протяжении всего времени существования частицы. 0.0 –
частица полностью невидима, а 1.0 - полностью непрозрачна.
ColorDelay
Сколько
секунд ждать до начала линейного перехода от ColorStart к ColorEnd.
ColorStart / ColorEnd
Цвет
частиц при излучении и непосредственно перед исчезновением. Значения линейно
интерполируются на протяжении всего времени существования частицы.
ПРИМЕЧАНИЕ: Относительно поля
ColorPalette
Используйте
256 значений палитры текстур, чтобы задать точный переход цвета. Очень полезно,
когда линейные цветовые переходы не обеспечивают достаточного контроля. Частицы
будут начинаться с первого оттенка в палитре и перемещаться по палитре линейно,
так что их оттенок заканчится на последнем цвете в
палитре.
DripTime
Сколько
секунд частицы остаются неподвижными в месте своего излучения, прежде чем
вырваться на свободу. Они увеличиваются в размере из точки SizeWidth и SizeLength до
высвобождения.
ПРИМЕЧАНИЕ: Не рекомендуется использовать!
RenderPrimitive
Расшифровку параметров смотрите ниже в категории SizeWidth / SizeLength.
PPRIM_Billboard
PPRIM_Line
PPRIM_TriTube
PPRIM_Liquid
PPRIM_Shard
RenderStyle
Текстурный
режим, используемый для отображения частиц.
STY_None
STY_Normal
STY_Masked
STY_Translucent
STY_Modulated
STY_AlphaBlend
STY_Highlight
ПРИМЕЧАНИЕ: Это
значение находится в категории DISPLAY секции Default Properties.
SizeDelay
Задержка
в секундах перед линейным переходом от AlphaStart к AlphaEnd.
SizeEndScale
Насколько
велика будет частица непосредственно перед «смертью» по отношению к исходным
размерам при излучении.
SizeWidth / SizeLength
Единицы
являются мировыми единицами. Они имеют различные значения в зависимости от формы
RenderPrimitive.
PPRIM_Billboard
Типичный прямоугольник. SizeWidth - ширина
прямоугольника, а SizeHeight - высота.
PPRIM_Line
Линии
рисуются от одной частицы к другой. SizeWidth используется в качестве ширины
сегмента линии.
PPRIM_TriTube
Треугольная
трубка тянется от частицы к частице. Глядя вниз по трубке, SizeWidth - это
её ширина, а SizeHeight - высота.
PPRIM_Liquid
Size - это ширина капли. Длина умножается на длину
хвоста. Значение 1,0 означает использование нормальной расчетной длины капли,
пропорциональной скорости. Значение 0,5 не позволит сильно растягиваться, в то
время как значение 5,0 позволит жидкости сильно растягиваться. Опять же, важно
отметить, что растяжение выполняется относительно скорости частицы.
PPRIM_Shard
Треугольник
примитивный. SizeWidth и SizeHeight имеют то же значение, что и у формы TriTube выше.
SpinRate
Вращение
частиц в радианах в секунду. Один полный оборот ~= 6,28 Радиан.
ПРИМЕЧАНИЕ: Вы можете использовать Negative Base и положительное значение Rand, чтобы получить действительно случайное вращение. Частицы будут вращаться и по часовой стрелке (Clockwise), и против часовой стрелки (Counter Clockwise).
Strength
Текущая устойчивость системы. Диапазон 0.0 - 1.0 используется для линейной
интерполяции между базовым и максимальным набором параметров, который имеет
каждая система. Это простой способ получить очень сложное поведение из системы
частиц, используя только 2 набора параметров и одно интерполяционное значение.
Textures
Текстуры, которые будут нанесены на частицы. В
настоящее время используется только слот Textures[0].