UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MovieSceneChannel.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Containers/Array.h"
8#include "HAL/Platform.h"
9#include "Math/Range.h"
10#include "Misc/CoreDefines.h"
11#include "Misc/FrameNumber.h"
12#include "Misc/FrameRate.h"
13#include "Curves/KeyHandle.h"
15
16#include "MovieSceneChannel.generated.h"
17
18struct FFrameNumber;
19struct FFrameRate;
22
23namespace UE::MovieScene
24{
25 struct IRetimingInterface;
26}
27
28/*
29* Events that are fired when adding, deleting or moving keys
30*/
40
52/*
53* Class to help with pre/post cycling of values
54*/
55namespace UE
56{
57namespace MovieScene
58{
60{
66
74
75 inline void ComputePreValueOffset(double FirstValue, double LastValue)
76 {
77 // CycleCount is negative for pre-extrap
78 ValueOffset = (LastValue - FirstValue) * CycleCount;
79 }
80 inline void ComputePostValueOffset(double FirstValue, double LastValue)
81 {
82 ValueOffset = (LastValue - FirstValue) * CycleCount;
83 }
84 inline bool ShouldMirrorCurve() const
85 {
86 return bMirrorCurve;
87 }
89 {
90 if (FMath::Abs(CycleCount) % 2 == 1)
91 {
92 bMirrorCurve = true;
93
96 }
97 }
98};
100
101} // namespace MovieScene
102} // namespace UE
103/*
104* Note if any Channel uses these delegate's they need a custom serializer to make sure they stick around on undo/redo. Dynamic delegates are too heavy.
105*/
109
110USTRUCT()
112{
114
116
118
126
133 MOVIESCENE_API void SetKeyTime(const FKeyHandle InHandle, const FFrameNumber InKeyTime);
134
144
153
162
171
179
188
195 UE_DEPRECATED(5.6, "Please use RemapTimes")
196 MOVIESCENE_API virtual void ChangeFrameResolution(FFrameRate SourceRate, FFrameRate DestinationRate);
197
201 virtual void RemapTimes(const UE::MovieScene::IRetimingInterface& Retimer)
202 {}
203
213
219 virtual int32 GetNumKeys() const
220 {
221 return 0;
222 }
223
227 virtual void Reset()
228 {}
229
235 virtual void Offset(FFrameNumber DeltaPosition)
236 {}
237
245
249 virtual void ClearDefault()
250 {}
251
256 virtual void PostEditChange() {}
257
265 {
266 return FKeyHandle();
267 }
268
276 {
277 return INDEX_NONE;
278 }
279
280public:
281
297
298protected:
301
304
307
308};
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
FPlatformTypes::int64 int64
A 64-bit signed integer.
Definition Platform.h:1127
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_MULTICAST_DELEGATE_TwoParams(DelegateName, Param1Type, Param2Type)
Definition DelegateCombinations.h:58
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define USTRUCT(...)
Definition ObjectMacros.h:746
uint32 Offset
Definition VulkanMemory.cpp:4033
Definition MovieScene.Build.cs:6
Definition ArrayView.h:139
Definition Array.h:670
Definition Range.h:50
static UE_FORCEINLINE_HINT TRange Empty()
Definition Range.h:671
Definition ConstraintsManager.h:14
FCycleParams CycleTime(FFrameNumber MinFrame, FFrameNumber MaxFrame, FFrameTime InTime)
Definition MovieSceneCurveChannelImpl.cpp:91
Definition AdvancedWidgetsModule.cpp:13
@ false
Definition radaudio_common.h:23
U16 Index
Definition radfft.cpp:71
Definition FrameNumber.h:18
int32 Value
Definition FrameNumber.h:77
Definition FrameRate.h:21
Definition FrameTime.h:16
FFrameNumber FrameNumber
Definition FrameTime.h:98
UE_FORCEINLINE_HINT float GetSubFrame() const
Definition FrameTime.h:64
Definition MovieSceneChannel.h:35
FFrameNumber Frame
Definition MovieSceneChannel.h:38
FKeyAddOrDeleteEventItem(int32 InIndex, FFrameNumber InFrame)
Definition MovieSceneChannel.h:36
int32 Index
Definition MovieSceneChannel.h:37
Definition MovieSceneChannelTraits.h:20
Definition KeyHandle.h:15
Definition MovieSceneChannel.h:45
FFrameNumber Frame
Definition MovieSceneChannel.h:48
FKeyMoveEventItem(int32 InIndex, FFrameNumber InFrame, int32 InNewIndex, FFrameNumber InNewFrame)
Definition MovieSceneChannel.h:46
FFrameNumber NewFrame
Definition MovieSceneChannel.h:50
int32 Index
Definition MovieSceneChannel.h:47
int32 NewIndex
Definition MovieSceneChannel.h:49
Definition MovieSceneChannel.h:112
virtual void DeleteKeys(TArrayView< const FKeyHandle > InHandles)
Definition MovieSceneChannel.h:177
FMovieSceneChannelDataKeyAddedEvent & OnKeyAddedEvent()
Definition MovieSceneChannel.h:286
virtual FKeyHandle GetHandle(int32 Index)
Definition MovieSceneChannel.h:264
virtual int32 GetNumKeys() const
Definition MovieSceneChannel.h:219
virtual int32 GetIndex(FKeyHandle Handle)
Definition MovieSceneChannel.h:275
virtual void GetKeyTimes(TArrayView< const FKeyHandle > InHandles, TArrayView< FFrameNumber > OutKeyTimes)
Definition MovieSceneChannel.h:151
virtual void DuplicateKeys(TArrayView< const FKeyHandle > InHandles, TArrayView< FKeyHandle > OutNewHandles)
Definition MovieSceneChannel.h:169
virtual TRange< FFrameNumber > ComputeEffectiveRange() const
Definition MovieSceneChannel.h:209
FMovieSceneChannelDataKeyMovedEvent KeyMovedEvent
Definition MovieSceneChannel.h:306
FMovieSceneChannelDataKeyDeletedEvent & OnKeyDeletedEvent()
Definition MovieSceneChannel.h:291
virtual void SetKeyTimes(TArrayView< const FKeyHandle > InHandles, TArrayView< const FFrameNumber > InKeyTimes)
Definition MovieSceneChannel.h:160
virtual void Offset(FFrameNumber DeltaPosition)
Definition MovieSceneChannel.h:235
virtual void PostEditChange()
Definition MovieSceneChannel.h:256
FMovieSceneChannelDataKeyAddedEvent KeyAddedEvent
Definition MovieSceneChannel.h:300
virtual ~FMovieSceneChannel()
Definition MovieSceneChannel.h:117
virtual void Optimize(const FKeyDataOptimizationParams &InParameters)
Definition MovieSceneChannel.h:243
virtual void Reset()
Definition MovieSceneChannel.h:227
virtual void DeleteKeysFrom(FFrameNumber InTime, bool bDeleteKeysBefore)
Definition MovieSceneChannel.h:186
FMovieSceneChannelDataKeyDeletedEvent KeyDeletedEvent
Definition MovieSceneChannel.h:303
virtual void ClearDefault()
Definition MovieSceneChannel.h:249
virtual void GetKeys(const TRange< FFrameNumber > &WithinRange, TArray< FFrameNumber > *OutKeyTimes, TArray< FKeyHandle > *OutKeyHandles)
Definition MovieSceneChannel.h:142
FMovieSceneChannelDataKeyMovedEvent & OnKeyMovedEvent()
Definition MovieSceneChannel.h:296
Definition MovieSceneChannel.h:60
double ValueOffset
Definition MovieSceneChannel.h:61
void ComputePostValueOffset(double FirstValue, double LastValue)
Definition MovieSceneChannel.h:80
int32 CycleCount
Definition MovieSceneChannel.h:63
bool ShouldMirrorCurve() const
Definition MovieSceneChannel.h:84
FCycleParams(FFrameTime InTime, int32 InDuration)
Definition MovieSceneChannel.h:67
FFrameTime Time
Definition MovieSceneChannel.h:62
bool bMirrorCurve
Definition MovieSceneChannel.h:65
void ComputePreValueOffset(double FirstValue, double LastValue)
Definition MovieSceneChannel.h:75
int32 Duration
Definition MovieSceneChannel.h:64
void Oscillate(int32 MinFrame, int32 MaxFrame)
Definition MovieSceneChannel.h:88