ParticleProcessMaterial

Наследует: Material < Resource < RefCounted < Object

Содержит конфигурацию частиц для узлов GPUParticles2D или GPUParticles3D.

Описание

ParticleProcessMaterial определяет свойства и поведение частиц. Он используется в process_material узлов GPUParticles2D и GPUParticles3D. Некоторые из свойств этого материала применяются к каждой частице при испускании, в то время как другие могут иметь CurveTexture или GradientTexture1D, применяемые для изменения числовых или цветовых значений в течение жизненного цикла частицы.

Свойства

Texture2D

alpha_curve

Texture2D

angle_curve

float

angle_max

0.0

float

angle_min

0.0

Texture2D

angular_velocity_curve

float

angular_velocity_max

0.0

float

angular_velocity_min

0.0

Texture2D

anim_offset_curve

float

anim_offset_max

0.0

float

anim_offset_min

0.0

Texture2D

anim_speed_curve

float

anim_speed_max

0.0

float

anim_speed_min

0.0

bool

attractor_interaction_enabled

true

float

collision_bounce

float

collision_friction

CollisionMode

collision_mode

0

bool

collision_use_scale

false

Color

color

Color(1, 1, 1, 1)

Texture2D

color_initial_ramp

Texture2D

color_ramp

Texture2D

damping_curve

float

damping_max

0.0

float

damping_min

0.0

Vector3

direction

Vector3(1, 0, 0)

Texture2D

directional_velocity_curve

float

directional_velocity_max

float

directional_velocity_min

Vector3

emission_box_extents

Texture2D

emission_color_texture

Texture2D

emission_curve

Texture2D

emission_normal_texture

int

emission_point_count

Texture2D

emission_point_texture

Vector3

emission_ring_axis

float

emission_ring_cone_angle

float

emission_ring_height

float

emission_ring_inner_radius

float

emission_ring_radius

EmissionShape

emission_shape

0

Vector3

emission_shape_offset

Vector3(0, 0, 0)

Vector3

emission_shape_scale

Vector3(1, 1, 1)

float

emission_sphere_radius

float

flatness

0.0

Vector3

gravity

Vector3(0, -9.8, 0)

Texture2D

hue_variation_curve

float

hue_variation_max

0.0

float

hue_variation_min

0.0

float

inherit_velocity_ratio

0.0

float

initial_velocity_max

0.0

float

initial_velocity_min

0.0

float

lifetime_randomness

0.0

Texture2D

linear_accel_curve

float

linear_accel_max

0.0

float

linear_accel_min

0.0

Texture2D

orbit_velocity_curve

float

orbit_velocity_max

0.0

float

orbit_velocity_min

0.0

bool

particle_flag_align_y

false

bool

particle_flag_damping_as_friction

false

bool

particle_flag_disable_z

false

bool

particle_flag_rotate_y

false

Texture2D

radial_accel_curve

float

radial_accel_max

0.0

float

radial_accel_min

0.0

Texture2D

radial_velocity_curve

float

radial_velocity_max

0.0

float

radial_velocity_min

0.0

Texture2D

scale_curve

float

scale_max

1.0

float

scale_min

1.0

Texture2D

scale_over_velocity_curve

float

scale_over_velocity_max

0.0

float

scale_over_velocity_min

0.0

float

spread

45.0

int

sub_emitter_amount_at_collision

int

sub_emitter_amount_at_end

int

sub_emitter_amount_at_start

float

sub_emitter_frequency

bool

sub_emitter_keep_velocity

false

SubEmitterMode

sub_emitter_mode

0

Texture2D

tangential_accel_curve

float

tangential_accel_max

0.0

float

tangential_accel_min

0.0

bool

turbulence_enabled

false

float

turbulence_influence_max

0.1

float

turbulence_influence_min

0.1

Texture2D

turbulence_influence_over_life

float

turbulence_initial_displacement_max

0.0

float

turbulence_initial_displacement_min

0.0

float

turbulence_noise_scale

9.0

Vector3

turbulence_noise_speed

Vector3(0, 0, 0)

float

turbulence_noise_speed_random

0.2

float

turbulence_noise_strength

1.0

Texture2D

velocity_limit_curve

Vector3

velocity_pivot

Vector3(0, 0, 0)

Методы

Vector2

get_param(param: Parameter) const

float

get_param_max(param: Parameter) const

float

get_param_min(param: Parameter) const

Texture2D

get_param_texture(param: Parameter) const

bool

get_particle_flag(particle_flag: ParticleFlags) const

void

set_param(param: Parameter, value: Vector2)

void

set_param_max(param: Parameter, value: float)

void

set_param_min(param: Parameter, value: float)

void

set_param_texture(param: Parameter, texture: Texture2D)

void

set_particle_flag(particle_flag: ParticleFlags, enable: bool)


Сигналы

emission_shape_changed() 🔗

Выпускается, когда форма излучения этого материала каким-либо образом изменяется. Это включает изменения emission_shape, emission_shape_scale или emission_sphere_radius, а также любые другие свойства, которые влияют на смещение, размер, масштаб или ориентацию формы излучения.

Примечание: Этот сигнал выдается только внутри редактора по соображениям производительности.


Перечисления

enum Parameter: 🔗

Parameter PARAM_INITIAL_LINEAR_VELOCITY = 0

Используйте с set_param_min(), set_param_max() и set_param_texture() для установки начальных свойств скорости.

Parameter PARAM_ANGULAR_VELOCITY = 1

Используйте с set_param_min(), set_param_max() и set_param_texture() для установки свойств угловой скорости.

Parameter PARAM_ORBIT_VELOCITY = 2

Используйте с set_param_min(), set_param_max() и set_param_texture() для установки свойств орбитальной скорости.

Parameter PARAM_LINEAR_ACCEL = 3

Используйте с set_param_min(), set_param_max() и set_param_texture() для установки свойств линейного ускорения.

Parameter PARAM_RADIAL_ACCEL = 4

Используйте с set_param_min(), set_param_max() и set_param_texture() для установки свойств радиального ускорения.

Parameter PARAM_TANGENTIAL_ACCEL = 5

Используйте с set_param_min(), set_param_max() и set_param_texture() для установки свойств тангенциального ускорения.

Parameter PARAM_DAMPING = 6

Используйте с set_param_min(), set_param_max() и set_param_texture() для установки свойств затухания.

Parameter PARAM_ANGLE = 7

Используйте с set_param_min(), set_param_max() и set_param_texture() для установки свойств угла.

Parameter PARAM_SCALE = 8

Используйте с set_param_min(), set_param_max() и set_param_texture() для установки свойств масштаба.

Parameter PARAM_HUE_VARIATION = 9

Используйте с set_param_min(), set_param_max() и set_param_texture() для установки свойств изменения оттенка.

Parameter PARAM_ANIM_SPEED = 10

Используйте с set_param_min(), set_param_max() и set_param_texture() для установки свойств скорости анимации.

Parameter PARAM_ANIM_OFFSET = 11

Используйте с set_param_min(), set_param_max() и set_param_texture() для установки свойств смещения анимации.

Parameter PARAM_RADIAL_VELOCITY = 15

Используйте с set_param_min(), set_param_max() и set_param_texture() для установки свойств радиальной скорости.

Parameter PARAM_DIRECTIONAL_VELOCITY = 16

Используйте с set_param_min(), set_param_max() и set_param_texture() для установки свойств направленной скорости.

Parameter PARAM_SCALE_OVER_VELOCITY = 17

Используйте с set_param_min(), set_param_max() и set_param_texture() для установки масштаба по свойствам скорости.

Parameter PARAM_MAX = 18

Представляет размер перечисления Parameter.

Parameter PARAM_TURB_VEL_INFLUENCE = 13

Используйте с set_param_min() и set_param_max() для установки минимального и максимального влияния турбулентности на скорость каждой частицы.

Parameter PARAM_TURB_INIT_DISPLACEMENT = 14

Используйте с set_param_min() и set_param_max() для установки минимального и максимального смещения турбулентности положения появления частиц.

Parameter PARAM_TURB_INFLUENCE_OVER_LIFE = 12

Используйте с set_param_texture() для установки влияния турбулентности на время жизни частиц.


enum ParticleFlags: 🔗

ParticleFlags PARTICLE_FLAG_ALIGN_Y_TO_VELOCITY = 0

Используйте с set_particle_flag() для установки partial_flag_align_y.

ParticleFlags PARTICLE_FLAG_ROTATE_Y = 1

Используйте с set_particle_flag() для установки partial_flag_rotate_y.

ParticleFlags PARTICLE_FLAG_DISABLE_Z = 2

Используйте с set_particle_flag() для установки particle_flag_disable_z.

ParticleFlags PARTICLE_FLAG_DAMPING_AS_FRICTION = 3

There is currently no description for this enum. Please help us by contributing one!

ParticleFlags PARTICLE_FLAG_MAX = 4

Представляет размер перечисления ParticleFlags.


enum EmissionShape: 🔗

EmissionShape EMISSION_SHAPE_POINT = 0

Все частицы будут испускаться из одной точки.

EmissionShape EMISSION_SHAPE_SPHERE = 1

Частицы будут испускаться в объеме сферы.

EmissionShape EMISSION_SHAPE_SPHERE_SURFACE = 2

Частицы будут испускаться на поверхность сферы.

EmissionShape EMISSION_SHAPE_BOX = 3

Частицы будут испускаться в объеме коробки.

EmissionShape EMISSION_SHAPE_POINTS = 4

Частицы будут испускаться в позиции, определяемой путем выборки случайной точки на emission_point_texture. Цвет частиц будет модулироваться emission_color_texture.

EmissionShape EMISSION_SHAPE_DIRECTED_POINTS = 5

Частицы будут испускаться в позиции, определяемой путем выборки случайной точки на emission_point_texture. Скорость и вращение частиц будут установлены на основе emission_normal_texture. Цвет частиц будет модулироваться emission_color_texture.

EmissionShape EMISSION_SHAPE_RING = 6

Частицы будут выбрасываться в кольцо или цилиндр.

EmissionShape EMISSION_SHAPE_MAX = 7

Представляет размер перечисления EmissionShape.


enum SubEmitterMode: 🔗

SubEmitterMode SUB_EMITTER_DISABLED = 0

There is currently no description for this enum. Please help us by contributing one!

SubEmitterMode SUB_EMITTER_CONSTANT = 1

There is currently no description for this enum. Please help us by contributing one!

SubEmitterMode SUB_EMITTER_AT_END = 2

There is currently no description for this enum. Please help us by contributing one!

SubEmitterMode SUB_EMITTER_AT_COLLISION = 3

There is currently no description for this enum. Please help us by contributing one!

SubEmitterMode SUB_EMITTER_AT_START = 4

There is currently no description for this enum. Please help us by contributing one!

SubEmitterMode SUB_EMITTER_MAX = 5

Представляет размер перечисления SubEmitterMode.


enum CollisionMode: 🔗

CollisionMode COLLISION_DISABLED = 0

Никаких столкновений для частиц. Частицы будут проходить через узлы GPUParticlesCollision3D.

CollisionMode COLLISION_RIGID = 1

Столкновение в стиле RigidBody3D для частиц с использованием узлов GPUParticlesCollision3D.

CollisionMode COLLISION_HIDE_ON_CONTACT = 2

Скрыть частицы мгновенно при столкновении с узлом GPUParticlesCollision3D. Это можно объединить с субэмиттером, который использует режим столкновения COLLISION_RIGID для «замены» родительской частицы субэмиттером при столкновении.

CollisionMode COLLISION_MAX = 3

Представляет размер перечисления CollisionMode.


Описания свойств

Texture2D alpha_curve 🔗

Значение альфа-канала каждого цвета частицы будет умножаться на этот CurveTexture на протяжении всего времени её существования.

Примечание: alpha_curve умножает цвета вершин сетки частиц. Чтобы это оказало видимое воздействие на BaseMaterial3D, BaseMaterial3D.vertex_color_use_as_albedo должен быть true. Для ShaderMaterial в функцию fragment() шейдера необходимо вставить ALPHA *= COLOR.a;. В противном случае alpha_curve не окажет видимого эффекта.


Texture2D angle_curve 🔗

Вращение каждой частицы будет анимировано вдоль этой CurveTexture.


float angle_max = 0.0 🔗

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

Применяется только тогда, когда partial_flag_disable_z или partial_flag_rotate_y равны true или BaseMaterial3D, используемый для рисования частицы, использует BaseMaterial3D.BILLBOARD_PARTICLES.


float angle_min = 0.0 🔗

Минимальный эквивалент angle_max.


Texture2D angular_velocity_curve 🔗

Угловая скорость каждой частицы (скорость вращения) будет изменяться вдоль этой CurveTexture в течение ее жизни.


float angular_velocity_max = 0.0 🔗

Максимальная начальная угловая скорость (ск. вращения), применяемая к каждой частице в градусах в секунду.

Применяется только тогда, когда partial_flag_disable_z или partial_flag_rotate_y имеют значение true или BaseMaterial3D, используемый для рисования частицы, использует BaseMaterial3D.BILLBOARD_PARTICLES.


float angular_velocity_min = 0.0 🔗

Минимальный эквивалент angular_velocity_max.


Texture2D anim_offset_curve 🔗

Смещение анимации каждой частицы будет меняться в зависимости от CurveTexture.


float anim_offset_max = 0.0 🔗

Максимальное смещение анимации, соответствующее индексу кадра в текстуре. 0 — первый кадр, 1 — последний. См. CanvasItemMaterial.particles_animation.


float anim_offset_min = 0.0 🔗

Минимальный эквивалент anim_offset_max.


Texture2D anim_speed_curve 🔗

Скорость анимации каждой частицы будет меняться в зависимости от CurveTexture.


float anim_speed_max = 0.0 🔗

Максимальная скорость анимации частиц. Скорость анимации 1 означает, что частицы будут делать полный цикл смещения от 0 до 1 в течение жизни, 2 означает 2 циклов и т. д.

При скорости анимации больше 1 не забудьте включить свойство CanvasItemMaterial.particles_anim_loop, если вы хотите, чтобы анимация повторялась.


float anim_speed_min = 0.0 🔗

Минимальный эквивалент anim_speed_max.


bool attractor_interaction_enabled = true 🔗

  • void set_attractor_interaction_enabled(value: bool)

  • bool is_attractor_interaction_enabled()

Если true, взаимодействие с аттракторами частиц включено. В 3D притяжение происходит только в области, определяемой GPUParticles3D.visibility_aabb узла GPUParticles3D.


float collision_bounce 🔗

  • void set_collision_bounce(value: float)

  • float get_collision_bounce()

Отскок частиц. Значения варьируются от 0 (без отскока) до 1 (полная упругость). Действует только если collision_mode равен COLLISION_RIGID.


float collision_friction 🔗

  • void set_collision_friction(value: float)

  • float get_collision_friction()

Трение частиц. Значения варьируются от 0 (без трения) до 1 (максимальное трение). Действует только если collision_mode равен COLLISION_RIGID.


CollisionMode collision_mode = 0 🔗

Режим столкновения частиц.

Примечание: 3D-частицы могут сталкиваться только с узлами GPUParticlesCollision3D, а не с узлами PhysicsBody3D. Чтобы частицы сталкивались с различными объектами, можно добавить узлы GPUParticlesCollision3D в качестве дочерних узлов PhysicsBody3D. В 3D-среде столкновения происходят только в области, определяемой GPUParticles3D.visibility_aabb узла GPUParticles3D.

Примечание: 2D-частицы могут сталкиваться только с узлами LightOccluder2D, а не с узлами PhysicsBody2D.


bool collision_use_scale = false 🔗

  • void set_collision_use_scale(value: bool)

  • bool is_collision_using_scale()

Если true, GPUParticles3D.collision_base_size умножается на эффективный масштаб частицы (см. scale_min, scale_max, scale_curve и scale_over_velocity_curve).


Color color = Color(1, 1, 1, 1) 🔗

Начальный цвет каждой частицы. Если текстуры GPUParticles2D определен, он будет умножен на этот цвет.

Примечание: color умножает цвета вершин сетки частиц. Чтобы иметь видимый эффект на BaseMaterial3D, BaseMaterial3D.vertex_color_use_as_albedo должен быть истинным. Для ShaderMaterial ALBEDO *= COLOR.rgb; должен быть вставлен в функцию fragment() шейдера. В противном случае color не будет иметь видимого эффекта.


Texture2D color_initial_ramp 🔗

Начальный цвет каждой частицы будет меняться вдоль этого GradientTexture1D (умножается на color).

Примечание: color_initial_ramp умножает цвета вершин сетки частиц. Чтобы иметь видимый эффект на BaseMaterial3D, BaseMaterial3D.vertex_color_use_as_albedo должен быть true. Для ShaderMaterial ALBEDO *= COLOR.rgb; должен быть вставлен в функцию шейдера fragment(). В противном случае color_initial_ramp не будет иметь видимого эффекта.


Texture2D color_ramp 🔗

Цвет каждой частицы будет меняться вдоль этого GradientTexture1D в течение ее жизненного цикла (умножается на color).

Примечание: color_ramp умножает цвета вершин сетки частиц. Чтобы иметь видимый эффект на BaseMaterial3D, BaseMaterial3D.vertex_color_use_as_albedo должен быть true. Для ShaderMaterial ALBEDO *= COLOR.rgb; должен быть вставлен в функцию шейдера fragment(). В противном случае color_ramp не будет иметь видимого эффекта.


Texture2D damping_curve 🔗

Затухание будет меняться вдоль CurveTexture.


float damping_max = 0.0 🔗

Максимальная скорость, с которой частицы теряют скорость. Например, значение 100 означает, что частица перейдет от скорости 100 до 0 за 1 секунду.


float damping_min = 0.0 🔗

Минимальный эквивалент damping_max.


Vector3 direction = Vector3(1, 0, 0) 🔗

Единичный вектор, задающий направление испускания частиц.


Texture2D directional_velocity_curve 🔗

Кривая, которая определяет скорость вдоль каждой из осей системы частиц на протяжении ее жизненного цикла.

Примечание: Анимированные скорости не будут подвержены затуханию, вместо этого используйте velocity_limit_curve.


float directional_velocity_max 🔗

Максимальное значение направленной скорости, умноженное на directional_velocity_curve.

Примечание: Анимированные скорости не будут подвержены демпфированию, вместо этого используйте velocity_limit_curve.


float directional_velocity_min 🔗

Минимальное значение направленной скорости, умноженное на directional_velocity_curve.

Примечание: Анимированные скорости не будут подвержены демпфированию, вместо этого используйте velocity_limit_curve.


Vector3 emission_box_extents 🔗

  • void set_emission_box_extents(value: Vector3)

  • Vector3 get_emission_box_extents()

Размеры коробки, если emission_shape установлен на EMISSION_SHAPE_BOX.

Примечание: emission_box_extents начинается с центральной точки и применяет значения X, Y и Z в обоих направлениях. Размер в два раза больше площади размеров.


Texture2D emission_color_texture 🔗

  • void set_emission_color_texture(value: Texture2D)

  • Texture2D get_emission_color_texture()

Цвет частицы будет модулироваться цветом, определенным путем выборки этой текстуры в той же точке, что и emission_point_texture.

Примечание: emission_color_texture умножает цвета вершин сетки частицы. Чтобы иметь видимый эффект на BaseMaterial3D, BaseMaterial3D.vertex_color_use_as_albedo должен быть true. Для ShaderMaterial ALBEDO *= COLOR.rgb; должен быть вставлен в функцию шейдера fragment(). В противном случае emission_color_texture не будет иметь видимого эффекта.


Texture2D emission_curve 🔗

Цвет каждой частицы будет умножен на эту CurveTexture в течение ее жизненного цикла.

Примечание: emission_curve умножает цвета вершин сетки частицы. Чтобы иметь видимый эффект на BaseMaterial3D, BaseMaterial3D.vertex_color_use_as_albedo должен быть true. Для ShaderMaterial ALBEDO *= COLOR.rgb; должен быть вставлен в функцию шейдера fragment(). В противном случае emission_curve не будет иметь видимого эффекта.


Texture2D emission_normal_texture 🔗

  • void set_emission_normal_texture(value: Texture2D)

  • Texture2D get_emission_normal_texture()

Скорость и вращение частиц будут установлены путем выборки этой текстуры в той же точке, что и emission_point_texture. Используется только в EMISSION_SHAPE_DIRECTED_POINTS. Может быть создан автоматически из сетки или узла путем выбора «Создать точки излучения из сетки/узла» под инструментом «Частицы» на панели инструментов.


int emission_point_count 🔗

  • void set_emission_point_count(value: int)

  • int get_emission_point_count()

Количество точек эмиссии, если emission_shape установлен на EMISSION_SHAPE_POINTS или EMISSION_SHAPE_DIRECTED_POINTS.


Texture2D emission_point_texture 🔗

  • void set_emission_point_texture(value: Texture2D)

  • Texture2D get_emission_point_texture()

Частицы будут испускаться в позициях, определяемых путем выборки этой текстуры в случайной позиции. Используется с EMISSION_SHAPE_POINTS и EMISSION_SHAPE_DIRECTED_POINTS. Может быть создан автоматически из сетки или узла путем выбора «Создать точки излучения из сетки/узла» под инструментом «Частицы» на панели инструментов.


Vector3 emission_ring_axis 🔗

  • void set_emission_ring_axis(value: Vector3)

  • Vector3 get_emission_ring_axis()

Ось кольца при использовании излучателя EMISSION_SHAPE_RING.


float emission_ring_cone_angle 🔗

  • void set_emission_ring_cone_angle(value: float)

  • float get_emission_ring_cone_angle()

Угол конуса при использовании эмиттера EMISSION_SHAPE_RING. Угол по умолчанию 90 градусов приводит к кольцу, а угол 0 градусов приводит к конусу. Промежуточные значения приведут к кольцу, где один конец больше другого.

Примечание: В зависимости от emission_ring_height угол может быть зафиксирован, если конец кольца достигнут, чтобы сформировать идеальный конус.


float emission_ring_height 🔗

  • void set_emission_ring_height(value: float)

  • float get_emission_ring_height()

Высота кольца при использовании излучателя EMISSION_SHAPE_RING.


float emission_ring_inner_radius 🔗

  • void set_emission_ring_inner_radius(value: float)

  • float get_emission_ring_inner_radius()

Внутренний радиус кольца при использовании излучателя EMISSION_SHAPE_RING.


float emission_ring_radius 🔗

  • void set_emission_ring_radius(value: float)

  • float get_emission_ring_radius()

Радиус кольца при использовании излучателя EMISSION_SHAPE_RING.


EmissionShape emission_shape = 0 🔗

Внутри этой области будут испускаться частицы.


Vector3 emission_shape_offset = Vector3(0, 0, 0) 🔗

  • void set_emission_shape_offset(value: Vector3)

  • Vector3 get_emission_shape_offset()

Смещение для emission_shape в локальном пространстве.


Vector3 emission_shape_scale = Vector3(1, 1, 1) 🔗

  • void set_emission_shape_scale(value: Vector3)

  • Vector3 get_emission_shape_scale()

Масштаб emission_shape в локальном пространстве.


float emission_sphere_radius 🔗

  • void set_emission_sphere_radius(value: float)

  • float get_emission_sphere_radius()

Радиус сферы, если emission_shape установлен в EMISSION_SHAPE_SPHERE.


float flatness = 0.0 🔗

  • void set_flatness(value: float)

  • float get_flatness()

Величина spread по оси Y.


Vector3 gravity = Vector3(0, -9.8, 0) 🔗

Гравитация действует на каждую частицу.


Texture2D hue_variation_curve 🔗

Оттенок каждой частицы будет меняться в зависимости от CurveTexture.


float hue_variation_max = 0.0 🔗

Максимальное начальное изменение оттенка, применяемое к каждой частице. Это изменит оттенок цвета частицы.


float hue_variation_min = 0.0 🔗

Минимальный эквивалент hue_variation_max.


float inherit_velocity_ratio = 0.0 🔗

  • void set_inherit_velocity_ratio(value: float)

  • float get_inherit_velocity_ratio()

Процент скорости соответствующих GPUParticles2D или GPUParticles3D, унаследованный каждой частицей при создании.


float initial_velocity_max = 0.0 🔗

Максимальная начальная величина скорости для каждой частицы. Направление определяется из direction и spread.


float initial_velocity_min = 0.0 🔗

Минимальный эквивалент initial_velocity_max.


float lifetime_randomness = 0.0 🔗

  • void set_lifetime_randomness(value: float)

  • float get_lifetime_randomness()

Коэффициент случайности времени жизни частицы. Уравнение для времени жизни частицы: lifetime * (1.0 - randf() * life_randomness). Например, life_randomness из 0.4 масштабирует время жизни между 0.6 и 1.0 от его исходного значения.


Texture2D linear_accel_curve 🔗

Линейное ускорение каждой частицы будет меняться вдоль этой CurveTexture.


float linear_accel_max = 0.0 🔗

Максимальное линейное ускорение, приложенное к каждой частице в направлении движения.


float linear_accel_min = 0.0 🔗

Минимальный эквивалент linear_accel_max.


Texture2D orbit_velocity_curve 🔗

Орбитальная скорость каждой частицы будет меняться вдоль этой CurveTexture.

Примечание: Для 3D-орбитальной скорости используйте CurveXYZTexture.

Примечание: Анимированные скорости не будут подвержены затуханию, вместо этого используйте velocity_limit_curve.


float orbit_velocity_max = 0.0 🔗

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

Примечание: Анимированные скорости не будут затронуты затуханием, вместо этого используйте velocity_limit_curve.


float orbit_velocity_min = 0.0 🔗

Минимальный эквивалент orbit_velocity_max.

Примечание: Анимированные скорости не будут подвержены демпфированию, вместо этого используйте velocity_limit_curve.


bool particle_flag_align_y = false 🔗

Совместите ось Y частицы с направлением ее скорости.


bool particle_flag_damping_as_friction = false 🔗

Изменяет поведение свойств демпфирования с линейного замедления на замедление на основе процента скорости.


bool particle_flag_disable_z = false 🔗

Если true, частицы не будут двигаться по оси z.


bool particle_flag_rotate_y = false 🔗

Если true, частицы вращаются вокруг оси Y на angle_min.


Texture2D radial_accel_curve 🔗

Радиальное ускорение каждой частицы будет меняться вдоль CurveTexture.


float radial_accel_max = 0.0 🔗

Максимальное радиальное ускорение, применяемое к каждой частице. Заставляет частицу ускоряться от начала координат или к нему, если отрицательно.


float radial_accel_min = 0.0 🔗

Минимальный эквивалент radial_accel_max.


Texture2D radial_velocity_curve 🔗

CurveTexture, которая определяет скорость в течение жизни частицы от (или к) velocity_pivot.

Примечание: Анимированные скорости не будут затронуты затуханием, вместо этого используйте velocity_limit_curve.


float radial_velocity_max = 0.0 🔗

Максимальная радиальная скорость, применяемая к каждой частице. Заставляет частицы двигаться от velocity_pivot или к нему, если отрицательно.

Примечание: Анимированные скорости не будут затронуты затуханием, вместо этого используйте velocity_limit_curve.


float radial_velocity_min = 0.0 🔗

Минимальная радиальная скорость, применяемая к каждой частице. Заставляет частицы двигаться от velocity_pivot или к нему, если отрицательно.

Примечание: Анимированные скорости не будут затронуты затуханием, вместо этого используйте velocity_limit_curve.


Texture2D scale_curve 🔗

Масштаб каждой частицы будет меняться вдоль этой CurveTexture в течение ее жизни. Если вместо этого предоставлено CurveXYZTexture, масштаб будет разделен по осям.


float scale_max = 1.0 🔗

Максимальный начальный масштаб, применяемый к каждой частице.


float scale_min = 1.0 🔗

Минимальный эквивалент scale_max.


Texture2D scale_over_velocity_curve 🔗

Либо CurveTexture, либо CurveXYZTexture, которые масштабируют каждую частицу на основе ее скорости.


float scale_over_velocity_max = 0.0 🔗

Максимальное опорное значение скорости для scale_over_velocity_curve.

scale_over_velocity_curve будет интерполировано между scale_over_velocity_min и scale_over_velocity_max.


float scale_over_velocity_min = 0.0 🔗

Минимальное значение скорости для scale_over_velocity_curve.

scale_over_velocity_curve будет интерполировано между scale_over_velocity_min и scale_over_velocity_max.


float spread = 45.0 🔗

  • void set_spread(value: float)

  • float get_spread()

Начальное направление каждой частицы варьируется от +распространение до -распространение градусов.


int sub_emitter_amount_at_collision 🔗

  • void set_sub_emitter_amount_at_collision(value: int)

  • int get_sub_emitter_amount_at_collision()

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

Примечание: Это значение не должно превышать GPUParticles2D.amount или GPUParticles3D.amount, определенных в узле субэмиттера (не главном узле), относительно времени жизни частиц субэмиттера. Если количество частиц превышено, новые частицы не будут созданы из субэмиттера, пока не истечет достаточное количество частиц.


int sub_emitter_amount_at_end 🔗

  • void set_sub_emitter_amount_at_end(value: int)

  • int get_sub_emitter_amount_at_end()

Количество частиц, которые будут созданы из узла субэмиттера (subemitter), когда частица истекает.

Примечание: Это значение не должно превышать GPUParticles2D.amount или GPUParticles3D.amount, определенных на узле субэмиттера (не главном узле), относительно времени жизни частиц субэмиттера. Если количество частиц превышено, новые частицы не будут созданы из субэмиттера, пока не истекло достаточное количество частиц.


int sub_emitter_amount_at_start 🔗

  • void set_sub_emitter_amount_at_start(value: int)

  • int get_sub_emitter_amount_at_start()

Количество частиц, которые будут созданы из узла субэмиттера при создании частицы.

Примечание: Это значение не должно превышать GPUParticles2D.amount или GPUParticles3D.amount, определенных на узле субэмиттера (не главном узле), относительно времени жизни частиц субэмиттера. Если количество частиц превышено, новые частицы не будут созданы из субэмиттера, пока не истечет достаточное количество частиц.


float sub_emitter_frequency 🔗

  • void set_sub_emitter_frequency(value: float)

  • float get_sub_emitter_frequency()

Частота, с которой частицы должны испускаться из узла субэмиттера. Одна частица будет порождаться каждые sub_emitter_frequency секунд.

Примечание: Это значение не должно превышать GPUParticles2D.amount или GPUParticles3D.amount, определенные на узле субэмиттера (не главном узле), относительно времени жизни частиц субэмиттера. Если количество частиц превышено, новые частицы не будут порождаться из субэмиттера, пока не истечет достаточное количество частиц.


bool sub_emitter_keep_velocity = false 🔗

  • void set_sub_emitter_keep_velocity(value: bool)

  • bool get_sub_emitter_keep_velocity()

Если true, субэмиттер наследует скорость родительской частицы при появлении.


SubEmitterMode sub_emitter_mode = 0 🔗

Режим субэмиттера частиц (см. GPUParticles2D.sub_emitter и GPUParticles3D.sub_emitter).


Texture2D tangential_accel_curve 🔗

Тангенциальное ускорение каждой частицы будет меняться вдоль этой CurveTexture.


float tangential_accel_max = 0.0 🔗

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


float tangential_accel_min = 0.0 🔗

Минимальный эквивалент tangential_accel_max.


bool turbulence_enabled = false 🔗

  • void set_turbulence_enabled(value: bool)

  • bool get_turbulence_enabled()

Если true, включает турбулентность для системы частиц. Турбулентность может использоваться для изменения движения частиц в зависимости от их положения (на основе шаблона 3D-шума). В 3D GPUParticlesAttractorVectorField3D с NoiseTexture3D можно использовать в качестве альтернативы турбулентности, которая работает в мировом пространстве и с несколькими системами частиц, реагирующими одинаково.

Примечание: Включение турбулентности имеет высокие затраты производительности на GPU. Включайте турбулентность только на нескольких системах частиц одновременно и рассмотрите возможность ее отключения при ориентации на мобильные/веб-платформы.


float turbulence_influence_max = 0.1 🔗

Максимальное влияние турбулентности на каждую частицу.

Фактическое количество влияния турбулентности на каждую частицу рассчитывается как случайное значение между turbulence_influence_min и turbulence_influence_max и умножается на количество влияния турбулентности из turbulence_influence_over_life.


float turbulence_influence_min = 0.1 🔗

Минимальное влияние турбулентности на каждую частицу.

Фактическое количество влияния турбулентности на каждую частицу рассчитывается как случайное значение между turbulence_influence_min и turbulence_influence_max и умножается на количество влияния турбулентности из turbulence_influence_over_life.


Texture2D turbulence_influence_over_life 🔗

Степень турбулентности каждой частицы будет зависеть от CurveTexture в течение ее жизненного цикла.


float turbulence_initial_displacement_max = 0.0 🔗

Максимальное смещение положения появления каждой частицы турбулентностью.

Фактическая величина смещения будет коэффициентом базовой турбулентности, умноженным на случайное значение между turbulence_initial_displacement_min и turbulence_initial_displacement_max.


float turbulence_initial_displacement_min = 0.0 🔗

Минимальное смещение положения появления каждой частицы турбулентностью.

Фактическая величина смещения будет коэффициентом базовой турбулентности, умноженным на случайное значение между turbulence_initial_displacement_min и turbulence_initial_displacement_max.


float turbulence_noise_scale = 9.0 🔗

  • void set_turbulence_noise_scale(value: float)

  • float get_turbulence_noise_scale()

Это значение контролирует общий масштаб/частоту картины шума турбулентности.

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


Vector3 turbulence_noise_speed = Vector3(0, 0, 0) 🔗

  • void set_turbulence_noise_speed(value: Vector3)

  • Vector3 get_turbulence_noise_speed()

Скорость прокрутки для поля турбулентности. Это задает направленный тренд для движения узора со временем.

Значение по умолчанию Vector3(0, 0, 0) отключает прокрутку.


float turbulence_noise_speed_random = 0.2 🔗

  • void set_turbulence_noise_speed_random(value: float)

  • float get_turbulence_noise_speed_random()

Скорость изменения поля турбулентности на месте. Это определяет, насколько быстро меняется картина шума со временем.

Значение 0,0 приведет к фиксированной картине.


float turbulence_noise_strength = 1.0 🔗

  • void set_turbulence_noise_strength(value: float)

  • float get_turbulence_noise_strength()

Сила шума турбулентности. Увеличение этого параметра приведет к более сильной, контрастной картине потока.


Texture2D velocity_limit_curve 🔗

CurveTexture, определяющий максимальную скорость частицы за время ее жизни.


Vector3 velocity_pivot = Vector3(0, 0, 0) 🔗

  • void set_velocity_pivot(value: Vector3)

  • Vector3 get_velocity_pivot()

Точка опоры, используемая для расчета радиальной и орбитальной скорости частиц.


Описания метода

Vector2 get_param(param: Parameter) const 🔗

Возвращает минимальное и максимальное значения указанного param в виде вектора.

Компонент x возвращаемого вектора соответствует минимуму, а компонент y соответствует максимуму.


float get_param_max(param: Parameter) const 🔗

Возвращает максимальный диапазон значений для заданного параметра.


float get_param_min(param: Parameter) const 🔗

Возвращает минимальный диапазон значений для заданного параметра.


Texture2D get_param_texture(param: Parameter) const 🔗

Возвращает Texture2D, используемую указанным параметром.


bool get_particle_flag(particle_flag: ParticleFlags) const 🔗

Возвращает true, если указанный флаг частицы включен.


void set_param(param: Parameter, value: Vector2) 🔗

Устанавливает минимальное и максимальное значения указанного param.

Компонент x вектора аргумента соответствует минимуму, а компонент y соответствует максимуму.


void set_param_max(param: Parameter, value: float) 🔗

Устанавливает максимальный диапазон значений для данного параметра.


void set_param_min(param: Parameter, value: float) 🔗

Устанавливает минимальный диапазон значений для данного параметра.


void set_param_texture(param: Parameter, texture: Texture2D) 🔗

Устанавливает Texture2D для указанного Parameter.


void set_particle_flag(particle_flag: ParticleFlags, enable: bool) 🔗

Устанавливает partial_flag в значение enable.