CPUParticles

Inherits: GeometryInstance < VisualInstance < CullInstance < Spatial < Node < Object

基于CPU的3D粒子发射器。

描述

基于CPU的3D粒子节点,用于创建各种粒子系统和效果。

参阅Particles,它是以硬件加速提供相同的功能,但可能无法在旧设备上运行。

注意:Particles不同,其可见性矩形是即时生成的,不需要用户配置。

属性

int

amount

8

float

angle

0.0

Curve

angle_curve

float

angle_random

0.0

float

angular_velocity

0.0

Curve

angular_velocity_curve

float

angular_velocity_random

0.0

float

anim_offset

0.0

Curve

anim_offset_curve

float

anim_offset_random

0.0

float

anim_speed

0.0

Curve

anim_speed_curve

float

anim_speed_random

0.0

Color

color

Color( 1, 1, 1, 1 )

Gradient

color_initial_ramp

Gradient

color_ramp

float

damping

0.0

Curve

damping_curve

float

damping_random

0.0

Vector3

direction

Vector3( 1, 0, 0 )

DrawOrder

draw_order

0

Vector3

emission_box_extents

PoolColorArray

emission_colors

PoolVector3Array

emission_normals

PoolVector3Array

emission_points

Vector3

emission_ring_axis

float

emission_ring_height

float

emission_ring_inner_radius

float

emission_ring_radius

EmissionShape

emission_shape

0

float

emission_sphere_radius

bool

emitting

true

float

explosiveness

0.0

int

fixed_fps

0

bool

flag_align_y

false

bool

flag_disable_z

false

bool

flag_rotate_y

false

float

flatness

0.0

bool

fract_delta

true

Vector3

gravity

Vector3( 0, -9.8, 0 )

float

hue_variation

0.0

Curve

hue_variation_curve

float

hue_variation_random

0.0

float

initial_velocity

0.0

float

initial_velocity_random

0.0

float

lifetime

1.0

float

lifetime_randomness

0.0

float

linear_accel

0.0

Curve

linear_accel_curve

float

linear_accel_random

0.0

bool

local_coords

true

Mesh

mesh

bool

one_shot

false

float

orbit_velocity

Curve

orbit_velocity_curve

float

orbit_velocity_random

float

preprocess

0.0

float

radial_accel

0.0

Curve

radial_accel_curve

float

radial_accel_random

0.0

float

randomness

0.0

float

scale_amount

1.0

Curve

scale_amount_curve

float

scale_amount_random

0.0

float

speed_scale

1.0

float

spread

45.0

float

tangential_accel

0.0

Curve

tangential_accel_curve

float

tangential_accel_random

0.0

方法

void

convert_from_particles ( Node particles )

float

get_param ( Parameter param ) const

Curve

get_param_curve ( Parameter param ) const

float

get_param_randomness ( Parameter param ) const

bool

get_particle_flag ( Flags flag ) const

void

restart ( )

void

set_param ( Parameter param, float value )

void

set_param_curve ( Parameter param, Curve curve )

void

set_param_randomness ( Parameter param, float randomness )

void

set_particle_flag ( Flags flag, bool enable )

枚举

enum DrawOrder:

  • DRAW_ORDER_INDEX = 0 —- 粒子按发射顺序绘制。

  • DRAW_ORDER_LIFETIME = 1 —- 按照剩余寿命的顺序绘制粒子。

  • DRAW_ORDER_VIEW_DEPTH = 2 —- 粒子按深度顺序绘制。


enum Parameter:


enum Flags:


enum EmissionShape:

  • EMISSION_SHAPE_POINT = 0 —- 所有粒子将从一个点发射。

  • EMISSION_SHAPE_SPHERE = 1 —- 粒子将在球体的体积中发射。

  • EMISSION_SHAPE_BOX = 2 —- 粒子将在盒子的体积中发射。

  • EMISSION_SHAPE_POINTS = 3 —- 粒子将在emission_points中随机选择的位置发射。粒子颜色将通过emission_colors进行调制。

  • EMISSION_SHAPE_DIRECTED_POINTS = 4 —- 粒子将在emission_points中随机选择的位置发射。粒子的速度和旋转将基于emission_normals进行设置。粒子颜色将通过emission_colors进行调制。

  • EMISSION_SHAPE_RING = 5 —- 粒子将以环形或圆柱的形式发射出来。

  • EMISSION_SHAPE_MAX = 6 —- 表示EmissionShape枚举的大小。

属性说明

Default

8

Setter

set_amount(value)

Getter

get_amount()

在一个发射周期内排放的粒子数(对应于lifetime)。

注意:改变amount将重置粒子发射,因此,在改变amount之前已经排放的所有粒子将被移除。


Default

0.0

Setter

set_param(value)

Getter

get_param()

应用于每个粒子的初始旋转(以度为单位)。


Setter

set_param_curve(value)

Getter

get_param_curve()

每个粒子的旋转将沿此Curve进行动画处理。


Default

0.0

Setter

set_param_randomness(value)

Getter

get_param_randomness()

旋转随机率。


Default

0.0

Setter

set_param(value)

Getter

get_param()

应用于每个粒子的初始角速度,单位为每秒。设置粒子的旋转速度。


  • Curve angular_velocity_curve

Setter

set_param_curve(value)

Getter

get_param_curve()

每个粒子的角速度将沿此Curve变化。


  • float angular_velocity_random

Default

0.0

Setter

set_param_randomness(value)

Getter

get_param_randomness()

角速度随机率。


Default

0.0

Setter

set_param(value)

Getter

get_param()

粒子动画偏移量。


Setter

set_param_curve(value)

Getter

get_param_curve()

每个粒子的动画偏移将沿此Curve变化。


  • float anim_offset_random

Default

0.0

Setter

set_param_randomness(value)

Getter

get_param_randomness()

动画偏移随机率。


Default

0.0

Setter

set_param(value)

Getter

get_param()

粒子动画速度。


Setter

set_param_curve(value)

Getter

get_param_curve()

每个粒子的动画速度将沿此Curve变化。


Default

0.0

Setter

set_param_randomness(value)

Getter

get_param_randomness()

动画速度随机率。


Default

Color( 1, 1, 1, 1 )

Setter

set_color(value)

Getter

get_color()

每个粒子的初始颜色。为了让粒子在 SpatialMaterial 中显示颜色,请确保将 SpatialMaterial.vertex_color_use_as_albedo 设置为 true


Setter

set_color_initial_ramp(value)

Getter

get_color_initial_ramp()

Each particle’s initial color will vary along this GradientTexture (multiplied with color).


Setter

set_color_ramp(value)

Getter

get_color_ramp()

每个粒子的颜色将在其生命周期内随着这个GradientTexture变化,即与color相乘。


Default

0.0

Setter

set_param(value)

Getter

get_param()

粒子失去速度的速率。


Setter

set_param_curve(value)

Getter

get_param_curve()

阻尼将沿着这条Gradient变化。


Default

0.0

Setter

set_param_randomness(value)

Getter

get_param_randomness()

阻尼随机率。


Default

Vector3( 1, 0, 0 )

Setter

set_direction(value)

Getter

get_direction()

指定粒子发射方向的单位向量。


Default

0

Setter

set_draw_order(value)

Getter

get_draw_order()

粒子绘制顺序。使用DrawOrder值。


Setter

set_emission_box_extents(value)

Getter

get_emission_box_extents()

如果 emission_shape 设置为 EMISSION_SHAPE_BOX,则矩形的范围。


Setter

set_emission_colors(value)

Getter

get_emission_colors()

设置Color以使用EMISSION_SHAPE_POINTSEMISSION_SHAPE_DIRECTED_POINTS来调制粒子。


Setter

set_emission_normals(value)

Getter

get_emission_normals()

设置使用EMISSION_SHAPE_DIRECTED_POINTS时粒子发射的方向。


Setter

set_emission_points(value)

Getter

get_emission_points()

设置使用EMISSION_SHAPE_POINTSEMISSION_SHAPE_DIRECTED_POINTS时产生粒子的初始位置。


Setter

set_emission_ring_axis(value)

Getter

get_emission_ring_axis()

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


  • float emission_ring_height

Setter

set_emission_ring_height(value)

Getter

get_emission_ring_height()

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


  • float emission_ring_inner_radius

Setter

set_emission_ring_inner_radius(value)

Getter

get_emission_ring_inner_radius()

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


  • float emission_ring_radius

Setter

set_emission_ring_radius(value)

Getter

get_emission_ring_radius()

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


Default

0

Setter

set_emission_shape(value)

Getter

get_emission_shape()

粒子将在此区域内发射。有关可能的值,请参阅EmissionShape


  • float emission_sphere_radius

Setter

set_emission_sphere_radius(value)

Getter

get_emission_sphere_radius()

如果EmissionShape设置为EMISSION_SHAPE_SPHERE,则球体的半径。


Default

true

Setter

set_emitting(value)

Getter

is_emitting()

如果true,则正在发射粒子。


Default

0.0

Setter

set_explosiveness_ratio(value)

Getter

get_explosiveness_ratio()

粒子在一个发射周期中的发射速度有多快。如果大于0,则在下一个循环开始之前会有排放量缺口。


Default

0

Setter

set_fixed_fps(value)

Getter

get_fixed_fps()

粒子系统的帧速率固定为一个值。例如,将值更改为2将使粒子以每秒2帧的速度渲染。请注意,这不会减慢粒子系统本身的速度。


Default

false

Setter

set_particle_flag(value)

Getter

get_particle_flag()

将粒子的Y轴与其速度方向对齐。


  • bool flag_disable_z

Default

false

Setter

set_particle_flag(value)

Getter

get_particle_flag()

如果true,则粒子将不会在z轴上移动。


Default

false

Setter

set_particle_flag(value)

Getter

get_particle_flag()

如果true,粒子绕Y轴旋转angle


Default

0.0

Setter

set_flatness(value)

Getter

get_flatness()

Y/Z 平面中的 spread 数量。值 1 将粒子限制在 X/Z 平面上。


Default

true

Setter

set_fractional_delta(value)

Getter

get_fractional_delta()

如果true,将导致分数增量计算,该显示具有更平滑的粒子显示效果。


Default

Vector3( 0, -9.8, 0 )

Setter

set_gravity(value)

Getter

get_gravity()

重力作用于每个粒子。


Default

0.0

Setter

set_param(value)

Getter

get_param()

初始色调变化应用于每个粒子。


  • Curve hue_variation_curve

Setter

set_param_curve(value)

Getter

get_param_curve()

每个粒子的色相都将随之变化。


  • float hue_variation_random

Default

0.0

Setter

set_param_randomness(value)

Getter

get_param_randomness()

色相变化随机率。


Default

0.0

Setter

set_param(value)

Getter

get_param()

每个粒子的初始速度大小。方向来自spread和节点的方向。


  • float initial_velocity_random

Default

0.0

Setter

set_param_randomness(value)

Getter

get_param_randomness()

初始速度随机率。


Default

1.0

Setter

set_lifetime(value)

Getter

get_lifetime()

每个粒子存在的时间,以秒为单位。


  • float lifetime_randomness

Default

0.0

Setter

set_lifetime_randomness(value)

Getter

get_lifetime_randomness()

粒子寿命随机率。


Default

0.0

Setter

set_param(value)

Getter

get_param()

沿运动方向施加到每个粒子的线性加速度。


  • Curve linear_accel_curve

Setter

set_param_curve(value)

Getter

get_param_curve()

每个粒子的线性加速度将沿此Curve变化。


  • float linear_accel_random

Default

0.0

Setter

set_param_randomness(value)

Getter

get_param_randomness()

线性加速度随机率。


Default

true

Setter

set_use_local_coordinates(value)

Getter

get_use_local_coordinates()

如果true,则粒子将使用父节点的坐标空间。如果false,则使用全局坐标。


Setter

set_mesh(value)

Getter

get_mesh()

每个粒子使用的Mesh。如果null,则粒子将是球形。


Default

false

Setter

set_one_shot(value)

Getter

get_one_shot()

如果 true,则只发生一个排放周期。如果在周期内设置 true,则排放将在周期结束时停止。


Setter

set_param(value)

Getter

get_param()

应用于每个粒子的轨道速度。使粒子在局部XY平面上绕原点旋转。用每秒绕原点旋转的次数来表示。

只有当flag_disable_ztrue时,此属性才可用。


  • Curve orbit_velocity_curve

Setter

set_param_curve(value)

Getter

get_param_curve()

每个粒子的轨道速度将沿此Curve变化。


  • float orbit_velocity_random

Setter

set_param_randomness(value)

Getter

get_param_randomness()

轨道速度随机率。


Default

0.0

Setter

set_pre_process_time(value)

Getter

get_pre_process_time()

粒子系统启动时就好像已经运行了这么多秒一样。


Default

0.0

Setter

set_param(value)

Getter

get_param()

径向加速度应用于每个粒子。使粒子加速远离原点。


  • Curve radial_accel_curve

Setter

set_param_curve(value)

Getter

get_param_curve()

每个粒子的径向加速度将沿此Curve变化。


  • float radial_accel_random

Default

0.0

Setter

set_param_randomness(value)

Getter

get_param_randomness()

径向加速度随机率。


Default

0.0

Setter

set_randomness_ratio(value)

Getter

get_randomness_ratio()

发射寿命随机率。


Default

1.0

Setter

set_param(value)

Getter

get_param()

初始比例应用于每个粒子。


  • Curve scale_amount_curve

Setter

set_param_curve(value)

Getter

get_param_curve()

每个粒子的比例将随着Curve的变化而变化。


  • float scale_amount_random

Default

0.0

Setter

set_param_randomness(value)

Getter

get_param_randomness()

标度随机率。


Default

1.0

Setter

set_speed_scale(value)

Getter

get_speed_scale()

粒子系统的运行速度缩放比例。值0可用于暂停粒子。


Default

45.0

Setter

set_spread(value)

Getter

get_spread()

每个粒子的初始方向范围为+spread-spread度。适用于X/Z平面和Y/Z平面。


Default

0.0

Setter

set_param(value)

Getter

get_param()

切向加速度应用于每个粒子。切向加速度垂直于粒子的速度,使粒子产生涡旋运动。


  • Curve tangential_accel_curve

Setter

set_param_curve(value)

Getter

get_param_curve()

每个粒子的切向加速度将沿此Curve变化。


  • float tangential_accel_random

Default

0.0

Setter

set_param_randomness(value)

Getter

get_param_randomness()

切向加速度随机率。

方法说明

  • void convert_from_particles ( Node particles )

设置此节点的属性,以将给定的 Particles 节点与指定的 ParticlesMaterial 匹配。


返回由Parameter指定的参数的基值。


返回由Parameter指定的参数的Curve


返回Parameter指定的参数的随机性系数。


返回给定标志的启用状态(有关选项,请参阅Flags)。


  • void restart ( )

重新启动粒子发射器。


设置Parameter指定的参数的基值。


设置Parameter指定的参数的Curve


设置Parameter指定的参数的随机性因子。


  • void set_particle_flag ( Flags flag, bool enable )

启用或禁用给定标志(有关选项,请参阅Flags)。