UParticleSystem

A ParticleSystem is a complete particle effect that contains any number of ParticleEmitters.

Windows
MacOS
Linux

Inheritance Hierarchy

References

Module

Engine

Header

/Engine/Source/Runtime/Engine/Classes/Particles/ParticleSystem.h

Include

#include "Particles/ParticleSystem.h"

Syntax

class UParticleSystem : public UFXSystemAsset

Remarks

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.

Variables

Name Description

Public variable

FColor

 

BackgroundColor

The background color to display in Cascade

Public variable

uint8: 1

 

bAllowManagedTicking

Public variable

uint8: 1

 

bAutoDeactivate

Public variable

uint8: 1

 

bHasPhysics

Set during load time to indicate that physics is used...

Public variable

uint8: 1

 

bOrientZAxisTowardCamera

If true, the system's Z axis will be oriented toward the camera

Public variable

uint8: 1

 

bRegenerateLODDuplicate

Internal value that tracks the regenerate LOD levels preference.

Public variable

uint8: 1

 

bShouldResetPeakCounts

EDITOR ONLY: Indicates that Cascade would like to have the PeakActiveParticles count reset

Public variable

uint8: 1

 

bUseDelayRange

If true, select the emitter delay from the range [DelayLow..Delay]

Public variable

uint8: 1

 

bUseFixedRelativeBoundingBox

Whether to use the fixed relative bounding box or calculate it every frame.

Public variable

uint8: 1

 

bUseRealtimeThumbnail

Inidicates the old 'real-time' thumbnail rendering should be used

Public variable

UInterpCurveEdS...

 

CurveEdSetup

Used for curve editor to remember curve-editing setup.

Public variable

FBox

 

CustomOcclusionBounds

The occlusion bounds to use if OcclusionBoundsMethod is set to EPSOBM_CustomBounds

Public variable

float

 

Delay

How long this Particle system should delay when ActivateSystem is called on it.

Public variable

float

 

DelayLow

The low end of the emitter delay if using a range.

Public variable

int32

 

EditorLODSetting

LOD setting for intepolation (set by Cascade) Range [0..100]

Public variable

TArray< UPartic...

 

Emitters

Emitters - internal - the array of emitters in the system

Public variable

FBox

 

FixedRelativeBoundingBox

Fixed relative bounding box for particle system.

Public variable

FString

 

FloorMesh

Cascade 'floor' mesh information.

Public variable

FVector

 

FloorPosition

Public variable

FRotator

 

FloorRotation

Public variable

float

 

FloorScale

Public variable

FVector

 

FloorScale3D

Public variable

float

 

InsignificanceDelay

Time delay between all emitters becoming insignificant and the systems insignificant reaction.

Public variable

EParticleSystem...

 

InsignificantReaction

The reaction this system takes when all emitters are insignificant.

Public variable

float

 

LODDistanceCheckTime

LOD How often (in seconds) the system should perform the LOD distance check.

Public variable

TArray< float >

 

LODDistances

The array of distances for each LOD level in the system.

Public variable

TEnumAsByte< en...

 

LODMethod

The method of LOD level determination to utilize for this particle system PARTICLESYSTEMLODMETHOD_Automatic - Automatically set the LOD level, checking every LODDistanceCheckTime seconds.

Public variable

TArray< FPartic...

 

LODSettings

Public variable

FVector

 

MacroUVPosition

Local space position that UVs generated with the ParticleMacroUV material node will be centered on.

Public variable

float

 

MacroUVRadius

World space radius that UVs generated with the ParticleMacroUV material node will tile based on.

Public variable

EParticleSignif...

 

MaxSignificanceLevel

The maximum level of significance for emitters in this system.

Public variable

uint32

 

MinTimeBetweenTicks

Public variable

TArray< FNamedE...

 

NamedMaterialSlots

Array of named material slots for use by emitters of this system.

Public variable

TEnumAsByte< en...

 

OcclusionBoundsMethod

Which occlusion bounds method to use for this particle system.

Public variable

UParticleSystem...

 

PreviewComponent

The component used to preview the particle system in Cascade

Public variable

float

 

SecondsBeforeInactive

Number of seconds of emitter not being rendered that need to pass before it no longer gets ticked/ becomes inactive.

Public variable

TArray< struct ...

 

SoloTracking

Public variable

TEnumAsByte< en...

 

SystemUpdateMode

Public variable

FRotator

 

ThumbnailAngle

The angle to use when rendering the thumbnail image

Public variable

float

 

ThumbnailDistance

The distance to place the system when rendering the thumbnail image

Public variable

UTexture2D *...

 

ThumbnailImage

Internal: The PSys thumbnail image

Public variable

uint8: 1

 

ThumbnailImageOutOfDate

Internal: Indicates the PSys thumbnail image is out of date

Public variable

float

 

ThumbnailWarmup

The time to warm-up the system for the thumbnail image

Public variable

float

 

UpdateTime_Delta

UpdateTime_Delta - internal

Public variable

float

 

UpdateTime_FPS

UpdateTime_FPS - the frame per second to update at in FixedTime mode

Public variable

float

 

WarmupTickRate

WarmupTickRate - the time step for each tick during warm up.

Public variable

float

 

WarmupTime

WarmupTime - the time to warm-up the particle system when first rendered Warning: WarmupTime is implemented by simulating the particle system for the time requested upon activation.

Constructors

Name Description

Public function

UParticleSystem()

Public function

UParticleSystem

(
    const FObjectInitializer& ObjectIn...
)

Functions

Name Description

Public function Const

bool

 

AllowManagedTicking()

Public function

void

 

BuildEmitters()

Builds all emitters in the particle system.

Public function Virtual

bool

 

CalculateMaxActiveParticleCounts()

CalculateMaxActiveParticleCounts Determine the maximum active particles that could occur with each emitter.

Public function Const

bool

 

CanBePooled()

Public function

bool

 

CanTickInAnyThread()

Return true if this psys can tick in any thread

Public function

void

 

ComputeCanTickInAnyThread()

Decide if this psys can tick in any thread, and set bIsElligibleForAsyncTick

Public function

bool

 

ContainsEmitterType

(
    UClass* TypeData
)

Returns true if this system contains an emitter of the pasesd type.

Public function Const

bool

 

DoesAnyEmitterHaveMotionBlur

(
    int32 LODLevelIndex
)

Checks if any of the emitters have motion blur at a specific lod level.

Public function Virtual

enum Particl...

 

GetCurrentLODMethod()

Return the currently set LOD method

Public function Const

EParticleSig...

 

GetHighestSignificance()

Public function Virtual

float

 

GetLODDistance

(
    int32 LODLevelIndex
)

Return the distance for the given LOD level

Public function Virtual

int32

 

GetLODLevelCount()

Return the number of LOD levels for this particle system

Public function Const

EParticleSig...

 

GetLowestSignificance()

Public function

void

 

GetParametersUtilized

(
    TArray< TArray< FString > >& Parti...,
    TArray< TArray< FString > >& Parti...
)

Retrieve the parameters associated with this particle system.

Public function Const

bool

 

HasGPUEmitter()

Returns true if this system contains any GPU emitters.

Public function Const

bool

 

IsImmortal()

Public function Const

bool

 

IsLooping()

Returns true if the particle system is looping (contains one or more looping emitters)

Public function

bool

 

RemoveAllDuplicateModules

(
    bool bInMarkForCooker,
    TMap< UObject*, bool >* O...
)

Remove all duplicate modules.

Public function Virtual

void

 

SetCurrentLODMethod

(
    ParticleSystemLODMethod InMethod
)

Set the LOD method

Public function

void

 

SetDelay

(
    float InDelay
)

Set the time to delay spawning the particle system

Public function Virtual

bool

 

SetLODDistance

(
    int32 LODLevelIndex,
    float InDistance
)

Set the distance for the given LOD index

Public function

void

 

SetupLODValidity()

Editor helper function for setting the LOD validity flags used in Cascade.

Public function

void

 

SetupSoloing()

Setup the soloing information... Obliterates all current soloing.

Public function Const

bool

 

ShouldManageSignificance()

Public function

bool

 

ToggleSoloing

(
    UParticleEmitter* InEmitter
)

Toggle the bIsSoloing flag on the given emitter.

Public function

bool

 

TurnOffSoloing()

Turn soloing off completely - on every emitter

Public function

void

 

UpdateAllModuleLists()

Update all emitter module lists

Public function

void

 

UpdateColorModuleClampAlpha

(
    UParticleModuleColorBase* Colo...
)

Public function Const

bool

 

UsesCPUCollision()

Public function Const

bool

 

WillBecomeZombie()

Overridden from UObject

Name Description

Public function Virtual Const

void

 

GetAssetRegistryTags

(
    TArray< FAssetRegistryTag >& OutTa...
)

Gathers a list of asset registry searchable tags which are name/value pairs with some type information This only needs to be implemented for asset objects

Public function Virtual Const

bool

 

IsPostLoadThreadSafe()

Called during async load to determine if PostLoad can be called on the loading thread.

Public function Virtual

void

 

PostEditChangeProperty

(
    FPropertyChangedEvent& PropertyCha...
)

Called when a property on this object has been modified externally

Public function Virtual

void

 

PostLoad()

Do any object-specific cleanup required immediately after loading an object.

Public function Virtual

void

 

PreSave

(
    const ITargetPlatform* TargetP...
)

Presave function.

Public function Virtual

void

 

Serialize

(
    FArchive& Ar
)

Handles reading, writing, and reference collecting using FArchive.

Overridden from UObjectBaseUtility

Name Description

Public function Virtual Const

bool

 

CanBeClusterRoot()

Called after load to determine if the object can be a cluster root

Help shape the future of Unreal Engine documentation! Tell us how we're doing so we can serve you better.
Take our survey
Dismiss