31#include "AnimSequence.generated.h"
43namespace UE {
namespace Anim {
class FAnimSequenceCompilingManager;
namespace Compression {
struct FScopedCompressionGuard; }
class FAnimationSequenceAsyncCacheTask; } }
66 AnimationTracks.AddZeroed(
NumNode);
76 AnimationTracks.AddZeroed(
NumNode);
81 check (TrackNames.Num() == AnimationTracks.Num());
82 return (AnimationTracks.Num());
177 for (
int32 ElementIndex = 0; ElementIndex < 3; ElementIndex++)
179 Mins[ElementIndex] = 0;
181 for (
int32 ElementIndex = 0; ElementIndex < 3; ElementIndex++)
183 Ranges[ElementIndex] = 0;
206#if WITH_EDITORONLY_DATA
208 UPROPERTY(AssetRegistrySearchable, meta = (DisplayName =
"Import File Framerate"))
212 UPROPERTY(AssetRegistrySearchable, meta = (DisplayName =
"Import Resample Framerate"))
217 UE_DEPRECATED(5.0,
"NumFrames is deprecated see UAnimDataModel::GetNumberOfFrames for the number of source data frames, or GetNumberOfSampledKeys for the target keys")
222 UE_DEPRECATED(5.0,
"NumberOfKeys is deprecated see UAnimDataModel::GetNumberOfKeys for the number of source data keys, or GetNumberOfSampledKeys for the target keys")
227 UE_DEPRECATED(5.0,
"SamplingFrameRate is deprecated see UAnimDataModel::GetFrameRate for the source frame rate, or GetSamplingFrameRate for the target frame rate instead")
231 UE_DEPRECATED(5.0,
"RawAnimationData has been deprecated see FBoneAnimationTrack::InternalTrackData")
235 UE_DEPRECATED(5.1,
"RawDataGuid has been deprecated see GenerateGuidFromModel instead")
242 UE_DEPRECATED(5.0,
"Animation track names has been deprecated see FBoneAnimationTrack::Name")
243 UPROPERTY(VisibleAnywhere, DuplicateTransient, Category=
"Animation")
256 UPROPERTY(Category = Compression, EditAnywhere)
264 UPROPERTY(Category = Compression, EditAnywhere)
269 UPROPERTY(Category = Compression, EditAnywhere, meta = (ForceShowEngineContent))
273 UPROPERTY(Category = Compression, EditAnywhere, meta = (ForceShowEngineContent))
277 UE_DEPRECATED(5.6,
"CompressedData public access will be removed")
280 UPROPERTY(Category = Compression, EditAnywhere, meta = (ForceShowEngineContent))
301 FName RetargetSource;
303#if WITH_EDITORONLY_DATA
305 UE_DEPRECATED(5.5,
"Direct access to RetargetSourceAsset has been deprecated. Please use members GetRetargetSourceAsset & SetRetargetSourceAsset instead.")
306 UPROPERTY(EditAnywhere, AssetRegistrySearchable, Category=
Animation, meta = (DisallowedClasses =
"/Script/ApexDestruction.DestructibleMesh"))
319 UPROPERTY(EditAnywhere, AssetRegistrySearchable, Category = RootMotion)
320 bool bEnableRootMotion;
323 UPROPERTY(EditAnywhere, Category = RootMotion)
327 UPROPERTY(EditAnywhere, Category = RootMotion)
331 UPROPERTY(EditAnywhere, AssetRegistrySearchable, Category = RootMotion)
332 bool bUseNormalizedRootMotionScale;
336 bool bRootMotionSettingsCopiedFromMontage;
338#if WITH_EDITORONLY_DATA
341 int32 CompressCommandletVersion;
347 UPROPERTY(EditAnywhere, Category=Compression)
368 UPROPERTY(EditAnywhere, Category = Compression)
374 ENGINE_API virtual void PostInitProperties()
override;
386 ENGINE_API virtual void BeginDestroy()
override;
387 ENGINE_API virtual bool IsReadyForFinishDestroy()
override;
389 UE_DEPRECATED(5.4,
"Implement the version that takes FAssetRegistryTagsContext instead.")
395 ENGINE_API virtual bool IsValidAdditive()
const override;
407 ENGINE_API virtual void RefreshCacheData()
override;
418 UE_DEPRECATED(5.6,
"Please use ExtractRootMotion with FAnimExtractContext")
420 UE_DEPRECATED(5.6,
"Please use ExtractRootMotionFromRange with FAnimExtractContext")
422 UE_DEPRECATED(5.6,
"Please use ExtractRootTrackTransform with FAnimExtractContext")
445 UE_DEPRECATED(5.6,
"GetCompressedTrackToSkeletonMapTable has been deprecated. Use GetCompressedData().CompressedTrackToSkeletonMapTable instead")
452 UE_DEPRECATED(5.6,
"GetCompressedCurveIndexedNames has been deprecated. Use GetCompressedData().IndexedCurveNames instead")
459#if WITH_EDITORONLY_DATA
467 UFUNCTION(BlueprintCallable, Category =
"Animation")
485#if WITH_EDITORONLY_DATA
487 UE_DEPRECATED(5.0,
"UpdateFrameRate has been deprecated see UAnimDataController::SetFrameRate")
521 UE_DEPRECATED(5.6,
"Please use GetBoneTransform with FAnimExtractContext")
542 UE_DEPRECATED(5.6,
"Please use GetBoneTransform with FAnimExtractContext")
601 UE_DEPRECATED(5.6,
"ClearCompressedBoneData will be removed")
602 void ClearCompressedBoneData() {}
603 UE_DEPRECATED(5.6,
"ClearCompressedCurveData will be removed")
604 void ClearCompressedCurveData() {}
612 ENGINE_API bool IsCompressedDataValid()
const;
613 ENGINE_API bool IsBoneCompressedDataValid()
const;
614 ENGINE_API bool IsCurveCompressedDataValid()
const;
622 UE_DEPRECATED(5.6,
"DoesNeedRecompress has been renamed to IsCompressedDataOutOfDate")
680 ENGINE_API virtual bool GetEnableRootMotionSettingFromMontage()
const override;
741 UE_DEPRECATED(5.6,
"Public access to UseRawDataForPoseExtraction has been deprecated")
775 UPROPERTY(VisibleAnywhere, AssetRegistrySearchable, Category =
"Animation")
778#if WITH_EDITORONLY_DATA
792 UPROPERTY(VisibleAnywhere, EditFixedSize, Category=CustomAttributes)
827 ENGINE_API bool WaitForAsyncTasks(
float TimeLimitSeconds);
888 UE_DEPRECATED(5.6,
"CacheDerivedData returning FCompressedAnimSequence reference has been deprecated, use CacheDerivedDataForPlatform")
958 AnimSequence->SharedCompressedDataMutex.Unlock();
967 friend struct FScopedAnimSequenceRawDataCache;
968 friend class UAnimationBlueprintLibrary;
970 friend class FCustomAttributeCustomization;
971 friend class FAnimSequenceDeterminismHelper;
972 friend class FAnimSequenceTestBase;
973 friend struct UE::Anim::Compression::FScopedCompressionGuard;
974 friend class FAnimDataControllerTestBase;
975 friend class UE::Anim::FAnimSequenceCompilingManager;
976 friend UE::UAF::FDecompressionTools;
977 friend class FAnimSequenceDetails;
978 friend class FCompressedAnimationDataNodeBuilder;
980 friend class FAnimBankBuildAsyncCacheTask;
982 friend class UE::Anim::FAnimationSequenceAsyncCacheTask;
985#ifndef UE_COMPRESSED_DATA_WRITE_SCOPE
987 #define UE_COMPRESSED_DATA_WRITE_SCOPE(sequence) \
988 UAnimSequence::FCompressedAnimationDataWriteScope Scope(sequence);
990 #define UE_COMPRESSED_DATA_WRITE_SCOPE(sequence)
994#ifndef UE_COMPRESSED_DATA_READ_SCOPE
996 #define UE_COMPRESSED_DATA_READ_SCOPE(sequence) \
997 UAnimSequence::FCompressedAnimationDataReadScope Scope(sequence);
999 #define UE_COMPRESSED_DATA_READ_SCOPE(sequence)
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
EAnimDataModelNotifyType
Definition AnimDataNotifications.h:20
EStripAnimDataOnDedicatedServerSettings
Definition AnimSequence.h:192
@ StripAnimDataOnDedicatedServer
@ DoNotStripAnimDataOnDedicatedServer
ENGINE_API int32 GPerformFrameStripping
Definition AnimSequence.cpp:83
TArray< FTransform > FTransformArrayA2
Definition AnimSequence.h:33
EAnimInterpolationType
Definition AnimTypes.h:689
EAdditiveAnimationType
Definition AnimTypes.h:575
#define check(expr)
Definition AssertionMacros.h:314
@ BeginCacheForCookedPlatformData
@ IsCachedCookedPlatformDataLoaded
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
const bool
Definition NetworkReplayStreaming.h:178
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define UFUNCTION(...)
Definition ObjectMacros.h:745
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
#define UENUM(...)
Definition ObjectMacros.h:749
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
EQueuedWorkPriority
Definition QueuedThreadPool.h:14
EDataValidationResult
Definition UObjectGlobals.h:4225
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition Engine.Build.cs:7
Definition Archive.h:1208
Definition UnrealType.h:3702
Definition AssetRegistryTagsContext.h:98
Definition DataValidation.h:40
Definition AnimationAsset.h:513
Definition NameTypes.h:617
Definition ObjectSaveContext.h:244
Definition QueuedThreadPool.h:105
Definition UObjectGlobals.h:2492
Definition IAnimationDataModel.h:127
Definition EnumAsByte.h:22
Definition UnrealString.h.inl:34
Definition UniquePtr.h:107
Definition AnimBank.h:178
Definition AnimBoneCompressionSettings.h:23
Definition AnimDataModel.h:18
Definition AnimSequenceBase.h:37
virtual FTransform ExtractRootMotionFromRange(float StartTrackPosition, float EndTrackPosition) const
Definition AnimSequenceBase.h:199
virtual FTransform ExtractRootTrackTransform(float Time, const FBoneContainer *RequiredBones) const
Definition AnimSequenceBase.h:205
virtual FTransform ExtractRootMotion(float StartTime, float DeltaTime, bool bAllowLooping) const
Definition AnimSequenceBase.h:193
Definition AnimSequence.h:203
ENGINE_API void ClearCompressionData(const FIoHash &InKeyHash)
TMap< FAnimationAttributeIdentifier, FAttributeCurve > AttributeCurves
Definition AnimSequence.h:799
ENGINE_API bool UseRawDataForPoseExtraction(const FBoneContainer &RequiredBones) const
Definition AnimSequence.cpp:3667
ENGINE_API void EvaluateAttributes(FAnimationPoseData &OutAnimationPoseData, const FAnimExtractContext &ExtractionContext, bool bUseRawData) const
Definition AnimSequence.cpp:3711
ENGINE_API void GetAdditiveBasePose(FAnimationPoseData &OutAnimationPoseData, const FAnimExtractContext &ExtractionContext) const
Definition AnimSequence.cpp:1917
ENGINE_API void BeginCacheDerivedDataForCurrentPlatform()
ENGINE_API void CacheDerivedDataForCurrentPlatform()
void GetBoneTransform(FTransform &OutAtom, FSkeletonPoseBoneIndex BoneIndex, double Time, bool bUseRawData, TOptional< EAnimInterpolationType > InterpolationOverride=TOptional< EAnimInterpolationType >()) const
Definition AnimSequence.h:522
ENGINE_API void RefreshSyncMarkerDataFromAuthored()
Definition AnimSequence.cpp:3302
ENGINE_API bool HasCompressedDataForHash(const FIoHash &InKeyHash) const
virtual ENGINE_API bool IsValidAdditive() const override
Definition AnimSequence.cpp:2615
virtual EAdditiveAnimationType GetAdditiveAnimType() const override
Definition AnimSequence.h:408
FPerPlatformFrameRate PlatformTargetFrameRate
Definition AnimSequence.h:776
ENGINE_API void ClearAllCompressionData()
virtual FFrameRate GetSamplingFrameRate() const override
Definition AnimSequence.h:410
virtual TArray< FName > * GetUniqueMarkerNames()
Definition AnimSequence.h:396
ENGINE_API bool ShouldUseRawDataForPoseExtraction(const FBoneContainer &RequiredBones, const FAnimExtractContext &ExtractionContext) const
Definition AnimSequence.cpp:3683
TArray< FAnimSyncMarker > AuthoredSyncMarkers
Definition AnimSequence.h:747
ENGINE_API FScopedCompressedAnimSequence GetCompressedData() const
Definition AnimSequence.cpp:581
virtual ENGINE_API bool CanEvaluateRawAnimationData() const
Definition AnimSequence.cpp:1994
virtual bool HasRootMotion() const override
Definition AnimSequence.h:406
ENGINE_API void ValidateCurrentPosition(const FMarkerSyncAnimPosition &Position, bool bPlayingForwards, bool bLooping, float &CurrentTime, FMarkerPair &PreviousMarker, FMarkerPair &NextMarker, const UMirrorDataTable *MirrorTable=nullptr) const
Definition AnimSequence.cpp:3605
ENGINE_API bool ShouldUseRawDataForPoseExtraction_Lockless(const FBoneContainer &RequiredBones, const FAnimExtractContext &ExtractionContext) const
Definition AnimSequence.cpp:3689
TArray< FName > UniqueMarkerNames
Definition AnimSequence.h:750
Definition AnimationAsset.h:1020
Definition SharedRecursiveMutex.h:40
Definition MirrorDataTable.h:102
Definition SkeletalMesh.h:440
Definition Skeleton.h:295
Type
Definition AnimEnums.h:14
Definition AnimSequence.h:44
Definition AdvancedWidgetsModule.cpp:13
Definition AnimationAsset.h:850
Definition AnimCompress.h:231
Definition AnimCompressionTypes.h:746
Definition AnimCurveCompressionCodec_UniformIndexable.h:15
Definition AnimDataNotifications.h:251
Definition AnimNotifyQueue.h:161
Definition AnimSequenceDecompressionContext.h:14
Definition AnimSequence.h:53
int32 GetNum() const
Definition AnimSequence.h:79
void Initialize(TArray< FName > InTrackNames)
Definition AnimSequence.h:71
Definition AnimTypes.h:482
Definition AnimationAsset.h:411
Definition AttributeIdentifier.h:17
Definition AnimationPoseData.h:16
Definition AttributeCurve.h:61
Definition AnimCurveTypes.h:1041
Definition BoneContainer.h:192
Definition BoneIndices.h:63
Definition BonePose.h:347
Definition AnimCompressionTypes.h:775
ENGINE_API void Reset()
Definition AnimCompressionTypes.cpp:1583
Definition AnimSequence.h:159
Definition AnimSequence.h:139
Definition CustomAttributes.h:133
Definition FrameRate.h:21
Definition AnimationAsset.h:56
Definition AnimationAsset.h:361
Definition UnrealType.h:6865
Definition AnimTypes.h:853
Definition AnimSequence.h:106
Definition AnimSequence.h:121
Definition BoneIndices.h:79
Definition AnimTypes.h:822
Definition AnimSequence.h:91
Definition ObjectPtr.h:488
Definition Optional.h:131
Definition SoftObjectPtr.h:174
Definition AnimSequence.h:897
FScopedCompressedAnimSequence(FScopedCompressedAnimSequence &&)=delete
FScopedCompressedAnimSequence(const FScopedCompressedAnimSequence &)=delete
FScopedCompressedAnimSequence & operator=(const FScopedCompressedAnimSequence &)=delete
const FCompressedAnimSequence & operator->() const
Definition AnimSequence.h:904
FScopedCompressedAnimSequence(const UAnimSequence *InAnimSequence, const FCompressedAnimSequence *InCompressedData)
Definition AnimSequence.h:914
const FCompressedAnimSequence & Get() const
Definition AnimSequence.h:905
FScopedCompressedAnimSequence()=delete
FScopedCompressedAnimSequence & operator=(FScopedCompressedAnimSequence &&)=delete