我想为我的基于虚幻引擎的游戏创建一个测试应用程序以创建屏幕截图。我想在整个地图上放置许多(可能是数千个)摄像机,然后让我的测试应用程序枚举所有摄像机,并在每个摄像机位置进行屏幕截图。
我碰到了Taking Screenshots,但是想先检查一下它是否尚未在编辑器或某些工具的UE4中内置。我也知道Screenshot Comparison Tool,但是这似乎并不是我所需要的,因为我真的不想使用UE4进行图像匹配,而是只希望目录中包含所有可以我可以随心所欲。
有什么建议吗?
答案 0 :(得分:0)
这不是您要直接执行的操作,但我发现本文非常有趣:https://www.unrealengine.com/en-US/blog/capturing-stereoscopic-360-screenshots-videos-movies-unreal-engine-4?sessionInvalidated=true
它说明了Ninja Theory Ltd.的人们是如何制作他们的360视频预告片的,最终,每帧制作了两个360屏幕截图。
所以他们要做的是将所有内容导出到一个文件夹中(作为图像序列),然后执行他们想要的操作。 (在这种情况下,将它们与ffmpeg一起制作视频)
他们使用了一个插件,我不知道是否可以对它进行调整,使其不进行360捕捉,但是UE4中的内置“拍摄屏幕截图”可以为您工作。
更具体地说,您可能需要将所有位置/变换存储在一个数组中,并在要制作屏幕截图时对其进行循环。每一步,您都将相机放置在特定位置,并确保它是当前活动的相机,以更改“视图”并拍摄屏幕截图。 可以通过控制台命令调用屏幕快照并设置参数,例如导出文件夹,分辨率等。可以使用“ 执行控制台命令”节点从控制台或代码中执行控制台命令(有本文中的示例)。
希望对您有帮助。
答案 1 :(得分:0)
我认为您最好的选择是将相机渲染为纹理。 这样,您可以拥有多个不活动的摄像头,然后对其进行迭代,激活它们,捕获其屏幕视图并转到下一个。