UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AnimSequenceDecompressionContext.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
7#include "Misc/FrameRate.h"
8
10class USkeleton;
11
12/* Encapsulates decompression related data used by bone compression codecs. */
14{
15 UE_DEPRECATED(5.1, "his constructor is deprecated. Use the other constructor by passing the ref pose and track to skeleton map to ensure safe usage with all codecs")
24
25 UE_DEPRECATED(5.2, "FAnimSequenceDecompressionContext signature has been deprecated, use different one with sampling rate and number of frames")
36
37 UE_DEPRECATED(5.3, "FAnimSequenceDecompressionContext signature has been deprecated, use different one with additive type")
51
76
77 // Anim info
78 UE_DEPRECATED(5.1, "Direct access to SequenceLength has been deprecated use GetPlayableLength instead")
82
84
85public:
86 UE_DEPRECATED(5.1, "Direct access to Time has been deprecated use GetEvaluationTime or GetInterpolatedEvaluationTime instead")
87 float Time = 0.0f;
88
89 UE_DEPRECATED(5.1, "Direct access to RelativePos has been deprecated use GetRelativePosition instead")
90 float RelativePos = 0.0f;
91
92 double GetPlayableLength() const
93 {
95 }
96 double GetEvaluationTime() const
97 {
99 }
100 double GetRelativePosition() const
101 {
102 return FMath::Min(SamplingTime.AsDecimal() / static_cast<double>(NumberOfFrames), 1.0);
103 }
104
106 {
107 const FFrameTime InterpolationTime = Interpolation == EAnimInterpolationType::Step ? SamplingTime.FloorToFrame() : SamplingTime;
108 return SamplingRate.AsSeconds(InterpolationTime);
109 }
110
111 UE_DEPRECATED(5.1, "Seek with float precision sampling time has been deprecated use double signature instead")
113 {
114 Seek(static_cast<double>(SampleAtTime));
115 }
116
126
127 const USkeleton* GetSourceSkeleton() const { return SourceSkeleton; }
130
132 {
133 return RefPoses;
134 }
135
140
141protected:
142 // Immutable reference/bind pose from the source skeleton, maps a bone index to its reference transform.
143 // The same skeleton reference pose must be provided during compression and decompression. This is the
144 // source skeleton reference pose (the one assigned to an anim sequence). Re-targeting is taken into account
145 // elsewhere. Additionally, if the source skeleton reference pose isn't used, the TrackToSkeletonMap indices
146 // may not match the provided pose. This could cause us to read incorrect bone transforms or possibly out
147 // of bounds.
149
150 // Immutable array that maps from a track index to a bone index. This is built during compression using
151 // the source skeleton (the one assigned to an anim sequence).
153
157 const USkeleton* SourceSkeleton = nullptr;
159 bool bAdditiveAnimation = false;
160};
161
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
EAnimInterpolationType
Definition AnimTypes.h:689
EAdditiveAnimationType
Definition AnimTypes.h:575
#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
#define PRAGMA_ENABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:12
#define PRAGMA_DISABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:8
@ Num
Definition MetalRHIPrivate.h:234
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
auto GetData(const TStringConversion< Converter, DefaultConversionSize > &Conversion) -> decltype(Conversion.Get())
Definition StringConv.h:802
Definition NameTypes.h:617
Definition UnrealType.h:3087
Definition ArrayView.h:139
Definition Array.h:670
Definition Skeleton.h:295
Definition AnimSequenceDecompressionContext.h:14
float SequenceLength
Definition AnimSequenceDecompressionContext.h:79
FAnimSequenceDecompressionContext(const FFrameRate &InSamplingRate, const int32 InNumberOfFrames, EAnimInterpolationType InInterpolation, const FName &InAnimName, const ICompressedAnimData &InCompressedAnimData, const TArray< FTransform > &InRefPoses, const TArray< FTrackToSkeletonMap > &InTrackToSkeletonMap, const USkeleton *InSourceSkeleton, bool bIsBakedAdditive, EAdditiveAnimationType InAdditiveType)
Definition AnimSequenceDecompressionContext.h:52
float Time
Definition AnimSequenceDecompressionContext.h:87
EAdditiveAnimationType GetAdditiveType() const
Definition AnimSequenceDecompressionContext.h:129
const TArrayView< const FTransform > & GetRefLocalPoses() const
Definition AnimSequenceDecompressionContext.h:131
FName AnimName
Definition AnimSequenceDecompressionContext.h:81
int32 NumberOfFrames
Definition AnimSequenceDecompressionContext.h:156
void Seek(double SampleAtTime)
Definition AnimSequenceDecompressionContext.h:117
TArrayView< const FTrackToSkeletonMap > TrackToSkeletonMap
Definition AnimSequenceDecompressionContext.h:152
const ICompressedAnimData & CompressedAnimData
Definition AnimSequenceDecompressionContext.h:83
float RelativePos
Definition AnimSequenceDecompressionContext.h:90
const TArrayView< const FTrackToSkeletonMap > & GetTrackToSkeletonMap() const
Definition AnimSequenceDecompressionContext.h:136
bool IsAdditiveAnimation() const
Definition AnimSequenceDecompressionContext.h:128
double GetEvaluationTime() const
Definition AnimSequenceDecompressionContext.h:96
double GetRelativePosition() const
Definition AnimSequenceDecompressionContext.h:100
FFrameTime SamplingTime
Definition AnimSequenceDecompressionContext.h:155
EAnimInterpolationType Interpolation
Definition AnimSequenceDecompressionContext.h:80
EAdditiveAnimationType AdditiveType
Definition AnimSequenceDecompressionContext.h:158
TArrayView< const FTransform > RefPoses
Definition AnimSequenceDecompressionContext.h:148
const USkeleton * GetSourceSkeleton() const
Definition AnimSequenceDecompressionContext.h:127
FFrameRate SamplingRate
Definition AnimSequenceDecompressionContext.h:154
double GetPlayableLength() const
Definition AnimSequenceDecompressionContext.h:92
bool bAdditiveAnimation
Definition AnimSequenceDecompressionContext.h:159
const USkeleton * SourceSkeleton
Definition AnimSequenceDecompressionContext.h:157
double GetInterpolatedEvaluationTime() const
Definition AnimSequenceDecompressionContext.h:105
Definition FrameRate.h:21
double AsSeconds(FFrameTime FrameNumber) const
Definition FrameRate.h:232
FFrameTime AsFrameTime(double InTimeSeconds) const
Definition FrameRate.h:240
Definition FrameTime.h:16
FFrameNumber FloorToFrame() const
Definition FrameTime.h:290
double AsDecimal() const
Definition FrameTime.h:308
Definition AnimTypes.h:822
Definition AnimCompressionTypes.h:431