UParticleSystemComponent

Inheritance Hierarchy

Syntax

class UParticleSystemComponent : public UPrimitiveComponent

Remarks

A particle emitter.

Variables

Name Description

Public variable

float

 

AccumLODDistanceCheckTime

LOD updating...

Public variable

float

 

AccumTickTime

WITH_EDITORONLY_DATA.

Public variable

EAttachmentRule

 

AutoAttachLocationRule

Options for how we handle our location when we attach to the AutoAttachParent, if bAutoManageAttachment is true.

Public variable

TWeakObjectPtr <...

 

AutoAttachParent

Component we automatically attach to when activated, if bAutoManageAttachment is true.

Public variable

EAttachmentRule

 

AutoAttachRotationRule

Options for how we handle our rotation when we attach to the AutoAttachParent, if bAutoManageAttachment is true.

Public variable

EAttachmentRule

 

AutoAttachScaleRule

Options for how we handle our scale when we attach to the AutoAttachParent, if bAutoManageAttachment is true.

Public variable

FName

 

AutoAttachSocketName

Socket we automatically attach to on the AutoAttachParent, if bAutoManageAttachment is true.

Public variable

uint32: 1

 

bAllowRecycling

If true, this Particle System will be available for recycling after it has completed.

Public variable

uint32: 1

 

bAutoDestroy

Public variable

uint32: 1

 

bAutoManageAttachment

True if we should automatically attach to AutoAttachParent when activated, and detach from our parent when completed.

Public variable

uint32: 1

 

bForcedInActive

This is set when any of our "don't tick me" timeout values have fired

Public variable

uint32: 1

 

bForceLODUpdateFromRenderer

If true, force an LOD update from the renderer.

Public variable

uint32: 1

 

bHasBeenActivated

This flag will be set the first time the PSysComp is activated...

Public variable

uint32: 1

 

bIsManagingSignificance

If this component is having it's significance managed by gameplay code.

Public variable

uint32: 1

 

bIsViewRelevanceDirty

If true, the ViewRelevanceFlags are dirty and should be recached

Public variable

uint32: 1

 

bJustRegistered

Indicates that the component has not been ticked since being registered.

Public variable

uint32: 1

 

bOverrideLODMethod

Indicates that the component's LODMethod overrides the Template's

Public variable

uint32: 1

 

bResetOnDetach

Public variable

uint32: 1

 

bResetTriggered

If true, someone has requested this component reset.

Public variable

uint32: 1

 

bSkipUpdateDynamicDataDuringTick

Flag indicating that dynamic updating of render data should NOT occur during Tick.

Public variable

uint32: 1

 

bUpdateOnDedicatedServer

Whether to update the particle system on dedicated servers

Public variable

TArray < struct ...

 

BurstEvents

The Burst events that occurred in this PSysComp.

Public variable

uint32: 1

 

bWarmingUp

Public variable

uint32: 1

 

bWasActive

True if this was active before being unregistered or otherwise reset, if so reactivate it

Public variable

uint32: 1

 

bWasDeactivated

Public variable

uint32: 1

 

bWasManagingSignificance

If this component was previously having it's significance managed by gameplay code.

Public variable

TArray < FMateri ...

 

CachedViewRelevanceFlags

The view relevance flags for each LODLevel.

Public variable

TArray < struct ...

 

CollisionEvents

The Collision events that occurred in this PSysComp.

Public variable

float

 

CustomTimeDilation

Scales DeltaTime in UParticleSystemComponent::Tick(...)

Public variable

TArray < struct ...

 

DeathEvents

The Death events that occurred in this PSysComp.

Public variable

int32

 

EditorDetailMode

Used for applying Cascade's detail mode setting to in-level particle systems

Public variable

int32

 

EditorLODLevel

INTERNAL. Used by the editor to set the LODLevel

Public variable

float

 

EmitterDelay

This is created at start up and then added to each emitter

Public variable

TArray < struct ...

 

EmitterInstances

Public variable

FFXSystemInterf ...

 

FXSystem

Public variable

TArray < struct ...

 

InstanceParameters

Array holding name instance parameters for this ParticleSystemComponent.

Public variable

TArray < struct ...

 

KismetEvents

The Kismet events that occurred for this PSysComp.

Public variable

float

 

LastSignificantTime

Time in seconds since we were last considered significant.

Public variable

TEnumAsByte < en...

 

LODMethod

The method of LOD level determination to utilize for this particle system

Public variable

float

 

MaxTimeBeforeForceUpdateTransform

Time between forced UpdateTransforms for systems that use dynamically calculated bounds, Which is effectively how often the bounds are shrunk.

Public variable

FVector

 

OldPosition

Public variable

FParticleBurstS ...

 

OnParticleBurst

Public variable

FParticleCollis...

 

OnParticleCollide

Public variable

FParticleDeathS ...

 

OnParticleDeath

Public variable

FParticleSpawnS ...

 

OnParticleSpawn

Public variable

FOnSystemFinish ...

 

OnSystemFinished

Called when the particle system is done.

Public variable

FVector

 

PartSysVelocity

Public variable

FRenderCommandF ...

 

ReleaseResourcesFence

Command fence used to shut down properly

Public variable

int32

 

ReplayClipIDNumber

Clip ID number we're either playing back or capturing to, depending on the value of ReplayState.

Public variable

TArray < class U...

 

ReplayClips

Array of replay clips for this particle system component.

Public variable

int32

 

ReplayFrameIndex

The current replay frame for playback

Public variable

TEnumAsByte < en...

 

ReplayState

Current particle 'replay state'.

Public variable

EParticleSignif...

 

RequiredSignificance

The significance this component requires of it's emitters for them to be enabled.

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 ...

 

SpawnEvents

The Spawn events that occurred in this PSysComp.

Public variable

float

 

WarmupTickRate

Public variable

float

 

WarmupTime

Functions

Name Description

Public function

void

 

ActivateSystem

(
    bool bFlagAsJustAttached
)

Activate the system

Public function

void

 

AutoPopulateInstanceProperties()

Auto-populate the instance parameters based on contained modules.

Public function

void

 

BeginTrails

(
    FName InFirstSocketName,
    FName InSecondSocketName,
    ETrailWidthMode InWidthMode,
    float InWidth
)

Begins all trail emitters in this component.

Public function

bool

 

CanBeOccluded()

True if this component can be occluded.

Public function

bool

 

CanConsiderInvisible()

True if this component can be considered invisible and potentially culled.

Public function

bool

 

CanTickInAnyThread()

Return true if this psys can tick in any thread

Protected function

void

 

ClearDynamicData()

Clears dynamic data on the rendering thread.

Public function

void

 

ClearParameter

(
    FName ParameterName,
    enum EParticleSysParamType Paramete...
)

Clears the specified parameter, returning it to the default value set in the template

Public function

void

 

Complete()

Public function

void

 

ComputeCanTickInAnyThread()

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

Public function

void

 

ComputeTickComponent_Concurrent()

Possibly parallel phase of TickComponent

Public function

void

 

ConditionalCacheViewRelevanceFlags

(
    UParticleSystem * NewTemplate
)

Cache the view-relevance for each emitter at each LOD level if needed.

Protected function

FParticleDyn ...

 

CreateDynamicData

(
    ERHIFeatureLevel::Type InFeatureLev...
)

Creates dynamic particle data for rendering the particle system this frame.

Protected function Static

FDynamicEmit ...

 

CreateDynamicDataFromReplay

(
    FParticleEmitterInstance * Emit...,
    const FDynamicEmitterReplayDataBase ...,
    bool bSelected,
    ERHIFeatureLevel::Type InFeatureLev...
)

Static: Supplied with a chunk of replay data, this method will create dynamic emitter data that can be used to render the particle system

Public function Virtual

UMaterialIns ...

 

CreateNamedDynamicMaterialInstance

(
    FName InName,
    UMaterialInterface * SourceMate...
)

Creates a Dynamic Material Instance for the specified named material override, optionally from the supplied material.

Public function

void

 

DeactivateSystem()

Deactivate the system

Public function Virtual

int32

 

DetermineLODLevelForLocation

(
    const FVector & EffectLocation
)

This will determine which LOD to use based off the specific ParticleSystem passed in and the distance to where that PS is being displayed.

Public function

void

 

EndTrails()

Ends all trail emitters in this component.

Public function

void

 

FinalizeTickComponent()

After the possibly parallel phase of TickComponent, we fire events, etc

Public function

UParticleSys...

 

FindReplayClipForIDNumber

(
    const int32 InClipIDNumber
)

Finds the replay clip of the specified ID number

Returns the replay clip or NULL if none

Public function

void

 

ForceAsyncWorkCompletion

(
    EForceAsyncWorkCompletion Behavior,
    bool bDefinitelyGameThread
)

If there is async work outstanding, force it to be completed now

Public function

void

 

ForceUpdateBounds()

Force the component to update its bounding box.

Public function

void

 

GenerateParticleEvent

(
    const FName InEventName,
    const float InEmitterTime,
    const FVector InLocation,
    const FVector InDirection,
    const FVector InVelocity
)

Record a kismet event.

Public function Virtual

bool

 

GetActorParameter

(
    const FName InName,
    AActor *& OutActor
)

Retrieve the Actor parameter value for the given name.

Public function Virtual

bool

 

GetAnyVectorParameter

(
    const FName InName,
    FVector & OutVector
)

Retrieve the Vector parameter value for the given name...also looks for colors and floats and returns those

Public function

float

 

GetApproxDistanceSquared

(
    FVector Point
)

Returns the approximate distance squared from this component to the passed location.

Public function

const FBoxSp ...

 

GetAsyncBounds()

Public function

const FTrans ...

 

GetAsyncComponentToWorld()

Public function

const TArray ...

 

GetAsyncInstanceParameters()

Public function

const FVecto ...

 

GetAsyncPartSysVelocity()

Public function Virtual

bool

 

GetBeamEndPoint

(
    int32 EmitterIndex,
    FVector & OutEndPoint
)

Get the beam end point

Public function Virtual

bool

 

GetBeamSourcePoint

(
    int32 EmitterIndex,
    int32 SourceIndex,
    FVector & OutSourcePoint
)

Get the beam source point

Public function Virtual

bool

 

GetBeamSourceStrength

(
    int32 EmitterIndex,
    int32 SourceIndex,
    float& OutSourceStrength
)

Get the beam source strength

Public function Virtual

bool

 

GetBeamSourceTangent

(
    int32 EmitterIndex,
    int32 SourceIndex,
    FVector & OutTangentPoint
)

Get the beam source tangent

Public function Virtual

bool

 

GetBeamTargetPoint

(
    int32 EmitterIndex,
    int32 TargetIndex,
    FVector & OutTargetPoint
)

Get the beam target point

Public function Virtual

bool

 

GetBeamTargetStrength

(
    int32 EmitterIndex,
    int32 TargetIndex,
    float& OutTargetStrength
)

Get the beam target strength

Public function Virtual

bool

 

GetBeamTargetTangent

(
    int32 EmitterIndex,
    int32 TargetIndex,
    FVector & OutTangentPoint
)

Get the beam target tangent

Public function Virtual

bool

 

GetColorParameter

(
    const FName InName,
    FLinearColor & OutColor
)

Retrieve the Color parameter value for the given name.

Public function

int32

 

GetCurrentDetailMode()

Decide which detail mode should be applied to this particle system.

Public function

int32

 

GetCurrentLODIndex()

Public function Virtual

bool

 

GetFloatParameter

(
    const FName InName,
    float& OutFloat
)

Retrieve the Float parameter value for the given name.

Public function Virtual

int32

 

GetLODLevel()

Get the LOD level of the particle system

Public function Virtual

bool

 

GetMaterialParameter

(
    const FName InName,
    UMaterialInterface *& OutMateri...
)

Retrieve the Material parameter value for the given name.

Public function Virtual

UMaterialInt ...

 

GetNamedMaterial

(
    FName InName
)

Returns a named material. If this named material is not found, returns NULL.

Public function Virtual

int32

 

GetNamedMaterialIndex

(
    FName InName
)

Returns the index into the EmitterMaterials array for this named.

Public function

int32

 

GetNumActiveParticles()

Get the current number of active particles in this system

Public function Virtual

void

 

GetOwnedTrailEmitters

(
    TrailEmitterArray & OutTrailEmitter...,
    const void* InOwner,
    bool bSetOwner
)

Fills the passed array with all trail emitters associated with a particular object.

Public function

const TArray ...

 

GetPlayerLocations()

Public function

const TArray ...

 

GetPlayerLODDistanceFactor()

Public function Virtual

bool

 

GetVectorParameter

(
    const FName InName,
    FVector & OutVector
)

Retrieve the Vector parameter value for the given name.

Public function

bool

 

HasCompleted()

Public function

void

 

InitializeSystem()

Public function Virtual

void

 

InitParticles()

If particles have not already been initialised (ie. EmitterInstances created) do it now.

Public function

void

 

KillParticlesForced()

Public function

void

 

OnSignificanceChanged

(
    bool bSignificant,
    bool bApplyToEmitters,
    bool bAsync
)

When the overall significance for the component is changed.

Protected function

void

 

OrientZAxisTowardCamera()

Orients the Z axis of the ParticleSystemComponent toward the camera while preserving the X axis direction

Public function Virtual

bool

 

ParticleLineCheck

(
    FHitResult & Hit,
    AActor * SourceActor,
    const FVector & End,
    const FVector & Start,
    const FVector & HalfExtent,
    const FCollisionObjectQueryParams &...
)

Collision Handling...

Public function

void

 

ReportEventBurst

(
    const FName InEventName,
    const float InEmitterTime,
    const int32 ParticleCount,
    const FVector InLocation,
    const TArray < class UParticleModule...
)

Record a bursting event.

Public function

void

 

ReportEventCollision

(
    const FName InEventName,
    const float InEmitterTime,
    const FVector InLocation,
    const FVector InDirection,
    const FVector InVelocity,
    const TArray < class UParticleModule...,
    const float InParticleTime,
    const FVector InNormal,
    const float InTime,
    const int32 InItem,
    const FName InBoneName,
    UPhysicalMaterial* PhysMat
)

Record a collision event.

Public function

void

 

ReportEventDeath

(
    const FName InEventName,
    const float InEmitterTime,
    const FVector InLocation,
    const FVector InVelocity,
    const TArray < class UParticleModule...,
    const float InParticleTime
)

Record a death event.

Public function

void

 

ReportEventSpawn

(
    const FName InEventName,
    const float InEmitterTime,
    const FVector InLocation,
    const FVector InVelocity,
    const TArray < class UParticleModule...
)

Event reporting... Record a spawning event.

Public function

void

 

ResetBurstLists()

Public function

void

 

ResetNextTick()

Public function

void

 

ResetParticles

(
    bool bEmptyInstances
)

Public function

void

 

ResetToDefaults()

Stops the emitter, unregisters the component, and resets the component's properties to the values of its template

Public function Virtual

void

 

RewindEmitterInstances()

Public function

void

 

SetActorParameter

(
    FName ParameterName,
    AActor * Param
)

Set a named actor instance parameter on this ParticleSystemComponent.

Public function

void

 

SetAutoAttachmentParameters

(
    USceneComponent * Parent,
    FName SocketName,
    EAttachmentRule LocationRule,
    EAttachmentRule RotationRule,
    EAttachmentRule ScaleRule
)

Set AutoAttachParent, AutoAttachSocketName, AutoAttachLocationRule, AutoAttachRotationRule, AutoAttachScaleRule to the specified parameters.

Public function

void

 

SetAutoAttachParams

(
    USceneComponent * Parent,
    FName SocketName,
    EAttachLocation::Type LocationType
)

ParticleSystemComponent inlines.

Public function Virtual

void

 

SetBeamEndPoint

(
    int32 EmitterIndex,
    FVector NewEndPoint
)

Beam-related script functions. Set the beam end point

Public function Virtual

void

 

SetBeamSourcePoint

(
    int32 EmitterIndex,
    FVector NewSourcePoint,
    int32 SourceIndex
)

Set the beam source point

Public function Virtual

void

 

SetBeamSourceStrength

(
    int32 EmitterIndex,
    float NewSourceStrength,
    int32 SourceIndex
)

Set the beam source strength

Public function Virtual

void

 

SetBeamSourceTangent

(
    int32 EmitterIndex,
    FVector NewTangentPoint,
    int32 SourceIndex
)

Set the beam source tangent

Public function Virtual

void

 

SetBeamTargetPoint

(
    int32 EmitterIndex,
    FVector NewTargetPoint,
    int32 TargetIndex
)

Set the beam target point

Public function Virtual

void

 

SetBeamTargetStrength

(
    int32 EmitterIndex,
    float NewTargetStrength,
    int32 TargetIndex
)

Set the beam target strength

Public function Virtual

void

 

SetBeamTargetTangent

(
    int32 EmitterIndex,
    FVector NewTangentPoint,
    int32 TargetIndex
)

Set the beam target tangent

Public function

void

 

SetColorParameter

(
    FName ParameterName,
    FLinearColor Param
)

Set a named color instance parameter on this ParticleSystemComponent.

Public function Virtual

void

 

SetEmitterEnable

(
    FName EmitterName,
    bool bNewEnableState
)

Enables/Disables a sub-emitter

Public function

void

 

SetFloatParameter

(
    FName ParameterName,
    float Param
)

Change a named float parameter

Public function

void

 

SetFloatRandParameter

(
    FName ParameterName,
    float Param,
    float ParamLow
)

Set a named random float instance parameter on this ParticleSystemComponent.

Public function Virtual

void

 

SetLODLevel

(
    int32 InLODLevel
)

Set the LOD level of the particle system

Public function

void

 

SetManagingSignificance

(
    bool bManageSignificance
)

Called from game code when the component begins having it's significance managed.

Public function

void

 

SetMaterialParameter

(
    FName ParameterName,
    UMaterialInterface * Param
)

Set a named material instance parameter on this ParticleSystemComponent.

Public function

void

 

SetRequiredSignificance

(
    EParticleSignificanceLevel NewRequi...
)

Called from game code when the significance required for a component changes.

Public function

void

 

SetTemplate

(
    UParticleSystem * NewTemplate
)

Change the ParticleSystem used by this ParticleSystemComponent

Public function

void

 

SetTrailSourceData

(
    FName InFirstSocketName,
    FName InSecondSocketName,
    ETrailWidthMode InWidthMode,
    float InWidth
)

Sets the defining data for all trails in this component.

Public function

void

 

SetVectorParameter

(
    FName ParameterName,
    FVector Param
)

Set a named vector instance parameter on this ParticleSystemComponent.

Public function

void

 

SetVectorRandParameter

(
    FName ParameterName,
    const FVector & Param,
    const FVector & ParamLow
)

Set a named random vector instance parameter on this ParticleSystemComponent.

Public function

bool

 

ShouldManageSignificance()

Whether this component should have it's significance managed by game code.

Protected function Virtual

void

 

UpdateDynamicData()

Public function

void

 

UpdateInstances

(
    bool bEmptyInstances
)

Protected function Virtual

void

 

UpdateLODInformation()

Overridden from UPrimitiveComponent

Name Description

Public function Virtual

FPrimitiveSc ...

 

CreateSceneProxy()

Creates a proxy to represent the primitive to the scene manager in the rendering thread.

Public function Virtual

FBodyInstanc ...

 

GetBodyInstance

(
    FName BoneName,
    bool bGetWelded
)

Get a BodyInstance from this component.

Public function Virtual

UMaterialInt ...

 

GetMaterial

(
    int32 ElementIndex
)

Returns the material used by the element at the specified index

Public function Virtual

int32

 

GetNumMaterials()

Begin UPrimitiveComponent Interface.

Public function Virtual

void

 

GetUsedMaterials

(
    TArray < UMaterialInterface * > ...
)

Retrieves the materials used in this component

Public function Virtual

void

 

SetMaterial

(
    int32 ElementIndex,
    UMaterialInterface * Material
)

Changes the material applied to an element of the mesh.

Overridden from USceneComponent

Name Description

Public function Virtual

FBoxSphereBo ...

 

CalcBounds

(
    const FTransform & LocalToWorld
)

Calculate the bounds of the component. Default behavior is a bounding box/sphere of zero size.

Overridden from UActorComponent

Name Description

Public function Virtual

void

 

Activate

(
    bool bReset
)

Activates the SceneComponent

Public function Virtual

UObject cons...

 

AdditionalStatObject()

Give a readable name for this component, including asset name if applicable

Public function Virtual

void

 

ApplyWorldOffset

(
    const FVector & InOffset,
    bool bWorldShift
)

Called by owner actor on position shifting Component should update all relevant data structures to reflect new actor location

Public function Virtual

void

 

CheckForErrors()

Function that gets called from within Map_Check to allow this actor component to check itself for any potential errors and register them with map check dialog.

Protected function Virtual

void

 

CreateRenderState_Concurrent()

End USceneComponentInterface.

Public function Virtual

void

 

Deactivate()

Deactivates the SceneComponent.

Protected function Virtual

void

 

DestroyRenderState_Concurrent()

Used to shut down any rendering thread structure for this component

Protected function Virtual

void

 

OnRegister()

Called when a component is registered, after Scene is set, but before CreateRenderState_Concurrent or OnCreatePhysicsState are called.

Protected function Virtual

void

 

OnUnregister()

Called when a component is unregistered.

Protected function Virtual

void

 

SendRenderDynamicData_Concurrent()

Called to send dynamic data for this component to the rendering thread

Protected function Virtual

void

 

SendRenderTransform_Concurrent()

Called to send a transform update for this component to the rendering thread

Protected function Virtual

bool

 

ShouldActivate()

End UPrimitiveComponent Interface.

Public function Virtual

void

 

TickComponent

(
    float DeltaTime,
    enum ELevelTick TickType,
    FActorComponentTickFunction* T...
)

Function called every frame on this ActorComponent.

Overridden from UObject

Name Description

Public function Virtual

void

 

BeginDestroy()

Called before destroying the object.

Public function Virtual

void

 

FinishDestroy()

Called to finish destroying the object.

Public function Virtual

FString

 

GetDetailedInfoInternal()

========================================== UObject interface.

Public function Virtual

void

 

GetResourceSizeEx

(
    FResourceSizeEx & CumulativeResourc...
)

Get the size of the object/resource for display to artists/LDs in the Editor.

Public function Virtual

void

 

PostEditChangeChainProperty

(
    FPropertyChangedChainEvent & Proper...
)

This alternate version of PostEditChange is called when properties inside structs are modified.

Public function Virtual

void

 

PostLoad()

WITH_EDITOR.

Public function Virtual

void

 

PreEditChange

(
    UProperty * PropertyAboutToChan...
)

This is called when property is about to be modified by InterpPropertyTracks

Public function Virtual

void

 

Serialize

(
    FArchive & Ar
)

WITH_EDITOR.

Enums

Name

Description

Public enum

EForceAsyncWorkCompletion

Typedefs

Name

Description

TrailEmitterArray

Array of trail emitters.

Constants

Name

Description

OnSystemPreActivationChange

Static delegate called for all systems on an activation change.

References

Module

Engine

Header

Runtime/Engine/Classes/Particles/ParticleSystemComponent.h