Navigation
API > API/Plugins > API/Plugins/Niagara
Inheritance Hierarchy
- TSharedFromThis
- FNiagaraSystemSimulation
References
| Module | Niagara |
| Header | /Engine/Plugins/FX/Niagara/Source/Niagara/Public/NiagaraSystemSimulation.h |
| Include | #include "NiagaraSystemSimulation.h" |
Syntax
class FNiagaraSystemSimulation : public TSharedFromThis< FNiagaraSystemSimulation, ESPMode::ThreadSafe >
Remarks
Simulation performing all system and emitter scripts for a instances of a UNiagaraSystem in a world.
Variables
| Type | Name | Description | |
|---|---|---|---|
| FGraphEventRef | AllWorkCompleteGraphEvent | Event to track all work is complete, i.e. System Concurrent, Instance Concurrent, Finalize | |
| uint32: 1 | bBindingsInitialized | ||
| uint32: 1 | bCanExecute | ||
| uint32: 1 | bInSpawnPhase | ||
| uint32: 1 | bIsSolo | ||
| FGraphEventRef | ConcurrentTickGraphEvent | Event to track the system simulation async tick is complete. | |
| FString | CrashReporterTag | ||
| TArray< TArray< FNiagaraParameterStoreToDataSetBinding > > | DataSetToEmitterEventParameters | Binding to push system attributes into each emitter event parameters. | |
| TArray< FNiagaraParameterStoreToDataSetBinding > | DataSetToEmitterGPUParameters | Binding to push system attributes into each emitter gpu parameters. | |
| TArray< FNiagaraParameterStoreToDataSetBinding > | DataSetToEmitterRendererParameters | Binding to push system attributes into each emitter renderer parameters. | |
| TArray< FNiagaraParameterStoreToDataSetBinding > | DataSetToEmitterSpawnParameters | Binding to push system attributes into each emitter spawn parameters. | |
| TArray< FNiagaraParameterStoreToDataSetBinding > | DataSetToEmitterUpdateParameters | Binding to push system attributes into each emitter update parameters. | |
| FNiagaraGpuComputeDispatchInterface * | DispatchInterface | ||
| TWeakObjectPtr< UNiagaraEffectType > | EffectType | We cache off the effect type in the unlikely even that someone GCs the System from under us so that we can keep the effect types instance count etc accurate. | |
| float | FixedDeltaTickAge | ||
| FNiagaraDataSet | MainDataSet | Data set for the Running instance state. | |
| TOptional< float > | MaxDeltaTime | ||
| FNiagaraDataSet | PausedDataSet | Data set for the Paused instance state. | |
| TArray< FNiagaraSystemInstance * > | PendingTickGroupPromotions | List of instances that are pending a tick group promotion. | |
| TUniquePtr< FNiagaraScriptExecutionContextBase > | SpawnExecContext | ||
| FNiagaraParameterDirectBinding< float > | SpawnGlobalSpawnCountScaleParam | ||
| FNiagaraParameterDirectBinding< float > | SpawnGlobalSystemCountScaleParam | ||
| FNiagaraDataSet | SpawningDataSet | Data set for the Spawning instance state. | |
| FNiagaraDataSet | SpawnInstanceParameterDataSet | As there's a 1 to 1 relationship between system instance and their execution in this simulation we must pull all that instances parameters into a dataset for simulation. | |
| FNiagaraParameterStoreToDataSetBinding | SpawnInstanceParameterToDataSetBinding | Bindings that pull per component parameters into the spawn parameter dataset. | |
| FNiagaraParameterDirectBinding< int32 > | SpawnNumSystemInstancesParam | Direct bindings for Engine variables in System Spawn and Update scripts. | |
| UNiagaraSystem * | System | System of instances being simulated. | |
| TArray< FNiagaraSystemInstance * >[int32(ENiagaraSystemInstanceState::Num)] | SystemInstancesPerState | System instance per state. | |
| ETickingGroup | SystemTickGroup | Which tick group we are in, only valid when not in Solo mode. | |
| FNiagaraSystemTickBatch | TickBatch | Current tick batch we're filling ready for processing, potentially in an async task. | |
| FNiagaraTickInfo | TickInfo | ||
| TUniquePtr< FNiagaraScriptExecutionContextBase > | UpdateExecContext | ||
| FNiagaraParameterDirectBinding< float > | UpdateGlobalSpawnCountScaleParam | ||
| FNiagaraParameterDirectBinding< float > | UpdateGlobalSystemCountScaleParam | ||
| FNiagaraDataSet | UpdateInstanceParameterDataSet | ||
| FNiagaraParameterStoreToDataSetBinding | UpdateInstanceParameterToDataSetBinding | Bindings that pull per component parameters into the update parameter dataset. | |
| FNiagaraParameterDirectBinding< int32 > | UpdateNumSystemInstancesParam | ||
| UWorld * | World | World this system simulation belongs to. |
Constructors
| Type | Name | Description | |
|---|---|---|---|
Destructors
| Type | Name | Description | |
|---|---|---|---|
Functions
| Type | Name | Description | |
|---|---|---|---|
| void | AddInstance
(
FNiagaraSystemInstance* Instance |
||
| void | AddSystemToTickBatch
(
FNiagaraSystemInstance* Instance, |
||
| void | AddTickGroupPromotion
(
FNiagaraSystemInstance* Instance |
||
| void | AddToInstanceList
(
FNiagaraSystemInstance* Instance, |
||
| void | BuildConstantBufferTable
(
const FNiagaraGlobalParameters& GlobalParameters, |
Builds the constant buffer table for a given script execution | |
| void | Destroy () |
||
| void | DumpInstance
(
const FNiagaraSystemInstance* Inst |
||
| void | |||
| void | DumpTickInfo
(
FOutputDevice& Ar |
Dump information about all instances tick | |
| void | FlushTickBatch
(
FNiagaraSystemSimulationTickContext& Context |
||
| const FString & | |||
| FNiagaraGpuComputeDispatchInterface * | |||
| ENiagaraGPUTickHandlingMode | |||
| bool | GetIsSolo () |
||
| UNiagaraParameterCollectionInstance * | GetParameterCollectionInstance
(
UNiagaraParameterCollection* Collection |
||
| FNiagaraScriptExecutionContextBase * | |||
| UNiagaraSystem * | GetSystem () |
||
| TArray< FNiagaraSystemInstance * > & | |||
| ETickingGroup | GetTickGroup () |
||
| const FNiagaraTickInfo & | GetTickInfo () |
||
| FNiagaraScriptExecutionContextBase * | |||
| UWorld * | GetWorld () |
||
| bool | Init
(
UNiagaraSystem* InSystem, |
||
| void | InitParameterDataSetBindings
(
FNiagaraSystemInstance* SystemInst |
||
| bool | IsValid () |
||
| void | PauseInstance
(
FNiagaraSystemInstance* Instance |
||
| void | Does any prep work for system simulation such as pulling instance parameters into a dataset. | ||
| void | RemoveFromInstanceList
(
FNiagaraSystemInstance* Instance |
||
| void | RemoveInstance
(
FNiagaraSystemInstance* Instance |
||
| void | SetInstanceState
(
FNiagaraSystemInstance* Instance, |
||
| void | SetupParameters_GameThread
(
float DeltaSeconds |
Sets constant parameter values | |
| void | SimCachePostTick_Concurrent
(
float DeltaSeconds, |
Called after the sim cache has been read. | |
| void | Spawn_Concurrent
(
FNiagaraSystemSimulationTickContext& Context |
Spawn any pending instances | |
| void | Spawn_GameThread
(
float DeltaSeconds, |
Spawn any pending instances, assumes that you have update tick groups ahead of time. | |
| void | SpawnSystemInstances
(
FNiagaraSystemSimulationTickContext& Context |
Runs the system spawn script for new system instances. | |
| void | Tick_Concurrent
(
FNiagaraSystemSimulationTickContext& Context |
Second phase of system sim tick that can run on any thread. | |
| void | Tick_GameThread
(
float DeltaSeconds, |
First phase of system sim tick. Must run on GameThread. | |
| void | Tick_GameThread_Internal
(
float DeltaSeconds, |
||
| void | TransferInstance
(
FNiagaraSystemInstance* SystemInst |
Transfers a system instance from the current simulation into this one. | |
| void | Transfers the results of the system simulation into the emitter instances. | ||
| void | UnpauseInstance
(
FNiagaraSystemInstance* Instance |
||
| void | UpdateSystemInstances
(
FNiagaraSystemSimulationTickContext& Context |
Runs the system update script. | |
| void | Update TickGroups for pending instances and execute tick group promotions. | ||
| void | WaitForConcurrentTickComplete
(
bool bEnsureComplete |
Wait for system simulation concurrent tick to complete. | |
| void | WaitForInstancesTickComplete
(
bool bEnsureComplete |
Wait for system instances concurrent tick to complete. |
Constants
| Name | Description |
|---|---|
| bUseLegacyExecContexts |