CPUParticles3D¶
Inherits: GeometryInstance3D < VisualInstance3D < Node3D < Node < Object
CPU-based 3D particle emitter.
Description¶
CPU-based 3D particle node used to create a variety of particle systems and effects.
See also GPUParticles3D, which provides the same functionality with hardware acceleration, but may not run on older devices.
Properties¶
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
Methods¶
void |
convert_from_particles ( Node particles ) |
get_param_curve ( Parameter param ) const |
|
get_param_max ( Parameter param ) const |
|
get_param_min ( Parameter param ) const |
|
get_particle_flag ( ParticleFlags particle_flag ) const |
|
void |
restart ( ) |
void |
set_param_curve ( Parameter param, Curve curve ) |
void |
set_param_max ( Parameter param, float value ) |
void |
set_param_min ( Parameter param, float value ) |
void |
set_particle_flag ( ParticleFlags particle_flag, bool enable ) |
Enumerations¶
enum DrawOrder:
DrawOrder DRAW_ORDER_INDEX = 0
Particles are drawn in the order emitted.
DrawOrder DRAW_ORDER_LIFETIME = 1
Particles are drawn in order of remaining lifetime.
DrawOrder DRAW_ORDER_VIEW_DEPTH = 2
Particles are drawn in order of depth.
enum Parameter:
Parameter PARAM_INITIAL_LINEAR_VELOCITY = 0
Use with set_param_min, set_param_max, and set_param_curve to set initial velocity properties.
Parameter PARAM_ANGULAR_VELOCITY = 1
Use with set_param_min, set_param_max, and set_param_curve to set angular velocity properties.
Parameter PARAM_ORBIT_VELOCITY = 2
Use with set_param_min, set_param_max, and set_param_curve to set orbital velocity properties.
Parameter PARAM_LINEAR_ACCEL = 3
Use with set_param_min, set_param_max, and set_param_curve to set linear acceleration properties.
Parameter PARAM_RADIAL_ACCEL = 4
Use with set_param_min, set_param_max, and set_param_curve to set radial acceleration properties.
Parameter PARAM_TANGENTIAL_ACCEL = 5
Use with set_param_min, set_param_max, and set_param_curve to set tangential acceleration properties.
Parameter PARAM_DAMPING = 6
Use with set_param_min, set_param_max, and set_param_curve to set damping properties.
Parameter PARAM_ANGLE = 7
Use with set_param_min, set_param_max, and set_param_curve to set angle properties.
Parameter PARAM_SCALE = 8
Use with set_param_min, set_param_max, and set_param_curve to set scale properties.
Parameter PARAM_HUE_VARIATION = 9
Use with set_param_min, set_param_max, and set_param_curve to set hue variation properties.
Parameter PARAM_ANIM_SPEED = 10
Use with set_param_min, set_param_max, and set_param_curve to set animation speed properties.
Parameter PARAM_ANIM_OFFSET = 11
Use with set_param_min, set_param_max, and set_param_curve to set animation offset properties.
Parameter PARAM_MAX = 12
Represents the size of the Parameter enum.
enum ParticleFlags:
ParticleFlags PARTICLE_FLAG_ALIGN_Y_TO_VELOCITY = 0
Use with set_particle_flag to set particle_flag_align_y.
ParticleFlags PARTICLE_FLAG_ROTATE_Y = 1
Use with set_particle_flag to set particle_flag_rotate_y.
ParticleFlags PARTICLE_FLAG_DISABLE_Z = 2
Use with set_particle_flag to set particle_flag_disable_z.
ParticleFlags PARTICLE_FLAG_MAX = 3
Represents the size of the ParticleFlags enum.
enum EmissionShape:
EmissionShape EMISSION_SHAPE_POINT = 0
All particles will be emitted from a single point.
EmissionShape EMISSION_SHAPE_SPHERE = 1
Particles will be emitted in the volume of a sphere.
EmissionShape EMISSION_SHAPE_SPHERE_SURFACE = 2
Particles will be emitted on the surface of a sphere.
EmissionShape EMISSION_SHAPE_BOX = 3
Particles will be emitted in the volume of a box.
EmissionShape EMISSION_SHAPE_POINTS = 4
Particles will be emitted at a position chosen randomly among emission_points. Particle color will be modulated by emission_colors.
EmissionShape EMISSION_SHAPE_DIRECTED_POINTS = 5
Particles will be emitted at a position chosen randomly among emission_points. Particle velocity and rotation will be set based on emission_normals. Particle color will be modulated by emission_colors.
EmissionShape EMISSION_SHAPE_RING = 6
Particles will be emitted in a ring or cylinder.
EmissionShape EMISSION_SHAPE_MAX = 7
Represents the size of the EmissionShape enum.
Property Descriptions¶
int amount = 8
Number of particles emitted in one emission cycle.
Curve angle_curve
Each particle's rotation will be animated along this Curve.
float angle_max = 0.0
Maximum angle.
float angle_min = 0.0
Minimum angle.
Curve angular_velocity_curve
Each particle's angular velocity (rotation speed) will vary along this Curve over its lifetime.
float angular_velocity_max = 0.0
Maximum initial angular velocity (rotation speed) applied to each particle in degrees per second.
float angular_velocity_min = 0.0
Minimum initial angular velocity (rotation speed) applied to each particle in degrees per second.
Curve anim_offset_curve
Each particle's animation offset will vary along this Curve.
float anim_offset_max = 0.0
Maximum animation offset.
float anim_offset_min = 0.0
Minimum animation offset.
Curve anim_speed_curve
Each particle's animation speed will vary along this Curve.
float anim_speed_max = 0.0
Maximum particle animation speed.
float anim_speed_min = 0.0
Minimum particle animation speed.
Color color = Color(1, 1, 1, 1)
Each particle's initial color.
Note: color multiplies the particle mesh's vertex colors. To have a visible effect on a BaseMaterial3D, BaseMaterial3D.vertex_color_use_as_albedo must be true
. For a ShaderMaterial, ALBEDO *= COLOR.rgb;
must be inserted in the shader's fragment()
function. Otherwise, color will have no visible effect.
Gradient color_initial_ramp
Each particle's initial color will vary along this GradientTexture1D (multiplied with color).
Note: color_initial_ramp multiplies the particle mesh's vertex colors. To have a visible effect on a BaseMaterial3D, BaseMaterial3D.vertex_color_use_as_albedo must be true
. For a ShaderMaterial, ALBEDO *= COLOR.rgb;
must be inserted in the shader's fragment()
function. Otherwise, color_initial_ramp will have no visible effect.
Gradient color_ramp
Each particle's color will vary along this GradientTexture1D over its lifetime (multiplied with color).
Note: color_ramp multiplies the particle mesh's vertex colors. To have a visible effect on a BaseMaterial3D, BaseMaterial3D.vertex_color_use_as_albedo must be true
. For a ShaderMaterial, ALBEDO *= COLOR.rgb;
must be inserted in the shader's fragment()
function. Otherwise, color_ramp will have no visible effect.
Curve damping_curve
Damping will vary along this Curve.
float damping_max = 0.0
Maximum damping.
float damping_min = 0.0
Minimum damping
Vector3 direction = Vector3(1, 0, 0)
Unit vector specifying the particles' emission direction.
DrawOrder draw_order = 0
Particle draw order. Uses DrawOrder values.
Vector3 emission_box_extents
The rectangle's extents if emission_shape is set to EMISSION_SHAPE_BOX.
PackedColorArray emission_colors = PackedColorArray()
void set_emission_colors ( PackedColorArray value )
PackedColorArray get_emission_colors ( )
Sets the Colors to modulate particles by when using EMISSION_SHAPE_POINTS or EMISSION_SHAPE_DIRECTED_POINTS.
Note: emission_colors multiplies the particle mesh's vertex colors. To have a visible effect on a BaseMaterial3D, BaseMaterial3D.vertex_color_use_as_albedo must be true
. For a ShaderMaterial, ALBEDO *= COLOR.rgb;
must be inserted in the shader's fragment()
function. Otherwise, emission_colors will have no visible effect.
PackedVector3Array emission_normals
void set_emission_normals ( PackedVector3Array value )
PackedVector3Array get_emission_normals ( )
Sets the direction the particles will be emitted in when using EMISSION_SHAPE_DIRECTED_POINTS.
PackedVector3Array emission_points
void set_emission_points ( PackedVector3Array value )
PackedVector3Array get_emission_points ( )
Sets the initial positions to spawn particles when using EMISSION_SHAPE_POINTS or EMISSION_SHAPE_DIRECTED_POINTS.
Vector3 emission_ring_axis
The axis of the ring when using the emitter EMISSION_SHAPE_RING.
float emission_ring_height
The height of the ring when using the emitter EMISSION_SHAPE_RING.
float emission_ring_inner_radius
The inner radius of the ring when using the emitter EMISSION_SHAPE_RING.
float emission_ring_radius
The radius of the ring when using the emitter EMISSION_SHAPE_RING.
EmissionShape emission_shape = 0
void set_emission_shape ( EmissionShape value )
EmissionShape get_emission_shape ( )
Particles will be emitted inside this region. See EmissionShape for possible values.
float emission_sphere_radius
The sphere's radius if EmissionShape is set to EMISSION_SHAPE_SPHERE.
bool emitting = true
If true
, particles are being emitted.