![]() |
UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
|
#include <ParticleEmitterInstances.h>
Inheritance diagram for FParticleEmitterInstance: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 UParticleLODLevel * | GetCurrentLODLevelChecked () |
| ENGINE_API UMaterialInterface * | GetCurrentMaterial () |
| ENGINE_API void | FixupParticleIndices () |
| FParticleEmitterInstance::FParticleEmitterInstance | ( | IParticleEmitterInstanceOwner & | InComponent | ) |
Constructor
|
virtual |
Destructor
Reimplemented in FParticleBeam2EmitterInstance, and FParticleRibbonEmitterInstance.
Begins the trail.
Reimplemented in FParticleAnimTrailEmitterInstance.
| void FParticleEmitterInstance::CalculateOrbitOffset | ( | FOrbitChainModuleInstancePayload & | Payload, |
| FVector & | AccumOffset, | ||
| FVector & | AccumRotation, | ||
| FVector & | AccumRotationRate, | ||
| float | DeltaTime, | ||
| FVector & | Result, | ||
| FMatrix & | RotationMat | ||
| ) |
Calculate the orbit offset data.
Calculate the stride of a single particle for this instance
| ParticleSize | The size of the particle |
| 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
Ends the trail.
Reimplemented in FParticleAnimTrailEmitterInstance.
| void FParticleEmitterInstance::FakeBursts | ( | ) |
Advances the bursts as though they were fired with out actually firing them.
|
protectedvirtual |
Captures dynamic replay data for this particle system.
| OutData | [Out] Data will be copied here |
Reimplemented in FGPUSpriteParticleEmitterInstance, FParticleSpriteEmitterInstance, FParticleMeshEmitterInstance, FParticleBeam2EmitterInstance, FParticleRibbonEmitterInstance, and FParticleAnimTrailEmitterInstance.
|
protected |
Fixup particle indices to only have valid entries.
|
virtual |
Spawn/burst the given particles...
| DeltaTime | The time slice to spawn over. |
| InSpawnCount | The number of particles to forcibly spawn. |
| InBurstCount | The number of particles to forcibly burst. |
| InLocation | The location to spawn at. |
| InVelocity | OPTIONAL velocity to have the particle inherit. |
|
virtual |
Force the bounding box to be updated.
Reimplemented in FGPUSpriteParticleEmitterInstance, FParticleBeam2EmitterInstance, FParticleTrailsEmitterInstance_Base, and FParticleAnimTrailEmitterInstance.
|
virtual |
Gathers material relevance flags for this emitter instance.
| OutMaterialRelevance | - Pointer to where material relevance flags will be stored. |
| LODLevel | - The LOD level for which to compute material relevance flags. |
Reimplemented in FParticleMeshEmitterInstance.
|
virtual |
Gathers material relevance flags for this emitter instance.
| 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.
|
inlinevirtual |
Retrieve the allocated size of this instance.
| OutNum | The size of this instance |
| OutMax | The maximum size of this instance |
Reimplemented in FParticleSpriteEmitterInstance, FParticleMeshEmitterInstance, FParticleBeam2EmitterInstance, FParticleRibbonEmitterInstance, and FParticleAnimTrailEmitterInstance.
Reimplemented in FParticleBeam2EmitterInstance.
|
inlinevirtual |
Reimplemented in FParticleBeam2EmitterInstance.
|
inlinevirtual |
Reimplemented in FParticleBeam2EmitterInstance.
|
inlinevirtual |
Reimplemented in FParticleBeam2EmitterInstance.
|
inlinevirtual |
Reimplemented in FParticleBeam2EmitterInstance.
|
inlinevirtual |
Reimplemented in FParticleBeam2EmitterInstance.
|
inlinevirtual |
Reimplemented in FParticleBeam2EmitterInstance.
|
virtual |
Retrieve the bounding box for the instance
|
virtual |
Get the current burst rate offset (delta time is artificially increased to generate bursts)
| DeltaTime | The time slice (In/Out) |
| Burst | The number of particles to burst (Output) |
|
protected |
Retrieves the current LOD level and asserts that it is valid.
|
protected |
Get the current material to render with.
|
inlinevirtual |
Retrieves the dynamic data for the emitter
Reimplemented in FGPUSpriteParticleEmitterInstance, FParticleSpriteEmitterInstance, FParticleMeshEmitterInstance, FParticleBeam2EmitterInstance, FParticleRibbonEmitterInstance, and FParticleAnimTrailEmitterInstance.
Returns the offset to the mesh rotation payload, if any.
Reimplemented in FParticleMeshEmitterInstance.
| uint32 FParticleEmitterInstance::GetModuleDataOffset | ( | UParticleModule * | Module | ) |
Get offset for particle payload data for a particular module
| uint8 * FParticleEmitterInstance::GetModuleInstanceData | ( | UParticleModule * | Module | ) |
Get pointer to emitter instance payload data for a particular module
| FParticleRandomSeedInstancePayload * FParticleEmitterInstance::GetModuleRandomSeedInstanceData | ( | UParticleModule * | Module | ) |
Get pointer to emitter instance random seed payload data for a particular module
| int32 FParticleEmitterInstance::GetOrbitPayloadOffset | ( | ) |
Get the offset of the orbit payload.
|
virtual |
Retrieve the particle at the given index
| Index | The index of the particle of interest |
|
virtual |
Get the particle at the given direct index
| InDirectIndex | The direct index of the particle of interest |
Get the physical index of the particle at the given index (ie, the contents of ParticleIndices[InIndex])
| InIndex | The index of the particle of interest |
| FVector FParticleEmitterInstance::GetParticleLocationWithOrbitOffset | ( | FBaseParticle * | Particle | ) |
Get the position of the particle taking orbit in to account.
|
inlinevirtual |
Retrieves replay data for the emitter
Reimplemented in FParticleSpriteEmitterInstance, FParticleMeshEmitterInstance, FParticleBeam2EmitterInstance, FParticleRibbonEmitterInstance, and FParticleAnimTrailEmitterInstance.
|
inlinevirtual |
Returns resource size, similar to UObject function
Reimplemented in FParticleSpriteEmitterInstance, FParticleMeshEmitterInstance, FParticleBeam2EmitterInstance, FParticleRibbonEmitterInstance, and FParticleAnimTrailEmitterInstance.
| void FParticleEmitterInstance::GetScreenAlignmentAndScale | ( | int32 & | OutScreenAlign, |
| FVector & | OutScale | ||
| ) |
returns the screen alignment and scale of the component.
|
virtual |
Get the pointer to the instance data allocated for type data module.
|
inline |
Returns whether the system has any active particles.
|
virtual |
Has the instance completed it's run?
Reimplemented in FGPUSpriteParticleEmitterInstance, and FParticleAnimTrailEmitterInstance.
|
virtual |
Initialize the instance
Reimplemented in FGPUSpriteParticleEmitterInstance, FParticleMeshEmitterInstance, FParticleBeam2EmitterInstance, and FParticleTrailsEmitterInstance_Base.
|
virtual |
|
virtual |
Checks some common values for GetDynamicData validity
Reimplemented in FParticleMeshEmitterInstance, FParticleRibbonEmitterInstance, and FGPUSpriteParticleEmitterInstance.
Returns true if mesh rotation is active.
Reimplemented in FParticleMeshEmitterInstance.
Reimplemented in FParticleAnimTrailEmitterInstance.
Kill the particle at the given instance
| Index | The index of the particle to kill. |
|
virtual |
Kill off any dead particles. (Remove them from the active array)
Reimplemented in FParticleBeam2EmitterInstance, and FParticleTrailsEmitterInstance_Base.
Force kill all particles in the emitter.
| bFireEvents | If 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.
Called when the particle system is deactivating...
Reimplemented in FGPUSpriteParticleEmitterInstance, and FParticleTrailsEmitterInstance_Base.
|
inlinevirtual |
When an emitter is killed, this will check other emitters and clean up anything pointing to this one
Reimplemented in FParticleBeam2EmitterInstance, and FParticleRibbonEmitterInstance.
|
virtual |
|
virtual |
Handle any post-spawning actions required by the instance
| Particle | The particle that was spawned |
| InterpolationPercentage | The percentage of the time slice it was spawned at |
| SpawnTIme | The time it was spawned at |
Reimplemented in FParticleMeshEmitterInstance, and FParticleBeam2EmitterInstance.
|
virtual |
Handle any pre-spawning actions required for particles
| Particle | The particle being spawned. |
| InitialLocation | The initial location of the particle. |
| InitialVelocity | The initial velocity of the particle. |
|
virtual |
Process received events.
|
virtual |
Retrieved the per-particle bytes that this emitter type requires.
Reimplemented in FParticleMeshEmitterInstance, and FParticleBeam2EmitterInstance.
|
virtual |
Reset the burst list information for the instance
Reset the particle parameters
|
virtual |
Ensures enough memory is allocated for the requested number of particles.
| NewMaxActiveParticles | The number of particles for which memory must be allocated. |
| bSetMaxActiveCount | If true, update the peak active particles for this LOD. |
Reimplemented in FParticleMeshEmitterInstance.
|
virtual |
Rewind the instance.
Reimplemented in FGPUSpriteParticleEmitterInstance.
Reimplemented in FParticleBeam2EmitterInstance.
|
inlinevirtual |
Reimplemented in FParticleBeam2EmitterInstance.
|
inlinevirtual |
Reimplemented in FParticleBeam2EmitterInstance.
|
inlinevirtual |
Reimplemented in FParticleBeam2EmitterInstance.
|
inlinevirtual |
Reimplemented in FParticleBeam2EmitterInstance.
|
inlinevirtual |
Reimplemented in FParticleBeam2EmitterInstance.
|
inlinevirtual |
Reimplemented in FParticleBeam2EmitterInstance.
|
virtual |
Set the LOD to the given index
| InLODIndex | The index of the LOD to set as current |
| bInFullyProcess | If true, process burst lists, etc. |
Reimplemented in FParticleBeam2EmitterInstance.
|
inline |
Set the HaltSpawning flag
|
inlinevirtual |
Set the bHaltSpawningExternal flag
|
inlinevirtual |
Sets the materials with which mesh particles should be rendered.
| InMaterials | - The materials. |
Reimplemented in FParticleMeshEmitterInstance.
|
inlinevirtual |
Sets the data that defines this trail.
| InFirstSocketName | The name of the first socket for the trail. |
| InSecondSocketName | The name of the second socket for the trail. |
| InWidthMode | How the width value is applied to the trail. |
| InWidth | The width of the trail. |
Reimplemented in FParticleAnimTrailEmitterInstance.
| void FParticleEmitterInstance::SetupEmitterDuration | ( | ) |
Calculates the emitter duration for the instance.
Spawn particles for this emitter instance
| DeltaTime | The time slice to spawn over |
Reimplemented in FParticleRibbonEmitterInstance, and FParticleAnimTrailEmitterInstance.
| void FParticleEmitterInstance::SpawnParticles | ( | int32 | Count, |
| float | StartTime, | ||
| float | Increment, | ||
| const FVector & | InitialLocation, | ||
| const FVector & | InitialVelocity, | ||
| struct FParticleEventInstancePayload * | EventPayload | ||
| ) |
Spawn the indicated number of particles.
| Count | The number of particles to spawn. |
| StartTime | The local emitter time at which to begin spawning particles. |
| Increment | The time delta between spawned particles. |
| InitialLocation | The initial location of spawned particles. |
| InitialVelocity | The initial velocity of spawned particles. |
| EventPayload | Event generator payload if events should be triggered. |
Tick the instance.
| DeltaTime | The time slice to use |
| bSuppressSpawning | If true, do not spawn during Tick |
Reimplemented in FGPUSpriteParticleEmitterInstance, FParticleMeshEmitterInstance, FParticleBeam2EmitterInstance, and FParticleTrailsEmitterInstance_Base.
|
virtual |
Tick sub-function that handles EmitterTime setup, looping, etc.
| DeltaTime | The current time slice |
| CurrentLODLevel | The current LOD level for the instance |
Tick sub-function that handle EmitterTime setup, looping, etc.
| DeltaTime | The current time slice |
| CurrentLODLevel | The current LOD level for the instance |
Ticks the emitter's material overrides.
Reimplemented in FParticleMeshEmitterInstance.
|
virtual |
Tick sub-function that handles module FINAL updates
| DeltaTime | The current time slice |
| CurrentLODLevel | The current LOD level for the instance |
|
virtual |
Tick sub-function that handles module post updates
| DeltaTime | The current time slice |
| CurrentLODLevel | The current LOD level for the instance |
Reimplemented in FParticleBeam2EmitterInstance.
|
virtual |
Tick sub-function that handles module updates
| DeltaTime | The current time slice |
| CurrentLODLevel | The current LOD level for the instance |
|
virtual |
Tick sub-function that handles spawning of particles
| DeltaTime | The current time slice |
| CurrentLODLevel | The current LOD level for the instance |
| bSuppressSpawning | true if spawning has been suppressed on the owning particle system component |
| bFirstTime | true if this is the first time the instance has been ticked |
Update the bounding box for the emitter
| DeltaTime | The time slice to use |
Reimplemented in FParticleMeshEmitterInstance, FParticleBeam2EmitterInstance, FParticleTrailsEmitterInstance_Base, and FParticleAnimTrailEmitterInstance.
|
protected |
Updates all internal transforms.
| bool FParticleEmitterInstance::UseLocalSpace | ( | ) |
True if this emitter emits in local space
| int32 FParticleEmitterInstance::ActiveParticles |
The number of particles currently active in the emitter.
| uint8 FParticleEmitterInstance::bAxisLockEnabled |
Whether axis lock is enabled, cached here to avoid finding it from the module each frame
| uint8 FParticleEmitterInstance::bEmitterIsDone |
true if the emitter has no active particles and will no longer spawn any in the future
| uint8 FParticleEmitterInstance::bEnabled |
Component can disable Tick and Rendering of this emitter.
| 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.
| uint8 FParticleEmitterInstance::bHaltSpawning |
If true, halt spawning for this instance.
| uint8 FParticleEmitterInstance::bHaltSpawningExternal |
If true, this emitter has been disabled by game code and some systems to re-enable are not allowed.
| uint8 FParticleEmitterInstance::bIgnoreComponentScale |
If true, the emitter ignores the component's scale. (Mesh emitters only).
| uint8 FParticleEmitterInstance::bIsBeam |
Hack: Make sure this is a Beam type to avoid casting from/to wrong types.
| uint8 FParticleEmitterInstance::bKillOnCompleted |
if true, kill this emitter instance when it has completed.
| uint8 FParticleEmitterInstance::bKillOnDeactivate |
If true, kill this emitter instance when it is deactivated.
| uint8 FParticleEmitterInstance::bRequiresLoopNotification |
If true, the emitter has modules that require loop notification.
| uint8 FParticleEmitterInstance::bRequiresSorting |
Whether this emitter requires sorting as specified by artist.
| TArray<struct FLODBurstFired> FParticleEmitterInstance::BurstFired |
The BurstFire information.
| int32 FParticleEmitterInstance::CameraPayloadOffset |
The offset to the Camera payload in the particle data.
| IParticleEmitterInstanceOwner& FParticleEmitterInstance::Component |
The component who owns it.
| float FParticleEmitterInstance::CurrentDelay |
The emitter's delay for the current loop
| UParticleLODLevel* FParticleEmitterInstance::CurrentLODLevel |
The currently set LOD level.
| int32 FParticleEmitterInstance::CurrentLODLevelIndex |
The index of the currently set LOD level.
| UMaterialInterface* FParticleEmitterInstance::CurrentMaterial |
The material to render this instance with.
| int32 FParticleEmitterInstance::DynamicParameterDataOffset |
The offset to the dynamic parameter payload in the particle data
| float FParticleEmitterInstance::EmitterDuration |
The current duration fo the emitter instance.
The emitter duration at each LOD level for the instance.
| float FParticleEmitterInstance::EmitterTime |
| FMatrix FParticleEmitterInstance::EmitterToSimulation |
Transform from emitter local space to simulation space.
| int32 FParticleEmitterInstance::EventCount |
Number of events this emitter has generated...
| TArray<class UPointLightComponent*> FParticleEmitterInstance::HighQualityLights |
| uint8* FParticleEmitterInstance::InstanceData |
Pointer to the instance data array.
| int32 FParticleEmitterInstance::InstancePayloadSize |
The size of the Instance data array.
| int32 FParticleEmitterInstance::IsRenderDataDirty |
Flag indicating if the render data is dirty.
| float FParticleEmitterInstance::LastDeltaTime |
The amount of time simulated in the previous time step.
| int32 FParticleEmitterInstance::LightDataOffset |
Offset to the light module data payload.
| float FParticleEmitterInstance::LightVolumetricScatteringIntensity |
| FVector FParticleEmitterInstance::Location |
The location of the emitter instance
| TEnumAsByte<EParticleAxisLock> FParticleEmitterInstance::LockAxisFlags |
Axis lock flags, cached here to avoid finding it from the module each frame
| int32 FParticleEmitterInstance::LoopCount |
The number of loops completed by the instance.
| int32 FParticleEmitterInstance::MaxActiveParticles |
The maximum number of active particles that can be held in the particle data array.
| int32 FParticleEmitterInstance::MaxEventCount |
| int32 FParticleEmitterInstance::MaxVertexIndex |
| FVector FParticleEmitterInstance::OldLocation |
how long did the last tick take? The previous location of the instance.
| int32 FParticleEmitterInstance::OrbitModuleOffset |
The offset to the Orbit module payload in the particle data.
| FBox FParticleEmitterInstance::ParticleBoundingBox |
The bounding box for the particles.
| uint32 FParticleEmitterInstance::ParticleCounter |
Monotonically increasing counter.
| uint8* FParticleEmitterInstance::ParticleData |
Pointer to the particle data array.
| uint16* FParticleEmitterInstance::ParticleIndices |
Pointer to the particle index array.
| int32 FParticleEmitterInstance::ParticleSize |
The total size of a particle (in bytes).
| int32 FParticleEmitterInstance::ParticleStride |
The stride between particles in the ParticleData array.
| int32 FParticleEmitterInstance::PayloadOffset |
The offset to the particle data.
|
static |
The maximum DeltaTime allowed for updating PeakActiveParticle tracking. Any delta time > this value will not impact active particle tracking.
| FVector2D FParticleEmitterInstance::PivotOffset |
The PivotOffset applied to the vertex positions
| FVector FParticleEmitterInstance::PositionOffsetThisTick |
Position offset for each particle. Will be reset to zero at the end of the tick
| float FParticleEmitterInstance::SecondsSinceCreation |
The number of seconds that have passed since the instance was created.
| FMatrix FParticleEmitterInstance::SimulationToWorld |
Transform from simulation space to world space.
| int32 FParticleEmitterInstance::SortMode |
The sort mode to use for this emitter as specified by artist.
| float FParticleEmitterInstance::SpawnFraction |
The fraction of time left over from spawning.
| UParticleEmitter* FParticleEmitterInstance::SpriteTemplate |
The template this instance is based on.
| int32 FParticleEmitterInstance::SubUVDataOffset |
The offset to the SubUV payload in the particle data.
| int32 FParticleEmitterInstance::TrianglesToRender |
The number of triangles to render
| int32 FParticleEmitterInstance::TypeDataInstanceOffset |
The offset to the TypeData instance payload.
| int32 FParticleEmitterInstance::TypeDataOffset |
The offset to the TypeData payload in the particle data.