UParticleModule

Windows
MacOS
Linux

Inheritance Hierarchy

UObjectBase

UObjectBaseUtility

UObject

UParticleModule

UParticleModuleAccelerationBase

UParticleModuleAcceleration

UParticleModuleAccelerationConstant

UParticleModuleAccelerationDrag

UParticleModuleAccelerationDragScaleOverLife

UParticleModuleAccelerationOverLifetime

UParticleModuleAttractorBase

UParticleModuleAttractorLine

UParticleModuleAttractorParticle

UParticleModuleAttractorPoint

UParticleModuleAttractorPointGravity

UParticleModuleBeamBase

UParticleModuleBeamModifier

UParticleModuleBeamNoise

UParticleModuleBeamSource

UParticleModuleBeamTarget

UParticleModuleCameraBase

UParticleModuleCameraOffset

UParticleModuleCollisionBase

UParticleModuleCollision

UParticleModuleCollisionGPU

UParticleModuleColorBase

UParticleModuleColor

UParticleModuleColor_Seeded

UParticleModuleColorOverLife

UParticleModuleColorScaleOverLife

UParticleModuleEventBase

UParticleModuleEventGenerator

UParticleModuleEventReceiverBase

UParticleModuleEventReceiverKillParticles

UParticleModuleEventReceiverSpawn

UParticleModuleKillBase

UParticleModuleKillBox

UParticleModuleKillHeight

UParticleModuleLifetimeBase

UParticleModuleLifetime

UParticleModuleLifetime_Seeded

UParticleModuleLightBase

UParticleModuleLight

UParticleModuleLight_Seeded

UParticleModuleLocationBase

UParticleModuleLocation

UParticleModuleLocation_Seeded

UParticleModuleLocationWorldOffset

UParticleModuleLocationWorldOffset_Seeded

UParticleModuleLocationBoneSocket

UParticleModuleLocationDirect

UParticleModuleLocationEmitter

UParticleModuleLocationEmitterDirect

UParticleModuleLocationPrimitiveBase

UParticleModuleLocationPrimitiveCylinder

UParticleModuleLocationPrimitiveCylinder_Seeded

UParticleModuleLocationPrimitiveSphere

UParticleModuleLocationPrimitiveSphere_Seeded

UParticleModuleLocationPrimitiveTriangle

UParticleModuleLocationSkelVertSurface

UParticleModulePivotOffset

UParticleModuleSourceMovement

UParticleModuleMaterialBase

UParticleModuleMeshMaterial

UParticleModuleOrbitBase

UParticleModuleOrbit

UParticleModuleOrientationBase

UParticleModuleOrientationAxisLock

UParticleModuleParameterBase

UParticleModuleParameterDynamic

UParticleModuleParameterDynamic_Seeded

UParticleModuleRequired

UParticleModuleRotationBase

UParticleModuleMeshRotation

UParticleModuleMeshRotation_Seeded

UParticleModuleRotation

UParticleModuleRotation_Seeded

UParticleModuleRotationOverLifetime

UParticleModuleRotationRateBase

UParticleModuleMeshRotationRate

UParticleModuleMeshRotationRate_Seeded

UParticleModuleMeshRotationRateMultiplyLife

UParticleModuleMeshRotationRateOverLife

UParticleModuleRotationRate

UParticleModuleRotationRate_Seeded

UParticleModuleRotationRateMultiplyLife

UParticleModuleSizeBase

UParticleModuleSize

UParticleModuleSize_Seeded

UParticleModuleSizeMultiplyLife

UParticleModuleSizeScale

UParticleModuleSizeScaleBySpeed

UParticleModuleSpawnBase

UParticleModuleSpawn

UParticleModuleSpawnPerUnit

UParticleModuleSubUVBase

UParticleModuleSubUV

UParticleModuleSubUVMovie

UParticleModuleTrailBase

UParticleModuleTrailSource

UParticleModuleTypeDataBase

UParticleModuleTypeDataAnimTrail

UParticleModuleTypeDataBeam2

UParticleModuleTypeDataGpu

UParticleModuleTypeDataMesh

UParticleModuleTypeDataRibbon

UParticleModuleVectorFieldBase

UParticleModuleVectorFieldGlobal

UParticleModuleVectorFieldLocal

UParticleModuleVectorFieldRotation

UParticleModuleVectorFieldRotationRate

UParticleModuleVectorFieldScale

UParticleModuleVectorFieldScaleOverLife

UParticleModuleVelocityBase

UParticleModuleVelocity

UParticleModuleVelocity_Seeded

UParticleModuleVelocityCone

UParticleModuleVelocityInheritParent

UParticleModuleVelocityOverLifetime

References

Module

Engine

Header

/Engine/Source/Runtime/Engine/Classes/Particles/ParticleModule.h

Include

#include "Particles/ParticleModule.h"

Syntax

class UParticleModule : public UObject

Variables

Name Description

Public variable

uint32: 1

 

b3DDrawMode

If true, the module should render its 3D visualization helper

Public variable

uint32: 1

 

bCurvesAsColor

If true, the module displays FVector curves as colors

Public variable

uint32: 1

 

bEditable

If true, the module has had editing enabled on it

Public variable

uint32: 1

 

bEnabled

If true, the module is enabled

Public variable

uint32: 1

 

bFinalUpdateModule

If true, the module performs operations on particles during final update

Public variable

uint32: 1

 

bRequiresLoopingNotification

If true, the module should be told when looping

Public variable

uint32: 1

 

bSpawnModule

If true, the module performs operations on particles during Spawning

Public variable

uint32: 1

 

bSupported3DDrawMode

If true, the module supports rendering a 3D visualization helper

Public variable

uint32: 1

 

bSupportsRandomSeed

If true, the module supports RandomSeed setting

Public variable

uint32: 1

 

bUpdateForGPUEmitter

If true, the module performs operations on particles during update and/or final update for GPU emitters

Public variable

uint32: 1

 

bUpdateModule

If true, the module performs operations on particles during Updating

Public variable

uint32: 1

 

LODDuplicate

If true, this flag indicates that auto-generation for LOD will result in an exact duplicate of the module, regardless of the percentage.

Public variable

uint8

 

LODValidity

The LOD levels this module is present in.

Public variable

FColor

 

ModuleEditorColor

The color to draw the modules curves in the curve editor.

Constructors

Name Description

Public function

UParticleModule

(
    const FObjectInitializer& ObjectIn...
)

Functions

Name Description

Public function Virtual

bool

 

AddModuleCurvesToEditor

(
    UInterpCurveEdSetup* EdSetup,
    TArray< const FCurveEdEntry* >...
)

Add all curve-editable Objects within this module to the curve editor.

Public function Virtual

void

 

AutoPopulateInstanceProperties

(
    UParticleSystemComponent* PSys...
)

Helper function used by the editor to auto-populate a placed AEmitter with any instance parameters that are utilized.

Public function Virtual

bool

 

CanTickInAnyThread()

Return false if this emitter requires a game thread tick

Public function

void

 

ChangeEditorColor

(
    FColor& Color,
    UInterpCurveEdSetup* EdSetup
)

Helper function for updating the curve editor when the module editor color changes.

Public function Virtual

void

 

CompileModule

(
    FParticleEmitterBuildInfo& Emitter...
)

Called once to compile the effects of this module on runtime simulation.

Public function Virtual

bool

 

ConvertFloatDistribution

(
    UDistributionFloat* FloatDist,
    UDistributionFloat* SourceFloa...,
    float Percentage
)

Store the given percentage of the SourceFloat distribution in the FloatDist

Public function Virtual

bool

 

ConvertVectorDistribution

(
    UDistributionVector* VectorDis...,
    UDistributionVector* SourceVec...,
    float Percentage
)

Store the given percentage of the SourceVector distribution in the VectorDist

Public function Virtual

void

 

EmitterLoopingNotify

(
    FParticleEmitterInstance* Owne...
)

Called when an emitter instance is looping...

Public function Virtual

void

 

FinalUpdate

(
    FParticleEmitterInstance* Owne...,
    int32 Offset,
    float DeltaTime
)

Called on an emitter when all other update operations have taken place INCLUDING bounding box cacluations!

Public function Virtual

UParticleMod...

 

GenerateLODModule

(
    UParticleLODLevel* SourceLODLe...,
    UParticleLODLevel* DestLODLeve...,
    float Percentage,
    bool bGenerateModuleData,
    bool bForceModuleConstruction
)

Generates a new module for LOD levels, setting the values appropriately.

Public function Virtual

bool

 

GenerateLODModuleValues

(
    UParticleModule* SourceModule,
    float Percentage,
    UParticleLODLevel* LODLevel
)

Helper function used by the editor to auto-generate LOD values from a source module and a percentage value used to scale its values.

Public function Virtual

void

 

GetCurveObjects

(
    TArray< FParticleCurvePair >& OutC...
)

Fill an array with each Object property that fulfills the FCurveEdInterface interface.

Public function Virtual Const

bool

 

GetCustomMenuEntryDisplayString

(
    int32 InEntryIndex,
    FString& OutDisplayString
)

Get the display name of the custom menu entry.

Public function Static

FText

 

GetDistributionNotAllowedOnGPUText

(
    const FString& ModuleName,
    const FString& PropertyName
)

Generates the FText to display to the user informing them that a module is using a distribution that is not allowed on GPU emitters.

Public function Static

void

 

GetDistributionsRestrictedOnGPU

(
    TArray< FString >& OutRestrictedDi...
)

Gets a list of the names of distributions not allowed on GPU emitters.

Public function Virtual Const

EModuleType

 

GetModuleType()

Retrieve the ModuleType of this module.

Public function Virtual Const

int32

 

GetNumberOfCustomMenuOptions()

Custom Cascade module menu entries support Get the number of custom entries this module has.

Public function Virtual

void

 

GetParticleParametersUtilized

(
    TArray< FString >& ParticleParamet...
)

Retrieve the distributions that use ParticleParameters in this module.

Public function Virtual

void

 

GetParticleSysParamsUtilized

(
    TArray< FString >& ParticleSysPara...
)

Retrieve the ParticleSysParams associated with this module.

Public function Virtual

FParticleRan...

 

GetRandomSeedInfo()

Retrieve the random seed info for this module.

Public function

FRandomStrea...

 

GetRandomStream

(
    FParticleEmitterInstance* Owne...
)

Retreive the random stream that should be used for the provided instance.

Public function

bool

 

IsDisplayedInCurveEd

(
    UInterpCurveEdSetup* EdSetup
)

Are the modules curves displayed in the curve editor?

Public function Static

bool

 

IsDistributionAllowedOnGPU

(
    const UDistribution* Distribut...
)

Checks if a distribution is allowed on the GPU.

Public function Virtual

bool

 

IsSizeMultiplyLife()

Returns whether the module is SizeMultipleLife or not.

Public function Const

bool

 

IsUsedInGPUEmitter()

Returns whether this module is used in any GPU emitters.

Public function Virtual Const

bool

 

IsUsedInLODLevel

(
    int32 SourceLODIndex
)

Returns true if the module validiy flags indicate this module is used in the given LOD level.

Public function Virtual

bool

 

IsValidForLODLevel

(
    UParticleLODLevel* LODLevel,
    FString& OutErrorString
)

Returns true if the module is valid for the provided LOD level.

Public function

bool

 

ModuleHasCurves()

Does the module contain curves?

Public function Virtual

bool

 

PerformCustomMenuEntry

(
    int32 InEntryIndex
)

Perform the custom menu entry option.

Public function Virtual

uint32

 

PrepPerInstanceBlock

(
    FParticleEmitterInstance* Owne...,
    void* InstData
)

Allows the module to prep its 'per-instance' data block.

Public function Virtual

uint32

 

PrepRandomSeedInstancePayload

(
    FParticleEmitterInstance* Owne...,
    FParticleRandomSeedInstancePayload ...,
    const FParticleRandomSeedInfo& InR...
)

Prepare a random seed instance payload...

Public function Virtual

void

 

RefreshModule

(
    UInterpCurveEdSetup* EdSetup,
    UParticleEmitter* InEmitter,
    int32 InLODLevel
)

Refresh the module...

Public function

void

 

RemoveModuleCurvesFromEditor

(
    UInterpCurveEdSetup* EdSetup
)

Remove all curve-editable Objects within this module from the curve editor.

Public function Virtual

void

 

Render3DPreview

(
    FParticleEmitterInstance* Owne...,
    const FSceneView* View,
    FPrimitiveDrawInterface* PDI
)

Render the modules 3D visualization helper primitive.

Public function Virtual

uint32

 

RequiredBytes

(
    UParticleModuleTypeDataBase* T...
)

Returns the number of bytes that the module requires in the particle payload block.

Public function Virtual

uint32

 

RequiredBytesPerInstance()

Returns the number of bytes the module requires in the emitters 'per-instance' data block.

Public function Const

bool

 

RequiresLoopingNotification()

Returns whether the module requires notification when an emitter loops.

Public function Virtual

bool

 

SetRandomSeedEntry

(
    int32 InIndex,
    int32 InRandomSeed
)

Set the random seed info entry at the given index to the given seed

Public function Virtual

void

 

SetToSensibleDefaults

(
    UParticleEmitter* Owner
)

For Cascade.

Public function

void

 

SetTransactionFlag()

Set the transaction flag on the module and any members which require it

Public function Virtual

void

 

Spawn

(
    FParticleEmitterInstance* Owne...,
    int32 Offset,
    float SpawnTime,
    FBaseParticle* ParticleBase
)

Called on a particle that is freshly spawned by the emitter.

Public function Const

bool

 

SupportsRandomSeed()

Returns whether the module supports the RandomSeed functionality

Public function Virtual Const

bool

 

TouchesMeshRotation()

Return true if this module impacts rotation of Mesh emitters

Public function Virtual

void

 

Update

(
    FParticleEmitterInstance* Owne...,
    int32 Offset,
    float DeltaTime
)

Called on a particle that is being updated by its emitter.

Public function Virtual

bool

 

WillGeneratedModuleBeIdentical

(
    UParticleLODLevel* SourceLODLe...,
    UParticleLODLevel* DestLODLeve...,
    float Percentage
)

Returns true if the results of LOD generation for the given percentage will result in a duplicate of the module.

Overridden from UObject

Name Description

Public function Virtual Const

bool

 

IsPostLoadThreadSafe()

Called during async load to determine if PostLoad can be called on the loading thread.

Public function Virtual

void

 

PostEditChangeProperty

(
    FPropertyChangedEvent& PropertyCha...
)

Called when a property on this object has been modified externally

Public function Virtual

void

 

PostLoadSubobjects

(
    FObjectInstancingGraph* OuterI...
)

Instances components for objects being loaded from disk, if necessary.

Deprecated Functions

Name Description

Public function Virtual

uint32

 

RequiredBytes

(
    FParticleEmitterInstance* Owne...
)

RequiredBytes now takes a UParticleModuleTypeDataBase*, not per-instance information.

Public function Virtual

uint32

 

RequiredBytesPerInstance

(
    FParticleEmitterInstance* Owne...
)

RequiredBytesPerInstance no longer takes per-instance information.

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback