实现的效果如下面这张绝地求生的界面,我们将角色显示在UI上面
Demo下载
首先
创建一个新项目选择第三人称模板。
打开角色蓝图(ThirdPersonCharacter),添加一个组件SceneCaptureComponent2DComponent(场景捕捉2d,你可以想象成一个摄像机组件),把他作为摄像机摇臂的组件,方便直接使用鼠标控制视角(与玩家视角同步)
然后在详细面板我们重点关注如下几个参数:
- Texture Target,渲染目标的输出,对象为 RenderTarget(渲染目标)
- Capture Source,捕获源,我们设为默认就行了
- SceneColor(HDR) in RGB,inv Opacity in A的意思就是把空间颜色(无光照)设为RGB通道,不透明性设为透明通道。
- Final Color(LDR) in GRB这个颜色就是最终的颜色,有光照,与玩家视角的效果一致,但是透明通道没有输出。
- Primitive Render Mode,原始渲染模式一共有三个模式(在4.20版本中,下面述说的两个数组不再显示在详细面板中,可以使用蓝图得到)
- Legacy,使用黑名单(HiddenActors数组)
- Render Scene Primitives,原始渲染
- Use ShowOnly List,使用白名单(ShowOnlyActors数组)
接下来在BeginPlay中动态添加ShowOnlyActors(注意把渲染模式设为Use ShowOnly List)
创建渲染目标与材质资源
打开细节面板,我们需要关注的是如下参数(属于性能方面的优化)
- 尺寸,这个是对效果最明显的了,尺寸越大效果越精细,同时更吃性能
- 渲染目标格式,保持默认就好
- Mipmaps Gen Setting,选择NoMipmaps
-
贴图类别选择UI
最后将角色蓝图中场景捕捉组件的渲染目标设为这个
上图中有五个引脚,分别对应
- ARGB通道(混合)
- R通道(红)
- G通道(绿)
- B通道(蓝)
- A通道(透明)
创建UI
UI的创建非常简单,就一个Image控件