Navigation
API > API/Runtime > API/Runtime/Engine
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.
| Name | UParticleSystem |
| Type | class |
| Header File | /Engine/Source/Runtime/Engine/Classes/Particles/ParticleSystem.h |
| Include Path | #include "Particles/ParticleSystem.h" |
Syntax
UCLASS (HideCategories=Object, MinimalAPI, BlueprintType)
class UParticleSystem : public UFXSystemAsset
Inheritance Hierarchy
- UObjectBase → UObjectBaseUtility → UObject → UFXSystemAsset → UParticleSystem
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
| Particles/ParticleSystem.h | |||
UParticleSystem
(
const FObjectInitializer& ObjectInitializer |
Particles/ParticleSystem.h |
Variables
Public
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| BackgroundColor | FColor | The background color to display in Cascade | Particles/ParticleSystem.h | |
| bAllowManagedTicking | uint8 | Particles/ParticleSystem.h |
|
|
| bAutoDeactivate | uint8 | Particles/ParticleSystem.h |
|
|
| bHasPhysics | uint8 | Set during load time to indicate that physics is used... | Particles/ParticleSystem.h |
|
| bOrientZAxisTowardCamera | uint8 | If true, the system's Z axis will be oriented toward the camera | Particles/ParticleSystem.h |
|
| bRegenerateLODDuplicate | uint8 | Internal value that tracks the regenerate LOD levels preference. | Particles/ParticleSystem.h | |
| bShouldResetPeakCounts | uint8 | EDITOR ONLY: Indicates that Cascade would like to have the PeakActiveParticles count reset | Particles/ParticleSystem.h | |
| bUseDelayRange | uint8 | If true, select the emitter delay from the range [DelayLow..Delay] | Particles/ParticleSystem.h |
|
| bUseFixedRelativeBoundingBox | uint8 | Whether to use the fixed relative bounding box or calculate it every frame. | Particles/ParticleSystem.h |
|
| bUseRealtimeThumbnail | uint8 | Inidicates the old 'real-time' thumbnail rendering should be used | Particles/ParticleSystem.h |
|
| CurveEdSetup | TObjectPtr< UInterpCurveEdSetup > | Used for curve editor to remember curve-editing setup. | Particles/ParticleSystem.h |
|
| CustomOcclusionBounds | FBox | The occlusion bounds to use if OcclusionBoundsMethod is set to EPSOBM_CustomBounds | Particles/ParticleSystem.h |
|
| Delay | float | How long this Particle system should delay when ActivateSystem is called on it. | Particles/ParticleSystem.h |
|
| DelayLow | float | The low end of the emitter delay if using a range. | Particles/ParticleSystem.h |
|
| EditorLODSetting | int32 | LOD setting for intepolation (set by Cascade) Range [0..100] | Particles/ParticleSystem.h | |
| Emitters | TArray< TObjectPtr< UParticleEmitter > > | Emitters - internal - the array of emitters in the system | Particles/ParticleSystem.h |
|
| FixedRelativeBoundingBox | FBox | Fixed relative bounding box for particle system. | Particles/ParticleSystem.h |
|
| FloorMesh | FString | Cascade 'floor' mesh information. | Particles/ParticleSystem.h | |
| FloorPosition | FVector | Particles/ParticleSystem.h | ||
| FloorRotation | FRotator | Particles/ParticleSystem.h | ||
| FloorScale | float | Particles/ParticleSystem.h | ||
| FloorScale3D | FVector | Particles/ParticleSystem.h | ||
| InsignificanceDelay | float | Time delay between all emitters becoming insignificant and the systems insignificant reaction. | Particles/ParticleSystem.h |
|
| InsignificantReaction | EParticleSystemInsignificanceReaction | The reaction this system takes when all emitters are insignificant. | Particles/ParticleSystem.h |
|
| LODDistanceCheckTime | float | LOD How often (in seconds) the system should perform the LOD distance check. | Particles/ParticleSystem.h |
|
| LODDistances | TArray< float > | The array of distances for each LOD level in the system. | Particles/ParticleSystem.h |
|
| LODMethod | TEnumAsByte< enum ParticleSystemLODMethod > | The method of LOD level determination to utilize for this particle system PARTICLESYSTEMLODMETHOD_Automatic - Automatically set the LOD level, checking every LODDistanceCheckTime seconds. | Particles/ParticleSystem.h |
|
| LODSettings | TArray< FParticleSystemLOD > | Particles/ParticleSystem.h |
|
|
| MacroUVPosition | FVector | Local space position that UVs generated with the ParticleMacroUV material node will be centered on. | Particles/ParticleSystem.h |
|
| MacroUVRadius | float | World space radius that UVs generated with the ParticleMacroUV material node will tile based on. | Particles/ParticleSystem.h |
|
| MaxSignificanceLevel | EParticleSignificanceLevel | The maximum level of significance for emitters in this system. | Particles/ParticleSystem.h |
|
| MinTimeBetweenTicks | uint32 | Particles/ParticleSystem.h |
|
|
| NamedMaterialSlots | TArray< FNamedEmitterMaterial > | Array of named material slots for use by emitters of this system. | Particles/ParticleSystem.h |
|
| OcclusionBoundsMethod | TEnumAsByte< enum EParticleSystemOcclusionBoundsMethod > | Which occlusion bounds method to use for this particle system. | Particles/ParticleSystem.h |
|
| PreviewComponent | TObjectPtr< UParticleSystemComponent > | The component used to preview the particle system in Cascade | Particles/ParticleSystem.h |
|
| SecondsBeforeInactive | float | Number of seconds of emitter not being rendered that need to pass before it no longer gets ticked/ becomes inactive. | Particles/ParticleSystem.h |
|
| SoloTracking | TArray< struct FLODSoloTrack > | Particles/ParticleSystem.h |
|
|
| SystemUpdateMode | TEnumAsByte< enum EParticleSystemUpdateMode > | Particles/ParticleSystem.h |
|
|
| ThumbnailAngle | FRotator | The angle to use when rendering the thumbnail image | Particles/ParticleSystem.h | |
| ThumbnailDistance | float | The distance to place the system when rendering the thumbnail image | Particles/ParticleSystem.h | |
| ThumbnailImage | TObjectPtr< class UTexture2D > | Internal: The PSys thumbnail image | Particles/ParticleSystem.h | |
| ThumbnailImageOutOfDate | uint8 | Internal: Indicates the PSys thumbnail image is out of date | Particles/ParticleSystem.h | |
| ThumbnailWarmup | float | The time to warm-up the system for the thumbnail image | Particles/ParticleSystem.h |
|
| UpdateTime_Delta | float | UpdateTime_Delta - internal | Particles/ParticleSystem.h | |
| UpdateTime_FPS | float | UpdateTime_FPS - the frame per second to update at in FixedTime mode | Particles/ParticleSystem.h |
|
| WarmupTickRate | float | WarmupTickRate - the time step for each tick during warm up. | Particles/ParticleSystem.h |
|
| WarmupTime | float | WarmupTime - the time to warm-up the particle system when first rendered | Particles/ParticleSystem.h |
|
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| bAnyEmitterLoopsForever | uint8 | Does any emitter loop forever? | Particles/ParticleSystem.h | |
| bIsElligibleForAsyncTick | uint8 | If true, this psys can tick in any thread | Particles/ParticleSystem.h | |
| bIsElligibleForAsyncTickComputed | uint8 | If true, bIsElligibleForAsyncTick is set up | Particles/ParticleSystem.h | |
| bIsImmortal | uint8 | Does any emitter never die due to infinite looping AND indefinite duration? | Particles/ParticleSystem.h | |
| bShouldManageSignificance | uint8 | Particles/ParticleSystem.h | ||
| bWillBecomeZombie | uint8 | Does any emitter ever become a zombie (is immortal AND stops spawning at some point, i.e. is burst only)? | Particles/ParticleSystem.h | |
| HighestSignificance | EParticleSignificanceLevel | The highest significance of any emitter. Clamped by MaxSignificanceLevel. | Particles/ParticleSystem.h | |
| LowestSignificance | EParticleSignificanceLevel | The lowest significance of any emitter. Clamped by MaxSignificanceLevel. | Particles/ParticleSystem.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
bool AllowManagedTicking() |
Particles/ParticleSystem.h | ||
void BuildEmitters() |
Builds all emitters in the particle system. | Particles/ParticleSystem.h | |
virtual bool CalculateMaxActiveParticleCounts () |
CalculateMaxActiveParticleCounts Determine the maximum active particles that could occur with each emitter. | Particles/ParticleSystem.h | |
bool CanBePooled() |
Particles/ParticleSystem.h | ||
bool CanTickInAnyThread() |
Return true if this psys can tick in any thread | Particles/ParticleSystem.h | |
void ComputeCanTickInAnyThread() |
Decide if this psys can tick in any thread, and set bIsElligibleForAsyncTick | Particles/ParticleSystem.h | |
bool ContainsEmitterType
(
UClass* TypeData |
Returns true if this system contains an emitter of the pasesd type. | Particles/ParticleSystem.h |
|
bool DoesAnyEmitterHaveMotionBlur
(
int32 LODLevelIndex |
Checks if any of the emitters have motion blur at a specific lod level. | Particles/ParticleSystem.h | |
virtual enum ParticleSystemLODMethod GetCurrentLODMethod() |
Return the currently set LOD method | Particles/ParticleSystem.h | |
EParticleSignificanceLevel GetHighestSignificance() |
Particles/ParticleSystem.h | ||
virtual float GetLODDistance
(
int32 LODLevelIndex |
Return the distance for the given LOD level | Particles/ParticleSystem.h | |
virtual int32 GetLODLevelCount() |
Return the number of LOD levels for this particle system | Particles/ParticleSystem.h | |
EParticleSignificanceLevel GetLowestSignificance() |
Particles/ParticleSystem.h | ||
| Retrieve the parameters associated with this particle system. | Particles/ParticleSystem.h | ||
bool HasGPUEmitter() |
Returns true if this system contains any GPU emitters. | Particles/ParticleSystem.h | |
bool IsImmortal() |
Particles/ParticleSystem.h | ||
bool IsLooping() |
Returns true if the particle system is looping (contains one or more looping emitters) | Particles/ParticleSystem.h | |
void PrecachePSOs() |
Particles/ParticleSystem.h | ||
| Remove all duplicate modules. | Particles/ParticleSystem.h | ||
virtual void SetCurrentLODMethod
(
ParticleSystemLODMethod InMethod |
Set the LOD method | Particles/ParticleSystem.h | |
void SetDelay
(
float InDelay |
Set the time to delay spawning the particle system | Particles/ParticleSystem.h | |
virtual bool SetLODDistance
(
int32 LODLevelIndex, |
Set the distance for the given LOD index | Particles/ParticleSystem.h | |
void SetupLODValidity() |
Editor helper function for setting the LOD validity flags used in Cascade. | Particles/ParticleSystem.h | |
void SetupSoloing() |
Setup the soloing information... Obliterates all current soloing. | Particles/ParticleSystem.h | |
bool ShouldManageSignificance() |
Particles/ParticleSystem.h | ||
bool ToggleSoloing
(
UParticleEmitter* InEmitter |
Toggle the bIsSoloing flag on the given emitter. | Particles/ParticleSystem.h | |
bool TurnOffSoloing() |
Turn soloing off completely - on every emitter | Particles/ParticleSystem.h | |
void UpdateAllModuleLists() |
Update all emitter module lists | Particles/ParticleSystem.h | |
void UpdateColorModuleClampAlpha
(
UParticleModuleColorBase* ColorModule |
Particles/ParticleSystem.h | ||
bool UsesCPUCollision() |
Particles/ParticleSystem.h | ||
bool WillBecomeZombie() |
Particles/ParticleSystem.h |
Overridden from UObject
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void GetAssetRegistryTags
(
TArray< FAssetRegistryTag >& OutTags |
Particles/ParticleSystem.h | ||
virtual void GetAssetRegistryTags
(
FAssetRegistryTagsContext Context |
Particles/ParticleSystem.h | ||
virtual bool IsPostLoadThreadSafe() |
Particles/ParticleSystem.h | ||
virtual void PostEditChangeProperty
(
FPropertyChangedEvent& PropertyChangedEvent |
Particles/ParticleSystem.h | ||
virtual void PostLoad() |
Particles/ParticleSystem.h | ||
virtual void PreSave
(
FObjectPreSaveContext ObjectSaveContext |
Particles/ParticleSystem.h | ||
virtual void Serialize
(
FArchive& Ar |
Particles/ParticleSystem.h |
Overridden from UObjectBaseUtility
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual bool CanBeClusterRoot() |
Particles/ParticleSystem.h |