Navigation
API > API/Runtime > API/Runtime/Engine > API/Runtime/Engine/Components
Inheritance Hierarchy
- UObjectBase
- UObjectBaseUtility
- UObject
- UActorComponent
- USceneComponent
- UPrimitiveComponent
- UMeshComponent
- USkinnedMeshComponent
- UPoseableMeshComponent
- USkeletalMeshComponent
References
| Module | Engine |
| Header | /Engine/Source/Runtime/Engine/Classes/Components/SkinnedMeshComponent.h |
| Include | #include "Components/SkinnedMeshComponent.h" |
Syntax
UCLASS (HideCategories=Object, Config=Engine, EditInlineNew, Abstract, MinimalAPI)
class USkinnedMeshComponent :
public UMeshComponent ,
public ILODSyncInterface
Remarks
Skinned mesh component that supports bone skinned mesh rendering. This class does not support animation.
Variables
| Type | Name | Description | |
|---|---|---|---|
| FMorphTargetWeightMap | ActiveMorphTargets | Array indicating all active morph targets. | |
| FAnimUpdateRateParameters * | AnimUpdateRateParams | Animation Update Rate optimization parameters. | |
| bool | bAlwaysUseMeshDeformer | If true, and if no mesh deformer is set from here or the SkeletalMesh, fall back to the default deformer specified in the project settings, unless DefaultMode is set to "Never" in project settings | |
| uint8: 1 | bBoneVisibilityDirty | Whether we have updated bone visibility this tick | |
| uint8: 1 | bCachedLocalBoundsUpToDate | True when CachedLocalBounds is up to date. | |
| uint8: 1 | bCachedWorldSpaceBoundsUpToDate | ||
| uint8: 1 | bCanHighlightSelectedSections | Whether or not we can highlight selected sections - this should really only be done in the editor | |
| uint8: 1 | bCastCapsuleDirectShadow | Whether to use the capsule representation (when present) from a skeletal mesh's ShadowPhysicsAsset for direct shadowing from lights. | |
| 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). | |
| uint8: 1 | bComponentUseFixedSkelBounds | Misc. | |
| uint8: 1 | bConsiderAllBodiesForBounds | If true, when updating bounds from a PhysicsAsset, consider all BodySetups, not just those flagged with bConsiderForBounds. | |
| uint8: 1 | bCPUSkinning | Whether or not to CPU skin this component, requires render data refresh after changing | |
| uint8: 1 | bDisableMorphTarget | Disable Morphtarget for this component. | |
| uint8: 1 | bDisplayBones | Draw the skeleton hierarchy for this skel mesh. | |
| uint8: 1 | bDisplayDebugUpdateRateOptimizations | Enable on screen debugging of update rate optimization. | |
| uint8: 1 | bDoubleBufferedComponentSpaceTransforms | Are we using double buffered ComponentSpaceTransforms | |
| uint8: 1 | bEnableUpdateRateOptimizations | Update Rate. | |
| uint8: 1 | bExternalEvaluationRateLimited | External flag indicating that we may not be evaluated every frame | |
| uint8: 1 | bExternalInterpolate | Non URO-based interpolation flag | |
| uint8: 1 | bExternalTickRateControlled | Whether we are externally controlling tick rate | |
| uint8: 1 | bExternalUpdate | Non URO-based update flag | |
| uint8: 1 | bFollowerShouldTickPose | If false, Follower components ShouldTickPose function will return false (default) | |
| uint8: 1 | bForceWireframe | Forces the mesh to draw in wireframe mode. | |
| uint8: 1 | bHasValidBoneTransform | Used to cache previous bone transform or not | |
| uint8: 1 | bHideSkin | Don't bother rendering the skin. | |
| 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 | |
| uint8: 1 | bIgnoreMasterPoseComponentLOD | ||
| uint8: 1 | bIncludeComponentLocationIntoBounds | If true, the Location of this Component will be included into its bounds calculation (this can be useful when using SMU_OnlyTickPoseWhenRendered on a character that moves away from the root and no bones are left near the origin of the component) | |
| uint8: 1 | bMipLevelCallbackRegistered | Whether mip callbacks have been registered and need to be removed on destroy | |
| uint8: 1 | bNeedToFlipSpaceBaseBuffers | Track whether we still need to flip to recently modified buffer | |
| TArray< uint8 >[2] | BoneVisibilityStates | Array of bone visibilities (containing one of the values in EBoneVisibilityStatus for each bone). | |
| uint8: 1 | bOverrideMinLod | Whether we should use the min lod specified in MinLodModel for this component instead of the min lod in the mesh | |
| uint8: 1 | bPerBoneMotionBlur | If true, use per-bone motion blur on this skeletal mesh (requires additional rendering, can be disabled to save performance). | |
| uint8: 1 | bRecentlyRendered | True if mesh has been recently rendered, false otherwise | |
| uint8: 1 | bRenderStatic | If true, render as static in reference pose. | |
| bool | bSetMeshDeformer | If true, MeshDeformer will be used. If false, use the default mesh deformer on the SkeletalMesh. | |
| uint8: 1 | bSkinWeightProfilePending | Whether or not a Skin Weight profile is currently pending load and creation for this component | |
| uint8: 1 | bSkinWeightProfileSet | Whether or not a Skin Weight profile is currently set for this component | |
| uint8: 1 | bSyncAttachParentLOD | If true, this component uses its parents LOD when attached if available ForcedLOD can override this change. | |
| uint8: 1 | bUseBoundsFromLeaderPoseComponent | When true, we will just using the bounds from our LeaderPoseComponent. | |
| uint8: 1 | bUseBoundsFromMasterPoseComponent | ||
| uint8: 1 | bUseScreenRenderStateForUpdate | If set, use the screen render flag instead of the default render flag when processing offscreen-rendering optimizations (such as VisibilityBasedAnimTickOption) that look to reduce animation work when the mesh is not rendered. | |
| ERHIFeatureLevel::Type | CachedSceneFeatureLevel | Cache the scene feature level | |
| FBoxSphereBounds | CachedWorldOrLocalSpaceBounds | Bounds cached, so they're computed just once, either in local or worldspace depending on cvar 'a.CacheLocalSpaceBounds'. | |
| FMatrix | CachedWorldToLocalTransform | ||
| float | CapsuleIndirectShadowMinVisibility | Controls how dark the capsule indirect shadow can be. | |
| uint32 | CurrentBoneTransformFrame | Stores GFrameCounter when CurrentBoneTransformRevisionNumber was updated, to make sure it's updated once per frame | |
| uint32 | CurrentBoneTransformRevisionNumber | Current bone transform revision number | |
| int32 | CurrentEditableComponentTransforms | The index for the ComponentSpaceTransforms buffer we can currently write to | |
| int32 | CurrentReadComponentTransforms | The index for the ComponentSpaceTransforms buffer we can currently read from | |
| FName[2] | CurrentSkinWeightProfileLayers | Name of currently set up Skin Weight layers, all set to NAME_None for no override | |
| TOptional< FLinearColor > | DebugDrawColor | Debug draw color | |
| float | ExternalDeltaTime | Non-URO-based delta time used to tick the pose | |
| float | ExternalInterpolationAlpha | Non-URO-based interpolation alpha | |
| TArray< FExternalMorphSets > | ExternalMorphSets | External GPU based morph target buffers, for each LOD. | |
| TArray< FExternalMorphWeightData > | ExternalMorphWeightData | The external morph target set weight data, for each LOD. | |
| uint8 | ExternalTickRate | Record of the tick rate we are using when externally controlled | |
| TArray< TWeakObjectPtr< USkinnedMeshComponent > > | 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 | |
| int32 | ForcedLodModel | Level of detail. If 0, auto-select LOD level. if >0, force to (ForcedLodModel-1). | |
| float | LastStreamerUpdateBoundsRadius | The bounds radius at the point we last notified the streamer of a bounds radius change | |
| TArray< int32 > | LeaderBoneMap | Mapping between bone indices in this component and the parent one. | |
| int32 | LeaderBoneMapCacheCount | Incremented every time the leader bone map changes. | |
| TWeakObjectPtr< USkinnedMeshComponent > | LeaderPoseComponent | LeaderPoseComponent. | |
| TArray< struct FSkelMeshComponentLODInfo > | LODInfo | LOD array info. Each index will correspond to the LOD index | |
| TWeakObjectPtr< USkinnedMeshComponent > | MasterPoseComponent | ||
| float | MaxDistanceFactor | High (best) DistanceFactor that was desired for rendering this USkeletalMesh last frame. | |
| uint8 & | MeshComponentUpdateFlag | ||
| TObjectPtr< UMeshDeformer > | MeshDeformer | The mesh deformer to use. | |
| FMeshDeformerInstanceSet | MeshDeformerInstances | Object containing state for the bound MeshDeformer. | |
| TObjectPtr< UMeshDeformerInstanceSettings > | MeshDeformerInstanceSettings | Object containing instance settings for the bound MeshDeformer. | |
| FSkeletalMeshObject * | MeshObject | Object responsible for sending bone transforms, morph target state etc. to render thread. | |
| FSkeletalMeshObject *(*)(void *UserData, USkinnedMeshComponent *InMeshComponent, FSk... | MeshObjectFactory | Supports user-defined FSkeletalMeshObjects | |
| void * | MeshObjectFactoryUserData | Passed into MeshObjectFactory | |
| int32 | MinLodModel | This is the min LOD that this component will use. | |
| TMap< int32, FMissingLeaderBoneCacheEntry > | 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. | |
| TArray< float > | MorphTargetWeights | Array of weights for all morph targets. | |
| FOnAnimUpdateRateParamsCreated | OnAnimUpdateRateParamsCreated | Animation update rate control. | |
| FOnTickPose | OnTickPose | Invoked at the beginning of TickPose before doing the bulk of the tick work | |
| TObjectPtr< class UPhysicsAsset > | PhysicsAssetOverride | Physics. PhysicsAsset is set in SkeletalMesh by default, but you can override with this value | |
| int32 | PredictedLODLevel | Best LOD that was 'predicted' by UpdateSkelPose. | |
| uint32 | PreviousBoneTransformRevisionNumber | Cache previous bone transform revision number to help compute CurrentBoneTransformRevisionNumber | |
| TArray< uint8 > | PreviousBoneVisibilityStates | Array of bone visibilities (containing one of the values in EBoneVisibilityStatus for each bone). | |
| TArray< FTransform > | PreviousComponentSpaceTransformsArray | Array of previous bone transforms Note these are only used if we are NOT double-buffering bone transforms | |
| FSkeletalMeshObject * | PreviousMeshObject | Previous copy of MeshObject set during recreate of the render state | |
| TSharedPtr< FSkelMeshRefPoseOverride > | RefPoseOverride | Information for current ref pose override, if present | |
| TObjectPtr< class USkeletalMesh > | SkeletalMesh | The skeletal mesh used by this component. | |
| TArray< ESkinCacheUsage > | SkinCacheUsage | How this Component's LOD uses the skin cache feature. | |
| TSortedMap< FName, FName, FDefaultAllocator, FNameFastLess > | SocketOverrideLookup | Mapping for socket overrides, key is the Source socket name and the value is the override socket name | |
| float | StreamingDistanceMultiplier | Allows adjusting the desired streaming distance of streaming textures that uses UV 0. | |
| EVisibilityBasedAnimTickOption | 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
| Type | Name | Description | |
|---|---|---|---|
USkinnedMeshComponent
(
const FObjectInitializer& ObjectInitializer |
|||
USkinnedMeshComponent
(
FVTableHelper& Helper |
Destructors
| Type | Name | Description | |
|---|---|---|---|
Functions
| Type | Name | Description | |
|---|---|---|---|
| void | AddExternalMorphSet
(
int32 LOD, |
Register an external set of GPU compressed morph targets. | |
| void | AddFollowerPoseComponent
(
USkinnedMeshComponent* SkinnedMeshComponent |
Add a follower component to the FollowerPoseComponents array | |
| void | AddSlavePoseComponent
(
USkinnedMeshComponent* SkinnedMeshComponent |
||
| void | AddSocketOverride
(
FName SourceSocketName, |
||
| bool | Allocate Transform Data array including SpaceBases, BoneVisibilityStates | ||
| void | Helpers allowing us to cache feature level | ||
| bool | BoneIsChildOf
(
FName BoneName, |
Tests if BoneName is child of (or equal to) ParentBoneName. | |
| void | CacheRefToLocalMatrices
(
TArray< FMatrix44f >& OutRefToLocal |
Caches the RefToLocal matrices. | |
| FBoxSphereBounds | CalcMeshBound
(
const FVector3f& RootOffset, |
Update Mesh Bound information based on input | |
| void | Clear the skin Weight Profile from all layers on this component. | ||
| void | ClearExternalMorphSets
(
int32 LOD |
Clear all externally registered morph target buffers. | |
| void | This update renderer with new revision number twice so to clear bone velocity for motion blur or temporal AA | ||
| void | Clear any applied ref pose override | ||
| void | ClearSkinWeightOverride
(
int32 LODIndex |
Clear any applied skin weight override | |
| void | ClearSkinWeightProfile
(
ESkinWeightProfileLayer InLayer |
Clear the skin weight profile from the given layer on this component, in case it is set. | |
| void | ClearVertexColorOverride
(
int32 LODIndex |
Clear any applied vertex color override | |
| int32 | Compute SkeletalMesh MinLOD that will be used by this component | ||
| void | ComputeSkinnedPositions
(
USkinnedMeshComponent* Component, |
CPU evaluation of the positions of all vertices (returned in component space) | |
| void | |||
| void | DispatchParallelTickPose
(
FActorComponentTickFunction* TickFunction |
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. | |
| void | EnableExternalEvaluationRateLimiting
(
bool bInEnable |
Manually enable/disable animation evaluation rate limiting | |
| void | EnableExternalInterpolation
(
bool bInEnable |
Enable non-URO-based interpolation | |
| void | EnableExternalTickRateControl
(
bool bInEnable |
Set whether we have our tick rate externally controlled non-URO-based interpolation | |
| void | EnableExternalUpdate
(
bool bInEnable |
Set us to tick this frame for non-URO-based interpolation | |
| void | Finalize bone transform of this current tick After this function, any query to bone transform should be latest of the data | ||
| FName | FindClosestBone
(
FVector TestLocation, |
Finds the closest bone to the given location | |
| FName | FindClosestBone_K2
(
FVector TestLocation, |
Finds the closest bone to the given location | |
| UMorphTarget * | FindMorphTarget
(
FName MorphTargetName |
Find a named MorphTarget from the current SkeletalMesh | |
| void | Flip the editable space base buffer | ||
| void | Forcibly update the renderer with a new revision number to assign the current bone velocity for motion blur or temporal AA | ||
| FMeshDeformerSet | Get the currently active MeshDeformer. | ||
| void | GetAdditionalRequiredBonesForLeader
(
int32 LODIndex, |
Override this function to add any additional required bones from followers to functions such as USkeletalMeshComponent::ComputeRequiredBones(). | |
| bool | Returns whether the component is set to always use a mesh deformer if one can be found in the project settings | ||
| const USkinnedMeshComponent * | |||
| FVector | GetBoneAxis
(
FName BoneName, |
Finds a vector pointing along the given axis of the given bone | |
| int32 | GetBoneIndex
(
FName BoneName |
Find the index of bone by name. | |
| FVector | GetBoneLocation
(
FName BoneName, |
Get Bone Location | |
| FMatrix | GetBoneMatrix
(
int32 BoneIndex |
Get Bone Matrix from index | |
| FName | GetBoneName
(
int32 BoneIndex |
Get Bone Name from index | |
| void | GetBoneNames
(
TArray< FName >& BoneNames |
Fills the given array with the names of all the bones in this component's current SkeletalMesh | |
| FQuat | GetBoneQuaternion
(
FName BoneName, |
Get Bone Rotation in Quaternion | |
| FTransform | GetBoneTransform
(
int32 BoneIndex, |
Get world space bone transform from bone index, also specifying the component transform to use | |
| FTransform | GetBoneTransform
(
FName InBoneName, |
Get world-space bone transform. | |
| FTransform | GetBoneTransform
(
int32 BoneIndex |
Get Bone Transform from index | |
| uint32 | |||
| const TArray< uint8 > & | Access BoneVisibilityStates for reading | ||
| FBoxSphereBounds | |||
| const TArray< FTransform > & | Access ComponentSpaceTransforms for reading | ||
| void | GetCPUSkinnedCachedFinalVertices
(
TArray< FFinalSkinVertex >& OutVertices |
||
| void | GetCPUSkinnedVertices
(
TArray< struct FFinalSkinVertex >& OutVertices, |
Get CPU skinned vertices for the specified LOD level. | |
| bool | Getter for bCPUSkinning member variable May return a different value from ShouldCPUSkin() | ||
| uint32 | |||
| void | GetCurrentRefToLocalMatrices
(
TArray< FMatrix44f >& OutRefToLocals, |
Return the skinning matrices used for rendering. | |
| TArray< FName > | Return the names of the skin weight profiles for all the layers | ||
| FName | Return the name of the skin weight profile that is currently set on the given layer, otherwise returns 'None' | ||
| const TOptional< FLinearColor > & | Get debug draw color | ||
| FTransform | GetDeltaTransformFromRefPose
(
FName BoneName, |
Get delta transform from reference pose based on BaseNode. | |
| TArray< uint8 > & | Get Access to the current editable bone visibility states | ||
| const TArray< uint8 > & | |||
| TArray< FTransform > & | Get Access to the current editable space bases | ||
| const TArray< FTransform > & | |||
| const FExternalMorphSets & | GetExternalMorphSets
(
int32 LOD |
Get the external morph sets for a given LOD. | |
| FExternalMorphSets & | GetExternalMorphSets
(
int32 LOD |
||
| const TArray< FExternalMorphSets > & | Get the array of external morph target sets. It is an array, one entry for each LOD. | ||
| FExternalMorphWeightData & | GetExternalMorphWeights
(
int32 LOD |
Get the weights for a given external morph target set at a specific LOD. | |
| const FExternalMorphWeightData & | GetExternalMorphWeights
(
int32 LOD |
Get the weights in read-only mode for a given external morph target set at a specific LOD. | |
| uint8 | Get the external tick rate | ||
| const TArray< TWeakObjectPtr< USkinnedMeshComponent > > & | Return current active list of follower components | ||
| int32 | GetForcedLOD () |
Get ForcedLodModel of the mesh component. | |
| bool | |||
| const TArray< int32 > & | |||
| int32 | GetLODBias () |
Get the LOD Bias of this component | |
| const TArray< int32 > & | |||
| int32 | Return value of MaterialIndexPreview | ||
| UMeshDeformerInstance * | |||
| UMeshDeformerInstance * | GetMeshDeformerInstanceForLOD
(
int32 LODIndex |
Gets the MeshDeformer for the given LOD. | |
| int32 | Max LOD at which to update or apply the MeshDeformer. | ||
| const Nanite::FResources * | |||
| int32 | GetNumBones () |
Returns the number of bones in the skeleton. | |
| int32 | Get current number of component space transorms | ||
| int32 | GetNumLODs () |
Get the number of LODs on this component | |
| FName | GetParentBone
(
FName BoneName |
Get Parent Bone of the input bone | |
| UPhysicsAsset * | Return PhysicsAsset for this SkeletalMeshComponent It will return SkeletalMesh's PhysicsAsset unless PhysicsAssetOverride is set for this component | ||
| void | GetPhysicsRequiredBones
(
const USkinnedAsset* SkinnedAsset, |
Animation required bones Get the bones used by the physics asset (if any), as these have to be updated even if LODed out. | |
| int32 | Get predicted LOD level. | ||
| void | GetPreSkinnedLocalBounds
(
FBoxSphereBounds& OutBounds |
Get the pre-skinning local space bounds for this component. | |
| uint32 | |||
| const TArray< uint8 > & | Const getters for previous transform idea | ||
| const TArray< FTransform > & | |||
| const TSharedPtr< FSkelMeshRefPoseOverride > & | Accessor for RefPoseOverride | ||
| FVector | GetRefPosePosition
(
int32 BoneIndex |
Gets the local-space position of a bone in the reference pose. | |
| FTransform | GetRefPoseTransform
(
int32 BoneIndex |
Gets the local-space transform of a bone in the reference pose. | |
| int32 | Return value of SectionIndexPreview | ||
| int32 | Return value of SelectedEditorMaterial | ||
| int32 | Return value of SelectedEditorSection | ||
| FSkeletalMeshRenderData * | Gets the skeletal mesh resource used for rendering the component. | ||
| USkinnedAsset * | Get the SkinnedAsset rendered for this mesh. | ||
| FVector3f | GetSkinnedVertexPosition
(
USkinnedMeshComponent* Component, |
Simple, CPU evaluation of a vertex's skinned position (returned in component space) | |
| FVector3f | GetSkinnedVertexPosition
(
USkinnedMeshComponent* Component, |
Simple, CPU evaluation of a vertex's skinned position (returned in component space) | |
| FSkinWeightVertexBuffer * | GetSkinWeightBuffer
(
int32 LODIndex |
Returns skin weight vertex buffer to use for specific LOD (will look at override) | |
| const TArray< TWeakObjectPtr< USkinnedMeshComponent > > & | |||
| FName | GetSocketBoneName
(
FName InSocketName |
Returns bone name linked to a given named socket on the skeletal mesh component. | |
| USkeletalMeshSocket const * | GetSocketByName
(
FName InSocketName |
||
| USkeletalMeshSocket const * | GetSocketInfoByName
(
FName InSocketName, |
||
| void | GetSocketRequiredBones
(
const USkinnedAsset* SkinnedAsset, |
Get the bones that are used by sockets. | |
| bool | GetTwistAndSwingAngleOfDeltaRotationFromRefPose
(
FName BoneName, |
Get Twist and Swing Angle in Degree of Delta Rotation from Reference Pose in Local space | |
| void | GetUpdateClothSimulationData_AnyThread
(
TMap< int32, FClothSimulData >& OutClothSimulData, |
Override this function to pass on cloth simulation data (or any deformable using the cloth pipeline) to the skeletal renderer. | |
| int32 | GetValidMinLOD
(
const int32 InMinLODIndex |
Validate the min LOD value of the mesh component by iterating over render data to make sure we get something usable. | |
| FColor | GetVertexColor
(
int32 VertexIndex |
Returns color of the vertex. | |
| FVector2D | GetVertexUV
(
int32 VertexIndex, |
Returns texture coordinates of the vertex. | |
| void | HandleFeatureLevelChanged
(
ERHIFeatureLevel::Type InFeatureLevel, |
||
| void | HandlePostWorldCreation
(
UWorld* InWorld |
||
| bool | HasExternalMorphSet
(
int32 LOD, |
Do we have a given set of external morph targets? | |
| bool | |||
| bool | Returns true if the component has valid Nanite render data. | ||
| void | HideBone
(
int32 BoneIndex, |
Hides the specified bone. You can also set option for physics body. | |
| void | HideBoneByName
(
FName BoneName, |
Hides the specified bone with name. | |
| void | InitLODInfos () |
Initialize the LOD entries for the component | |
| void | Invalidate Cached Bounds, when Mesh Component has been updated. | ||
| bool | IsBoneHidden
(
int32 BoneIndex |
Determines if the specified bone is hidden. | |
| bool | IsBoneHiddenByName
(
FName BoneName |
Determines if the specified bone is hidden. | |
| bool | IsMaterialSectionShown
(
int32 MaterialID, |
Returns whether a specific material section is currently hidden on this component (by using ShowMaterialSection) | |
| bool | |||
| bool | |||
| bool | |||
| bool | IsSkinCacheAllowed
(
int32 LodIdx |
||
| bool | Check whether a skin weight profile is currently pending load / create | ||
| bool | Check whether we should be interpolating due to external settings | ||
| bool | Check whether we we have our tick rate externally controlled | ||
| bool | Check whether a skin weight profile is currently set on any layer. | ||
| bool | IsValidExternalMorphSetLODIndex
(
int32 LOD |
Check whether a given LOD index is valid for the external morph sets. | |
| void | MergeInBoneIndexArrays
(
TArray< FBoneIndexType >& BaseArray, |
Takes sorted array Base and then adds any elements from sorted array Insert which is missing from it, preserving order. | |
| void | OverrideMinLOD
(
int32 InNewMinLOD |
Override the Min LOD of the mesh component | |
| void | Function to operate on mesh object after its created, but before it's attached. | ||
| void | Rebuild BoneVisibilityStates array. Mostly refresh information of bones for BVS_HiddenByParent | ||
| void | RefreshBoneTransforms
(
FActorComponentTickFunction* TickFunction |
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.) | |
| void | RefreshExternalMorphTargetWeights
(
bool bZeroOldWeights |
Refresh the external morph target weight buffers. | |
| void | Refresh Follower Components if exists | ||
| void | |||
| void | Recreates update rate params and internal tracker data | ||
| FDelegateHandle | RegisterOnBoneTransformsFinalizedDelegate
(
const FOnBoneTransformsFinalizedMultiCast::FDelegate& |
Register an OnBoneTransformsFinalized callback which can be called in FinalizeBoneTransform(). | |
| void | Release any rendering resources owned by this component | ||
| void | Removes update rate params and internal tracker data | ||
| void | |||
| void | RemoveExternalMorphSet
(
int32 LOD, |
Remove a given set of external GPU based morph targets. | |
| void | RemoveFollowerPoseComponent
(
USkinnedMeshComponent* SkinnedMeshComponent |
Remove a follower component from the FollowerPoseComponents array | |
| void | RemoveSlavePoseComponent
(
USkinnedMeshComponent* SkinnedMeshComponent |
||
| void | RemoveSocketOverrides
(
FName SourceSocketName |
||
| void | Resize the morph target sets array to the number of LODs. | ||
| void | SetAlwaysUseMeshDeformer
(
bool bShouldAlwaysUseMeshDeformer |
Always use a MeshDeformer as long as one can be found in the project settings | |
| void | SetCapsuleIndirectShadowMinVisibility
(
float NewValue |
||
| void | SetCastCapsuleDirectShadow
(
bool bNewValue |
||
| void | SetCastCapsuleIndirectShadow
(
bool bNewValue |
||
| void | SetComponentSpaceTransformsDoubleBuffering
(
bool bInDoubleBufferedComponentSpaceTransforms |
||
| void | SetCPUSkinningEnabled
(
bool bEnable, |
Set whether this component uses CPU skinning Notes: | |
| void | SetDebugDrawColor
(
const FLinearColor& InColor |
Set debug draw color | |
| void | SetDrawDebugSkeleton
(
bool bInDraw |
Set whether to draw this mesh's debug skeleton | |
| void | SetExternalDeltaTime
(
float InDeltaTime |
Set non-URO-based delta time | |
| void | SetExternalInterpolationAlpha
(
float InAlpha |
Set non-URO-based interpolation alpha | |
| void | SetExternalTickRate
(
uint8 InTickRate |
Set the external tick rate | |
| void | SetForcedLOD
(
int32 InNewForcedLOD |
Set ForcedLodModel of the mesh component | |
| void | SetForceUpdateDynamicDataImmediately
(
bool bForceUpdateImmediately |
||
| void | SetForceWireframe
(
bool InForceWireframe |
Sets the value of the bForceWireframe flag and reattaches the component as necessary. | |
| void | SetLeaderPoseComponent
(
USkinnedMeshComponent* NewLeaderBoneComponent, |
Set LeaderPoseComponent for this component | |
| void | SetMasterPoseComponent
(
USkinnedMeshComponent* NewMasterBoneComponent, |
||
| void | SetMaterialPreview
(
int32 InMaterialIndexPreview |
Sets the value of the MaterialIndexPreview option. | |
| void | SetMeshDeformer
(
UMeshDeformer* InMeshDeformer |
Change the MeshDeformer that is used for this Component. | |
| void | SetMeshDeformer
(
bool bInSetMeshDeformer, |
Set the MeshDeformer and update the internal MeshDeformerInstance. | |
| void | Set MinLodModel of the mesh component | ||
| void | SetPhysicsAsset
(
UPhysicsAsset* NewPhysicsAsset, |
Override the Physics Asset of the mesh. | |
| void | SetPredictedLODLevel
(
int32 InPredictedLODLevel |
Set predicted LOD level. | |
| void | SetRefPoseOverride
(
const TArray< FTransform >& NewRefPoseTransforms |
Apply an override for the current mesh ref pose | |
| void | SetRenderStatic
(
bool bNewValue |
Set whether this skinned mesh should be rendered as static mesh in a reference pose | |
| void | SetSectionPreview
(
int32 InSectionIndexPreview |
Sets the value of the SectionIndexPreview option. | |
| void | SetSelectedEditorMaterial
(
int32 NewSelectedEditorMaterial |
Sets the value of the SelectedEditorMaterial option. | |
| void | SetSelectedEditorSection
(
int32 NewSelectedEditorSection |
Sets the value of the SelectedEditorSection option. | |
| void | SetSkeletalMesh
(
USkeletalMesh* NewMesh, |
Change the SkeletalMesh that is rendered for this Component. | |
| void | SetSkinnedAsset
(
USkinnedAsset* InSkinnedAsset |
Change the SkinnedAsset that is rendered without reinitializing this Component. | |
| void | SetSkinnedAssetAndUpdate
(
USkinnedAsset* NewMesh, |
Change the SkinnedAsset that is rendered for this Component. | |
| void | SetSkinWeightOverride
(
int32 LODIndex, |
Allow override of skin weights on a per-component basis. | |
| bool | SetSkinWeightProfile
(
FName InProfileName, |
Set up an override skin weight profile for this component on the given layer. | |
| bool | SetSkinWeightProfileStack
(
const FSkinWeightProfileStack& InProfileStack |
Set the currently active skin weight profile stack to the given stack. | |
| void | SetVertexColorOverride
(
int32 LODIndex, |
Allow override of vertex colors on a per-component basis. | |
| void | SetVertexColorOverride_LinearColor
(
int32 LODIndex, |
Allow override of vertex colors on a per-component basis, taking array of Blueprint-friendly LinearColors. | |
| bool | Function returns whether or not CPU skinning should be applied Allows the editor to override the skinning state for editor tools | ||
| bool | Get whether to draw this mesh's debug skeleton | ||
| bool | Function returns whether Nanite should be used to render and skin this mesh. | ||
| bool | Should tick pose (by calling TickPose) in Tick | ||
| bool | Return true if it needs update. Return false if not | ||
| bool | ShouldUpdateTransform
(
bool bLODHasChanged |
Should update transform in Tick | |
| bool | |||
| void | ShowAllMaterialSections
(
int32 LODIndex |
Clear any material visibility modifications made by ShowMaterialSection | |
| void | ShowMaterialSection
(
int32 MaterialID, |
Allows hiding of a particular material (by ID) on this instance of a SkeletalMesh. | |
| void | TickPose
(
float DeltaTime, |
Tick Pose, this function ticks and do whatever it needs to do in this frame, should be called before RefreshBoneTransforms | |
| void | Transform a location/rotation in bone relative space to world space. | ||
| void | Transform a location/rotation from world space to bone relative space. | ||
| void | UnHideBone
(
int32 BoneIndex |
Unhides the specified bone. | |
| void | UnHideBoneByName
(
FName BoneName |
UnHide the specified bone with name. | |
| void | UnloadSkinWeightProfile
(
FName InProfileName |
Unload a Skin Weight Profile's skin weight buffer (if created) | |
| void | Unregister an OnBoneTransformsFinalized callback. | ||
| void | Unset any MeshDeformer applied to this Component. | ||
| void | Update Follower Component. This gets called when LeaderPoseComponent!=nullptr | ||
| void | Update LeaderBoneMap for LeaderPoseComponent and this component | ||
| bool | Update the PredictedLODLevel and MaxDistanceFactor in the component from its MeshObject. | ||
| bool | UpdateLODStatus_Internal
(
int32 InLeaderPoseComponentPredictedLODLevel, |
Helper function for UpdateLODStatus, called with a valid index for InLeaderPoseComponentPredictedLODLevel when updating LOD status for follower components | |
| void | |||
| void | Checks/updates material usage on proxy based on current morph target usage | ||
| void | Queues an update of the Skin Weight Buffer used by the current MeshObject | ||
| void | |||
| void | UpdateVisualizeLODString
(
FString& DebugString |
Overridden from UMeshComponent
| Type | Name | Description | |
|---|---|---|---|
| UMaterialInterface * | Get the default overlay material used by a mesh | ||
| float | Get the default overlay material max draw distance | ||
| bool | GetMaterialStreamingData
(
int32 MaterialIndex, |
Get the material info for texture streaming. Return whether the data is valid or not. | |
| bool | PrestreamMeshLODs
(
float Seconds |
Tell the streaming system to start streaming in all LODs for the mesh. | |
| void | RegisterLODStreamingCallback
(
FLODStreamingCallback&& Callback, |
Register a one-time callback that will be called when criteria met | |
| void | RegisterLODStreamingCallback
(
FLODStreamingCallback&& CallbackStreamingStart, |
Register a one-time callback that will be called when streaming starts or ends. |
Overridden from UPrimitiveComponent
| Type | Name | Description | |
|---|---|---|---|
| void | CollectPSOPrecacheData
(
const FPSOPrecacheParams& BasePrecachePSOParams, |
Precache all PSOs which can be used by the component | |
| FPrimitiveSceneProxy * | Creates a proxy to represent the primitive to the scene manager in the rendering thread. | ||
| UMaterialInterface * | GetMaterial
(
int32 ElementIndex |
Returns the material used by the element at the specified index | |
| int32 | GetMaterialIndex
(
FName MaterialSlotName |
||
| TArray< FName > | |||
| int32 | Return number of material elements in this primitive | ||
| void | GetPrimitiveStats
(
FPrimitiveStats& PrimitiveStats |
||
| void | GetStreamingRenderAssetInfo
(
FStreamingTextureLevelContext& LevelContext, |
Enumerates the streaming textures/meshes used by the primitive. | |
| float | |||
| void | GetUsedMaterials
(
TArray< UMaterialInterface* >& OutMaterials, |
Retrieves the materials used in this component | |
| bool | IsMaterialSlotNameValid
(
FName MaterialSlotName |
Overridden from USceneComponent
| Type | Name | Description | |
|---|---|---|---|
| FBoxSphereBounds | CalcBounds
(
const FTransform& LocalToWorld |
Calculate the bounds of the component. Default behavior is a bounding box/sphere of zero size. | |
| bool | DoesSocketExist
(
FName InSocketName |
Return true if socket with the given name exists | |
| bool | GetMaterialPropertyPath
(
int32 ElementIndex, |
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 | |
| FTransform | GetSocketTransform
(
FName InSocketName, |
Get world-space socket transform. | |
| bool | Returns true if this component has any sockets | ||
| void | QuerySupportedSockets
(
TArray< FComponentSocketDescription >& OutSockets |
Get a list of sockets this component contains | |
| void | UpdateBounds () |
Update the Bounds of the component. | |
| bool | UpdateOverlapsImpl
(
const TOverlapArrayView* NewPendingOverlaps, |
Queries world and updates overlap tracking state for this component. |
Overridden from UActorComponent
| Type | Name | Description | |
|---|---|---|---|
| UObject const * | Give a readable name for this component, including asset name if applicable | ||
| void | BeginPlay () |
Used to detach physics objects before simulation begins. | |
| void | CreateRenderState_Concurrent
(
FRegisterComponentContext* Context |
Used to create any rendering thread information for this component | |
| void | Used to shut down any rendering thread structure for this component | ||
| void | OnRegister () |
Called when a component is registered, after Scene is set, but before CreateRenderState_Concurrent or OnCreatePhysicsState are called. | |
| void | OnUnregister () |
Called when a component is unregistered. | |
| bool | Return true if this component requires end of frame recreates to happen from the game thread. | ||
| void | Called to send dynamic data for this component to the rendering thread | ||
| void | TickComponent
(
float DeltaTime, |
Function called every frame on this ActorComponent. |
Overridden from UObject
| Type | Name | Description | |
|---|---|---|---|
| void | BeginDestroy () |
Called before destroying the object. | |
| bool | CanEditChange
(
const FProperty* InProperty |
Called by the editor to query whether a property of this object is allowed to be modified. | |
| FString | This function actually does the work for the GetDetailedInfo() and is virtual. | ||
| void | GetResourceSizeEx
(
FResourceSizeEx& CumulativeResourceSize |
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). | |
| void | PostEditChangeProperty
(
FPropertyChangedEvent& PropertyChangedEvent |
Called when a property on this object has been modified externally | |
| void | PostLoad () |
Do any object-specific cleanup required immediately after loading an object. | |
| void | Handles reading, writing, and reference collecting using FArchive. |
Overridden from IInterface_AsyncCompilation
| Type | Name | Description | |
|---|---|---|---|
| bool | IsCompiling () |
Returns whether this component is still being compiled or dependent on other objects being compiled. |
Classes
| Type | Name | Description | |
|---|---|---|---|
| FMissingLeaderBoneCacheEntry | Cached relative transform for follower bones that are missing in the leader |
Enums
| Type | Name | Description | |
|---|---|---|---|
| EBoneTransformUpdateMethod |
Deprecated Variables
| Type | Name | Description | |
|---|---|---|---|
| TObjectPtr< UMeshDeformerInstance > | MeshDeformerInstance_DEPRECATED | ||
| FColor | WireframeColor_DEPRECATED | Wireframe color |
Deprecated Functions
| Type | Name | Description | |
|---|---|---|---|
| USkeletalMesh * | Get the SkeletalMesh rendered for this mesh. | ||
| void | SetSkeletalMesh_DEPRECATED
(
USkeletalMesh* NewMesh |