UE4录屏||录制Sequence

IVideoRecordingSystem


可以实现在Game下的录制
#include "VideoRecordingSystem.h"
#include "PlatformFeatures.h"

//初始化
IVideoRecordingSystem* VideoRecordSystem =  IPlatformFeaturesModule::Get().GetVideoRecordingSystem();
VideoRecordSystem->EnableRecording(true);
FVideoRecordingParameters param;
param.RecordingLengthSeconds = 6000;//设置的最大录制时间,不会录制超过的时间

 //开始录制
VideoRecordSystem->NewRecording(TEXT("MyVideo"), param);
VideoRecordSystem->StartRecording();

//结束录制
IVideoRecordingSystem* VideoRecordSystem =  IPlatformFeaturesModule::Get().GetVideoRecordingSystem();
VideoRecordSystem->FinalizeRecording(true, FText::FromString("Hello"),  FText::FromString("World"));
      

ISequenceRecorder


在Editor下使用,可以录制一段Sequence,保存在固定的文件夹下。

#include "ISequenceRecorder.h"

//开始录制
ISequenceRecorder& Recorder =  FModuleManager::LoadModuleChecked<ISequenceRecorder>("SequenceRecorder");
Recorder.StartRecording(this, "/Game/Sequence", "RecordedSequence");

//停止录制
ISequenceRecorder& Recorder =  FModuleManager::LoadModuleChecked<ISequenceRecorder>("SequenceRecorder");
Recorder.StopRecording();

创建蓝图节点


VideoRecordBlueprint.h

#pragma once
#include "CoreMinimal.h"
#include "Kismet/BlueprintFunctionLibrary.h"
#include "VideoRecordBlueprint.generated.h"
UCLASS(Blueprintable, BlueprintType, meta = (DisplayName = "Record a Video"))
class VIDEORECORD_API UVideoRecordBueprint : public UBlueprintFunctionLibrary
{
    GENERATED_BODY()
public:
    //开始录制
    UFUNCTION(BlueprintCallable, Category = "VideoRecording")
    static bool StartRecording(const FString& Name);
    //停止录制
    UFUNCTION(BlueprintCallable, Category = "VideoRecording")
    static bool StopRecording();
};

VideoRecordBlueprint.cpp

#include "VideoRecordBlueprint.h"
#include "VideoRecordingSystem.h"
#include "PlatformFeatures.h"
bool UVideoRecordBueprint::StartRecording(const FString& Name)
{
    IVideoRecordingSystem* VideoRecordSystem = IPlatformFeaturesModule::Get().GetVideoRecordingSystem();
    VideoRecordSystem->EnableRecording(true);
    FVideoRecordingParameters param;
    param.RecordingLengthSeconds = 6000;
    VideoRecordSystem->NewRecording(*Name, param);
    VideoRecordSystem->StartRecording();
    return true;
}
bool UVideoRecordBueprint::StopRecording()
{
    IVideoRecordingSystem* VideoRecordSystem = IPlatformFeaturesModule::Get().GetVideoRecordingSystem();
    VideoRecordSystem->FinalizeRecording(true, FText::FromString("Hello"), FText::FromString("World"));
    return true;
}
在关卡中的调用:

V按下M键实现播放一段Sequence,结束后会在项目文件的Saved\VideoCaptures下生成对应MP4文件。

录制Sequence.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 听到《少年》这首歌曲,青春的气息扑面而来,这种气息何尝不是我们人生的助燃器。我们都还是曾经的那个少年,童年的...
    杨fan阅读 284评论 0 2
  • #今天是什么日子# ⏰起床:04:50 昨天9点30就睡觉咯,晚上睡的不是很好,一直在做梦,直到4点30的闹钟把我...
    特立_独行阅读 309评论 0 0
  • 1.语法知识看到就要讲,不要累积到最后,文言文里有用,别担心学生听不懂,听得多了,就懂了。 2.村料作文写成议论文...
    shyarene阅读 204评论 0 0
  • 阳光正好,微风不燥,今天可真是个好日子啊。 我端坐在主人旁边,温暖的阳光撒在身上,好舒服啊。我伸长了脖子,想与阳光...
    迩木阅读 251评论 2 2
  • 到底什么是区块链? 每天都能看见各种区块链微信群里高弹阔论的朋友,但是如果扪心自问一下什么是区块链,相信不少人都很...
    草稿记录阅读 492评论 0 0

友情链接更多精彩内容