UE4.18 VR导出全景图制作全景视频

作者: 错误40504 | 来源:发表于2019-07-25 17:29 被阅读9次

    前言:该教程用于UE4制作的vr作品导出全景图,再将序列帧的全景图合成全景360视频。为了加快渲染速度,修改了部分插件源码。

    分享:先上一段测试合成的demo,15s。

    youtube翻墙享用:https://youtu.be/AgOrS_F7SqA

    准备工作:

    1、UE4.18官方插件StereoPanorama,找到引擎安装位置(我这里的是E:\UnrealEngine\UE_4.18\Engine\Plugins\Experimental),将目录底下的StereoPanorama插件拷贝到工程Plugins目录下。如果是纯蓝图工程,可以在工程中新建一个c++类,然后生成sln文件,复制到创建的Plugins目录,vs2015/2017均可打开。将该插件备份,为了防止冲突并删除引擎下的该插件。

    2、修改插件源码:由于插件自动渲染了左右眼,一般情况下,渲染一帧的画面需要30s,左右眼就是需要1分钟左右。我们在合成的时候,一般只需要左眼渲染出的图像,所以修改插件只渲染出左眼,提高效率。默认输出为PNG格式,修改为JPG。

    下面会给出修改过后的插件源码链接,可以直接下载使用。

    链接:https://pan.baidu.com/s/1ZbC4kXtjUzhtrzt3XumWdQ

    提取码:aee7

    也可自行修改,具体修改如下:Visaul Studio打开StereoPanorama\Source\StereoPanorama\Private\SceneCapturer.cpp

    SceneCapturer.cpp

    在当前文档查找全部“righteye”,注释相关代码。

    在当前文档查找全部“EImageFormat”(修改3处)

    //TSharedPtr<IImageWrapper> ImageWrapper = ImageWrapperModule.CreateImageWrapper( EImageFormat::PNG);

    修改为:

    TSharedPtr<IImageWrapper> ImageWrapper = ImageWrapperModule.CreateImageWrapper( EImageFormat::JPEG );

    在当前文档查找全部"CaptureName"

    //FString CaptureName = OutputDir / Timestamp / Folder / TickString + TEXT( ".png" );

    修改为:

    FString CaptureName = OutputDir / Timestamp / Folder / TickString + TEXT( ".jpg" );

    3、编译

    打开Plugins\StereoPanorama\Source\StereoPanorama\StereoPanorama.Build.cs

    添加代码:PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;

    StereoPanorama.Build.cs

    打开工程源码中\Source\TUKTAKMAN\TUKTAKMAN.Build.cs(我这里工程名是TUKTAKMAN),添加StereoPanorama模块。

    TUKTAKMAN.Build.cs

    编译成功即可!

    开始渲染

    1、打开UE4工程,启用插件,需要重启工程。

    启用插件

    2、渲染会根据场景中的摄像机位置进行360°渲染,所以可以配合sequencer或者Matinee使用,达到自动控制镜头的效果。

           打开关卡蓝图,添加以下节点:

         指定保存图片路径--开始渲染从0-30帧,30fps的话,大概就1s。默认输出为4096*2048的图片,如有需要可以根据情况添加如下命令

    SP.OutputDir C:\Users\zhj\Desktop\Test               //设置保存路径

    SP.HorizontalAngularIncrement 2.0                            //一张全景图,每次采集水平方向间隔

    SP.VerticalAngularlncrement 30.0                                //一张全景图,每次采集垂直方向间隔

    SP.ConcurrentCaptures 6

    SP.CaptureHorizontalFOV 90.0                                    //fov视角

    SP.StepCaptureWidth 1024                                               //图片质量

    SP.PanoramicMovie 0 120                                                //渲染帧数0-120帧,开始执行点为第0帧

        说明:一般视频30fps,这里0-30帧指从开始执行渲染为0帧,并不是指程序运行的总帧。开始渲染会卡住,这个时候不要管它,一帧大概需要30s。可以看下保存路径下是否有输出图片。如果有,恭喜你成功了。如你需要渲染1分钟视频,帧率30fps.

    修改为:SP.PanoramicMovie 0 1800

    那么你需要时间大概为:30*60*30/3600=15H。

    你也可以根据官方教程(https://www.unrealengine.com/zh-CN/tech-blog/capturing-stereoscopic-360-screenshots-videos-movies-unreal-engine-4)修改,但是亲测官方给的节点,渲染效果不如默认如下:

    Capture蓝图

    3、打开项目设置Project Settings,将帧率锁定在30

    Project Settings

    打开编辑器设置Editor Perferences,去掉勾选,这样挂机渲染的时候不会因为各种异常弹窗影响效率。

    Editor Perferences

    合成全景视频:

    1、渲染完成后,文件名会是这样连续的,注意一定是要连续的,等会我们用合成软件不连续(如:Left_00000.jpg,Left_00002.jpg),合成软件会报错说找不到Left_00001.jpg的图片。如果是在不同的主机渲染不同的片段(最后会讲)文件名重复,可以用批量重命名软件(最后会讲)。

    渲染图片

    2、下载软件:ffmpeg

    链接:https://pan.baidu.com/s/1iws0btpEQ4tzzERTIoqjeg

    提取码:88jq

    解压后,添加环境变量E:\ffmpeg\bin,我这里解压到E:\ffmpeg

    环境变量

    3、测试ffmpeg

    打开cmd,输入命令ffmpeg -version,显示如下图安装成功!

    测试

    4、开始合成(亲测,6分钟视频大约需要合成30-40分钟)

    可能也跟电脑配置有关系,自行评估,合成过程中会出现cpu 100%的情况

    配置

    cmd输入命令:

    ffmpeg.exe -framerate 30 -i E:\Capture\Left_%5d.jpg -c:v libx264 -profile:v high -level 4.2 -r 30 -pix_fmt yuv420p -crf 18 -preset slower E:\Capture\MyMovie.mp4

    以上命令将E:\Capture\下命名以Left_00000.jpg为规则的图片,根据命名规则按顺序帧合成视频。这里也就是为什么前面说一定要按照命名规则必须连续的原因。

    输出为30帧率,输出视频文件为MyMovie.mp4。

    期待你的成果!

    5、由于渲染效率的问题,需要多台机器合成。我这边的操作是分段计算出渲染帧数,每台机器开始渲染提前1S,渲染帧数加30帧。这样保留前后的30帧数,在合成之前先确定好衔接位置,然后用批量命名根据刚才说的命名规则进行连续命名后合成。

    这里推荐用ACDSee9相片管理器,好用真香。可以自行在官网下载,也可直接用以下链接。

    ACDSee9相片管理器链接:https://pan.baidu.com/s/170wuOmfXRMSft-XzaQa_Hg

    提取码:p2ux

    批量命名 批量命名

    资料:https://www.unrealengine.com/zh-CN/tech-blog/capturing-stereoscopic-360-screenshots-videos-movies-unreal-engine-4

             https://www.jianshu.com/p/ddafe46827b7

    相关文章

      网友评论

        本文标题:UE4.18 VR导出全景图制作全景视频

        本文链接:https://www.haomeiwen.com/subject/auvhrctx.html