UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
TimelineTemplate.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 "UObject/Object.h"
8#include "Misc/Guid.h"
10#include "Engine/Blueprint.h"
11#include "TimelineTemplate.generated.h"
12
14
15USTRUCT()
17{
26
28
31 UPROPERTY()
32 FName TrackName;
33
34public:
36 UPROPERTY()
37 bool bIsExternalCurve;
38#if WITH_EDITORONLY_DATA
40 UPROPERTY()
41 bool bIsExpanded;
43 UPROPERTY()
45#endif
46
48 ENGINE_API bool operator == (const FTTTrackBase& T2) const;
49
51 : TrackName(NAME_None)
52 , bIsExternalCurve(false)
54 , bIsExpanded(true)
56#endif
57 {}
58
59 virtual ~FTTTrackBase() = default;
60
61 FName GetTrackName() const { return TrackName; }
63};
64
65USTRUCT()
67{
69
71 : TrackType(InType)
72 , TrackIndex(InIndex)
73 {}
74
76 : FTTTrackId(0, 0)
77 {}
78
79 UPROPERTY()
80 int32 TrackType;
81 UPROPERTY()
82 int32 TrackIndex;
83};
84
86USTRUCT()
88{
90
91private:
92 UPROPERTY()
93 FName FunctionName;
94
95public:
97 UPROPERTY()
98 TObjectPtr<class UCurveFloat> CurveKeys;
99
101 ENGINE_API bool operator == (const FTTEventTrack& T2) const;
102
103 FName GetFunctionName() const { return FunctionName; }
104 ENGINE_API virtual void SetTrackName(FName NewTrackName, UTimelineTemplate* OwningTimeline) override final;
105
107 : FTTTrackBase()
108 , CurveKeys(nullptr)
109 {}
110};
111
112USTRUCT()
114{
116
117 FName GetPropertyName() const { return PropertyName; }
118 ENGINE_API virtual void SetTrackName(FName NewTrackName, UTimelineTemplate* OwningTimeline) override final;
119
120private:
121 UPROPERTY()
123};
124
126USTRUCT()
128{
130
131
132 UPROPERTY()
133 TObjectPtr<class UCurveFloat> CurveFloat;
134
136 ENGINE_API bool operator == (const FTTFloatTrack& T2) const;
137
140 , CurveFloat(nullptr)
141 {}
142
143};
144
146USTRUCT()
148{
150
151
152 UPROPERTY()
153 TObjectPtr<class UCurveVector> CurveVector;
154
156 ENGINE_API bool operator == (const FTTVectorTrack& T2) const;
157
160 , CurveVector(nullptr)
161 {}
162
163};
164
166USTRUCT()
168{
170
171
172 UPROPERTY()
173 TObjectPtr<class UCurveLinearColor> CurveLinearColor;
174
176 ENGINE_API bool operator == (const FTTLinearColorTrack& T2) const;
177
180 , CurveLinearColor(nullptr)
181 {}
182
183};
184
185UCLASS(MinimalAPI)
187{
189
190
191 UPROPERTY(EditAnywhere, Category=TimelineTemplate)
192 float TimelineLength;
193
195 UPROPERTY(EditAnywhere, Category=TimelineTemplate)
197
199 UPROPERTY(EditAnywhere, Category=TimelineTemplate)
200 uint8 bAutoPlay:1;
201
203 UPROPERTY(EditAnywhere, Category=TimelineTemplate)
204 uint8 bLoop:1;
205
207 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=TimelineTemplate)
208 uint8 bReplicated:1;
209
211 UPROPERTY(EditAnywhere, Category = TimelineTemplate)
212 uint8 bIgnoreTimeDilation : 1;
213
215 UPROPERTY()
216 TArray<FTTEventTrack> EventTracks;
217
219 UPROPERTY()
220 TArray<FTTFloatTrack> FloatTracks;
221
223 UPROPERTY()
224 TArray<FTTVectorTrack> VectorTracks;
225
227 UPROPERTY()
228 TArray<FTTLinearColorTrack> LinearColorTracks;
229
231 UPROPERTY(EditAnywhere, Category=BPVariableDescription)
233
235 FGuid TimelineGuid;
236
238 UPROPERTY()
239 TEnumAsByte<ETickingGroup> TimelineTickGroup;
240
242 int32 FindFloatTrackIndex(FName FloatTrackName) const;
243
245 int32 FindVectorTrackIndex(FName VectorTrackName) const;
246
248 int32 FindEventTrackIndex(FName EventTrackName) const;
249
251 int32 FindLinearColorTrackIndex(FName ColorTrackName) const;
252
254 ENGINE_API bool IsNewTrackNameValid(FName NewTrackName) const;
255
257 FName GetUpdateFunctionName() const { return UpdateFunctionName; }
258
260 FName GetFinishedFunctionName() const { return FinishedFunctionName; }
261
263 ENGINE_API void SetMetaData(FName Key, FString Value);
264
266 ENGINE_API const FString& GetMetaData(FName Key) const;
267
269 ENGINE_API void RemoveMetaData(FName Key);
270
272 ENGINE_API int32 FindMetaDataEntryIndexForKey(FName Key) const;
273
275 FName GetVariableName() const { return VariableName; }
276
278 FName GetDirectionPropertyName() const { return DirectionPropertyName; }
279
280 /* Create a new unique name for a curve */
281 ENGINE_API static FString MakeUniqueCurveName(UObject* Obj, UObject* InOuter);
282
283 ENGINE_API static FString TimelineVariableNameToTemplateName(FName Name);
284
285 ENGINE_API void GetAllCurves(TSet<class UCurveBase*>& InOutCurves) const;
286
287 ENGINE_API FTTTrackId GetDisplayTrackId(int32 DisplayTrackIndex);
288 ENGINE_API int32 GetNumDisplayTracks() const;
289 ENGINE_API void RemoveDisplayTrack(int32 DisplayTrackIndex);
290 ENGINE_API void MoveDisplayTrack(int32 DisplayTrackIndex, int32 DirectionDelta);
291 ENGINE_API void AddDisplayTrack(FTTTrackId NewTrackId);
292
293
294 //~ Begin UObject Interface
295 virtual void PostDuplicate(bool bDuplicateForPIE) override;
296 virtual void PostEditImport() override;
297 virtual void PostLoad() override;
298 virtual bool Rename(const TCHAR* InName, UObject* NewOuter, ERenameFlags Flags) override;
299 virtual void Serialize(FArchive& Ar) override;
300 virtual void PostInitProperties() override;
301 //~ End UObject Interface
302
303private:
305 ENGINE_API void UpdateCachedNames();
306
308
309 UPROPERTY()
310 FName VariableName;
311
312 UPROPERTY()
313 FName DirectionPropertyName;
314
315 UPROPERTY()
316 FName UpdateFunctionName;
317
318 UPROPERTY()
319 FName FinishedFunctionName;
320
321#if WITH_EDITORONLY_DATA
323 UPROPERTY()
325#endif
326
327
328public:
329 static const FString TemplatePostfix;
330};
331
336{
337private:
339 {
340 TimelineTemplate->UpdateCachedNames();
341 }
342
346
349};
#define WITH_EDITORONLY_DATA
Definition CoreMiscDefines.h:24
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
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
return true
Definition ExternalRpcRegistry.cpp:601
const bool
Definition NetworkReplayStreaming.h:178
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
uint32 ERenameFlags
Definition ObjectMacros.h:2302
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
if(Failed) console_printf("Failed.\n")
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition Archive.h:1208
Definition NameTypes.h:617
Definition Array.h:670
Definition EnumAsByte.h:22
Definition CurveFloat.h:31
Definition CurveLinearColor.h:29
Definition CurveVector.h:31
Definition Object.h:95
Definition TimelineTemplate.h:187
static const FString TemplatePostfix
Definition TimelineTemplate.h:329
@ false
Definition radaudio_common.h:23
Definition Guid.h:109
Definition TimelineTemplate.h:88
FTTEventTrack()
Definition TimelineTemplate.h:106
Definition TimelineTemplate.h:128
Definition TimelineTemplate.h:168
Definition TimelineTemplate.h:114
Definition TimelineTemplate.h:17
ETrackType
Definition TimelineTemplate.h:20
@ TT_FloatInterp
Definition TimelineTemplate.h:22
@ TT_VectorInterp
Definition TimelineTemplate.h:23
@ TT_LinearColorInterp
Definition TimelineTemplate.h:24
@ TT_Event
Definition TimelineTemplate.h:21
virtual ~FTTTrackBase()=default
FName GetTrackName() const
Definition TimelineTemplate.h:61
FTTTrackBase()
Definition TimelineTemplate.h:50
Definition TimelineTemplate.h:67
FTTTrackId()
Definition TimelineTemplate.h:75
Definition TimelineTemplate.h:148
Definition TimelineTemplate.h:336
friend struct FBlueprintCompilationManagerImpl
Definition TimelineTemplate.h:344
friend class FBlueprintEditorUtils
Definition TimelineTemplate.h:348
friend struct FRigVMBlueprintCompilationManagerImpl
Definition TimelineTemplate.h:345
Definition ObjectPtr.h:488