UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MovieSceneCapture.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"
12#include "IMovieSceneCapture.h"
13#include "Scalability.h"
15#include "MovieSceneCapture.generated.h"
16
17class FJsonObject;
18class FSceneViewport;
19
34
36UCLASS(config=EditorPerProjectUserSettings, PerObjectConfig, BlueprintType, MinimalAPI)
38{
39public:
41
43
44
45 static MOVIESCENECAPTURE_API const FName MovieSceneCaptureUIName;
46
47 MOVIESCENECAPTURE_API virtual void PostInitProperties() override;
48
49public:
50
51 // Begin IMovieSceneCaptureInterface
53 virtual void StartCapturing() { StartCapture(); }
54 virtual void Close() override { Finalize(); }
55 virtual FMovieSceneCaptureHandle GetHandle() const override { return Handle; }
56 const FMovieSceneCaptureSettings& GetSettings() const override { return Settings; }
57 const int32 GetFrameNumberOffset() const override { return FrameNumberOffset; }
58 // End IMovieSceneCaptureInterface
59
61 MOVIESCENECAPTURE_API virtual void LoadFromConfig();
62 MOVIESCENECAPTURE_API virtual void SaveToConfig();
63
65 MOVIESCENECAPTURE_API void SerializeJson(FJsonObject& Object);
66
68 MOVIESCENECAPTURE_API void DeserializeJson(const FJsonObject& Object);
69
70protected:
71
74
77
79 MOVIESCENECAPTURE_API virtual bool IsAudioPassIfNeeded() const;
80public:
81
83 UPROPERTY(config, EditAnywhere, NoClear, Category=CaptureSettings, DisplayName="Image Output Format", meta=(MetaClass="/Script/MovieSceneCapture.MovieSceneImageCaptureProtocolBase", HideViewOptions, ShowDisplayNames))
84 FSoftClassPath ImageCaptureProtocolType;
85
87 UPROPERTY(config, EditAnywhere, NoClear, Category=CaptureSettings, DisplayName="Audio Output Format", meta=(MetaClass="/Script/MovieSceneCapture.MovieSceneAudioCaptureProtocolBase", HideViewOptions, ShowDisplayNames))
88 FSoftClassPath AudioCaptureProtocolType;
89
91 UPROPERTY(VisibleAnywhere, Category=CaptureSettings, Transient, Instanced)
93
94 UPROPERTY(VisibleAnywhere, Category = CaptureSettings, Transient, Instanced)
96
98 UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category=CaptureSettings, meta=(ShowOnlyInnerProperties))
100
102 UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category=General, AdvancedDisplay)
103 bool bUseSeparateProcess;
104
106 UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category=General, AdvancedDisplay, meta=(EditCondition=bUseSeparateProcess))
107 bool bCloseEditorWhenCaptureStarts;
108
110 UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category=General, AdvancedDisplay, meta=(EditCondition=bUseSeparateProcess))
111 FString AdditionalCommandLineArguments;
112
114 UPROPERTY(EditAnywhere, BlueprintReadWrite, transient, Category=General, AdvancedDisplay, meta=(EditCondition=bUseSeparateProcess))
115 FString InheritedCommandLineArguments;
116
119 FOnCaptureFinished& OnCaptureFinished() { return OnCaptureFinishedDelegate; }
120
121public:
122
124 const FCachedMetrics& GetMetrics() const { return CachedMetrics; }
125
127 UFUNCTION(BlueprintCallable, Category=Capture)
128 UMovieSceneCaptureProtocolBase* GetImageCaptureProtocol() { return ImageCaptureProtocol; }
129 UFUNCTION(BlueprintCallable, Category=Capture)
130 UMovieSceneCaptureProtocolBase* GetAudioCaptureProtocol() { return AudioCaptureProtocol; }
131
132
133 UFUNCTION(BlueprintCallable, Category=Capture)
135 UFUNCTION(BlueprintCallable, Category=Capture)
137
138public:
139
142 MOVIESCENECAPTURE_API void StartWarmup();
143
145 MOVIESCENECAPTURE_API void StartCapture();
146
148 MOVIESCENECAPTURE_API void CaptureThisFrame(float DeltaSeconds);
149
151 MOVIESCENECAPTURE_API void FinalizeWhenReady();
152
154 MOVIESCENECAPTURE_API bool ShouldFinalize() const;
155
158
159public:
160
162 MOVIESCENECAPTURE_API void Tick(float DeltaSeconds);
163
164 // ICaptureProtocolHost interface
166 MOVIESCENECAPTURE_API FString ResolveFileFormat(const FString& Format, const FFrameMetrics& FrameMetrics) const;
167
169 double GetEstimatedCaptureDurationSeconds() const { return 0.0; }
170
171
172 virtual FFrameRate GetCaptureFrameRate() const { return Settings.GetFrameRate(); }
173 virtual const ICaptureStrategy& GetCaptureStrategy() const { return *CaptureStrategy; }
174 // ~ICaptureProtocolHost interface
175
176protected:
179
180
182 MOVIESCENECAPTURE_API void InitializeCaptureProtocols();
183
184 MOVIESCENECAPTURE_API void ForciblyReinitializeCaptureProtocols();
185
187 virtual void OnTick(float DeltaSeconds) { CaptureThisFrame(DeltaSeconds); }
188protected:
189
190#if WITH_EDITOR
191 MOVIESCENECAPTURE_API virtual void PostEditChangeProperty( struct FPropertyChangedEvent& PropertyChangedEvent) override;
192#endif
193
194protected:
211
219};
220
223{
225
226 MOVIESCENECAPTURE_API virtual void OnInitialize() override;
227 MOVIESCENECAPTURE_API virtual void OnStop() override;
228 MOVIESCENECAPTURE_API virtual bool ShouldPresent(double CurrentTimeSeconds, uint32 FrameIndex) const override;
229 MOVIESCENECAPTURE_API virtual int32 GetDroppedFrames(double CurrentTimeSeconds, uint32 FrameIndex) const override;
230
231private:
232 FFrameRate FrameRate;
233};
234
237{
239
240 MOVIESCENECAPTURE_API virtual void OnInitialize() override;
241 MOVIESCENECAPTURE_API virtual void OnStop() override;
242 virtual bool ShouldSynchronizeFrames() const override { return false; }
243 MOVIESCENECAPTURE_API virtual bool ShouldPresent(double CurrentTimeSeconds, uint32 FrameIndex) const override;
244 MOVIESCENECAPTURE_API virtual int32 GetDroppedFrames(double CurrentTimeSeconds, uint32 FrameIndex) const override;
245
246private:
247 double NextPresentTimeS, FrameLength;
248};
@ INDEX_NONE
Definition CoreMiscDefines.h:150
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_EVENT(OwningType, EventName)
Definition DelegateCombinations.h:32
@ General
Definition MaterialExpressionFunctionInput.h:41
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UFUNCTION(...)
Definition ObjectMacros.h:745
#define UCLASS(...)
Definition ObjectMacros.h:776
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition JsonObject.h:23
Definition NameTypes.h:617
Definition UObjectGlobals.h:1292
Definition SceneViewport.h:35
Definition IMovieSceneCapture.h:23
Definition MovieSceneCapture.Build.cs:6
Definition UnrealString.h.inl:34
Definition SharedPointer.h:692
Definition SubclassOf.h:30
Definition MovieSceneCaptureProtocolBase.h:298
Definition MovieSceneCaptureProtocolBase.h:58
Definition MovieSceneCapture.h:38
virtual void AddFormatMappings(TMap< FString, FStringFormatArg > &OutFormatMappings, const FFrameMetrics &FrameMetrics) const
Definition MovieSceneCapture.h:178
bool bFinalizeWhenReady
Definition MovieSceneCapture.h:200
FOnCaptureFinished OnCaptureFinishedDelegate
Definition MovieSceneCapture.h:216
bool bIsAudioCapturePass
Definition MovieSceneCapture.h:210
const FCachedMetrics & GetMetrics() const
Definition MovieSceneCapture.h:124
FMovieSceneCaptureHandle Handle
Definition MovieSceneCapture.h:202
bool bCapturing
Definition MovieSceneCapture.h:208
virtual FMovieSceneCaptureHandle GetHandle() const override
Definition MovieSceneCapture.h:55
TSharedPtr< ICaptureStrategy > CaptureStrategy
Definition MovieSceneCapture.h:196
const FMovieSceneCaptureSettings & GetSettings() const override
Definition MovieSceneCapture.h:56
TOptional< FCaptureProtocolInitSettings > InitSettings
Definition MovieSceneCapture.h:198
virtual void DeserializeAdditionalJson(const FJsonObject &Object)
Definition MovieSceneCapture.h:76
double GetEstimatedCaptureDurationSeconds() const
Definition MovieSceneCapture.h:169
virtual void Close() override
Definition MovieSceneCapture.h:54
virtual FFrameRate GetCaptureFrameRate() const
Definition MovieSceneCapture.h:172
int32 FrameNumberOffset
Definition MovieSceneCapture.h:214
const int32 GetFrameNumberOffset() const override
Definition MovieSceneCapture.h:57
virtual const ICaptureStrategy & GetCaptureStrategy() const
Definition MovieSceneCapture.h:173
virtual void SerializeAdditionalJson(FJsonObject &Object)
Definition MovieSceneCapture.h:73
virtual void OnTick(float DeltaSeconds)
Definition MovieSceneCapture.h:187
Scalability::FQualityLevels CachedQualityLevels
Definition MovieSceneCapture.h:218
FCachedMetrics CachedMetrics
Definition MovieSceneCapture.h:204
TMap< FString, FStringFormatArg > FormatMappings
Definition MovieSceneCapture.h:206
Definition MovieSceneCaptureProtocolBase.h:283
Definition Object.h:95
NO_LOGGING.
Definition AudioMixerPlatformAndroid.cpp:53
Definition MovieSceneCapture.h:22
int32 PreviousFrame
Definition MovieSceneCapture.h:32
int32 Height
Definition MovieSceneCapture.h:26
FCachedMetrics()
Definition MovieSceneCapture.h:23
int32 Frame
Definition MovieSceneCapture.h:28
float ElapsedSeconds
Definition MovieSceneCapture.h:30
int32 Width
Definition MovieSceneCapture.h:26
Definition MovieSceneCapture.h:223
virtual MOVIESCENECAPTURE_API void OnInitialize() override
Definition MovieSceneCapture.cpp:832
virtual MOVIESCENECAPTURE_API bool ShouldPresent(double CurrentTimeSeconds, uint32 FrameIndex) const override
Definition MovieSceneCapture.cpp:852
virtual MOVIESCENECAPTURE_API void OnStop() override
Definition MovieSceneCapture.cpp:838
virtual MOVIESCENECAPTURE_API int32 GetDroppedFrames(double CurrentTimeSeconds, uint32 FrameIndex) const override
Definition MovieSceneCapture.cpp:857
Definition MovieSceneCaptureProtocolBase.h:310
Definition FrameRate.h:21
Definition MovieSceneCaptureHandle.h:9
Definition MovieSceneCaptureSettings.h:31
Definition UnrealType.h:6865
Definition MovieSceneCapture.h:237
virtual bool ShouldSynchronizeFrames() const override
Definition MovieSceneCapture.h:242
virtual MOVIESCENECAPTURE_API bool ShouldPresent(double CurrentTimeSeconds, uint32 FrameIndex) const override
Definition MovieSceneCapture.cpp:875
virtual MOVIESCENECAPTURE_API int32 GetDroppedFrames(double CurrentTimeSeconds, uint32 FrameIndex) const override
Definition MovieSceneCapture.cpp:880
virtual MOVIESCENECAPTURE_API void OnStop() override
Definition MovieSceneCapture.cpp:871
virtual MOVIESCENECAPTURE_API void OnInitialize() override
Definition MovieSceneCapture.cpp:867
Definition SoftObjectPath.h:539
Definition MovieSceneCaptureProtocolBase.h:355
Definition MovieSceneCaptureProtocolBase.h:341
Definition Scalability.h:28
Definition ObjectPtr.h:488
Definition Optional.h:131