Component reference
FX components

Particle System component

13min

Description

The Particle system component enables you to create dynamic visual effects like smoke, fire, rain, and explosions using particles. Built on the three.quarks library, it offers extensive customization to control how particles are emitted, behave, and render over time.



Properties

The Particle system component includes a wide array of configurable properties. These properties can be organized in the following categories:

Emission settings

These settings control how particles are emitted from the system.

Property

Description

Looping

Determines if the particle system loops after completing its duration.

Duration

Sets how long the particle system emits particles during one cycle. A value of 0 makes the emission infinite.

Prewarm

Starts the system in a state as if it has been running for its duration, creating an immediate effect.

Emitter Shape

Defines the emission source's shape, such as Point, Sphere, Cone, Donut, or a Mesh surface.

Emission Bursts

Adds bursts of particles at specific times during the emission cycle.

Emission rate

The number of particles emitted per second, either as a constant or a range.



Particle properties

These settings define how particles look and behave when emitted.

Property

Description

Start Life

Sets how long particles live after being emitted.

  • Type: Can be Constant, Interval, or Bezier
  • Min: Minimum lifespan (for Interval or Bezier)
  • Max: Maximum lifespan (for Interval or Bezier)

Start Size

Determines the initial size of particles.

  • Type: Can be Constant, Interval, or Bezier
  • Min: Minimum size (for Interval or Bezier)
  • Max: Maximum size (for Interval or Bezier)

Start Speed

Controls how fast particles are emitted from the source.

  • Type: Can be Constant, Interval, or Bezier
  • Min: Minimum speed (for Interval or Bezier)
  • Max: Maximum speed (for Interval or Bezier)

Start Rotation

Sets the initial rotation angle of particles.

  • Type: Can be Constant, Interval, or Bezier
  • Min: Minimum rotation angle (for Interval or Bezier)
  • Max: Maximum rotation angle (for Interval or Bezier)

Start Color

Specifies the particles' initial color, supporting solid colors or gradients.

  • Type: Can be Constant, Interval, or Bezier
  • Color: Sets the strat color of the particles
  • Opacity: Adjusts transparency (0 for fully transparent to 1 for fully opaque)

Emission Over Time

Defines how many particles are emitted over time.

  • Type: Can be Constant, Interval, or Bezier
  • Value: Specifies the emission rate


Renderer settings

These properties define how particles are rendered in your scene.

Property

Description

Render Mode

Defines how particles appear in the scene. Options include: Billboard, Stretched Billboard, Mesh, and Trail.

Particle Texture

Assigns a texture to particles. This setting supports single images or sprite sheets for animation.

UV Tiles (X, Y)

Defines the number of tiles in a sprite sheet (columns and rows).

Starting Tiles Index

Specifies the starting frame when using sprite sheets for animated particles. Settings include:

  • Type: Can be Constant, Interval, or Bezier
  • Value: Determines which tile index to start from

Blending

Sets the blending behavior. Options include Normal, Additive, Subtractive, Multiply, Custom, and No Blending.

Transparent

Toggles the use of the alpha channel for transparency.

Use World Space

Determines if particles are affected by world coordinates (enabled) or local emitter coordinates (disabled).



Behaviors

Behaviors dynamically modify particle properties over time, adding realism and flexibility to your visual effects. Below is the list of supported behaviors for particles:

Behavior

Description

Enables particles to interact with colliders, simulating realistic collisions.

Adds a constant force, such as wind or gravity, to particles.

Organizes and manages sequences of behaviors for particles.

Dynamically adjusts the direction from which particles are emitted.

Changes particle color based on their speed.

Adjusts particle color over their lifespan, enabling effects like fading or gradients.

Spawns secondary particle systems from existing particles for layered effects.

Applies force to particles progressively over their lifetime.

Animates particles through frames in a sprite sheet as they age.

Simulates gravitational pull on particles, mimicking real-world physics.

Restricts particle speed over time, ideal for controlled effects.

Noise

Adds randomness to particle motion, creating organic, natural-looking effects.

Causes particles to revolve around a point over time, perfect for vortex-like effects.

Rotates particles in 3D space as they age.

Changes particle rotation based on their speed, adding dynamic motion.

Modifies particle rotation as they age, enabling spinning or turning effects.

Adjusts particle size based on their speed, great for effects like smoke trails.

Alters particle size progressively as they age, allowing for growth or shrinkage effects.

Gradually changes particle speed over their lifespan for acceleration or deceleration.

Introduces turbulence to particle motion, creating chaotic, swirling effects.

Modifies particle width along their travel path, ideal for effects like streaks or comets.



Usage notes

  • Performance tips: Keep particle counts manageable, especially for mobile devices.
  • Sprite sheets for textures: Ensure sprite sheets are correctly formatted, and configure the UV tiles properly.


Using sprite sheets with the particle system

Sprite sheets are a powerful way to create advanced animated particle effects. They consist of multiple frames of an animation stored in a single image, which the particle system cycles through to create dynamic visual effects like fire, smoke, or sparks.

To create a particle effect usign a sprite sheet, follow these steps:

1

Prepare the sprite sheet

Ensure your image is formatted as a grid, with evenly spaced rows and columns representing the frames of the animation. For example:

Example of a particle sprite sheet
Example of a particle sprite sheet

2

Set UV Tiles (X, Y):

Use the UV Tiles (X, Y) property to specify the number of tiles in the sprite sheet. The X value represents columns, and the Y value represents rows.

3

Choose Starting Tile Index

Configure the Starting Tile Index to define which frame of the sprite sheet the animation begins from. You can set it to:

  • Constant: Always start from the same frame.
  • Interval: Randomly choose a starting frame from a range.
  • Bezier: Animate the starting frame dynamically.
4

Use Frame Over Life behavior

Add the Frame Over Life behavior to animate the particles through the frames of the sprite sheet over their lifespan. Configure the behavior to control the playback speed and looping options.

Following these steps, you can effectively use your sprite sheets for creating realistic particle effects in the engine.

Practical applications

Some other examples of practical applications for sprite sheet particles include:

  • Fire animations: A sprite sheet could contain frames showing flames transitioning into smoke. Use Frame Over Life to play the sequence.
  • Sparks: For effects like sparks, use a sprite sheet with variations in shape and brightness, cycling through them rapidly.
  • Explosions: Animate explosions using a sprite sheet that transitions from a bright burst to dissipating debris or smoke.


Important details

  • three.quarks integration: Advanced settings may require reviewing the three.quarks documentation.
  • Limitations: Some features, like advanced Bezier curves, may have restricted functionality.