UE – 捕获当前摄像机画面并保存至磁盘

内容纲要

使用高分辨率拍摄

void CaptureCameraViewSaveToDisk(int32 SizeX, int32 SizeY, FString Path, ACameraActor* InCamera)
{
    if (InCamera)
    {
    //主要是这个
        UAutomationBlueprintFunctionLibrary::TakeHighResScreenshot(
            SizeX, SizeY, Path, InCamera, false, false
            );
    }

    // 以下为设置视口位置为摄影机位置。
    FLevelEditorModule& LevelEditor = FModuleManager::GetModuleChecked<FLevelEditorModule>("LevelEditor");
    SLevelViewport* LevelViewport = LevelEditor.GetFirstActiveLevelViewport().Get();
    if (!LevelViewport)
    {
        return false;
    }
    FLevelEditorViewportClient& LevelViewportClient = LevelViewport->GetLevelViewportClient();
    if (InCamera)
    {
        LevelViewportClient.SetViewLocation(InCamera->GetActorLocation());
        LevelViewportClient.SetViewRotation(InCamera->GetActorRotation());
    }
}

Related Posts

发表回复

同步Schの秘密防空洞