These modules provide the ability to apply acceleration, or a change in velocity over time, to particles.
Acceleration
The Acceleration module sets the initial acceleration of the particle. This value is stored per-particle, and is applied each frame during the Update call. It contains the following member(s):
Property | Description |
---|---|
Acceleration | |
Acceleration | A vector distribution indicating the acceleration to use. The value is grabbed based on the EmitterTime at the spawn of the particle. |
Apply Owner Scale | If true, the acceleration is multiplied by the scale of the ParticleSystemComponent. |
Always In World Space | If true, the acceleration vector is assumed to be in world-space coordinates. Otherwise, it is assumed to be in local-space relative to the ParticleSystemComponent. |
This module will add a vector parameter to the particle payload data, UsedAcceleration. This value is used to retain the acceleration over the life of each particle.
Each frame, the current and base velocity values of the particle is then updated using the formula (velocity += acceleration * DeltaTime) where DeltaTime is the amount of time passed since the last frame.
Const Acceleration
The Const Acceleration module is very similar to the Acceleration module, in that it applies an initial acceleration to the particle. The key difference, however, is that the Const Acceleration module does not accept a Distribution property.
Const Acceleration is the only type of acceleration available to GPU Sprite particles.
Property | Description |
---|---|
Const Acceleration | |
Acceleration | A vector distribution indicating the acceleration to use. The value is grabbed based on the EmitterTime at the spawn of the particle. |
This module will add a vector parameter to the particle payload data, UsedAcceleration. This value is used to retain the acceleration over the life of each particle.
Each frame, the current and base velocity values of the particle is then updated using the formula (velocity += acceleration * DeltaTime) where DeltaTime is the amount of time passed since the last frame.
Drag
Drag applies a constant resistance to motion to each particle. The coefficient value is calculated at spawn time and applied to the particle at each frame.
Property | Description |
---|---|
Drag | |
Coefficient | A float distribution defining the drag coefficient, or the amount of resistance to motion, that will be applied to each particle. |
Drag Scale/Life
Drag Scale/Life is a multiplier value that works with an existing Drag module, allowing, for example, for the drag to be scaled via a curve across the life of the particle.
Drag Scale/Life only works on GPU Sprite particles.
Property | Description |
---|---|
Drag Scale/Life | |
Drag Scale | A float distribution defining the scaling value that will be applied to the existing particle drag coefficient. |
AccelerationOverLife
Acceleration Over Life sets the acceleration of the particle over its lifetime. It contains the following member(s):
Property | Description |
---|---|
Acceleration | |
Accel Over Life | A vector distribution indicating the acceleration to use. Value is retrieved based on the RelativeTime at the update of the particle. |
Always In World Space | If true, the acceleration vector is assumed to be in world-space coordinates. Otherwise, it is assumed to be in local-space relative to the ParticleSystemComponent. |
The acceleration is retrieved from the Acceleration distribution using the Particle.RelativeTime. The current and base velocity values of the particle are then updated using the formula (velocity += acceleration* DeltaTime) where DeltaTime is the amount of time passed since the last frame.