3D Particle system properties

Emitter properties

../../../_images/particle_props_emitter.webp

The checkbox next to theEmitting property activates and deactivates the particle system. Particles willonly be processed and rendered if the box is checked. You can set this property at runtime if youwant to activate or deactivate particle systems dynamically.

TheAmount property controls the maximum number of particles visible at any given time. Increase thevalue to spawn more particles at the cost of performance.

TheAmountRatio property is the ratio of particles compared to the amount that will be emitted.If it's less than1.0, the amount of particles emitted through the lifetime will be theAmount *AmountRatio. Changing this value while emitted doesn't affect already created particles and doesn'tcause the particle system to restart. It's useful for making effects where the number of emitted particlesvaries over time.

You can set another particle node as aSubEmitter, which will be spawned as a child of eachparticle. See theSub-emitters section in this manual for a detailed explanation of howto add a sub-emitter to a particle system.

Time properties

../../../_images/particle_props_time.webp

TheLifetime property controls how long each particle exists before it disappears again. Itis measured in seconds. A lot of particle properties can be set to change over the particle'slifetime and blend smoothly from one value to another.

Lifetime andAmount are related. They determine the particle system's emission rate.Whenever you want to know how many particles are spawned per second, this is the formula youwould use:

\[Particles per second = \frac{Amount}{Lifetime}\]

Example: Emitting 32 particles with a lifetime of 4 seconds each would mean the system emits8 particles per second.

TheInterptoEnd property causes all the particles in the node to interpolate towardsthe end of their lifetime.

If the checkbox next to theOneShot property is checked, the particle system will emitamount particlesand then disable itself. It "runs" only once. This property is unchecked by default, so the system willkeep emitting particles until it is disabled or destroyed manually. One-shot particles are a good fit foreffects that react to a single event, like item pickups or splinters that burst away when a bullet hits a wall.

ThePreprocess property is a way to fast-forward to a point in the middle of theparticle system's lifetime and start rendering from there. It is measured in seconds. A value of1 means that when the particle system starts, it will look as if it has beenrunning for one second already.

This can be useful if you want the particle system to look like it has been active for a while eventhough it was just loaded into the scene. Consider the example below. Both particle systems simulatedust flying around in the area. With a preprocess value of0, there wouldn't be any dust for thefirst couple of seconds because the system has not yet emitted enough particles for the effect tobecome noticeable. This can be seen in the video on the left. Compare that to the video on theright where the particle system is preprocessed for4 seconds. The dust is fully visible fromthe very beginning because we skipped the first four seconds of "setup" time.

../../../_images/particle_preprocess.webp

No preprocess (left) vs. 4 seconds of preprocess (right)

You can slow down or speed up the particle system with theSpeedScale property. This appliesto processing the data as well as rendering the particles. Set it to0 to pause the particlesystem completely or set it to something like2 to make it move twice as fast.

../../../_images/particle_speed_scale.webp

Different speed scale values: 0.1 (left), 0.5 (middle), 1.0 (right)

TheExplosiveness property controls whether particles are emitted sequentially or simultaneously.A value of0 means that particles emit one after the other.A value of1 means that allamount particles emit at the same time, givingthe effect a more "explosive" appearance.

TheRandomness property adds some randomness to the particle emission timing. When set to0,there is no randomness at all and the interval between the emission of one particle andthe next is always the same: the particles are emitted atregular intervals. ARandomnessvalue of1 makes the interval completely random. You can use this property to breakup some of the uniformity in your effects. WhenExplosiveness is set to1, thisproperty has no effect.

Particles running at low FPS

Interpolation off (left) vs. on (right)

TheFixedFPS property limits how often the particle system is processed. This includesproperty updates as well as collision and attractors. This can improve performance a lot,especially in scenes that make heavy use of particle collision. Note that this does notchange the speed at which particles move or rotate. You would use theSpeedScaleproperty for that.

When you setFixedFPS to very low values, you will notice thatthe particle animation starts to look choppy. This can sometimes be desired if it fitsthe art direction, but most of the time, you'll want particle systems to animate smoothly.That's what theInterpolate property does. It blends particle properties betweenupdates so that even a particle system running at10 FPS appears as smooth asrunning at60.

Note

When usingparticle collision, tunneling can occurif the particles move fast and colliders are thin. This can be remedied by increasingFixedFPS (at a performance cost).

Collision properties

See also

Setting up particle collision requires following further steps described in3D Particle collisions.

TheBaseSize property defines each particle's default collision size, which is usedto check whether a particle is currently colliding with the environment. You would usually want thisto be about the same size as the particle. It can make sense to increase this valuefor particles that are very small and move very fast to prevent them from clippingthrough the collision geometry.

Drawing properties

Particle drawing properties

TheVisibilityAABB property defines a box around the particle system's origin.As long as any part of this box is in the camera's field of view, the particle systemis visible. As soon as it leaves the camera's field of view, the particle system stopsbeing rendered at all. You can use this property to boost performance by keeping thebox as small as possible.

One thing to keep in mind when you set a size for theVisibilityAABB is that particlesthat are outside of its bounds disappear instantly when it leaves the camera's field of view.Particle collision will also not occur outside theVisibilityAABB.While not technically a bug, this can have a negative effect on the visual experience.

When theLocalCoords property is checked, all particle calculations use the localcoordinate system to determine things like up and down, gravity, and movement direction.Up and down, for example, would follow the particle system's or its parent node's rotation.When the property is unchecked, the global world space is used for these calculations:Down will always be -Y in world space, regardless of the particle system's rotation.

../../../_images/particle_coords.webp

Local space coordinates (left) vs. world space coordinates (right)

TheDrawOrder property controls the order in which individual particles are drawn.Index meansthat they are drawn in the order of emission: particles that are spawned later are drawnon top of earlier ones.Lifetime means that they are drawn in the order of theirremaining lifetime.ReverseLifetime reverses theLifetime draw order.ViewDepthmeans particles are drawn according to their distance from the camera: The ones closerto the camera on top of those farther away.

TheTransformAlign property controls the particle's default rotation.Disabledmeans they don't align in anyparticular way. Instead, their rotation is determined by the values set in the processmaterial.Z-Billboard means that the particles will always face the camera. This issimilar to theBillboard property in theStandard Material.YtoVelocity means that each particle's Y-axis aligns with its movementdirection. This can be useful for things like bullets or arrows, where you want particlesto always point "forward".Z-Billboard+YtoVelocity combines the previous two modes.Each particle's Z-axis will point towards the camera while its Y-axis will align withtheir velocity.

Trail properties

Particle trails

Particle trail properties

TheEnabled property controls whether particles are rendered as trails. The box needsto be checked if you want to make use of particle trails.

TheLengthSecs property controls for how long a trail should be emitted. The longerthis duration is, the longer the trail will be.

See theParticle trails section in this manual for a detailedexplanation of how particle trails work and how to set them up.


User-contributed notes

Please read theUser-contributed notes policy before submitting a comment.