UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AnimLinkableElement.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"
7#include "AnimLinkableElement.generated.h"
8
9class UAnimMontage;
11struct FAnimSegment;
12
14UENUM()
16{
26}
27
38USTRUCT()
40{
42
44 : LinkedMontage(nullptr)
45 , SlotIndex(0)
46 , SegmentIndex(INDEX_NONE)
47 , LinkMethod(EAnimLinkMethod::Absolute)
48 , CachedLinkMethod(LinkMethod)
49 , SegmentBeginTime(0.f)
50 , SegmentLength(0.f)
51 , LinkValue(0.f)
52 , LinkedSequence(nullptr)
53 {
54 }
55
57 {
58 }
59
61 ENGINE_API void Update();
62
69
75 UE_DEPRECATED(5.1, "LinkMontage has been deprecated, use Link instead")
76 ENGINE_API void LinkMontage(UAnimMontage* Montage, float AbsMontageTime, int32 InSlotIndex = 0);
77
82 UE_DEPRECATED(5.1, "LinkSequence has been deprecated, use Link instead")
83 ENGINE_API void LinkSequence(UAnimSequenceBase* Sequence, float AbsSequenceTime);
84
86 ENGINE_API void Clear();
87
89 ENGINE_API void OnChanged(float NewMontageTime);
90
95
100 ENGINE_API virtual void SetTime(float NewTime, EAnimLinkMethod::Type ReferenceFrame = EAnimLinkMethod::Absolute);
101
103 const UAnimSequenceBase* GetLinkedSequence() const {return LinkedSequence;}
104
106 const UAnimMontage* GetLinkedMontage() const { return LinkedMontage; }
107
111 ENGINE_API void ChangeLinkMethod(EAnimLinkMethod::Type NewLinkMethod);
112
116 ENGINE_API void ChangeSlotIndex(int32 NewSlotIndex);
117
119 EAnimLinkMethod::Type GetLinkMethod() const {return LinkMethod;}
120
122 int32 GetSlotIndex() const {return SlotIndex;}
123
125 int32 GetSegmentIndex() const {return SegmentIndex;}
126
131
133 ENGINE_API bool ConditionalRelink();
134
138 ENGINE_API void RefreshSegmentOnLoad();
139
140protected:
141
143 FAnimSegment* GetSegmentAtCurrentTime();
144
146 UPROPERTY()
147 TObjectPtr<UAnimMontage> LinkedMontage;
148
150 UPROPERTY(EditAnywhere, Category=AnimLink)
151 int32 SlotIndex;
152
154 UPROPERTY()
155 int32 SegmentIndex;
156
158 UPROPERTY(EditAnywhere, Category=AnimLink)
159 TEnumAsByte<EAnimLinkMethod::Type> LinkMethod;
160
162 UPROPERTY()
163 TEnumAsByte<EAnimLinkMethod::Type> CachedLinkMethod;
164
166 UPROPERTY()
167 float SegmentBeginTime;
168
170 UPROPERTY()
171 float SegmentLength;
172
174 UPROPERTY()
175 float LinkValue;
176
181 UPROPERTY(VisibleAnywhere, AdvancedDisplay, Category=AnimLink)
183
184private:
185
189 float GetTimeFromAbsolute(EAnimLinkMethod::Type ReferenceFrame) const ;
190
194 float GetTimeFromRelative(EAnimLinkMethod::Type ReferenceFrame) const ;
195
199 float GetTimeFromProportional(EAnimLinkMethod::Type ReferenceFrame) const;
200
205 void SetTimeFromAbsolute(float NewTime, EAnimLinkMethod::Type ReferenceFrame);
206
211 void SetTimeFromRelative(float NewTime, EAnimLinkMethod::Type ReferenceFrame);
212
217 void SetTimeFromProportional(float NewTime, EAnimLinkMethod::Type ReferenceFrame);
218
223 void SetTime_Internal(float NewTime, EAnimLinkMethod::Type ReferenceFrame = EAnimLinkMethod::Absolute);
224};
UAnimMontage bool UAnimMontage UAnimMontage Montage
Definition AnimInstance.h:84
@ 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 UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define UENUM(...)
Definition ObjectMacros.h:749
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
#define Absolute(a)
Definition Predicates.inl:150
Definition UnrealType.h:3087
Definition EnumAsByte.h:22
Definition AnimSequenceBase.h:37
Definition AnimLinkableElement.h:16
Type
Definition AnimLinkableElement.h:18
@ Proportional
Definition AnimLinkableElement.h:24
Definition AnimLinkableElement.h:40
int32 GetSlotIndex() const
Definition AnimLinkableElement.h:122
const UAnimMontage * GetLinkedMontage() const
Definition AnimLinkableElement.h:106
EAnimLinkMethod::Type GetLinkMethod() const
Definition AnimLinkableElement.h:119
virtual ~FAnimLinkableElement()
Definition AnimLinkableElement.h:56
void SetSegmentIndex(int32 NewSegmentIndex)
Definition AnimLinkableElement.h:130
int32 GetSegmentIndex() const
Definition AnimLinkableElement.h:125
Definition AnimCompositeBase.h:68
Definition ObjectPtr.h:488