CPUParticles
Inherits: GeometryInstance < VisualInstance < Spatial < Node < Object
Category: Core
Brief Description
CPU-based 3D particle emitter.
Properties
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.
- DRAW_ORDER_VIEW_DEPTH = 2 — Particles are drawn in order of depth.
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_LINEAR_ACCEL = 2 — Use with set_param, set_param_randomness, and set_param_texture to set linear acceleration properties.
- PARAM_RADIAL_ACCEL = 3 — Use with set_param, set_param_randomness, and set_param_texture to set radial acceleration properties.
- PARAM_TANGENTIAL_ACCEL = 4 — Use with set_param, set_param_randomness, and set_param_texture to set tangential acceleration properties.
- PARAM_DAMPING = 5 — Use with set_param, set_param_randomness, and set_param_texture to set damping properties.
- PARAM_ANGLE = 6 — Use with set_param, set_param_randomness, and set_param_texture to set angle properties.
- PARAM_SCALE = 7 — Use with set_param, set_param_randomness, and set_param_texture to set scale properties.
- PARAM_HUE_VARIATION = 8 — Use with set_param, set_param_randomness, and set_param_texture to set hue variation properties.
- PARAM_ANIM_SPEED = 9 — Use with set_param, set_param_randomness, and set_param_texture to set animation speed properties.
- PARAM_ANIM_OFFSET = 10 — Use with set_param, set_param_randomness, and set_param_texture to set animation offset properties.
- PARAM_MAX = 11 — 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_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 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 3D particle node used to create a variety of particle systems and effects.
See also Particles, which provides the same functionality with hardware acceleration, but may not run on older devices.
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() |
Unused for 3D particles.
- Gradient color_ramp
Setter | set_color_ramp(value) |
Getter | get_color_ramp() |
Unused for 3D particles.
- 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.
- Vector3 emission_box_extents
Setter | set_emission_box_extents(value) |
Getter | get_emission_box_extents() |
The rectangle’s extents if emission_shape is set to EMISSION_SHAPE_BOX.
- PoolColorArray emission_colors
Setter | set_emission_colors(value) |
Getter | get_emission_colors() |
- PoolVector3Array emission_normals
Setter | set_emission_normals(value) |
Getter | get_emission_normals() |
- PoolVector3Array emission_points
Setter | set_emission_points(value) |
Getter | get_emission_points() |
- 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 sphere’s radius if EmissionShape is set to EMISSION_SHAPE_SPHERE.
- 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 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.
- bool flag_disable_z
Setter | set_particle_flag(value) |
Getter | get_particle_flag() |
If true
, particles will not move on the z axis. Default value: false
.
- bool flag_rotate_y
Setter | set_particle_flag(value) |
Getter | get_particle_flag() |
If true
, particles rotate around y-axis by angle.
- float flatness
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
.
- 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
- Vector3 gravity
Setter | set_gravity(value) |
Getter | get_gravity() |
Gravity applied to every particle. Default value: (0, -9.8, 0)
.
- 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
.
- Mesh mesh
Setter | set_mesh(value) |
Getter | get_mesh() |
The Mesh used for each particle. If null
, particles will be spheres.
- 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
.
Method Descriptions
- void convert_from_particles ( Node particles )
Sets this node’s properties to match a given Particles node with an assigned ParticlesMaterial.
- void restart ( )
Restarts the particle emitter.