UParticleModuleLocationBoneSocket

Choose your operating system:

Windows

macOS

Linux

Inheritance Hierarchy

References

Module

Engine

Header

/Engine/Source/Runtime/Engine/Classes/Particles/Location/ParticleModuleLocationBoneSocket.h

Include

#include "Particles/Location/ParticleModuleLocationBoneSocket.h"

Syntax

class UParticleModuleLocationBoneSocket : public UParticleModuleLocationBase

Variables

Name Description

Public variable

uint32: 1

 

bInheritBoneVelocity

If true, particles inherit the associated bone velocity when spawned

Public variable

uint32: 1

 

bOrientMeshEmitters

If true, rotate mesh emitter meshes to orient w/ the socket. Currently does nothing.

Public variable

uint32: 1

 

bUpdatePositionEachFrame

If true, update the particle locations each frame with that of the bone/socket

Public variable

TObjectPtr< cla...

 

EditorSkelMesh

The name of the skeletal mesh to use in the editor

Public variable

float

 

InheritVelocityScale

A scale on how much of the bone's velocity a particle will inherit.

Public variable

int32

 

NumPreSelectedIndices

When we have no source locations and we need to track bone velocities due to bInheritBoneVelocity, we pre select a set of bones to use each frame.

Public variable

TEnumAsByte< en...

 

SelectionMethod

The method by which to select the bone/socket to spawn at.

Public variable

FName

 

SkelMeshActorParamName

The parameter name of the skeletal mesh actor that supplies the SkelMeshComponent for in-game.

Public variable

EBoneSocketSour...

 

SourceIndexMode

How particle SourceIndex should be interpreted.

Public variable

TArray< struct ...

 

SourceLocations

The name(s) of the bone/socket(s) to position at.

Public variable

TEnumAsByte< en...

 

SourceType

Whether the module uses Bones or Sockets for locations.

Public variable

FVector

 

UniversalOffset

An offset to apply to each bone/socket

Constructors

Name Description

Public function

UParticleModuleLocationBoneSocket

(
    const FObjectInitializer& ObjectIn...
)

Functions

Name Description

Public function Const

bool

 

GetBoneInfoForSourceIndex

(
    FModuleLocationBoneSocketInstancePa...,
    USkeletalMeshComponent* Source...,
    int32 SourceIndex,
    FMatrix& OutBoneMatrix,
    FVector& OutOffset
)

Public function Const

int32

 

GetMaxSourceIndex

Public function

bool

 

GetParticleLocation

(
    FModuleLocationBoneSocketInstancePa...,
    FParticleEmitterInstance* Owne...,
    USkeletalMeshComponent* InSkel...,
    int32 InBoneSocketIndex,
    FVector& OutPosition,
    FQuat* OutRotation
)

Retrieve the position for the given socket index.

Public function

void

 

GetSkeletalMeshComponentSource

Retrieve the skeletal mesh component source to use for the current emitter instance.

Public function Const

bool

 

GetSocketInfoForSourceIndex

(
    FModuleLocationBoneSocketInstancePa...,
    USkeletalMeshComponent* Source...,
    int32 SourceIndex,
    USkeletalMeshSocket*& OutSocke...,
    FVector& OutOffset
)

Public function Const

bool

 

InheritingBoneVelocity()

If we're updating our position each frame, there's no point in inheriting bone velocity.

Public function

void

 

RegeneratePreSelectedIndices

(
    FModuleLocationBoneSocketInstancePa...,
    USkeletalMeshComponent* Source...,
    FRandomStream& InRandomStream
)

Public function

int32

 

SelectNextSpawnIndex

(
    FModuleLocationBoneSocketInstancePa...,
    USkeletalMeshComponent* Source...,
    FRandomStream& InRandomStream
)

Selects the next socket or bone index to spawn from.

Public function

void

 

SetSourceIndexMode()

Public function

void

 

UpdatePrevBoneLocationsAndVelocities

(
    FModuleLocationBoneSocketInstancePa...,
    USkeletalMeshComponent* Source...,
    float DeltaTime
)

Public function Static

void

 

ValidateLODLevels

(
    UParticleEmitter* Emitter,
    int32 iModule
)

Validate that all LOD levels will not have issues with indexing into SourceLocations

Overridden from UParticleModule

Name Description

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 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 Const

bool

 

GetCustomMenuEntryDisplayString

(
    int32 InEntryIndex,
    FString& OutDisplayString
)

Get the display name of the custom menu entry.

Public function Virtual Const

int32

 

GetNumberOfCustomMenuOptions()

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

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

 

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 Virtual

void

 

Spawn

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

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

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.

Overridden from UObject

Name Description

Public function Virtual

void

 

PostEditChangeProperty

(
    FPropertyChangedEvent& PropertyCha...
)

Called when a property on this object has been modified externally

Public function Virtual

void

 

PostLoad()

Do any object-specific cleanup required immediately after loading an object.