UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FParticleEmitterInstance Struct Reference

#include <ParticleEmitterInstances.h>

+ Inheritance diagram for FParticleEmitterInstance:

Public Member Functions

ENGINE_API FParticleEmitterInstance (IParticleEmitterInstanceOwner &InComponent)
 
virtual ENGINE_API ~FParticleEmitterInstance ()
 
virtual ENGINE_API void InitParameters (UParticleEmitter *InTemplate)
 
virtual ENGINE_API void Init ()
 
virtual ENGINE_API bool Resize (int32 NewMaxActiveParticles, bool bSetMaxActiveCount=true)
 
virtual ENGINE_API void Tick (float DeltaTime, bool bSuppressSpawning)
 
ENGINE_API void CheckEmitterFinished ()
 
ENGINE_API void FakeBursts ()
 
virtual ENGINE_API float Tick_EmitterTimeSetup (float DeltaTime, UParticleLODLevel *CurrentLODLevel)
 
virtual ENGINE_API float Tick_SpawnParticles (float DeltaTime, UParticleLODLevel *CurrentLODLevel, bool bSuppressSpawning, bool bFirstTime)
 
virtual ENGINE_API void Tick_ModuleUpdate (float DeltaTime, UParticleLODLevel *CurrentLODLevel)
 
virtual ENGINE_API void Tick_ModulePostUpdate (float DeltaTime, UParticleLODLevel *CurrentLODLevel)
 
virtual ENGINE_API void Tick_ModuleFinalUpdate (float DeltaTime, UParticleLODLevel *CurrentLODLevel)
 
virtual ENGINE_API void SetCurrentLODIndex (int32 InLODIndex, bool bInFullyProcess)
 
virtual ENGINE_API void Rewind ()
 
virtual ENGINE_API FBox GetBoundingBox ()
 
virtual ENGINE_API void UpdateBoundingBox (float DeltaTime)
 
virtual ENGINE_API void ForceUpdateBoundingBox ()
 
virtual ENGINE_API uint32 RequiredBytes ()
 
ENGINE_API uint32 GetModuleDataOffset (UParticleModule *Module)
 
ENGINE_API uint8GetModuleInstanceData (UParticleModule *Module)
 
ENGINE_API FParticleRandomSeedInstancePayloadGetModuleRandomSeedInstanceData (UParticleModule *Module)
 
virtual ENGINE_API uint8GetTypeDataModuleInstanceData ()
 
virtual ENGINE_API uint32 CalculateParticleStride (uint32 ParticleSize)
 
virtual ENGINE_API void ResetBurstList ()
 
virtual ENGINE_API float GetCurrentBurstRateOffset (float &DeltaTime, int32 &Burst)
 
virtual ENGINE_API void ResetParticleParameters (float DeltaTime)
 
ENGINE_API void CalculateOrbitOffset (FOrbitChainModuleInstancePayload &Payload, FVector &AccumOffset, FVector &AccumRotation, FVector &AccumRotationRate, float DeltaTime, FVector &Result, FMatrix &RotationMat)
 
virtual ENGINE_API void UpdateOrbitData (float DeltaTime)
 
virtual ENGINE_API void ParticlePrefetch ()
 
virtual ENGINE_API float Spawn (float DeltaTime)
 
ENGINE_API void SpawnParticles (int32 Count, float StartTime, float Increment, const FVector &InitialLocation, const FVector &InitialVelocity, struct FParticleEventInstancePayload *EventPayload)
 
virtual ENGINE_API void ForceSpawn (float DeltaTime, int32 InSpawnCount, int32 InBurstCount, FVector &InLocation, FVector &InVelocity)
 
ENGINE_API void CheckSpawnCount (int32 InNewCount, int32 InMaxCount)
 
virtual ENGINE_API void PreSpawn (FBaseParticle *Particle, const FVector &InitialLocation, const FVector &InitialVelocity)
 
virtual ENGINE_API void PostSpawn (FBaseParticle *Particle, float InterpolationPercentage, float SpawnTime)
 
virtual ENGINE_API bool HasCompleted ()
 
virtual ENGINE_API void KillParticles ()
 
virtual ENGINE_API void KillParticle (int32 Index)
 
virtual ENGINE_API void KillParticlesForced (bool bFireEvents=false)
 
virtual void SetHaltSpawning (bool bInHaltSpawning)
 
virtual void SetHaltSpawningExternal (bool bInHaltSpawning)
 
void SetFakeBurstWhenSpawningSupressed (bool bInFakeBurstsWhenSpawningSupressed)
 
ENGINE_API int32 GetOrbitPayloadOffset ()
 
ENGINE_API FVector GetParticleLocationWithOrbitOffset (FBaseParticle *Particle)
 
virtual ENGINE_API FBaseParticleGetParticle (int32 Index)
 
int32 GetParticleDirectIndex (int32 InIndex)
 
virtual ENGINE_API FBaseParticleGetParticleDirect (int32 InDirectIndex)
 
ENGINE_API void SetupEmitterDuration ()
 
bool HasActiveParticles ()
 
virtual ENGINE_API bool IsDynamicDataRequired (UParticleLODLevel *CurrentLODLevel)
 
virtual FDynamicEmitterDataBaseGetDynamicData (bool bSelected, ERHIFeatureLevel::Type InFeatureLevel)
 
virtual FDynamicEmitterReplayDataBaseGetReplayData ()
 
virtual void GetAllocatedSize (int32 &OutNum, int32 &OutMax)
 
virtual void GetResourceSizeEx (FResourceSizeEx &CumulativeResourceSize)
 
virtual ENGINE_API void ProcessParticleEvents (float DeltaTime, bool bSuppressSpawning)
 
virtual void OnDeactivateSystem ()
 
virtual int32 GetMeshRotationOffset () const
 
virtual bool IsMeshRotationActive () const
 
virtual void SetMeshMaterials (const TArray< UMaterialInterface * > &InMaterials)
 
virtual ENGINE_API void GatherMaterialRelevance (FMaterialRelevance *OutMaterialRelevance, const UParticleLODLevel *LODLevel, ERHIFeatureLevel::Type InFeatureLevel) const
 
virtual ENGINE_API void GatherMaterialRelevance (FMaterialRelevance *OutMaterialRelevance, const UParticleLODLevel *LODLevel, EShaderPlatform InShaderPlatform) const
 
virtual void OnEmitterInstanceKilled (FParticleEmitterInstance *Instance)
 
virtual void SetBeamEndPoint (FVector NewEndPoint)
 
virtual void SetBeamSourcePoint (FVector NewSourcePoint, int32 SourceIndex)
 
virtual void SetBeamSourceTangent (FVector NewTangentPoint, int32 SourceIndex)
 
virtual void SetBeamSourceStrength (float NewSourceStrength, int32 SourceIndex)
 
virtual void SetBeamTargetPoint (FVector NewTargetPoint, int32 TargetIndex)
 
virtual void SetBeamTargetTangent (FVector NewTangentPoint, int32 TargetIndex)
 
virtual void SetBeamTargetStrength (float NewTargetStrength, int32 TargetIndex)
 
virtual bool GetBeamEndPoint (FVector &OutEndPoint) const
 
virtual bool GetBeamSourcePoint (int32 SourceIndex, FVector &OutSourcePoint) const
 
virtual bool GetBeamSourceTangent (int32 SourceIndex, FVector &OutTangentPoint) const
 
virtual bool GetBeamSourceStrength (int32 SourceIndex, float &OutSourceStrength) const
 
virtual bool GetBeamTargetPoint (int32 TargetIndex, FVector &OutTargetPoint) const
 
virtual bool GetBeamTargetTangent (int32 TargetIndex, FVector &OutTangentPoint) const
 
virtual bool GetBeamTargetStrength (int32 TargetIndex, float &OutTargetStrength) const
 
virtual ENGINE_API void ApplyWorldOffset (FVector InOffset, bool bWorldShift)
 
virtual bool IsTrailEmitter () const
 
virtual void BeginTrail ()
 
virtual void EndTrail ()
 
virtual void SetTrailSourceData (FName InFirstSocketName, FName InSecondSocketName, ETrailWidthMode InWidthMode, float InWidth)
 
virtual ENGINE_API void Tick_MaterialOverrides (int32 EmitterIndex)
 
ENGINE_API bool UseLocalSpace ()
 
ENGINE_API void GetScreenAlignmentAndScale (int32 &OutScreenAlign, FVector &OutScale)
 
- Public Member Functions inherited from FParticleEmitterInstanceFixLayout
virtual ~FParticleEmitterInstanceFixLayout ()=default
 

Public Attributes

UParticleEmitterSpriteTemplate
 
IParticleEmitterInstanceOwnerComponent
 
UParticleLODLevelCurrentLODLevel
 
int32 CurrentLODLevelIndex
 
int32 TypeDataOffset
 
int32 TypeDataInstanceOffset
 
int32 SubUVDataOffset
 
int32 DynamicParameterDataOffset
 
int32 LightDataOffset
 
float LightVolumetricScatteringIntensity
 
int32 OrbitModuleOffset
 
int32 CameraPayloadOffset
 
int32 PayloadOffset
 
FVector Location
 
FMatrix EmitterToSimulation
 
FMatrix SimulationToWorld
 
uint8 bEnabled: 1
 
uint8 bKillOnDeactivate:1
 
uint8 bKillOnCompleted:1
 
uint8 bRequiresSorting:1
 
uint8 bHaltSpawning: 1
 
uint8 bHaltSpawningExternal: 1
 
uint8 bRequiresLoopNotification:1
 
uint8 bIgnoreComponentScale:1
 
uint8 bIsBeam:1
 
uint8 bAxisLockEnabled: 1
 
uint8 bFakeBurstsWhenSpawningSupressed: 1
 
uint8 bEmitterIsDone:1
 
TEnumAsByte< EParticleAxisLockLockAxisFlags
 
int32 SortMode
 
uint8ParticleData
 
uint16ParticleIndices
 
uint8InstanceData
 
int32 InstancePayloadSize
 
int32 ParticleSize
 
int32 ParticleStride
 
int32 ActiveParticles
 
uint32 ParticleCounter
 
int32 MaxActiveParticles
 
float SpawnFraction
 
float SecondsSinceCreation
 
float EmitterTime
 
float LastDeltaTime
 
FVector OldLocation
 
FBox ParticleBoundingBox
 
TArray< struct FLODBurstFiredBurstFired
 
int32 LoopCount
 
int32 IsRenderDataDirty
 
float EmitterDuration
 
TArray< floatEmitterDurations
 
float CurrentDelay
 
int32 TrianglesToRender
 
int32 MaxVertexIndex
 
UMaterialInterfaceCurrentMaterial
 
int32 EventCount
 
int32 MaxEventCount
 
FVector PositionOffsetThisTick
 
FVector2D PivotOffset
 
TArray< class UPointLightComponent * > HighQualityLights
 

Static Public Attributes

static ENGINE_API const float PeakActiveParticleUpdateDelta = 0.05f
 

Protected Member Functions

virtual ENGINE_API bool FillReplayData (FDynamicEmitterReplayDataBase &OutData)
 
ENGINE_API void UpdateTransforms ()
 
ENGINE_API class UParticleLODLevelGetCurrentLODLevelChecked ()
 
ENGINE_API UMaterialInterfaceGetCurrentMaterial ()
 
ENGINE_API void FixupParticleIndices ()
 

Constructor & Destructor Documentation

◆ FParticleEmitterInstance()

FParticleEmitterInstance::FParticleEmitterInstance ( IParticleEmitterInstanceOwner InComponent)

Constructor

◆ ~FParticleEmitterInstance()

FParticleEmitterInstance::~FParticleEmitterInstance ( )
virtual

Destructor

Member Function Documentation

◆ ApplyWorldOffset()

void FParticleEmitterInstance::ApplyWorldOffset ( FVector  InOffset,
bool  bWorldShift 
)
virtual

◆ BeginTrail()

virtual void FParticleEmitterInstance::BeginTrail ( )
inlinevirtual

Begins the trail.

Reimplemented in FParticleAnimTrailEmitterInstance.

◆ CalculateOrbitOffset()

void FParticleEmitterInstance::CalculateOrbitOffset ( FOrbitChainModuleInstancePayload Payload,
FVector AccumOffset,
FVector AccumRotation,
FVector AccumRotationRate,
float  DeltaTime,
FVector Result,
FMatrix RotationMat 
)

Calculate the orbit offset data.

◆ CalculateParticleStride()

uint32 FParticleEmitterInstance::CalculateParticleStride ( uint32  InParticleSize)
virtual

Calculate the stride of a single particle for this instance

Parameters
ParticleSizeThe size of the particle
Returns
uint32 The stride of the particle

◆ CheckEmitterFinished()

void FParticleEmitterInstance::CheckEmitterFinished ( )

Called from Tick to determine whether the emitter will no longer spawn particles checks for emitters with 0 loops, infinite lifetime, and no continuous spawning (only bursts) and sets bEmitterIsDone if the last burst lies in the past and there are no active particles bEmitterIsDone is checked for all emitters by ParticleSystemComponent tick, and the particle system is deactivated if it's true for all emitters, and if bAutoDeactivate is set on the ParticleSystem

◆ CheckSpawnCount()

void FParticleEmitterInstance::CheckSpawnCount ( int32  InNewCount,
int32  InMaxCount 
)

◆ EndTrail()

virtual void FParticleEmitterInstance::EndTrail ( )
inlinevirtual

Ends the trail.

Reimplemented in FParticleAnimTrailEmitterInstance.

◆ FakeBursts()

void FParticleEmitterInstance::FakeBursts ( )

Advances the bursts as though they were fired with out actually firing them.

◆ FillReplayData()

bool FParticleEmitterInstance::FillReplayData ( FDynamicEmitterReplayDataBase OutData)
protectedvirtual

Captures dynamic replay data for this particle system.

Parameters
OutData[Out] Data will be copied here
Returns
Returns true if successful

Reimplemented in FGPUSpriteParticleEmitterInstance, FParticleSpriteEmitterInstance, FParticleMeshEmitterInstance, FParticleBeam2EmitterInstance, FParticleRibbonEmitterInstance, and FParticleAnimTrailEmitterInstance.

◆ FixupParticleIndices()

void FParticleEmitterInstance::FixupParticleIndices ( )
protected

Fixup particle indices to only have valid entries.

◆ ForceSpawn()

void FParticleEmitterInstance::ForceSpawn ( float  DeltaTime,
int32  InSpawnCount,
int32  InBurstCount,
FVector InLocation,
FVector InVelocity 
)
virtual

Spawn/burst the given particles...

Parameters
DeltaTimeThe time slice to spawn over.
InSpawnCountThe number of particles to forcibly spawn.
InBurstCountThe number of particles to forcibly burst.
InLocationThe location to spawn at.
InVelocityOPTIONAL velocity to have the particle inherit.

◆ ForceUpdateBoundingBox()

void FParticleEmitterInstance::ForceUpdateBoundingBox ( )
virtual

◆ GatherMaterialRelevance() [1/2]

void FParticleEmitterInstance::GatherMaterialRelevance ( FMaterialRelevance OutMaterialRelevance,
const UParticleLODLevel LODLevel,
ERHIFeatureLevel::Type  InFeatureLevel 
) const
virtual

Gathers material relevance flags for this emitter instance.

Parameters
OutMaterialRelevance- Pointer to where material relevance flags will be stored.
LODLevel- The LOD level for which to compute material relevance flags.

Reimplemented in FParticleMeshEmitterInstance.

◆ GatherMaterialRelevance() [2/2]

void FParticleEmitterInstance::GatherMaterialRelevance ( FMaterialRelevance OutMaterialRelevance,
const UParticleLODLevel LODLevel,
EShaderPlatform  InShaderPlatform 
) const
virtual

Gathers material relevance flags for this emitter instance.

Parameters
OutMaterialRelevance- Pointer to where material relevance flags will be stored.
LODLevel- The LOD level for which to compute material relevance flags.
InFeatureLevel- The relevant shader feature level.

Reimplemented in FParticleMeshEmitterInstance.

◆ GetAllocatedSize()

virtual void FParticleEmitterInstance::GetAllocatedSize ( int32 OutNum,
int32 OutMax 
)
inlinevirtual

Retrieve the allocated size of this instance.

Parameters
OutNumThe size of this instance
OutMaxThe maximum size of this instance

Reimplemented in FParticleSpriteEmitterInstance, FParticleMeshEmitterInstance, FParticleBeam2EmitterInstance, FParticleRibbonEmitterInstance, and FParticleAnimTrailEmitterInstance.

◆ GetBeamEndPoint()

virtual bool FParticleEmitterInstance::GetBeamEndPoint ( FVector OutEndPoint) const
inlinevirtual

Reimplemented in FParticleBeam2EmitterInstance.

◆ GetBeamSourcePoint()

virtual bool FParticleEmitterInstance::GetBeamSourcePoint ( int32  SourceIndex,
FVector OutSourcePoint 
) const
inlinevirtual

Reimplemented in FParticleBeam2EmitterInstance.

◆ GetBeamSourceStrength()

virtual bool FParticleEmitterInstance::GetBeamSourceStrength ( int32  SourceIndex,
float OutSourceStrength 
) const
inlinevirtual

Reimplemented in FParticleBeam2EmitterInstance.

◆ GetBeamSourceTangent()

virtual bool FParticleEmitterInstance::GetBeamSourceTangent ( int32  SourceIndex,
FVector OutTangentPoint 
) const
inlinevirtual

Reimplemented in FParticleBeam2EmitterInstance.

◆ GetBeamTargetPoint()

virtual bool FParticleEmitterInstance::GetBeamTargetPoint ( int32  TargetIndex,
FVector OutTargetPoint 
) const
inlinevirtual

Reimplemented in FParticleBeam2EmitterInstance.

◆ GetBeamTargetStrength()

virtual bool FParticleEmitterInstance::GetBeamTargetStrength ( int32  TargetIndex,
float OutTargetStrength 
) const
inlinevirtual

Reimplemented in FParticleBeam2EmitterInstance.

◆ GetBeamTargetTangent()

virtual bool FParticleEmitterInstance::GetBeamTargetTangent ( int32  TargetIndex,
FVector OutTangentPoint 
) const
inlinevirtual

Reimplemented in FParticleBeam2EmitterInstance.

◆ GetBoundingBox()

FBox FParticleEmitterInstance::GetBoundingBox ( )
virtual

Retrieve the bounding box for the instance

Returns
FBox The bounding box

◆ GetCurrentBurstRateOffset()

float FParticleEmitterInstance::GetCurrentBurstRateOffset ( float DeltaTime,
int32 Burst 
)
virtual

Get the current burst rate offset (delta time is artificially increased to generate bursts)

Parameters
DeltaTimeThe time slice (In/Out)
BurstThe number of particles to burst (Output)
Returns
float The time slice increase to use

◆ GetCurrentLODLevelChecked()

UParticleLODLevel * FParticleEmitterInstance::GetCurrentLODLevelChecked ( )
protected

Retrieves the current LOD level and asserts that it is valid.

◆ GetCurrentMaterial()

UMaterialInterface * FParticleEmitterInstance::GetCurrentMaterial ( )
protected

Get the current material to render with.

◆ GetDynamicData()

virtual FDynamicEmitterDataBase * FParticleEmitterInstance::GetDynamicData ( bool  bSelected,
ERHIFeatureLevel::Type  InFeatureLevel 
)
inlinevirtual

◆ GetMeshRotationOffset()

virtual int32 FParticleEmitterInstance::GetMeshRotationOffset ( ) const
inlinevirtual

Returns the offset to the mesh rotation payload, if any.

Reimplemented in FParticleMeshEmitterInstance.

◆ GetModuleDataOffset()

uint32 FParticleEmitterInstance::GetModuleDataOffset ( UParticleModule Module)

Get offset for particle payload data for a particular module

◆ GetModuleInstanceData()

uint8 * FParticleEmitterInstance::GetModuleInstanceData ( UParticleModule Module)

Get pointer to emitter instance payload data for a particular module

◆ GetModuleRandomSeedInstanceData()

FParticleRandomSeedInstancePayload * FParticleEmitterInstance::GetModuleRandomSeedInstanceData ( UParticleModule Module)

Get pointer to emitter instance random seed payload data for a particular module

◆ GetOrbitPayloadOffset()

int32 FParticleEmitterInstance::GetOrbitPayloadOffset ( )

Get the offset of the orbit payload.

◆ GetParticle()

FBaseParticle * FParticleEmitterInstance::GetParticle ( int32  Index)
virtual

Retrieve the particle at the given index

Parameters
IndexThe index of the particle of interest
Returns
FBaseParticle* The pointer to the particle. NULL if not present/active

◆ GetParticleDirect()

FBaseParticle * FParticleEmitterInstance::GetParticleDirect ( int32  InDirectIndex)
virtual

Get the particle at the given direct index

Parameters
InDirectIndexThe direct index of the particle of interest
Returns
FBaseParticle* The particle, if valid index was given; NULL otherwise

◆ GetParticleDirectIndex()

int32 FParticleEmitterInstance::GetParticleDirectIndex ( int32  InIndex)
inline

Get the physical index of the particle at the given index (ie, the contents of ParticleIndices[InIndex])

Parameters
InIndexThe index of the particle of interest
Returns
int32 The direct index of the particle

◆ GetParticleLocationWithOrbitOffset()

FVector FParticleEmitterInstance::GetParticleLocationWithOrbitOffset ( FBaseParticle Particle)

Get the position of the particle taking orbit in to account.

◆ GetReplayData()

virtual FDynamicEmitterReplayDataBase * FParticleEmitterInstance::GetReplayData ( )
inlinevirtual

Retrieves replay data for the emitter

Returns
The replay data, or NULL on failure

Reimplemented in FParticleSpriteEmitterInstance, FParticleMeshEmitterInstance, FParticleBeam2EmitterInstance, FParticleRibbonEmitterInstance, and FParticleAnimTrailEmitterInstance.

◆ GetResourceSizeEx()

virtual void FParticleEmitterInstance::GetResourceSizeEx ( FResourceSizeEx CumulativeResourceSize)
inlinevirtual

◆ GetScreenAlignmentAndScale()

void FParticleEmitterInstance::GetScreenAlignmentAndScale ( int32 OutScreenAlign,
FVector OutScale 
)

returns the screen alignment and scale of the component.

◆ GetTypeDataModuleInstanceData()

uint8 * FParticleEmitterInstance::GetTypeDataModuleInstanceData ( )
virtual

Get the pointer to the instance data allocated for type data module.

Returns
uint8* The pointer to the data

◆ HasActiveParticles()

bool FParticleEmitterInstance::HasActiveParticles ( )
inline

Returns whether the system has any active particles.

Returns
true if there are active particles, false otherwise.

◆ HasCompleted()

bool FParticleEmitterInstance::HasCompleted ( )
virtual

Has the instance completed it's run?

Returns
bool true if the instance is completed, false if not

Reimplemented in FGPUSpriteParticleEmitterInstance, and FParticleAnimTrailEmitterInstance.

◆ Init()

void FParticleEmitterInstance::Init ( )
virtual

◆ InitParameters()

◆ IsDynamicDataRequired()

bool FParticleEmitterInstance::IsDynamicDataRequired ( UParticleLODLevel InCurrentLODLevel)
virtual

Checks some common values for GetDynamicData validity

Returns
bool true if GetDynamicData should continue, false if it should return NULL

Reimplemented in FParticleMeshEmitterInstance, FParticleRibbonEmitterInstance, and FGPUSpriteParticleEmitterInstance.

◆ IsMeshRotationActive()

virtual bool FParticleEmitterInstance::IsMeshRotationActive ( ) const
inlinevirtual

Returns true if mesh rotation is active.

Reimplemented in FParticleMeshEmitterInstance.

◆ IsTrailEmitter()

virtual bool FParticleEmitterInstance::IsTrailEmitter ( ) const
inlinevirtual

◆ KillParticle()

void FParticleEmitterInstance::KillParticle ( int32  Index)
virtual

Kill the particle at the given instance

Parameters
IndexThe index of the particle to kill.

◆ KillParticles()

void FParticleEmitterInstance::KillParticles ( )
virtual

Kill off any dead particles. (Remove them from the active array)

Reimplemented in FParticleBeam2EmitterInstance, and FParticleTrailsEmitterInstance_Base.

◆ KillParticlesForced()

void FParticleEmitterInstance::KillParticlesForced ( bool  bFireEvents = false)
virtual

Force kill all particles in the emitter.

Parameters
bFireEventsIf true, fire events for the particles being killed.

This is used to force "kill" particles irrespective of their duration. Basically, this takes all particles and moves them to the 'end' of the particle list so we can insta kill off trailed particles in the level.

Reimplemented in FGPUSpriteParticleEmitterInstance.

◆ OnDeactivateSystem()

virtual void FParticleEmitterInstance::OnDeactivateSystem ( )
inlinevirtual

Called when the particle system is deactivating...

Reimplemented in FGPUSpriteParticleEmitterInstance, and FParticleTrailsEmitterInstance_Base.

◆ OnEmitterInstanceKilled()

virtual void FParticleEmitterInstance::OnEmitterInstanceKilled ( FParticleEmitterInstance Instance)
inlinevirtual

When an emitter is killed, this will check other emitters and clean up anything pointing to this one

Reimplemented in FParticleBeam2EmitterInstance, and FParticleRibbonEmitterInstance.

◆ ParticlePrefetch()

void FParticleEmitterInstance::ParticlePrefetch ( )
virtual

◆ PostSpawn()

void FParticleEmitterInstance::PostSpawn ( FBaseParticle Particle,
float  InterpolationPercentage,
float  SpawnTime 
)
virtual

Handle any post-spawning actions required by the instance

Parameters
ParticleThe particle that was spawned
InterpolationPercentageThe percentage of the time slice it was spawned at
SpawnTImeThe time it was spawned at

Reimplemented in FParticleMeshEmitterInstance, and FParticleBeam2EmitterInstance.

◆ PreSpawn()

void FParticleEmitterInstance::PreSpawn ( FBaseParticle Particle,
const FVector InitialLocation,
const FVector InitialVelocity 
)
virtual

Handle any pre-spawning actions required for particles

Parameters
ParticleThe particle being spawned.
InitialLocationThe initial location of the particle.
InitialVelocityThe initial velocity of the particle.

◆ ProcessParticleEvents()

void FParticleEmitterInstance::ProcessParticleEvents ( float  DeltaTime,
bool  bSuppressSpawning 
)
virtual

Process received events.

◆ RequiredBytes()

uint32 FParticleEmitterInstance::RequiredBytes ( )
virtual

Retrieved the per-particle bytes that this emitter type requires.

Returns
uint32 The number of required bytes for particles in the instance

Reimplemented in FParticleMeshEmitterInstance, and FParticleBeam2EmitterInstance.

◆ ResetBurstList()

void FParticleEmitterInstance::ResetBurstList ( )
virtual

Reset the burst list information for the instance

◆ ResetParticleParameters()

void FParticleEmitterInstance::ResetParticleParameters ( float  DeltaTime)
virtual

Reset the particle parameters

◆ Resize()

bool FParticleEmitterInstance::Resize ( int32  NewMaxActiveParticles,
bool  bSetMaxActiveCount = true 
)
virtual

Ensures enough memory is allocated for the requested number of particles.

Parameters
NewMaxActiveParticlesThe number of particles for which memory must be allocated.
bSetMaxActiveCountIf true, update the peak active particles for this LOD.
Returns
bool true if memory is allocated for at least NewMaxActiveParticles.

Reimplemented in FParticleMeshEmitterInstance.

◆ Rewind()

void FParticleEmitterInstance::Rewind ( )
virtual

Rewind the instance.

Reimplemented in FGPUSpriteParticleEmitterInstance.

◆ SetBeamEndPoint()

virtual void FParticleEmitterInstance::SetBeamEndPoint ( FVector  NewEndPoint)
inlinevirtual

Reimplemented in FParticleBeam2EmitterInstance.

◆ SetBeamSourcePoint()

virtual void FParticleEmitterInstance::SetBeamSourcePoint ( FVector  NewSourcePoint,
int32  SourceIndex 
)
inlinevirtual

Reimplemented in FParticleBeam2EmitterInstance.

◆ SetBeamSourceStrength()

virtual void FParticleEmitterInstance::SetBeamSourceStrength ( float  NewSourceStrength,
int32  SourceIndex 
)
inlinevirtual

Reimplemented in FParticleBeam2EmitterInstance.

◆ SetBeamSourceTangent()

virtual void FParticleEmitterInstance::SetBeamSourceTangent ( FVector  NewTangentPoint,
int32  SourceIndex 
)
inlinevirtual

Reimplemented in FParticleBeam2EmitterInstance.

◆ SetBeamTargetPoint()

virtual void FParticleEmitterInstance::SetBeamTargetPoint ( FVector  NewTargetPoint,
int32  TargetIndex 
)
inlinevirtual

Reimplemented in FParticleBeam2EmitterInstance.

◆ SetBeamTargetStrength()

virtual void FParticleEmitterInstance::SetBeamTargetStrength ( float  NewTargetStrength,
int32  TargetIndex 
)
inlinevirtual

Reimplemented in FParticleBeam2EmitterInstance.

◆ SetBeamTargetTangent()

virtual void FParticleEmitterInstance::SetBeamTargetTangent ( FVector  NewTangentPoint,
int32  TargetIndex 
)
inlinevirtual

Reimplemented in FParticleBeam2EmitterInstance.

◆ SetCurrentLODIndex()

void FParticleEmitterInstance::SetCurrentLODIndex ( int32  InLODIndex,
bool  bInFullyProcess 
)
virtual

Set the LOD to the given index

Parameters
InLODIndexThe index of the LOD to set as current
bInFullyProcessIf true, process burst lists, etc.

Reimplemented in FParticleBeam2EmitterInstance.

◆ SetFakeBurstWhenSpawningSupressed()

void FParticleEmitterInstance::SetFakeBurstWhenSpawningSupressed ( bool  bInFakeBurstsWhenSpawningSupressed)
inline

◆ SetHaltSpawning()

virtual void FParticleEmitterInstance::SetHaltSpawning ( bool  bInHaltSpawning)
inlinevirtual

Set the HaltSpawning flag

◆ SetHaltSpawningExternal()

virtual void FParticleEmitterInstance::SetHaltSpawningExternal ( bool  bInHaltSpawning)
inlinevirtual

Set the bHaltSpawningExternal flag

◆ SetMeshMaterials()

virtual void FParticleEmitterInstance::SetMeshMaterials ( const TArray< UMaterialInterface * > &  InMaterials)
inlinevirtual

Sets the materials with which mesh particles should be rendered.

Parameters
InMaterials- The materials.

Reimplemented in FParticleMeshEmitterInstance.

◆ SetTrailSourceData()

virtual void FParticleEmitterInstance::SetTrailSourceData ( FName  InFirstSocketName,
FName  InSecondSocketName,
ETrailWidthMode  InWidthMode,
float  InWidth 
)
inlinevirtual

Sets the data that defines this trail.

Parameters
InFirstSocketNameThe name of the first socket for the trail.
InSecondSocketNameThe name of the second socket for the trail.
InWidthModeHow the width value is applied to the trail.
InWidthThe width of the trail.

Reimplemented in FParticleAnimTrailEmitterInstance.

◆ SetupEmitterDuration()

void FParticleEmitterInstance::SetupEmitterDuration ( )

Calculates the emitter duration for the instance.

◆ Spawn()

float FParticleEmitterInstance::Spawn ( float  DeltaTime)
virtual

Spawn particles for this emitter instance

Parameters
DeltaTimeThe time slice to spawn over
Returns
float The leftover fraction of spawning

Reimplemented in FParticleRibbonEmitterInstance, and FParticleAnimTrailEmitterInstance.

◆ SpawnParticles()

void FParticleEmitterInstance::SpawnParticles ( int32  Count,
float  StartTime,
float  Increment,
const FVector InitialLocation,
const FVector InitialVelocity,
struct FParticleEventInstancePayload EventPayload 
)

Spawn the indicated number of particles.

Parameters
CountThe number of particles to spawn.
StartTimeThe local emitter time at which to begin spawning particles.
IncrementThe time delta between spawned particles.
InitialLocationThe initial location of spawned particles.
InitialVelocityThe initial velocity of spawned particles.
EventPayloadEvent generator payload if events should be triggered.

◆ Tick()

void FParticleEmitterInstance::Tick ( float  DeltaTime,
bool  bSuppressSpawning 
)
virtual

Tick the instance.

Parameters
DeltaTimeThe time slice to use
bSuppressSpawningIf true, do not spawn during Tick

Reimplemented in FGPUSpriteParticleEmitterInstance, FParticleMeshEmitterInstance, FParticleBeam2EmitterInstance, and FParticleTrailsEmitterInstance_Base.

◆ Tick_EmitterTimeSetup()

float FParticleEmitterInstance::Tick_EmitterTimeSetup ( float  DeltaTime,
UParticleLODLevel InCurrentLODLevel 
)
virtual

Tick sub-function that handles EmitterTime setup, looping, etc.

Parameters
DeltaTimeThe current time slice
CurrentLODLevelThe current LOD level for the instance
Returns
float The EmitterDelay

Tick sub-function that handle EmitterTime setup, looping, etc.

Parameters
DeltaTimeThe current time slice
CurrentLODLevelThe current LOD level for the instance
Returns
float The EmitterDelay

◆ Tick_MaterialOverrides()

void FParticleEmitterInstance::Tick_MaterialOverrides ( int32  EmitterIndex)
virtual

Ticks the emitter's material overrides.

Returns
True if there were material overrides. Otherwise revert to default behaviour.

Reimplemented in FParticleMeshEmitterInstance.

◆ Tick_ModuleFinalUpdate()

void FParticleEmitterInstance::Tick_ModuleFinalUpdate ( float  DeltaTime,
UParticleLODLevel InCurrentLODLevel 
)
virtual

Tick sub-function that handles module FINAL updates

Parameters
DeltaTimeThe current time slice
CurrentLODLevelThe current LOD level for the instance

◆ Tick_ModulePostUpdate()

void FParticleEmitterInstance::Tick_ModulePostUpdate ( float  DeltaTime,
UParticleLODLevel InCurrentLODLevel 
)
virtual

Tick sub-function that handles module post updates

Parameters
DeltaTimeThe current time slice
CurrentLODLevelThe current LOD level for the instance

Reimplemented in FParticleBeam2EmitterInstance.

◆ Tick_ModuleUpdate()

void FParticleEmitterInstance::Tick_ModuleUpdate ( float  DeltaTime,
UParticleLODLevel InCurrentLODLevel 
)
virtual

Tick sub-function that handles module updates

Parameters
DeltaTimeThe current time slice
CurrentLODLevelThe current LOD level for the instance

◆ Tick_SpawnParticles()

float FParticleEmitterInstance::Tick_SpawnParticles ( float  DeltaTime,
UParticleLODLevel InCurrentLODLevel,
bool  bSuppressSpawning,
bool  bFirstTime 
)
virtual

Tick sub-function that handles spawning of particles

Parameters
DeltaTimeThe current time slice
CurrentLODLevelThe current LOD level for the instance
bSuppressSpawningtrue if spawning has been suppressed on the owning particle system component
bFirstTimetrue if this is the first time the instance has been ticked
Returns
float The SpawnFraction remaining

◆ UpdateBoundingBox()

void FParticleEmitterInstance::UpdateBoundingBox ( float  DeltaTime)
virtual

Update the bounding box for the emitter

Parameters
DeltaTimeThe time slice to use

Reimplemented in FParticleMeshEmitterInstance, FParticleBeam2EmitterInstance, FParticleTrailsEmitterInstance_Base, and FParticleAnimTrailEmitterInstance.

◆ UpdateOrbitData()

void FParticleEmitterInstance::UpdateOrbitData ( float  DeltaTime)
virtual

◆ UpdateTransforms()

void FParticleEmitterInstance::UpdateTransforms ( )
protected

Updates all internal transforms.

◆ UseLocalSpace()

bool FParticleEmitterInstance::UseLocalSpace ( )

True if this emitter emits in local space

Member Data Documentation

◆ ActiveParticles

int32 FParticleEmitterInstance::ActiveParticles

The number of particles currently active in the emitter.

◆ bAxisLockEnabled

uint8 FParticleEmitterInstance::bAxisLockEnabled

Whether axis lock is enabled, cached here to avoid finding it from the module each frame

◆ bEmitterIsDone

uint8 FParticleEmitterInstance::bEmitterIsDone

true if the emitter has no active particles and will no longer spawn any in the future

◆ bEnabled

uint8 FParticleEmitterInstance::bEnabled

Component can disable Tick and Rendering of this emitter.

◆ bFakeBurstsWhenSpawningSupressed

uint8 FParticleEmitterInstance::bFakeBurstsWhenSpawningSupressed

When true and spawning is supressed, the bursts will be faked so that when spawning is enabled again, the bursts don't fire late.

◆ bHaltSpawning

uint8 FParticleEmitterInstance::bHaltSpawning

If true, halt spawning for this instance.

◆ bHaltSpawningExternal

uint8 FParticleEmitterInstance::bHaltSpawningExternal

If true, this emitter has been disabled by game code and some systems to re-enable are not allowed.

◆ bIgnoreComponentScale

uint8 FParticleEmitterInstance::bIgnoreComponentScale

If true, the emitter ignores the component's scale. (Mesh emitters only).

◆ bIsBeam

uint8 FParticleEmitterInstance::bIsBeam

Hack: Make sure this is a Beam type to avoid casting from/to wrong types.

◆ bKillOnCompleted

uint8 FParticleEmitterInstance::bKillOnCompleted

if true, kill this emitter instance when it has completed.

◆ bKillOnDeactivate

uint8 FParticleEmitterInstance::bKillOnDeactivate

If true, kill this emitter instance when it is deactivated.

◆ bRequiresLoopNotification

uint8 FParticleEmitterInstance::bRequiresLoopNotification

If true, the emitter has modules that require loop notification.

◆ bRequiresSorting

uint8 FParticleEmitterInstance::bRequiresSorting

Whether this emitter requires sorting as specified by artist.

◆ BurstFired

TArray<struct FLODBurstFired> FParticleEmitterInstance::BurstFired

The BurstFire information.

◆ CameraPayloadOffset

int32 FParticleEmitterInstance::CameraPayloadOffset

The offset to the Camera payload in the particle data.

◆ Component

IParticleEmitterInstanceOwner& FParticleEmitterInstance::Component

The component who owns it.

◆ CurrentDelay

float FParticleEmitterInstance::CurrentDelay

The emitter's delay for the current loop

◆ CurrentLODLevel

UParticleLODLevel* FParticleEmitterInstance::CurrentLODLevel

The currently set LOD level.

◆ CurrentLODLevelIndex

int32 FParticleEmitterInstance::CurrentLODLevelIndex

The index of the currently set LOD level.

◆ CurrentMaterial

UMaterialInterface* FParticleEmitterInstance::CurrentMaterial

The material to render this instance with.

◆ DynamicParameterDataOffset

int32 FParticleEmitterInstance::DynamicParameterDataOffset

The offset to the dynamic parameter payload in the particle data

◆ EmitterDuration

float FParticleEmitterInstance::EmitterDuration

The current duration fo the emitter instance.

◆ EmitterDurations

TArray<float> FParticleEmitterInstance::EmitterDurations

The emitter duration at each LOD level for the instance.

◆ EmitterTime

float FParticleEmitterInstance::EmitterTime

◆ EmitterToSimulation

FMatrix FParticleEmitterInstance::EmitterToSimulation

Transform from emitter local space to simulation space.

◆ EventCount

int32 FParticleEmitterInstance::EventCount

Number of events this emitter has generated...

◆ HighQualityLights

TArray<class UPointLightComponent*> FParticleEmitterInstance::HighQualityLights

◆ InstanceData

uint8* FParticleEmitterInstance::InstanceData

Pointer to the instance data array.

◆ InstancePayloadSize

int32 FParticleEmitterInstance::InstancePayloadSize

The size of the Instance data array.

◆ IsRenderDataDirty

int32 FParticleEmitterInstance::IsRenderDataDirty

Flag indicating if the render data is dirty.

◆ LastDeltaTime

float FParticleEmitterInstance::LastDeltaTime

The amount of time simulated in the previous time step.

◆ LightDataOffset

int32 FParticleEmitterInstance::LightDataOffset

Offset to the light module data payload.

◆ LightVolumetricScatteringIntensity

float FParticleEmitterInstance::LightVolumetricScatteringIntensity

◆ Location

FVector FParticleEmitterInstance::Location

The location of the emitter instance

◆ LockAxisFlags

TEnumAsByte<EParticleAxisLock> FParticleEmitterInstance::LockAxisFlags

Axis lock flags, cached here to avoid finding it from the module each frame

◆ LoopCount

int32 FParticleEmitterInstance::LoopCount

The number of loops completed by the instance.

◆ MaxActiveParticles

int32 FParticleEmitterInstance::MaxActiveParticles

The maximum number of active particles that can be held in the particle data array.

◆ MaxEventCount

int32 FParticleEmitterInstance::MaxEventCount

◆ MaxVertexIndex

int32 FParticleEmitterInstance::MaxVertexIndex

◆ OldLocation

FVector FParticleEmitterInstance::OldLocation

how long did the last tick take? The previous location of the instance.

◆ OrbitModuleOffset

int32 FParticleEmitterInstance::OrbitModuleOffset

The offset to the Orbit module payload in the particle data.

◆ ParticleBoundingBox

FBox FParticleEmitterInstance::ParticleBoundingBox

The bounding box for the particles.

◆ ParticleCounter

uint32 FParticleEmitterInstance::ParticleCounter

Monotonically increasing counter.

◆ ParticleData

uint8* FParticleEmitterInstance::ParticleData

Pointer to the particle data array.

◆ ParticleIndices

uint16* FParticleEmitterInstance::ParticleIndices

Pointer to the particle index array.

◆ ParticleSize

int32 FParticleEmitterInstance::ParticleSize

The total size of a particle (in bytes).

◆ ParticleStride

int32 FParticleEmitterInstance::ParticleStride

The stride between particles in the ParticleData array.

◆ PayloadOffset

int32 FParticleEmitterInstance::PayloadOffset

The offset to the particle data.

◆ PeakActiveParticleUpdateDelta

const float FParticleEmitterInstance::PeakActiveParticleUpdateDelta = 0.05f
static

The maximum DeltaTime allowed for updating PeakActiveParticle tracking. Any delta time > this value will not impact active particle tracking.

◆ PivotOffset

FVector2D FParticleEmitterInstance::PivotOffset

The PivotOffset applied to the vertex positions

◆ PositionOffsetThisTick

FVector FParticleEmitterInstance::PositionOffsetThisTick

Position offset for each particle. Will be reset to zero at the end of the tick

◆ SecondsSinceCreation

float FParticleEmitterInstance::SecondsSinceCreation

The number of seconds that have passed since the instance was created.

◆ SimulationToWorld

FMatrix FParticleEmitterInstance::SimulationToWorld

Transform from simulation space to world space.

◆ SortMode

int32 FParticleEmitterInstance::SortMode

The sort mode to use for this emitter as specified by artist.

◆ SpawnFraction

float FParticleEmitterInstance::SpawnFraction

The fraction of time left over from spawning.

◆ SpriteTemplate

UParticleEmitter* FParticleEmitterInstance::SpriteTemplate

The template this instance is based on.

◆ SubUVDataOffset

int32 FParticleEmitterInstance::SubUVDataOffset

The offset to the SubUV payload in the particle data.

◆ TrianglesToRender

int32 FParticleEmitterInstance::TrianglesToRender

The number of triangles to render

◆ TypeDataInstanceOffset

int32 FParticleEmitterInstance::TypeDataInstanceOffset

The offset to the TypeData instance payload.

◆ TypeDataOffset

int32 FParticleEmitterInstance::TypeDataOffset

The offset to the TypeData payload in the particle data.


The documentation for this struct was generated from the following files: