ParticlesMaterial

Inherits: Material < Resource < Reference < Object

Category: Core

Brief Description

Particle properties for Particles and Particles2D nodes.

Enumerations

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_ROTATE_Y = 1 — Use with set_flag to set flag_rotate_y.
  • FLAG_DISABLE_Z = 2 — Use with set_flag to set flag_disable_z.
  • 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 in the volume of a sphere.
  • EMISSION_SHAPE_BOX = 2 — Particles will be emitted in the volume of a box.
  • EMISSION_SHAPE_POINTS = 3 — Particles will be emitted at a position determined by sampling a random point on the emission_point_texture. Particle color will be modulated by emission_color_texture.
  • EMISSION_SHAPE_DIRECTED_POINTS = 4 — Particles will be emitted at a position determined by sampling a random point on the emission_point_texture. Particle velocity and rotation will be set based on emission_normal_texture. Particle color will be modulated by emission_color_texture.

Description

ParticlesMaterial defines particle properties and behavior. It is used in the process_material of Particles and Particles2D emitter nodes.

Some of this material’s properties are applied to each particle when emitted, while others can have a CurveTexture applied to vary values over the lifetime of the particle.

When a randomness ratio is applied to a property it is used to scale that property by a random amount. The random ratio is used to interpolate between 1.0 and a random number less than one, the result is multiplied by the property to obtain the randomized property. For example a random ratio of 0.4 would scale the original property between 0.4-1.0 of its original value.

Property Descriptions

Setter set_param(value)
Getter get_param()

Initial rotation applied to each particle, in degrees.

Only applied when flag_disable_z or flag_rotate_y are true or the SpatialMaterial being used to draw the particle is using BillboardMode.BILLBOARD_PARTICLES.


Setter set_param_texture(value)
Getter get_param_texture()

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


Setter set_param_randomness(value)
Getter get_param_randomness()

Rotation randomness ratio. Default value: 0.


Setter set_param(value)
Getter get_param()

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

Only applied when flag_disable_z or flag_rotate_y are true or the SpatialMaterial being used to draw the particle is using BillboardMode.BILLBOARD_PARTICLES.


Setter set_param_texture(value)
Getter get_param_texture()

Each particle’s angular velocity will vary along this CurveTexture.


  • float angular_velocity_random
Setter set_param_randomness(value)
Getter get_param_randomness()

Angular velocity randomness ratio. Default value: 0.


Setter set_param(value)
Getter get_param()

Particle animation offset.


Setter set_param_texture(value)
Getter get_param_texture()

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


  • float anim_offset_random
Setter set_param_randomness(value)
Getter get_param_randomness()

Animation offset randomness ratio. Default value: 0.


Setter set_param(value)
Getter get_param()

Particle animation speed.


Setter set_param_texture(value)
Getter get_param_texture()

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


  • float anim_speed_random
Setter set_param_randomness(value)
Getter get_param_randomness()

Animation speed randomness ratio. Default value: 0.


Setter set_color(value)
Getter get_color()

Each particle’s initial color. If the Particles2D’s texture is defined, it will be multiplied by this color. To have particle display color in a SpatialMaterial make sure to set SpatialMaterial.vertex_color_use_as_albedo to true.


Setter set_color_ramp(value)
Getter get_color_ramp()

Each particle’s color will vary along this GradientTexture.


Setter set_param(value)
Getter get_param()

The rate at which particles lose velocity.


Setter set_param_texture(value)
Getter get_param_texture()

Damping will vary along this CurveTexture.


Setter set_param_randomness(value)
Getter get_param_randomness()

Damping randomness ratio. Default value: 0.


Setter set_emission_box_extents(value)
Getter get_emission_box_extents()

The box’s extents if emission_shape is set to EMISSION_SHAPE_BOX.


Setter set_emission_color_texture(value)
Getter get_emission_color_texture()

Particle color will be modulated by color determined by sampling this texture at the same point as the emission_point_texture.


Setter set_emission_normal_texture(value)
Getter get_emission_normal_texture()

Particle velocity and rotation will be set by sampling this texture at the same point as the emission_point_texture. Used only in EMISSION_SHAPE_DIRECTED_POINTS. Can be created automatically from mesh or node by selecting “Create Emission Points from Mesh/Node” under the “Particles” tool in the toolbar.


  • int emission_point_count
Setter set_emission_point_count(value)
Getter get_emission_point_count()

The number of emission points if emission_shape is set to EMISSION_SHAPE_POINTS or EMISSION_SHAPE_DIRECTED_POINTS.


Setter set_emission_point_texture(value)
Getter get_emission_point_texture()

Particles will be emitted at positions determined by sampling this texture at a random position. Used with EMISSION_SHAPE_POINTS and EMISSION_SHAPE_DIRECTED_POINTS. Can be created automatically from mesh or node by selecting “Create Emission Points from Mesh/Node” under the “Particles” tool in the toolbar.


Setter set_emission_shape(value)
Getter get_emission_shape()

Particles will be emitted inside this region. Use EMISSION_SHAPE_* constants for values. Default value: EMISSION_SHAPE_POINT.


  • 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.


Setter set_flag(value)
Getter get_flag()

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


  • bool flag_disable_z
Setter set_flag(value)
Getter get_flag()

If true, particles will not move on the z axis. Default value: true for Particles2D, false for Particles.


  • bool flag_rotate_y
Setter set_flag(value)
Getter get_flag()

If true, particles rotate around y-axis by angle.


Setter set_flatness(value)
Getter get_flatness()

Amount of spread in Y/Z plane. A value of 1 restricts particles to X/Z plane. Default 0.


Setter set_gravity(value)
Getter get_gravity()

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


Setter set_param(value)
Getter get_param()

Initial hue variation applied to each particle.


Setter set_param_texture(value)
Getter get_param_texture()

Each particle’s hue will vary along this CurveTexture.


  • float hue_variation_random
Setter set_param_randomness(value)
Getter get_param_randomness()

Hue variation randomness ratio. Default value: 0.


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.


Setter set_param(value)
Getter get_param()

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


Setter set_param_texture(value)
Getter get_param_texture()

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


  • float linear_accel_random
Setter set_param_randomness(value)
Getter get_param_randomness()

Linear acceleration randomness ratio. Default value: 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.

Only available when flag_disable_z is true.


Setter set_param_texture(value)
Getter get_param_texture()

Each particle’s orbital velocity will vary along this CurveTexture.


  • float orbit_velocity_random
Setter set_param_randomness(value)
Getter get_param_randomness()

Orbital velocity randomness ratio. Default value: 0.


Setter set_param(value)
Getter get_param()

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


Setter set_param_texture(value)
Getter get_param_texture()

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


  • float radial_accel_random
Setter set_param_randomness(value)
Getter get_param_randomness()

Radial acceleration randomness ratio. Default value: 0.


Setter set_param(value)
Getter get_param()

Initial scale applied to each particle.


Setter set_param_texture(value)
Getter get_param_texture()

Each particle’s scale will vary along this CurveTexture.


Setter set_param_randomness(value)
Getter get_param_randomness()

Scale randomness ratio. Default value: 0.


Setter set_spread(value)
Getter get_spread()

Each particle’s initial direction range from +spread to -spread degrees. Default value: 45. Applied to X/Z plane and Y/Z planes.


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.


Setter set_param_texture(value)
Getter get_param_texture()

Each particle’s tangential acceleration will vary along this CurveTexture.


  • float tangential_accel_random
Setter set_param_randomness(value)
Getter get_param_randomness()

Tangential acceleration randomness ratio. Default value: 0.


Setter set_trail_color_modifier(value)
Getter get_trail_color_modifier()

Trail particles’ color will vary along this GradientTexture.


  • int trail_divisor
Setter set_trail_divisor(value)
Getter get_trail_divisor()

Emitter will emit amount divided by trail_divisor particles. The remaining particles will be used as trail(s).


Setter set_trail_size_modifier(value)
Getter get_trail_size_modifier()

Trail particles’ size will vary along this CurveTexture.