CPUParticles
Inherits: GeometryInstance < VisualInstance < CullInstance < Spatial < Node < Object
基于CPU的3D粒子发射器。
描述
基于CPU的3D粒子节点,用于创建各种粒子系统和效果。
参阅Particles,它是以硬件加速提供相同的功能,但可能无法在旧设备上运行。
注意: 与Particles不同,其可见性矩形是即时生成的,不需要用户配置。
属性
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
|
方法
void | convert_from_particles ( Node particles ) |
get_param_curve ( Parameter param ) const | |
get_param_randomness ( Parameter param ) const | |
get_particle_flag ( Flags flag ) const | |
void | restart ( ) |
void | |
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:
PARAM_INITIAL_LINEAR_VELOCITY = 0 —- 用于在 set_param、set_param_randomness 和 set_param_curve 中设置初始速度属性。
PARAM_ANGULAR_VELOCITY = 1 —- 用于在 set_param、set_param_randomness 和 set_param_curve 中设置角速度属性。
PARAM_ORBIT_VELOCITY = 2 —- 用于在 set_param、set_param_randomness 和 set_param_curve 中设置轨道速度属性。
PARAM_LINEAR_ACCEL = 3 —- 用于在 set_param、set_param_randomness 和 set_param_curve 中设置线性加速度属性。
PARAM_RADIAL_ACCEL = 4 —- 用于在 set_param、set_param_randomness 和 set_param_curve 中设置径向加速度属性。
PARAM_TANGENTIAL_ACCEL = 5 —- 用于在 set_param、set_param_randomness 和 set_param_curve 中设置切向加速度属性。
PARAM_DAMPING = 6 —- 用于在 set_param、set_param_randomness 和 set_param_curve 中设置阻尼属性。
PARAM_ANGLE = 7 —- 用于在 set_param、set_param_randomness 和 set_param_curve 中设置角度属性。
PARAM_SCALE = 8 —- 用于在 set_param、set_param_randomness 和 set_param_curve 中设置缩放属性。
PARAM_HUE_VARIATION = 9 —- 用于在 set_param、set_param_randomness 和 set_param_curve 中设置色调变化属性。
PARAM_ANIM_SPEED = 10 —- 用于在 set_param、set_param_randomness 和 set_param_curve 中设置动画速度属性。
PARAM_ANIM_OFFSET = 11 —- 用于在 set_param、set_param_randomness 和 set_param_curve 中设置动画偏移属性。
PARAM_MAX = 12 —- 表示Parameter枚举的大小。
enum Flags:
FLAG_ALIGN_Y_TO_VELOCITY = 0 —- 用于在 set_particle_flag 中设置 flag_align_y。
FLAG_ROTATE_Y = 1 —- 用于在 set_particle_flag 中设置 flag_rotate_y。
FLAG_DISABLE_Z = 2 —- 用于在 set_particle_flag 中设置 flag_disable_z。
FLAG_MAX = 3 —- 表示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枚举的大小。
属性说明
- int amount
Default |
|
Setter | set_amount(value) |
Getter | get_amount() |
在一个发射周期内排放的粒子数(对应于lifetime)。
注意:改变amount将重置粒子发射,因此,在改变amount之前已经排放的所有粒子将被移除。
- float angle
Default |
|
Setter | set_param(value) |
Getter | get_param() |
应用于每个粒子的初始旋转(以度为单位)。
- Curve angle_curve
Setter | set_param_curve(value) |
Getter | get_param_curve() |
每个粒子的旋转将沿此Curve进行动画处理。
- float angle_random
Default |
|
Setter | set_param_randomness(value) |
Getter | get_param_randomness() |
旋转随机率。
- float angular_velocity
Default |
|
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 |
|
Setter | set_param_randomness(value) |
Getter | get_param_randomness() |
角速度随机率。
- float anim_offset
Default |
|
Setter | set_param(value) |
Getter | get_param() |
粒子动画偏移量。
- Curve anim_offset_curve
Setter | set_param_curve(value) |
Getter | get_param_curve() |
每个粒子的动画偏移将沿此Curve变化。
- float anim_offset_random
Default |
|
Setter | set_param_randomness(value) |
Getter | get_param_randomness() |
动画偏移随机率。
- float anim_speed
Default |
|
Setter | set_param(value) |
Getter | get_param() |
粒子动画速度。
- Curve anim_speed_curve
Setter | set_param_curve(value) |
Getter | get_param_curve() |
每个粒子的动画速度将沿此Curve变化。
- float anim_speed_random
Default |
|
Setter | set_param_randomness(value) |
Getter | get_param_randomness() |
动画速度随机率。
- Color color
Default |
|
Setter | set_color(value) |
Getter | get_color() |
每个粒子的初始颜色。为了让粒子在 SpatialMaterial 中显示颜色,请确保将 SpatialMaterial.vertex_color_use_as_albedo 设置为 true
。
- Gradient color_initial_ramp
Setter | set_color_initial_ramp(value) |
Getter | get_color_initial_ramp() |
Each particle’s initial color will vary along this GradientTexture (multiplied with color).
- Gradient color_ramp
Setter | set_color_ramp(value) |
Getter | get_color_ramp() |
每个粒子的颜色将在其生命周期内随着这个GradientTexture变化,即与color相乘。
- float damping
Default |
|
Setter | set_param(value) |
Getter | get_param() |
粒子失去速度的速率。
- Curve damping_curve
Setter | set_param_curve(value) |
Getter | get_param_curve() |
阻尼将沿着这条Gradient变化。
- float damping_random
Default |
|
Setter | set_param_randomness(value) |
Getter | get_param_randomness() |
阻尼随机率。
- Vector3 direction
Default |
|
Setter | set_direction(value) |
Getter | get_direction() |
指定粒子发射方向的单位向量。
- DrawOrder draw_order
Default |
|
Setter | set_draw_order(value) |
Getter | get_draw_order() |
粒子绘制顺序。使用DrawOrder值。
- Vector3 emission_box_extents
Setter | set_emission_box_extents(value) |
Getter | get_emission_box_extents() |
如果 emission_shape 设置为 EMISSION_SHAPE_BOX,则矩形的范围。
- PoolColorArray emission_colors
Setter | set_emission_colors(value) |
Getter | get_emission_colors() |
设置Color以使用EMISSION_SHAPE_POINTS或EMISSION_SHAPE_DIRECTED_POINTS来调制粒子。
- PoolVector3Array emission_normals
Setter | set_emission_normals(value) |
Getter | get_emission_normals() |
设置使用EMISSION_SHAPE_DIRECTED_POINTS时粒子发射的方向。
- PoolVector3Array emission_points
Setter | set_emission_points(value) |
Getter | get_emission_points() |
设置使用EMISSION_SHAPE_POINTS或EMISSION_SHAPE_DIRECTED_POINTS时产生粒子的初始位置。
- Vector3 emission_ring_axis
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时,环形发射器的半径。
- EmissionShape emission_shape
Default |
|
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,则球体的半径。
- bool emitting
Default |
|
Setter | set_emitting(value) |
Getter | is_emitting() |
如果true
,则正在发射粒子。
- float explosiveness
Default |
|
Setter | set_explosiveness_ratio(value) |
Getter | get_explosiveness_ratio() |
粒子在一个发射周期中的发射速度有多快。如果大于0
,则在下一个循环开始之前会有排放量缺口。
- int fixed_fps
Default |
|
Setter | set_fixed_fps(value) |
Getter | get_fixed_fps() |
粒子系统的帧速率固定为一个值。例如,将值更改为2将使粒子以每秒2帧的速度渲染。请注意,这不会减慢粒子系统本身的速度。
- bool flag_align_y
Default |
|
Setter | set_particle_flag(value) |
Getter | get_particle_flag() |
将粒子的Y轴与其速度方向对齐。
- bool flag_disable_z
Default |
|
Setter | set_particle_flag(value) |
Getter | get_particle_flag() |
如果true
,则粒子将不会在z轴上移动。
- bool flag_rotate_y
Default |
|
Setter | set_particle_flag(value) |
Getter | get_particle_flag() |
如果true
,粒子绕Y轴旋转angle。
- float flatness
Default |
|
Setter | set_flatness(value) |
Getter | get_flatness() |
Y/Z 平面中的 spread 数量。值 1
将粒子限制在 X/Z 平面上。
- bool fract_delta
Default |
|
Setter | set_fractional_delta(value) |
Getter | get_fractional_delta() |
如果true
,将导致分数增量计算,该显示具有更平滑的粒子显示效果。
- Vector3 gravity
Default |
|
Setter | set_gravity(value) |
Getter | get_gravity() |
重力作用于每个粒子。
- float hue_variation
Default |
|
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 |
|
Setter | set_param_randomness(value) |
Getter | get_param_randomness() |
色相变化随机率。
- float initial_velocity
Default |
|
Setter | set_param(value) |
Getter | get_param() |
每个粒子的初始速度大小。方向来自spread和节点的方向。
- float initial_velocity_random
Default |
|
Setter | set_param_randomness(value) |
Getter | get_param_randomness() |
初始速度随机率。
- float lifetime
Default |
|
Setter | set_lifetime(value) |
Getter | get_lifetime() |
每个粒子存在的时间,以秒为单位。
- float lifetime_randomness
Default |
|
Setter | set_lifetime_randomness(value) |
Getter | get_lifetime_randomness() |
粒子寿命随机率。
- float linear_accel
Default |
|
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 |
|
Setter | set_param_randomness(value) |
Getter | get_param_randomness() |
线性加速度随机率。
- bool local_coords
Default |
|
Setter | set_use_local_coordinates(value) |
Getter | get_use_local_coordinates() |
如果true
,则粒子将使用父节点的坐标空间。如果false
,则使用全局坐标。
- Mesh mesh
Setter | set_mesh(value) |
Getter | get_mesh() |
每个粒子使用的Mesh。如果null
,则粒子将是球形。
- bool one_shot
Default |
|
Setter | set_one_shot(value) |
Getter | get_one_shot() |
如果 true
,则只发生一个排放周期。如果在周期内设置 true
,则排放将在周期结束时停止。
- float orbit_velocity
Setter | set_param(value) |
Getter | get_param() |
应用于每个粒子的轨道速度。使粒子在局部XY平面上绕原点旋转。用每秒绕原点旋转的次数来表示。
只有当flag_disable_z为true
时,此属性才可用。
- 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() |
轨道速度随机率。
- float preprocess
Default |
|
Setter | set_pre_process_time(value) |
Getter | get_pre_process_time() |
粒子系统启动时就好像已经运行了这么多秒一样。
- float radial_accel
Default |
|
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 |
|
Setter | set_param_randomness(value) |
Getter | get_param_randomness() |
径向加速度随机率。
- float randomness
Default |
|
Setter | set_randomness_ratio(value) |
Getter | get_randomness_ratio() |
发射寿命随机率。
- float scale_amount
Default |
|
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 |
|
Setter | set_param_randomness(value) |
Getter | get_param_randomness() |
标度随机率。
- float speed_scale
Default |
|
Setter | set_speed_scale(value) |
Getter | get_speed_scale() |
粒子系统的运行速度缩放比例。值0
可用于暂停粒子。
- float spread
Default |
|
Setter | set_spread(value) |
Getter | get_spread() |
每个粒子的初始方向范围为+spread
至-spread
度。适用于X/Z平面和Y/Z平面。
- float tangential_accel
Default |
|
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 |
|
Setter | set_param_randomness(value) |
Getter | get_param_randomness() |
切向加速度随机率。
方法说明
- void convert_from_particles ( Node particles )
设置此节点的属性,以将给定的 Particles 节点与指定的 ParticlesMaterial 匹配。
返回由Parameter指定的参数的基值。
返回Parameter指定的参数的随机性系数。
返回给定标志的启用状态(有关选项,请参阅Flags)。
- void restart ( )
重新启动粒子发射器。
设置Parameter指定的参数的基值。
设置Parameter指定的参数的随机性因子。
启用或禁用给定标志(有关选项,请参阅Flags)。