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

#include <ParticleEmitterInstances.h>

+ Inheritance diagram for FParticleTrailsEmitterInstance_Base:

Public Member Functions

template<typename TrailDataType >
void GetTrailStart (const int32 TrailIdx, int32 &OutStartIndex, TrailDataType *&OutTrailData, FBaseParticle *&OutParticle)
 
template<typename TrailDataType >
void GetTrailEnd (const int32 TrailIdx, int32 &OutEndIndex, TrailDataType *&OutTrailData, FBaseParticle *&OutParticle)
 
void SetStartIndex (int32 TrailIndex, int32 ParticleIndex)
 
void SetEndIndex (int32 TrailIndex, int32 ParticleIndex)
 
void SetDeadIndex (int32 TrailIndex, int32 ParticleIndex)
 
void ClearIndices (int32 TrailIndex, int32 ParticleIndex)
 
void CheckIndices (int32 TrailIdx)
 
void CheckAllIndices ()
 
void DumpCircularTrailsSpam ()
 
bool CheckForCircularTrail (FBaseParticle *StartParticle, FBaseParticle *CheckParticle)
 
 FParticleTrailsEmitterInstance_Base (IParticleEmitterInstanceOwner &InComponent)
 
virtual ~FParticleTrailsEmitterInstance_Base ()
 
virtual void Init () override
 
virtual void InitParameters (UParticleEmitter *InTemplate) override
 
virtual void Tick (float DeltaTime, bool bSuppressSpawning) override
 
bool AddParticleHelper (int32 InTrailIdx, int32 StartParticleIndex, FTrailsBaseTypeDataPayload *StartTrailData, int32 ParticleIndex, FTrailsBaseTypeDataPayload *TrailData)
 
virtual void Tick_RecalculateTangents (float DeltaTime, UParticleLODLevel *CurrentLODLevel)
 
virtual void UpdateBoundingBox (float DeltaTime) override
 
virtual void ForceUpdateBoundingBox () override
 
virtual void KillParticles () override
 
virtual void KillParticles (int32 InTrailIdx, int32 InKillCount)
 
virtual void SetupTrailModules ()
 
virtual void UpdateSourceData (float DeltaTime, bool bFirstTime)
 
virtual void OnDeactivateSystem () override
 
- Public Member Functions inherited from FParticleEmitterInstance
ENGINE_API FParticleEmitterInstance (IParticleEmitterInstanceOwner &InComponent)
 
virtual ENGINE_API ~FParticleEmitterInstance ()
 
virtual ENGINE_API bool Resize (int32 NewMaxActiveParticles, bool bSetMaxActiveCount=true)
 
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 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 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 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

int32 VertexCount
 
int32 TriangleCount
 
int32 TrailCount
 
int32 MaxTrailCount
 
float RunningTime
 
float LastTickTime
 
uint32 bDeadTrailsOnDeactivate:1
 
TArray< floatTrailSpawnTimes
 
TArray< floatLastSpawnTime
 
TArray< floatSourceDistanceTraveled
 
TArray< floatTiledUDistanceTraveled
 
uint32 bFirstUpdate:1
 
uint32 bEnableInactiveTimeTracking:1
 
- Public Attributes inherited from FParticleEmitterInstance
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
 

Protected Types

enum  EGetTrailDirection { GET_Prev , GET_Next }
 
enum  EGetTrailParticleOption {
  GET_Any , GET_Spawned , GET_Interpolated , GET_Start ,
  GET_End
}
 

Protected Member Functions

UMaterialInterfaceGetCurrentMaterial ()
 
bool GetParticleInTrail (bool bSkipStartingParticle, FBaseParticle *InStartingFromParticle, FTrailsBaseTypeDataPayload *InStartingTrailData, EGetTrailDirection InGetDirection, EGetTrailParticleOption InGetOption, FBaseParticle *&OutParticle, FTrailsBaseTypeDataPayload *&OutTrailData)
 
virtual void PrintParticleData (FBaseParticle *Particle, FTrailsBaseTypeDataPayload *TrailData, int32 CurrentIndex, int32 TrailIndex)
 
virtual void PrintAllActiveParticles ()
 
virtual void PrintTrails ()
 
- Protected Member Functions inherited from FParticleEmitterInstance
virtual ENGINE_API bool FillReplayData (FDynamicEmitterReplayDataBase &OutData)
 
ENGINE_API void UpdateTransforms ()
 
ENGINE_API class UParticleLODLevelGetCurrentLODLevelChecked ()
 
ENGINE_API UMaterialInterfaceGetCurrentMaterial ()
 
ENGINE_API void FixupParticleIndices ()
 

Additional Inherited Members

- Static Public Attributes inherited from FParticleEmitterInstance
static ENGINE_API const float PeakActiveParticleUpdateDelta = 0.05f
 

Member Enumeration Documentation

◆ EGetTrailDirection

Enumerator
GET_Prev 
GET_Next 

◆ EGetTrailParticleOption

Enumerator
GET_Any 
GET_Spawned 
GET_Interpolated 
GET_Start 
GET_End 

Constructor & Destructor Documentation

◆ FParticleTrailsEmitterInstance_Base()

FParticleTrailsEmitterInstance_Base::FParticleTrailsEmitterInstance_Base ( IParticleEmitterInstanceOwner InComponent)
inline

Constructor

◆ ~FParticleTrailsEmitterInstance_Base()

virtual FParticleTrailsEmitterInstance_Base::~FParticleTrailsEmitterInstance_Base ( )
inlinevirtual

Destructor

Member Function Documentation

◆ AddParticleHelper()

bool FParticleTrailsEmitterInstance_Base::AddParticleHelper ( int32  InTrailIdx,
int32  StartParticleIndex,
FTrailsBaseTypeDataPayload StartTrailData,
int32  ParticleIndex,
FTrailsBaseTypeDataPayload TrailData 
)

◆ CheckAllIndices()

void FParticleTrailsEmitterInstance_Base::CheckAllIndices ( )
inline

◆ CheckForCircularTrail()

bool FParticleTrailsEmitterInstance_Base::CheckForCircularTrail ( FBaseParticle StartParticle,
FBaseParticle CheckParticle 
)
inline

◆ CheckIndices()

void FParticleTrailsEmitterInstance_Base::CheckIndices ( int32  TrailIdx)
inline

◆ ClearIndices()

void FParticleTrailsEmitterInstance_Base::ClearIndices ( int32  TrailIndex,
int32  ParticleIndex 
)
inline

◆ DumpCircularTrailsSpam()

void FParticleTrailsEmitterInstance_Base::DumpCircularTrailsSpam ( )

◆ ForceUpdateBoundingBox()

void FParticleTrailsEmitterInstance_Base::ForceUpdateBoundingBox ( )
overridevirtual

Force the bounding box to be updated.

Reimplemented from FParticleEmitterInstance.

Reimplemented in FParticleAnimTrailEmitterInstance.

◆ GetCurrentMaterial()

UMaterialInterface * FParticleTrailsEmitterInstance_Base::GetCurrentMaterial ( )
protected

Get the current material to render with.

◆ GetParticleInTrail()

bool FParticleTrailsEmitterInstance_Base::GetParticleInTrail ( bool  bSkipStartingParticle,
FBaseParticle InStartingFromParticle,
FTrailsBaseTypeDataPayload InStartingTrailData,
EGetTrailDirection  InGetDirection,
EGetTrailParticleOption  InGetOption,
FBaseParticle *&  OutParticle,
FTrailsBaseTypeDataPayload *&  OutTrailData 
)
protected

Retrieve the particle in the trail that meets the given criteria

Parameters
bSkipStartingParticleIf true, don't check the starting particle for meeting the criteria
InStartingFromParticleThe starting point for the search.
InStartingTrailDataThe trail data for the starting point.
InGetDirectionDirection to search the trail.
InGetOptionOptions for defining the type of particle.
OutParticleThe particle that meets the criteria.
OutTrailDataThe trail data of the particle that meets the criteria.
Returns
bool true if found, false if not.

Retrieve the particle in the trail that meets the given criteria

Parameters
bSkipStartingParticleIf true, don't check the starting particle for meeting the criteria
InStartingFromParticleThe starting point for the search.
InStartingTrailDataThe trail data for the starting point.
bPreviousIf true, search PREV entries. Search NEXT entries otherwise.
InGetOptionOptions for defining the type of particle.
OutParticleThe particle that meets the criteria.
OutTrailDataThe trail data of the particle that meets the criteria.
Returns
bool true if found, false if not.

◆ GetTrailEnd()

template<typename TrailDataType >
void FParticleTrailsEmitterInstance_Base::GetTrailEnd ( const int32  TrailIdx,
int32 OutEndIndex,
TrailDataType *&  OutTrailData,
FBaseParticle *&  OutParticle 
)
inline

◆ GetTrailStart()

template<typename TrailDataType >
void FParticleTrailsEmitterInstance_Base::GetTrailStart ( const int32  TrailIdx,
int32 OutStartIndex,
TrailDataType *&  OutTrailData,
FBaseParticle *&  OutParticle 
)
inline

◆ Init()

void FParticleTrailsEmitterInstance_Base::Init ( )
overridevirtual

Initialize the instance

Reimplemented from FParticleEmitterInstance.

◆ InitParameters()

void FParticleTrailsEmitterInstance_Base::InitParameters ( UParticleEmitter InTemplate)
overridevirtual

◆ KillParticles() [1/2]

void FParticleTrailsEmitterInstance_Base::KillParticles ( )
overridevirtual

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

Reimplemented from FParticleEmitterInstance.

◆ KillParticles() [2/2]

void FParticleTrailsEmitterInstance_Base::KillParticles ( int32  InTrailIdx,
int32  InKillCount 
)
virtual

Kill the given number of particles from the end of the trail.

Parameters
InTrailIdxThe trail to kill particles in.
InKillCountThe number of particles to kill off.

◆ OnDeactivateSystem()

void FParticleTrailsEmitterInstance_Base::OnDeactivateSystem ( )
overridevirtual

Called when the particle system is deactivating...

Reimplemented from FParticleEmitterInstance.

◆ PrintAllActiveParticles()

virtual void FParticleTrailsEmitterInstance_Base::PrintAllActiveParticles ( )
inlineprotectedvirtual

Prints out info for all active particles.

Reimplemented in FParticleAnimTrailEmitterInstance.

◆ PrintParticleData()

virtual void FParticleTrailsEmitterInstance_Base::PrintParticleData ( FBaseParticle Particle,
FTrailsBaseTypeDataPayload TrailData,
int32  CurrentIndex,
int32  TrailIndex 
)
inlineprotectedvirtual

Prints out info for a single particle.

Reimplemented in FParticleAnimTrailEmitterInstance.

◆ PrintTrails()

virtual void FParticleTrailsEmitterInstance_Base::PrintTrails ( )
inlineprotectedvirtual

Traverses all trails and prints out debugging info.

Reimplemented in FParticleAnimTrailEmitterInstance.

◆ SetDeadIndex()

void FParticleTrailsEmitterInstance_Base::SetDeadIndex ( int32  TrailIndex,
int32  ParticleIndex 
)
inline

◆ SetEndIndex()

void FParticleTrailsEmitterInstance_Base::SetEndIndex ( int32  TrailIndex,
int32  ParticleIndex 
)
inline

◆ SetStartIndex()

void FParticleTrailsEmitterInstance_Base::SetStartIndex ( int32  TrailIndex,
int32  ParticleIndex 
)
inline

◆ SetupTrailModules()

virtual void FParticleTrailsEmitterInstance_Base::SetupTrailModules ( )
inlinevirtual

◆ Tick()

void FParticleTrailsEmitterInstance_Base::Tick ( float  DeltaTime,
bool  bSuppressSpawning 
)
overridevirtual

Tick the instance.

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

Reimplemented from FParticleEmitterInstance.

◆ Tick_RecalculateTangents()

void FParticleTrailsEmitterInstance_Base::Tick_RecalculateTangents ( float  DeltaTime,
UParticleLODLevel InCurrentLODLevel 
)
virtual

Tick sub-function that handles recalculation of tangents

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

Reimplemented in FParticleRibbonEmitterInstance, and FParticleAnimTrailEmitterInstance.

◆ UpdateBoundingBox()

void FParticleTrailsEmitterInstance_Base::UpdateBoundingBox ( float  DeltaTime)
overridevirtual

Update the bounding box for the emitter

Parameters
DeltaTimeThe time slice to use

Reimplemented from FParticleEmitterInstance.

Reimplemented in FParticleAnimTrailEmitterInstance.

◆ UpdateSourceData()

void FParticleTrailsEmitterInstance_Base::UpdateSourceData ( float  DeltaTime,
bool  bFirstTime 
)
virtual

Member Data Documentation

◆ bDeadTrailsOnDeactivate

uint32 FParticleTrailsEmitterInstance_Base::bDeadTrailsOnDeactivate

If true, mark trails dead on deactivate

◆ bEnableInactiveTimeTracking

uint32 FParticleTrailsEmitterInstance_Base::bEnableInactiveTimeTracking

If true, when the system checks for particles to kill, it will use elapsed gametime to make the determination. This will result in emitters that were inactive due to not being rendered killing off old particles.

◆ bFirstUpdate

uint32 FParticleTrailsEmitterInstance_Base::bFirstUpdate

If true, this emitter has not been updated yet...

◆ LastSpawnTime

TArray<float> FParticleTrailsEmitterInstance_Base::LastSpawnTime

The last time a spawn happened for each trail in this emitter

◆ LastTickTime

float FParticleTrailsEmitterInstance_Base::LastTickTime

The last time the emitter instance was ticked

◆ MaxTrailCount

int32 FParticleTrailsEmitterInstance_Base::MaxTrailCount

The max number of trails this emitter is allowed to have

◆ RunningTime

float FParticleTrailsEmitterInstance_Base::RunningTime

The running time for this instance w/ ActiveParticles > 0

◆ SourceDistanceTraveled

TArray<float> FParticleTrailsEmitterInstance_Base::SourceDistanceTraveled

The distance traveled by each source of each trail in this emitter

◆ TiledUDistanceTraveled

TArray<float> FParticleTrailsEmitterInstance_Base::TiledUDistanceTraveled

The distance traveled by each source of each trail in this emitter

◆ TrailCount

int32 FParticleTrailsEmitterInstance_Base::TrailCount

The number of active trails in this emitter

◆ TrailSpawnTimes

TArray<float> FParticleTrailsEmitterInstance_Base::TrailSpawnTimes

The Spawn times for each trail in this emitter

◆ TriangleCount

int32 FParticleTrailsEmitterInstance_Base::TriangleCount

The triangle count for this emitter

◆ VertexCount

int32 FParticleTrailsEmitterInstance_Base::VertexCount

The vertex count for this emitter


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