UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MovieSceneSkeletalAnimationSection.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 "MovieSceneSection.h"
13#include "MovieSceneSkeletalAnimationSection.generated.h"
14
18enum class ESwapRootBone : uint8;
19
20USTRUCT(BlueprintType)
22{
24
26
28 UE_DEPRECATED(5.5, "Animation lengh no longer has a single, consistent length if there is timewarp.")
29 float GetDuration() const { return 0.f; }
30
32 float GetSequenceLength() const { return Animation != nullptr ? Animation->GetPlayLength() : 0.f; }
33
39
44
48 MOVIESCENETRACKS_API FMovieSceneSequenceTransform MakeTransform(const FFrameRate& OuterFrameRate, const TRange<FFrameNumber>& OuterRange, UAnimSequenceBase* OverrideSequence = nullptr, bool bClampToOuterRange = true, bool bForceLoop = false) const;
49
51 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="Animation", meta=(AllowedClasses = "/Script/Engine.AnimSequence,/Script/Engine.AnimComposite,/Script/Engine.AnimStreamable"))
53
55 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="Animation|Offset")
56 FFrameNumber FirstLoopStartFrameOffset;
57
59 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="Animation|Offset")
60 FFrameNumber StartFrameOffset;
61
63 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="Animation|Offset")
64 FFrameNumber EndFrameOffset;
65
67 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="Animation|Playback")
69
71 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="Animation|Playback")
72 uint32 bReverse:1;
73
75 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Animation|Playback" )
76 FName SlotName;
77
78 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Animation|Playback")
79 TObjectPtr<class UMirrorDataTable> MirrorDataTable;
80
82 UPROPERTY()
84
86 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Animation|Playback")
87 bool bSkipAnimNotifiers;
88
90 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Animation|Playback")
91 bool bForceCustomMode;
92
94 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Animation|Playback")
95 ESwapRootBone SwapRootBone;
96
97 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Animation|Playback")
98 bool bLinearPlaybackWhenScaled;
99
100 UPROPERTY()
101 float StartOffset_DEPRECATED;
102
103 UPROPERTY()
104 float EndOffset_DEPRECATED;
105
106};
107
111UCLASS( MinimalAPI, DisplayName="Anim Sequence" )
115{
117
118public:
119
120 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Animation", meta=(ShowOnlyInnerProperties))
122
124 MOVIESCENETRACKS_API double MapTimeToAnimation(FFrameTime InPosition, FFrameRate InFrameRate) const;
125
126 MOVIESCENETRACKS_API UAnimSequenceBase* GetAnimation() const;
127 MOVIESCENETRACKS_API UAnimSequenceBase* GetPlaybackAnimation() const;
128
129 //~ UMovieSceneSection interface
130 virtual EMovieSceneChannelProxyType CacheChannelProxy() override;
131 virtual void SetRange(const TRange<FFrameNumber>& NewRange) override;
135 virtual UObject* GetSourceObject() const override;
136
137 MOVIESCENETRACKS_API void DeleteChannels(TArrayView<const FName> ChannelNames);
138
146protected:
147
148 virtual TOptional<TRange<FFrameNumber> > GetAutoSizeRange() const override;
149 virtual void TrimSection(FQualifiedFrameTime TrimTime, bool bTrimLeft, bool bDeleteKeys) override;
150 virtual UMovieSceneSection* SplitSection(FQualifiedFrameTime SplitTime, bool bDeleteKeys) override;
151 virtual void GetSnapTimes(TArray<FFrameNumber>& OutSnapTimes, bool bGetSectionBorders) const override;
152 virtual TOptional<FFrameTime> GetOffsetTime() const override;
153 virtual void MigrateFrameTimes(FFrameRate SourceRate, FFrameRate DestinationRate) override;
154 virtual float GetTotalWeightValue(FFrameTime InTime) const override;
155
157 virtual void PostLoad() override;
158 virtual void Serialize(FArchive& Ar) override;
159
163
164private:
165
166 //~ UObject interface
167
168#if WITH_EDITOR
169 virtual void PreEditChange(FProperty* PropertyAboutToChange) override;
170 virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
171
172public:
173 virtual bool Modify(bool bAlwaysMarkDirty = true) override;
174 float PreviousPlayRate;
175private:
176 virtual void PostEditImport() override;
177 virtual void PostEditUndo() override;
178
179#endif
180
181private:
182
183 UPROPERTY()
184 TObjectPtr<class UAnimSequence> AnimSequence_DEPRECATED;
185
186 UPROPERTY()
187 TObjectPtr<UAnimSequenceBase> Animation_DEPRECATED;
188
189 UPROPERTY()
190 float StartOffset_DEPRECATED;
191
192 UPROPERTY()
193 float EndOffset_DEPRECATED;
194
195 UPROPERTY()
196 float PlayRate_DEPRECATED;
197
198 UPROPERTY()
199 uint32 bReverse_DEPRECATED:1;
200
201 UPROPERTY()
202 FName SlotName_DEPRECATED;
203
204public:
205 /* Location offset applied before the matched offset*/
206 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Root Motions")
207 FVector StartLocationOffset;
208
209 /* Location offset applied after the matched offset*/
210 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Root Motions")
211
212 FRotator StartRotationOffset;
213
214 UPROPERTY()
215 FName MatchedBoneName;
216
217 /* Location offset determined by matching*/
218 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Root Motions")
219 FVector MatchedLocationOffset;
220
221 /* Rotation offset determined by matching*/
222 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Root Motions")
223 FRotator MatchedRotationOffset;
224
225 UPROPERTY()
226 uint8 bMatchWithPrevious : 1;
227
228 UPROPERTY()
229 uint8 bMatchTranslation : 1;
230
231 UPROPERTY()
232 uint8 bMatchIncludeZHeight : 1;
233
234 UPROPERTY()
235 uint8 bMatchRotationYaw : 1;
236
237 UPROPERTY()
238 uint8 bMatchRotationPitch : 1;
239
240 UPROPERTY()
241 uint8 bMatchRotationRoll : 1;
242
243 UPROPERTY()
244 uint8 bDebugForceTickPose : 1;
245
246#if WITH_EDITORONLY_DATA
248 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Root Motions")
250#endif
251
252 UPROPERTY(EditAnywhere, Category = "Mixed Animation")
254
255 UPROPERTY(EditAnywhere, Category = "Mixed Animation")
256 int32 MixedAnimationPriority = 0;
257
258 //Previous transform used to specify the global OffsetTransform while calculting the root motions.
259 FTransform PreviousTransform;
260
261 //Temporary index used by GetRootMotionTransform and set by SetBoneIndexforRootMotionCalculations
262 TOptional<int32> TempRootBoneIndex;
263public:
264
266 {
267 FFrameTime CurrentTime; //current time
268 FFrameRate FrameRate; //scene frame rate
269 bool bOutIsAdditive; //if this is additive or not
270 FTransform OutTransform; //total transform including current pose plus offset
271 FTransform OutParentTransform; //offset transform not including original bone transform
272 FTransform OutPoseTransform; //original bone transform
274 float OutWeight; //weight at specified time
275 };
276
277 // Functions/params related to root motion calcuations.
279
280 MOVIESCENETRACKS_API bool GetRootMotionVelocity(FFrameTime PreviousTime, FFrameTime CurrentTime, FFrameRate FrameRate, FTransform& OutVelocity, float& OutWeight) const;
281 MOVIESCENETRACKS_API int32 SetBoneIndexForRootMotionCalculations(bool bBlendFirstChildOfRoot);
283 MOVIESCENETRACKS_API void MatchSectionByBoneTransform(USkeletalMeshComponent* SkelMeshComp, FFrameTime CurrentFrame, FFrameRate FrameRate,
284 const FName& BoneName); //add options for z and rotation
285
286 MOVIESCENETRACKS_API void ClearMatchedOffsetTransforms();
287
288 MOVIESCENETRACKS_API void GetRootMotion(FFrameTime CurrentTime, FRootMotionParams& OutRootMotionParams) const;
289
290 MOVIESCENETRACKS_API void ToggleMatchTranslation();
291
292 MOVIESCENETRACKS_API void ToggleMatchIncludeZHeight();
293
294 MOVIESCENETRACKS_API void ToggleMatchIncludeYawRotation();
295
296 MOVIESCENETRACKS_API void ToggleMatchIncludePitchRotation();
297
298 MOVIESCENETRACKS_API void ToggleMatchIncludeRollRotation();
299
300#if WITH_EDITORONLY_DATA
302#endif
303
304 MOVIESCENETRACKS_API FTransform GetRootMotionStartOffset() const;
305
306private:
308
309};
ESwapRootBone
Definition AnimSequencerInstanceProxy.h:15
#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
EMovieSceneChannelProxyType
Definition MovieSceneSection.h:73
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
#define USTRUCT(...)
Definition ObjectMacros.h:746
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
uint32 Offset
Definition VulkanMemory.cpp:4033
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Archive.h:1208
Definition NameTypes.h:617
Definition UnrealType.h:174
Definition IMovieSceneEntityProvider.h:122
Definition ArrayView.h:139
Definition Array.h:670
Definition RangeBound.h:36
Definition Range.h:50
Definition AnimSequenceBase.h:37
Definition AnimSequence.h:203
Definition MirrorDataTable.h:102
Definition MovieSceneEntitySystemLinker.h:113
Definition MovieSceneSection.h:243
Definition MovieSceneSkeletalAnimationSection.h:115
Definition Object.h:95
virtual void PostEditImport()
Definition Object.h:686
UE_FORCEINLINE_HINT bool Modify(bool bAlwaysMarkDirty=true)
Definition Object.h:317
Definition AnimationPoseData.h:16
Definition FrameNumber.h:18
Definition FrameRate.h:21
Definition FrameTime.h:16
Definition MovieSceneEvaluationField.h:328
Definition MovieSceneEvaluationField.h:109
Definition MovieSceneFloatChannel.h:122
Definition MovieSceneMixedAnimationTarget.h:17
Definition MovieSceneSequenceTransform.h:625
Definition MovieSceneCommonAnimationTrack.h:22
Definition MovieSceneSkeletalAnimationSection.h:22
float GetSequenceLength() const
Definition MovieSceneSkeletalAnimationSection.h:32
Definition MovieSceneTimeWarpVariant.h:51
Definition UnrealType.h:6865
Definition QualifiedFrameTime.h:13
Definition InstancedStruct.h:307
Definition ObjectPtr.h:488
Definition Optional.h:131
Definition IMovieSceneEntityProvider.h:93
Definition IMovieSceneEntityProvider.h:47
Definition MovieSceneSkeletalAnimationSection.h:140
bool bBlendFirstChildOfRoot
Definition MovieSceneSkeletalAnimationSection.h:141
int32 ChildBoneIndex
Definition MovieSceneSkeletalAnimationSection.h:142
TOptional< FTransform > PreviousTransform
Definition MovieSceneSkeletalAnimationSection.h:144
TOptional< FTransform > Transform
Definition MovieSceneSkeletalAnimationSection.h:143
Definition MovieSceneSkeletalAnimationSection.h:266
bool bOutIsAdditive
Definition MovieSceneSkeletalAnimationSection.h:269
FTransform OutPoseTransform
Definition MovieSceneSkeletalAnimationSection.h:272
FFrameRate FrameRate
Definition MovieSceneSkeletalAnimationSection.h:268
FTransform OutParentTransform
Definition MovieSceneSkeletalAnimationSection.h:271
FFrameTime CurrentTime
Definition MovieSceneSkeletalAnimationSection.h:267
float OutWeight
Definition MovieSceneSkeletalAnimationSection.h:274
FTransform OutTransform
Definition MovieSceneSkeletalAnimationSection.h:270
FTransform OutRootStartTransform
Definition MovieSceneSkeletalAnimationSection.h:273