Navigation
API > API/Runtime > API/Runtime/Engine > API/Runtime/Engine/Particles
Inheritance Hierarchy
- UObjectBase
- UObjectBaseUtility
- UObject
- UFXSystemAsset
- UParticleSystem
References
| Module | Engine |
| Header | /Engine/Source/Runtime/Engine/Classes/Particles/ParticleSystem.h |
| Include | #include "Particles/ParticleSystem.h" |
Syntax
class UParticleSystem : public UFXSystemAsset
Remarks
A ParticleSystem is a complete particle effect that contains any number of ParticleEmitters. By allowing multiple emitters in a system, the designer can create elaborate particle effects that are held in a single system. Once created using Cascade, a ParticleSystem can then be inserted into a level or created in script.
Variables
| Type | Name | Description | |
|---|---|---|---|
| FColor | BackgroundColor | The background color to display in Cascade | |
| uint8: 1 | bAllowManagedTicking | ||
| uint8: 1 | bAutoDeactivate | ||
| uint8: 1 | bHasPhysics | Set during load time to indicate that physics is used... | |
| uint8: 1 | bOrientZAxisTowardCamera | If true, the system's Z axis will be oriented toward the camera | |
| uint8: 1 | bRegenerateLODDuplicate | Internal value that tracks the regenerate LOD levels preference. | |
| uint8: 1 | bShouldResetPeakCounts | EDITOR ONLY: Indicates that Cascade would like to have the PeakActiveParticles count reset | |
| uint8: 1 | bUseDelayRange | If true, select the emitter delay from the range [DelayLow..Delay] | |
| uint8: 1 | bUseFixedRelativeBoundingBox | Whether to use the fixed relative bounding box or calculate it every frame. | |
| uint8: 1 | bUseRealtimeThumbnail | Inidicates the old 'real-time' thumbnail rendering should be used | |
| TObjectPtr< UInterpCurveEdSetup > | CurveEdSetup | Used for curve editor to remember curve-editing setup. | |
| FBox | CustomOcclusionBounds | The occlusion bounds to use if OcclusionBoundsMethod is set to EPSOBM_CustomBounds | |
| float | Delay | How long this Particle system should delay when ActivateSystem is called on it. | |
| float | DelayLow | The low end of the emitter delay if using a range. | |
| int32 | EditorLODSetting | LOD setting for intepolation (set by Cascade) Range [0..100] | |
| TArray< TObjectPtr< UParticleEmitter > > | Emitters | Emitters - internal - the array of emitters in the system | |
| FBox | FixedRelativeBoundingBox | Fixed relative bounding box for particle system. | |
| FString | FloorMesh | Cascade 'floor' mesh information. | |
| FVector | FloorPosition | ||
| FRotator | FloorRotation | ||
| float | FloorScale | ||
| FVector | FloorScale3D | ||
| float | InsignificanceDelay | Time delay between all emitters becoming insignificant and the systems insignificant reaction. | |
| EParticleSystemInsignificanceReaction | InsignificantReaction | The reaction this system takes when all emitters are insignificant. | |
| float | LODDistanceCheckTime | LOD How often (in seconds) the system should perform the LOD distance check. | |
| TArray< float > | LODDistances | The array of distances for each LOD level in the system. | |
| TEnumAsByte< enum ParticleSystemLODMethod > | LODMethod | The method of LOD level determination to utilize for this particle system PARTICLESYSTEMLODMETHOD_Automatic - Automatically set the LOD level, checking every LODDistanceCheckTime seconds. | |
| TArray< FParticleSystemLOD > | LODSettings | ||
| FVector | MacroUVPosition | Local space position that UVs generated with the ParticleMacroUV material node will be centered on. | |
| float | MacroUVRadius | World space radius that UVs generated with the ParticleMacroUV material node will tile based on. | |
| EParticleSignificanceLevel | MaxSignificanceLevel | The maximum level of significance for emitters in this system. | |
| uint32 | MinTimeBetweenTicks | ||
| TArray< FNamedEmitterMaterial > | NamedMaterialSlots | Array of named material slots for use by emitters of this system. | |
| TEnumAsByte< enum EParticleSystemOcclusionBoundsMethod > | OcclusionBoundsMethod | Which occlusion bounds method to use for this particle system. | |
| TObjectPtr< UParticleSystemComponent > | PreviewComponent | The component used to preview the particle system in Cascade | |
| float | SecondsBeforeInactive | Number of seconds of emitter not being rendered that need to pass before it no longer gets ticked/ becomes inactive. | |
| TArray< struct FLODSoloTrack > | SoloTracking | ||
| TEnumAsByte< enum EParticleSystemUpdateMode > | SystemUpdateMode | ||
| FRotator | ThumbnailAngle | The angle to use when rendering the thumbnail image | |
| float | ThumbnailDistance | The distance to place the system when rendering the thumbnail image | |
| TObjectPtr< class UTexture2D > | ThumbnailImage | Internal: The PSys thumbnail image | |
| uint8: 1 | ThumbnailImageOutOfDate | Internal: Indicates the PSys thumbnail image is out of date | |
| float | ThumbnailWarmup | The time to warm-up the system for the thumbnail image | |
| float | UpdateTime_Delta | UpdateTime_Delta - internal | |
| float | UpdateTime_FPS | UpdateTime_FPS - the frame per second to update at in FixedTime mode | |
| float | WarmupTickRate | WarmupTickRate - the time step for each tick during warm up. | |
| float | WarmupTime | WarmupTime - the time to warm-up the particle system when first rendered Warning: WarmupTime is implemented by simulating the particle system for the time requested upon activation. |
Constructors
| Type | Name | Description | |
|---|---|---|---|
UParticleSystem
(
const FObjectInitializer& ObjectInitializer |
Functions
| Type | Name | Description | |
|---|---|---|---|
| bool | |||
| void | Builds all emitters in the particle system. | ||
| bool | CalculateMaxActiveParticleCounts Determine the maximum active particles that could occur with each emitter. | ||
| bool | CanBePooled () |
||
| bool | Return true if this psys can tick in any thread | ||
| void | Decide if this psys can tick in any thread, and set bIsElligibleForAsyncTick | ||
| bool | ContainsEmitterType
(
UClass* TypeData |
Returns true if this system contains an emitter of the pasesd type. | |
| bool | DoesAnyEmitterHaveMotionBlur
(
int32 LODLevelIndex |
Checks if any of the emitters have motion blur at a specific lod level. | |
| enum ParticleSystemLODMethod | Return the currently set LOD method | ||
| EParticleSignificanceLevel | |||
| float | GetLODDistance
(
int32 LODLevelIndex |
Return the distance for the given LOD level | |
| int32 | Return the number of LOD levels for this particle system | ||
| EParticleSignificanceLevel | |||
| void | Retrieve the parameters associated with this particle system. | ||
| bool | Returns true if this system contains any GPU emitters. | ||
| bool | IsImmortal () |
||
| bool | IsLooping () |
Returns true if the particle system is looping (contains one or more looping emitters) | |
| void | PrecachePSOs () |
||
| bool | RemoveAllDuplicateModules
(
bool bInMarkForCooker, |
Remove all duplicate modules. | |
| void | SetCurrentLODMethod
(
ParticleSystemLODMethod InMethod |
Set the LOD method | |
| void | SetDelay
(
float InDelay |
Set the time to delay spawning the particle system | |
| bool | SetLODDistance
(
int32 LODLevelIndex, |
Set the distance for the given LOD index | |
| void | Editor helper function for setting the LOD validity flags used in Cascade. | ||
| void | SetupSoloing () |
Setup the soloing information... Obliterates all current soloing. | |
| bool | |||
| bool | ToggleSoloing
(
UParticleEmitter* InEmitter |
Toggle the bIsSoloing flag on the given emitter. | |
| bool | Turn soloing off completely - on every emitter | ||
| void | Update all emitter module lists | ||
| void | UpdateColorModuleClampAlpha
(
UParticleModuleColorBase* ColorModule |
||
| bool | |||
| bool |
Overridden from UObject
| Type | Name | Description | |
|---|---|---|---|
| void | GetAssetRegistryTags
(
TArray< FAssetRegistryTag >& OutTags |
Gathers a list of asset registry searchable tags which are name/value pairs with some type information This only needs to be implemented for asset objects | |
| bool | Called during async load to determine if PostLoad can be called on the loading thread. | ||
| void | PostEditChangeProperty
(
FPropertyChangedEvent& PropertyChangedEvent |
Called when a property on this object has been modified externally | |
| void | PostLoad () |
Do any object-specific cleanup required immediately after loading an object. | |
| void | PreSave
(
FObjectPreSaveContext SaveContext |
Presave function. | |
| void | Handles reading, writing, and reference collecting using FArchive. |
Overridden from UObjectBaseUtility
| Type | Name | Description | |
|---|---|---|---|
| bool | Called after load to determine if the object can be a cluster root |
Deprecated Functions
| Type | Name | Description | |
|---|---|---|---|
| PRAGMA_DISABLE_DEPRECATION_WARNINGSvoid | PreSave
(
const ITargetPlatform* TargetPlatform |
Use version that takes FObjectPreSaveContext instead. |