Unreal Engine - 自动截图
Unreal Engine - Taking screenshots automatically
我有一组表示相机位置的变换矩阵。我想用这些来截取许多屏幕截图(数千张)。
我想按如下方式执行:
- 从数组读取转换
- 将相机放在需要的地方
- 截图(自动)
- 转到 1。
我创建的蓝图如下:
使用此蓝图,unreal engine 崩溃,我认为这是由于循环试图 运行 低于 1 帧。
如何正确截取这些自动截图?
PS: UE 新手。
不管崩溃问题如何,您可能不得不限制自己每帧只能截取一个屏幕截图,因为您需要在截取屏幕截图之前让渲染器有时间更新新的相机角度。
所以我建议在你的蓝图上有一个索引变量,并且你的每一帧:
- 截图
- ++索引
- 如果索引>=CameraTransforms.Count,退出
- 否则,将相机设置为 CameraTransforms[Index]
那就等下一帧吧。我建议先截取屏幕截图的原因是,您可以给 game/render 线程时间来更新您在最后一帧结束时设置的最后一个相机变换。
希望对您有所帮助! P.s。您可能想查看 Sequencer,特别是 rendering out videos。工作流程与我上面概述的大致相同,但您可以跳过屏幕截图步骤并渲染出图像序列。我没有完整的端到端解决方案供您使用,只是提出一个想法供您研究。
您应该在调用之间使用合理的延迟,足以保存文件。
不要使用 for 循环,因为它会导致阻塞调用太多操作。
这里有一些应该有用的东西:
Blueprint graph
调用“开始”一次,然后调用“下一步”。 “Take next”是递归的,所以在这之后,你只需要等待所需的时间,直到所有图像都制作完成。
您也可以考虑使用“文件存在”节点,检查您要制作的屏幕截图是否已经制作,如果是则跳过。这样即使中途崩溃了,也不需要全部重新截图。
我有一组表示相机位置的变换矩阵。我想用这些来截取许多屏幕截图(数千张)。
我想按如下方式执行:
- 从数组读取转换
- 将相机放在需要的地方
- 截图(自动)
- 转到 1。
我创建的蓝图如下:
使用此蓝图,unreal engine 崩溃,我认为这是由于循环试图 运行 低于 1 帧。
如何正确截取这些自动截图?
PS: UE 新手。
不管崩溃问题如何,您可能不得不限制自己每帧只能截取一个屏幕截图,因为您需要在截取屏幕截图之前让渲染器有时间更新新的相机角度。
所以我建议在你的蓝图上有一个索引变量,并且你的每一帧:
- 截图
- ++索引
- 如果索引>=CameraTransforms.Count,退出
- 否则,将相机设置为 CameraTransforms[Index]
那就等下一帧吧。我建议先截取屏幕截图的原因是,您可以给 game/render 线程时间来更新您在最后一帧结束时设置的最后一个相机变换。
希望对您有所帮助! P.s。您可能想查看 Sequencer,特别是 rendering out videos。工作流程与我上面概述的大致相同,但您可以跳过屏幕截图步骤并渲染出图像序列。我没有完整的端到端解决方案供您使用,只是提出一个想法供您研究。
您应该在调用之间使用合理的延迟,足以保存文件。
不要使用 for 循环,因为它会导致阻塞调用太多操作。
这里有一些应该有用的东西:
Blueprint graph
调用“开始”一次,然后调用“下一步”。 “Take next”是递归的,所以在这之后,你只需要等待所需的时间,直到所有图像都制作完成。
您也可以考虑使用“文件存在”节点,检查您要制作的屏幕截图是否已经制作,如果是则跳过。这样即使中途崩溃了,也不需要全部重新截图。