CPUParticles

Inherits: GeometryInstance < VisualInstance < CullInstance < Spatial < Node < Object CPU-based 3D particle emitter.

Description

CPU-based 3D particle node used to create a variety of particle systems and effects. Particles, which provides the same functionality with hardware acceleration, but may not run on older devices. Note: Unlike Particles, the visibility rect is generated on-the-fly and doesn’t need to be configured by the user.

Properties

Methods

Enumerations

DrawOrder:

  • DRAW_ORDER_INDEX = 0 —- Particles are drawn in the order emitted.
  • DRAW_ORDER_LIFETIME = 1 —- Particles are drawn in order of remaining lifetime.
  • DRAW_ORDER_VIEW_DEPTH = 2 —- Particles are drawn in order of depth.

Parameter:

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

Flags:

  • FLAG_ALIGN_Y_TO_VELOCITY = 0 —- Use with set_particle_flag to set flag_align_y.
  • FLAG_ROTATE_Y = 1 —- Use with set_particle_flag to set flag_rotate_y.
  • FLAG_DISABLE_Z = 2 —- Use with set_particle_flag to set flag_disable_z.
  • FLAG_MAX = 3 —- Represents the size of the Flags 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 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_RING = 5 —- Particles will be emitted in a ring or cylinder.
  • EMISSION_SHAPE_MAX = 6 —- Represents the size of the EmissionShape enum.

    Property Descriptions

  • int amount lifetime). Note: Changing amount will reset the particle emission, therefore removing all particles that were already emitted before changing amount.

  • float angle Initial rotation applied to each particle, in degrees.

  • Curve angle_curve Curve.

  • float angle_random Rotation randomness ratio.

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

  • Curve angular_velocity_curve Curve.

  • float angular_velocity_random Angular velocity randomness ratio.

  • float anim_offset Particle animation offset.

  • Curve anim_offset_curve Curve.

  • float anim_offset_random Animation offset randomness ratio.

  • float anim_speed Particle animation speed.

  • Curve anim_speed_curve Curve.

  • float anim_speed_random Animation speed randomness ratio.

  • Color color SpatialMaterial make sure to set SpatialMaterial.vertex_color_use_as_albedo to true.

  • Gradient color_ramp GradientTexture over its lifetime (multiplied with color).

  • float damping The rate at which particles lose velocity.

  • Curve damping_curve Curve.

  • float damping_random Damping randomness ratio.

  • Vector3 direction Unit vector specifying the particles’ emission direction.

  • DrawOrder draw_order DrawOrder values.

  • Vector3 emission_box_extents emission_shape is set to EMISSION_SHAPE_BOX.

  • PoolColorArray emission_colors Colors to modulate particles by when using EMISSION_SHAPE_POINTS or EMISSION_SHAPE_DIRECTED_POINTS.

  • PoolVector3Array emission_normals EMISSION_SHAPE_DIRECTED_POINTS.

  • PoolVector3Array emission_points EMISSION_SHAPE_POINTS or EMISSION_SHAPE_DIRECTED_POINTS.

  • Vector3 emission_ring_axis EMISSION_SHAPE_RING.

  • float emission_ring_height EMISSION_SHAPE_RING.

  • float emission_ring_inner_radius EMISSION_SHAPE_RING.

  • float emission_ring_radius EMISSION_SHAPE_RING.

  • EmissionShape emission_shape EmissionShape for possible values.

  • float emission_sphere_radius EmissionShape is set to EMISSION_SHAPE_SPHERE.

  • bool emitting true, particles are being emitted.

  • float explosiveness 0, there will be a gap in emissions before the next cycle begins.

  • int 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 particle system itself.

  • bool flag_align_y Align Y axis of particle with the direction of its velocity.

  • bool flag_disable_z true, particles will not move on the z axis.

  • bool flag_rotate_y true, particles rotate around Y axis by angle.

  • float flatness spread in Y/Z plane. A value of 1 restricts particles to X/Z plane.

  • bool fract_delta true, results in fractional delta calculation which has a smoother particles display effect.

  • Vector3 gravity Gravity applied to every particle.

  • float hue_variation Initial hue variation applied to each particle.

  • Curve hue_variation_curve Curve.

  • float hue_variation_random Hue variation randomness ratio.

  • float initial_velocity spread and the node’s orientation.

  • float initial_velocity_random Initial velocity randomness ratio.

  • float lifetime The amount of time each particle will exist (in seconds).

  • float lifetime_randomness Particle lifetime randomness ratio.

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

  • Curve linear_accel_curve Curve.

  • float linear_accel_random Linear acceleration randomness ratio.

  • bool local_coords true, particles use the parent node’s coordinate space. If false, they use global coordinates.

  • Mesh mesh Mesh used for each particle. If null, particles will be spheres.

  • bool one_shot true, only one emission cycle occurs. If set true during a cycle, emission will stop at the cycle’s end.

  • float orbit_velocity Orbital velocity applied to each particle. Makes the particles circle around origin in the local XY plane. Specified in number of full rotations around origin per second. flag_disable_z is true.

  • Curve orbit_velocity_curve Curve.

  • float orbit_velocity_random Orbital velocity randomness ratio.

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

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

  • Curve radial_accel_curve Curve.

  • float radial_accel_random Radial acceleration randomness ratio.

  • float randomness Emission lifetime randomness ratio.

  • float scale_amount Initial scale applied to each particle.

  • Curve scale_amount_curve Curve.

  • float scale_amount_random Scale randomness ratio.

  • float speed_scale 0 can be used to pause the particles.

  • float spread +spread to -spread degrees. Applied to X/Z plane and Y/Z planes.

  • float tangential_accel 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 Curve.

  • float tangential_accel_random Tangential acceleration randomness ratio.

    Method Descriptions

  • convert_from_particles ( Node particles ) Particles node with an assigned ParticlesMaterial.

  • float get_param ( Parameter param ) const Parameter.

  • Curve get_param_curve ( Parameter param ) const Curve of the parameter specified by Parameter.

  • float get_param_randomness ( Parameter param ) const Parameter.

  • bool get_particle_flag ( Flags flag ) const Flags for options).

  • restart ( ) Restarts the particle emitter.

  • set_param ( Parameter param, float value ) Parameter.

  • set_param_curve ( Parameter param, Curve curve ) Curve of the parameter specified by Parameter.

  • set_param_randomness ( Parameter param, float randomness ) Parameter.

  • set_particle_flag ( Flags flag, bool enable ) Flags for options).