UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AnimSequenceHelpers.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
7#include "BoneContainer.h"
8#include "Containers/Array.h"
10
11class UAnimSequence;
13class UAnimDataController;
15class FName;
16struct FCompactPose;
17struct FRawCurveTracks;
24
25enum class EAnimInterpolationType : uint8;
26
27namespace UE {
28
29namespace Anim {
30
31#if WITH_EDITOR
42 UE_DEPRECATED(5.1, "Use BuildPoseFromModel with different signature instead")
43 ENGINE_API void BuildPoseFromModel(const IAnimationDataModel* Model, FCompactPose& OutPose, const float Time, const EAnimInterpolationType& InterpolationType, const FName& RetargetSource, const TArray<FTransform>& RetargetTransforms);
44
55 ENGINE_API void BuildPoseFromModel(const IAnimationDataModel* Model, FAnimationPoseData& OutPoseData, const double Time, const EAnimInterpolationType& InterpolationType, const FName& RetargetSource, const TArray<FTransform>& RetargetTransforms);
56
65
75
85 UE_DEPRECATED(5.2, "GetBoneTransformFromModel with TrackIndex has been deprecated, use IAnimationDataModel::GetBoneTrackTransform instead")
86 ENGINE_API void GetBoneTransformFromModel(const IAnimationDataModel* Model, FTransform& OutTransform, int32 TrackIndex, double Time, const EAnimInterpolationType& Interpolation);
87
96 UE_DEPRECATED(5.2, "GetBoneTransformFromModel with TrackIndex has been deprecated, use IAnimationDataModel::GetBoneTrackTransform instead")
97 ENGINE_API void GetBoneTransformFromModel(const IAnimationDataModel* Model, FTransform& OutTransform, int32 TrackIndex, int32 KeyIndex);
98
107
119
120 namespace AnimationData
121 {
130
140
141 UE_DEPRECATED(5.6, "Trimming operation using time values has been deprecated use Trim with FFrameNumbers instead")
142 ENGINE_API bool Trim(UAnimSequence* InSequence, float TrimStart, float TrimEnd, bool bInclusiveEnd=false);
143
153
162
173
174 UE_DEPRECATED(5.2, "FindFirstChildTrackIndex has been deprecated, use FindFirstChildTrackName instead")
176 }
177#endif // WITH_EDITOR
178
186 ENGINE_API void ExtractBoneTransform(const struct FRawAnimSequenceTrack& RawTrack, FTransform& OutTransform, int32 KeyIndex);
187
188
197
208 ENGINE_API FTransform ExtractRootMotionFromAnimationAsset(const UAnimationAsset* Animation, const UMirrorDataTable* MirrorDataTable, float StartTime, float DeltaTime, bool bAllowLooping);
209
218 ENGINE_API FTransform ExtractRootMotionFromAnimationAsset(const UAnimationAsset* Animation, const UMirrorDataTable* MirrorDataTable, float StartPosition, float EndPosition);
219
228
229 namespace Compression
230 {
244 UE_DEPRECATED(5.4, "CompressAnimationDataTracks has been deprecated use other signature with skeleton and bone mappings")
245 ENGINE_API bool CompressAnimationDataTracks(TArray<FRawAnimSequenceTrack>& RawAnimationData, int32 NumberOfKeys, FName ErrorName, float MaxPosDiff = 0.0001f, float MaxAngleDiff = 0.0003f, float MaxScaleDiff = 0.0001f);
246
260 ENGINE_API bool CompressAnimationDataTracks(const USkeleton* Skeleton, const TArray<FTrackToSkeletonMap>& TrackToSkeleton,TArray<FRawAnimSequenceTrack>& RawAnimationData, int32 NumberOfKeys, FName ErrorName, float MaxPosDiff = 0.0001f, float MaxAngleDiff = 0.0003f, float MaxScaleDiff = 0.0001f);
261
273 UE_DEPRECATED(5.5, "CompressRawAnimSequenceTrack requires the MaxScaleDiff argument")
274 ENGINE_API bool CompressRawAnimSequenceTrack(FRawAnimSequenceTrack& RawTrack, int32 NumberOfKeys, FName ErrorName, float MaxPosDiff, float MaxAngleDiff);
275
288 ENGINE_API bool CompressRawAnimSequenceTrack(FRawAnimSequenceTrack& RawTrack, int32 NumberOfKeys, FName ErrorName, float MaxPosDiff, float MaxAngleDiff, float MaxScaleDiff);
289
296
297#if WITH_EDITOR
298 // RAII helper to temporarily block Animation compression requests for specified AnimationSequence
299 struct FScopedCompressionGuard
300 {
301 FScopedCompressionGuard() = delete;
302 ENGINE_API FScopedCompressionGuard(UAnimSequence* InAnimSequence);
304 protected:
305 TObjectPtr<UAnimSequence> AnimSequence;
306 };
307#endif // WITH_EDITOR
308 }
309
310 namespace DataModel { struct FEvaluationContext; }
311 namespace Retargeting
312 {
320
322 {
325
326 ENGINE_API void AddTrackedBone(FCompactPoseBoneIndex CompactBoneIndex, int32 SkeletonBoneIndex) const;
327 private:
328 const USkeleton* SourceSkeleton;
329 FCompactPose& RetargetPose;
330 const DataModel::FEvaluationContext& EvaluationContext;
331 TArray<FRetargetTracking>& RetargetTracking;
332 bool bShouldRetarget;
333 };
334
342 UE_DEPRECATED(5.1, "UE::Anim::Retargeting::RetargetPose has been deprecated as retargeting while evaluating pose data from a DataModel is now handled/performed implicitly")
343 ENGINE_API void RetargetPose(FCompactPose& InOutPose, const FName& RetargetSource, const TArray<FTransform>& RetargetTransforms);
344 }
345
351
352} // namespace Anim
353
354} // namespace UE
EAnimInterpolationType
Definition AnimTypes.h:689
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
return true
Definition ExternalRpcRegistry.cpp:601
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition NameTypes.h:617
Definition UnrealType.h:3087
Definition IAnimationDataController.h:50
Definition IAnimationDataModel.h:127
Definition Array.h:670
Definition UnrealString.h.inl:34
Definition Range.h:50
Definition ThreadSingleton.h:44
Definition AnimSequenceBase.h:37
Definition AnimSequence.h:203
Definition AnimationAsset.h:1020
Definition MirrorDataTable.h:102
Definition Skeleton.h:295
ENGINE_API bool CompressRawAnimSequenceTrack(FRawAnimSequenceTrack &RawTrack, int32 NumberOfKeys, FName ErrorName, float MaxPosDiff, float MaxAngleDiff)
Definition AnimSequenceHelpers.cpp:553
ENGINE_API bool CompressAnimationDataTracks(TArray< FRawAnimSequenceTrack > &RawAnimationData, int32 NumberOfKeys, FName ErrorName, float MaxPosDiff=0.0001f, float MaxAngleDiff=0.0003f, float MaxScaleDiff=0.0001f)
Definition AnimSequenceHelpers.cpp:519
ENGINE_API void SanitizeRawAnimSequenceTrack(FRawAnimSequenceTrack &RawTrack)
Definition AnimSequenceHelpers.cpp:668
ENGINE_API void RetargetPose(FCompactPose &InOutPose, const FName &RetargetSource, const TArray< FTransform > &RetargetTransforms)
Definition AnimSequenceHelpers.cpp:378
ENGINE_API void ExtractBoneTransform(const struct FRawAnimSequenceTrack &RawTrack, FTransform &OutTransform, int32 KeyIndex)
ENGINE_API FTransform ExtractRootMotionFromAnimationAsset(const UAnimationAsset *Animation, const UMirrorDataTable *MirrorDataTable, float StartTime, float DeltaTime, bool bAllowLooping)
Definition AnimSequenceHelpers.cpp:210
ENGINE_API FTransform ExtractRootTransformFromAnimationAsset(const UAnimationAsset *Animation, float Position)
Definition AnimSequenceHelpers.cpp:285
ENGINE_API FTransform MirrorTransform(const FTransform &Transform, const UMirrorDataTable &MirrorDataTable)
Definition AnimSequenceHelpers.cpp:198
Definition AdvancedWidgetsModule.cpp:13
@ false
Definition radaudio_common.h:23
Definition AnimationPoseData.h:16
Definition AnimCurveTypes.h:1041
Definition IAnimationDataModel.h:67
Definition BoneIndices.h:63
Definition BonePose.h:347
Definition AnimTypes.h:853
Definition AnimCurveTypes.h:1070
Definition AnimTypes.h:822
Definition BoneContainer.h:40
Definition ObjectPtr.h:488
Definition IAnimationDataModel.h:19
Definition AnimSequenceHelpers.h:347
TArray< FVirtualBoneCompactPoseData > VirtualBoneCompactPoseData
Definition AnimSequenceHelpers.h:349
TArray< Retargeting::FRetargetTracking > RetargetTracking
Definition AnimSequenceHelpers.h:348
Definition AnimSequenceHelpers.h:314
const FCompactPoseBoneIndex PoseBoneIndex
Definition AnimSequenceHelpers.h:315
const int32 SkeletonBoneIndex
Definition AnimSequenceHelpers.h:316
FRetargetTracking(const FCompactPoseBoneIndex InPoseBoneIndex, const int32 InSkeletonBoneIndex)
Definition AnimSequenceHelpers.h:318
Definition AnimSequenceHelpers.h:322
ENGINE_API void AddTrackedBone(FCompactPoseBoneIndex CompactBoneIndex, int32 SkeletonBoneIndex) const
Definition AnimSequenceHelpers.cpp:358
ENGINE_API ~FRetargetingScope()
Definition AnimSequenceHelpers.cpp:366