Up to date

This page is up to date for Godot 4.1. If you still find outdated information, please open an issue.

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

int

amount

8

Curve

angle_curve

float

angle_max

0.0

float

angle_min

0.0

Curve

angular_velocity_curve

float

angular_velocity_max

0.0

float

angular_velocity_min

0.0

Curve

anim_offset_curve

float

anim_offset_max

0.0

float

anim_offset_min

0.0

Curve

anim_speed_curve

float

anim_speed_max

0.0

float

anim_speed_min

0.0

Color

color

Color(1, 1, 1, 1)

Gradient

color_initial_ramp

Gradient

color_ramp

Curve

damping_curve

float

damping_max

0.0

float

damping_min

0.0

Vector3

direction

Vector3(1, 0, 0)

DrawOrder

draw_order

0

Vector3

emission_box_extents

PackedColorArray

emission_colors

PackedColorArray()

PackedVector3Array

emission_normals

PackedVector3Array

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

float

flatness

0.0

bool

fract_delta

true

Vector3

gravity

Vector3(0, -9.8, 0)

Curve

hue_variation_curve

float

hue_variation_max

0.0

float

hue_variation_min

0.0

float

initial_velocity_max

0.0

float

initial_velocity_min

0.0

float

lifetime

1.0

float

lifetime_randomness

0.0

Curve

linear_accel_curve

float

linear_accel_max

0.0

float

linear_accel_min

0.0

bool

local_coords

false

Mesh

mesh

bool

one_shot

false

Curve

orbit_velocity_curve

float

orbit_velocity_max

float

orbit_velocity_min

bool

particle_flag_align_y

false

bool

particle_flag_disable_z

false

bool

particle_flag_rotate_y

false

float

preprocess

0.0

Curve

radial_accel_curve

float

radial_accel_max

0.0

float

radial_accel_min

0.0

float

randomness

0.0

Curve

scale_amount_curve

float

scale_amount_max

1.0

float

scale_amount_min

1.0

Curve

scale_curve_x

Curve

scale_curve_y

Curve

scale_curve_z

float

speed_scale

1.0

bool

split_scale

false

float

spread

45.0

Curve

tangential_accel_curve

float

tangential_accel_max

0.0

float

tangential_accel_min

0.0

Methods

void

convert_from_particles ( Node particles )

Curve

get_param_curve ( Parameter param ) const

float

get_param_max ( Parameter param ) const

float

get_param_min ( Parameter param ) const

bool

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

  • void set_amount ( int value )

  • int get_amount ( )

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