:github_url: hide .. Generated automatically by doc/tools/make_rst.py in Godot's source tree. .. DO NOT EDIT THIS FILE, but the CPUParticles.xml source instead. .. The source is found in doc/classes or modules//doc_classes. .. _class_CPUParticles: CPUParticles ============ **Inherits:** :ref:`GeometryInstance` **<** :ref:`VisualInstance` **<** :ref:`CullInstance` **<** :ref:`Spatial` **<** :ref:`Node` **<** :ref:`Object` CPU-based 3D particle emitter. Description ----------- CPU-based 3D particle node used to create a variety of particle systems and effects. See also :ref:`Particles`, which provides the same functionality with hardware acceleration, but may not run on older devices. **Note:** Unlike :ref:`Particles`, the visibility rect is generated on-the-fly and doesn't need to be configured by the user. Properties ---------- +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`int` | :ref:`amount` | ``8`` | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`float` | :ref:`angle` | ``0.0`` | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`Curve` | :ref:`angle_curve` | | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`float` | :ref:`angle_random` | ``0.0`` | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`float` | :ref:`angular_velocity` | ``0.0`` | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`Curve` | :ref:`angular_velocity_curve` | | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`float` | :ref:`angular_velocity_random` | ``0.0`` | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`float` | :ref:`anim_offset` | ``0.0`` | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`Curve` | :ref:`anim_offset_curve` | | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`float` | :ref:`anim_offset_random` | ``0.0`` | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`float` | :ref:`anim_speed` | ``0.0`` | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`Curve` | :ref:`anim_speed_curve` | | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`float` | :ref:`anim_speed_random` | ``0.0`` | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`Color` | :ref:`color` | ``Color( 1, 1, 1, 1 )`` | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`Gradient` | :ref:`color_ramp` | | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`float` | :ref:`damping` | ``0.0`` | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`Curve` | :ref:`damping_curve` | | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`float` | :ref:`damping_random` | ``0.0`` | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`Vector3` | :ref:`direction` | ``Vector3( 1, 0, 0 )`` | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`DrawOrder` | :ref:`draw_order` | ``0`` | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`Vector3` | :ref:`emission_box_extents` | | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`PoolColorArray` | :ref:`emission_colors` | | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`PoolVector3Array` | :ref:`emission_normals` | | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`PoolVector3Array` | :ref:`emission_points` | | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`Vector3` | :ref:`emission_ring_axis` | | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`float` | :ref:`emission_ring_height` | | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`float` | :ref:`emission_ring_inner_radius` | | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`float` | :ref:`emission_ring_radius` | | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`EmissionShape` | :ref:`emission_shape` | ``0`` | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`float` | :ref:`emission_sphere_radius` | | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`bool` | :ref:`emitting` | ``true`` | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`float` | :ref:`explosiveness` | ``0.0`` | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`int` | :ref:`fixed_fps` | ``0`` | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`bool` | :ref:`flag_align_y` | ``false`` | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`bool` | :ref:`flag_disable_z` | ``false`` | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`bool` | :ref:`flag_rotate_y` | ``false`` | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`float` | :ref:`flatness` | ``0.0`` | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`bool` | :ref:`fract_delta` | ``true`` | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`Vector3` | :ref:`gravity` | ``Vector3( 0, -9.8, 0 )`` | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`float` | :ref:`hue_variation` | ``0.0`` | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`Curve` | :ref:`hue_variation_curve` | | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`float` | :ref:`hue_variation_random` | ``0.0`` | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`float` | :ref:`initial_velocity` | ``0.0`` | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`float` | :ref:`initial_velocity_random` | ``0.0`` | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`float` | :ref:`lifetime` | ``1.0`` | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`float` | :ref:`lifetime_randomness` | ``0.0`` | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`float` | :ref:`linear_accel` | ``0.0`` | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`Curve` | :ref:`linear_accel_curve` | | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`float` | :ref:`linear_accel_random` | ``0.0`` | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`bool` | :ref:`local_coords` | ``true`` | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`Mesh` | :ref:`mesh` | | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`bool` | :ref:`one_shot` | ``false`` | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`float` | :ref:`orbit_velocity` | | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`Curve` | :ref:`orbit_velocity_curve` | | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`float` | :ref:`orbit_velocity_random` | | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`float` | :ref:`preprocess` | ``0.0`` | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`float` | :ref:`radial_accel` | ``0.0`` | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`Curve` | :ref:`radial_accel_curve` | | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`float` | :ref:`radial_accel_random` | ``0.0`` | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`float` | :ref:`randomness` | ``0.0`` | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`float` | :ref:`scale_amount` | ``1.0`` | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`Curve` | :ref:`scale_amount_curve` | | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`float` | :ref:`scale_amount_random` | ``0.0`` | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`float` | :ref:`speed_scale` | ``1.0`` | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`float` | :ref:`spread` | ``45.0`` | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`float` | :ref:`tangential_accel` | ``0.0`` | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`Curve` | :ref:`tangential_accel_curve` | | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ | :ref:`float` | :ref:`tangential_accel_random` | ``0.0`` | +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+ Methods ------- +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`convert_from_particles` **(** :ref:`Node` particles **)** | +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`get_param` **(** :ref:`Parameter` param **)** |const| | +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Curve` | :ref:`get_param_curve` **(** :ref:`Parameter` param **)** |const| | +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`get_param_randomness` **(** :ref:`Parameter` param **)** |const| | +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`get_particle_flag` **(** :ref:`Flags` flag **)** |const| | +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`restart` **(** **)** | +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_param` **(** :ref:`Parameter` param, :ref:`float` value **)** | +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_param_curve` **(** :ref:`Parameter` param, :ref:`Curve` curve **)** | +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_param_randomness` **(** :ref:`Parameter` param, :ref:`float` randomness **)** | +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_particle_flag` **(** :ref:`Flags` flag, :ref:`bool` enable **)** | +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ Enumerations ------------ .. _enum_CPUParticles_DrawOrder: .. _class_CPUParticles_constant_DRAW_ORDER_INDEX: .. _class_CPUParticles_constant_DRAW_ORDER_LIFETIME: .. _class_CPUParticles_constant_DRAW_ORDER_VIEW_DEPTH: 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_CPUParticles_Parameter: .. _class_CPUParticles_constant_PARAM_INITIAL_LINEAR_VELOCITY: .. _class_CPUParticles_constant_PARAM_ANGULAR_VELOCITY: .. _class_CPUParticles_constant_PARAM_ORBIT_VELOCITY: .. _class_CPUParticles_constant_PARAM_LINEAR_ACCEL: .. _class_CPUParticles_constant_PARAM_RADIAL_ACCEL: .. _class_CPUParticles_constant_PARAM_TANGENTIAL_ACCEL: .. _class_CPUParticles_constant_PARAM_DAMPING: .. _class_CPUParticles_constant_PARAM_ANGLE: .. _class_CPUParticles_constant_PARAM_SCALE: .. _class_CPUParticles_constant_PARAM_HUE_VARIATION: .. _class_CPUParticles_constant_PARAM_ANIM_SPEED: .. _class_CPUParticles_constant_PARAM_ANIM_OFFSET: .. _class_CPUParticles_constant_PARAM_MAX: enum **Parameter**: - **PARAM_INITIAL_LINEAR_VELOCITY** = **0** --- Use with :ref:`set_param`, :ref:`set_param_randomness`, and :ref:`set_param_curve` to set initial velocity properties. - **PARAM_ANGULAR_VELOCITY** = **1** --- Use with :ref:`set_param`, :ref:`set_param_randomness`, and :ref:`set_param_curve` to set angular velocity properties. - **PARAM_ORBIT_VELOCITY** = **2** --- Use with :ref:`set_param`, :ref:`set_param_randomness`, and :ref:`set_param_curve` to set orbital velocity properties. - **PARAM_LINEAR_ACCEL** = **3** --- Use with :ref:`set_param`, :ref:`set_param_randomness`, and :ref:`set_param_curve` to set linear acceleration properties. - **PARAM_RADIAL_ACCEL** = **4** --- Use with :ref:`set_param`, :ref:`set_param_randomness`, and :ref:`set_param_curve` to set radial acceleration properties. - **PARAM_TANGENTIAL_ACCEL** = **5** --- Use with :ref:`set_param`, :ref:`set_param_randomness`, and :ref:`set_param_curve` to set tangential acceleration properties. - **PARAM_DAMPING** = **6** --- Use with :ref:`set_param`, :ref:`set_param_randomness`, and :ref:`set_param_curve` to set damping properties. - **PARAM_ANGLE** = **7** --- Use with :ref:`set_param`, :ref:`set_param_randomness`, and :ref:`set_param_curve` to set angle properties. - **PARAM_SCALE** = **8** --- Use with :ref:`set_param`, :ref:`set_param_randomness`, and :ref:`set_param_curve` to set scale properties. - **PARAM_HUE_VARIATION** = **9** --- Use with :ref:`set_param`, :ref:`set_param_randomness`, and :ref:`set_param_curve` to set hue variation properties. - **PARAM_ANIM_SPEED** = **10** --- Use with :ref:`set_param`, :ref:`set_param_randomness`, and :ref:`set_param_curve` to set animation speed properties. - **PARAM_ANIM_OFFSET** = **11** --- Use with :ref:`set_param`, :ref:`set_param_randomness`, and :ref:`set_param_curve` to set animation offset properties. - **PARAM_MAX** = **12** --- Represents the size of the :ref:`Parameter` enum. ---- .. _enum_CPUParticles_Flags: .. _class_CPUParticles_constant_FLAG_ALIGN_Y_TO_VELOCITY: .. _class_CPUParticles_constant_FLAG_ROTATE_Y: .. _class_CPUParticles_constant_FLAG_DISABLE_Z: .. _class_CPUParticles_constant_FLAG_MAX: enum **Flags**: - **FLAG_ALIGN_Y_TO_VELOCITY** = **0** --- Use with :ref:`set_particle_flag` to set :ref:`flag_align_y`. - **FLAG_ROTATE_Y** = **1** --- Use with :ref:`set_particle_flag` to set :ref:`flag_rotate_y`. - **FLAG_DISABLE_Z** = **2** --- Use with :ref:`set_particle_flag` to set :ref:`flag_disable_z`. - **FLAG_MAX** = **3** --- Represents the size of the :ref:`Flags` enum. ---- .. _enum_CPUParticles_EmissionShape: .. _class_CPUParticles_constant_EMISSION_SHAPE_POINT: .. _class_CPUParticles_constant_EMISSION_SHAPE_SPHERE: .. _class_CPUParticles_constant_EMISSION_SHAPE_BOX: .. _class_CPUParticles_constant_EMISSION_SHAPE_POINTS: .. _class_CPUParticles_constant_EMISSION_SHAPE_DIRECTED_POINTS: .. _class_CPUParticles_constant_EMISSION_SHAPE_RING: .. _class_CPUParticles_constant_EMISSION_SHAPE_MAX: 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 :ref:`emission_points`. Particle color will be modulated by :ref:`emission_colors`. - **EMISSION_SHAPE_DIRECTED_POINTS** = **4** --- Particles will be emitted at a position chosen randomly among :ref:`emission_points`. Particle velocity and rotation will be set based on :ref:`emission_normals`. Particle color will be modulated by :ref:`emission_colors`. - **EMISSION_SHAPE_RING** = **5** --- Particles will be emitted in a ring or cylinder. - **EMISSION_SHAPE_MAX** = **6** --- Represents the size of the :ref:`EmissionShape` enum. Property Descriptions --------------------- .. _class_CPUParticles_property_amount: - :ref:`int` **amount** +-----------+-------------------+ | *Default* | ``8`` | +-----------+-------------------+ | *Setter* | set_amount(value) | +-----------+-------------------+ | *Getter* | get_amount() | +-----------+-------------------+ The number of particles emitted in one emission cycle (corresponding to the :ref:`lifetime`). **Note:** Changing :ref:`amount` will reset the particle emission, therefore removing all particles that were already emitted before changing :ref:`amount`. ---- .. _class_CPUParticles_property_angle: - :ref:`float` **angle** +-----------+------------------+ | *Default* | ``0.0`` | +-----------+------------------+ | *Setter* | set_param(value) | +-----------+------------------+ | *Getter* | get_param() | +-----------+------------------+ Initial rotation applied to each particle, in degrees. ---- .. _class_CPUParticles_property_angle_curve: - :ref:`Curve` **angle_curve** +----------+------------------------+ | *Setter* | set_param_curve(value) | +----------+------------------------+ | *Getter* | get_param_curve() | +----------+------------------------+ Each particle's rotation will be animated along this :ref:`Curve`. ---- .. _class_CPUParticles_property_angle_random: - :ref:`float` **angle_random** +-----------+-----------------------------+ | *Default* | ``0.0`` | +-----------+-----------------------------+ | *Setter* | set_param_randomness(value) | +-----------+-----------------------------+ | *Getter* | get_param_randomness() | +-----------+-----------------------------+ Rotation randomness ratio. ---- .. _class_CPUParticles_property_angular_velocity: - :ref:`float` **angular_velocity** +-----------+------------------+ | *Default* | ``0.0`` | +-----------+------------------+ | *Setter* | set_param(value) | +-----------+------------------+ | *Getter* | get_param() | +-----------+------------------+ Initial angular velocity applied to each particle in *degrees* per second. Sets the speed of rotation of the particle. ---- .. _class_CPUParticles_property_angular_velocity_curve: - :ref:`Curve` **angular_velocity_curve** +----------+------------------------+ | *Setter* | set_param_curve(value) | +----------+------------------------+ | *Getter* | get_param_curve() | +----------+------------------------+ Each particle's angular velocity will vary along this :ref:`Curve`. ---- .. _class_CPUParticles_property_angular_velocity_random: - :ref:`float` **angular_velocity_random** +-----------+-----------------------------+ | *Default* | ``0.0`` | +-----------+-----------------------------+ | *Setter* | set_param_randomness(value) | +-----------+-----------------------------+ | *Getter* | get_param_randomness() | +-----------+-----------------------------+ Angular velocity randomness ratio. ---- .. _class_CPUParticles_property_anim_offset: - :ref:`float` **anim_offset** +-----------+------------------+ | *Default* | ``0.0`` | +-----------+------------------+ | *Setter* | set_param(value) | +-----------+------------------+ | *Getter* | get_param() | +-----------+------------------+ Particle animation offset. ---- .. _class_CPUParticles_property_anim_offset_curve: - :ref:`Curve` **anim_offset_curve** +----------+------------------------+ | *Setter* | set_param_curve(value) | +----------+------------------------+ | *Getter* | get_param_curve() | +----------+------------------------+ Each particle's animation offset will vary along this :ref:`Curve`. ---- .. _class_CPUParticles_property_anim_offset_random: - :ref:`float` **anim_offset_random** +-----------+-----------------------------+ | *Default* | ``0.0`` | +-----------+-----------------------------+ | *Setter* | set_param_randomness(value) | +-----------+-----------------------------+ | *Getter* | get_param_randomness() | +-----------+-----------------------------+ Animation offset randomness ratio. ---- .. _class_CPUParticles_property_anim_speed: - :ref:`float` **anim_speed** +-----------+------------------+ | *Default* | ``0.0`` | +-----------+------------------+ | *Setter* | set_param(value) | +-----------+------------------+ | *Getter* | get_param() | +-----------+------------------+ Particle animation speed. ---- .. _class_CPUParticles_property_anim_speed_curve: - :ref:`Curve` **anim_speed_curve** +----------+------------------------+ | *Setter* | set_param_curve(value) | +----------+------------------------+ | *Getter* | get_param_curve() | +----------+------------------------+ Each particle's animation speed will vary along this :ref:`Curve`. ---- .. _class_CPUParticles_property_anim_speed_random: - :ref:`float` **anim_speed_random** +-----------+-----------------------------+ | *Default* | ``0.0`` | +-----------+-----------------------------+ | *Setter* | set_param_randomness(value) | +-----------+-----------------------------+ | *Getter* | get_param_randomness() | +-----------+-----------------------------+ Animation speed randomness ratio. ---- .. _class_CPUParticles_property_color: - :ref:`Color` **color** +-----------+-------------------------+ | *Default* | ``Color( 1, 1, 1, 1 )`` | +-----------+-------------------------+ | *Setter* | set_color(value) | +-----------+-------------------------+ | *Getter* | get_color() | +-----------+-------------------------+ Each particle's initial color. To have particle display color in a :ref:`SpatialMaterial` make sure to set :ref:`SpatialMaterial.vertex_color_use_as_albedo` to ``true``. ---- .. _class_CPUParticles_property_color_ramp: - :ref:`Gradient` **color_ramp** +----------+-----------------------+ | *Setter* | set_color_ramp(value) | +----------+-----------------------+ | *Getter* | get_color_ramp() | +----------+-----------------------+ Each particle's color will vary along this :ref:`GradientTexture` over its lifetime (multiplied with :ref:`color`). ---- .. _class_CPUParticles_property_damping: - :ref:`float` **damping** +-----------+------------------+ | *Default* | ``0.0`` | +-----------+------------------+ | *Setter* | set_param(value) | +-----------+------------------+ | *Getter* | get_param() | +-----------+------------------+ The rate at which particles lose velocity. ---- .. _class_CPUParticles_property_damping_curve: - :ref:`Curve` **damping_curve** +----------+------------------------+ | *Setter* | set_param_curve(value) | +----------+------------------------+ | *Getter* | get_param_curve() | +----------+------------------------+ Damping will vary along this :ref:`Curve`. ---- .. _class_CPUParticles_property_damping_random: - :ref:`float` **damping_random** +-----------+-----------------------------+ | *Default* | ``0.0`` | +-----------+-----------------------------+ | *Setter* | set_param_randomness(value) | +-----------+-----------------------------+ | *Getter* | get_param_randomness() | +-----------+-----------------------------+ Damping randomness ratio. ---- .. _class_CPUParticles_property_direction: - :ref:`Vector3` **direction** +-----------+------------------------+ | *Default* | ``Vector3( 1, 0, 0 )`` | +-----------+------------------------+ | *Setter* | set_direction(value) | +-----------+------------------------+ | *Getter* | get_direction() | +-----------+------------------------+ Unit vector specifying the particles' emission direction. ---- .. _class_CPUParticles_property_draw_order: - :ref:`DrawOrder` **draw_order** +-----------+-----------------------+ | *Default* | ``0`` | +-----------+-----------------------+ | *Setter* | set_draw_order(value) | +-----------+-----------------------+ | *Getter* | get_draw_order() | +-----------+-----------------------+ Particle draw order. Uses :ref:`DrawOrder` values. ---- .. _class_CPUParticles_property_emission_box_extents: - :ref:`Vector3` **emission_box_extents** +----------+---------------------------------+ | *Setter* | set_emission_box_extents(value) | +----------+---------------------------------+ | *Getter* | get_emission_box_extents() | +----------+---------------------------------+ The rectangle's extents if :ref:`emission_shape` is set to :ref:`EMISSION_SHAPE_BOX`. ---- .. _class_CPUParticles_property_emission_colors: - :ref:`PoolColorArray` **emission_colors** +----------+----------------------------+ | *Setter* | set_emission_colors(value) | +----------+----------------------------+ | *Getter* | get_emission_colors() | +----------+----------------------------+ Sets the :ref:`Color`\ s to modulate particles by when using :ref:`EMISSION_SHAPE_POINTS` or :ref:`EMISSION_SHAPE_DIRECTED_POINTS`. ---- .. _class_CPUParticles_property_emission_normals: - :ref:`PoolVector3Array` **emission_normals** +----------+-----------------------------+ | *Setter* | set_emission_normals(value) | +----------+-----------------------------+ | *Getter* | get_emission_normals() | +----------+-----------------------------+ Sets the direction the particles will be emitted in when using :ref:`EMISSION_SHAPE_DIRECTED_POINTS`. ---- .. _class_CPUParticles_property_emission_points: - :ref:`PoolVector3Array` **emission_points** +----------+----------------------------+ | *Setter* | set_emission_points(value) | +----------+----------------------------+ | *Getter* | get_emission_points() | +----------+----------------------------+ Sets the initial positions to spawn particles when using :ref:`EMISSION_SHAPE_POINTS` or :ref:`EMISSION_SHAPE_DIRECTED_POINTS`. ---- .. _class_CPUParticles_property_emission_ring_axis: - :ref:`Vector3` **emission_ring_axis** +----------+-------------------------------+ | *Setter* | set_emission_ring_axis(value) | +----------+-------------------------------+ | *Getter* | get_emission_ring_axis() | +----------+-------------------------------+ The axis for the ring shaped emitter when using :ref:`EMISSION_SHAPE_RING`. ---- .. _class_CPUParticles_property_emission_ring_height: - :ref:`float` **emission_ring_height** +----------+---------------------------------+ | *Setter* | set_emission_ring_height(value) | +----------+---------------------------------+ | *Getter* | get_emission_ring_height() | +----------+---------------------------------+ The height for the ring shaped emitter when using :ref:`EMISSION_SHAPE_RING`. ---- .. _class_CPUParticles_property_emission_ring_inner_radius: - :ref:`float` **emission_ring_inner_radius** +----------+---------------------------------------+ | *Setter* | set_emission_ring_inner_radius(value) | +----------+---------------------------------------+ | *Getter* | get_emission_ring_inner_radius() | +----------+---------------------------------------+ The inner radius for the ring shaped emitter when using :ref:`EMISSION_SHAPE_RING`. ---- .. _class_CPUParticles_property_emission_ring_radius: - :ref:`float` **emission_ring_radius** +----------+---------------------------------+ | *Setter* | set_emission_ring_radius(value) | +----------+---------------------------------+ | *Getter* | get_emission_ring_radius() | +----------+---------------------------------+ The radius for the ring shaped emitter when using :ref:`EMISSION_SHAPE_RING`. ---- .. _class_CPUParticles_property_emission_shape: - :ref:`EmissionShape` **emission_shape** +-----------+---------------------------+ | *Default* | ``0`` | +-----------+---------------------------+ | *Setter* | set_emission_shape(value) | +-----------+---------------------------+ | *Getter* | get_emission_shape() | +-----------+---------------------------+ Particles will be emitted inside this region. See :ref:`EmissionShape` for possible values. ---- .. _class_CPUParticles_property_emission_sphere_radius: - :ref:`float` **emission_sphere_radius** +----------+-----------------------------------+ | *Setter* | set_emission_sphere_radius(value) | +----------+-----------------------------------+ | *Getter* | get_emission_sphere_radius() | +----------+-----------------------------------+ The sphere's radius if :ref:`EmissionShape` is set to :ref:`EMISSION_SHAPE_SPHERE`. ---- .. _class_CPUParticles_property_emitting: - :ref:`bool` **emitting** +-----------+---------------------+ | *Default* | ``true`` | +-----------+---------------------+ | *Setter* | set_emitting(value) | +-----------+---------------------+ | *Getter* | is_emitting() | +-----------+---------------------+ If ``true``, particles are being emitted. ---- .. _class_CPUParticles_property_explosiveness: - :ref:`float` **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. ---- .. _class_CPUParticles_property_fixed_fps: - :ref:`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 particle system itself. ---- .. _class_CPUParticles_property_flag_align_y: - :ref:`bool` **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. ---- .. _class_CPUParticles_property_flag_disable_z: - :ref:`bool` **flag_disable_z** +-----------+--------------------------+ | *Default* | ``false`` | +-----------+--------------------------+ | *Setter* | set_particle_flag(value) | +-----------+--------------------------+ | *Getter* | get_particle_flag() | +-----------+--------------------------+ If ``true``, particles will not move on the z axis. ---- .. _class_CPUParticles_property_flag_rotate_y: - :ref:`bool` **flag_rotate_y** +-----------+--------------------------+ | *Default* | ``false`` | +-----------+--------------------------+ | *Setter* | set_particle_flag(value) | +-----------+--------------------------+ | *Getter* | get_particle_flag() | +-----------+--------------------------+ If ``true``, particles rotate around Y axis by :ref:`angle`. ---- .. _class_CPUParticles_property_flatness: - :ref:`float` **flatness** +-----------+---------------------+ | *Default* | ``0.0`` | +-----------+---------------------+ | *Setter* | set_flatness(value) | +-----------+---------------------+ | *Getter* | get_flatness() | +-----------+---------------------+ Amount of :ref:`spread` in Y/Z plane. A value of ``1`` restricts particles to X/Z plane. ---- .. _class_CPUParticles_property_fract_delta: - :ref:`bool` **fract_delta** +-----------+-----------------------------+ | *Default* | ``true`` | +-----------+-----------------------------+ | *Setter* | set_fractional_delta(value) | +-----------+-----------------------------+ | *Getter* | get_fractional_delta() | +-----------+-----------------------------+ If ``true``, results in fractional delta calculation which has a smoother particles display effect. ---- .. _class_CPUParticles_property_gravity: - :ref:`Vector3` **gravity** +-----------+---------------------------+ | *Default* | ``Vector3( 0, -9.8, 0 )`` | +-----------+---------------------------+ | *Setter* | set_gravity(value) | +-----------+---------------------------+ | *Getter* | get_gravity() | +-----------+---------------------------+ Gravity applied to every particle. ---- .. _class_CPUParticles_property_hue_variation: - :ref:`float` **hue_variation** +-----------+------------------+ | *Default* | ``0.0`` | +-----------+------------------+ | *Setter* | set_param(value) | +-----------+------------------+ | *Getter* | get_param() | +-----------+------------------+ Initial hue variation applied to each particle. ---- .. _class_CPUParticles_property_hue_variation_curve: - :ref:`Curve` **hue_variation_curve** +----------+------------------------+ | *Setter* | set_param_curve(value) | +----------+------------------------+ | *Getter* | get_param_curve() | +----------+------------------------+ Each particle's hue will vary along this :ref:`Curve`. ---- .. _class_CPUParticles_property_hue_variation_random: - :ref:`float` **hue_variation_random** +-----------+-----------------------------+ | *Default* | ``0.0`` | +-----------+-----------------------------+ | *Setter* | set_param_randomness(value) | +-----------+-----------------------------+ | *Getter* | get_param_randomness() | +-----------+-----------------------------+ Hue variation randomness ratio. ---- .. _class_CPUParticles_property_initial_velocity: - :ref:`float` **initial_velocity** +-----------+------------------+ | *Default* | ``0.0`` | +-----------+------------------+ | *Setter* | set_param(value) | +-----------+------------------+ | *Getter* | get_param() | +-----------+------------------+ Initial velocity magnitude for each particle. Direction comes from :ref:`spread` and the node's orientation. ---- .. _class_CPUParticles_property_initial_velocity_random: - :ref:`float` **initial_velocity_random** +-----------+-----------------------------+ | *Default* | ``0.0`` | +-----------+-----------------------------+ | *Setter* | set_param_randomness(value) | +-----------+-----------------------------+ | *Getter* | get_param_randomness() | +-----------+-----------------------------+ Initial velocity randomness ratio. ---- .. _class_CPUParticles_property_lifetime: - :ref:`float` **lifetime** +-----------+---------------------+ | *Default* | ``1.0`` | +-----------+---------------------+ | *Setter* | set_lifetime(value) | +-----------+---------------------+ | *Getter* | get_lifetime() | +-----------+---------------------+ The amount of time each particle will exist (in seconds). ---- .. _class_CPUParticles_property_lifetime_randomness: - :ref:`float` **lifetime_randomness** +-----------+--------------------------------+ | *Default* | ``0.0`` | +-----------+--------------------------------+ | *Setter* | set_lifetime_randomness(value) | +-----------+--------------------------------+ | *Getter* | get_lifetime_randomness() | +-----------+--------------------------------+ Particle lifetime randomness ratio. ---- .. _class_CPUParticles_property_linear_accel: - :ref:`float` **linear_accel** +-----------+------------------+ | *Default* | ``0.0`` | +-----------+------------------+ | *Setter* | set_param(value) | +-----------+------------------+ | *Getter* | get_param() | +-----------+------------------+ Linear acceleration applied to each particle in the direction of motion. ---- .. _class_CPUParticles_property_linear_accel_curve: - :ref:`Curve` **linear_accel_curve** +----------+------------------------+ | *Setter* | set_param_curve(value) | +----------+------------------------+ | *Getter* | get_param_curve() | +----------+------------------------+ Each particle's linear acceleration will vary along this :ref:`Curve`. ---- .. _class_CPUParticles_property_linear_accel_random: - :ref:`float` **linear_accel_random** +-----------+-----------------------------+ | *Default* | ``0.0`` | +-----------+-----------------------------+ | *Setter* | set_param_randomness(value) | +-----------+-----------------------------+ | *Getter* | get_param_randomness() | +-----------+-----------------------------+ Linear acceleration randomness ratio. ---- .. _class_CPUParticles_property_local_coords: - :ref:`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. ---- .. _class_CPUParticles_property_mesh: - :ref:`Mesh` **mesh** +----------+-----------------+ | *Setter* | set_mesh(value) | +----------+-----------------+ | *Getter* | get_mesh() | +----------+-----------------+ The :ref:`Mesh` used for each particle. If ``null``, particles will be spheres. ---- .. _class_CPUParticles_property_one_shot: - :ref:`bool` **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. ---- .. _class_CPUParticles_property_orbit_velocity: - :ref:`float` **orbit_velocity** +----------+------------------+ | *Setter* | set_param(value) | +----------+------------------+ | *Getter* | get_param() | +----------+------------------+ 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. This property is only available when :ref:`flag_disable_z` is ``true``. ---- .. _class_CPUParticles_property_orbit_velocity_curve: - :ref:`Curve` **orbit_velocity_curve** +----------+------------------------+ | *Setter* | set_param_curve(value) | +----------+------------------------+ | *Getter* | get_param_curve() | +----------+------------------------+ Each particle's orbital velocity will vary along this :ref:`Curve`. ---- .. _class_CPUParticles_property_orbit_velocity_random: - :ref:`float` **orbit_velocity_random** +----------+-----------------------------+ | *Setter* | set_param_randomness(value) | +----------+-----------------------------+ | *Getter* | get_param_randomness() | +----------+-----------------------------+ Orbital velocity randomness ratio. ---- .. _class_CPUParticles_property_preprocess: - :ref:`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. ---- .. _class_CPUParticles_property_radial_accel: - :ref:`float` **radial_accel** +-----------+------------------+ | *Default* | ``0.0`` | +-----------+------------------+ | *Setter* | set_param(value) | +-----------+------------------+ | *Getter* | get_param() | +-----------+------------------+ Radial acceleration applied to each particle. Makes particle accelerate away from origin. ---- .. _class_CPUParticles_property_radial_accel_curve: - :ref:`Curve` **radial_accel_curve** +----------+------------------------+ | *Setter* | set_param_curve(value) | +----------+------------------------+ | *Getter* | get_param_curve() | +----------+------------------------+ Each particle's radial acceleration will vary along this :ref:`Curve`. ---- .. _class_CPUParticles_property_radial_accel_random: - :ref:`float` **radial_accel_random** +-----------+-----------------------------+ | *Default* | ``0.0`` | +-----------+-----------------------------+ | *Setter* | set_param_randomness(value) | +-----------+-----------------------------+ | *Getter* | get_param_randomness() | +-----------+-----------------------------+ Radial acceleration randomness ratio. ---- .. _class_CPUParticles_property_randomness: - :ref:`float` **randomness** +-----------+-----------------------------+ | *Default* | ``0.0`` | +-----------+-----------------------------+ | *Setter* | set_randomness_ratio(value) | +-----------+-----------------------------+ | *Getter* | get_randomness_ratio() | +-----------+-----------------------------+ Emission lifetime randomness ratio. ---- .. _class_CPUParticles_property_scale_amount: - :ref:`float` **scale_amount** +-----------+------------------+ | *Default* | ``1.0`` | +-----------+------------------+ | *Setter* | set_param(value) | +-----------+------------------+ | *Getter* | get_param() | +-----------+------------------+ Initial scale applied to each particle. ---- .. _class_CPUParticles_property_scale_amount_curve: - :ref:`Curve` **scale_amount_curve** +----------+------------------------+ | *Setter* | set_param_curve(value) | +----------+------------------------+ | *Getter* | get_param_curve() | +----------+------------------------+ Each particle's scale will vary along this :ref:`Curve`. ---- .. _class_CPUParticles_property_scale_amount_random: - :ref:`float` **scale_amount_random** +-----------+-----------------------------+ | *Default* | ``0.0`` | +-----------+-----------------------------+ | *Setter* | set_param_randomness(value) | +-----------+-----------------------------+ | *Getter* | get_param_randomness() | +-----------+-----------------------------+ Scale randomness ratio. ---- .. _class_CPUParticles_property_speed_scale: - :ref:`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. ---- .. _class_CPUParticles_property_spread: - :ref:`float` **spread** +-----------+-------------------+ | *Default* | ``45.0`` | +-----------+-------------------+ | *Setter* | set_spread(value) | +-----------+-------------------+ | *Getter* | get_spread() | +-----------+-------------------+ Each particle's initial direction range from ``+spread`` to ``-spread`` degrees. Applied to X/Z plane and Y/Z planes. ---- .. _class_CPUParticles_property_tangential_accel: - :ref:`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. ---- .. _class_CPUParticles_property_tangential_accel_curve: - :ref:`Curve` **tangential_accel_curve** +----------+------------------------+ | *Setter* | set_param_curve(value) | +----------+------------------------+ | *Getter* | get_param_curve() | +----------+------------------------+ Each particle's tangential acceleration will vary along this :ref:`Curve`. ---- .. _class_CPUParticles_property_tangential_accel_random: - :ref:`float` **tangential_accel_random** +-----------+-----------------------------+ | *Default* | ``0.0`` | +-----------+-----------------------------+ | *Setter* | set_param_randomness(value) | +-----------+-----------------------------+ | *Getter* | get_param_randomness() | +-----------+-----------------------------+ Tangential acceleration randomness ratio. Method Descriptions ------------------- .. _class_CPUParticles_method_convert_from_particles: - void **convert_from_particles** **(** :ref:`Node` particles **)** Sets this node's properties to match a given :ref:`Particles` node with an assigned :ref:`ParticlesMaterial`. ---- .. _class_CPUParticles_method_get_param: - :ref:`float` **get_param** **(** :ref:`Parameter` param **)** |const| Returns the base value of the parameter specified by :ref:`Parameter`. ---- .. _class_CPUParticles_method_get_param_curve: - :ref:`Curve` **get_param_curve** **(** :ref:`Parameter` param **)** |const| Returns the :ref:`Curve` of the parameter specified by :ref:`Parameter`. ---- .. _class_CPUParticles_method_get_param_randomness: - :ref:`float` **get_param_randomness** **(** :ref:`Parameter` param **)** |const| Returns the randomness factor of the parameter specified by :ref:`Parameter`. ---- .. _class_CPUParticles_method_get_particle_flag: - :ref:`bool` **get_particle_flag** **(** :ref:`Flags` flag **)** |const| Returns the enabled state of the given flag (see :ref:`Flags` for options). ---- .. _class_CPUParticles_method_restart: - void **restart** **(** **)** Restarts the particle emitter. ---- .. _class_CPUParticles_method_set_param: - void **set_param** **(** :ref:`Parameter` param, :ref:`float` value **)** Sets the base value of the parameter specified by :ref:`Parameter`. ---- .. _class_CPUParticles_method_set_param_curve: - void **set_param_curve** **(** :ref:`Parameter` param, :ref:`Curve` curve **)** Sets the :ref:`Curve` of the parameter specified by :ref:`Parameter`. ---- .. _class_CPUParticles_method_set_param_randomness: - void **set_param_randomness** **(** :ref:`Parameter` param, :ref:`float` randomness **)** Sets the randomness factor of the parameter specified by :ref:`Parameter`. ---- .. _class_CPUParticles_method_set_particle_flag: - void **set_particle_flag** **(** :ref:`Flags` flag, :ref:`bool` enable **)** Enables or disables the given flag (see :ref:`Flags` for options). .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)` .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)` .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`