UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AnimBoneCompressionCodec.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"
8#include "AnimEncoding.h"
9#include "AnimBoneCompressionCodec.generated.h"
10
12class UAnimSequence;
13struct FBlendedCurve;
14class FBoneData;
15
16namespace UE::Anim
17{
18struct FAnimPoseDecompressionData;
19}
20
21
22/*
23 * Base class for all bone compression codecs.
24 */
27{
29
30
31 UPROPERTY(Category = Compression, EditAnywhere)
32 FString Description;
33
35
36#if WITH_EDITORONLY_DATA
38 virtual bool IsCodecValid() const { return true; }
39
41 virtual bool IsHighFidelity(const FCompressibleAnimData& CompressibleAnimData) const { return false; }
42
44 virtual bool Compress(const FCompressibleAnimData& CompressibleAnimData, FCompressibleAnimDataResult& OutResult) PURE_VIRTUAL(UAnimCurveCompressionCodec::Compress, return false;);
45
57 ENGINE_API virtual int64 EstimateCompressionMemoryUsage(const UAnimSequence& AnimSequence) const;
58
59 /*
60 * Called to generate a unique DDC key for this codec instance and input anim sequence and TargetPlatform
61 * A suitable key should be generated from: the InstanceGuid, a codec version, and all relevant properties that drive the behavior.
62 */
63 ENGINE_API virtual void PopulateDDCKey(const UE::Anim::Compression::FAnimDDCKeyArgs& KeyArgs, FArchive& Ar);
64
65 /*
66 * Called to generate a unique DDC key for this codec instance and input anim sequence.
67 * A suitable key should be generated from: the InstanceGuid, a codec version, and all relevant properties that drive the behavior.
68 */
69 UE_DEPRECATED(5.2, "This function has been deprecated. Override the one above instead.")
71
72 /*
73 * Called to generate a unique DDC key for this codec instance.
74 * A suitable key should be generated from: the InstanceGuid, a codec version, and all relevant properties that drive the behavior.
75 */
76 UE_DEPRECATED(5.1, "This function has been deprecated. Override the one above instead.")
77 ENGINE_API virtual void PopulateDDCKey(FArchive& Ar);
78#endif
79
81 ENGINE_API virtual UAnimBoneCompressionCodec* GetCodec(const FString& DDCHandle);
82
84 ENGINE_API virtual FString GetCodecDDCHandle() const;
85
87 virtual TUniquePtr<ICompressedAnimData> AllocateAnimData() const PURE_VIRTUAL(UAnimCurveCompressionCodec::AllocateAnimData, return TUniquePtr<ICompressedAnimData>(););
88
96 virtual void ByteSwapIn(ICompressedAnimData& AnimData, TArrayView<uint8> CompressedData, FMemoryReader& MemoryStream) const PURE_VIRTUAL(UAnimCurveCompressionCodec::ByteSwapIn, );
97
105 virtual void ByteSwapOut(ICompressedAnimData& AnimData, TArrayView<uint8> CompressedData, FMemoryWriter& MemoryStream) const PURE_VIRTUAL(UAnimCurveCompressionCodec::ByteSwapOut, );
106
112 virtual void DecompressPose(FAnimSequenceDecompressionContext& DecompContext, const BoneTrackArray& RotationPairs, const BoneTrackArray& TranslationPairs, const BoneTrackArray& ScalePairs, TArrayView<FTransform>& OutAtoms) const PURE_VIRTUAL(UAnimCurveCompressionCodec::DecompressPose, );
113
115 virtual void DecompressBone(FAnimSequenceDecompressionContext& DecompContext, int32 TrackIndex, FTransform& OutAtom) const PURE_VIRTUAL(UAnimCurveCompressionCodec::DecompressBone, );
116
123};
void DecompressPose(FCompactPose &OutPose, const FCompressedAnimSequence &CompressedData, const FAnimExtractContext &ExtractionContext, USkeleton *SourceSkeleton, float SequenceLength, EAnimInterpolationType Interpolation, bool bIsBakedAdditive, FName RetargetSource, FName SourceName, const FRootMotionReset &RootMotionReset)
Definition AnimCompressionTypes.cpp:1648
#define PURE_VIRTUAL(func,...)
Definition CoreMiscDefines.h:103
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
FPlatformTypes::int64 int64
A 64-bit signed integer.
Definition Platform.h:1127
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 UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
Definition Archive.h:1208
Definition AnimTypes.h:990
Definition MemoryReader.h:17
Definition MemoryWriter.h:101
Definition ArrayView.h:139
Definition UniquePtr.h:107
Definition AnimBoneCompressionCodec.h:27
Definition AnimSequenceBase.h:37
Definition AnimSequence.h:203
Definition Object.h:95
Definition AnimationAsset.h:42
Definition AnimSequenceDecompressionContext.h:14
Definition AnimCurveTypes.h:1041
Definition AnimCompressionTypes.h:462
Definition AnimCompressionTypes.h:431
Definition AnimBoneDecompressionData.h:14