Итак, системы частиц в CAST II
Сперва про возможности:
Поддерживается
- равномерное испускание частиц при движении эмиттера
- поддержка суб-эмиттеров
- поддержка как 2D, так и 3D частиц
- возможность сохранения порядка частиц для корректного отображения
- рассчет ограничивающего объема
- поддержка вращения частиц
- поддержка направленных частиц
Планируется в ближайшем будущем
- возможность задания спрайта для каждой частицы
Теперь подробнее:
Системы частиц состоят из следующих частей:
Первая часть -- сама система частиц -- класс
TParticleSystem, а также наследники
T3DParticleSystem и
T2DParticleSystem.
Представляет собой видимый объект, отвечающий за визуализацию и её параметры (за местоположение частиц отвечает эмиттер, см. ниже). Обычно визуализирует собой набор квадов, представляющие частицы, но может строить динамическую 3D-модель и вообще все что угодно.
Вторая часть -- источник (эмиттер) частиц -- класс
TEmitter и производные.
Эмиттер испускает частицы с теми или иными параметрами. Может быть прикреплен к другим объектам, в том числе движущимся. Частицы появляются относительно текущего местоположения эмиттера, хотя можно указать появляться им относительно положения самой системы (свойство "Local coordinates").
В сущности эмиттер, является частным случаем эффектора.
Наконец,
третья часть -- эффектор -- класс
TPSAffector и производные.
Тем или иным образом влияет на частицы в системе. Отвечает за движение, изменение цвета и других параметров, а также уничтожение частиц.
У системы частиц может быть более одного эффектора (как и эмиттера), а применяться они могут более чем к одной системе одновременно.
Системы, на которые влияет эффектор, прописываются в его свойствах - "Systems affected" задает количество затрагиваемых систем, в свойствах вида "System #n" прописываются ссылки на сами системы.
Также есть свойста "Starting age"/"Ending age", указывающие диапазон времени жизни частицы, в пределах которого на неё влияет данный эффектор.
В зависимости от типа, у эффекторов и эмиттеров есть ряд других свойств, задающих поведение, многие из которых настраиваются в виде графиков значений.
Комбинируя различные эффекторы и эмиттеры можно создавать практически любые спецэффекты. Еще, конечно, нужна фантазия.
Некоторые существующие классы эмиттеров и эффекторов:
TEmitter -- простой источник, интенсивность, и начальные параметры частиц задаются свойствами-графиками, т.е. могут меняться во времени. Свойство "Cycle duration" задает длительность цикла изменений.
TSphericalEmitter -- источник, испускающий частицы в пределах сферы, заданного радиуса. Конкретная форма задается свойствами-графиками.
TPSMover -- прибавляет к положению частиц их скорость и рассчитывает ограничивающий бокс.
TPSAttractor -- притягивает к себе частицы в заданном радиусе с заданной интенсивностью.
TPSColorInterpolator -- изменяет цвет частицы в соответствии со свойством-градиентом.
TPSForce -- придает частицам ускорение.
TPSUniAffector -- изменяет сразу положение, скорость, цвет, и размер частиц, уничтожает устаревшие.
TSubEmitter -- передвигает частицы на место частиц, другой системы частиц. Какой именно и каких её частиц - задается в свойствах.
Также легко могут быть созданы свои эмиттеры и эффекторы.