ParticleProcessMaterial

继承: Material < Resource < RefCounted < Object

保存ParticlesGPU节点的粒子配置。

描述

ParticleProcessMaterial定义粒子属性和行为。它用在ParticlesGPU节点的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_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_shapeemission_shape_scaleemission_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()来设置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_AT_START = 4

SubEmitterMode SUB_EMITTER_MAX = 5

表示SubEmitterMode枚举的大小。


enum CollisionMode: 🔗

CollisionMode COLLISION_DISABLED = 0

粒子没有碰撞。粒子将通过ParticleColliderGPUBase节点。

CollisionMode COLLISION_RIGID = 1

RigidBulk-使用ParticleColliderGPUBase节点的粒子碰撞。

CollisionMode COLLISION_HIDE_ON_CONTACT = 2

ParticleColliderGPUBase节点碰撞时立即隐藏粒子。这可以与使用COLLISION_RIGID碰撞模式的子发射器相结合,在碰撞时用子发射器“替换”父粒子。

CollisionMode COLLISION_MAX = 3

表示CollisionMode枚举的大小。


属性说明

Texture2D alpha_curve 🔗

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

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


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(value: bool)

  • bool is_attractor_interaction_enabled()

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


float collision_bounce 🔗

  • void set_collision_bounce(value: float)

  • float get_collision_bounce()

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


float collision_friction 🔗

  • void set_collision_friction(value: float)

  • float get_collision_friction()

粒子的摩擦力。数值范围从0(无摩擦力)到1(最大摩擦力)。仅当collision_modeCOLLISION_RIGID时有效。


CollisionMode collision_mode = 0 🔗

粒子的碰撞模式。

注意: 3D粒子只能与ParticleColliderGPUBase节点碰撞,不能与PhysicsBulkBase节点碰撞。要使粒子与各种对象碰撞,可以添加ParticleColliderGPUBase节点作为PhysicsBulkBase节点的子节点。在3D中,碰撞仅发生在ParticlesGPU节点的ParticlesGPU.visibility_aabb定义的区域内。


bool collision_use_scale = false 🔗

  • void set_collision_use_scale(value: bool)

  • bool is_collision_using_scale()

如果true,则将ParticlesGPU.collision_base_size乘以粒子的有效尺度(参见scale_minscale_maxscale_curvescale_over_velocity_curve)。


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

每个粒子的初始颜色。

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


Texture2D color_initial_ramp 🔗

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

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


Texture2D color_ramp 🔗

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

注意:color_ramp将粒子网格的顶点颜色相乘。要在BaseMaterial3D上产生可见效果,BaseMaterial3D.vertex_color_use_as_albedo必须true。对于ShaderMaterialALBEDO*=COLO. 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(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。对于ShaderMaterialALBEDO*=COLO. rgb;必须插入着色器的片段()函数中。否则,emission_color_texture将没有可见效果。


Texture2D emission_curve 🔗

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

注意:emission_curve将粒子网格的顶点颜色相乘。要在BaseMaterial3D上产生可见效果,BaseMaterial3D.vertex_color_use_as_albedo必须true。对于ShaderMaterialALBEDO*=COLO. rgb;必须插入着色器的片段()函数中。否则,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_POINTSEMISSION_SHAPE_DIRECTED_POINTS时的发射点数。


Texture2D emission_point_texture 🔗

  • void set_emission_point_texture(value: Texture2D)

  • Texture2D get_emission_point_texture()

粒子将在随机位置采样纹理确定的位置发射。与EMISSION_SHAPE_POINTSEMISSION_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 🔗

粒子将在此区域内发射。对值使用EmissionShape常量。


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

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

  • float get_inherit_velocity_ratio()

产卵时每个粒子继承的相应ParticlesGPU的速度百分比。


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

  • float get_lifetime_randomness()

粒子寿命随机性比。粒子寿命的方程是寿命*(1.0-randf()*lifetime_randomness)。例如,0.4lifetime_randomness将其原始值的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(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结合时,这可以用来实现雨滴击中地面等效果。

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


int sub_emitter_amount_at_end 🔗

  • void set_sub_emitter_amount_at_end(value: int)

  • int get_sub_emitter_amount_at_end()

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

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


int sub_emitter_amount_at_start 🔗

  • void set_sub_emitter_amount_at_start(value: int)

  • int get_sub_emitter_amount_at_start()

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

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


float sub_emitter_frequency 🔗

  • void set_sub_emitter_frequency(value: float)

  • float get_sub_emitter_frequency()

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

注意:相对于子发射器的粒子生命周期,该值不应超过子发射器节点(不是主节点)上定义的ParticlesGPU.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 🔗

粒子子发射器模式(参见ParticlesGPU.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中,带有NoiseTexture3DParticleAspiratorVectorFieldGPU可用作在世界空间中工作的湍流的替代品,并且多个粒子系统以相同的方式反应。

注意:启用湍流在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(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。有关选项,请参阅ParticleFlags


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) 🔗

为指定的Parameter设置Texture2D


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

如果true,则启用指定的粒子标志。有关选项,请参阅ParticleFlags