CPUParticles2D
Наследует: Node2D < CanvasItem < Node < Object
Двумерный излучатель частиц на базе ЦП (CPU).
Описание
Узел 2D-частиц на базе ЦП, используемый для создания различных систем частиц и эффектов.
См. также GPUParticles2D, который обеспечивает ту же функциональность с аппаратным ускорением, но может не работать на старых устройствах.
Обучающие материалы
Свойства
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
physics_interpolation_mode |
|
|
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
Методы
void |
convert_from_particles(particles: Node) |
get_param_curve(param: Parameter) const |
|
get_param_max(param: Parameter) const |
|
get_param_min(param: Parameter) const |
|
get_particle_flag(particle_flag: ParticleFlags) const |
|
void |
request_particles_process(process_time: float) |
void |
|
void |
set_param_curve(param: Parameter, curve: Curve) |
void |
set_param_max(param: Parameter, value: float) |
void |
set_param_min(param: Parameter, value: float) |
void |
set_particle_flag(particle_flag: ParticleFlags, enable: bool) |
Сигналы
finished() 🔗
Выпускается, когда все активные частицы завершили обработку. Когда one_shot отключен, частицы будут обрабатываться непрерывно, поэтому это никогда не выпускается.
Перечисления
enum DrawOrder: 🔗
DrawOrder DRAW_ORDER_INDEX = 0
Частицы рисуются в порядке испускания.
DrawOrder DRAW_ORDER_LIFETIME = 1
Частицы рисуются в порядке оставшегося времени жизни. Другими словами, частица с наибольшим временем жизни рисуется спереди.
enum Parameter: 🔗
Parameter PARAM_INITIAL_LINEAR_VELOCITY = 0
Используйте с set_param_min(), set_param_max() и set_param_curve() для установки начальных свойств скорости.
Parameter PARAM_ANGULAR_VELOCITY = 1
Используйте с set_param_min(), set_param_max() и set_param_curve() для установки свойств угловой скорости.
Parameter PARAM_ORBIT_VELOCITY = 2
Используйте с set_param_min(), set_param_max() и set_param_curve() для задания свойств орбитальной скорости.
Parameter PARAM_LINEAR_ACCEL = 3
Используйте с set_param_min(), set_param_max() и set_param_curve() для установки свойств линейного ускорения.
Parameter PARAM_RADIAL_ACCEL = 4
Используйте с set_param_min(), set_param_max() и set_param_curve() для установки свойств радиального ускорения.
Parameter PARAM_TANGENTIAL_ACCEL = 5
Используйте с set_param_min(), set_param_max() и set_param_curve() для установки свойств тангенциального ускорения.
Parameter PARAM_DAMPING = 6
Используйте с set_param_min(), set_param_max() и set_param_curve() для установки свойств демпфирования.
Parameter PARAM_ANGLE = 7
Используйте с set_param_min(), set_param_max() и set_param_curve() для установки свойств угла.
Parameter PARAM_SCALE = 8
Используйте с set_param_min(), set_param_max() и set_param_curve() для установки свойств масштаба.
Parameter PARAM_HUE_VARIATION = 9
Используйте с set_param_min(), set_param_max() и set_param_curve() для установки свойств изменения оттенка.
Parameter PARAM_ANIM_SPEED = 10
Используйте с set_param_min(), set_param_max() и set_param_curve() для установки свойств скорости анимации.
Parameter PARAM_ANIM_OFFSET = 11
Используйте с set_param_min(), set_param_max() и set_param_curve() для установки свойств смещения анимации.
Parameter PARAM_MAX = 12
Представляет размер перечисления Parameter.
enum ParticleFlags: 🔗
ParticleFlags PARTICLE_FLAG_ALIGN_Y_TO_VELOCITY = 0
Используйте с set_particle_flag() для установки partial_flag_align_y.
ParticleFlags PARTICLE_FLAG_ROTATE_Y = 1
Присутствует для согласованности с узлами 3D-частиц, не используется в 2D.
ParticleFlags PARTICLE_FLAG_DISABLE_Z = 2
Присутствует для согласованности с узлами 3D-частиц, не используется в 2D.
ParticleFlags PARTICLE_FLAG_MAX = 3
Представляет размер перечисления ParticleFlags.
enum EmissionShape: 🔗
EmissionShape EMISSION_SHAPE_POINT = 0
Все частицы будут испускаться из одной точки.
EmissionShape EMISSION_SHAPE_SPHERE = 1
Частицы будут испускаться в объеме сферы, сплющенной в двух измерениях.
EmissionShape EMISSION_SHAPE_SPHERE_SURFACE = 2
Частицы будут испускаться на поверхности сферы, сплющенной в двух измерениях.
EmissionShape EMISSION_SHAPE_RECTANGLE = 3
Частицы будут испускаться в области прямоугольника.
EmissionShape EMISSION_SHAPE_POINTS = 4
Частицы будут испускаться в точке, выбранной случайным образом среди emission_points. Цвет частиц будет модулироваться emission_colors.
EmissionShape EMISSION_SHAPE_DIRECTED_POINTS = 5
Частицы будут испускаться в позиции, выбранной случайным образом среди emission_points. Скорость и вращение частиц будут установлены на основе emission_normals. Цвет частиц будет модулироваться emission_colors.
EmissionShape EMISSION_SHAPE_RING = 6
Частицы будут испускаться в области кольца, параметризованной его внешним и внутренним радиусом.
EmissionShape EMISSION_SHAPE_MAX = 7
Представляет размер перечисления EmissionShape.
Описания свойств
Количество частиц, выбрасываемых за один цикл выброса.
Вращение каждой частицы будет анимировано вдоль этой Curve. Должна быть единица Curve.
Максимальное начальное вращение, применяемое к каждой частице, в градусах.
Минимальный эквивалент angle_max.
Curve angular_velocity_curve 🔗
Угловая скорость каждой частицы будет меняться вдоль этой Кривой. Должна быть единицей Кривой.
float angular_velocity_max = 0.0 🔗
Максимальная начальная угловая скорость (ск. вращения), приложенная к каждой частице в градусах в секунду.
float angular_velocity_min = 0.0 🔗
Минимальный эквивалент angular_velocity_max.
Смещение анимации каждой частицы будет меняться вдоль этой Curve. Должно быть единицей Curve.
Максимальное смещение анимации, соответствующее индексу кадра в текстуре. 0 — первый кадр, 1 — последний. См. CanvasItemMaterial.particles_animation.
Минимальный эквивалент anim_offset_max.
Скорость анимации каждой частицы будет меняться вдоль этой Кривой. Должна быть единицей Кривой.
Максимальная скорость анимации частиц. Скорость анимации 1 означает, что частицы будут делать полный цикл смещения от 0 до 1 в течение жизни, 2 означает 2 циклов и т. д.
При скорости анимации больше 1 не забудьте включить свойство CanvasItemMaterial.particles_anim_loop, если вы хотите, чтобы анимация повторялась.
Минимальный эквивалент anim_speed_max.
Color color = Color(1, 1, 1, 1) 🔗
Начальный цвет каждой частицы. Если texture определена, она будет умножена на этот цвет.
Первоначальный цвет каждой частицы будет меняться в соответствии с этим Gradient (умноженным на colors).
Цвет каждой частицы будет меняться в соответствии с этим Gradient в течение ее жизни (умноженным на colors).
Затухание будет меняться вдоль этой Curve. Должно быть единицей Curve.
Максимальная скорость, с которой частицы теряют скорость. Например, значение 100 означает, что частица перейдет от скорости 100 до 0 за 1 секунду.
Минимальный эквивалент damping_max.
Vector2 direction = Vector2(1, 0) 🔗
Единичный вектор, задающий направление испускания частиц.
Порядок отрисовки частиц.
PackedColorArray emission_colors 🔗
void set_emission_colors(value: PackedColorArray)
PackedColorArray get_emission_colors()
Устанавливает Colors для модуляции частиц при использовании EMISSION_SHAPE_POINTS или EMISSION_SHAPE_DIRECTED_POINTS.
Note: The returned array is copied and any changes to it will not update the original property value. See PackedColorArray for more details.
PackedVector2Array emission_normals 🔗
void set_emission_normals(value: PackedVector2Array)
PackedVector2Array get_emission_normals()
Задает направление, в котором будут испускаться частицы при использовании EMISSION_SHAPE_DIRECTED_POINTS.
Note: The returned array is copied and any changes to it will not update the original property value. See PackedVector2Array for more details.
PackedVector2Array emission_points 🔗
void set_emission_points(value: PackedVector2Array)
PackedVector2Array get_emission_points()
Устанавливает начальные позиции для создания частиц при использовании EMISSION_SHAPE_POINTS или EMISSION_SHAPE_DIRECTED_POINTS.
Note: The returned array is copied and any changes to it will not update the original property value. See PackedVector2Array for more details.
Vector2 emission_rect_extents 🔗
Границы прямоугольника, если emission_shape установлен в EMISSION_SHAPE_RECTANGLE.
float emission_ring_inner_radius 🔗
Внутренний радиус кольца, если параметр emission_shape установлен на EMISSION_SHAPE_RING.
Внешний радиус кольца, если параметр emission_shape установлен на EMISSION_SHAPE_RING.
EmissionShape emission_shape = 0 🔗
void set_emission_shape(value: EmissionShape)
EmissionShape get_emission_shape()
Внутри этой области будут испускаться частицы.
float emission_sphere_radius 🔗
Радиус сферы, если emission_shape установлен в EMISSION_SHAPE_SPHERE.
Если true, частицы испускаются. emitting можно использовать для запуска и остановки испускания частиц. Однако, если one_shot равно true, установка emitting в true не перезапустит цикл испускания, пока все активные частицы не закончат обработку. Вы можете использовать сигнал signalfinished, чтобы получать уведомления, как только все активные частицы закончат обработку.
Насколько быстро выбрасываются частицы в цикле эмиссии. Если больше 0, то будет разрыв в эмиссии до начала следующего цикла.
Частота кадров системы частиц зафиксирована на значении. Например, изменение значения на 2 заставит частицы рендериться со скоростью 2 кадра в секунду. Обратите внимание, что это не замедляет симуляцию самой системы частиц.
Если true, то выполняется дробный расчет дельты, который обеспечивает более плавный эффект отображения частиц.
Vector2 gravity = Vector2(0, 980) 🔗
Гравитация действует на каждую частицу.
Оттенок каждой частицы будет меняться вдоль этой Curve. Должна быть единица Curve.
float hue_variation_max = 0.0 🔗
Максимальное начальное изменение оттенка, применяемое к каждой частице. Это изменит оттенок цвета частицы.
float hue_variation_min = 0.0 🔗
Минимальный эквивалент hue_variation_max.
float initial_velocity_max = 0.0 🔗
Максимальная начальная величина скорости для каждой частицы. Направление определяется из direction и spread.
float initial_velocity_min = 0.0 🔗
Минимальный эквивалент initial_velocity_max.
Количество времени, в течение которого каждая частица будет существовать.
float lifetime_randomness = 0.0 🔗
Коэффициент случайности времени жизни частицы.
Линейное ускорение каждой частицы будет изменяться вдоль этой Curve. Должно быть единицей Curve.
float linear_accel_max = 0.0 🔗
Максимальное линейное ускорение, приложенное к каждой частице в направлении движения.
float linear_accel_min = 0.0 🔗
Минимальный эквивалент linear_accel_max.
Если true, частицы используют координатное пространство родительского узла (известное как локальные координаты). Это заставит частицы двигаться и вращаться вдоль узла CPUParticles2D (и его родителей) при его перемещении или повороте. Если false, частицы используют глобальные координаты; они не будут двигаться или вращаться вдоль узла CPUParticles2D (и его родителей) при его перемещении или повороте.
Если true, происходит только один цикл эмиссии. Если установить true во время цикла, эмиссия прекратится в конце цикла.
Орбитальная скорость каждой частицы будет меняться вдоль этой Curve. Должна быть единицей Curve.
float orbit_velocity_max = 0.0 🔗
Максимальная орбитальная скорость, применяемая к каждой частице. Заставляет частицы вращаться вокруг начала координат. Указывается в количестве полных оборотов вокруг начала координат в секунду.
float orbit_velocity_min = 0.0 🔗
Минимальный эквивалент orbit_velocity_max.
bool particle_flag_align_y = false 🔗
void set_particle_flag(particle_flag: ParticleFlags, enable: bool)
bool get_particle_flag(particle_flag: ParticleFlags) const
Совместите ось Y частицы с направлением ее скорости.
Система частиц запускается так, как будто она уже проработала указанное количество секунд.
Радиальное ускорение каждой частицы будет изменяться вдоль этой Curve. Должно быть единицей Curve.
float radial_accel_max = 0.0 🔗
Максимальное радиальное ускорение, применяемое к каждой частице. Заставляет частицу ускоряться от начала координат или к нему, если отрицательно.
float radial_accel_min = 0.0 🔗
Минимальный эквивалент radial_accel_max.
Коэффициент случайности времени жизни излучения.
Масштаб каждой частицы будет меняться вдоль этой Curve. Должен быть единицей Curve.
float scale_amount_max = 1.0 🔗
Максимальный начальный масштаб, применяемый к каждой частице.
float scale_amount_min = 1.0 🔗
Минимальный эквивалент scale_amount_max.
Горизонтальный масштаб каждой частицы будет меняться вдоль этой Curve. Должен быть единичным Curve.
split_scale должен быть включен.
Вертикальный масштаб каждой частицы будет меняться вдоль этой Curve. Должен быть единичным Curve.
split_scale должен быть включен.
Устанавливает случайное семя, используемое системой частиц. Действует только если use_fixed_seed равен true.
Коэффициент масштабирования скорости работы системы частиц. Значение 0 может использоваться для остановки частиц.
Если true, кривая шкалы будет разделена на компоненты x и y. См. scale_curve_x и scale_curve_y.
Начальное направление каждой частицы варьируется от +распространение до -распространение градусов.
Curve tangential_accel_curve 🔗
Тангенциальное ускорение каждой частицы будет меняться вдоль этой Curve. Должно быть единицей Curve.
float tangential_accel_max = 0.0 🔗
Максимальное тангенциальное ускорение, приложенное к каждой частице. Тангенциальное ускорение перпендикулярно скорости частицы, что придает частицам вихревое движение.
float tangential_accel_min = 0.0 🔗
Минимальный эквивалент tangential_accel_max.
Текстура частиц. Если null, частицы будут квадратными.
Если true, частицы будут использовать одно и то же семя для каждой симуляции, используя семя, определенное в seed. Это полезно в ситуациях, когда визуальный результат должен быть согласованным между повторами, например, при использовании режима Movie Maker.
Описания метода
void convert_from_particles(particles: Node) 🔗
Устанавливает свойства этого узла для соответствия заданному узлу GPUParticles2D с назначенным ParticleProcessMaterial.
Curve get_param_curve(param: Parameter) const 🔗
Возвращает Curve параметра, указанного в Parameter.
float get_param_max(param: Parameter) const 🔗
Возвращает максимальный диапазон значений для заданного параметра.
float get_param_min(param: Parameter) const 🔗
Возвращает минимальный диапазон значений для заданного параметра.
bool get_particle_flag(particle_flag: ParticleFlags) const 🔗
Возвращает включенное состояние заданного флага частицы.
void request_particles_process(process_time: float) 🔗
Запрашивает обработку частиц для дополнительного времени процесса в течение одного кадра.
Полезно для воспроизведения частиц, если используется в сочетании с use_fixed_seed или путем вызова restart() с параметром keep_seed, установленным на true.
void restart(keep_seed: bool = false) 🔗
Перезапускает излучатель частиц.
Если keep_seed равен true, текущее случайное семя будет сохранено. Полезно для поиска и воспроизведения.
void set_param_curve(param: Parameter, curve: Curve) 🔗
Устанавливает Curve параметра, указанного в Parameter. Должен быть единицей Curve.
void set_param_max(param: Parameter, value: float) 🔗
Устанавливает максимальное значение для данного параметра.
void set_param_min(param: Parameter, value: float) 🔗
Устанавливает минимальное значение для данного параметра.
void set_particle_flag(particle_flag: ParticleFlags, enable: bool) 🔗
Включает или отключает указанный флаг частицы.