Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

ParticleProcessMaterial

继承: Material < Resource < RefCounted < Object

保存用于 GPUParticles2DGPUParticles3D 节点的粒子配置。

描述

ParticleProcessMaterial 定义了粒子的属性和行为。GPUParticles3DGPUParticles2D 节点的 process_material 会使用这种材质。这种材质的有些属性是在粒子发射时应用的,有些则会应用 CurveTextureGradientTexture1D 让数值或颜色值在粒子的生命周期中不断变化。

属性

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_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

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)

方法

float

get_param_max ( Parameter param ) const

float

get_param_min ( Parameter param ) const

Texture2D

get_param_texture ( Parameter param ) const

bool

get_particle_flag ( ParticleFlags particle_flag ) const

void

set_param_max ( Parameter param, float value )

void

set_param_min ( Parameter param, float value )

void

set_param_texture ( Parameter param, Texture2D texture )

void

set_particle_flag ( ParticleFlags particle_flag, bool enable )


枚举

enum Parameter:

Parameter PARAM_INITIAL_LINEAR_VELOCITY = 0

set_param_minset_param_maxset_param_texture 一起使用,设置初始速度属性。

Parameter PARAM_ANGULAR_VELOCITY = 1

set_param_minset_param_maxset_param_texture 一起使用,设置角速度属性。

Parameter PARAM_ORBIT_VELOCITY = 2

set_param_minset_param_maxset_param_texture 一起使用,设置轨道速度属性。

Parameter PARAM_LINEAR_ACCEL = 3

set_param_minset_param_maxset_param_texture 一起使用,设置线速度属性。

Parameter PARAM_RADIAL_ACCEL = 4

set_param_minset_param_maxset_param_texture 一起使用,设置径向加速度属性。

Parameter PARAM_TANGENTIAL_ACCEL = 5

set_param_minset_param_maxset_param_texture 一起使用,设置切向加速度属性。

Parameter PARAM_DAMPING = 6

set_param_minset_param_maxset_param_texture 一起使用,设置阻尼属性。

Parameter PARAM_ANGLE = 7

set_param_minset_param_maxset_param_texture 一起使用,设置角度属性。

Parameter PARAM_SCALE = 8

set_param_minset_param_maxset_param_texture 一起使用,设置缩放属性。

Parameter PARAM_HUE_VARIATION = 9

set_param_minset_param_maxset_param_texture 一起使用,设置色相变化属性。

Parameter PARAM_ANIM_SPEED = 10

set_param_minset_param_maxset_param_texture 一起使用,设置动画速度属性。

Parameter PARAM_ANIM_OFFSET = 11

set_param_minset_param_maxset_param_texture 一起使用,设置动画偏移属性。

Parameter PARAM_RADIAL_VELOCITY = 15

set_param_minset_param_maxset_param_texture 一起使用来设置径向速度属性。

Parameter PARAM_DIRECTIONAL_VELOCITY = 16

set_param_minset_param_maxset_param_texture 一起使用来设置定向速度属性。

Parameter PARAM_SCALE_OVER_VELOCITY = 17

set_param_minset_param_maxset_param_texture 一起使用来设置速度属性的缩放。

Parameter PARAM_MAX = 18

代表 Parameter 枚举的大小。

Parameter PARAM_TURB_VEL_INFLUENCE = 13

set_param_minset_param_max 一起使用,以设置湍流对每个粒子速度的最小和最大影响。

Parameter PARAM_TURB_INIT_DISPLACEMENT = 14

set_param_minset_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 一起使用,设置 particle_flag_align_y

ParticleFlags PARTICLE_FLAG_ROTATE_Y = 1

set_particle_flag 一起使用,设置 particle_flag_rotate_y

ParticleFlags PARTICLE_FLAG_DISABLE_Z = 2

set_particle_flag 一起使用,设置particle_flag_disable_z

ParticleFlags PARTICLE_FLAG_DAMPING_AS_FRICTION = 3

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

SubEmitterMode SUB_EMITTER_CONSTANT = 1

SubEmitterMode SUB_EMITTER_AT_END = 2

SubEmitterMode SUB_EMITTER_AT_COLLISION = 3

SubEmitterMode SUB_EMITTER_MAX = 4

代表 SubEmitterMode 枚举的大小。


enum CollisionMode:

CollisionMode COLLISION_DISABLED = 0

粒子没有碰撞。粒子会穿过 GPUParticlesCollision3D 节点。

CollisionMode COLLISION_RIGID = 1

为使用 GPUParticlesCollision3D 节点的粒子设置 RigidBody3D 风格的碰撞。

CollisionMode COLLISION_HIDE_ON_CONTACT = 2

GPUParticlesCollision3D 节点碰撞时立即隐藏粒子。可以和使用 COLLISION_RIGID 碰撞模式的子发射器组合,在撞击时将父粒子“替换”为子发射器。

CollisionMode COLLISION_MAX = 3

代表 CollisionMode 枚举的大小。


属性说明

Texture2D alpha_curve

每个粒子颜色的 alpha 值将在其生命周期内乘以该 CurveTexture


Texture2D angle_curve

每个粒子的旋转将沿着这个 CurveTexture 动画。


float angle_max = 0.0

应用于每个粒子的最大初始旋转,以度为单位。

仅在 particle_flag_disable_zparticle_flag_rotate_ytrue,或 BaseMaterial3D 使用 BaseMaterial3D.BILLBOARD_PARTICLES 绘制粒子时应用。


float angle_min = 0.0

angle_max 的对应最小值。


Texture2D angular_velocity_curve

在每个粒子生命周期内,其角速度(旋转速度)将沿着此 CurveTexture 变化。


float angular_velocity_max = 0.0

应用于每个粒子的最大初始角速度(旋转速度),以每秒为单位。

仅在 particle_flag_disable_zparticle_flag_rotate_ytrue,或 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 的动画速度是指粒子在生命周期内会做完整的 01 的偏移循环,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 ( bool value )

  • bool is_attractor_interaction_enabled ( )

如果为 true,则启用与粒子吸引器的交互。在 3D 中,吸引力仅发生在 GPUParticles3D 节点的 GPUParticles3D.visibility_aabb 定义的区域内。


float collision_bounce

  • void set_collision_bounce ( float value )

  • float get_collision_bounce ( )

粒子的弹性。值范围从 0(无弹跳)到 1(完全弹跳)。仅当 collision_modeCOLLISION_RIGID 时有效。


float collision_friction

  • void set_collision_friction ( float value )

  • float get_collision_friction ( )

粒子的摩擦。值范围从 0(无摩擦)到 1(最大摩擦)。


CollisionMode collision_mode = 0

粒子的碰撞模式。

注意:3D 粒子只能与 GPUParticlesCollision3D 节点碰撞,无法与 PhysicsBody3D 节点碰撞。要使粒子与不同的物体碰撞,可以将 GPUParticlesCollision3D 节点添加为 PhysicsBody3D 节点的子节点。在 3D 中,碰撞仅发生在 GPUParticles3D 节点的 GPUParticles3D.visibility_aabb 定义的区域内。

注意:2D 粒子只能与 LightOccluder2D 节点碰撞,无法与 PhysicsBody2D 节点碰撞。


bool collision_use_scale = false

  • void set_collision_use_scale ( bool value )

  • bool is_collision_using_scale ( )

如果为 trueGPUParticles3D.collision_base_size 乘以粒子的有效缩放(请参阅 scale_minscale_maxscale_curve、和 scale_over_velocity_curve)。


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

  • void set_color ( Color value )

  • Color get_color ( )

每个粒子的初始颜色。如果定义了 GPUParticles2Dtexture,它将乘以该颜色。

注意:color 乘以粒子网格的顶点颜色。要在 BaseMaterial3D 上产生可见效果,BaseMaterial3D.vertex_color_use_as_albedo 必须true。对于 ShaderMaterial,必须在着色器的 fragment() 函数中插入 ALBEDO *= COLOR.rgb;。否则,color 将没有可见效果。


Texture2D color_initial_ramp

每个粒子的初始颜色将沿着该 GradientTexture1D(乘以 color)而变化。

注意:color_initial_ramp 乘以粒子网格的顶点颜色。要在 BaseMaterial3D 上产生可见效果,BaseMaterial3D.vertex_color_use_as_albedo 必须true。对于 ShaderMaterial,必须在着色器的 fragment() 函数中插入 ALBEDO *= COLOR.rgb;。否则,color_initial_ramp 将没有可见效果。


Texture2D color_ramp

每个粒子的颜色将在其生命周期内沿该 GradientTexture1D 变化(乘以 color)。

注意:color_ramp 乘以粒子网格的顶点颜色。要在 BaseMaterial3D 上产生可见效果,BaseMaterial3D.vertex_color_use_as_albedo 必须true。对于 ShaderMaterial,必须在着色器的 fragment() 函数中插入 ALBEDO *= COLOR.rgb;。否则,color_ramp 将没有可见效果。


Texture2D damping_curve

阻尼将沿着这个 CurveTexture 变化。


float damping_max = 0.0

粒子失去速度的最大速率。例如 100 的值表示粒子将在 1 秒内,速度从 100 变为 0


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 ( Vector3 value )

  • Vector3 get_emission_box_extents ( )

emission_shape 被设置为 EMISSION_SHAPE_BOX 时,该框的范围。


Texture2D emission_color_texture

  • void set_emission_color_texture ( Texture2D value )

  • Texture2D get_emission_color_texture ( )

粒子颜色将被调制,调制使用的颜色将通过对该纹理在与 emission_point_texture 相同的点处进行采样来确定。

注意:emission_color_texture 乘以粒子网格的顶点颜色。要在 BaseMaterial3D 上产生可见效果,BaseMaterial3D.vertex_color_use_as_albedo 必须true。对于 ShaderMaterial,必须在着色器的 fragment() 函数中插入 ALBEDO *= COLOR.rgb;。否则,emission_color_texture 将没有可见效果。


Texture2D emission_curve

每个粒子的颜色将在其生命周期内乘以该 CurveTexture

注意:除非渲染材质被标记为无阴影,否则该属性不会产生可见效果。


Texture2D emission_normal_texture

  • void set_emission_normal_texture ( Texture2D value )

  • Texture2D get_emission_normal_texture ( )

粒子的速度和旋转将通过在与emission_point_texture相同的点上对该纹理进行采样来设置。仅在EMISSION_SHAPE_DIRECTED_POINTS中使用。可以通过选择工具栏中 "粒子 "工具下的 "从网格/节点创建发射点",从网格或节点自动创建。


int emission_point_count

  • void set_emission_point_count ( int value )

  • int get_emission_point_count ( )

emission_shape 被设置为 EMISSION_SHAPE_POINTSEMISSION_SHAPE_DIRECTED_POINTS 时,发射点的数量。


Texture2D emission_point_texture

  • void set_emission_point_texture ( Texture2D value )

  • Texture2D get_emission_point_texture ( )

粒子将被发射到由随机采样纹理所决定的位置。与EMISSION_SHAPE_POINTSEMISSION_SHAPE_DIRECTED_POINTS一起使用。可以通过选择工具栏中的“粒子”工具下的“从网格/节点中创建发射点”自动创建网格或节点。


Vector3 emission_ring_axis

  • void set_emission_ring_axis ( Vector3 value )

  • Vector3 get_emission_ring_axis ( )

使用形为 EMISSION_SHAPE_RING 的发射器时环的轴。


float emission_ring_height

  • void set_emission_ring_height ( float value )

  • float get_emission_ring_height ( )

使用形为 EMISSION_SHAPE_RING 的发射器时环的高度。


float emission_ring_inner_radius

  • void set_emission_ring_inner_radius ( float value )

  • float get_emission_ring_inner_radius ( )

使用形为 EMISSION_SHAPE_RING 的发射器时环的内半径。


float emission_ring_radius

  • void set_emission_ring_radius ( float value )

  • float get_emission_ring_radius ( )

使用形为 EMISSION_SHAPE_RING 的发射器时环的半径。


EmissionShape emission_shape = 0

粒子将在这个区域内发射。使用EmissionShape常量作为值。


Vector3 emission_shape_offset = Vector3(0, 0, 0)

  • void set_emission_shape_offset ( Vector3 value )

  • Vector3 get_emission_shape_offset ( )

emission_shape 在局部空间中的偏移量。


Vector3 emission_shape_scale = Vector3(1, 1, 1)

  • void set_emission_shape_scale ( Vector3 value )

  • Vector3 get_emission_shape_scale ( )

局部空间中 emission_shape 的缩放。


float emission_sphere_radius

  • void set_emission_sphere_radius ( float value )

  • float get_emission_sphere_radius ( )

emission_shape 被设置为 EMISSION_SHAPE_SPHERE 时,该球体的半径。


float flatness = 0.0

  • void set_flatness ( float value )

  • float get_flatness ( )

沿 Y 轴的 spread 量。


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 ( float value )

  • float get_inherit_velocity_ratio ( )

每个粒子在生成时继承的相应 GPUParticles2DGPUParticles3D 的速度百分比。


float initial_velocity_max = 0.0

每个粒子的最大初始速度大小。方向来自 directionspread


float initial_velocity_min = 0.0

initial_velocity_max 的对应最小值。


float lifetime_randomness = 0.0

  • void set_lifetime_randomness ( float value )

  • float get_lifetime_randomness ( )

粒子寿命随机比率。粒子寿命的公式为 lifetime * (1.0 - randf() * lifetime_randomness)。例如 lifetime_randomness0.4 时,寿命会被缩放为原本的 0.61.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

根据 CurveTextureCurveXYZTexture 缩放每个粒子的速度。


float scale_over_velocity_max = 0.0

scale_over_velocity_curve 的最大速度参考值。

scale_over_velocity_curve 将在 scale_over_velocity_minscale_over_velocity_max 之间插值。


float scale_over_velocity_min = 0.0

scale_over_velocity_curve 的最小速度参考值。

scale_over_velocity_curve 将在 scale_over_velocity_minscale_over_velocity_max 之间插值。


float spread = 45.0

  • void set_spread ( float value )

  • float get_spread ( )

每个粒子的初始方向范围,从 +spread 度到 -spread 度。


int sub_emitter_amount_at_collision

  • void set_sub_emitter_amount_at_collision ( int value )

  • int get_sub_emitter_amount_at_collision ( )

发生碰撞时从子发射器节点生成的粒子数量。当与主要粒子材质上的 COLLISION_HIDE_ON_CONTACT 结合使用时,可以用来实现雨滴撞击地面等效果。

注意:该值不应超过子发射器节点(不是主节点)上定义的 GPUParticles2D.amountGPUParticles3D.amount,相对于子发射器的粒子寿命。如果超过粒子数量,则在足够的粒子过期之前,不会从子发射器中产生新的粒子。


int sub_emitter_amount_at_end

  • void set_sub_emitter_amount_at_end ( int value )

  • int get_sub_emitter_amount_at_end ( )

粒子过期时从子发射器节点生成的粒子数量。

注意:该值不应超过子发射器节点(不是主节点)上定义的 GPUParticles2D.amountGPUParticles3D.amount,相对于子发射器的粒子寿命。如果超过粒子数量,则在足够的粒子过期之前,不会从子发射器中产生新的粒子。


float sub_emitter_frequency

  • void set_sub_emitter_frequency ( float value )

  • float get_sub_emitter_frequency ( )

从子发射器节点发射粒子的频率。每 sub_emitter_frequency 秒就会产生一个粒子。

注意:该值不应超过子发射器节点(不是主节点)上定义的 GPUParticles2D.amountGPUParticles3D.amount,相对于子发射器的粒子寿命。如果超过粒子数量,则在足够的粒子过期之前,不会从子发射器中产生新的粒子。


bool sub_emitter_keep_velocity = false

  • void set_sub_emitter_keep_velocity ( bool value )

  • bool get_sub_emitter_keep_velocity ( )

如果为 true,则子发射器在其生成时继承父粒子的速度。


SubEmitterMode sub_emitter_mode = 0

粒子子发射器模式(参见 GPUParticles2D.sub_emitterGPUParticles3D.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 ( bool value )

  • bool get_turbulence_enabled ( )

如果为 true,则为粒子系统启用湍流。湍流可以(基于 3D 噪声图案)根据粒子的位置来改变粒子的移动。在 3D 中,可以用 GPUParticlesAttractorVectorField3DNoiseTexture3D 作为世界空间湍流的平替,能够让不同粒子系统作出相同的反应。

注意:启用湍流对于 GPU 有较高的性能消耗。请最多只对少量粒子系统启用湍流,以移动/Web 平台作为目标时请考虑禁用湍流。


float turbulence_influence_max = 0.1

对每个粒子的最大湍流影响。

对每个粒子的实际湍流影响量,计算为介于 turbulence_influence_minturbulence_influence_max 之间的一个随机值,并乘以来自 turbulence_influence_over_life 的湍流影响量。


float turbulence_influence_min = 0.1

对每个粒子的最小湍流影响。

对每个粒子的实际湍流影响量,计算为介于 turbulence_influence_minturbulence_influence_max 之间的一个随机值,并乘以来自 turbulence_influence_over_life 的湍流影响量。


Texture2D turbulence_influence_over_life

每个粒子的湍流量,将在其生命周期内沿这条 CurveTexture 受到影响。


float turbulence_initial_displacement_max = 0.0

湍流对每个粒子出生位置的最大位移。

实际位移量将是基础湍流乘以一个介于 turbulence_initial_displacement_minturbulence_initial_displacement_max 之间的随机值的系数。


float turbulence_initial_displacement_min = 0.0

湍流对每个粒子出生位置的最小位移。

实际位移量将是基础湍流乘以一个介于 turbulence_initial_displacement_minturbulence_initial_displacement_max 之间的随机值的系数。


float turbulence_noise_scale = 9.0

  • void set_turbulence_noise_scale ( float value )

  • float get_turbulence_noise_scale ( )

该值控制湍流噪声图案的整体比例/频率。

小的比例会产生更小的特征具有更多细节,而高的比例会产生具有更大特征的更平滑的噪声。


Vector3 turbulence_noise_speed = Vector3(0, 0, 0)

  • void set_turbulence_noise_speed ( Vector3 value )

  • Vector3 get_turbulence_noise_speed ( )

湍流场的滚动速度。设置的是图案随时间移动的方向趋势。

默认值 Vector3(0, 0, 0) 会将滚动关闭。


float turbulence_noise_speed_random = 0.2

  • void set_turbulence_noise_speed_random ( float value )

  • float get_turbulence_noise_speed_random ( )

湍流场的原地变化率。会决定噪声图案随时间变化的快慢。

值为 0.0 时得到的是固定的图案。


float turbulence_noise_strength = 1.0

  • void set_turbulence_noise_strength ( float value )

  • float get_turbulence_noise_strength ( )

湍流噪声强度。增加此值将导致更强烈、对比度更高的噪声图案。


Texture2D velocity_limit_curve

  • void set_velocity_limit_curve ( Texture2D value )

  • Texture2D get_velocity_limit_curve ( )

定义粒子在其生命周期内的最大速度的 CurveTexture


Vector3 velocity_pivot = Vector3(0, 0, 0)

  • void set_velocity_pivot ( Vector3 value )

  • Vector3 get_velocity_pivot ( )

用于计算粒子的径向速度和轨道速度的轴心点。


方法说明

float get_param_max ( Parameter param ) const

返回给定参数的最大值范围。


float get_param_min ( Parameter param ) const

返回给定参数的最小值范围。


Texture2D get_param_texture ( Parameter param ) const

返回指定参数所使用的 Texture2D


bool get_particle_flag ( ParticleFlags particle_flag ) const

如果启用了指定的粒子标志,则返回 true。可选项见 ParticleFlags


void set_param_max ( Parameter param, float value )

设置给定参数的最大值范围。


void set_param_min ( Parameter param, float value )

设置给定参数的最小值范围。


void set_param_texture ( Parameter param, Texture2D texture )

为指定的 Parameter 设置 Texture2D


void set_particle_flag ( ParticleFlags particle_flag, bool enable )

如果为 true,则启用指定的粒子标志。选项见 ParticleFlags