CPU-based 3D particle emitter.
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.
Sets this node's properties to match a given [GPUParticles3D] node with an assigned [ParticleProcessMaterial].
Returns the [Curve] of the parameter specified by [enum Parameter].
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 [enum ParticleFlags] for options).
Restarts the particle emitter.
Sets the [Curve] of the parameter specified by [enum Parameter].
Sets the maximum value for the given parameter.
Sets the minimum value for the given parameter.
Enables or disables the given particle flag (see [enum ParticleFlags] for options).
- 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 [i]degrees[/i] per second.
- Minimum initial angular velocity (rotation speed) applied to each particle in [i]degrees[/i] 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. [b]Note:[/b] [member color] multiplies the particle mesh's vertex colors. To have a visible effect on a [BaseMaterial3D], [member BaseMaterial3D.vertex_color_use_as_albedo] [i]must[/i] be [code]true[/code]. For a [ShaderMaterial], [code]ALBEDO *= COLOR.rgb;[/code] must be inserted in the shader's [code]fragment()[/code] function. Otherwise, [member color] will have no visible effect.
- Each particle's initial color will vary along this [GradientTexture1D] (multiplied with [member color]). [b]Note:[/b] [member color_initial_ramp] multiplies the particle mesh's vertex colors. To have a visible effect on a [BaseMaterial3D], [member BaseMaterial3D.vertex_color_use_as_albedo] [i]must[/i] be [code]true[/code]. For a [ShaderMaterial], [code]ALBEDO *= COLOR.rgb;[/code] must be inserted in the shader's [code]fragment()[/code] function. Otherwise, [member color_initial_ramp] will have no visible effect.
- Each particle's color will vary along this [GradientTexture1D] over its lifetime (multiplied with [member color]). [b]Note:[/b] [member color_ramp] multiplies the particle mesh's vertex colors. To have a visible effect on a [BaseMaterial3D], [member BaseMaterial3D.vertex_color_use_as_albedo] [i]must[/i] be [code]true[/code]. For a [ShaderMaterial], [code]ALBEDO *= COLOR.rgb;[/code] must be inserted in the shader's [code]fragment()[/code] function. Otherwise, [member 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 [enum DrawOrder] values.
- The rectangle's extents if [member emission_shape] is set to [constant EMISSION_SHAPE_BOX].
- Sets the [Color]s to modulate particles by when using [constant EMISSION_SHAPE_POINTS] or [constant EMISSION_SHAPE_DIRECTED_POINTS]. [b]Note:[/b] [member emission_colors] multiplies the particle mesh's vertex colors. To have a visible effect on a [BaseMaterial3D], [member BaseMaterial3D.vertex_color_use_as_albedo] [i]must[/i] be [code]true[/code]. For a [ShaderMaterial], [code]ALBEDO *= COLOR.rgb;[/code] must be inserted in the shader's [code]fragment()[/code] function. Otherwise, [member emission_colors] will have no visible effect.
- Sets the direction the particles will be emitted in when using [constant EMISSION_SHAPE_DIRECTED_POINTS].
- Sets the initial positions to spawn particles when using [constant EMISSION_SHAPE_POINTS] or [constant EMISSION_SHAPE_DIRECTED_POINTS].
- The axis of the ring when using the emitter [constant EMISSION_SHAPE_RING].
- The height of the ring when using the emitter [constant EMISSION_SHAPE_RING].
- The inner radius of the ring when using the emitter [constant EMISSION_SHAPE_RING].
- The radius of the ring when using the emitter [constant EMISSION_SHAPE_RING].
- Particles will be emitted inside this region. See [enum EmissionShape] for possible values.
- The sphere's radius if [enum EmissionShape] is set to [constant EMISSION_SHAPE_SPHERE].
- If [code]true[/code], particles are being emitted.
- How rapidly particles in an emission cycle are emitted. If greater than [code]0[/code], 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 [member spread] in Y/Z plane. A value of [code]1[/code] restricts particles to X/Z plane.
- If [code]true[/code], 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 [code]true[/code], 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 [code]false[/code], 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 [code]null[/code], particles will be spheres.
- If [code]true[/code], only one emission cycle occurs. If set [code]true[/code] 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 [code]true[/code], particles will not move on the Z axis.
- If [code]true[/code], particles rotate around Y axis by [member 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 [code]0[/code] can be used to pause the particles.
- If set to [code]true[/code], three different scale curves can be specified, one per scale axis.
- Each particle's initial direction range from [code]+spread[/code] to [code]-spread[/code] 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.
Particles are drawn in the order emitted.
Particles are drawn in order of remaining lifetime.
Particles are drawn in order of depth.
Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set initial velocity properties.
Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set angular velocity properties.
Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set orbital velocity properties.
Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set linear acceleration properties.
Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set radial acceleration properties.
Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set tangential acceleration properties.
Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set damping properties.
Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set angle properties.
Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set scale properties.
Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set hue variation properties.
Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set animation speed properties.
Use with [method set_param_min], [method set_param_max], and [method set_param_curve] to set animation offset properties.
Represents the size of the [enum Parameter] enum.
Use with [method set_particle_flag] to set [member particle_flag_align_y].
Use with [method set_particle_flag] to set [member particle_flag_rotate_y].
Use with [method set_particle_flag] to set [member particle_flag_disable_z].
Represents the size of the [enum ParticleFlags] enum.
All particles will be emitted from a single point.
Particles will be emitted in the volume of a sphere.
Particles will be emitted on the surface of a sphere.
Particles will be emitted in the volume of a box.
Particles will be emitted at a position chosen randomly among [member emission_points]. Particle color will be modulated by [member emission_colors].
Particles will be emitted at a position chosen randomly among [member emission_points]. Particle velocity and rotation will be set based on [member emission_normals]. Particle color will be modulated by [member emission_colors].
Particles will be emitted in a ring or cylinder.
Represents the size of the [enum EmissionShape] enum.