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.
Emitted when all active particles have finished processing. When one_shot is disabled, particles will process continuously, so this is never emitted.
DRAW_ORDER_INDEX = 0
Particles are drawn in the order emitted.
DRAW_ORDER_LIFETIME = 1
Particles are drawn in order of remaining lifetime. In other words, the particle with the highest lifetime is drawn at the front.
DRAW_ORDER_VIEW_DEPTH = 2
Particles are drawn in order of depth.
PARAM_INITIAL_LINEAR_VELOCITY = 0
Use with set_param_min, set_param_max, and set_param_curve to set initial velocity properties.
PARAM_ANGULAR_VELOCITY = 1
Use with set_param_min, set_param_max, and set_param_curve to set angular velocity properties.
PARAM_ORBIT_VELOCITY = 2
Use with set_param_min, set_param_max, and set_param_curve to set orbital velocity properties.
PARAM_LINEAR_ACCEL = 3
Use with set_param_min, set_param_max, and set_param_curve to set linear acceleration properties.
PARAM_RADIAL_ACCEL = 4
Use with set_param_min, set_param_max, and set_param_curve to set radial acceleration properties.
PARAM_TANGENTIAL_ACCEL = 5
Use with set_param_min, set_param_max, and set_param_curve to set tangential acceleration properties.
PARAM_DAMPING = 6
Use with set_param_min, set_param_max, and set_param_curve to set damping properties.
PARAM_ANGLE = 7
Use with set_param_min, set_param_max, and set_param_curve to set angle properties.
PARAM_SCALE = 8
Use with set_param_min, set_param_max, and set_param_curve to set scale properties.
PARAM_HUE_VARIATION = 9
Use with set_param_min, set_param_max, and set_param_curve to set hue variation properties.
PARAM_ANIM_SPEED = 10
Use with set_param_min, set_param_max, and set_param_curve to set animation speed properties.
PARAM_ANIM_OFFSET = 11
Use with set_param_min, set_param_max, and set_param_curve to set animation offset properties.
PARAM_MAX = 12
Represents the size of the Parameter enum.
PARTICLE_FLAG_ALIGN_Y_TO_VELOCITY = 0
Use with set_particle_flag to set particle_flag_align_y.
PARTICLE_FLAG_ROTATE_Y = 1
Use with set_particle_flag to set particle_flag_rotate_y.
PARTICLE_FLAG_DISABLE_Z = 2
Use with set_particle_flag to set particle_flag_disable_z.
PARTICLE_FLAG_MAX = 3
Represents the size of the ParticleFlags enum.
EMISSION_SHAPE_POINT = 0
All particles will be emitted from a single point.
EMISSION_SHAPE_SPHERE = 1
Particles will be emitted in the volume of a sphere.
EMISSION_SHAPE_SPHERE_SURFACE = 2
Particles will be emitted on the surface of a sphere.
EMISSION_SHAPE_BOX = 3
Particles will be emitted in the volume of a box.
EMISSION_SHAPE_POINTS = 4
Particles will be emitted at a position chosen randomly among emission_points. Particle color will be modulated by emission_colors.
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.
EMISSION_SHAPE_RING = 6
Particles will be emitted in a ring or cylinder.
EMISSION_SHAPE_MAX = 7
Represents the size of the EmissionShape enum.
Number of particles emitted in one emission cycle.
Each particle's rotation will be animated along this Curve.
Maximum angle.
Minimum angle.
Each particle's angular velocity (rotation speed) will vary along this Curve over its lifetime.
Maximum initial angular velocity (rotation speed) applied to each particle in degrees per second.
Minimum initial angular velocity (rotation speed) applied to each particle in degrees per second.
Each particle's animation offset will vary along this Curve.
Maximum animation offset.
Minimum animation offset.
Each particle's animation speed will vary along this Curve.
Maximum particle animation speed.
Minimum particle animation speed.
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.
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.
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.
Damping will vary along this Curve.
Maximum damping.
Minimum damping.
Unit vector specifying the particles' emission direction.
Particle draw order. Uses DrawOrder values.
The rectangle's extents if emission_shape is set to EMISSION_SHAPE_BOX.
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.
Sets the direction the particles will be emitted in when using EMISSION_SHAPE_DIRECTED_POINTS.
Sets the initial positions to spawn particles when using EMISSION_SHAPE_POINTS or EMISSION_SHAPE_DIRECTED_POINTS.
The axis of the ring when using the emitter EMISSION_SHAPE_RING.
The height of the ring when using the emitter EMISSION_SHAPE_RING.
The inner radius of the ring when using the emitter EMISSION_SHAPE_RING.
The radius of the ring when using the emitter EMISSION_SHAPE_RING.
Particles will be emitted inside this region. See EmissionShape for possible values.
The sphere's radius if EmissionShape is set to EMISSION_SHAPE_SPHERE.
If true
, particles are being emitted. emitting can be used to start and stop particles from emitting. However, if one_shot is true
setting emitting to true
will not restart the emission cycle until after all active particles finish processing. You can use the finished signal to be notified once all active particles finish processing.
How rapidly particles in an emission cycle are emitted. If greater than 0
, there will be a gap in emissions before the next cycle begins.
The particle system's frame rate is fixed to a value. For example, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the particle system itself.
Amount of spread in Y/Z plane. A value of 1
restricts particles to X/Z plane.
If true
, results in fractional delta calculation which has a smoother particles display effect.
Gravity applied to every particle.
Each particle's hue will vary along this Curve.
Maximum hue variation.
Minimum hue variation.
Maximum value of the initial velocity.
Minimum value of the initial velocity.
Amount of time each particle will exist.
Particle lifetime randomness ratio.
Each particle's linear acceleration will vary along this Curve.
Maximum linear acceleration.
Minimum linear acceleration.
If true
, particles use the parent node's coordinate space (known as local coordinates). This will cause particles to move and rotate along the CPUParticles3D node (and its parents) when it is moved or rotated. If false
, particles use global coordinates; they will not move or rotate along the CPUParticles3D node (and its parents) when it is moved or rotated.
The Mesh used for each particle. If null
, particles will be spheres.
If true
, only one emission cycle occurs. If set true
during a cycle, emission will stop at the cycle's end.
Each particle's orbital velocity will vary along this Curve.
Maximum orbit velocity.
Minimum orbit velocity.
Align Y axis of particle with the direction of its velocity.
If true
, particles will not move on the Z axis.
If true
, particles rotate around Y axis by angle_min.
Particle system starts as if it had already run for this many seconds.
Each particle's radial acceleration will vary along this Curve.
Maximum radial acceleration.
Minimum radial acceleration.
Emission lifetime randomness ratio.
Each particle's scale will vary along this Curve.
Maximum scale.
Minimum scale.
Curve for the scale over life, along the x axis.
Curve for the scale over life, along the y axis.
Curve for the scale over life, along the z axis.
Particle system's running speed scaling ratio. A value of 0
can be used to pause the particles.
If set to true
, three different scale curves can be specified, one per scale axis.
Each particle's initial direction range from +spread
to -spread
degrees. Applied to X/Z plane and Y/Z planes.
Each particle's tangential acceleration will vary along this Curve.
Maximum tangent acceleration.
Minimum tangent acceleration.
Sets this node's properties to match a given GPUParticles3D node with an assigned ParticleProcessMaterial.
Returns the maximum value range for the given parameter.
Returns the minimum value range for the given parameter.
Returns the enabled state of the given particle flag (see ParticleFlags for options).
Restarts the particle emitter.
Sets the maximum value for the given parameter.
Sets the minimum value for the given parameter.
Enables or disables the given particle flag (see ParticleFlags for options).