Navigation
API > API/Runtime > API/Runtime/Engine
Data table for mirroring bones, notifies, and curves. The mirroring table allows self mirroring with entries where the name and mirrored name are identical
| Name | UMirrorDataTable |
| Type | class |
| Header File | /Engine/Source/Runtime/Engine/Classes/Animation/MirrorDataTable.h |
| Include Path | #include "Animation/MirrorDataTable.h" |
Syntax
UCLASS (MinimalAPI, BlueprintType, HideCategories=(ImportOptions, ImportSource))
class UMirrorDataTable : public UDataTable
Inheritance Hierarchy
- UObjectBase → UObjectBaseUtility → UObject → UDataTable → UMirrorDataTable
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
UMirrorDataTable
(
const FObjectInitializer& ObjectInitializer |
Animation/MirrorDataTable.h |
Structs
| Name | Remarks |
|---|---|
| FCategoryState | Contains entry data for a given row type (bone/notify/sync marker/curve/custom). |
| FFindReplaceOptions | Options for updating the table from find/replace expressions. |
Enums
Public
| Name | Remarks |
|---|---|
| ESyncStatus | Describes the sync relationship between the mirror data table and its associated skeleton. |
Variables
Public
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| AnimNotifyToMirrorAnimNotifyMap | TMap< FName, FName > | Map from animation notify to mirrored animation notify. | Animation/MirrorDataTable.h | |
| bMirrorRootMotion | bool | Used to determine if the root motion attribute should be mirrored when using this mirror data table. | Animation/MirrorDataTable.h |
|
| BoneScope | EMirrorTableBoneRefreshScope | Determines which bones are updated when refreshing the table from the associated skeleton. | Animation/MirrorDataTable.h |
|
| BoneScopeNameList | TSet< FName > | The set of bones to refresh when Bone Scope is set to 'Explicit Bone List'. | Animation/MirrorDataTable.h | |
| BoneToMirrorBoneIndex | TCustomBoneIndexArray< FSkeletonPoseBoneIndex, FSkeletonPoseBoneIndex > | Index of the mirror bone for a given bone index in the reference skeleton, or INDEX_NONE if the bone is not mirrored. | Animation/MirrorDataTable.h | |
| CurveToMirrorCurveMap | TMap< FName, FName > | Map from animation curve to mirrored animation curve | Animation/MirrorDataTable.h | |
| DisabledEntries | TSet< FName > | Set of all the disabled mirror entries/pairs. | Animation/MirrorDataTable.h | |
| MirrorAxis | TEnumAsByte< EAxis::Type > | Axis to mirror across (X/Y/Z). Use to flip transforms/poses. | Animation/MirrorDataTable.h |
|
| MirrorFindReplaceExpressions | TArray< FMirrorFindReplaceExpression > | Used to compute the mirror pair of the data table entries. | Animation/MirrorDataTable.h |
|
| Skeleton | TObjectPtr< USkeleton > | Animation/MirrorDataTable.h |
|
|
| SyncToMirrorSyncMap | TMap< FName, FName > | Map from sync marker to mirrored sync marker. | Animation/MirrorDataTable.h |
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| SkeletonHierarchyGuid | FGuid | Animation/MirrorDataTable.h | ||
| SkeletonVirtualBonesHierarchyGuid | FGuid | Animation/MirrorDataTable.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
void FillCompactPoseAndComponentRefRotations
(
const FBoneContainer& BoneContainer, |
Populates two arrays with a mapping of compact pose mirror bones and reference rotations | Animation/MirrorDataTable.h | |
void FillMirrorBoneIndexes
(
const USkeleton* Skeleton, |
Converts the mirror data table Name -> MirrorName map into an index map for the given ReferenceSkeleton | Animation/MirrorDataTable.h | |
| Evaluate the MirrorFindReplaceExpressions on InName and return the replaced value of the first entry that matches | Animation/MirrorDataTable.h | ||
void FindReplaceMirroredNames () |
Populates the table by running the MirrorFindReplaceExpressions on bone names in the Skeleton. | Animation/MirrorDataTable.h | |
ESyncStatus GetSkeletonSyncStatus() |
Returns the sync status of the table relative to its associated skeleton. | Animation/MirrorDataTable.h | |
void InvalidateCachedSkeletonData () |
Marks the cached skeleton data as stale. | Animation/MirrorDataTable.h | |
void UpdateFromFindReplaceExpressions
(
const FFindReplaceOptions& Options |
Updates the table from the current find/replace expressions and skeleton data. | Animation/MirrorDataTable.h |
Public Virtual
Overridden from UObject
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void PostEditChangeProperty
(
FPropertyChangedEvent& PropertyChangedEvent |
Animation/MirrorDataTable.h | ||
virtual void PostLoad() |
Animation/MirrorDataTable.h |
Protected
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
void FillMirrorArrays() |
Fill BoneToMirrorBoneIndex, CurveMirrorSourceUIDArray, CurveMirrorTargetUIDArray and NotifyToMirrorNotifyIndex based on the Skeleton and Table Contents. | Animation/MirrorDataTable.h |
Static
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
static void FillCompactPoseMirrorBones
(
const FBoneContainer& BoneContainer, |
Create Mirror Bone Indices for the provided BoneContainer. | Animation/MirrorDataTable.h | |
static FName FindBestMirroredBone
(
const FName InBoneName, |
Finds the "best matching" mirrored bone across the specified axis. | Animation/MirrorDataTable.h | |
static FName GetMirrorName
(
FName InName, |
Apply the provided find and replace strings against the given name, returning the mirrored name or NAME_None if none of the find strings are found in the name. | Animation/MirrorDataTable.h | |
| Apply the animation settings mirroring find and replace strings against the given name, returning the mirrored name or NAME_None if none of the find strings are found in the name. | Animation/MirrorDataTable.h |