Navigation
API > API/Runtime > API/Runtime/Engine
In AnimationRunTime Library, we extract animation data based on Skeleton hierarchy, not ref pose hierarchy. Ref pose will need to be re-mapped later
| Name | FAnimationRuntime |
| Type | class |
| Header File | /Engine/Source/Runtime/Engine/Public/AnimationRuntime.h |
| Include Path | #include "AnimationRuntime.h" |
Syntax
class FAnimationRuntime
Enums
Public
| Name | Remarks |
|---|---|
| EBlendPosesPerBoneFilterFlags | Blending flags for BlendPosesPerBoneFilter |
Functions
Static
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
static void AccumulateAdditivePose
(
FAnimationPoseData& BaseAnimationPoseData, |
AnimationRuntime.h | ||
static void AccumulateAdditivePose
(
FCompactPose& BasePose, |
Accumulate Additive Pose based on AdditiveType | AnimationRuntime.h | |
static void AccumulateLocalSpaceAdditivePose
(
FAnimationPoseData& BaseAnimationPoseData, |
AnimationRuntime.h | ||
static void AccumulateLocalSpaceAdditivePose
(
FCompactPose& BasePose, |
Accumulates weighted AdditivePose to BasePose. Rotations are NOT normalized. | AnimationRuntime.h | |
static void AccumulateLocalSpaceAdditivePoseInternal
(
FCompactPose& BasePose, |
Accumulates weighted AdditivePose to BasePose. Rotations are NOT normalized. | AnimationRuntime.h | |
static void AccumulateMeshSpaceRotationAdditiveToLocalPose
(
FCompactPose& BasePose, |
Accumulate a MeshSpaceRotation Additive pose to a local pose. Rotations are NOT normalized | AnimationRuntime.h | |
static void AccumulateMeshSpaceRotationAdditiveToLocalPose
(
FAnimationPoseData& BaseAnimationPoseData, |
AnimationRuntime.h | ||
static void AccumulateMeshSpaceRotationAdditiveToLocalPoseInternal
(
FCompactPose& BasePose, |
Accumulate a MeshSpaceRotation Additive pose to a local pose. Rotations are NOT normalized | AnimationRuntime.h | |
static void AccumulateRootSpaceAdditivePoseInternal
(
FCompactPose& BasePose, |
Accumulate a RootSpaceRotation Additive pose to a local pose. Rotations are NOT normalized | AnimationRuntime.h | |
static void AccumulateRootSpaceRotationAdditiveToLocalPose
(
FAnimationPoseData& BaseAnimationPoseData, |
AnimationRuntime.h | ||
static ETypeAdvanceAnim AdvanceTime
(
const bool bAllowLooping, |
Advance CurrentTime to CurrentTime + MoveDelta. | AnimationRuntime.h | |
static void AppendActiveMorphTargets
(
const USkeletalMesh* InSkeletalMesh, |
Combine CurveKeys (that reference morph targets by name) and ActiveAnims (that reference morphs by reference) into the ActiveMorphTargets array. | AnimationRuntime.h | |
static void ApplyWeightToTransform
(
const FBoneContainer& RequiredBones, |
Apply Weight to the Transform Atoms = Weight * Atoms at the end | AnimationRuntime.h | |
static void BlendPosesPerBoneFilter
(
FCompactPose& BasePose, |
Blend Poses per bone weights : The BasePoses + BlendPoses(SourceIndex) * Blend Weights(BoneIndex) Please note BlendWeights are array, so you can define per bone base This supports multi per bone blending, but only one pose as blend at a time per track PerBoneBlendWeights.Num() == Atoms.Num() | AnimationRuntime.h | |
static void BlendPosesTogether
(
TArrayView< const FCompactPose > SourcePoses, |
AnimationRuntime.h | ||
static void BlendPosesTogether
(
TArrayView< const FCompactPose > SourcePoses, |
Blends together a set of poses, each with a given weight. | AnimationRuntime.h | |
static void BlendPosesTogether
(
TArrayView< const FCompactPose > SourcePoses, |
Blends together a set of poses, each with a given weight. | AnimationRuntime.h | |
static void BlendPosesTogether
(
TArrayView< const FCompactPose > SourcePoses, |
AnimationRuntime.h | ||
static void BlendPosesTogetherIndirect
(
TArrayView< const FCompactPose*const > SourcePoses, |
AnimationRuntime.h | ||
static void BlendPosesTogetherIndirect
(
TArrayView< const FCompactPose*const > SourcePoses, |
Blends together a set of poses, each with a given weight. | AnimationRuntime.h | |
static void BlendPosesTogetherPerBone
(
TArrayView< const FCompactPose > SourcePoses, |
Blends together a set of poses, each with a given weight. | AnimationRuntime.h | |
static void BlendPosesTogetherPerBone
(
TArrayView< const FCompactPose > SourcePoses, |
AnimationRuntime.h | ||
static void BlendPosesTogetherPerBone
(
TArrayView< const FCompactPose > SourcePoses, |
Blends together a set of poses, each with a given weight. | AnimationRuntime.h | |
static void BlendPosesTogetherPerBone
(
TArrayView< const FCompactPose > SourcePoses, |
AnimationRuntime.h | ||
static void BlendPosesTogetherPerBoneInMeshSpace
(
TArrayView< FCompactPose > SourcePoses, |
Blends together a set of local space (not mesh space) poses, each with a given weight. | AnimationRuntime.h | |
static void BlendPosesTogetherPerBoneInMeshSpace
(
TArrayView< FCompactPose > SourcePoses, |
Blends together a set of local space (not mesh space) poses, each with a given weight. | AnimationRuntime.h | |
static void BlendPosesTogetherPerBoneRemapped
(
TArrayView< const FCompactPose > SourcePoses, |
AnimationRuntime.h | ||
| Blend Array of Transforms by weight | AnimationRuntime.h | ||
static void BlendTwoPosesTogether
(
const FAnimationPoseData& SourcePoseOneData, |
AnimationRuntime.h | ||
static void BlendTwoPosesTogether
(
const FCompactPose& SourcePose1, |
Blends together two poses. | AnimationRuntime.h | |
static void BlendTwoPosesTogetherPerBone
(
const FAnimationPoseData& SourcePoseOneData, |
AnimationRuntime.h | ||
static void BlendTwoPosesTogetherPerBone
(
const FCompactPose& SourcePoseOneData, |
AnimationRuntime.h | ||
static void BlendTwoPosesTogetherPerBone
(
const FCompactPose& SourcePose1, |
Blends together a set of poses, each with a given weight. | AnimationRuntime.h | |
static void CombineWithAdditiveAnimations
(
int32 NumAdditivePoses, |
AnimationRuntime.h | ||
| AnimationRuntime.h | |||
static void ConvertBoneSpaceTransformToCS
(
const FTransform& ComponentTransform, |
Convert a FTransform in a specified bone space to ComponentSpace. | AnimationRuntime.h | |
static void ConvertCSTransformToBoneSpace
(
const FTransform& ComponentTransform, |
Convert a ComponentSpace FTransform to specified bone space. | AnimationRuntime.h | |
static void ConvertMeshRotationPoseToLocalSpace
(
FCompactPose& Pose |
Convert a MeshSpaceRotation pose to Local Space. Rotations are NOT normalized. | AnimationRuntime.h | |
static void ConvertPoseToAdditive
(
FCompactPose& TargetPose, |
Convert TargetPose into an AdditivePose, by doing TargetPose = TargetPose - BasePose | AnimationRuntime.h | |
static void ConvertPoseToMeshRotation
(
FCompactPose& LocalPose |
Convert LocalPose into MeshSpaceRotations. Rotations are NOT normalized. | AnimationRuntime.h | |
static void ConvertPoseToMeshSpace
(
const TArray< FTransform >& LocalTransforms, |
Convert LocalTransforms into MeshSpaceTransforms over RequiredBones. | AnimationRuntime.h | |
static void ConvertTransformToAdditive
(
FTransform& TargetTrasnform, |
Convert transform to additive | AnimationRuntime.h | |
static void CreateMaskWeights
(
TArray< FPerBoneBlendWeight >& BoneBlendWeights, |
Create Mask Weight for skeleton joints, not per mesh or per required bones You'll have to filter properly with correct mesh joint or required bones The depth should not change based on LOD or mesh or skeleton They still should contain same depth | AnimationRuntime.h | |
static void CreateMaskWeights
(
TArray< FPerBoneBlendWeight >& BoneBlendWeights, |
Create Mask Weight for skeleton joints, not per mesh or per required bones Individual alphas are read from a BlendProfile using a BlendMask mode | AnimationRuntime.h | |
static void EnsureParentsPresent
(
TArray< FBoneIndexType >& BoneIndices, |
Utility for taking an array of bone indices and ensuring that all parents are present (ie. all bones between those in the array and the root are present). | AnimationRuntime.h | |
static void ExcludeBonesWithNoParents
(
const TArray< int32 >& BoneIndices, |
AnimationRuntime.h | ||
static void FillUpComponentSpaceTransforms
(
const FReferenceSkeleton& RefSkeleton, |
AnimationRuntime.h | ||
| AnimationRuntime.h | |||
static void FillWithRefPose
(
TArray< FTransform >& OutAtoms, |
Fill ref pose | AnimationRuntime.h | |
static EBoneTranslationRetargetingMode::Type GetBoneTranslationRetargetingMode
(
const bool bUseSourceRetargetModes, |
Get the translational retargeting mode for a given bone on the target skeleton when sampling a given source animation. | AnimationRuntime.h | |
static FTransform GetComponentSpaceRefPose
(
const FCompactPoseBoneIndex& CompactPoseBoneIndex, |
Get Reference Component Space Transform | AnimationRuntime.h | |
static FTransform GetComponentSpaceTransform
(
const FReferenceSkeleton& RefSkeleton, |
AnimationRuntime.h | ||
static FTransform GetComponentSpaceTransformRefPose
(
const FReferenceSkeleton& RefSkeleton, |
Space bases | AnimationRuntime.h | |
static const FTransform & GetComponentSpaceTransformWithCache
(
const FReferenceSkeleton& InRefSkeleton, |
Calculate the component-space bone transform for the specified bone. | AnimationRuntime.h | |
static void GetKeyIndicesFromTime
(
int32& OutKeyIndex1, |
Get Key Indices (start/end with alpha from start) with input parameter Time, NumKeys from % from StartKeyIndex, meaning (CurrentKeyIndex(float)-StartKeyIndex)/(EndKeyIndex-StartKeyIndex) by this Start-End, it will be between 0-(NumKeys-1), not number of Pos/Rot key tracks The FramesPerSecond parameter must be the sample rate of the animation data, for example 30. | AnimationRuntime.h | |
static void GetKeyIndicesFromTime
(
int32& OutKeyIndex1, |
Get KeyIndices using FFrameRate::AsFrameTime to calculate the keys and alpha value | AnimationRuntime.h | |
static FTransform GetSpaceTransform
(
FA2CSPose& Pose, |
AnimationRuntime.h | ||
static FTransform GetSpaceTransform
(
FA2Pose& Pose, |
FA2Pose/FA2CSPose Interfaces for template functions. | AnimationRuntime.h | |
static int32 GetStringDistance
(
const FString& First, |
Calculate distance how close two strings are. | AnimationRuntime.h | |
static bool HasWeight
(
float Weight |
AnimationRuntime.h | ||
static void InitializeTransform
(
const FBoneContainer& RequiredBones, |
AnimationRuntime.h | ||
static bool IsFullWeight
(
float Weight |
Weight utility functions | AnimationRuntime.h | |
static void LerpBoneTransforms
(
TArray< FTransform >& A, |
Lerp for BoneTransforms. | AnimationRuntime.h | |
static void LerpPoses
(
FCompactPose& PoseA, |
Lerp for FCompactPose. | AnimationRuntime.h | |
static void LerpPosesPerBone
(
FCompactPose& PoseA, |
Lerp for FCompactPose. | AnimationRuntime.h | |
static void LerpPosesWithBoneIndexList
(
FCompactPose& PoseA, |
Lerp for FCompactPose. | AnimationRuntime.h | |
static void MakeSkeletonRefPoseFromMesh
(
const USkeletalMesh* InMesh, |
AnimationRuntime.h | ||
static void MirrorCurves
(
FBlendedCurve& Curves, |
Mirror (swap) curves with the specified MirrorDataTable. | AnimationRuntime.h | |
static void MirrorPose
(
FCompactPose& Pose, |
Mirror a pose with the specified MirrorDataTable. | AnimationRuntime.h | |
static void MirrorPose
(
FCompactPose& Pose, |
Mirror Pose using cached mirror bones and components space arrays. | AnimationRuntime.h | |
static FQuat MirrorQuat
(
const FQuat& Q, |
Mirror a quaternion across the specified mirror axis | AnimationRuntime.h | |
static FVector MirrorVector
(
const FVector& V, |
Mirror a vector across the specified mirror axis | AnimationRuntime.h | |
static void NormalizeRotations
(
FTransformArrayA2& Atoms |
AnimationRuntime.h | ||
static void NormalizeRotations
(
const FBoneContainer& RequiredBones, |
AnimationRuntime.h | ||
static void RetargetBoneTransform
(
const USkeleton* SourceSkeleton, |
Retarget a single bone transform, to apply right after extraction. | AnimationRuntime.h | |
static void RetargetBoneTransform
(
const USkeleton* MySkeleton, |
AnimationRuntime.h | ||
static void SetSpaceTransform
(
FA2Pose& Pose, |
AnimationRuntime.h | ||
static void SetSpaceTransform
(
FA2CSPose& Pose, |
AnimationRuntime.h | ||
static void TickBlendWeight
(
float DeltaTime, |
AnimationRuntime.h | ||
static void UpdateDesiredBoneWeight
(
const TArrayView< FPerBoneBlendWeight > SrcBoneBlendWeights, |
AnimationRuntime.h |