CPUParticles2D
CPU-based 2D particle emitter.
CPU-based 2D particle node used to create a variety of particle systems and effects.
See also , which provides the same functionality with hardware acceleration, but may not run on older devices.
Note: Unlike Particles2D, the visibility rect is generated on-the-fly and doesn’t need to be configured by the user.
Tutorials
Methods
void | convert_from_particles ( particles ) |
float | ( Parameter param ) const |
get_param_curve ( param ) const | |
float | ( Parameter param ) const |
get_particle_flag ( flag ) const | |
void | restart ( ) |
void | ( Parameter param, value ) |
void | set_param_curve ( param, Curve curve ) |
void | ( Parameter param, randomness ) |
void | set_particle_flag ( flag, bool enable ) |
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_randomness, and to set initial velocity properties.
- PARAM_ANGULAR_VELOCITY = 1 —- Use with set_param, , and set_param_curve to set angular velocity properties.
- PARAM_ORBIT_VELOCITY = 2 —- Use with , set_param_randomness, and to set orbital velocity properties.
- PARAM_LINEAR_ACCEL = 3 —- Use with set_param, , and set_param_curve to set linear acceleration properties.
- PARAM_RADIAL_ACCEL = 4 —- Use with , set_param_randomness, and to set radial acceleration properties.
- PARAM_TANGENTIAL_ACCEL = 5 —- Use with set_param, , and set_param_curve to set tangential acceleration properties.
- PARAM_DAMPING = 6 —- Use with , set_param_randomness, and to set damping properties.
- PARAM_ANGLE = 7 —- Use with set_param, , and set_param_curve to set angle properties.
- PARAM_SCALE = 8 —- Use with , set_param_randomness, and to set scale properties.
- PARAM_HUE_VARIATION = 9 —- Use with set_param, , and set_param_curve to set hue variation properties.
- PARAM_ANIM_SPEED = 10 —- Use with , set_param_randomness, and to set animation speed properties.
- PARAM_ANIM_OFFSET = 11 —- Use with set_param, , and set_param_curve to set animation offset properties.
- PARAM_MAX = 12 —- Represents the size of the enum.
enum Flags:
- FLAG_ALIGN_Y_TO_VELOCITY = 0 —- Use with set_particle_flag to set .
- FLAG_ROTATE_Y = 1 —- Present for consistency with 3D particle nodes, not used in 2D.
- FLAG_DISABLE_Z = 2 —- Present for consistency with 3D particle nodes, not used in 2D.
- FLAG_MAX = 3 —- Represents the size of the Flags 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 . Particle color will be modulated by emission_colors.
- EMISSION_SHAPE_DIRECTED_POINTS = 4 —- Particles will be emitted at a position chosen randomly among . Particle velocity and rotation will be set based on emission_normals. Particle color will be modulated by .
- EMISSION_SHAPE_MAX = 5 —- Represents the size of the EmissionShape enum.
Property Descriptions
- amount
Default | 8 |
Setter | set_amount(value) |
Getter | get_amount() |
The number of particles emitted in one emission cycle (corresponding to the lifetime).
Note: Changing will reset the particle emission, therefore removing all particles that were already emitted before changing amount.
Default | 0.0 |
Setter | set_param(value) |
Getter | get_param() |
Initial rotation applied to each particle, in degrees.
- angle_curve
Setter | set_param_curve(value) |
Getter | get_param_curve() |
Each particle’s rotation will be animated along this Curve.
- angle_random
Default | 0.0 |
Setter | set_param_randomness(value) |
Getter | get_param_randomness() |
Rotation randomness ratio.
- float angular_velocity
Default | 0.0 |
Setter | set_param(value) |
Getter | get_param() |
Initial angular velocity applied to each particle. Sets the speed of rotation of the particle.
- angular_velocity_curve
Setter | set_param_curve(value) |
Getter | get_param_curve() |
Each particle’s angular velocity will vary along this Curve.
- angular_velocity_random
Default | 0.0 |
Setter | set_param_randomness(value) |
Getter | get_param_randomness() |
Angular velocity randomness ratio.
- float anim_offset
Default | 0.0 |
Setter | set_param(value) |
Getter | get_param() |
Particle animation offset.
- anim_offset_curve
Setter | set_param_curve(value) |
Getter | get_param_curve() |
Each particle’s animation offset will vary along this Curve.
- anim_offset_random
Default | 0.0 |
Setter | set_param_randomness(value) |
Getter | get_param_randomness() |
Animation offset randomness ratio.
- float anim_speed
Default | 0.0 |
Setter | set_param(value) |
Getter | get_param() |
Particle animation speed.
- anim_speed_curve
Setter | set_param_curve(value) |
Getter | get_param_curve() |
Each particle’s animation speed will vary along this Curve.
- anim_speed_random
Default | 0.0 |
Setter | set_param_randomness(value) |
Getter | get_param_randomness() |
Animation speed randomness ratio.
- Color color
Default | Color( 1, 1, 1, 1 ) |
Setter | set_color(value) |
Getter | get_color() |
Each particle’s initial color. If 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 .
- float damping
Default | 0.0 |
Setter | set_param(value) |
Getter | get_param() |
The rate at which particles lose velocity.
- damping_curve
Setter | set_param_curve(value) |
Getter | get_param_curve() |
Damping will vary along this Curve.
- damping_random
Default | 0.0 |
Setter | set_param_randomness(value) |
Getter | get_param_randomness() |
- Vector2 direction
Default | Vector2( 1, 0 ) |
Setter | set_direction(value) |
Getter | get_direction() |
Unit vector specifying the particles’ emission direction.
- draw_order
Particle draw order. Uses DrawOrder values.
- emission_colors
Setter | set_emission_colors(value) |
Getter | get_emission_colors() |
Sets the Colors to modulate particles by when using or EMISSION_SHAPE_DIRECTED_POINTS.
- emission_normals
Setter | set_emission_normals(value) |
Getter | get_emission_normals() |
Sets the direction the particles will be emitted in when using EMISSION_SHAPE_DIRECTED_POINTS.
- emission_points
Setter | set_emission_points(value) |
Getter | get_emission_points() |
Sets the initial positions to spawn particles when using EMISSION_SHAPE_POINTS or .
- Vector2 emission_rect_extents
Setter | set_emission_rect_extents(value) |
Getter | get_emission_rect_extents() |
The rectangle’s extents if is set to EMISSION_SHAPE_RECTANGLE.
- emission_shape
Default | 0 |
Setter | set_emission_shape(value) |
Getter | get_emission_shape() |
Particles will be emitted inside this region. See EmissionShape for possible values.
- emission_sphere_radius
Setter | set_emission_sphere_radius(value) |
Getter | get_emission_sphere_radius() |
The sphere’s radius if emission_shape is set to .
- bool emitting
Default | true |
Setter | set_emitting(value) |
Getter | is_emitting() |
If true
, particles are being emitted.
- explosiveness
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.
- 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.
- bool fract_delta
Default | |
Setter | set_fractional_delta(value) |
Getter | get_fractional_delta() |
If true
, results in fractional delta calculation which has a smoother particles display effect.
- gravity
Default | Vector2( 0, 98 ) |
Setter | set_gravity(value) |
Getter | get_gravity() |
Gravity applied to every particle.
- float hue_variation
Default | 0.0 |
Setter | set_param(value) |
Getter | get_param() |
Initial hue variation applied to each particle.
- hue_variation_curve
Setter | set_param_curve(value) |
Getter | get_param_curve() |
Each particle’s hue will vary along this Curve.
- hue_variation_random
Default | 0.0 |
Setter | set_param_randomness(value) |
Getter | get_param_randomness() |
Hue variation randomness ratio.
- float initial_velocity
Default | 0.0 |
Setter | set_param(value) |
Getter | get_param() |
Initial velocity magnitude for each particle. Direction comes from and the node’s orientation.
Default | 0.0 |
Setter | set_param_randomness(value) |
Getter | get_param_randomness() |
Initial velocity randomness ratio.
- float lifetime
Default | 1.0 |
Setter | set_lifetime(value) |
Getter | get_lifetime() |
The amount of time each particle will exist (in seconds).
- lifetime_randomness
Default | 0.0 |
Setter | set_lifetime_randomness(value) |
Getter | get_lifetime_randomness() |
Particle lifetime randomness ratio.
- float linear_accel
Default | 0.0 |
Setter | set_param(value) |
Getter | get_param() |
Linear acceleration applied to each particle in the direction of motion.
- linear_accel_curve
Each particle’s linear acceleration will vary along this Curve.
- linear_accel_random
Default | 0.0 |
Setter | set_param_randomness(value) |
Getter | get_param_randomness() |
Linear acceleration randomness ratio.
- bool local_coords
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.
- normalmap
Setter | set_normalmap(value) |
Getter | get_normalmap() |
Normal map to be used for the texture property.
- one_shot
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.
- float orbit_velocity
Default | 0.0 |
Setter | set_param(value) |
Getter | get_param() |
Orbital velocity applied to each particle. Makes the particles circle around origin. Specified in number of full rotations around origin per second.
- orbit_velocity_curve
Setter | set_param_curve(value) |
Getter | get_param_curve() |
Each particle’s orbital velocity will vary along this Curve.
- orbit_velocity_random
Default | 0.0 |
Setter | set_param_randomness(value) |
Getter | get_param_randomness() |
Orbital velocity randomness ratio.
- float preprocess
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.
- radial_accel
Default | 0.0 |
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 .
- float radial_accel_random
Default | 0.0 |
Setter | set_param_randomness(value) |
Getter | get_param_randomness() |
Radial acceleration randomness ratio.
- randomness
Default | 0.0 |
Setter | set_randomness_ratio(value) |
Getter | get_randomness_ratio() |
Emission lifetime randomness ratio.
- float scale_amount
Default | 1.0 |
Setter | set_param(value) |
Getter | get_param() |
Initial scale applied to each particle.
- scale_amount_curve
Setter | set_param_curve(value) |
Getter | get_param_curve() |
Each particle’s scale will vary along this Curve.
- scale_amount_random
Default | 0.0 |
Setter | set_param_randomness(value) |
Getter | get_param_randomness() |
Scale randomness ratio.
- float speed_scale
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.
- spread
Default | 45.0 |
Setter | set_spread(value) |
Getter | get_spread() |
Each particle’s initial direction range from +spread
to -spread
degrees.
- float tangential_accel
Default | 0.0 |
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.
- tangential_accel_curve
Setter | set_param_curve(value) |
Getter | get_param_curve() |
Each particle’s tangential acceleration will vary along this Curve.
- tangential_accel_random
Default | 0.0 |
Setter | set_param_randomness(value) |
Getter | get_param_randomness() |
Tangential acceleration randomness ratio.
- Texture texture
Particle texture. If , particles will be squares.
- void convert_from_particles ( particles )
Sets this node’s properties to match a given Particles2D node with an assigned .
- float get_param ( param ) const
Returns the base value of the parameter specified by Parameter.
- get_param_curve ( Parameter param ) const
Returns the of the parameter specified by Parameter.
- get_param_randomness ( Parameter param ) const
Returns the randomness factor of the parameter specified by .
- bool get_particle_flag ( flag ) const
Returns the enabled state of the given flag (see Flags for options).
- void restart ( )
Restarts the particle emitter.
- void set_param ( param, float value )
Sets the base value of the parameter specified by .
- void set_param_curve ( Parameter param, curve )
Sets the Curve of the parameter specified by .
- void set_param_randomness ( Parameter param, randomness )
Enables or disables the given flag (see Flags for options).