Системы частиц (2D)¶
Введение¶
Предоставляется простая (но достаточно гибкая для большинства применений) система частиц. Системы частиц используются для моделирования сложных физических эффектов, таких как искры, огонь, магические частицы, дым, туман и т.д.
Идея состоит в том, что «частица» испускается через фиксированный интервал и с фиксированным временем жизни. В течение своей жизни у каждой частицы будет одно базовое поведение. Что отличает каждую частицу от остальных и обеспечивает более натуральный вид, так это «случайность», связанная с каждым параметром. По сути, создание системы частиц означает установку основных физических параметров, а затем добавление к ним случайности.
Узлы частиц¶
Godot предоставляет два разных узла для 2D-частиц: :ref: class_Particles2D и :ref:` class_CPUParticles2D`. Particles2D - более продвинутый и использует графический процессор для обработки эффектов частиц, но это ограничивает его графическим API более высокого уровня и, в нашем случае, средством визуализации GLES3. Для проектов, использующих под капотом GLES2, CPUParticles2D - это вариант, управляемый процессором, с почти соответствующими функциями с Particles2D, но меньшей производительностью. Хотя Particles2D настраивается с помощью :ref: class_ParticlesMaterial (и, возможно, с помощью настраиваемого шейдера), параметры сопоставления предоставляются через свойства узла в CPUParticles2D (за исключением настроек следа). Вы можете преобразовать узел Particles2D в узел CPUParticles2D, щелкнув по узлу в инспекторе и выбрав «Преобразовать в CPUParticles2D» в меню «Частицы» панели инструментов.

The rest of this tutorial is going to use the Particles2D node. First, add a Particles2D node to your scene. After creating that node you will notice that only a white dot was created, and that there is a warning icon next to your Particles2D node in the scene dock. This is because the node needs a ParticlesMaterial to function.
Материал частиц¶
Чтобы добавить технологический материал в узел частиц, перейдите в раздел Process Material
на панели инспектора. Щелкните поле рядом с Material
и в раскрывающемся меню выберите New ParticlesMaterial
.

Теперь ваш узел Particles2D должен излучать белые точки вниз.

Текстура¶
Система частиц использует единую текстуру (в будущем это может быть расширено до анимированных текстур через таблицу спрайтов). Текстура устанавливается через соответствующее свойство текстуры:

Параметры времени¶
Время жизни¶
Время в секундах, в течение которого каждая частица останется в живых. Когда время жизни заканчивается, вместо нее создается новая частица.
Продолжительность жизни: 0,5

Продолжительность жизни: 4,0

Одноразовый¶
Когда этот параметр включен, узел Particles2D будет излучать все свои частицы один раз, а затем никогда больше.
Предобработка¶
Системы частиц начинаются с нулевого испускания частиц, а затем начинают испускаться. Это может быть неудобно при загрузке сцены и таких систем, как факел, туман и т.д., которые начинают излучаться сразу после входа. Предварительная обработка используется, чтобы позволить системе обработать заданное количество секунд до того, как она будет фактически отрисована в первый раз.
Масштаб скорости¶
Шкала скорости имеет значение по умолчанию 1
и используется для регулировки скорости системы частиц. Понижение значения сделает частицы медленнее, в то время как увеличение значения сделает частицы намного быстрее.
Взрывоопасность¶
Если продолжительность жизни равна 1
и имеется 10 частиц, это означает, что частица будет испускаться каждую 0,1 секунды. Параметр "explosiveness" меняет это и заставляет частицы испускаться все вместе. Диапазоны:
0: Испускать частицы через равные промежутки времени (значение по умолчанию).
1: Испускать все частицы одновременно.
Допускаются также значения в середине. Эта функция полезна для создания взрывов или внезапных выбросов частиц:

Случайность¶
Все физические параметры могут быть рандомизированы. Диапазон случайных значений от 0
до ``1 ``. Формула рандомизации параметра:
initial_value = param_value + param_value * randomness
Фиксированный FPS¶
Этот параметр можно использовать для установки системы частиц для рендеринга с фиксированным FPS. Например, изменение значения на 2
приведет к рендерингу частиц со скоростью 2 кадра в секунду. Обратите внимание, что это не замедляет саму систему частиц.
Fract Delta¶
Это можно использовать для включения или выключения Fract Delta.
Параметры отрисовки¶
Видимый прямоугольник¶
Прямоугольник видимости контролирует видимость частиц на экране. Если этот прямоугольник находится за пределами области просмотра, движок не будет отображать частицы на экране.
Свойства прямоугольника W
и H
соответственно управляют его шириной и высотой. Свойства X
и Y
управляют положением верхнего левого угла прямоугольника относительно излучателя частиц.
Вы можете настроить Godot для автоматического создания прямоугольника видимости с помощью панели инструментов над 2-мерным видом. Для этого выберите узел Particles2D и нажмите Particles> Generate Visibility Rect
. Godot будет имитировать узел Particles2D, излучающий частицы, в течение нескольких секунд и установит прямоугольник в соответствии с поверхностью, которую принимают частицы.
Вы можете контролировать длительность излучения с помощью опции Generation Time (sec)
. Максимальное значение - 25 секунд. Если вам нужно больше времени для перемещения частиц, вы можете временно изменить длительность preprocess
на узле Particles2D.
Локальные координаты¶
По умолчанию эта опция включена, и это означает, что пространство, в которое излучаются частицы определяется относительно узла. Если узел перемещается, все частицы перемещаются вместе с ним:

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

Порядок рисования¶
Это контролирует порядок, в котором отрисовываются отдельные частицы. Index
означает, что частицы отрисовываются в соответствии с порядком их выброса (по умолчанию). Lifetime
означает, что они нарисованы в порядке оставшегося времени жизни.
Параметры материала частиц¶
Направление¶
Это основное направление, в котором испускаются частицы. По умолчанию это Vector3 (1, 0, 0)
, что заставляет частицы излучаться вправо. Однако с настройками силы тяжести по умолчанию частицы будут идти прямо вниз.

Чтобы это свойство было заметным, вам нужна начальная скорость больше 0. Здесь мы установили начальную скорость равной 40. Вы заметите, что частицы испускаются вправо, а затем падают вниз из-за силы тяжести.

Разброс¶
Этот параметр - угол в градусах, который будет случайным образом добавлен к основному направлению Direction
. Разброс 180
приведет к излучению во всех направлениях (+/- 180). Для того, чтобы активировался разброс частиц, параметр Initial Velocity
должен быть больше 0.

Плоскостность¶
Это свойство полезно только для 3D-частиц.
Гравитация¶
Гравитация применяется к каждой частице.

Начальная скорость¶
Начальная скорость - это скорость, с которой будут испускаться частицы (в пикселях/сек). Позднее скорость может быть изменена под действием силы тяжести или других ускорений (как описано ниже).

Угловая скорость¶
Угловая скорость - это начальная угловая скорость, применяемая к частицам.
Скорость Спина¶
Скорость спина - это скорость при которой частицы вращаются вокруг своих центров (в градусах/сек).

Орбитальная скорость¶
Orbit Velocity используется для вращения частиц вокруг своего центра.

Линейное Ускорение¶
Линейное ускорение применяется к каждой частице.
Радиальное (Нормальное) Ускорение¶
Если это ускорение положительное, частицы ускоряются от центра. Если отрицательное, они поглощаются им.

Касательное Ускорение¶
Это ускорение будет использовать касательный вектор к центру. Комбинация с радиальным ускорением может дать хорошие эффекты.

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

Угол¶
Определяет начальный угол частицы (в градусах). Этот параметр в основном полезен в случайном порядке.

Масштабировать¶
Определяет начальный размер частиц.

Цвет¶
Используется для изменения цвета испускаемых частиц.
Изменение оттенка¶
Значение Variation
устанавливает начальное изменение оттенка, применяемое к каждой частице. Значение Variation Random
контролирует коэффициент случайности изменения оттенка.
Формы излучения¶
ParticlesMaterials позволяют вам установить Emission Mask, которая определяет область и направление, в котором испускаются частицы. Их можно сгенерировать из текстур в вашем проекте.
Убедитесь, что задан ParticlesMaterial и выбран узел Particles2D. На панели инструментов должно появиться меню «Частицы»:

Откройте его и выберите "Загрузить маску излучения":

Затем выберите, какую текстуру вы хотите использовать в качестве маски:

Появится диалоговое окно с несколькими настройками.
Маска излучения¶
Из текстуры могут быть сгенерированы три типа масок излучения:
Залитые пиксели: Частицы будут появляться из любой области текстуры, за исключением прозрачных областей.

Граничные пиксели: Частицы будут появляться на внешних краях текстуры.

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

Цвета излучения¶
Из пикселя
заставит частицы унаследовать цвет маски в своих точках появления.
После того, как вы нажмете "ОК", маска будет сгенерирована и установлена на ParticlesMaterial в разделе Emission Shape
:

Все значения в этом разделе были автоматически сгенерированы меню «Загрузить маску излучения», поэтому их, как правило, следует оставить в покое.
Примечание
Изображение не следует добавлять напрямую в Point Texture
или Color Texture
. Вместо этого всегда следует использовать меню «Загрузить маску излучения».