USkinnedMeshComponent

Skinned mesh component that supports bone skinned mesh rendering.

Inheritance Hierarchy

References

Module

Engine

Header

/Engine/Source/Runtime/Engine/Classes/Components/SkinnedMeshComponent.h

Include

#include "Components/SkinnedMeshComponent.h"

Syntax

class USkinnedMeshComponent :
    public UMeshComponent,
    public ILODSyncInterface

Remarks

Skinned mesh component that supports bone skinned mesh rendering. This class does not support animation.

Variables

Name Description

Public variable

FMorphTargetWei...

 

ActiveMorphTargets

Array indicating all active morph targets.

Public variable

FAnimUpdateRate...

 

AnimUpdateRateParams

Animation Update Rate optimization parameters.

Protected variable

uint8: 1

 

bBoneVisibilityDirty

Whether we have updated bone visibility this tick

Protected variable

uint8: 1

 

bCachedLocalBoundsUpToDate

True when CachedLocalBounds is up to date.

Protected variable

uint8: 1

 

bCachedWorldSpaceBoundsUpToDate

Public variable

uint8: 1

 

bCanHighlightSelectedSections

Whether or not we can highlight selected sections - this should really only be done in the editor

Public variable

uint8: 1

 

bCastCapsuleDirectShadow

Whether to use the capsule representation (when present) from a skeletal mesh's ShadowPhysicsAsset for direct shadowing from lights.

Public variable

uint8: 1

 

bCastCapsuleIndirectShadow

Whether to use the capsule representation (when present) from a skeletal mesh's ShadowPhysicsAsset for shadowing indirect lighting (from lightmaps or skylight).

Public variable

uint8: 1

 

bComponentUseFixedSkelBounds

Misc.When true, skip using the physics asset etc.

Public variable

uint8: 1

 

bConsiderAllBodiesForBounds

If true, when updating bounds from a PhysicsAsset, consider all BodySetups, not just those flagged with bConsiderForBounds.

Public variable

uint8: 1

 

bDisableMorphTarget

Disable Morphtarget for this component.

Public variable

uint8: 1

 

bDisplayDebugUpdateRateOptimizations

Enable on screen debugging of update rate optimization.

Protected variable

uint8: 1

 

bDoubleBufferedComponentSpaceTransforms

Are we using double buffered ComponentSpaceTransforms

Public variable

uint8: 1

 

bEnableUpdateRateOptimizations

Update Rate.

Protected variable

uint8: 1

 

bExternalEvaluationRateLimited

External flag indicating that we may not be evaluated every frame

Protected variable

uint8: 1

 

bExternalInterpolate

Non URO-based interpolation flag

Protected variable

uint8: 1

 

bExternalTickRateControlled

Whether we are externally controlling tick rate

Protected variable

uint8: 1

 

bExternalUpdate

Non URO-based update flag

Protected variable

uint8: 1

 

bFollowerShouldTickPose

If false, Follower components ShouldTickPose function will return false (default)

Public variable

uint8: 1

 

bForceWireframe

Forces the mesh to draw in wireframe mode.

Protected variable

uint8: 1

 

bHasValidBoneTransform

Used to cache previous bone transform or not

Public variable

uint8: 1

 

bHideSkin

Don't bother rendering the skin.

Public variable

uint8: 1

 

bIgnoreLeaderPoseComponentLOD

Flag that when set will ensure UpdateLODStatus will not take the LeaderPoseComponent's current LOD in consideration when determining the correct LOD level (this requires LeaderPoseComponent's LOD to always be >= determined LOD otherwise bone transforms could be missing

Protected variable

uint8: 1

 

bMipLevelCallbackRegistered

Whether mip callbacks have been registered and need to be removed on destroy

Protected variable

uint8: 1

 

bNeedToFlipSpaceBaseBuffers

Track whether we still need to flip to recently modified buffer

Protected variable

TArray< uint8 >...

 

BoneVisibilityStates

Array of bone visibilities (containing one of the values in EBoneVisibilityStatus for each bone).

Public variable

uint8: 1

 

bOverrideMinLod

Whether we should use the min lod specified in MinLodModel for this component instead of the min lod in the mesh

Public variable

uint8: 1

 

bPerBoneMotionBlur

If true, use per-bone motion blur on this skeletal mesh (requires additional rendering, can be disabled to save performance).

Public variable

uint8: 1

 

bRecentlyRendered

True if mesh has been recently rendered, false otherwise

Public variable

uint8: 1

 

bRenderStatic

If true, render as static in reference pose.

Protected variable

bool

 

bSetMeshDeformer

If true, MeshDeformer will be used. If false, use the default mesh deformer on the SkeletalMesh.

Protected variable

uint8: 1

 

bSkinWeightProfilePending

Whether or not a Skin Weight profile is currently pending load and creation for this component

Protected variable

uint8: 1

 

bSkinWeightProfileSet

Whether or not a Skin Weight profile is currently set for this component

Public variable

uint8: 1

 

bSyncAttachParentLOD

If true, this component uses its parents LOD when attached if available ForcedLOD can override this change.

Public variable

uint8: 1

 

bUseBoundsFromLeaderPoseComponent

When true, we will just using the bounds from our LeaderPoseComponent.

Protected variable

ERHIFeatureLeve...

 

CachedSceneFeatureLevel

Cache the scene feature level

Protected variable

FBoxSphereBound...

 

CachedWorldOrLocalSpaceBounds

Bounds cached, so they're computed just once, either in local or worldspace depending on cvar 'a.CacheLocalSpaceBounds'.

Protected variable

FMatrix

 

CachedWorldToLocalTransform

Public variable

float

 

CapsuleIndirectShadowMinVisibility

Controls how dark the capsule indirect shadow can be.

Protected variable

uint32

 

CurrentBoneTransformRevisionNumber

Current bone transform revision number

Protected variable

int32

 

CurrentEditableComponentTransforms

The index for the ComponentSpaceTransforms buffer we can currently write to

Protected variable

int32

 

CurrentReadComponentTransforms

The index for the ComponentSpaceTransforms buffer we can currently read from

Protected variable

FName

 

CurrentSkinWeightProfileName

Name of currently set up Skin Weight profile, otherwise is 'none'

Public variable

TOptional< FLin...

 

DebugDrawColor

Debug draw color

Protected variable

float

 

ExternalDeltaTime

Non-URO-based delta time used to tick the pose

Protected variable

float

 

ExternalInterpolationAlpha

Non-URO-based interpolation alpha

Public variable

TArray< FExtern...

 

ExternalMorphSets

External GPU based morph target buffers, for each LOD.

Public variable

TArray< FExtern...

 

ExternalMorphWeightData

The external morph target set weight data, for each LOD.

Protected variable

uint8

 

ExternalTickRate

Record of the tick rate we are using when externally controlled

Protected variable

TArray< TWeakOb...

 

FollowerPoseComponents

If set, this component has follower pose components that are associated with this Note this is weak object ptr, so it will go away unless you have other strong reference

Protected variable

float

 

LastStreamerUpdateBoundsRadius

The bounds radius at the point we last notified the streamer of a bounds radius change

Protected variable

TArray< int32 >

 

LeaderBoneMap

Mapping between bone indices in this component and the parent one.

Protected variable

int32

 

LeaderBoneMapCacheCount

Incremented every time the leader bone map changes.

Public variable

TWeakObjectPtr<...

 

LeaderPoseComponent

LeaderPoseComponent.

Public variable

TArray< struct ...

 

LODInfo

LOD array info. Each index will correspond to the LOD index

Public variable

float

 

MaxDistanceFactor

High (best) DistanceFactor that was desired for rendering this USkeletalMesh last frame.

Protected variable

TObjectPtr< UMe...

 

MeshDeformer

The mesh deformer to use.

Protected variable

TObjectPtr< UMe...

 

MeshDeformerInstance

Object containing state for the bound MeshDeformer.

Protected variable

TObjectPtr< UMe...

 

MeshDeformerInstanceSettings

Object containing instance settings for the bound MeshDeformer.

Public variable

FSkeletalMeshOb...

 

MeshObject

Object responsible for sending bone transforms, morph target state etc. to render thread.

Public variable

FSkeletalMeshOb...

 

MeshObjectFactory

Supports user-defined FSkeletalMeshObjects

Public variable

void *

 

MeshObjectFactoryUserData

Passed into MeshObjectFactory

Public variable

int32

 

MinLodModel

This is the min LOD that this component will use.

Protected variable

TMap< int32, FM...

 

MissingLeaderBoneMap

Map of missing bone indices->transforms so that calls to GetBoneTransform() succeed when bones are not present in a leader mesh when using leader-pose.

Public variable

TArray< float >

 

MorphTargetWeights

Array of weights for all morph targets.

Public variable

FOnAnimUpdateRa...

 

OnAnimUpdateRateParamsCreated

Animation update rate control.

Public variable

FOnTickPose

 

OnTickPose

Invoked at the beginning of TickPose before doing the bulk of the tick work

Public variable

TObjectPtr< cla...

 

PhysicsAssetOverride

  1. PhysicsAsset is set in SkeletalMesh by default, but you can override with this value

Protected variable

TArray< uint8 >

 

PreviousBoneVisibilityStates

Array of bone visibilities (containing one of the values in EBoneVisibilityStatus for each bone).

Protected variable

TArray< FTransf...

 

PreviousComponentSpaceTransformsArray

Array of previous bone transforms Note these are only used if we are NOT double-buffering bone transforms

Protected variable

TSharedPtr< FSk...

 

RefPoseOverride

Information for current ref pose override, if present

Public variable

TArray< ESkinCa...

 

SkinCacheUsage

How this Component's LOD uses the skin cache feature.

Protected variable

TSortedMap< FNa...

 

SocketOverrideLookup

Mapping for socket overrides, key is the Source socket name and the value is the override socket name

Public variable

float

 

StreamingDistanceMultiplier

Allows adjusting the desired streaming distance of streaming textures that uses UV 0.

Public variable

EVisibilityBase...

 

VisibilityBasedAnimTickOption

This is tick animation frequency option based on this component rendered or not or using montage You can change this default value in the INI file Mostly related with performance

Constructors

Name Description

Public function

USkinnedMeshComponent

(
    const FObjectInitializer& ObjectIn...
)

Public function

USkinnedMeshComponent

(
    FVTableHelper& Helper
)

Destructors

Name Description

Public function

~USkinnedMeshComponent()

Functions

Name Description

Public function

void

 

AddExternalMorphSet

(
    int32 LOD,
    int32 ID,
    TSharedPtr< FExternalMorphSet > Mor...
)

Register an external set of GPU compressed morph targets.

Protected function Virtual

void

 

AddFollowerPoseComponent

(
    USkinnedMeshComponent* Skinned...
)

Add a follower component to the FollowerPoseComponents array

Public function

void

 

AddSocketOverride

(
    FName SourceSocketName,
    FName OverrideSocketName,
    bool bWarnHasOverrided
)

Protected function Virtual

bool

 

AllocateTransformData()

Allocate Transform Data array including SpaceBases, BoneVisibilityStates

Public function Static

void

 

BindWorldDelegates()

Helpers allowing us to cache feature level

Public function Const

bool

 

BoneIsChildOf

(
    FName BoneName,
    FName ParentBoneName
)

Tests if BoneName is child of (or equal to) ParentBoneName.

Public function Const

void

 

CacheRefToLocalMatrices

(
    TArray< FMatrix44f >& OutRefToLoca...
)

Caches the RefToLocal matrices.

Protected function Const

FBoxSphereBo...

 

CalcMeshBound

(
    const FVector3f& RootOffset,
    bool UsePhysicsAsset,
    const FTransform& Transform
)

Update Mesh Bound information based on input

Public function

void

 

ClearExternalMorphSets

(
    int32 LOD
)

Clear all externally registered morph target buffers.

Public function

void

 

ClearMotionVector()

This update renderer with new revision number twice so to clear bone velocity for motion blur or temporal AA

Public function Virtual

void

 

ClearRefPoseOverride()

Clear any applied ref pose override

Public function

void

 

ClearSkinWeightOverride

(
    int32 LODIndex
)

Clear any applied skin weight override

Public function

void

 

ClearSkinWeightProfile()

Clear the Skin Weight Profile from this component, in case it is set

Public function

void

 

ClearVertexColorOverride

(
    int32 LODIndex
)

Clear any applied vertex color override

Public function Const

int32

 

ComputeMinLOD()

Compute SkeletalMesh MinLOD that will be used by this component

Public function Static

void

 

ComputeSkinnedPositions

(
    USkinnedMeshComponent* Compone...,
    TArray< FVector3f >& OutPositions,
    TArray< FMatrix44f >& CachedRefToL...,
    const FSkeletalMeshLODRenderData& ...,
    const FSkinWeightVertexBuffer& Ski...
)

CPU evaluation of the positions of all vertices (returned in component space)

Protected function Virtual

void

 

DeallocateTransformData()

Protected function Virtual

void

 

DispatchParallelTickPose

(
    FActorComponentTickFunction* T...
)

Parallel Tick Pose In the case where we do not want to refresh bone transforms (and would therefore not normally kick off a parallel eval task) we perform this 'mini tick' that kicks off the task.

Public function

void

 

EnableExternalEvaluationRateLimiting

(
    bool bInEnable
)

Manually enable/disable animation evaluation rate limiting

Public function

void

 

EnableExternalInterpolation

(
    bool bInEnable
)

Enable non-URO-based interpolation

Public function

void

 

EnableExternalTickRateControl

(
    bool bInEnable
)

Set whether we have our tick rate externally controlled non-URO-based interpolation

Public function

void

 

EnableExternalUpdate

(
    bool bInEnable
)

Set us to tick this frame for non-URO-based interpolation

Public function Virtual

void

 

FinalizeBoneTransform()

Finalize bone transform of this current tick After this function, any query to bone transform should be latest of the data

Public function Const

FName

 

FindClosestBone

(
    FVector TestLocation,
    FVector* BoneLocation,
    float IgnoreScale,
    bool bRequirePhysicsAsset
)

Finds the closest bone to the given location

Public function Const

FName

 

FindClosestBone_K2

(
    FVector TestLocation,
    FVector& BoneLocation,
    float IgnoreScale,
    bool bRequirePhysicsAsset
)

Finds the closest bone to the given location

Public function Virtual Const

UMorphTarget...

 

FindMorphTarget

(
    FName MorphTargetName
)

Find a named MorphTarget from the current SkeletalMesh

Protected function

void

 

FlipEditableSpaceBases()

Flip the editable space base buffer

Public function

void

 

ForceMotionVector()

Forcibly update the renderer with a new revision number to assign the current bone velocity for motion blur or temporal AA

Protected function Const

UMeshDeforme...

 

GetActiveMeshDeformer()

Get the currently active MeshDeformer.

Public function Const

const USkinn...

 

GetBaseComponent()

Public function Const

FVector

 

GetBoneAxis

(
    FName BoneName,
    EAxis::Type Axis
)

Finds a vector pointing along the given axis of the given bone

Public function Const

int32

 

GetBoneIndex

(
    FName BoneName
)

Find the index of bone by name.

Public function Const

FVector

 

GetBoneLocation

(
    FName BoneName,
    EBoneSpaces::Type Space
)

Get Bone Location

Public function Const

FMatrix

 

GetBoneMatrix

(
    int32 BoneIndex
)

Get Bone Matrix from index

Public function Const

FName

 

GetBoneName

(
    int32 BoneIndex
)

Get Bone Name from index

Public function

void

 

GetBoneNames

(
    TArray< FName >& BoneNames
)

Fills the given array with the names of all the bones in this component's current SkeletalMesh

Public function Const

FQuat

 

GetBoneQuaternion

(
    FName BoneName,
    EBoneSpaces::Type Space
)

Get Bone Rotation in Quaternion

Public function Const

FTransform

 

GetBoneTransform

(
    int32 BoneIndex,
    const FTransform& LocalToWorld
)

Get world space bone transform from bone index, also specifying the component transform to use

Public function Const

FTransform

 

GetBoneTransform

(
    FName InBoneName,
    ERelativeTransformSpace TransformSp...
)

Get world-space bone transform.

Public function Const

FTransform

 

GetBoneTransform

(
    int32 BoneIndex
)

Get Bone Transform from index

Public function Const

uint32

 

GetBoneTransformRevisionNumber()

Public function Const

const TArray...

 

GetBoneVisibilityStates()

Access BoneVisibilityStates for reading

Public function Const

FBoxSphereBo...

 

GetCachedLocalBounds()

Public function Const

const TArray...

 

GetComponentSpaceTransforms()

Access ComponentSpaceTransforms for reading

Public function Const

void

 

GetCPUSkinnedCachedFinalVertices

(
    TArray< FFinalSkinVertex >& OutVer...
)

Public function Const

void

 

GetCPUSkinnedVertices

(
    TArray< struct FFinalSkinVertex >&...,
    int32 InLODIndex
)

Get CPU skinned vertices for the specified LOD level.

Public function Const

bool

 

GetCPUSkinningEnabled()

Getter for bCPUSkinning member variable May return a different value from ShouldCPUSkin()

Public function Const

void

 

GetCurrentRefToLocalMatrices

(
    TArray< FMatrix44f >& OutRefToLoca...,
    int32 InLodIdx
)

Return the skinning matrices used for rendering.

Public function Const

FName

 

GetCurrentSkinWeightProfileName()

Return the name of the Skin Weight Profile that is currently set otherwise returns 'None'

Public function Const

const TOptio...

 

GetDebugDrawColor()

Get debug draw color

Public function Const

FTransform

 

GetDeltaTransformFromRefPose

(
    FName BoneName,
    FName BaseName
)

Get delta transform from reference pose based on BaseNode.

Public function

TArray< uint...

 

GetEditableBoneVisibilityStates()

Get Access to the current editable bone visibility states

Public function Const

const TArray...

 

GetEditableBoneVisibilityStates()

Public function Const

const TArray...

 

GetEditableComponentSpaceTransforms()

Public function

TArray< FTra...

 

GetEditableComponentSpaceTransforms()

Get Access to the current editable space bases

Public function Const

const FExter...

 

GetExternalMorphSets

(
    int32 LOD
)

Get the external morph sets for a given LOD.

Public function Const

const TArray...

 

GetExternalMorphSetsArray()

Get the array of external morph target sets. It is an array, one entry for each LOD.

Public function Const

const FExter...

 

GetExternalMorphWeights

(
    int32 LOD
)

Get the weights in read-only mode for a given external morph target set at a specific LOD.

Public function

FExternalMor...

 

GetExternalMorphWeights

(
    int32 LOD
)

Get the weights for a given external morph target set at a specific LOD.

Public function Const

uint8

 

GetExternalTickRate()

Get the external tick rate

Public function Const

const TArray...

 

GetFollowerPoseComponents()

Return current active list of follower components

Public function Const

int32

 

GetForcedLOD()

Get ForcedLodModel of the mesh component.

Public function Const

bool

 

GetForceUpdateDynamicDataImmediately()

Public function Const

const TArray...

 

GetLeaderBoneMap()

Public function Virtual Const

int32

 

GetLODBias()

Get the LOD Bias of this component

Public function Const

int32

 

GetMaterialPreview()

Return value of MaterialIndexPreview

Public function Const

UMeshDeforme...

 

GetMeshDeformerInstance()

Public function Const

int32

 

GetMeshDeformerMaxLOD()

Max LOD at which to update or apply the MeshDeformer.

Public function Const

int32

 

GetNumBones()

Returns the number of bones in the skeleton.

Public function Const

int32

 

GetNumComponentSpaceTransforms()

Get current number of component space transorms

Public function Const

int32

 

GetNumLODs()

Get the number of LODs on this component

Public function Const

FName

 

GetParentBone

(
    FName BoneName
)

Get Parent Bone of the input bone

Public function Const

UPhysicsAsse...

 

GetPhysicsAsset()

Return PhysicsAsset for this SkeletalMeshComponent It will return SkeletalMesh's PhysicsAsset unless PhysicsAssetOverride is set for this component

Public function Const

int32

 

GetPredictedLODLevel()

Get predicted LOD level.

Public function Const

void

 

GetPreSkinnedLocalBounds

(
    FBoxSphereBounds& OutBounds
)

Get the pre-skinning local space bounds for this component.

Public function Const

const TArray...

 

GetPreviousBoneVisibilityStates()

Const getters for previous transform idea

Public function Const

const TArray...

 

GetPreviousComponentTransformsArray()

Public function Virtual Const

const TShare...

 

GetRefPoseOverride()

Accessor for RefPoseOverride

Public function Const

FVector

 

GetRefPosePosition

(
    int32 BoneIndex
)

Gets the local-space position of a bone in the reference pose.

Public function Const

FTransform

 

GetRefPoseTransform

(
    int32 BoneIndex
)

Gets the local-space transform of a bone in the reference pose.

Public function Const

int32

 

GetSectionPreview()

Return value of SectionIndexPreview

Public function Const

int32

 

GetSelectedEditorMaterial()

Return value of SelectedEditorMaterial

Public function Const

int32

 

GetSelectedEditorSection()

Return value of SelectedEditorSection

Public function Const

FSkeletalMes...

 

GetSkeletalMeshRenderData()

Gets the skeletal mesh resource used for rendering the component.

Public function Const

USkinnedAsse...

 

GetSkinnedAsset()

Get the SkinnedAsset rendered for this mesh.

Public function Static

FVector3f

 

GetSkinnedVertexPosition

(
    USkinnedMeshComponent* Compone...,
    int32 VertexIndex,
    const FSkeletalMeshLODRenderData& ...,
    FSkinWeightVertexBuffer& SkinWeigh...
)

Simple, CPU evaluation of a vertex's skinned position (returned in component space)

Public function Static

FVector3f

 

GetSkinnedVertexPosition

(
    USkinnedMeshComponent* Compone...,
    int32 VertexIndex,
    const FSkeletalMeshLODRenderData& ...,
    FSkinWeightVertexBuffer& SkinWeigh...,
    TArray< FMatrix44f >& CachedRefToL...
)

Simple, CPU evaluation of a vertex's skinned position (returned in component space)

Public function Const

FSkinWeightV...

 

GetSkinWeightBuffer

(
    int32 LODIndex
)

Returns skin weight vertex buffer to use for specific LOD (will look at override)

Public function Const

FName

 

GetSocketBoneName

(
    FName InSocketName
)

Returns bone name linked to a given named socket on the skeletal mesh component.

Public function Const

USkeletalMes...

 

GetSocketByName

(
    FName InSocketName
)

Public function Const

USkeletalMes...

 

GetSocketInfoByName

(
    FName InSocketName,
    FTransform& OutTransform,
    int32& OutBoneIndex
)

Public function Const

bool

 

GetTwistAndSwingAngleOfDeltaRotationFromRefPose

(
    FName BoneName,
    float& OutTwistAngle,
    float& OutSwingAngle
)

Get Twist and Swing Angle in Degree of Delta Rotation from Reference Pose in Local space

Public function Virtual

void

 

GetUpdateClothSimulationData_AnyThread

(
    TMap< int32, FClothSimulData >& Ou...,
    FMatrix& OutLocalToWorld,
    float& OutClothBlendWeight
)

Override this function to pass on cloth simulation data (or any deformable using the cloth pipeline) to the skeletal renderer.

Public function Const

FColor

 

GetVertexColor

(
    int32 VertexIndex
)

Returns color of the vertex.

Public function Const

FVector2D

 

GetVertexUV

(
    int32 VertexIndex,
    uint32 UVChannel
)

Returns texture coordinates of the vertex.

Public function Static

void

 

HandleFeatureLevelChanged

(
    ERHIFeatureLevel::Type InFeatureLev...,
    TWeakObjectPtr< UWorld > InWorld
)

Public function Static

void

 

HandlePostWorldCreation

(
    UWorld* InWorld
)

Public function Const

bool

 

HasExternalMorphSet

(
    int32 LOD,
    int32 ID
)

Do we have a given set of external morph targets?

Public function Const

bool

 

HasMeshDeformer()

Public function Virtual

void

 

HideBone

(
    int32 BoneIndex,
    EPhysBodyOp PhysBodyOption
)

Hides the specified bone. You can also set option for physics body.

Public function

void

 

HideBoneByName

(
    FName BoneName,
    EPhysBodyOp PhysBodyOption
)

Hides the specified bone with name.

Public function

void

 

InitLODInfos()

Initialize the LOD entries for the component

Public function

void

 

InvalidateCachedBounds()

Invalidate Cached Bounds, when Mesh Component has been updated.

Public function Const

bool

 

IsBoneHidden

(
    int32 BoneIndex
)

Determines if the specified bone is hidden.

Public function

bool

 

IsBoneHiddenByName

(
    FName BoneName
)

Determines if the specified bone is hidden.

Public function

bool

 

IsMaterialSectionShown

(
    int32 MaterialID,
    int32 LODIndex
)

Returns whether a specific material section is currently hidden on this component (by using ShowMaterialSection)

Public function Virtual Const

bool

 

IsPlayingNetworkedRootMotionMontage()

Public function Virtual Const

bool

 

IsPlayingRootMotion()

Public function Virtual Const

bool

 

IsPlayingRootMotionFromEverything()

Public function Const

bool

 

IsSkinCacheAllowed

(
    int32 LodIdx
)

Public function Const

bool

 

IsSkinWeightProfilePending()

Check whether or not a Skin Weight Profile is currently pending load / create

Public function Const

bool

 

IsUsingExternalInterpolation()

Check whether we should be interpolating due to external settings

Public function Const

bool

 

IsUsingExternalTickRateControl()

Check whether we we have our tick rate externally controlled

Public function Const

bool

 

IsUsingSkinWeightProfile()

Check whether or not a Skin Weight Profile is currently set

Public function Const

bool

 

IsValidExternalMorphSetLODIndex

(
    int32 LOD
)

Check whether a given LOD index is valid for the external morph sets.

Public function Virtual

void

 

PostInitMeshObject

(
    FSkeletalMeshObject*
)

Function to operate on mesh object after its created, but before it's attached.

Public function

void

 

RebuildVisibilityArray()

Rebuild BoneVisibilityStates array. Mostly refresh information of bones for BVS_HiddenByParent

Public function Virtual

void

 

RefreshBoneTransforms

(
    FActorComponentTickFunction* T...
)

Update functions Refresh Bone Transforms Each class will need to implement this function Ideally this function should be atomic (not relying on Tick or any other update.)

Public function

void

 

RefreshExternalMorphTargetWeights

(
    bool bZeroOldWeights
)

Refresh the external morph target weight buffers.

Public function

void

 

RefreshFollowerComponents()

Refresh Follower Components if exists

Protected function

void

 

RefreshUpdateRateParams()

Recreates update rate params and internal tracker data

Public function

void

 

ReleaseResources()

Release any rendering resources owned by this component

Protected function

void

 

ReleaseUpdateRateParams()

Removes update rate params and internal tracker data

Public function

void

 

RemoveAllSocketOverrides()

Public function

void

 

RemoveExternalMorphSet

(
    int32 LOD,
    int32 ID
)

Remove a given set of external GPU based morph targets.

Protected function Virtual

void

 

RemoveFollowerPoseComponent

(
    USkinnedMeshComponent* Skinned...
)

Remove a follower component from the FollowerPoseComponents array

Public function

void

 

RemoveSocketOverrides

(
    FName SourceSocketName
)

Public function

void

 

ResizeExternalMorphTargetSets()

Resize the morph target sets array to the number of LODs.

Public function

void

 

SetCapsuleIndirectShadowMinVisibility

(
    float NewValue
)

Public function

void

 

SetCastCapsuleDirectShadow

(
    bool bNewValue
)

Public function

void

 

SetCastCapsuleIndirectShadow

(
    bool bNewValue
)

Public function

void

 

SetComponentSpaceTransformsDoubleBuffering

(
    bool bInDoubleBufferedComponentSpac...
)

Public function

void

 

SetCPUSkinningEnabled

(
    bool bEnable,
    bool bRecreateRenderStateImmediatel...
)

Set whether this component uses CPU skinning Notes:

Public function

void

 

SetDebugDrawColor

(
    const FLinearColor& InColor
)

Set debug draw color

Public function

void

 

SetDrawDebugSkeleton

(
    bool bInDraw
)

Set whether to draw this mesh's debug skeleton

Public function

void

 

SetExternalDeltaTime

(
    float InDeltaTime
)

Set non-URO-based delta time

Public function

void

 

SetExternalInterpolationAlpha

(
    float InAlpha
)

Set non-URO-based interpolation alpha

Public function

void

 

SetExternalTickRate

(
    uint8 InTickRate
)

Set the external tick rate

Public function

void

 

SetForcedLOD

(
    int32 InNewForcedLOD
)

Set ForcedLodModel of the mesh component

Public function

void

 

SetForceUpdateDynamicDataImmediately

(
    bool bForceUpdateImmediately
)

Public function

void

 

SetForceWireframe

(
    bool InForceWireframe
)

Sets the value of the bForceWireframe flag and reattaches the component as necessary.

Public function

void

 

SetLeaderPoseComponent

(
    USkinnedMeshComponent* NewLead...,
    bool bForceUpdate,
    bool bInFollowerShouldTickPose
)

Set LeaderPoseComponent for this component

Public function

void

 

SetMaterialPreview

(
    int32 InMaterialIndexPreview
)

Sets the value of the MaterialIndexPreview option.

Public function

void

 

SetMeshDeformer

(
    UMeshDeformer* InMeshDeformer
)

Change the MeshDeformer that is used for this Component.

Protected function

void

 

SetMeshDeformer

(
    bool bInSetMeshDeformer,
    UMeshDeformer* InMeshDeformer
)

Set the MeshDeformer and update the internal MeshDeformerInstance.

Public function

void

 

SetMinLOD

(
    int32 InNewMinLOD
)

Set MinLodModel of the mesh component

Public function Virtual

void

 

SetPhysicsAsset

(
    UPhysicsAsset* NewPhysicsAsset,
    bool bForceReInit
)

Override the Physics Asset of the mesh.

Protected function Virtual

void

 

SetPredictedLODLevel

(
    int32 InPredictedLODLevel
)

Set predicted LOD level.

Public function Virtual

void

 

SetRefPoseOverride

(
    const TArray< FTransform >& NewRef...
)

Apply an override for the current mesh ref pose

Public function

void

 

SetRenderStatic

(
    bool bNewValue
)

Set whether this skinned mesh should be rendered as static mesh in a reference pose

Public function

void

 

SetSectionPreview

(
    int32 InSectionIndexPreview
)

Sets the value of the SectionIndexPreview option.

Public function

void

 

SetSelectedEditorMaterial

(
    int32 NewSelectedEditorMaterial
)

Sets the value of the SelectedEditorMaterial option.

Public function

void

 

SetSelectedEditorSection

(
    int32 NewSelectedEditorSection
)

Sets the value of the SelectedEditorSection option.

Public function

void

 

SetSkinnedAsset

(
    USkinnedAsset* InSkinnedAsset
)

Change the SkinnedAsset that is rendered without reinitializing this Component.

Public function Virtual

void

 

SetSkinnedAssetAndUpdate

(
    USkinnedAsset* NewMesh,
    bool bReinitPose
)

Change the SkinnedAsset that is rendered for this Component.

Public function

void

 

SetSkinWeightOverride

(
    int32 LODIndex,
    const TArray< FSkelMeshSkinWeightIn...
)

Allow override of skin weights on a per-component basis.

Public function

bool

 

SetSkinWeightProfile

(
    FName InProfileName
)

Setup an override Skin Weight Profile for this component

Public function

void

 

SetVertexColorOverride

(
    int32 LODIndex,
    const TArray< FColor >& VertexColo...
)

Allow override of vertex colors on a per-component basis.

Public function

void

 

SetVertexColorOverride_LinearColor

(
    int32 LODIndex,
    const TArray< FLinearColor >& Vert...
)

Allow override of vertex colors on a per-component basis, taking array of Blueprint-friendly LinearColors.

Public function Virtual

bool

 

ShouldCPUSkin()

Function returns whether or not CPU skinning should be applied Allows the editor to override the skinning state for editor tools

Public function Const

bool

 

ShouldDrawDebugSkeleton()

Get whether to draw this mesh's debug skeleton

Protected function Virtual Const

bool

 

ShouldTickPose()

Should tick pose (by calling TickPose) in Tick

Protected function Const

bool

 

ShouldUpdateBoneVisibility()

Return true if it needs update. Return false if not

Public function Virtual Const

bool

 

ShouldUpdateTransform

(
    bool bLODHasChanged
)

Should update transform in Tick

Public function Const

bool

 

ShouldUseUpdateRateOptimizations()

Public function

void

 

ShowAllMaterialSections

(
    int32 LODIndex
)

Clear any material visibility modifications made by ShowMaterialSection

Public function

void

 

ShowMaterialSection

(
    int32 MaterialID,
    int32 SectionIndex,
    bool bShow,
    int32 LODIndex
)

Allows hiding of a particular material (by ID) on this instance of a SkeletalMesh.

Public function Virtual

void

 

TickPose

(
    float DeltaTime,
    bool bNeedsValidRootMotion
)

Tick Pose, this function ticks and do whatever it needs to do in this frame, should be called before RefreshBoneTransforms

Public function

void

 

TransformFromBoneSpace

(
    FName BoneName,
    FVector InPosition,
    FRotator InRotation,
    FVector& OutPosition,
    FRotator& OutRotation
)

Transform a location/rotation in bone relative space to world space.

Public function Const

void

 

TransformToBoneSpace

(
    FName BoneName,
    FVector InPosition,
    FRotator InRotation,
    FVector& OutPosition,
    FRotator& OutRotation
)

Transform a location/rotation from world space to bone relative space.

Public function Virtual

void

 

UnHideBone

(
    int32 BoneIndex
)

Unhides the specified bone.

Public function

void

 

UnHideBoneByName

(
    FName BoneName
)

UnHide the specified bone with name.

Public function

void

 

UnloadSkinWeightProfile

(
    FName InProfileName
)

Unload a Skin Weight Profile's skin weight buffer (if created)

Public function

void

 

UnsetMeshDeformer()

Unset any MeshDeformer applied to this Component.

Public function Virtual

void

 

UpdateFollowerComponent()

Update Follower Component. This gets called when LeaderPoseComponent!=NULL

Public function

void

 

UpdateLeaderBoneMap()

Update LeaderBoneMap for LeaderPoseComponent and this component

Public function Virtual

bool

 

UpdateLODStatus()

Update the PredictedLODLevel and MaxDistanceFactor in the component from its MeshObject.

Protected function

bool

 

UpdateLODStatus_Internal

(
    int32 InLeaderPoseComponentPredicte...,
    bool bRequestedByLeaderPoseComponen...
)

Helper function for UpdateLODStatus, called with a valid index for InLeaderPoseComponentPredictedLODLevel when updating LOD status for follower components

Public function

void

 

UpdateMorphMaterialUsageOnProxy()

Checks/updates material usage on proxy based on current morph target usage

Public function

void

 

UpdateSkinWeightOverrideBuffer()

Queues an update of the Skin Weight Buffer used by the current MeshObject

Public function Virtual

void

 

UpdateVisualizeLODString

(
    FString& DebugString
)

Overridden from UMeshComponent

Name Description

Protected function Virtual Const

UMaterialInt...

 

GetDefaultOverlayMaterial()

Get the default overlay material used by a mesh

Protected function Virtual Const

float

 

GetDefaultOverlayMaterialMaxDrawDistance()

Get the default overlay material max draw distance

Public function Virtual Const

int32

 

GetMaterialIndex

(
    FName MaterialSlotName
)

Public function Virtual Const

TArray< FNam...

 

GetMaterialSlotNames()

Public function Virtual Const

bool

 

GetMaterialStreamingData

(
    int32 MaterialIndex,
    FPrimitiveMaterialInfo& MaterialDa...
)

Get the material info for texture streaming. Return whether the data is valid or not.

Public function Virtual Const

bool

 

IsMaterialSlotNameValid

(
    FName MaterialSlotName
)

Public function Virtual

void

 

RegisterLODStreamingCallback

(
    FLODStreamingCallback&& Callback,
    int32 LODIdx,
    float TimeoutSecs,
    bool bOnStreamIn
)

Register a one-time callback that will be called when criteria met

Public function Virtual

void

 

RegisterLODStreamingCallback

(
    FLODStreamingCallback&& CallbackSt...,
    FLODStreamingCallback&& CallbackSt...,
    float TimeoutStartSecs,
    float TimeoutDoneSecs
)

Register a one-time callback that will be called when streaming starts or ends.

Overridden from UPrimitiveComponent

Name Description

Public function Virtual

void

 

CollectPSOPrecacheData

(
    const FPSOPrecacheParams& BasePrec...,
    FComponentPSOPrecacheParamsList& O...
)

Precache all PSOs which can be used by the component

Public function Virtual

FPrimitiveSc...

 

CreateSceneProxy()

Creates a proxy to represent the primitive to the scene manager in the rendering thread.

Public function Virtual Const

UMaterialInt...

 

GetMaterial

(
    int32 ElementIndex
)

Returns the material used by the element at the specified index

Public function Virtual Const

int32

 

GetNumMaterials()

Return number of material elements in this primitive

Public function Virtual Const

void

 

GetStreamingRenderAssetInfo

Enumerates the streaming textures/meshes used by the primitive.

Public function Virtual Const

float

 

GetStreamingScale()

Public function Virtual Const

void

 

GetUsedMaterials

(
    TArray< UMaterialInterface* > ...,
    bool bGetDebugMaterials
)

Retrieves the materials used in this component

Overridden from USceneComponent

Name Description

Public function Virtual Const

FBoxSphereBo...

 

CalcBounds

(
    const FTransform& LocalToWorld
)

Calculate the bounds of the component. Default behavior is a bounding box/sphere of zero size.

Public function Virtual Const

bool

 

DoesSocketExist

(
    FName InSocketName
)

Return true if socket with the given name exists

Public function Virtual

bool

 

GetMaterialPropertyPath

(
    int32 ElementIndex,
    UObject*& OutOwner,
    FString& OutPropertyPath,
    FProperty*& OutProperty
)

Returns full material property path and UObject owner property object Path examples: Material property path with array element and inner struct Materials[0].InnerStruct.Material Material property path with array element Materials[0] Simple material property path Materials

Public function Virtual Const

FTransform

 

GetSocketTransform

(
    FName InSocketName,
    ERelativeTransformSpace TransformSp...
)

Get world-space socket transform.

Public function Virtual Const

bool

 

HasAnySockets()

Returns true if this component has any sockets

Public function Virtual Const

void

 

QuerySupportedSockets

Get a list of sockets this component contains

Public function Virtual

void

 

UpdateBounds()

Update the Bounds of the component.

Public function Virtual

bool

 

UpdateOverlapsImpl

(
    const TOverlapArrayView* NewPe...,
    bool bDoNotifies,
    const TOverlapArrayView* Overl...
)

Queries world and updates overlap tracking state for this component.

Overridden from UActorComponent

Name Description

Protected function Virtual Const

UObject cons...

 

AdditionalStatObject()

Give a readable name for this component, including asset name if applicable

Protected function Virtual

void

 

BeginPlay()

Used to detach physics objects before simulation begins.

Protected function Virtual

void

 

CreateRenderState_Concurrent

(
    FRegisterComponentContext* Con...
)

Used to create any rendering thread information for this component

Protected function Virtual

void

 

DestroyRenderState_Concurrent()

Used to shut down any rendering thread structure for this component

Protected function Virtual

void

 

OnRegister()

Called when a component is registered, after Scene is set, but before CreateRenderState_Concurrent or OnCreatePhysicsState are called.

Protected function Virtual

void

 

OnUnregister()

Called when a component is unregistered.

Protected function Virtual Const

bool

 

RequiresGameThreadEndOfFrameRecreate()

Return true if this component requires end of frame recreates to happen from the game thread.

Protected function Virtual

void

 

SendRenderDynamicData_Concurrent()

Called to send dynamic data for this component to the rendering thread

Protected function Virtual

void

 

TickComponent

(
    float DeltaTime,
    enum ELevelTick TickType,
    FActorComponentTickFunction* T...
)

Function called every frame on this ActorComponent.

Overridden from UObject

Name Description

Public function Virtual

void

 

BeginDestroy()

Called before destroying the object.

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 Const

FString

 

GetDetailedInfoInternal()

This function actually does the work for the GetDetailedInfo() and is virtual.

Public function Virtual

void

 

GetResourceSizeEx

(
    FResourceSizeEx& CumulativeResourc...
)

Get the size of the object/resource for use in memory tools or to display to artists/LDs in the Editor This is the extended version which separates up the used memory into different memory regions (the actual definition of which may be platform specific).

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.

Public function Virtual

void

 

Serialize

(
    FArchive& Ar
)

Handles reading, writing, and reference collecting using FArchive.

Overridden from IInterface_AsyncCompilation

Name Description

Public function Virtual Const

bool

 

IsCompiling()

Returns whether this component is still being compiled or dependent on other objects being compiled.

Classes

Name

Description

Protected struct

FMissingLeaderBoneCacheEntry

Cached relative transform for follower bones that are missing in the leader

Enums

Name

Description

Private enum

EBoneTransformUpdateMethod

Deprecated Variables

Name Description

Public variable

uint8: 1

 

bCPUSkinning

Direct access to bCPUSkinning is deprecated. Please use its getter and setter instead.

Public variable

uint8: 1

 

bDisplayBones_DEPRECATED

Draw the skeleton hierarchy for this skel mesh.

Public variable

uint8: 1

 

bIgnoreMasterPoseComponentLOD

This property is deprecated. Please use bIgnoreLeaderPoseComponentLOD instead

Public variable

uint8: 1

 

bUseBoundsFromMasterPoseComponent

This property is deprecated. Please use bUseBoundsFromLeaderPoseComponent instead

Public variable

int32

 

ForcedLodModel

Direct access to ForcedLodModel is deprecated. Please use its getter and setter instead.

Public variable

TWeakObjectPtr<...

 

MasterPoseComponent

This property is deprecated. Please use LeaderPoseComponent instead

Public variable

uint8 &

 

MeshComponentUpdateFlag

MeshComponentUpdateFlag has been renamed VisibilityBasedAnimTickOption

Public variable

int32

 

PredictedLODLevel

Direct access to PredictedLODLevel has been deprecated and will be removed in a future version. Please use Get/SetPredictedLODLevel() accessors.

Public variable

TObjectPtr< cla...

 

SkeletalMesh

Replaced by SkinnedAsset. Use GetSkinnedAsset()/SetSkinnedAsset() instead, or GetSkeletalMeshAsset/SetSkeletalMeshAsset() when called from a USkeletalMeshComponent.

Public variable

FColor

 

WireframeColor_DEPRECATED

Wireframe color

Deprecated Functions

Name Description

Protected function Virtual

void

 

AddSlavePoseComponent

(
    USkinnedMeshComponent* Skinned...
)

This method has been deprecated. Please use AddFollowerPoseComponent instead.

Public function Const

const TArray...

 

GetMasterBoneMap()

This method has been deprecated. Please use the GetLeaderBoneMap.

Public function Const

USkeletalMes...

 

GetSkeletalMesh_DEPRECATED()

Use USkeletalMeshComponent::GetSkeletalMeshAsset() or GetSkinnedAsset() instead.

Public function Const

const TArray...

 

GetSlavePoseComponents()

This method has been deprecated. Please use GetFollowerPoseComponents instead.

Public function Const

int32

 

GetVertexOffsetUsage

(
    int32 LODIndex
)

GetVertexOffsetUsage() has been deprecated. Support will be dropped in the future.

Public function

void

 

RefreshSlaveComponents()

This method has been deprecated. Please use RefreshFollowerComponents instead.

Protected function Virtual

void

 

RemoveSlavePoseComponent

(
    USkinnedMeshComponent* Skinned...
)

This method has been deprecated. Please use RemoveFollowerPoseComponent instead.

Public function

void

 

SetMasterPoseComponent

(
    USkinnedMeshComponent* NewMast...,
    bool bForceUpdate
)

This method has been deprecated. Please use SetLeaderPoseComponent instead.

Public function

void

 

SetPostSkinningOffsets

(
    int32 LODIndex,
    TArray< FVector > Offsets
)

SetPostSkinningOffsets() has been deprecated. Support will be dropped in the future.

Public function

void

 

SetPreSkinningOffsets

(
    int32 LODIndex,
    TArray< FVector > Offsets
)

SetPreSkinningOffsets() has been deprecated. Support will be dropped in the future.

Public function Virtual

void

 

SetSkeletalMesh

(
    USkeletalMesh* NewMesh,
    bool bReinitPose
)

Use USkeletalMeshComponent::SetSkeletalMesh() or SetSkinnedAssetAndUpdate() instead.

Public function

void

 

SetSkeletalMesh_DEPRECATED

(
    USkeletalMesh* NewMesh
)

Use USkeletalMeshComponent::SetSkinnedAssetAndUpdate() instead.

Public function

void

 

SetVertexOffsetUsage

(
    int32 LODIndex,
    int32 Usage
)

SetVertexOffsetUsage() has been deprecated. Support will be dropped in the future.

Public function

void

 

UpdateMasterBoneMap()

This method has been deprecated. Please use UpdateLeaderBoneMap instead.

Public function Virtual

void

 

UpdateSlaveComponent()

This method has been deprecated. Please use UpdateFollowerComponent instead.

See Also

Help shape the future of Unreal Engine documentation! Tell us how we're doing so we can serve you better.
Take our survey
Cancel