CPUParticles2D

Inherits: Node2D < CanvasItem < Node < Object

CPU-based 2D particle emitter.

Description

CPU-based 2D particle node used to create a variety of particle systems and effects.

See also GPUParticles2D, 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_ramp

Curve

damping_curve

float

damping_max

0.0

float

damping_min

0.0

Vector2

direction

Vector2(1, 0)

DrawOrder

draw_order

0

PackedColorArray

emission_colors

PackedVector2Array

emission_normals

PackedVector2Array

emission_points

Vector2

emission_rect_extents

EmissionShape

emission_shape

0

float

emission_sphere_radius

bool

emitting

true

float

explosiveness

0.0

int

fixed_fps

0

bool

fract_delta

true

Vector2

gravity

Vector2(0, 980)

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

true

bool

one_shot

false

Curve

orbit_velocity_curve

float

orbit_velocity_max

0.0

float

orbit_velocity_min

0.0

bool

particle_flag_align_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

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

Texture2D

texture

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:

  • DRAW_ORDER_INDEX = 0 --- Particles are drawn in the order emitted.

  • DRAW_ORDER_LIFETIME = 1 --- Particles are drawn in order of remaining lifetime.


enum Parameter:


enum ParticleFlags:

  • PARTICLE_FLAG_ALIGN_Y_TO_VELOCITY = 0 --- Use with set_particle_flag to set particle_flag_align_y.

  • PARTICLE_FLAG_ROTATE_Y = 1 --- Present for consistency with 3D particle nodes, not used in 2D.

  • PARTICLE_FLAG_DISABLE_Z = 2 --- Present for consistency with 3D particle nodes, not used in 2D.

  • PARTICLE_FLAG_MAX = 3 --- Represents the size of the ParticleFlags enum.


enum EmissionShape:

  • EMISSION_SHAPE_POINT = 0 --- All particles will be emitted from a single point.

  • EMISSION_SHAPE_SPHERE = 1 --- Particles will be emitted on the surface of a sphere flattened to two dimensions.

  • EMISSION_SHAPE_RECTANGLE = 2 --- Particles will be emitted in the area of a rectangle.

  • EMISSION_SHAPE_POINTS = 3 --- Particles will be emitted at a position chosen randomly among emission_points. Particle color will be modulated by emission_colors.

  • EMISSION_SHAPE_DIRECTED_POINTS = 4 --- 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_MAX = 5 --- Represents the size of the EmissionShape enum.

Property Descriptions

Default

8

Setter

set_amount(value)

Getter

get_amount()

Number of particles emitted in one emission cycle.


Setter

set_param_curve(value)

Getter

get_param_curve()

Each particle's rotation will be animated along this Curve.


Default

0.0

Setter

set_param_max(value)

Getter

get_param_max()


Default

0.0

Setter

set_param_min(value)

Getter

get_param_min()


  • Curve angular_velocity_curve

Setter

set_param_curve(value)

Getter

get_param_curve()

Each particle's angular velocity will vary along this Curve.


  • float angular_velocity_max

Default

0.0

Setter

set_param_max(value)

Getter

get_param_max()


  • float angular_velocity_min

Default

0.0

Setter

set_param_min(value)

Getter

get_param_min()


  • Curve anim_offset_curve

Setter

set_param_curve(value)

Getter

get_param_curve()

Each particle's animation offset will vary along this Curve.


Default

0.0

Setter

set_param_max(value)

Getter

get_param_max()


Default

0.0

Setter

set_param_min(value)

Getter

get_param_min()


Setter

set_param_curve(value)

Getter

get_param_curve()

Each particle's animation speed will vary along this Curve.


Default

0.0

Setter

set_param_max(value)

Getter

get_param_max()


Default

0.0

Setter

set_param_min(value)

Getter

get_param_min()


Default

Color(1, 1, 1, 1)

Setter

set_color(value)

Getter

get_color()

Each particle's initial color. If texture is defined, it will be multiplied by this color.


Setter

set_color_ramp(value)

Getter

get_color_ramp()

Each particle's color will vary along this Gradient (multiplied with color).


Setter

set_param_curve(value)

Getter

get_param_curve()

Damping will vary along this Curve.


Default

0.0

Setter

set_param_max(value)

Getter

get_param_max()


Default

0.0

Setter

set_param_min(value)

Getter

get_param_min()


Default

Vector2(1, 0)

Setter

set_direction(value)

Getter

get_direction()

Unit vector specifying the particles' emission direction.


Default

0

Setter

set_draw_order(value)

Getter

get_draw_order()

Particle draw order. Uses DrawOrder values.


Setter

set_emission_colors(value)

Getter

get_emission_colors()

Sets the Colors to modulate particles by when using EMISSION_SHAPE_POINTS or EMISSION_SHAPE_DIRECTED_POINTS.


Setter

set_emission_normals(value)

Getter

get_emission_normals()

Sets the direction the particles will be emitted in when using EMISSION_SHAPE_DIRECTED_POINTS.


Setter

set_emission_points(value)

Getter

get_emission_points()

Sets the initial positions to spawn particles when using EMISSION_SHAPE_POINTS or EMISSION_SHAPE_DIRECTED_POINTS.


Setter

set_emission_rect_extents(value)

Getter

get_emission_rect_extents()

The rectangle's extents if emission_shape is set to EMISSION_SHAPE_RECTANGLE.


Default

0

Setter

set_emission_shape(value)

Getter

get_emission_shape()

Particles will be emitted inside this region. See EmissionShape for possible values.


  • float emission_sphere_radius

Setter

set_emission_sphere_radius(value)

Getter

get_emission_sphere_radius()

The sphere's radius if emission_shape is set to EMISSION_SHAPE_SPHERE.


Default

true

Setter

set_emitting(value)

Getter

is_emitting()

If true, particles are being emitted.


Default

0.0

Setter

set_explosiveness_ratio(value)

Getter

get_explosiveness_ratio()

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.


  • int fixed_fps

Default

0

Setter

set_fixed_fps(value)

Getter

get_fixed_fps()

The particle system's frame rate is fixed to a value. For instance, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the simulation of the particle system itself.


Default

true

Setter

set_fractional_delta(value)

Getter

get_fractional_delta()

If true, results in fractional delta calculation which has a smoother particles display effect.


Default

Vector2(0, 980)

Setter

set_gravity(value)

Getter

get_gravity()

Gravity applied to every particle.


  • Curve hue_variation_curve

Setter

set_param_curve(value)

Getter

get_param_curve()

Each particle's hue will vary along this Curve.


  • float hue_variation_max

Default

0.0

Setter

set_param_max(value)

Getter

get_param_max()


  • float hue_variation_min

Default

0.0

Setter

set_param_min(value)

Getter

get_param_min()


  • float initial_velocity_max

Default

0.0

Setter

set_param_max(value)

Getter

get_param_max()


  • float initial_velocity_min

Default

0.0

Setter

set_param_min(value)

Getter

get_param_min()


Default

1.0

Setter

set_lifetime(value)

Getter

get_lifetime()

Amount of time each particle will exist.


  • float lifetime_randomness

Default

0.0

Setter

set_lifetime_randomness(value)

Getter

get_lifetime_randomness()

Particle lifetime randomness ratio.


  • Curve linear_accel_curve

Setter

set_param_curve(value)

Getter

get_param_curve()

Each particle's linear acceleration will vary along this Curve.


Default

0.0

Setter

set_param_max(value)

Getter

get_param_max()


Default

0.0

Setter

set_param_min(value)

Getter

get_param_min()


Default

true

Setter

set_use_local_coordinates(value)

Getter

get_use_local_coordinates()

If true, particles use the parent node's coordinate space. If false, they use global coordinates.


Default

false

Setter

set_one_shot(value)

Getter

get_one_shot()

If true, only one emission cycle occurs. If set true during a cycle, emission will stop at the cycle's end.


  • Curve orbit_velocity_curve

Setter

set_param_curve(value)

Getter

get_param_curve()

Each particle's orbital velocity will vary along this Curve.


  • float orbit_velocity_max

Default

0.0

Setter

set_param_max(value)

Getter

get_param_max()


  • float orbit_velocity_min

Default

0.0

Setter

set_param_min(value)

Getter

get_param_min()


  • bool particle_flag_align_y

Default

false

Setter

set_particle_flag(value)

Getter

get_particle_flag()

Align Y axis of particle with the direction of its velocity.


Default

0.0

Setter

set_pre_process_time(value)

Getter

get_pre_process_time()

Particle system starts as if it had already run for this many seconds.


  • Curve radial_accel_curve

Setter

set_param_curve(value)

Getter

get_param_curve()

Each particle's radial acceleration will vary along this Curve.


Default

0.0

Setter

set_param_max(value)

Getter

get_param_max()


Default

0.0

Setter

set_param_min(value)

Getter

get_param_min()


Default

0.0

Setter

set_randomness_ratio(value)

Getter

get_randomness_ratio()

Emission lifetime randomness ratio.


  • Curve scale_amount_curve

Setter

set_param_curve(value)

Getter

get_param_curve()

Each particle's scale will vary along this Curve.


Default

1.0

Setter

set_param_max(value)

Getter

get_param_max()


Default

1.0

Setter

set_param_min(value)

Getter

get_param_min()


Setter

set_scale_curve_x(value)

Getter

get_scale_curve_x()


Setter

set_scale_curve_y(value)

Getter

get_scale_curve_y()


Default

1.0

Setter

set_speed_scale(value)

Getter

get_speed_scale()

Particle system's running speed scaling ratio. A value of 0 can be used to pause the particles.


Default

false

Setter

set_split_scale(value)

Getter

get_split_scale()


Default

45.0

Setter

set_spread(value)

Getter

get_spread()

Each particle's initial direction range from +spread to -spread degrees.


  • Curve tangential_accel_curve

Setter

set_param_curve(value)

Getter

get_param_curve()

Each particle's tangential acceleration will vary along this Curve.


  • float tangential_accel_max

Default

0.0

Setter

set_param_max(value)

Getter

get_param_max()


  • float tangential_accel_min

Default

0.0

Setter

set_param_min(value)

Getter

get_param_min()


Setter

set_texture(value)

Getter

get_texture()

Particle texture. If null, particles will be squares.

Method Descriptions

  • void convert_from_particles ( Node particles )

Sets this node's properties to match a given GPUParticles2D node with an assigned ParticlesMaterial.


Returns the Curve of the parameter specified by Parameter.




Returns the enabled state of the given flag (see ParticleFlags for options).


  • void restart ( )

Restarts the particle emitter.


Sets the Curve of the parameter specified by Parameter.




Enables or disables the given flag (see ParticleFlags for options).