UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AnimMontage.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
10#include "CoreMinimal.h"
12#include "UObject/Object.h"
14#include "Animation/AnimTypes.h"
16#include "AlphaBlend.h"
19#include "AnimMontage.generated.h"
20
21class UAnimInstance;
22class UAnimMontage;
24class UAnimSequence;
25class UBlendProfile;
26class USkeletalMeshComponent;
27
28enum class EBlendProfileMode : uint8;
29
30
36USTRUCT()
38{
40
41
42 UPROPERTY(EditAnywhere, Category=Section)
43 FName SectionName;
44
45#if WITH_EDITORONLY_DATA
47 UPROPERTY()
48 float StartTime_DEPRECATED;
49#endif
50
52 UPROPERTY(VisibleAnywhere, Category=Section)
53 FName NextSectionName;
54
59 UPROPERTY(Category=Section, Instanced, EditAnywhere)
61
62public:
65 , SectionName(NAME_None)
66#if WITH_EDITORONLY_DATA
67 , StartTime_DEPRECATED(0.0f)
68#endif
69 , NextSectionName(NAME_None)
70 {
71 }
72
76};
77
82USTRUCT()
84{
86
87 UPROPERTY(EditAnywhere, Category=Slot)
88 FName SlotName;
89
90 UPROPERTY(EditAnywhere, Category=Slot)
91 FAnimTrack AnimTrack;
92
94};
95
99USTRUCT()
101{
103
104 UPROPERTY(EditAnywhere, Category=BranchingPoint)
105 FName EventName;
106
107#if WITH_EDITORONLY_DATA
108 UPROPERTY()
110#endif
111
113 UPROPERTY()
114 float TriggerTimeOffset = 0.f;
115
117 float GetTriggerTime() const { return GetTime() + TriggerTimeOffset; }
118};
119
121UENUM()
123{
124 enum Type : int
125 {
130 };
131}
132
133UENUM()
135{
136 //Uses standard weight based blend
137 Standard,
138 //Uses inertialization. Requires an inertialization node somewhere in the graph after any slot node used by this montage.
140};
141
144USTRUCT()
146{
148
149 UPROPERTY()
150 int32 NotifyIndex;
151
152 UPROPERTY()
153 float TriggerTime;
154
155 UPROPERTY()
156 TEnumAsByte<EAnimNotifyEventType::Type> NotifyEventType;
157
159 : NotifyIndex(INDEX_NONE)
160 , TriggerTime(0.f)
161 , NotifyEventType(EAnimNotifyEventType::Begin)
162 {
163 }
164
171};
172
173UENUM()
181
189
196
198
204DECLARE_DELEGATE_ThreeParams( FOnMontageSectionChanged, class UAnimMontage*, FName /*SectionName*/ , bool /*bInterrupted*/)
205
212{
213private:
214 const struct FAnimMontageInstance* MontageInstance;
215 const class UAnimMontage* Montage;
216
217 float TimeRemaining;
218 float Cached_CombinedPlayRate;
219 float PlayRate;
220 float DeltaMove;
221 bool bPlayingForward;
222
223 int32 CurrentSectionIndex;
224 float CurrentSectionStartTime;
225 float CurrentSectionLength;
226 bool bReachedEndOfSection;
227 bool bHasValidTimeStretchCurveData;
228
229 int32 TimeStretchMarkerIndex;
230
231 mutable TArray<float> SectionStartPositions_Target;
232 mutable TArray<float> SectionEndPositions_Target;
233
234 float Cached_P_Target;
235 float Cached_P_Original;
236
237 FTimeStretchCurveInstance TimeStretchCurveInstance;
238
239public:
241 : MontageInstance(nullptr)
242 , Montage(nullptr)
243 , TimeRemaining(0.f)
244 , Cached_CombinedPlayRate(0.f)
245 , PlayRate(0.f)
246 , DeltaMove(0.f)
247 , bPlayingForward(true)
248 , CurrentSectionIndex(INDEX_NONE)
249 , CurrentSectionStartTime(0.f)
250 , CurrentSectionLength(0.f)
251 , bReachedEndOfSection(false)
252 , bHasValidTimeStretchCurveData(false)
253 , TimeStretchMarkerIndex(INDEX_NONE)
254 , Cached_P_Target(FLT_MAX)
255 , Cached_P_Original(FLT_MAX)
256 {}
257
259
260 void AddEvaluationTime(float InDeltaTime) { TimeRemaining += InDeltaTime; }
261 bool HasTimeRemaining() const { return (TimeRemaining > UE_SMALL_NUMBER); }
262 float GetRemainingTime() const { return TimeRemaining; }
264 bool HasReachedEndOfSection() const { return bReachedEndOfSection; }
265 float GetRemainingPlayTimeToSectionEnd(const float In_P_Original);
266
267 bool GetbPlayingForward() const { return bPlayingForward; }
268 float GetDeltaMove() const { return DeltaMove; }
269 int32 GetCurrentSectionIndex() const { return CurrentSectionIndex; }
270
272 void ClearCachedData() { Cached_CombinedPlayRate = FLT_MAX; }
273
274private:
279 void ConditionallyUpdateTimeStretchCurveCachedData();
280
286 float FindMontagePosition_Target(float In_P_Original);
287
293 float FindMontagePosition_Original(float In_P_Target);
294
299 float GetCurrSectionEndPosition_Target() const;
300
305 float GetCurrSectionStartPosition_Target() const;
306};
307
311USTRUCT(BlueprintType)
313{
315
317 ENGINE_API FMontageBlendSettings(float BlendTime);
319
321 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Blend", meta = (DisplayAfter = "Blend"))
323
325 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Blend", meta = (DisplayAfter = "BlendMode"))
327
329 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Blend")
331};
332
333USTRUCT()
335{
337
339
340 // Montage reference
341 UPROPERTY()
343
344 // delegates
345 FOnMontageEnded OnMontageEnded;
346 FOnMontageBlendingOutStarted OnMontageBlendingOutStarted;
347 FOnMontageBlendedInEnded OnMontageBlendedInEnded;
348 FOnMontageSectionChanged OnMontageSectionChanged;
349
350 UPROPERTY()
351 bool bPlaying;
352
353 // Blend Time multiplier to allow extending and narrowing blendtimes
355 float DefaultBlendTimeMultiplier;
356
357 // transient value of time position and delta in the last frame known
358 FDeltaTimeRecord DeltaTimeRecord;
359
360 // marker tick record
361 FMarkerTickRecord MarkerTickRecord;
362
363 // markers that passed in this tick
364 TArray<FPassedMarker> MarkersPassedThisTick;
365
366 // Whether this in this tick's call to Advance we used marker based sync
367 bool bDidUseMarkerSyncThisTick;
368
369 // enable auto blend out. This is instance set up. You can override
370 bool bEnableAutoBlendOut;
371
372private:
373 struct FMontageSubStepper MontageSubStepper;
374
375 // list of next sections per section - index of array is section id
376 UPROPERTY()
377 TArray<int32> NextSections;
378
379 // list of prev sections per section - index of array is section id
380 UPROPERTY()
381 TArray<int32> PrevSections;
382
383 // reference to AnimInstance
385
386 // Unique ID for this instance
387 int32 InstanceID;
388
393 TArray<FAnimNotifyEvent> ActiveStateBranchingPoints;
394
395 UPROPERTY()
396 float Position;
397
398 UPROPERTY()
399 float PlayRate;
400
403
404 // need to save if it's interrupted or not
405 // this information is crucial for gameplay
406 bool bInterrupted;
407
408 // transient PreviousWeight - Weight of previous tick
409 float PreviousWeight;
410
411 // transient NotifyWeight - Weight for spawned notifies, modified slightly to make sure
412 // - we spawn all notifies
413 float NotifyWeight;
414
415 // The current start linear alpha value of the blend. This is not stored inside the FAlphaBlend struct.
416 float BlendStartAlpha;
417
418 // sync group name
419 FName SyncGroupName;
420
421 // Active blend profile.
422 UBlendProfile* ActiveBlendProfile;
423 EBlendProfileMode ActiveBlendProfileMode;
424
429 TOptional<float> ForcedNextFromPosition;
430 TOptional<float> ForcedNextToPosition;
431
433 int32 DisableRootMotionCount;
434
435public:
447 ENGINE_API void MontageSync_StopLeading();
449 ENGINE_API void MontageSync_StopFollowing();
451 ENGINE_API void MontageSync_PreUpdate();
453 ENGINE_API void MontageSync_PostUpdate();
454
456 float GetWeight() const { return Blend.GetBlendedValue(); }
457 float GetDesiredWeight() const { return Blend.GetDesiredValue(); }
458 float GetBlendTime() const { return Blend.GetBlendTime(); }
459 UE_DEPRECATED(4.26, "Please use GetSyncGroupName")
460 int32 GetSyncGroupIndex() const { return INDEX_NONE; }
461 FName GetSyncGroupName() const { return SyncGroupName; }
462
464 void SetWeight(float InValue) { Blend.SetAlpha(InValue); }
466 void SetDesiredWeight(float InValue) { Blend.SetDesiredValue(InValue); }
467
469 const FAlphaBlend& GetBlend() const { return Blend; }
470
471private:
473 TArray<struct FAnimMontageInstance*> MontageSyncFollowers;
475 struct FAnimMontageInstance* MontageSyncLeader;
477 uint32 MontageSyncUpdateFrameCounter;
478
480 ENGINE_API bool MontageSync_HasBeenUpdatedThisFrame() const;
482 ENGINE_API uint32 MontageSync_GetFrameCounter() const;
484 ENGINE_API void MontageSync_PerformSyncToLeader();
485
487 ENGINE_API void InitializeBlend(const FAlphaBlend& InAlphaBlend);
488
490 static ENGINE_API bool ValidateInstanceAfterNotifyState(const TWeakObjectPtr<UAnimInstance>& InAnimInstance, const UAnimNotifyState* InNotifyStateClass);
491
492public:
494
496
497 //~ Begin montage instance Interfaces
498
499 // Blend in with the supplied play rate. Other blend settings will come from the Montage asset.
500 ENGINE_API void Play(float InPlayRate = 1.f);
501 // Blend in with the supplied blend settings
503
504 // Blend out with the supplied FAlphaBlend. Other blend settings will come from the Montage asset.
505 ENGINE_API void Stop(const FAlphaBlend& InBlendOut, bool bInterrupt=true);
506 // Blend out with the supplied blend settings
508
509 ENGINE_API void Pause();
511
512 ENGINE_API bool JumpToSectionName(FName const & SectionName, bool bEndOfSection = false);
513 ENGINE_API bool SetNextSectionName(FName const & SectionName, FName const & NewNextSectionName);
514 ENGINE_API bool SetNextSectionID(int32 const & SectionID, int32 const & NewNextSectionID);
515
516 bool IsValid() const { return (Montage!=nullptr); }
517 bool IsPlaying() const { return IsValid() && bPlaying; }
519 bool IsStopped() const { return Blend.GetDesiredValue() == 0.f; }
520
522 bool IsActive() const { return (IsValid() && !IsStopped()); }
523
524 ENGINE_API void Terminate();
525
527 ENGINE_API bool CanUseMarkerSync() const;
528
532 int32 GetInstanceID() const { return InstanceID; }
533 float GetPosition() const { return Position; };
534 float GetPlayRate() const { return PlayRate; }
535 float GetDeltaMoved() const { return DeltaTimeRecord.Delta; }
537 float GetBlendStartAlpha() const { return BlendStartAlpha; }
538 const FAnimMontageInstance* GetMontageSyncLeader() const { return MontageSyncLeader; }
539 const UBlendProfile* GetActiveBlendProfile() const { return ActiveBlendProfile; }
540 const EBlendProfileMode GetActiveBlendProfileMode() const { return ActiveBlendProfileMode; }
541
546 void SetPlayRate(float const & InPlayRate) { PlayRate = InPlayRate; }
547
548 // Disable RootMotion
549 void PushDisableRootMotion() { DisableRootMotionCount++; }
550 void PopDisableRootMotion() { DisableRootMotionCount--; }
551 bool IsRootMotionDisabled() const { return DisableRootMotionCount > 0; }
552
554 void SetNextPositionWithEvents(float InPosition) { ForcedNextFromPosition.Reset(); ForcedNextToPosition = InPosition; }
556 void SetNextPositionWithEvents(float InFromPosition, float InToPosition) { ForcedNextFromPosition = InFromPosition; ForcedNextToPosition = InToPosition; }
557
568 ENGINE_API void UpdateWeight(float DeltaTime);
569
570#if WITH_EDITOR
572#endif
573
575 ENGINE_API bool SimulateAdvance(float DeltaTime, float& InOutPosition, struct FRootMotionMovementParams & OutRootMotionParams) const;
577
581 ENGINE_API FName GetSectionNameFromID(int32 const & SectionID) const;
582
583 // reference has to be managed manually
585
589
590private:
592 ENGINE_API void OnMontagePositionChanged(FName const & ToSectionName);
593
596 ENGINE_API bool UpdateActiveStateBranchingPoints(float CurrentTrackPosition);
597
599 ENGINE_API void BranchingPointEventHandler(const FBranchingPointMarker* BranchingPointMarker);
600 ENGINE_API void RefreshNextPrevSections();
601
602 ENGINE_API float GetRemainingPlayTimeToSectionEnd(const FMontageSubStepper& MontageSubStepper) const;
603
604public:
606 static ENGINE_API UAnimMontage* SetSequencerMontagePosition(FName SlotName, USkeletalMeshComponent* SkeletalMeshComponent, int32& InOutInstanceId, UAnimSequenceBase* InAnimSequence, float InFromPosition, float InToPosition, float Weight, bool bLooping, bool bPlaying);
607 static ENGINE_API UAnimMontage* PreviewSequencerMontagePosition(FName SlotName, USkeletalMeshComponent* SkeletalMeshComponent, int32& InOutInstanceId, UAnimSequenceBase* InAnimSequence, float InFromPosition, float InToPosition, float Weight, bool bLooping, bool bFireNotifies, bool bPlaying);
609 static ENGINE_API UAnimMontage* PreviewSequencerMontagePosition(FName SlotName, USkeletalMeshComponent* SkeletalMeshComponent, UAnimInstance* AnimInstance, int32& InOutInstanceId, UAnimSequenceBase* InAnimSequence, float InFromPosition, float InToPosition, float Weight, bool bLooping, bool bFireNotifies, bool bPlaying);
610};
611
621UCLASS(config=Engine, hidecategories=(UObject, Length), MinimalAPI, BlueprintType, meta= (LoadBehavior = "LazyOnDemand"))
623{
625
628
629 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = BlendOption)
631
632 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = BlendOption)
634
636 UPROPERTY(EditAnywhere, Category=BlendOption)
637 FAlphaBlend BlendIn;
638
639#if WITH_EDITORONLY_DATA
640 UPROPERTY()
642#endif
643
645 UPROPERTY(EditAnywhere, Category=BlendOption)
646 FAlphaBlend BlendOut;
647
648#if WITH_EDITORONLY_DATA
649 UPROPERTY()
651#endif
652
656 UPROPERTY(EditAnywhere, Category = BlendOption)
658
659 UFUNCTION(BlueprintPure, Category = "Montage")
660 FAlphaBlendArgs GetBlendInArgs() const { return FAlphaBlendArgs(BlendIn); }
661
662 UFUNCTION(BlueprintPure, Category = "Montage")
663 FAlphaBlendArgs GetBlendOutArgs() const { return FAlphaBlendArgs(BlendOut); }
664
665 UFUNCTION(BlueprintPure, Category = "Montage")
666 float GetDefaultBlendInTime() const { return BlendIn.GetBlendTime(); }
667
668 UFUNCTION(BlueprintCallable, Category = "Montage")
669 float GetDefaultBlendOutTime() const { return BlendOut.GetBlendTime(); }
670
672 UPROPERTY(EditAnywhere, Category = SyncGroup)
674
676 UPROPERTY(EditAnywhere, Category = SyncGroup)
678
679 UPROPERTY()
681
682 // composite section.
683 UPROPERTY()
685
686 // slot data, each slot contains anim track
687 UPROPERTY()
689
690#if WITH_EDITORONLY_DATA
691 // Remove this when VER_UE4_MONTAGE_BRANCHING_POINT_REMOVAL is removed.
692 UPROPERTY()
694#endif
695
697 UPROPERTY()
699
701 UPROPERTY()
703
705 UPROPERTY(EditAnywhere, Category = BlendOption)
707
709 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = BlendOption, meta = (UseAsBlendProfile = true))
711
713 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = BlendOption, meta = (UseAsBlendProfile = true))
715
717 UPROPERTY()
718 TEnumAsByte<ERootMotionRootLock::Type> RootMotionRootLock;
719
720#if WITH_EDITORONLY_DATA
722 UPROPERTY(EditAnywhere, Category = AdditiveSettings)
724#endif // WITH_EDITORONLY_DATA
725
726 // Add new slot track to this montage
727 ENGINE_API FSlotAnimationTrack& AddSlot(FName SlotName);
728
731
732 UFUNCTION(BlueprintPure, Category = "Montage")
733 ENGINE_API bool IsDynamicMontage() const;
734
735 UFUNCTION(BlueprintPure, Category = "Montage")
737
738public:
739 //~ Begin UObject Interface
740#if WITH_EDITORONLY_DATA
741 virtual void Serialize(FArchive& Ar) override;
742#endif // WITH_EDITORONLY_DATA
743 virtual void PostLoad() override;
744 virtual void PreSave(FObjectPreSaveContext ObjectSaveContext) override;
745
746 virtual FFrameRate GetSamplingFrameRate() const override;
747
748 // Gets the sequence length of the montage by calculating it from the lengths of the segments in the montage
750
751#if WITH_EDITOR
752 virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
753#endif // WITH_EDITOR
754 virtual void GetResourceSizeEx(FResourceSizeEx& CumulativeResourceSize) override;
755 //~ End UObject Interface
756
757 //~ Begin AnimSequenceBase Interface
758 virtual bool IsValidAdditive() const override;
759#if WITH_EDITOR
761#endif // WITH_EDITOR
762 virtual void GetMarkerIndicesForTime(float CurrentTime, bool bLooping, const TArray<FName>& ValidMarkerNames, FMarkerPair& OutPrevMarker, FMarkerPair& OutNextMarker) const override;
763 UE_DEPRECATED(5.0, "Use other GetMarkerSyncPositionfromMarkerIndicies signature")
764 virtual FMarkerSyncAnimPosition GetMarkerSyncPositionfromMarkerIndicies(int32 PrevMarker, int32 NextMarker, float CurrentTime) const { return UAnimMontage::GetMarkerSyncPositionFromMarkerIndicies(PrevMarker, NextMarker, CurrentTime, nullptr); }
765 virtual FMarkerSyncAnimPosition GetMarkerSyncPositionFromMarkerIndicies(int32 PrevMarker, int32 NextMarker, float CurrentTime, const UMirrorDataTable* MirrorTable) const override;
766 virtual void TickAssetPlayer(FAnimTickRecord& Instance, struct FAnimNotifyQueue& NotifyQueue, FAnimAssetTickContext& Context) const override;
767 virtual TArray<FName>* GetUniqueMarkerNames() override { return &MarkerData.UniqueMarkerNames; }
768 virtual void RefreshCacheData() override;
769 virtual bool CanBeUsedInComposition() const { return false; }
770 virtual void GetAnimationPose(FAnimationPoseData& OutPoseData, const FAnimExtractContext& ExtractionContext) const override { check(false); /* Should never be called, montages dont use this API */ }
771 //~ End AnimSequenceBase Interface
772
773#if WITH_EDITOR
774 //~ Begin UAnimationAsset Interface
775 virtual bool GetAllAnimationSequencesReferred(TArray<UAnimationAsset*>& AnimationAssets, bool bRecursive = true) override;
776 virtual void ReplaceReferredAnimations(const TMap<UAnimationAsset*, UAnimationAsset*>& ReplacementMap) override;
777 //~ End UAnimationAsset Interface
778
781
788#endif
793 UFUNCTION(BlueprintPure, Category = "Montage")
795
799
800 // @todo document
801 ENGINE_API void GetSectionStartAndEndTime(int32 SectionIndex, float& OutStartTime, float& OutEndTime) const;
802
803 // @todo document
804 ENGINE_API float GetSectionLength(int32 SectionIndex) const;
805
807 UFUNCTION(BlueprintPure, Category = "Montage")
809
811 UFUNCTION(BlueprintPure, Category = "Montage")
812 ENGINE_API FName GetSectionName(int32 SectionIndex) const;
813
815 UFUNCTION(BlueprintPure, Category = "Montage")
816 int32 GetNumSections() const { return CompositeSections.Num(); }
817
819 UFUNCTION(BlueprintCallable, Category = "Montage")
821
822 // @todo document
823 ENGINE_API bool IsValidSectionIndex(int32 SectionIndex) const;
824
827
841 ENGINE_API const TArray<class UAnimMetaData*> GetSectionMetaData(FName SectionName, bool bIncludeSequence=true, FName SlotName = NAME_None);
842
845
848
850 float CalculatePos(FCompositeSection &Section, float PosWithinCompositeSection) const;
851
853 ENGINE_API const FAnimTrack* GetAnimationData(FName SlotName) const;
854
856 virtual bool HasRootMotion() const override;
857
869
870 UE_DEPRECATED(5.6, "Use ExtractRootMotionFromTrackRange with FAnimExtractContext")
872
874 UFUNCTION(BlueprintPure, Category = "Montage")
875 ENGINE_API FName GetGroupName() const;
876
878 bool HasValidSlotSetup() const;
879
880private:
885 bool IsWithinPos(int32 FirstIndex, int32 SecondIndex, float CurrentTime) const;
886
889
890
891public:
892#if WITH_EDITOR
899
905
906private:
909
911 virtual void RefreshParentAssetData() override;
912
914 void PropagateChanges();
915
916private:
919
920public:
921 typedef FOnMontageChangedMulticaster::FDelegate FOnMontageChanged;
922
926#endif //WITH_EDITOR
927
928private:
929
935
937 UPROPERTY()
939public:
940
942 UPROPERTY()
944
947
949 UE_DEPRECATED(4.19, "Use the GetAnimNotifiesFromTrackPositions that takes FAnimNotifyEventReferences instead")
951
954
955 bool CanUseMarkerSync() const { return MarkerData.AuthoredSyncMarkers.Num() > 0; }
956
957 // update markers
958 void CollectMarkers();
959
960 //~Begin UAnimCompositeBase Interface
961 virtual void InvalidateRecursiveAsset() override;
962 virtual bool ContainRecursive(TArray<UAnimCompositeBase*>& CurrentAccumulatedList) override;
963 virtual void SetCompositeLength(float InLength) override;
964#if WITH_EDITOR
965 virtual void PopulateWithExistingModel(TScriptInterface<IAnimationDataModel> ExistingDataModel) override;
966#endif // WITH_EDITOR
967 //~End UAnimCompositeBase Interface
968
970 ENGINE_API static UAnimMontage* CreateSlotAnimationAsDynamicMontage(UAnimSequenceBase* Asset, FName SlotNodeName, float BlendInTime = 0.25f, float BlendOutTime = 0.25f, float InPlayRate = 1.f, int32 LoopCount = 1, float BlendOutTriggerTime = -1.f, float InTimeToStartMontageAt = 0.f);
971
973 UFUNCTION(BlueprintCallable, Category = "Animation")
975
977 ENGINE_API static UAnimMontage* CreateSlotAnimationAsDynamicMontage_WithFractionalLoops(UAnimSequenceBase* Asset, FName SlotNodeName, float BlendInTime = 0.25f, float BlendOutTime = 0.25f, float LoopCount = 1.0f, float BlendOutTriggerTime = -1.f);
978
979 //~Begin Time Stretch Curve
980public:
981
983 UPROPERTY(EditAnywhere, Category = TimeStretchCurve)
985
987 UPROPERTY(EditAnywhere, Category = TimeStretchCurve)
988 FName TimeStretchCurveName;
989
990private:
991#if WITH_EDITOR
993 //~End Time Stretch Curve
994 virtual void UpdateCommonTargetFrameRate() override;
995#endif // WITH_EDITOR
996};
UAnimMontage bool UAnimMontage UAnimMontage Montage
Definition AnimInstance.h:84
EMontageSubStepResult
Definition AnimMontage.h:175
EMontageBlendMode
Definition AnimMontage.h:135
#define check(expr)
Definition AssertionMacros.h:314
EBlendProfileMode
Definition BlendProfile.h:23
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#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 DECLARE_DELEGATE_TwoParams(DelegateName, Param1Type, Param2Type)
Definition DelegateCombinations.h:57
#define DECLARE_DELEGATE_OneParam(DelegateName, Param1Type)
Definition DelegateCombinations.h:48
#define DECLARE_MULTICAST_DELEGATE(DelegateName)
Definition DelegateCombinations.h:23
#define DECLARE_DELEGATE_ThreeParams(DelegateName, Param1Type, Param2Type, Param3Type)
Definition DelegateCombinations.h:66
return true
Definition ExternalRpcRegistry.cpp:601
void * FDelegateUserObject
Definition IDelegateInstance.h:107
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 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
@ Stop
Definition PrecomputedVolumetricLightmapStreaming.cpp:26
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
#define UE_SMALL_NUMBER
Definition UnrealMathUtility.h:130
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Engine.Build.cs:7
Definition Archive.h:1208
Definition NameTypes.h:617
Definition ObjectSaveContext.h:244
Definition UnrealType.h:3087
Definition UObjectGlobals.h:2492
Definition Array.h:670
Definition EnumAsByte.h:22
Definition UnrealString.h.inl:34
Definition ScriptInterface.h:139
Definition AnimCompositeBase.h:313
Definition AnimInstance.h:353
Definition AnimMetaData.h:19
Definition AnimNotifyState.h:25
Definition AnimSequenceBase.h:37
Definition AnimSequence.h:203
Definition BlendProfile.h:132
Definition MirrorDataTable.h:102
Definition Object.h:95
Definition AnimTypes.h:36
Type
Definition AnimTypes.h:38
Definition AnimMontage.h:123
Type
Definition AnimMontage.h:125
Definition AnimEnums.h:12
@ false
Definition radaudio_common.h:23
Definition AlphaBlend.h:41
Definition AlphaBlend.h:71
Definition AnimationAsset.h:850
Definition AnimationAsset.h:267
Definition AnimLinkableElement.h:40
Definition AnimMontage.h:335
const FAnimMontageInstance * GetMontageSyncLeader() const
Definition AnimMontage.h:538
FDeltaTimeRecord DeltaTimeRecord
Definition AnimMontage.h:358
int32 GetInstanceID() const
Definition AnimMontage.h:532
ENGINE_API bool SetNextSectionName(FName const &SectionName, FName const &NewNextSectionName)
Definition AnimMontage.cpp:1816
ENGINE_API int32 GetNextSectionID(int32 const &CurrentSectionID) const
Definition AnimMontage.cpp:1901
bool IsPlaying() const
Definition AnimMontage.h:517
void SetWeight(float InValue)
Definition AnimMontage.h:464
ENGINE_API FName GetCurrentSection() const
Definition AnimMontage.cpp:1866
ENGINE_API void Terminate()
Definition AnimMontage.cpp:1725
const FAlphaBlend & GetBlend() const
Definition AnimMontage.h:469
bool IsActive() const
Definition AnimMontage.h:522
const UBlendProfile * GetActiveBlendProfile() const
Definition AnimMontage.h:539
static ENGINE_API UAnimMontage * SetSequencerMontagePosition(FName SlotName, USkeletalMeshComponent *SkeletalMeshComponent, int32 &InOutInstanceId, UAnimSequenceBase *InAnimSequence, float InFromPosition, float InToPosition, float Weight, bool bLooping, bool bPlaying)
Definition AnimMontage.cpp:2964
const EBlendProfileMode GetActiveBlendProfileMode() const
Definition AnimMontage.h:540
void SetPosition(float const &InPosition)
Definition AnimMontage.h:545
ENGINE_API void Advance(float DeltaTime, struct FRootMotionMovementParams *OutRootMotionParams, bool bBlendRootMotion)
Definition AnimMontage.cpp:2496
float GetDeltaMoved() const
Definition AnimMontage.h:535
float GetPosition() const
Definition AnimMontage.h:533
void SetDesiredWeight(float InValue)
Definition AnimMontage.h:466
ENGINE_API void UpdateWeight(float DeltaTime)
Definition AnimMontage.cpp:2015
float GetDesiredWeight() const
Definition AnimMontage.h:457
ENGINE_API void HandleEvents(float PreviousTrackPos, float CurrentTrackPos, const FBranchingPointMarker *BranchingPointMarker)
Definition AnimMontage.cpp:2740
float GetBlendStartAlpha() const
Definition AnimMontage.h:537
ENGINE_API bool CanUseMarkerSync() const
Definition AnimMontage.cpp:3178
FName GetSyncGroupName() const
Definition AnimMontage.h:461
bool bEnableAutoBlendOut
Definition AnimMontage.h:370
bool IsRootMotionDisabled() const
Definition AnimMontage.h:551
ENGINE_API FName GetSectionNameFromID(int32 const &SectionID) const
Definition AnimMontage.cpp:1906
float GetBlendTime() const
Definition AnimMontage.h:458
bool bPlaying
Definition AnimMontage.h:351
ENGINE_API FName GetNextSection() const
Definition AnimMontage.cpp:1882
bool IsValid() const
Definition AnimMontage.h:516
ENGINE_API void AddReferencedObjects(FReferenceCollector &Collector)
Definition AnimMontage.cpp:1717
void SetNextPositionWithEvents(float InPosition)
Definition AnimMontage.h:554
ENGINE_API bool SetNextSectionID(int32 const &SectionID, int32 const &NewNextSectionID)
Definition AnimMontage.cpp:1824
void SetNextPositionWithEvents(float InFromPosition, float InToPosition)
Definition AnimMontage.h:556
void SetPlayRate(float const &InPlayRate)
Definition AnimMontage.h:546
FMarkerTickRecord MarkerTickRecord
Definition AnimMontage.h:361
float GetPreviousPosition() const
Definition AnimMontage.h:536
void SetPlaying(bool bInPlaying)
Definition AnimMontage.h:518
void PopDisableRootMotion()
Definition AnimMontage.h:550
static ENGINE_API UAnimMontage * PreviewSequencerMontagePosition(FName SlotName, USkeletalMeshComponent *SkeletalMeshComponent, int32 &InOutInstanceId, UAnimSequenceBase *InAnimSequence, float InFromPosition, float InToPosition, float Weight, bool bLooping, bool bFireNotifies, bool bPlaying)
Definition AnimMontage.cpp:2954
void PushDisableRootMotion()
Definition AnimMontage.h:549
ENGINE_API bool JumpToSectionName(FName const &SectionName, bool bEndOfSection=false)
Definition AnimMontage.cpp:1793
ENGINE_API FAnimMontageInstance()
Definition AnimMontage.cpp:1435
bool IsStopped() const
Definition AnimMontage.h:519
ENGINE_API bool SimulateAdvance(float DeltaTime, float &InOutPosition, struct FRootMotionMovementParams &OutRootMotionParams) const
Definition AnimMontage.cpp:2049
float GetPlayRate() const
Definition AnimMontage.h:534
Definition AnimNotifyQueue.h:22
Definition AnimTypes.h:277
Definition AnimNotifyQueue.h:161
Definition AnimationAsset.h:411
Definition AnimCompositeBase.h:230
Definition AnimationPoseData.h:16
Definition AnimMontage.h:146
FBranchingPointMarker(int32 InNotifyIndex, float InTriggerTime, EAnimNotifyEventType::Type InNotifyEventType)
Definition AnimMontage.h:165
Definition AnimMontage.h:101
Definition AnimMontage.h:38
const TArray< class UAnimMetaData * > & GetMetaData() const
Definition AnimMontage.h:75
Definition AnimationAsset.h:98
float Delta
Definition AnimationAsset.h:110
float GetPrevious() const
Definition AnimationAsset.h:107
Definition FrameRate.h:21
Definition AnimationAsset.h:56
Definition AnimationAsset.h:361
Definition AnimTypes.h:638
Definition AnimationAsset.h:67
void Reset()
Definition AnimationAsset.h:78
Definition AnimMontage.h:313
Definition AnimMontage.h:212
bool HasReachedEndOfSection() const
Definition AnimMontage.h:264
float GetDeltaMove() const
Definition AnimMontage.h:268
float GetRemainingTime() const
Definition AnimMontage.h:262
int32 GetCurrentSectionIndex() const
Definition AnimMontage.h:269
FMontageSubStepper()
Definition AnimMontage.h:240
void ClearCachedData()
Definition AnimMontage.h:272
bool GetbPlayingForward() const
Definition AnimMontage.h:267
void AddEvaluationTime(float InDeltaTime)
Definition AnimMontage.h:260
bool HasTimeRemaining() const
Definition AnimMontage.h:261
Definition AnimationAsset.h:400
Definition UnrealType.h:6865
Definition ResourceSize.h:31
Definition AnimationAsset.h:711
Definition AnimMontage.h:84
Definition TimeStretchCurve.h:244
Definition TimeStretchCurve.h:197
Definition ObjectPtr.h:488
Definition Optional.h:131
Definition WeakObjectPtrTemplates.h:25