Particle System Class

A ParticleSystem is a complete particle effect that contains any number of ParticleEmitters. By allowing multiple emitters in a system, the designer can create elaborate particle effects that are held in a single system. Once created using Cascade, a ParticleSystem can then be inserted into a level or created in script.

The ParticleSystem class contains the following public variable(s):

Property Description

ParticleSystem

SystemUpdateMode This enumeration indicates the method the system should use to update its emitters. Two modes are available:
Mode Description
EPSUM_RealTime Updates the emitters in real time.
EPSUM_FixedTime Updates the emitters at a fixed time step. This locks the system to the update time of the game and is performance dependent, so a lower framerate lowers the update time of the system (slowing it down), whereas a higher framerate speeds it up. Usually only used in special cases.

EPSUM_FixedTime will step the system a given amount regardless of the current frame-rate. This mode should only be used when the effect timing is not key to another system - such as tying the emitter to an animation.

UpdateTime_FPS The time-step to use when operating in EPSUM_FixedTime.
WarmupTime The amount of time to warm-up the system at launch. This allows for an emitter to start in full bloom. This can degrade performance, so use sparingly especially at high values. Good for systems you want to have started while the level initially loads, like smoke pillars or ambient effects.
Warmup Tick Rate This governs the time step for each tick during system warmup. Increasing this value improves performance while decreasing improves accuracy. A value of 0 indicates the default tick time.
Orient ZAxis Toward Camera If true, the local Z-axis of the ParticleSystem will be oriented towards the camera at all times.
SecondsBeforeInactive If the particle system is not rendered for this amount of time (in seconds), it will go inactive no longer being ticked. Enter a zero to prevent the system from ever being forced to be inactive.

Thumbnail

ThumbnailWarmup The amount of time to warm-up the system before catching the thumbnail render when Use Real-Time Thumbnail is checked.
Use Real-Time Thumbnail If true, the thumbnail displayed in the Content Browser for the ParticleSystem asset will be automatically captured using the default camera position and reflect the current settings and appearance of the ParticleSystem instead of using the saved thumbnail.

Using Real-Time thumbnail rendering can slow down performance of the Content Browser.

LOD

LOD Distance Check Time This is how often (in seconds) the system should perform a distance check to determine the LOD level to utilize. (Only used when LODMethod is set to Automatic.)
LOD Method This enumeration indicates the method the system should utilize for selecting appropriate LOD levels. Two methods are available:
Method Description
Automatic Set the LOD level based on LOD distance and check time automatically.
DirectSet The game will set the LOD level for the system to use directly.
ActivateAutomatic LOD level is determined at activation time, then left alone unless directly set by game code.
LODDistances An array of distances for determining which LOD level to utilize. (Only used when LODMethod is set to Automatic.) These numbers recommend the minimum distance away for the LOD level to be selected. For example, consider a system with 3 LOD levels:
LODDistanceIndex Value Range LOD level selected
0 0.0 0.0 - 2499.9 0 (the highest)
1 2500.0 2500.0 - 4999.9 1
2 5000.0 5000.0 - Infinity 2
LODSettings An array of structs determining specific settings to use for each individual LOD. Currently, the only setting Lit controls whether the ParticleSystem accepts lights when the given LOD is in use.

Bounds

Use Fixed Relative Bounding Box If true, the code will utilize the FixedRelativeBoundingBox as the bounds for the particle system.
Fixed Relative Bounding Box Allows for user-set bounding-boxes for the particle system. Removes the overhead of performing bounds updating each frame, at the cost of potentially rendering/updating when the effect is not visible or conversely not rendering/updating when the effect is in view. Unless you have emitters with wildly varying size scales, you should almost always use a fixed bounding box for performance reasons.

Right-clicking the 'Toggle Bounds' button on the Cascade toolbar will fill in this dialog box with the currently used values of the dynamic box in Cascade, giving you a base to start from to tweak to your liking.

Delay

Delay The amount of time in seconds the ParticleSystem should wait before activating when ActivateSystem() is executed. Also, this value is the high end of the range to use for choosing a random delay value when Use Delay Range is true.
Delay Low The low end of the range to use for choosing a random delay value when Use Delay Range is true.
Use Delay Range If true, a random value between Delay Low and Delay is chosen for the actual delay value to use.

MacroUV

Macro UV Position The local-space position relative to the ParticleSystem used as the center point to generate the UV texture coordinates for the ParticleMacroUV material expression.
Macro UV Radius World-space radius that determines the distance from the Macro UV Position where the UV texture coordinates generated for the ParticleMacroUV material expression will begin tiling.

Occlusion

Occlusion Bounds Method The method to use when calculating occlusion of the ParticleSystem.
Method Description
EPSOBM_None Occlusion is not calculated for the ParticleSystem.
EPSOBM_ParticleBounds The Bounds of the ParticleSystemComponent is used for calculating occlusion for the ParticleSystem.
EPSOBM_CustomBounds The Custom Occlusion Bounds values are used to calculate occlusion for the ParticleSystem.
Custom Occlusion Bounds The bounds to use for calculating occlusion when using the EPSOBM_CustomBounds Occlusion Bounds Method.
Tags