实现的效果如下图,我们将场景中的角色显示在了UI上,且不显示其他背景
首先,创建一个第三人称模板,打开角色蓝图,添加一个场景采集组件2D(SceneCaptureComponent2D)
将其置于角色的前面,朝向角色(可以想象成摄像机,这里就是做图像的采集)
该组件的细节面板中有这几个参数需要重点看一下:
Texture Target:这里是把相机采集到的图像传出去,可以是RenderTarget、CanvasRenderTarget、
CompositeMode:这个是图像合成模式,使用默认即可,可以自己调试看看
PrimitiveRenderMode:渲染模式,HiddenActors数组和ShowOnlyActors数组在细节中选不到,需要到蓝图中进行设置
- Legacy,使用黑名单(HiddenActors数组) {摄像机不捕捉某些Actors
- Render Scene Primitives,原始渲染 {摄像机捕捉所有Actors
- Use ShowOnly List,使用白名单(ShowOnlyActors数组)(我们选用这一选项) {摄像机只捕捉某些Actors
CaptureSource:捕获源
- SceneColor(HDR)in RGB,Inv Opacity in A(选用默认即可,空间颜色写到RGB,透明度写到A)
这里选用白名单的方式,即在白名单中添加角色蓝图,
给白名单添加名单的方式有:
1.直接ADD Actor,添加想要渲染的组件
2.Set该数组,并把数组公开给编辑器,在场景中添加想要渲染的Actors
制作渲染结果的RenderTarget和材质
创建RT:以下两种资源都可以
把相机捕捉到的结果传给RT
RenderTarget中有几个参数需要注意:
SizeX/Y:渲染纹理的分辨率,这个数值越高纹理越清晰,当然性能消耗也越高
RenderTargetFormat:渲染目标格式,默认即可,也能自行调整:8位、16位、32位
TextureGrupd:选择UI
利用渲染结果创建材质球
采集的目标Alpha为0,没采集到内容的Alpha为1,透明度进行反转
创建UMG蓝图
添加Image图片控件,选择刚刚创建的材质球
关卡蓝图中将UMG显示到屏幕上
将角色蓝图放入场景查看效果:(只捕捉角色,因为白名单只有角色,可以根据自己的情况选用白名单/黑名单/场景内容,以达到不同的效果)
只捕捉角色
捕捉所有内容
捕捉内容排除角色