UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MovieSceneObjectPathChannel.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Misc/FrameNumber.h"
6#include "MovieSceneChannel.h"
9#include "MovieSceneObjectPathChannel.generated.h"
10
14USTRUCT()
16{
18
19
21 : HardPtr(nullptr)
22 {}
23
26
31
33 {
34 return A.SoftPtr == B.SoftPtr;
35 }
36
37public:
38
42 MOVIESCENE_API bool SerializeFromMismatchedTag(FPropertyTag const& Tag, FStructuredArchive::FSlot Slot);
43
48 {
49 return SoftPtr;
50 }
51
55 MOVIESCENE_API UObject* Get() const;
56
58 {
59 return Get();
60 }
61
62private:
63
65 UPROPERTY()
66 TSoftObjectPtr<UObject> SoftPtr;
67
69 UPROPERTY()
70 mutable TObjectPtr<UObject> HardPtr;
71};
72
78
79USTRUCT()
81{
83
85
88 : PropertyClass(nullptr)
89 {}
90
92 {
93 PropertyClass = InPropertyClass;
94 }
95
96 inline UClass* GetPropertyClass() const
97 {
98 return PropertyClass;
99 }
100
110
120
128 MOVIESCENE_API bool Evaluate(FFrameTime InTime, UObject*& OutValue) const;
129
130public:
131
132 //~ FMovieSceneChannel Interface
137 MOVIESCENE_API virtual void DeleteKeys(TArrayView<const FKeyHandle> InHandles) override;
138 MOVIESCENE_API virtual void DeleteKeysFrom(FFrameNumber InTime, bool bDeleteKeysBefore) override;
139 MOVIESCENE_API virtual void RemapTimes(const UE::MovieScene::IRetimingInterface& Retimer) override;
140 MOVIESCENE_API virtual TRange<FFrameNumber> ComputeEffectiveRange() const override;
141 MOVIESCENE_API virtual int32 GetNumKeys() const override;
142 MOVIESCENE_API virtual void Reset() override;
143 MOVIESCENE_API virtual void Offset(FFrameNumber DeltaPosition) override;
144 MOVIESCENE_API virtual void Optimize(const FKeyDataOptimizationParams& InParameters) override;
145 MOVIESCENE_API virtual void ClearDefault() override;
146 MOVIESCENE_API virtual FKeyHandle GetHandle(int32 Index) override;
147 MOVIESCENE_API virtual int32 GetIndex(FKeyHandle Handle) override;
148
149public:
150
157 {
158 DefaultValue = InDefaultValue;
159 }
161
168 {
169 return DefaultValue;
170 }
171
175 inline void RemoveDefault()
176 {
177 DefaultValue = nullptr;
178 }
179
180private:
181
182 UPROPERTY()
183 TObjectPtr<UClass> PropertyClass;
184
185 UPROPERTY(meta=(KeyTimes))
186 TArray<FFrameNumber> Times;
187
188 UPROPERTY(meta=(KeyValues))
190
191 UPROPERTY()
193
196 FMovieSceneKeyHandleMap KeyHandles;
197};
198
200{
201 OutDefaultValue = Channel->GetDefault();
202 return true;
203}
205{
206 UObject* Object = nullptr;
207 if (InChannel->Evaluate(InTime, Object))
208 {
210 return true;
211 }
212 return false;
213}
214
215template<>
217{
218#if WITH_EDITOR
219
222
223#endif
224};
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
bool GetChannelDefault(const FMovieSceneObjectPathChannel *Channel, FMovieSceneObjectPathChannelKeyValue &OutDefaultValue)
Definition MovieSceneObjectPathChannel.h:199
bool EvaluateChannel(const FMovieSceneObjectPathChannel *InChannel, FFrameTime InTime, FMovieSceneObjectPathChannelKeyValue &OutValue)
Definition MovieSceneObjectPathChannel.h:204
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define USTRUCT(...)
Definition ObjectMacros.h:746
uint32 Offset
Definition VulkanMemory.cpp:4033
Definition StructuredArchiveSlots.h:52
Definition ArrayView.h:139
Definition Array.h:670
Definition Range.h:50
Definition Class.h:3793
Definition Object.h:95
U16 Index
Definition radfft.cpp:71
Definition FrameNumber.h:18
Definition FrameTime.h:16
Definition MovieSceneChannelTraits.h:20
Definition KeyHandle.h:15
Definition MovieSceneChannel.h:112
Definition MovieSceneChannelData.h:37
Definition MovieSceneObjectPathChannel.h:16
friend bool operator==(const FMovieSceneObjectPathChannelKeyValue &A, const FMovieSceneObjectPathChannelKeyValue &B)
Definition MovieSceneObjectPathChannel.h:32
const TSoftObjectPtr & GetSoftPtr() const
Definition MovieSceneObjectPathChannel.h:47
UObject * GetValue() const
Definition MovieSceneObjectPathChannel.h:57
Definition MovieSceneObjectPathChannel.h:81
UClass * GetPropertyClass() const
Definition MovieSceneObjectPathChannel.h:96
void RemoveDefault()
Definition MovieSceneObjectPathChannel.h:175
TMovieSceneChannelData< const FMovieSceneObjectPathChannelKeyValue > GetData() const
Definition MovieSceneObjectPathChannel.h:116
void SetDefault(UObject *InDefaultValue)
Definition MovieSceneObjectPathChannel.h:156
void SetPropertyClass(UClass *InPropertyClass)
Definition MovieSceneObjectPathChannel.h:91
const FMovieSceneObjectPathChannelKeyValue & GetDefault() const
Definition MovieSceneObjectPathChannel.h:167
TMovieSceneChannelData< FMovieSceneObjectPathChannelKeyValue > GetData()
Definition MovieSceneObjectPathChannel.h:106
Definition PropertyTag.h:38
Definition MovieSceneChannelData.h:259
Definition MovieSceneChannelTraits.h:39
Definition MovieSceneChannelTraits.h:63
Definition ObjectPtr.h:488
Definition SoftObjectPtr.h:174
Definition StructOpsTypeTraits.h:11
Definition StructOpsTypeTraits.h:46
Definition IMovieSceneRetimingInterface.h:18