UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MovieSceneCaptureProtocolBase.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"
6#include "UObject/Interface.h"
8#include "MovieSceneCaptureProtocolBase.generated.h"
9
10class FSceneViewport;
11
12struct FFrameRate;
13struct FFrameMetrics;
16
17
18UENUM()
30
48
49
56UCLASS(config=EditorPerProjectUserSettings, PerObjectConfig, Abstract, MinimalAPI)
58{
59public:
60
62
64
65public:
66
70 UFUNCTION(BlueprintCallable, Category=Capture)
71 EMovieSceneCaptureProtocolState GetState() const { return State; }
72
76 UFUNCTION(BlueprintCallable, Category=Capture)
77 bool IsCapturing() const { return State == EMovieSceneCaptureProtocolState::Capturing || bFrameRequested[GFrameCounter%2] == true; }
78
86
92 MOVIESCENECAPTURE_API virtual class UWorld* GetWorld() const override;
93public:
94
98 MOVIESCENECAPTURE_API void PreTick();
99
104
108 MOVIESCENECAPTURE_API void WarmUp();
109
115 MOVIESCENECAPTURE_API bool StartCapture();
116
123 MOVIESCENECAPTURE_API void CaptureFrame(const FFrameMetrics& FrameMetrics);
124
128 MOVIESCENECAPTURE_API void BeginFinalize();
129
134 MOVIESCENECAPTURE_API bool HasFinishedProcessing() const;
135
140
146 MOVIESCENECAPTURE_API void AddFormatMappings(TMap<FString, FStringFormatArg>& FormatMappings) const;
147
152
157
166 MOVIESCENECAPTURE_API bool CanWriteToFile(const TCHAR* InFilename, bool bOverwriteExisting) const;
167
168protected:
169
173 virtual bool SetupImpl()
174 {
175 return true;
176 }
177
181 virtual void PreTickImpl() {}
182
186 virtual void TickImpl() {}
187
191 virtual void WarmUpImpl() {}
192
198 virtual bool StartCaptureImpl()
199 {
200 return true;
201 }
202
208 virtual void CaptureFrameImpl(const FFrameMetrics& FrameMetrics) {}
209
213 virtual void PauseCaptureImpl() {}
214
218 virtual void BeginFinalizeImpl() {}
219
224 virtual bool HasFinishedProcessingImpl() const { return true; }
225
229 virtual void FinalizeImpl() {}
230
236 virtual void AddFormatMappingsImpl(TMap<FString, FStringFormatArg>& FormatMappings) const {}
237
242
247
256 MOVIESCENECAPTURE_API virtual bool CanWriteToFileImpl(const TCHAR* InFilename, bool bOverwriteExisting) const;
257 MOVIESCENECAPTURE_API virtual FString GenerateFilenameImpl(const FFrameMetrics& FrameMetrics, const TCHAR* Extension, const FString* NameFormatString = nullptr) const;
258 MOVIESCENECAPTURE_API void EnsureFileWritableImpl(const FString& File) const;
259
260protected:
261
264
267
268private:
269
273
275 bool bFrameRequested[2];
276};
277
281UCLASS(config = EditorPerProjectUserSettings, PerObjectConfig, Abstract, MinimalAPI)
292
296UCLASS(config = EditorPerProjectUserSettings, PerObjectConfig, Abstract, MinimalAPI)
306
308USTRUCT(BlueprintType)
310{
312
313
314 FFrameMetrics() : TotalElapsedTime(0), FrameDelta(0), FrameNumber(0), NumDroppedFrames(0) {}
315
317 : TotalElapsedTime(InTotalElapsedTime), FrameDelta(InFrameDelta), FrameNumber(InFrameNumber), NumDroppedFrames(InNumDroppedFrames)
318 {
319 }
320
322 UPROPERTY(BlueprintReadOnly, Category=Capture)
323 float TotalElapsedTime;
324
326 UPROPERTY(BlueprintReadOnly, Category=Capture)
327 float FrameDelta;
328
330 UPROPERTY(BlueprintReadOnly, Category=Capture)
331 int32 FrameNumber;
332
334 UPROPERTY(BlueprintReadOnly, Category=Capture)
335 int32 NumDroppedFrames;
336};
337
338
341{
343
344 virtual void OnInitialize() = 0;
345 virtual void OnStop() = 0;
346 virtual bool ShouldSynchronizeFrames() const { return true; }
347
348 virtual bool ShouldPresent(double CurrentTimeSeconds, uint32 FrameIndex) const = 0;
349 virtual int32 GetDroppedFrames(double CurrentTimeSeconds, uint32 FrameIndex) const = 0;
350};
351
352
355{
357 virtual const FMovieSceneCaptureSettings& GetSettings() const = 0;
358
360 virtual const int32 GetFrameNumberOffset() const = 0;
361
363 virtual FFrameRate GetCaptureFrameRate() const = 0;
364
366 virtual const ICaptureStrategy& GetCaptureStrategy() const = 0;
367
369 virtual FString ResolveFileFormat(const FString& Format, const FFrameMetrics& FrameMetrics) const = 0;
370
374 virtual double GetEstimatedCaptureDurationSeconds() const = 0;
375};
376
377
uint64 GFrameCounter
Definition CoreGlobals.cpp:418
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
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
UE_FORCEINLINE_HINT uint64 GetState() const
Definition LockFreeList.h:46
EMovieSceneCaptureProtocolState
Definition MovieSceneCaptureProtocolBase.h:20
const bool
Definition NetworkReplayStreaming.h:178
#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
#define UENUM(...)
Definition ObjectMacros.h:749
#define USTRUCT(...)
Definition ObjectMacros.h:746
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition UObjectGlobals.h:1292
Definition SceneViewport.h:35
Definition UnrealString.h.inl:34
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition MovieSceneCaptureProtocolBase.h:298
UMovieSceneAudioCaptureProtocolBase(const FObjectInitializer &ObjInit)
Definition MovieSceneCaptureProtocolBase.h:302
Definition MovieSceneCaptureProtocolBase.h:58
const ICaptureProtocolHost * CaptureHost
Definition MovieSceneCaptureProtocolBase.h:266
virtual bool HasFinishedProcessingImpl() const
Definition MovieSceneCaptureProtocolBase.h:224
virtual void PreTickImpl()
Definition MovieSceneCaptureProtocolBase.h:181
virtual void OnLoadConfigImpl(FMovieSceneCaptureSettings &InSettings)
Definition MovieSceneCaptureProtocolBase.h:246
virtual void AddFormatMappingsImpl(TMap< FString, FStringFormatArg > &FormatMappings) const
Definition MovieSceneCaptureProtocolBase.h:236
virtual void CaptureFrameImpl(const FFrameMetrics &FrameMetrics)
Definition MovieSceneCaptureProtocolBase.h:208
virtual void BeginFinalizeImpl()
Definition MovieSceneCaptureProtocolBase.h:218
virtual bool SetupImpl()
Definition MovieSceneCaptureProtocolBase.h:173
virtual void PauseCaptureImpl()
Definition MovieSceneCaptureProtocolBase.h:213
virtual void OnReleaseConfigImpl(FMovieSceneCaptureSettings &InSettings)
Definition MovieSceneCaptureProtocolBase.h:241
virtual void WarmUpImpl()
Definition MovieSceneCaptureProtocolBase.h:191
TOptional< FCaptureProtocolInitSettings > InitSettings
Definition MovieSceneCaptureProtocolBase.h:263
virtual void TickImpl()
Definition MovieSceneCaptureProtocolBase.h:186
virtual void FinalizeImpl()
Definition MovieSceneCaptureProtocolBase.h:229
virtual bool StartCaptureImpl()
Definition MovieSceneCaptureProtocolBase.h:198
Definition MovieSceneCaptureProtocolBase.h:283
UMovieSceneImageCaptureProtocolBase(const FObjectInitializer &ObjInit)
Definition MovieSceneCaptureProtocolBase.h:287
Definition Object.h:95
Definition World.h:918
virtual UE_API UWorld * GetWorld() const override
Definition World.cpp:1820
Definition MovieSceneCaptureProtocolBase.h:33
TSharedPtr< FSceneViewport > SceneViewport
Definition MovieSceneCaptureProtocolBase.h:40
FIntPoint DesiredSize
Definition MovieSceneCaptureProtocolBase.h:42
static MOVIESCENECAPTURE_API FCaptureProtocolInitSettings FromSlateViewport(TSharedRef< FSceneViewport > InSceneViewport)
Definition MovieSceneCaptureProtocolBase.cpp:187
Definition MovieSceneCaptureProtocolBase.h:310
FFrameMetrics(float InTotalElapsedTime, float InFrameDelta, int32 InFrameNumber, int32 InNumDroppedFrames)
Definition MovieSceneCaptureProtocolBase.h:316
Definition FrameRate.h:21
Definition MovieSceneCaptureSettings.h:31
Definition MovieSceneCaptureProtocolBase.h:355
virtual double GetEstimatedCaptureDurationSeconds() const =0
virtual const FMovieSceneCaptureSettings & GetSettings() const =0
virtual const int32 GetFrameNumberOffset() const =0
virtual FFrameRate GetCaptureFrameRate() const =0
virtual const ICaptureStrategy & GetCaptureStrategy() const =0
virtual FString ResolveFileFormat(const FString &Format, const FFrameMetrics &FrameMetrics) const =0
Definition MovieSceneCaptureProtocolBase.h:341
virtual void OnStop()=0
virtual bool ShouldSynchronizeFrames() const
Definition MovieSceneCaptureProtocolBase.h:346
virtual void OnInitialize()=0
virtual int32 GetDroppedFrames(double CurrentTimeSeconds, uint32 FrameIndex) const =0
virtual ~ICaptureStrategy()
Definition MovieSceneCaptureProtocolBase.h:342
virtual bool ShouldPresent(double CurrentTimeSeconds, uint32 FrameIndex) const =0
Definition Optional.h:131
Definition IntPoint.h:25