17#define USE_ANIMATION_CODEC_BATCH_SOLVER 1
20#define ANIMATION_ENCODING_PACKAGE_ORIGINAL 0
23#define CURRENT_ANIMATION_ENCODING_PACKAGE_VERSION ANIMATION_ENCODING_PACKAGE_ORIGINAL
50#define MAX_BONES 65536
92template<
typename CompressedDataType>
95#if WITH_EDITORONLY_DATA
96#define AC_UnalignedSwap( MemoryArchive, Data, Len ) \
97 MemoryArchive.ByteOrderSerialize( (Data), (Len) ); \
101#define AC_UnalignedSwap( MemoryArchive, Data, Len ) \
102 MemoryArchive.Serialize( (Data), (Len) ); \
131 virtual void ByteSwapIn(
142 virtual void ByteSwapOut(
146#if USE_ANIMATION_CODEC_BATCH_SOLVER
155 virtual void GetPoseRotations(
167 virtual void GetPoseTranslations(
179 virtual void GetPoseScales(
199 float SequenceLength,
220 int32 NumberOfFrames,
244 virtual void GetBoneAtomRotation(
256 virtual void GetBoneAtomTranslation(
268 virtual void GetBoneAtomScale(
304 virtual void ByteSwapRotationIn(
320 virtual void ByteSwapTranslationIn(
336 virtual void ByteSwapScaleIn(
351 virtual void ByteSwapRotationOut(
366 virtual void ByteSwapTranslationOut(
381 virtual void ByteSwapScaleOut(
400 float SequenceLength,
417 if( RelativePos <= 0.f )
427 if( RelativePos >= 1.0f )
457template <
typename TABLE_TYPE>
516 int32 NumberOfFrames,
527 const int32 LastKey= NumKeys-1;
529 int32 TotalFrames = NumberOfFrames -1;
532 if (NumKeys < 2 || RelativePos <= 0.f)
539 else if( RelativePos >= 1.0f )
549 const int32 LastFrame= TotalFrames-1;
559 if (NumberOfFrames > 0xFF)
589 Alpha = Interpolation == EAnimInterpolationType::Step ? 0.f : (Remainder / (
float)
Delta);
ENGINE_API const int32 CompressedTranslationNum[ACF_MAX]
Definition AnimEncoding.cpp:26
ENGINE_API const uint8 PerTrackNumComponentTable[ACF_MAX *8]
Definition AnimEncoding.cpp:65
ENGINE_API void AnimationFormat_GetStats(const FUECompressedAnimData &CompressedData, int32 &NumTransTracks, int32 &NumRotTracks, int32 &NumScaleTracks, int32 &TotalNumTransKeys, int32 &TotalNumRotKeys, int32 &TotalNumScaleKeys, float &TranslationKeySize, float &RotationKeySize, float &ScaleKeySize, int32 &OverheadSize, int32 &NumTransTracksWithOneKey, int32 &NumRotTracksWithOneKey, int32 &NumScaleTracksWithOneKey)
Definition AnimEncoding.cpp:335
ENGINE_API const int32 CompressedScaleStrides[ACF_MAX]
Definition AnimEncoding.cpp:77
void PadMemoryWriter(FMemoryWriter *MemoryWriter, uint8 *&TrackData, const int32 Alignment)
Definition AnimEncoding.cpp:153
ENGINE_API const int32 CompressedRotationNum[ACF_MAX]
Definition AnimEncoding.cpp:50
ENGINE_API const int32 CompressedScaleNum[ACF_MAX]
Definition AnimEncoding.cpp:89
void AnimationFormat_SetInterfaceLinks(CompressedDataType &CompressedData)
Definition AnimEncoding.cpp:581
ENGINE_API const int32 CompressedTranslationStrides[ACF_MAX]
Definition AnimEncoding.cpp:14
int32 FindLowKeyIndex(const TABLE_TYPE *FrameTable, int32 NumKeys, int32 SearchFrame, int32 KeyEstimate)
Definition AnimEncoding.h:458
void PadMemoryReader(FMemoryReader *MemoryReader, uint8 *&TrackData, const int32 Alignment)
Definition AnimEncoding.cpp:169
TArray< BoneTrackPair > BoneTrackArray
Definition AnimEncoding.h:51
TArray< FTransform, TMemStackAllocator<> > FTransformArray
Definition AnimEncoding.h:55
ENGINE_API const int32 CompressedRotationStrides[ACF_MAX]
Definition AnimEncoding.cpp:38
EAnimInterpolationType
Definition AnimTypes.h:689
#define checkSlow(expr)
Definition AssertionMacros.h:332
#define check(expr)
Definition AssertionMacros.h:314
#define PURE_VIRTUAL(func,...)
Definition CoreMiscDefines.h:103
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
Definition AnimEncoding.h:235
virtual void virtual GetBoneAtomRotation(FTransform &OutAtom, const FAnimSequenceDecompressionContext &DecompContext, int32 TrackIndex) PURE_VIRTUAL(AnimEncoding void virtual GetBoneAtomTranslation(FTransform &OutAtom, const FAnimSequenceDecompressionContext &DecompContext, int32 TrackIndex) PURE_VIRTUAL(AnimEncoding void virtual GetBoneAtomScale(FTransform &OutAtom, const FAnimSequenceDecompressionContext &DecompContext, int32 TrackIndex) PURE_VIRTUAL(AnimEncoding void ByteSwapIn(FUECompressedAnimData &CompressedData, FMemoryReader &MemoryReader) override
Definition AnimEncoding.h:279
virtual void ByteSwapOut(FUECompressedAnimData &CompressedData, FMemoryWriter &MemoryWriter) override
Definition AnimEncoding.cpp:250
Definition AnimEncoding.h:122
static float TimeToIndex(float SequenceLength, float RelativePos, int32 NumKeys, EAnimInterpolationType Interpolation, int32 &PosIndex0Out, int32 &PosIndex1Out)
Definition AnimEncoding.h:399
Definition MemoryReader.h:17
Definition MemoryWriter.h:101
Definition ArrayView.h:139
Definition AnimEncoding.h:38
BoneTrackPair()
Definition AnimEncoding.h:42
int32 TrackIndex
Definition AnimEncoding.h:40
int32 AtomIndex
Definition AnimEncoding.h:39
BoneTrackPair(int32 Atom, int32 Track)
Definition AnimEncoding.h:43
Definition AnimSequenceDecompressionContext.h:14
static constexpr UE_FORCEINLINE_HINT T Clamp(const T X, const T MinValue, const T MaxValue)
Definition UnrealMathUtility.h:592
Definition AnimCompressionTypes.h:505