UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MovieScene3DTransformSection.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"
8#include "Curves/KeyHandle.h"
9#include "MovieSceneSection.h"
11#include "MovieSceneKeyStruct.h"
17#include "TransformData.h"
19#include "ConstraintsManager.h"
20#include "ConstraintChannel.h"
21#include "MovieScene3DTransformSection.generated.h"
22
23#if WITH_EDITORONLY_DATA
25UENUM()
27{
28 EST_OnlyWhenSelected UMETA(DisplayName="Only When Selected"),
29 EST_Always UMETA(DisplayName="Always"),
30 EST_Never UMETA(DisplayName="Never"),
31};
32#endif
33
34
38USTRUCT()
41{
43
44
45 UPROPERTY(EditAnywhere, Category=Key, meta=(Spatial))
46 FVector Location = FVector::ZeroVector;
47
49 UPROPERTY(EditAnywhere, Category=Key)
51
53
54 virtual void PropagateChanges(const FPropertyChangedEvent& ChangeEvent) override;
55};
57
58
62USTRUCT()
65{
67
68
69 UPROPERTY(EditAnywhere, Category=Key)
70 FRotator Rotation = FRotator::ZeroRotator;
71
73 UPROPERTY(EditAnywhere, Category=Key)
75
77
78 virtual void PropagateChanges(const FPropertyChangedEvent& ChangeEvent) override;
79};
81
85USTRUCT()
88{
90
91
92 UPROPERTY(EditAnywhere, Category=Key, meta=(Spatial))
93 FVector Scale = FVector::OneVector;
94
96 UPROPERTY(EditAnywhere, Category=Key)
98
100
101 virtual void PropagateChanges(const FPropertyChangedEvent& ChangeEvent) override;
102};
104
105
109USTRUCT()
112{
114
115
116 UPROPERTY(EditAnywhere, Category=Key, meta=(Spatial))
117 FVector Location = FVector::ZeroVector;
118
120 UPROPERTY(EditAnywhere, Category=Key)
121 FRotator Rotation = FRotator::ZeroRotator;
122
124 UPROPERTY(EditAnywhere, Category=Key, meta=(Spatial))
125 FVector Scale = FVector::OneVector;
126
128 UPROPERTY(EditAnywhere, Category=Key)
130
132
133 virtual void PropagateChanges(const FPropertyChangedEvent& ChangeEvent) override;
134};
136
137
139
140USTRUCT()
142{
144
148
152
157
159 {
160 EMovieSceneTransformChannel Channels = GetChannels();
161 return FVector(
165 }
166
168 {
169 EMovieSceneTransformChannel Channels = GetChannels();
170 return FVector(
174 }
175
177 {
178 EMovieSceneTransformChannel Channels = GetChannels();
179 return FVector(
183 }
184
185private:
186
187 UPROPERTY()
188 uint32 Mask;
189};
190
194UCLASS(MinimalAPI)
196{
198
199public:
200
202 UPROPERTY()
204
206#if WITH_EDITOR
207 MOVIESCENETRACKS_API virtual void PostEditUndo() override;
208#endif
209};
210
214UCLASS(MinimalAPI)
220{
222
223public:
224
225 virtual void PostLoad() override;
226
227#if WITH_EDITOR
228 /* From UObject*/
229 virtual bool Modify(bool bAlwaysMarkDirty = true) override;
230 virtual void PostDuplicate(bool bDuplicateForPIE) override;
231#endif
232
233 /* From UMovieSection*/
234
235 MOVIESCENETRACKS_API virtual bool ShowCurveForChannel(const void* Channel) const override;
236 MOVIESCENETRACKS_API virtual void SetBlendType(EMovieSceneBlendType InBlendType) override;
238 MOVIESCENETRACKS_API virtual void GetReferencedBindings(TArray<FGuid>& OutBindings) override;
239 MOVIESCENETRACKS_API virtual void PreSave(FObjectPreSaveContext SaveContext) override;
240
241#if WITH_EDITOR
242 MOVIESCENETRACKS_API virtual void PostPaste() override;
243#endif
244
245public:
246
251
256
260 MOVIESCENETRACKS_API FMovieSceneTransformMask GetMaskByName(const FName& InName) const;
261
265 MOVIESCENETRACKS_API bool GetUseQuaternionInterpolation() const;
266
270 MOVIESCENETRACKS_API void SetUseQuaternionInterpolation(bool bInUseQuaternionInterpolation);
271
275 FMovieSceneFloatChannel* GetWeightChannel() { return &ManualWeight; }
276protected:
277
278 MOVIESCENETRACKS_API virtual TSharedPtr<FStructOnScope> GetKeyStruct(TArrayView<const FKeyHandle> KeyHandles) override;
279 MOVIESCENETRACKS_API virtual EMovieSceneChannelProxyType CacheChannelProxy() override;
280
281private:
282
284 MOVIESCENETRACKS_API virtual void ImportEntityImpl(UMovieSceneEntitySystemLinker* EntityLinker, const FEntityImportParams& Params, FImportedEntity* OutImportedEntity) override;
285 MOVIESCENETRACKS_API virtual void InterrogateEntityImpl(UMovieSceneEntitySystemLinker* EntityLinker, const FEntityImportParams& Params, FImportedEntity* OutImportedEntity) override;
286
287 template<typename BaseBuilderType>
288 void BuildEntity(BaseBuilderType& InBaseBuilder, UMovieSceneEntitySystemLinker* Linker, const FEntityImportParams& Params, FImportedEntity* OutImportedEntity);
290 void ImportConstraintEntity(UMovieSceneEntitySystemLinker* EntityLinker, const FEntityImportParams& Params, FImportedEntity* OutImportedEntity);
291
292private:
293
294 static UE::MovieScene::FChannelOverrideNames ChannelOverrideNames;
295
296 UMovieSceneSectionChannelOverrideRegistry* GetChannelOverrideRegistry(bool bCreateIfMissing) override;
297 UE::MovieScene::FChannelOverrideProviderTraitsHandle GetChannelOverrideProviderTraits() const override;
298 void OnChannelOverridesChanged() override;
299
300private:
301
302 UPROPERTY()
303 FMovieSceneTransformMask TransformMask;
304
306 UPROPERTY()
308
310 UPROPERTY()
312
314 UPROPERTY()
316
318 UPROPERTY()
319 FMovieSceneFloatChannel ManualWeight;
320
322 UPROPERTY()
324
326 UPROPERTY()
328
330 UPROPERTY(EditAnywhere, DisplayName = "Use Quaternion Interpolation", Category = "Rotation")
331 bool bUseQuaternionInterpolation;
332
333public:
334 //IMovieSceneConstrainedSection overrides
335
336 /*
337 * If it has that constraint with that Name
338 */
339 virtual bool HasConstraintChannel(const FGuid& InGuid) const override;
340
341 /*
342 * Get constraint with that name
343 */
345
346 /*
347 * Add Constraint channel
348 */
349 virtual void AddConstraintChannel(UTickableConstraint* InConstraint) override;
350
351 /*
352 * Remove Constraint channel
353 */
354 virtual void RemoveConstraintChannel(const UTickableConstraint* InConstraint) override;
355
356 /*
357 * Get The channels by value
358 */
359 virtual TArray<FConstraintAndActiveChannel>& GetConstraintsChannels() override;
360
361 /*
362 * Replace the constraint with the specified name with the new one
363 */
365
366 /*
367 * Clear proxy if changed
368 */
369 virtual void OnConstraintsChanged() override;
370
371private:
372
373#if WITH_EDITORONLY_DATA
374
375public:
376
381
386
387private:
388
390 UPROPERTY(EditAnywhere, DisplayName = "Show 3D Trajectory", Category = "Transform")
392
393#endif // WITH_EDITORONLY_DATA
394};
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
constexpr bool EnumHasAllFlags(Enum Flags, Enum Contains)
Definition EnumClassFlags.h:28
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
#define FVector
Definition IOSSystemIncludes.h:8
EMovieSceneBlendType
Definition MovieSceneBlendType.h:19
EMovieSceneTransformChannel
Definition MovieSceneSection.h:212
EMovieSceneChannelProxyType
Definition MovieSceneSection.h:73
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UMETA(...)
Definition ObjectMacros.h:747
#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
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Constraints.Build.cs:6
Definition NameTypes.h:617
Definition ObjectSaveContext.h:244
Definition IMovieSceneChannelOverrideProvider.h:150
Definition MovieSceneConstrainedSection.h:31
Definition IMovieSceneEntityProvider.h:122
Definition ArrayView.h:139
Definition Array.h:670
Definition InlineValue.h:22
Definition UnrealString.h.inl:34
Definition Range.h:50
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition MovieScene3DTransformSection.h:196
Definition MovieScene3DTransformSection.h:220
FMovieSceneFloatChannel * GetWeightChannel()
Definition MovieScene3DTransformSection.h:275
Definition MovieSceneEntitySystemLinker.h:113
Definition MovieSceneSectionChannelOverrideRegistry.h:44
Definition MovieSceneSection.h:243
Definition Object.h:95
Definition ConstraintsManager.h:74
Definition Linker.cpp:38
Definition ConstraintChannel.h:103
Definition FrameNumber.h:18
Definition Guid.h:109
Definition MovieScene3DTransformSection.h:41
Definition MovieScene3DTransformSection.h:65
Definition MovieScene3DTransformSection.h:88
Definition MovieScene3DTransformSection.h:112
Definition MovieSceneDoubleChannel.h:125
Definition MovieSceneEvaluationField.h:328
Definition MovieSceneEvaluationField.h:109
Definition MovieSceneFloatChannel.h:122
Definition MovieSceneKeyStructHelper.h:24
Definition MovieSceneKeyStruct.h:19
Definition MovieSceneSequenceID.h:13
Definition MovieScene3DTransformSection.h:142
FVector GetRotationFactor() const
Definition MovieScene3DTransformSection.h:167
FVector GetTranslationFactor() const
Definition MovieScene3DTransformSection.h:158
FMovieSceneTransformMask(EMovieSceneTransformChannel Channel)
Definition MovieScene3DTransformSection.h:149
EMovieSceneTransformChannel GetChannels() const
Definition MovieScene3DTransformSection.h:153
FVector GetScaleFactor() const
Definition MovieScene3DTransformSection.h:176
Definition UnrealType.h:6865
Definition ObjectPtr.h:488
Definition StructOpsTypeTraits.h:11
Definition StructOpsTypeTraits.h:46
Definition IMovieSceneChannelOverrideProvider.h:19