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

#include <ParticleEmitterInstances.h>

+ Inheritance diagram for FParticleMeshEmitterInstance:

Public Member Functions

ENGINE_API FParticleMeshEmitterInstance (IParticleEmitterInstanceOwner &InComponent)
 
virtual ENGINE_API void InitParameters (UParticleEmitter *InTemplate) override
 
virtual ENGINE_API void Init () override
 
virtual ENGINE_API bool Resize (int32 NewMaxActiveParticles, bool bSetMaxActiveCount=true) override
 
virtual ENGINE_API void Tick (float DeltaTime, bool bSuppressSpawning) override
 
virtual ENGINE_API void UpdateBoundingBox (float DeltaTime) override
 
virtual ENGINE_API uint32 RequiredBytes () override
 
virtual ENGINE_API void PostSpawn (FBaseParticle *Particle, float InterpolationPercentage, float SpawnTime) override
 
virtual ENGINE_API FDynamicEmitterDataBaseGetDynamicData (bool bSelected, ERHIFeatureLevel::Type InFeatureLevel) override
 
virtual ENGINE_API bool IsDynamicDataRequired (UParticleLODLevel *CurrentLODLevel) override
 
virtual ENGINE_API void Tick_MaterialOverrides (int32 EmitterIndex) override
 
virtual ENGINE_API FDynamicEmitterReplayDataBaseGetReplayData () override
 
virtual ENGINE_API void GetAllocatedSize (int32 &OutNum, int32 &OutMax) override
 
virtual ENGINE_API void GetResourceSizeEx (FResourceSizeEx &CumulativeResourceSize) override
 
virtual int32 GetMeshRotationOffset () const override
 
virtual bool IsMeshRotationActive () const override
 
virtual ENGINE_API void SetMeshMaterials (const TArray< UMaterialInterface * > &InMaterials) override
 
virtual ENGINE_API void GatherMaterialRelevance (FMaterialRelevance *OutMaterialRelevance, const UParticleLODLevel *LODLevel, ERHIFeatureLevel::Type InFeatureLevel) const override
 
virtual ENGINE_API void GatherMaterialRelevance (FMaterialRelevance *OutMaterialRelevance, const UParticleLODLevel *LODLevel, EShaderPlatform InShaderPlatform) const override
 
ENGINE_API void GetMeshMaterials (TArray< UMaterialInterface *, TInlineAllocator< 2 > > &OutMaterials, const UParticleLODLevel *LODLevel, ERHIFeatureLevel::Type InFeatureLevel, bool bLogWarnings=false) const
 
ENGINE_API void GetMeshMaterials (TArray< UMaterialInterface *, TInlineAllocator< 2 > > &OutMaterials, const UParticleLODLevel *LODLevel, bool bLogWarnings=false) const
 
- Public Member Functions inherited from FParticleEmitterInstance
ENGINE_API FParticleEmitterInstance (IParticleEmitterInstanceOwner &InComponent)
 
virtual ENGINE_API ~FParticleEmitterInstance ()
 
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 ForceUpdateBoundingBox ()
 
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 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 void ProcessParticleEvents (float DeltaTime, bool bSuppressSpawning)
 
virtual void OnDeactivateSystem ()
 
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)
 
ENGINE_API bool UseLocalSpace ()
 
ENGINE_API void GetScreenAlignmentAndScale (int32 &OutScreenAlign, FVector &OutScale)
 
- Public Member Functions inherited from FParticleEmitterInstanceFixLayout
virtual ~FParticleEmitterInstanceFixLayout ()=default
 

Public Attributes

UParticleModuleTypeDataMeshMeshTypeData
 
bool MeshRotationActive
 
int32 MeshRotationOffset
 
int32 MeshMotionBlurOffset
 
TArray< UMaterialInterface * > CurrentMaterials
 
- 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 Member Functions

virtual ENGINE_API bool FillReplayData (FDynamicEmitterReplayDataBase &OutData) override
 
- Protected Member Functions inherited from FParticleEmitterInstance
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
 

Constructor & Destructor Documentation

◆ FParticleMeshEmitterInstance()

FParticleMeshEmitterInstance::FParticleMeshEmitterInstance ( IParticleEmitterInstanceOwner InComponent)

Constructor

Structure for mesh emitter instances Constructor

Member Function Documentation

◆ FillReplayData()

bool FParticleMeshEmitterInstance::FillReplayData ( FDynamicEmitterReplayDataBase OutData)
overrideprotectedvirtual

Captures dynamic replay data for this particle system.

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

Reimplemented from FParticleEmitterInstance.

◆ GatherMaterialRelevance() [1/2]

void FParticleMeshEmitterInstance::GatherMaterialRelevance ( FMaterialRelevance OutMaterialRelevance,
const UParticleLODLevel LODLevel,
ERHIFeatureLevel::Type  InFeatureLevel 
) const
overridevirtual

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

◆ GatherMaterialRelevance() [2/2]

void FParticleMeshEmitterInstance::GatherMaterialRelevance ( FMaterialRelevance OutMaterialRelevance,
const UParticleLODLevel LODLevel,
EShaderPlatform  InShaderPlatform 
) const
overridevirtual

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

◆ GetAllocatedSize()

void FParticleMeshEmitterInstance::GetAllocatedSize ( int32 OutNum,
int32 OutMax 
)
overridevirtual

Retrieve the allocated size of this instance.

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

Reimplemented from FParticleEmitterInstance.

◆ GetDynamicData()

FDynamicEmitterDataBase * FParticleMeshEmitterInstance::GetDynamicData ( bool  bSelected,
ERHIFeatureLevel::Type  InFeatureLevel 
)
overridevirtual

Retrieves the dynamic data for the emitter

Parameters
bSelectedWhether the emitter is selected in the editor
InFeatureLevelThe relevant shader feature level.
Returns
FDynamicEmitterDataBase* The dynamic data, or NULL if it shouldn't be rendered

Reimplemented from FParticleEmitterInstance.

◆ GetMeshMaterials() [1/2]

void FParticleMeshEmitterInstance::GetMeshMaterials ( TArray< UMaterialInterface *, TInlineAllocator< 2 > > &  OutMaterials,
const UParticleLODLevel LODLevel,
bool  bLogWarnings = false 
) const

◆ GetMeshMaterials() [2/2]

void FParticleMeshEmitterInstance::GetMeshMaterials ( TArray< UMaterialInterface *, TInlineAllocator< 2 > > &  OutMaterials,
const UParticleLODLevel LODLevel,
ERHIFeatureLevel::Type  InFeatureLevel,
bool  bLogWarnings = false 
) const

Gets the materials applied to each section of a mesh.

◆ GetMeshRotationOffset()

virtual int32 FParticleMeshEmitterInstance::GetMeshRotationOffset ( ) const
inlineoverridevirtual

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

Reimplemented from FParticleEmitterInstance.

◆ GetReplayData()

FDynamicEmitterReplayDataBase * FParticleMeshEmitterInstance::GetReplayData ( )
overridevirtual

Retrieves replay data for the emitter

Returns
The replay data, or NULL on failure

Reimplemented from FParticleEmitterInstance.

◆ GetResourceSizeEx()

void FParticleMeshEmitterInstance::GetResourceSizeEx ( FResourceSizeEx CumulativeResourceSize)
overridevirtual

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

Parameters
ModeSpecifies which resource size should be displayed. ( see EResourceSizeMode::Type )
Returns
Size of resource as to be displayed to artists/ LDs in the Editor.

Reimplemented from FParticleEmitterInstance.

◆ Init()

void FParticleMeshEmitterInstance::Init ( )
overridevirtual

Initialize the instance

Reimplemented from FParticleEmitterInstance.

◆ InitParameters()

void FParticleMeshEmitterInstance::InitParameters ( UParticleEmitter InTemplate)
overridevirtual

Reimplemented from FParticleEmitterInstance.

◆ IsDynamicDataRequired()

bool FParticleMeshEmitterInstance::IsDynamicDataRequired ( UParticleLODLevel InCurrentLODLevel)
overridevirtual

Checks some common values for GetDynamicData validity

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

Reimplemented from FParticleEmitterInstance.

◆ IsMeshRotationActive()

virtual bool FParticleMeshEmitterInstance::IsMeshRotationActive ( ) const
inlineoverridevirtual

Returns true if mesh rotation is active.

Reimplemented from FParticleEmitterInstance.

◆ PostSpawn()

void FParticleMeshEmitterInstance::PostSpawn ( FBaseParticle Particle,
float  InterpolationPercentage,
float  SpawnTime 
)
overridevirtual

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

◆ RequiredBytes()

uint32 FParticleMeshEmitterInstance::RequiredBytes ( )
overridevirtual

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

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

Reimplemented from FParticleEmitterInstance.

◆ Resize()

bool FParticleMeshEmitterInstance::Resize ( int32  NewMaxActiveParticles,
bool  bSetMaxActiveCount = true 
)
overridevirtual

Resize the particle data array

Parameters
NewMaxActiveParticlesThe new size to use
Returns
bool true if the resize was successful

Reimplemented from FParticleEmitterInstance.

◆ SetMeshMaterials()

void FParticleMeshEmitterInstance::SetMeshMaterials ( const TArray< UMaterialInterface * > &  InMaterials)
overridevirtual

Sets the materials with which mesh particles should be rendered.

Parameters
InMaterials- The materials.

Sets the materials with which mesh particles should be rendered.

Reimplemented from FParticleEmitterInstance.

◆ Tick()

void FParticleMeshEmitterInstance::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_MaterialOverrides()

void FParticleMeshEmitterInstance::Tick_MaterialOverrides ( int32  EmitterIndex)
overridevirtual

Ticks the emitter's material overrides.

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

Reimplemented from FParticleEmitterInstance.

◆ UpdateBoundingBox()

void FParticleMeshEmitterInstance::UpdateBoundingBox ( float  DeltaTime)
overridevirtual

Update the bounding box for the emitter

Parameters
DeltaTimeThe time slice to use

Reimplemented from FParticleEmitterInstance.

Member Data Documentation

◆ CurrentMaterials

TArray<UMaterialInterface*> FParticleMeshEmitterInstance::CurrentMaterials

The materials to render this instance with.

◆ MeshMotionBlurOffset

int32 FParticleMeshEmitterInstance::MeshMotionBlurOffset

◆ MeshRotationActive

bool FParticleMeshEmitterInstance::MeshRotationActive

◆ MeshRotationOffset

int32 FParticleMeshEmitterInstance::MeshRotationOffset

◆ MeshTypeData

UParticleModuleTypeDataMesh* FParticleMeshEmitterInstance::MeshTypeData

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