W3cubDocs

/Godot 3.1

CPUParticles2D

Inherits: Node2D < CanvasItem < Node < Object

Category: Core

Brief Description

CPU-based 2D particle emitter.

Properties

int amount
float angle
Curve angle_curve
float angle_random
float angular_velocity
Curve angular_velocity_curve
float angular_velocity_random
float anim_offset
Curve anim_offset_curve
float anim_offset_random
float anim_speed
Curve anim_speed_curve
float anim_speed_random
Color color
Gradient color_ramp
float damping
Curve damping_curve
float damping_random
DrawOrder draw_order
PoolColorArray emission_colors
PoolVector2Array emission_normals
PoolVector2Array emission_points
Vector2 emission_rect_extents
EmissionShape emission_shape
float emission_sphere_radius
bool emitting
float explosiveness
int fixed_fps
bool flag_align_y
float flatness
bool fract_delta
Vector2 gravity
float hue_variation
Curve hue_variation_curve
float hue_variation_random
float initial_velocity
float initial_velocity_random
float lifetime
float linear_accel
Curve linear_accel_curve
float linear_accel_random
bool local_coords
Texture normalmap
bool one_shot
float preprocess
float radial_accel
Curve radial_accel_curve
float radial_accel_random
float randomness
float scale_amount
Curve scale_amount_curve
float scale_amount_random
float speed_scale
float spread
float tangential_accel
Curve tangential_accel_curve
float tangential_accel_random
Texture texture

Methods

void convert_from_particles ( Node particles )
void restart ( )

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:

  • PARAM_INITIAL_LINEAR_VELOCITY = 0 — Use with set_param, set_param_randomness, and set_param_texture to set initial velocity properties.
  • PARAM_ANGULAR_VELOCITY = 1 — Use with set_param, set_param_randomness, and set_param_texture to set angular velocity properties.
  • PARAM_ORBIT_VELOCITY = 2 — Use with set_param, set_param_randomness, and set_param_texture to set orbital velocity properties.
  • PARAM_LINEAR_ACCEL = 3 — Use with set_param, set_param_randomness, and set_param_texture to set linear acceleration properties.
  • PARAM_RADIAL_ACCEL = 4 — Use with set_param, set_param_randomness, and set_param_texture to set radial acceleration properties.
  • PARAM_TANGENTIAL_ACCEL = 5 — Use with set_param, set_param_randomness, and set_param_texture to set tangential acceleration properties.
  • PARAM_DAMPING = 6 — Use with set_param, set_param_randomness, and set_param_texture to set damping properties.
  • PARAM_ANGLE = 7 — Use with set_param, set_param_randomness, and set_param_texture to set angle properties.
  • PARAM_SCALE = 8 — Use with set_param, set_param_randomness, and set_param_texture to set scale properties.
  • PARAM_HUE_VARIATION = 9 — Use with set_param, set_param_randomness, and set_param_texture to set hue variation properties.
  • PARAM_ANIM_SPEED = 10 — Use with set_param, set_param_randomness, and set_param_texture to set animation speed properties.
  • PARAM_ANIM_OFFSET = 11 — Use with set_param, set_param_randomness, and set_param_texture to set animation offset properties.
  • PARAM_MAX = 12 — Represents the size of the Parameter enum.

enum Flags:

  • FLAG_ALIGN_Y_TO_VELOCITY = 0 — Use with set_flag to set flag_align_y.
  • FLAG_MAX = 1

enum EmissionShape:

  • EMISSION_SHAPE_POINT = 0 — All particles will be emitted from a single point.
  • EMISSION_SHAPE_CIRCLE = 1 — Particles will be emitted on the perimeter of a circle.
  • 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.

Description

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

See also Particles2D, which provides the same functionality with hardware acceleration, but may not run on older devices.

Tutorials

Property Descriptions

int amount

Setter set_amount(value)
Getter get_amount()

Number of particles emitted in one emission cycle.

float angle

Setter set_param(value)
Getter get_param()

Initial rotation applied to each particle, in degrees.

Curve angle_curve

Setter set_param_curve(value)
Getter get_param_curve()

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

float angle_random

Setter set_param_randomness(value)
Getter get_param_randomness()

Rotation randomness ratio. Default value: 0.

float angular_velocity

Setter set_param(value)
Getter get_param()

Initial angular velocity applied to each particle. Sets the speed of rotation of the particle.

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_random

Setter set_param_randomness(value)
Getter get_param_randomness()

Angular velocity randomness ratio. Default value: 0.

float anim_offset

Setter set_param(value)
Getter get_param()

Particle animation offset.

Curve anim_offset_curve

Setter set_param_curve(value)
Getter get_param_curve()

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

float anim_offset_random

Setter set_param_randomness(value)
Getter get_param_randomness()

Animation offset randomness ratio. Default value: 0.

float anim_speed

Setter set_param(value)
Getter get_param()

Particle animation speed.

Curve anim_speed_curve

Setter set_param_curve(value)
Getter get_param_curve()

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

float anim_speed_random

Setter set_param_randomness(value)
Getter get_param_randomness()

Animation speed randomness ratio. Default value: 0.

Color color

Setter set_color(value)
Getter get_color()

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

Gradient color_ramp

Setter set_color_ramp(value)
Getter get_color_ramp()

Each particle’s color will vary along this Gradient.

float damping

Setter set_param(value)
Getter get_param()

The rate at which particles lose velocity.

Curve damping_curve

Setter set_param_curve(value)
Getter get_param_curve()

Damping will vary along this Curve.

float damping_random

Setter set_param_randomness(value)
Getter get_param_randomness()

Damping randomness ratio. Default value: 0.

DrawOrder draw_order

Setter set_draw_order(value)
Getter get_draw_order()

Particle draw order. Uses DrawOrder values. Default value: DRAW_ORDER_INDEX.

PoolColorArray emission_colors

Setter set_emission_colors(value)
Getter get_emission_colors()

PoolVector2Array emission_normals

Setter set_emission_normals(value)
Getter get_emission_normals()

PoolVector2Array emission_points

Setter set_emission_points(value)
Getter get_emission_points()

Vector2 emission_rect_extents

Setter set_emission_rect_extents(value)
Getter get_emission_rect_extents()

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

EmissionShape emission_shape

Setter set_emission_shape(value)
Getter get_emission_shape()

Particles will be emitted inside this region. Use EmissionShape for values. Default value: EMISSION_SHAPE_POINT.

float emission_sphere_radius

Setter set_emission_sphere_radius(value)
Getter get_emission_sphere_radius()

The circle’s radius if emission_shape is set to EMISSION_SHAPE_CIRCLE.

bool emitting

Setter set_emitting(value)
Getter is_emitting()

If true, particles are being emitted. Default value: true.

float explosiveness

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. Default value: 0.

int fixed_fps

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.

bool flag_align_y

Setter set_particle_flag(value)
Getter get_particle_flag()

Align y-axis of particle with the direction of its velocity.

float flatness

Setter set_flatness(value)
Getter get_flatness()

bool fract_delta

Setter set_fractional_delta(value)
Getter get_fractional_delta()

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

Vector2 gravity

Setter set_gravity(value)
Getter get_gravity()

Gravity applied to every particle. Default value: (0, 98).

float hue_variation

Setter set_param(value)
Getter get_param()

Initial hue variation applied to each 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_random

Setter set_param_randomness(value)
Getter get_param_randomness()

Hue variation randomness ratio. Default value: 0.

float initial_velocity

Setter set_param(value)
Getter get_param()

Initial velocity magnitude for each particle. Direction comes from spread and the node’s orientation.

float initial_velocity_random

Setter set_param_randomness(value)
Getter get_param_randomness()

Initial velocity randomness ratio. Default value: 0.

float lifetime

Setter set_lifetime(value)
Getter get_lifetime()

Amount of time each particle will exist. Default value: 1.

float linear_accel

Setter set_param(value)
Getter get_param()

Linear acceleration applied to each particle in the direction of motion.

Curve linear_accel_curve

Setter set_param_curve(value)
Getter get_param_curve()

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

float linear_accel_random

Setter set_param_randomness(value)
Getter get_param_randomness()

Linear acceleration randomness ratio. Default value: 0.

bool local_coords

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 value: true.

Texture normalmap

Setter set_normalmap(value)
Getter get_normalmap()

Normal map to be used for the texture property.

bool one_shot

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. Default value: false.

float preprocess

Setter set_pre_process_time(value)
Getter get_pre_process_time()

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

float radial_accel

Setter set_param(value)
Getter get_param()

Radial acceleration applied to each particle. Makes particle accelerate away from origin.

Curve radial_accel_curve

Setter set_param_curve(value)
Getter get_param_curve()

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

float radial_accel_random

Setter set_param_randomness(value)
Getter get_param_randomness()

Radial acceleration randomness ratio. Default value: 0.

float randomness

Setter set_randomness_ratio(value)
Getter get_randomness_ratio()

Emission lifetime randomness ratio. Default value: 0.

float scale_amount

Setter set_param(value)
Getter get_param()

Initial scale applied to each particle.

Curve scale_amount_curve

Setter set_param_curve(value)
Getter get_param_curve()

Each particle’s scale will vary along this Curve.

float scale_amount_random

Setter set_param_randomness(value)
Getter get_param_randomness()

Scale randomness ratio. Default value: 0.

float speed_scale

Setter set_speed_scale(value)
Getter get_speed_scale()

Particle system’s running speed scaling ratio. Default value: 1. A value of 0 can be used to pause the particles.

float spread

Setter set_spread(value)
Getter get_spread()

Each particle’s initial direction range from +spread to -spread degrees. Default value: 45.

float tangential_accel

Setter set_param(value)
Getter get_param()

Tangential acceleration applied to each particle. Tangential acceleration is perpendicular to the particle’s velocity giving the particles a swirling motion.

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_random

Setter set_param_randomness(value)
Getter get_param_randomness()

Tangential acceleration randomness ratio. Default value: 0.

Texture texture

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 Particles2D node with an assigned ParticlesMaterial.

void restart ( )

Restarts the particle emitter.

© 2014–2019 Juan Linietsky, Ariel Manzur, Godot Engine contributors
Licensed under the MIT License.
http://docs.godotengine.org/en/3.1/classes/class_cpuparticles2d.html