:github_url: hide .. Generated automatically by doc/tools/makerst.py in Godot's source tree. .. DO NOT EDIT THIS FILE, but the Particles.xml source instead. .. The source is found in doc/classes or modules//doc_classes. .. _class_Particles: Particles ========= **Inherits:** :ref:`GeometryInstance` **<** :ref:`VisualInstance` **<** :ref:`Spatial` **<** :ref:`Node` **<** :ref:`Object` **Category:** Core Brief Description ----------------- 3D particle emitter. Properties ---------- +--------------------------------------------+--------------------------------------------------------------------+ | :ref:`int` | :ref:`amount` | +--------------------------------------------+--------------------------------------------------------------------+ | :ref:`DrawOrder` | :ref:`draw_order` | +--------------------------------------------+--------------------------------------------------------------------+ | :ref:`Mesh` | :ref:`draw_pass_1` | +--------------------------------------------+--------------------------------------------------------------------+ | :ref:`Mesh` | :ref:`draw_pass_2` | +--------------------------------------------+--------------------------------------------------------------------+ | :ref:`Mesh` | :ref:`draw_pass_3` | +--------------------------------------------+--------------------------------------------------------------------+ | :ref:`Mesh` | :ref:`draw_pass_4` | +--------------------------------------------+--------------------------------------------------------------------+ | :ref:`int` | :ref:`draw_passes` | +--------------------------------------------+--------------------------------------------------------------------+ | :ref:`bool` | :ref:`emitting` | +--------------------------------------------+--------------------------------------------------------------------+ | :ref:`float` | :ref:`explosiveness` | +--------------------------------------------+--------------------------------------------------------------------+ | :ref:`int` | :ref:`fixed_fps` | +--------------------------------------------+--------------------------------------------------------------------+ | :ref:`bool` | :ref:`fract_delta` | +--------------------------------------------+--------------------------------------------------------------------+ | :ref:`float` | :ref:`lifetime` | +--------------------------------------------+--------------------------------------------------------------------+ | :ref:`bool` | :ref:`local_coords` | +--------------------------------------------+--------------------------------------------------------------------+ | :ref:`bool` | :ref:`one_shot` | +--------------------------------------------+--------------------------------------------------------------------+ | :ref:`float` | :ref:`preprocess` | +--------------------------------------------+--------------------------------------------------------------------+ | :ref:`Material` | :ref:`process_material` | +--------------------------------------------+--------------------------------------------------------------------+ | :ref:`float` | :ref:`randomness` | +--------------------------------------------+--------------------------------------------------------------------+ | :ref:`float` | :ref:`speed_scale` | +--------------------------------------------+--------------------------------------------------------------------+ | :ref:`AABB` | :ref:`visibility_aabb` | +--------------------------------------------+--------------------------------------------------------------------+ Methods ------- +-------------------------+----------------------------------------------------------------------------+ | :ref:`AABB` | :ref:`capture_aabb` **(** **)** const | +-------------------------+----------------------------------------------------------------------------+ | void | :ref:`restart` **(** **)** | +-------------------------+----------------------------------------------------------------------------+ Enumerations ------------ .. _enum_Particles_DrawOrder: .. _class_Particles_constant_DRAW_ORDER_INDEX: .. _class_Particles_constant_DRAW_ORDER_LIFETIME: .. _class_Particles_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. Constants --------- .. _class_Particles_constant_MAX_DRAW_PASSES: - **MAX_DRAW_PASSES** = **4** --- Maximum number of draw passes supported. Description ----------- 3D particle node used to create a variety of particle systems and effects. ``Particles`` features an emitter that generates some number of particles at a given rate. Use the ``process_material`` property to add a :ref:`ParticlesMaterial` to configure particle appearance and behavior. Alternatively, you can add a :ref:`ShaderMaterial` which will be applied to all particles. Tutorials --------- - :doc:`../tutorials/3d/vertex_animation/controlling_thousands_of_fish` Property Descriptions --------------------- .. _class_Particles_property_amount: - :ref:`int` **amount** +----------+-------------------+ | *Setter* | set_amount(value) | +----------+-------------------+ | *Getter* | get_amount() | +----------+-------------------+ Number of particles to emit. ---- .. _class_Particles_property_draw_order: - :ref:`DrawOrder` **draw_order** +----------+-----------------------+ | *Setter* | set_draw_order(value) | +----------+-----------------------+ | *Getter* | get_draw_order() | +----------+-----------------------+ Particle draw order. Uses ``DRAW_ORDER_*`` values. Default value: :ref:`DRAW_ORDER_INDEX`. ---- .. _class_Particles_property_draw_pass_1: - :ref:`Mesh` **draw_pass_1** +----------+---------------------------+ | *Setter* | set_draw_pass_mesh(value) | +----------+---------------------------+ | *Getter* | get_draw_pass_mesh() | +----------+---------------------------+ :ref:`Mesh` that is drawn for the first draw pass. ---- .. _class_Particles_property_draw_pass_2: - :ref:`Mesh` **draw_pass_2** +----------+---------------------------+ | *Setter* | set_draw_pass_mesh(value) | +----------+---------------------------+ | *Getter* | get_draw_pass_mesh() | +----------+---------------------------+ :ref:`Mesh` that is drawn for the second draw pass. ---- .. _class_Particles_property_draw_pass_3: - :ref:`Mesh` **draw_pass_3** +----------+---------------------------+ | *Setter* | set_draw_pass_mesh(value) | +----------+---------------------------+ | *Getter* | get_draw_pass_mesh() | +----------+---------------------------+ :ref:`Mesh` that is drawn for the third draw pass. ---- .. _class_Particles_property_draw_pass_4: - :ref:`Mesh` **draw_pass_4** +----------+---------------------------+ | *Setter* | set_draw_pass_mesh(value) | +----------+---------------------------+ | *Getter* | get_draw_pass_mesh() | +----------+---------------------------+ :ref:`Mesh` that is drawn for the fourth draw pass. ---- .. _class_Particles_property_draw_passes: - :ref:`int` **draw_passes** +----------+------------------------+ | *Setter* | set_draw_passes(value) | +----------+------------------------+ | *Getter* | get_draw_passes() | +----------+------------------------+ The number of draw passes when rendering particles. ---- .. _class_Particles_property_emitting: - :ref:`bool` **emitting** +----------+---------------------+ | *Setter* | set_emitting(value) | +----------+---------------------+ | *Getter* | is_emitting() | +----------+---------------------+ If ``true``, particles are being emitted. Default value: ``true``. ---- .. _class_Particles_property_explosiveness: - :ref:`float` **explosiveness** +----------+--------------------------------+ | *Setter* | set_explosiveness_ratio(value) | +----------+--------------------------------+ | *Getter* | get_explosiveness_ratio() | +----------+--------------------------------+ Time ratio between each emission. If ``0`` particles are emitted continuously. If ``1`` all particles are emitted simultaneously. Default value: ``0``. ---- .. _class_Particles_property_fixed_fps: - :ref:`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 simulation of the particle system itself. ---- .. _class_Particles_property_fract_delta: - :ref:`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``. ---- .. _class_Particles_property_lifetime: - :ref:`float` **lifetime** +----------+---------------------+ | *Setter* | set_lifetime(value) | +----------+---------------------+ | *Getter* | get_lifetime() | +----------+---------------------+ Amount of time each particle will exist. Default value: ``1``. ---- .. _class_Particles_property_local_coords: - :ref:`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``. ---- .. _class_Particles_property_one_shot: - :ref:`bool` **one_shot** +----------+---------------------+ | *Setter* | set_one_shot(value) | +----------+---------------------+ | *Getter* | get_one_shot() | +----------+---------------------+ If ``true``, only ``amount`` particles will be emitted. Default value: ``false``. ---- .. _class_Particles_property_preprocess: - :ref:`float` **preprocess** +----------+-----------------------------+ | *Setter* | set_pre_process_time(value) | +----------+-----------------------------+ | *Getter* | get_pre_process_time() | +----------+-----------------------------+ Amount of time to preprocess the particles before animation starts. Lets you start the animation some time after particles have started emitting. ---- .. _class_Particles_property_process_material: - :ref:`Material` **process_material** +----------+-----------------------------+ | *Setter* | set_process_material(value) | +----------+-----------------------------+ | *Getter* | get_process_material() | +----------+-----------------------------+ :ref:`Material` for processing particles. Can be a :ref:`ParticlesMaterial` or a :ref:`ShaderMaterial`. ---- .. _class_Particles_property_randomness: - :ref:`float` **randomness** +----------+-----------------------------+ | *Setter* | set_randomness_ratio(value) | +----------+-----------------------------+ | *Getter* | get_randomness_ratio() | +----------+-----------------------------+ Emission randomness ratio. Default value: ``0``. ---- .. _class_Particles_property_speed_scale: - :ref:`float` **speed_scale** +----------+------------------------+ | *Setter* | set_speed_scale(value) | +----------+------------------------+ | *Getter* | get_speed_scale() | +----------+------------------------+ Speed scaling ratio. Default value: ``1``. A value of ``0`` can be used to pause the particles. ---- .. _class_Particles_property_visibility_aabb: - :ref:`AABB` **visibility_aabb** +----------+----------------------------+ | *Setter* | set_visibility_aabb(value) | +----------+----------------------------+ | *Getter* | get_visibility_aabb() | +----------+----------------------------+ The :ref:`AABB` that determines the area of the world part of which needs to be visible on screen for the particle system to be active. Method Descriptions ------------------- .. _class_Particles_method_capture_aabb: - :ref:`AABB` **capture_aabb** **(** **)** const Returns the bounding box that contains all the particles that are active in the current frame. ---- .. _class_Particles_method_restart: - void **restart** **(** **)** Restarts the particle emission, clearing existing particles.