UNiagaraDataInterfaceSkeletalMesh

Data Interface allowing sampling of skeletal meshes.

Choose your operating system:

Windows

macOS

Linux

Inheritance Hierarchy

References

Module

Niagara

Header

/Engine/Plugins/FX/Niagara/Source/Niagara/Classes/NiagaraDataInterfaceSkeletalMesh.h

Include

#include "NiagaraDataInterfaceSkeletalMesh.h"

Syntax

UCLASS(EditInlineNew, Category="Meshes", Meta=(DisplayName="Skeletal Mesh"))
class UNiagaraDataInterfaceSkeletalMesh : public UNiagaraDataInterface

Remarks

Data Interface allowing sampling of skeletal meshes.

Variables

Name Description

Public variable UProperty Category, EditAnywhere, Meta

uint8: 1

 

bExcludeBone

Public variable UProperty Category, EditAnywhere

bool

 

bRequireCurrentFrameData

When this option is disabled, we use the previous frame's data for the skeletal mesh and can often issue the simulation early.

Public variable

uint32

 

ChangeId

Cached change id off of the data interface.

Public variable UProperty Category, EditAnywhere, Meta

FName

 

ExcludeBoneName

Optionally remove a single bone from Random / Random Unfiltered access.

Public variable UProperty Category, EditAnywhere

TArray< FName >

 

FilteredBones

Set of filtered bones that can be used for sampling.

Public variable UProperty Category, EditAnywhere

TArray< FName >

 

FilteredSockets

Set of filtered sockets that can be used for sampling.

Public variable UProperty Category, EditAnywhere

FNiagaraUserPar...

 

MeshUserParameter

Reference to a user parameter if we're reading one.

Public variable UProperty Category, EditAnywhere, Meta

TSoftObjectPtr<...

 

PreviewMesh

Mesh used to sample from when not overridden by a source actor from the scene.

Public variable UProperty Category, EditAnywhere

TArray< FName >

 

SamplingRegions

Sampling regions on the mesh from which to sample. Leave this empty to sample from the whole mesh.

Public variable UProperty Category, EditAnywhere

ENDISkeletalMes...

 

SkinningMode

Selects which skinning mode to use, for most cases Skin On The Fly will cover your requirements, see individual tooltips for more information.

Public variable UProperty Category, EditAnywhere

TObjectPtr< AAc...

 

Source

The source actor from which to sample.

Public variable UProperty Transient

TObjectPtr< USk...

 

SourceComponent

The source component from which to sample.

Public variable UProperty Category, EditAnywhere

ENDISkeletalMes...

 

SourceMode

Controls how to retrieve the Skeletal Mesh Component to attach to.

Public variable UProperty Category, EditAnywhere

int32

 

UvSetIndex

Public variable UProperty Category, EditAnywhere

int32

 

WholeMeshLOD

If no regions are specified, we'll sample the whole mesh at this LODIndex.

Constructors

Name Description

Public function

UNiagaraDataInterfaceSkeletalMesh

(
    const FObjectInitializer& ObjectIn...
)

Functions

Name Description

Public function

void

 

BindSkeletonSamplingFunction

(
    const FVMExternalFunctionBindingInf...,
    FNDISkeletalMesh_InstanceData*...,
    FVMExternalFunction& OutFunc
)

Public function

void

 

BindTriangleSamplingFunction

(
    const FVMExternalFunctionBindingInf...,
    FNDISkeletalMesh_InstanceData*...,
    FVMExternalFunction& OutFunc
)

Public function

void

 

BindVertexSamplingFunction

(
    const FVMExternalFunctionBindingInf...,
    FNDISkeletalMesh_InstanceData*...,
    FVMExternalFunction& OutFunc
)

Public function Const

int32

 

CalculateLODIndexAndSamplingRegions

(
    USkeletalMesh* InMesh,
    TArray< int32 >& OutSamplingRegion...,
    bool& OutAllRegionsAreAreaWeightin...
)

Public function

void

 

GetBoneCount

Public function

void

 

GetFilteredBoneAt

Public function

void

 

GetFilteredBoneCount

Public function

void

 

GetFilteredSocketBoneAt

Public function

void

 

GetFilteredSocketCount

Public function

void

 

GetFilteredSocketOrBoneBoneAt

Public function

void

 

GetFilteredSocketOrBoneCount

Public function

void

 

GetFilteredSocketTransform

Public function

int32

 

GetFilteredTriangleAt

(
    FSkeletalMeshAccessorHelper& Acces...,
    FNDISkeletalMesh_InstanceData*...,
    int32 FilteredIndex
)

Public function

int32

 

GetFilteredTriangleAt

(
    FSkeletalMeshAccessorHelper& Acces...,
    FNDISkeletalMesh_InstanceData*...,
    int32 FilteredIndex
)

Public function

int32

 

GetFilteredTriangleAt

(
    FSkeletalMeshAccessorHelper& Acces...,
    FNDISkeletalMesh_InstanceData*...,
    int32 FilteredIndex
)

Public function

int32

 

GetFilteredTriangleAt

(
    FSkeletalMeshAccessorHelper& Acces...,
    FNDISkeletalMesh_InstanceData*...,
    int32 FilteredIndex
)

Public function

int32

 

GetFilteredTriangleAt

(
    FSkeletalMeshAccessorHelper& Acces...,
    FNDISkeletalMesh_InstanceData*...,
    int32 FilteredIndex
)

Public function

int32

 

GetFilteredTriangleAt

(
    FSkeletalMeshAccessorHelper& Acces...,
    FNDISkeletalMesh_InstanceData*...,
    int32 FilteredIndex
)

Public function

void

 

GetFilteredTriangleAt

Public function

int32

 

GetFilteredTriangleCount

Public function

int32

 

GetFilteredTriangleCount

Public function

int32

 

GetFilteredTriangleCount

Public function

int32

 

GetFilteredTriangleCount

Public function

void

 

GetFilteredTriangleCount

Public function

int32

 

GetFilteredTriangleCount

Public function

int32

 

GetFilteredTriangleCount

Public function

int32

 

GetFilteredVertexAt

(
    FSkeletalMeshAccessorHelper& Acces...,
    FNDISkeletalMesh_InstanceData*...,
    int32 FilteredIndex
)

Public function

void

 

GetFilteredVertexAt

Public function

int32

 

GetFilteredVertexAt

(
    FSkeletalMeshAccessorHelper& Acces...,
    FNDISkeletalMesh_InstanceData*...,
    int32 FilteredIndex
)

Public function

int32

 

GetFilteredVertexAt

(
    FSkeletalMeshAccessorHelper& Acces...,
    FNDISkeletalMesh_InstanceData*...,
    int32 FilteredIndex
)

Public function

void

 

GetFilteredVertexCount

Public function

int32

 

GetFilteredVertexCount

Public function

int32

 

GetFilteredVertexCount

Public function

int32

 

GetFilteredVertexCount

Public function

void

 

GetParentBone

Public function

USkeletalMes...

 

GetSkeletalMesh

(
    UNiagaraComponent* Component
)

Finds the skeletal mesh based on settings of the DI and the hierarchy of the object provided

Public function

USkeletalMes...

 

GetSkeletalMesh

(
    FNiagaraSystemInstance* System...,
    USceneComponent* AttachCompone...,
    TWeakObjectPtr< USceneComponent >&...,
    USkeletalMeshComponent*& Found...,
    FNDISkeletalMesh_InstanceData*...
)

This overload is for use when initializing per-instance data.

Public function

void

 

GetSkeletonSamplingFunctions

End of Vertex Sampling.

Public function

void

 

GetSkinnedBoneData

Public function

void

 

GetTriangleCoordAtUV

Public function

void

 

GetTriangleCoordAtUV

Public function

void

 

GetTriangleCoordInAabb

Public function

void

 

GetTriangleCoordInAabb

Public function

void

 

GetTriangleData

Public function

void

 

GetTriangleSamplingFunctions

Triangle sampling Triangles are sampled a using MeshTriangleCoordinates which are composed of Triangle index and a bary centric coordinate on that triangle.

Public function

void

 

GetTriCoordColor

Public function

void

 

GetTriCoordColorFallback

Public function

void

 

GetTriCoordSkinnedData

Public function

void

 

GetTriCoordSkinnedDataFallback

Public function

void

 

GetTriCoordUV

Public function

void

 

GetTriCoordUV

Public function

void

 

GetTriCoordVertices

Public function

void

 

GetUnfilteredBoneAt

Public function

void

 

GetUnfilteredBoneCount

Public function

void

 

GetVertexColor

Public function

void

 

GetVertexColorFallback

Public function

void

 

GetVertexCount

Public function

void

 

GetVertexData

Public function

void

 

GetVertexSamplingFunctions

End of Mesh Sampling.

Public function

void

 

GetVertexSkinnedData

Public function

void

 

GetVertexUV

Public function

void

 

GetVertexUV

Public function

void

 

IsValidBone

Public function

void

 

IsValidFilteredVertex

Public function

void

 

IsValidTriCoord

Public function

void

 

IsValidVertex

Public function

void

 

RandomBone

Public function

void

 

RandomFilteredBone

Public function

void

 

RandomFilteredSocket

Public function

void

 

RandomFilteredSocketOrBone

Public function

void

 

RandomFilteredVertex

Public function

void

 

RandomTriCoord

Public function

void

 

RandomUnfilteredBone

Public function

void

 

RandomVertex

Public function

void

 

SetSamplingRegionsFromBlueprints

(
    const TArray< FName >& InSamplingR...
)

Public function

void

 

SetSourceComponentFromBlueprints

(
    USkeletalMeshComponent* Compon...
)

End of Direct Bone + Socket Sampling.

Public function

void

 

SetWholeMeshLODFromBlueprints

(
    int32 MeshLODLevel
)

Overridden from UNiagaraDataInterface

Name Description

Public function Virtual Const

bool

 

AppendCompileHash

(
    FNiagaraCompileHashVisitor* In...
)

Allows the generic class defaults version of this class to specify any dependencies/version/etc that might invalidate the compile.

Public function Virtual Const

ETickingGrou...

 

CalculateTickGroup

(
    const void* PerInstanceData
)

Public function Virtual Const

bool

 

CanExecuteOnTarget

(
    ENiagaraSimTarget Target
)

Protected function Virtual Const

bool

 

CopyToInternal

(
    UNiagaraDataInterface* Destina...
)

Public function Virtual

void

 

DestroyPerInstanceData

(
    void* PerInstanceData,
    FNiagaraSystemInstance* System...
)

Destroys the per instance data for this interface.

Public function Virtual Const

bool

 

Equals

(
    const UNiagaraDataInterface* O...
)

Determines if this DataInterface is the same as another.

Public function Virtual

void

 

GetCommonHLSL

(
    FString& OutHLSL
)

Allows data interfaces to provide common functionality that will be shared across interfaces on that type.

Public function Virtual

void

 

GetFeedback

(
    UNiagaraSystem* InAsset,
    UNiagaraComponent* InComponent,
    TArray< FNiagaraDataInterfaceError ...,
    TArray< FNiagaraDataInterfaceFeedba...,
    TArray< FNiagaraDataInterfaceFeedba...
)

Query the data interface to give feedback to the end user.

Public function Virtual

bool

 

GetFunctionHLSL

(
    const FNiagaraDataInterfaceGPUParam...,
    const FNiagaraDataInterfaceGenerate...,
    int FunctionInstanceIndex,
    FString& OutHLSL
)

Public function Virtual

void

 

GetFunctions

Gets all the available functions for this data interface.

Public function Virtual

void

 

GetParameterDefinitionHLSL

(
    const FNiagaraDataInterfaceGPUParam...,
    FString& OutHLSL
)

Public function Virtual

void

 

GetVMExternalFunction

(
    const FVMExternalFunctionBindingInf...,
    void* InstanceData,
    FVMExternalFunction& OutFunc
)

Returns the delegate for the passed function signature.

Public function Virtual Const

bool

 

HasPreSimulateTick()

Public function Virtual Const

bool

 

HasTickGroupPrereqs()

Public function Virtual

bool

 

InitPerInstanceData

(
    void* PerInstanceData,
    FNiagaraSystemInstance* System...
)

Initializes the per instance data for this interface.

Public function Virtual Const

void

 

ModifyCompilationEnvironment

(
    EShaderPlatform ShaderPlatform,
    FShaderCompilerEnvironment& OutEnv...
)

Allows data interfaces to influence the compilation of GPU shaders and is only called on the CDO object not the instance.

Public function Virtual Const

int32

 

PerInstanceDataSize()

Returns the size of the per instance data for this interface.

Public function Virtual

bool

 

PerInstanceTick

(
    void* PerInstanceData,
    FNiagaraSystemInstance* System...,
    float DeltaSeconds
)

Ticks the per instance data for this interface, if it has any.

Public function Virtual

void

 

ProvidePerInstanceDataForRenderThread

(
    void* DataForRenderThread,
    void* PerInstanceData,
    const FNiagaraSystemInstanceID& Sy...
)

Subclasses that wish to work with GPU systems/emitters must implement this.

Public function Virtual

bool

 

UpgradeFunctionCall

(
    FNiagaraFunctionSignature& Functio...
)

Allows data interfaces the opportunity to rename / change the function signature and perform an upgrade.

Public function Virtual

void

 

ValidateFunction

(
    const FNiagaraFunctionSignature& F...,
    TArray< FText >& OutValidationErro...
)

Validates a function being compiled and allows interface classes to post custom compile errors when their API changes.

Overridden from UNiagaraDataInterfaceBase

Name Description

Public function Virtual

void

 

BindParameters

(
    FNiagaraDataInterfaceParametersCS&...,
    const FNiagaraDataInterfaceGPUParam...,
    const FShaderParameterMap& Paramet...
)

Methods that operate on an instance of type FNiagaraDataInterfaceParametersCS*, created by the above CreateComputeParameters() method

Public function Virtual Const

FNiagaraData...

 

CreateComputeParameters()

Constructs the correct CS parameter type for this DI (if any).

Public function Virtual Const

const FTypeL...

 

GetComputeParametersTypeDesc()

Public function Virtual Const

void

 

SetParameters

(
    const FNiagaraDataInterfaceParamete...,
    FRHICommandList& RHICmdList,
    const FNiagaraDataInterfaceSetArgs ...
)

Public function Virtual Const

void

 

UnsetParameters

(
    const FNiagaraDataInterfaceParamete...,
    FRHICommandList& RHICmdList,
    const FNiagaraDataInterfaceSetArgs ...
)

Overridden from UObject

Name Description

Public function Virtual Const

bool

 

CanEditChange

(
    const FProperty* InProperty
)

Called by the editor to query whether a property of this object is allowed to be modified.

Public function Virtual

void

 

PostEditChangeProperty

(
    FPropertyChangedEvent& PropertyCha...
)

Called when a property on this object has been modified externally

Public function Virtual

void

 

PostInitProperties()

Called after the C++ constructor and after the properties have been initialized, including those loaded from config.

Public function Virtual

void

 

PostLoad()

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

Constants