23#include "AnimationAsset.generated.h"
42namespace UE {
namespace Anim {
104 bPreviousIsValid =
true;
115 float Previous = 0.f;
116 bool bPreviousIsValid =
false;
147 float SamplePlayRate;
166 , SamplePlayRate(0.0f)
172 : SampleDataIndex(
Index)
178 , SamplePlayRate(0.0f)
186 return (
Other.SampleDataIndex== SampleDataIndex);
194 float GetWeight()
const
196 return GetClampedWeight();
201 return FMath::Clamp<float>(TotalWeight, 0.f, 1.f);
221 FilterPerAxis.Num() > 0 ? FilterPerAxis[0].LastOutput : 0.0f,
222 FilterPerAxis.Num() > 1 ? FilterPerAxis[1].LastOutput : 0.0f,
223 FilterPerAxis.Num() > 2 ? FilterPerAxis[2].LastOutput : 0.0f);
257 UE_DEPRECATED(5.3,
"Please use the constructor that takes an FName.")
315 UE_DEPRECATED(5.1,
"FAnimExtractContext construct with float-based time value is deprecated, use other signature")
377 float PositionBetweenMarkers;
383 : PositionBetweenMarkers(0.0f)
389 , PositionBetweenMarkers(
InAlpha)
395 return FString::Printf(
TEXT(
"[PreviousMarker %s, NextMarker %s] : %0.2f "), *PreviousMarkerName.ToString(), *NextMarkerName.ToString(), PositionBetweenMarkers);
417 float* TimeAccumulator =
nullptr;
418 float PlayRateMultiplier = 1.0f;
419 float EffectiveBlendWeight = 0.0f;
420 float RootMotionWeightModifier = 1.0f;
424 bool bRequestedInertialization =
false;
425 bool bOverridePositionWhenJoiningSyncGroupAsLeader =
false;
458 bool bCanUseMarkerSync =
false;
459 float LeaderScore = 0.0f;
465 void AllocateContextDataContainer();
471 UE_DEPRECATED(5.2,
"Please use the anim sequence FAnimTickRecord constructor which adds bInIsEvaluator (defaulted to false)")
497 void MakeContextData(
TArgs&&... Args)
500 if (!ContextData.IsValid())
502 AllocateContextDataContainer();
538 return MarkerSyncStartPostion;
543 return MarkerSyncEndPostion;
548 return *ValidMarkers;
553 return MarkerSyncStartPostion.
IsValid();
559 return MarkerSyncEndPostion.
IsValid();
574 return FString::Printf(
TEXT(
" - Sync Start Position : %s\n - Sync End Position : %s\n - Markers : %s"),
611 ExclusiveAlwaysLeader,
676 , bCanUseMarkerSync(
false)
677 , MontageLeaderWeight(0.f)
678 , PreviousAnimLengthRatio(0.f)
679 , AnimLengthRatio(0.f)
686 ActivePlayers.
Reset();
687 bCanUseMarkerSync =
false;
688 MontageLeaderWeight = 0.f;
690 PreviousAnimLengthRatio = 0.f;
691 AnimLengthRatio = 0.f;
698 UE_DEPRECATED(5.0,
"Use TestTickRecordForLeadership, as it now internally supports montages")
699 void TestMontageTickRecordForLeadership() { TestTickRecordForLeadership(EAnimGroupRole::CanBeLeader); }
731 : bHasRootMotion(
false)
739 : bHasRootMotion(
Other.bHasRootMotion)
740 , BlendWeight(
Other.BlendWeight)
742 RootMotionTransform =
Other.RootMotionTransform;
746 : bHasRootMotion(
Other.bHasRootMotion)
747 , BlendWeight(
Other.BlendWeight)
749 RootMotionTransform =
Other.RootMotionTransform;
755 BlendWeight =
Other.BlendWeight;
756 RootMotionTransform =
Other.RootMotionTransform;
762 bHasRootMotion =
true;
764 RootMotionTransform.SetScale3D(RootMotionScale);
776 RootMotionTransform =
InTransform * RootMotionTransform;
777 RootMotionTransform.SetScale3D(RootMotionScale);
795 RootMotionTransform.SetScale3D(RootMotionScale);
815 bHasRootMotion =
false;
821 float WeightLeft = FMath::Max(1.f - BlendWeight, 0.f);
826 RootMotionTransform.NormalizeRotation();
834 RootMotionTransform = RootMotionTransform.GetRelativeTransform(
PartialRootMotion);
840 check(RootMotionTransform.IsRotationNormalized());
857 , PreviousAnimLengthRatio(0.0f)
858 , AnimLengthRatio(0.0f)
862 , bResyncToSyncGroup(
false)
870 , PreviousAnimLengthRatio(0.0f)
871 , AnimLengthRatio(0.0f)
872 , bIsMarkerPositionValid(
false)
875 , bResyncToSyncGroup(
false)
908 PreviousAnimLengthRatio = NormalizedTime;
913 AnimLengthRatio = NormalizedTime;
919 return PreviousAnimLengthRatio;
925 return AnimLengthRatio;
930 bIsMarkerPositionValid =
false;
935 return bIsMarkerPositionValid;
950 return bOnlyOneAnimationInGroup;
961 return bResyncToSyncGroup;
978 float PreviousAnimLengthRatio;
981 float AnimLengthRatio;
983 bool bIsMarkerPositionValid;
987 bool bOnlyOneAnimationInGroup;
990 bool bResyncToSyncGroup;
999 UPROPERTY(EditAnywhere, Category=Settings)
1032 FGuid SkeletonVirtualBoneGuid;
1050#if WITH_EDITORONLY_DATA
1096 virtual float GetMaxCurrentTime() {
return GetPlayLength(); }
1098 UFUNCTION(BlueprintPure, Category =
"Animation", meta=(BlueprintThreadSafe))
1099 virtual float GetPlayLength()
const {
return 0.f; };
1102 UE_DEPRECATED(5.2,
"ResetSkeleton has been deprecated, use ReplaceSkeleton or SetSkeleton instead")
1116 UFUNCTION(BlueprintCallable, Category =
"Animation")
1121 T* FindMetaDataByClass()
const
1125 return (T*)FindMetaDataByClass(T::StaticClass());
1196 UE_DEPRECATED(5.4,
"Implement the version that takes FAssetRegistryTagsContext instead.")
1207#if WITH_EDITORONLY_DATA
1209 UPROPERTY(VisibleAnywhere, Instanced, Category = Thumbnail)
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
UAnimMontage bool UAnimMontage UAnimMontage Montage
Definition AnimInstance.h:84
EAnimSyncMethod
Definition AnimationAsset.h:629
EAnimSyncGroupScope
Definition AnimationAsset.h:618
#define check(expr)
Definition AssertionMacros.h:314
#define WITH_EDITOR
Definition Build.h:67
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#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
return true
Definition ExternalRpcRegistry.cpp:601
#define FVector
Definition IOSSystemIncludes.h:8
bool operator<(const FTextFormatString &LHS, const FTextFormatString &RHS)
Definition ITextFormatArgumentModifier.h:147
UE::Math::TTransform< double > FTransform
Definition MathFwd.h:53
const bool
Definition NetworkReplayStreaming.h:178
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UFUNCTION(...)
Definition ObjectMacros.h:745
#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
#define ScalarRegister
Definition ScalarRegister.h:239
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
EDataValidationResult
Definition UObjectGlobals.h:4225
#define UE_KINDA_SMALL_NUMBER
Definition UnrealMathUtility.h:131
if(Failed) console_printf("Failed.\n")
Definition Archive.h:1208
Definition AssetRegistryTagsContext.h:98
Definition DataValidation.h:40
Definition AnimationAsset.h:513
TArray< FPassedMarker > MarkersPassedThisTick
Definition AnimationAsset.h:562
void SetMarkerSyncEndPosition(const FMarkerSyncAnimPosition &SyncPosition)
Definition AnimationAsset.h:531
static const TArray< FName > DefaultMarkerNames
Definition AnimationAsset.h:516
FMarkerTickContext(const TArray< FName > &ValidMarkerNames)
Definition AnimationAsset.h:518
const TArray< FName > & GetValidMarkerNames() const
Definition AnimationAsset.h:546
FString ToString() const
Definition AnimationAsset.h:565
FMarkerTickContext()
Definition AnimationAsset.h:522
bool IsMarkerSyncStartValid() const
Definition AnimationAsset.h:551
const FMarkerSyncAnimPosition & GetMarkerSyncEndPosition() const
Definition AnimationAsset.h:541
bool IsMarkerSyncEndValid() const
Definition AnimationAsset.h:556
void SetMarkerSyncStartPosition(const FMarkerSyncAnimPosition &SyncPosition)
Definition AnimationAsset.h:526
const FMarkerSyncAnimPosition & GetMarkerSyncStartPosition() const
Definition AnimationAsset.h:536
Definition NameTypes.h:617
Definition Interface_AssetUserData.h:20
Definition Interface_PreviewMeshProvider.h:20
Definition ArrayView.h:139
UE_REWRITE SizeType Num() const
Definition Array.h:1144
void Reset(SizeType NewSize=0)
Definition Array.h:2246
Definition EnumAsByte.h:22
Definition UnrealString.h.inl:34
Definition SharedPointer.h:692
Definition SubclassOf.h:30
Definition UniquePtr.h:107
Definition AnimSequenceBase.h:37
Definition AnimSequence.h:203
Definition AnimationAsset.h:1020
FGuid GetSkeletonVirtualBoneGuid() const
Definition AnimationAsset.h:1231
class USkeleton * GetSkeleton() const
Definition AnimationAsset.h:1229
void EmptyMetaData()
Definition AnimationAsset.h:1129
virtual bool IsValidAdditive() const
Definition AnimationAsset.h:1205
virtual TArray< FName > * GetUniqueMarkerNames()
Definition AnimationAsset.h:1183
FGuid GetSkeletonGuid() const
Definition AnimationAsset.h:1233
void SetSkeletonVirtualBoneGuid(FGuid Guid)
Definition AnimationAsset.h:1232
Definition AssetMappingTable.h:61
Definition AssetUserData.h:18
Definition BlendSpace.h:467
Definition AnimNodeMessages.h:46
Definition MirrorDataTable.h:102
Definition PoseAsset.h:186
Definition SkeletalMesh.h:440
Definition Skeleton.h:295
Definition AnimationAsset.h:592
Type
Definition AnimEnums.h:30
Definition AnimationAsset.h:47
Type
Definition AnimationAsset.h:49
@ Uninitialized
Definition AnimationAsset.h:50
@ AnimationBoundary
Definition AnimationAsset.h:51
Definition AnimationAsset.h:38
uint16 UID_Type
Definition AnimationAsset.h:39
Definition AdvancedWidgetsModule.cpp:13
@ false
Definition radaudio_common.h:23
U16 Index
Definition radfft.cpp:71
Definition AnimationAsset.h:850
float GetLeaderDelta() const
Definition AnimationAsset.h:901
FAnimAssetTickContext(float InDeltaTime, ERootMotionMode::Type InRootMotionMode, bool bInOnlyOneAnimationInGroup, const TArray< FName > &ValidMarkerNames)
Definition AnimationAsset.h:852
FMarkerTickContext MarkerTickContext
Definition AnimationAsset.h:970
bool IsSingleAnimationContext() const
Definition AnimationAsset.h:948
float GetDeltaTime() const
Definition AnimationAsset.h:891
bool CanUseMarkerPosition() const
Definition AnimationAsset.h:933
void SetAnimationPositionRatio(float NormalizedTime)
Definition AnimationAsset.h:911
void SetLeaderDelta(float InLeaderDelta)
Definition AnimationAsset.h:896
void SetResyncToSyncGroup(bool bInResyncToSyncGroup)
Definition AnimationAsset.h:953
bool ShouldResyncToSyncGroup() const
Definition AnimationAsset.h:959
float GetAnimationPositionRatio() const
Definition AnimationAsset.h:923
bool IsLeader() const
Definition AnimationAsset.h:880
float GetPreviousAnimationPositionRatio() const
Definition AnimationAsset.h:917
bool IsFollower() const
Definition AnimationAsset.h:885
void SetPreviousAnimationPositionRatio(float NormalizedTime)
Definition AnimationAsset.h:906
bool ShouldGenerateNotifies() const
Definition AnimationAsset.h:943
void ConvertToFollower()
Definition AnimationAsset.h:938
FAnimAssetTickContext(float InDeltaTime, ERootMotionMode::Type InRootMotionMode, bool bInOnlyOneAnimationInGroup)
Definition AnimationAsset.h:866
void InvalidateMarkerSync()
Definition AnimationAsset.h:928
ERootMotionMode::Type RootMotionMode
Definition AnimationAsset.h:968
FRootMotionMovementParams RootMotionMovementParams
Definition AnimationAsset.h:965
Definition AnimationAsset.h:642
TArray< FAnimTickRecord > ActivePlayers
Definition AnimationAsset.h:647
float MontageLeaderWeight
Definition AnimationAsset.h:663
TArray< FName > ValidMarkers
Definition AnimationAsset.h:657
int32 GroupLeaderIndex
Definition AnimationAsset.h:654
bool bCanUseMarkerSync
Definition AnimationAsset.h:660
void Reset()
Definition AnimationAsset.h:683
FMarkerTickContext MarkerTickContext
Definition AnimationAsset.h:665
float PreviousAnimLengthRatio
Definition AnimationAsset.h:668
float AnimLengthRatio
Definition AnimationAsset.h:671
FAnimGroupInstance()
Definition AnimationAsset.h:674
Definition AnimNotifyQueue.h:161
Definition AnimationAsset.h:411
FAnimTickRecord()=default
int32 TriangulationIndex
Definition AnimationAsset.h:439
FBlendFilter * BlendFilter
Definition AnimationAsset.h:437
float BlendSpacePositionX
Definition AnimationAsset.h:440
bool bTeleportToTime
Definition AnimationAsset.h:442
float BlendSpacePositionY
Definition AnimationAsset.h:441
TArray< FPassedMarker > * MarkersPassedThisTick
Definition AnimationAsset.h:448
TArray< FBlendSampleData > * BlendSampleDataCache
Definition AnimationAsset.h:438
float GetRootMotionWeight() const
Definition AnimationAsset.h:462
float CurrentPosition
Definition AnimationAsset.h:447
Definition AnimationAsset.h:995
Definition AnimNodeBase.h:354
Definition AnimationAsset.h:209
FVector GetFilterLastOutput() const
Definition AnimationAsset.h:218
Definition AnimationAsset.h:122
float GetClampedWeight() const
Definition AnimationAsset.h:199
UE_DEPRECATED(5.0, "GetWeight() was renamed to GetClampedWeight()") float GetWeight() const
Definition AnimationAsset.h:193
void AddWeight(float Weight)
Definition AnimationAsset.h:188
bool operator==(const FBlendSampleData &Other) const
Definition AnimationAsset.h:183
FBlendSampleData(int32 Index)
Definition AnimationAsset.h:171
Definition AnimationAsset.h:98
FDeltaTimeRecord(float InDeltaTime)
Definition AnimationAsset.h:113
float Delta
Definition AnimationAsset.h:110
bool IsPreviousValid() const
Definition AnimationAsset.h:108
void Set(float InPrevious, float InDelta)
Definition AnimationAsset.h:100
float GetPrevious() const
Definition AnimationAsset.h:107
FDeltaTimeRecord()=default
void SetPrevious(float InPrevious)
Definition AnimationAsset.h:106
Definition AnimInterpFilter.h:107
static const FIoHash Zero
Definition IoHash.h:70
Definition AnimationAsset.h:56
FMarkerPair()
Definition AnimationAsset.h:60
FMarkerPair(int32 InMarkerIndex, float InTimeToMarker)
Definition AnimationAsset.h:61
void Reset()
Definition AnimationAsset.h:63
int32 MarkerIndex
Definition AnimationAsset.h:57
float TimeToMarker
Definition AnimationAsset.h:58
Definition AnimationAsset.h:361
FMarkerSyncAnimPosition(const FName &InPrevMarkerName, const FName &InNextMarkerName, const float &InAlpha)
Definition AnimationAsset.h:386
bool IsValid() const
Definition AnimationAsset.h:380
FString ToString() const
Definition AnimationAsset.h:393
FMarkerSyncAnimPosition()
Definition AnimationAsset.h:382
Definition AnimationAsset.h:67
bool IsValid(bool bLooping) const
Definition AnimationAsset.h:72
FMarkerPair PreviousMarker
Definition AnimationAsset.h:69
FString ToString() const
Definition AnimationAsset.h:81
FMarkerPair NextMarker
Definition AnimationAsset.h:70
void Reset()
Definition AnimationAsset.h:78
Definition AnimationAsset.h:400
float DeltaTimeWhenPassed
Definition AnimationAsset.h:403
FName PassedMarkerName
Definition AnimationAsset.h:401
Definition AnimationAsset.h:233
FPoseCurve(int32 InPoseIndex, FName InName, float InValue)
Definition AnimationAsset.h:251
FName Name
Definition AnimationAsset.h:238
int32 PoseIndex
Definition AnimationAsset.h:241
static SmartName::UID_Type UID
Definition AnimationAsset.h:235
float Value
Definition AnimationAsset.h:243
Definition UnrealType.h:6865
Definition AnimationAsset.h:711
const FTransform & GetRootMotionTransform() const
Definition AnimationAsset.h:844
FRootMotionMovementParams(const FRootMotionMovementParams &Other)
Definition AnimationAsset.h:738
void Set(const FTransform &InTransform)
Definition AnimationAsset.h:760
FRootMotionMovementParams ConsumeRootMotion(float Alpha)
Definition AnimationAsset.h:829
bool bHasRootMotion
Definition AnimationAsset.h:720
void AccumulateWithBlend(const FTransform &InTransform, float InBlendWeight)
Definition AnimationAsset.h:789
void AccumulateWithBlend(const FRootMotionMovementParams &MovementParams, float InBlendWeight)
Definition AnimationAsset.h:805
FRootMotionMovementParams(const FRootMotionMovementParams &&Other)
Definition AnimationAsset.h:745
FRootMotionMovementParams & operator=(const FRootMotionMovementParams &Other)
Definition AnimationAsset.h:752
void Accumulate(const FRootMotionMovementParams &MovementParams)
Definition AnimationAsset.h:781
void MakeUpToFullWeight()
Definition AnimationAsset.h:819
void ScaleRootMotionTranslation(float TranslationScale)
Definition AnimationAsset.h:845
void Accumulate(const FTransform &InTransform)
Definition AnimationAsset.h:768
void Clear()
Definition AnimationAsset.h:813
Definition ObjectPtr.h:488
Definition Optional.h:131
Definition PointerIsConvertibleFromTo.h:60
Definition SoftObjectPtr.h:174
static UE_FORCEINLINE_HINT TQuat< double > Slerp(const TQuat< double > &Quat1, const TQuat< double > &Quat2, double Slerp)
Definition Quat.h:660
static CORE_API const TQuat< double > Identity
Definition Quat.h:63