完成目标:在虚幻引擎中实时获取虚拟摄像机的镜头图像,并在GUI中显示,类似于赛车游戏中左右后视镜显示图像,或者摄像头实时采集图像信息显示在GUI界面中,或者在VR中实现摄像机的实时画面采集。

测试版本:4.26(多数版本都可通用)

需要用到的知识:

1、场景捕获组件2D(SceneCaptureComponent2D)

2、画布渲染目标材质(CanvasRenderTarget2D)

3、UI中的图像模块(image)

 

功能实现思路:想要实现获取虚拟摄像机图像并导入UI实时显示,就需要一个实时捕获画面并将其转换为动态材质的方式,通过场景捕获组件2D获得实时画面流,将渲染目标材质转换为普通材质,最后在GUI中创建图像,并为该模块赋予图像材质即可。

以下是操作步骤:

1.打开项目(本文以赛车模板为例)

2.打开赛车的actor蓝图

3.在赛车actor蓝图中点击左上角的添加组件中寻找场景捕获组建2D(SceneCaptureComponent2D),点击添加,然后再下方选中该组件,在右侧的细节面板——场景捕获——纹理目标中选择新建资产——画布渲染目标,创建一个新的材质并为其命名(记好创建的位置,下一步要用)。

4.在赛车actor蓝图中选择视口,并且调整这个摄像机的位置,摄像机采集到的图像取决于此处场景捕获组件2D(SceneCaptureComponent2D)actor放置的位置

5.回到主界面,找到刚刚创建的画布渲染目标材质位置,选中该材质并点击右键,创建材质

 

6.创建一个新的UI界面蓝图,并放入一个image模块,选中该模块并在右侧的外观-笔刷-图像中选中上一步新创建的材质,编译即可(如果显示黑色的话,需要双击打开该材质,并将材质的RGB和最终颜色节点在蓝图中连接起来)。

7.在关卡蓝图中创建UI显示蓝图,可参考此篇文章:https://www.gongyesheji.org/?p=1942

虚幻引擎中如何让UI(UMG)在窗口实时显示
虚幻引擎中如何让UI(UMG)在窗口实时显示

运行以后最终效果:

最终效果
最终效果(左侧为UI中的摄像头)

bilibili视频:待补充

最后,参考学习来自:https://www.youtube.com/watch?v=bMSE2RibLZQ&ab_channel=AidenWilson
这个链接下还是提供了很大的帮助,但是并不是完全参考,因为需求并不完全相同。

www.gongyesheji.org

20220408