UE4在UI上显示人物模型

[复制链接]
查看13527 | 回复35 | 2017-5-23 13:00:15 | 显示全部楼层 |阅读模式
本帖最后由 サビー 于 2017-5-23 19:00 编辑

之前在各论坛上发问题求问过,也在ue4的answer hub上问过,都没人回答过,不知道这是太简单了,还是怎么的。最近google到实现方式,自己也动手做了一遍,就拿来分享下。
现在可以实现的有两种方式:
1.加载分离的level,太耗性能,体验不好,不考虑,估计实际项目也不会参考。
2.利用UE4自带的Scene Capture 2D实现,如果有用过unity的应该很清楚,Unity是利用Rendertexture和Camera来实现的,方式很类似。Unity没源码,UE4也最近开始碰c++部分,所以原理部分就不太清楚,但我猜估计是利用后台缓存来实现的。


先来看实现效果:红圈圈出来的实在umg上显示的image,(ps:模型发光,我是用官方的battery collector实现的例子做的


UE4版本为4.12
实现步骤:
1.创建一个Scene Capture 2D,在Scene Capture 2D前方放一个3D object:

在modes上搜到Scene Capture 2D,拖到场景中,再在Scene Capture 2D前方放一个3D object
如下图

Scene Capture 2D物体上有些参数需要设置一下,这个可以自己去研究下

2.生成一张RenderTextureTarget2D:
点击Scene Capture 2D,在Scene Capture类型下,点击texture target下生成RenderTextureTarget2D,下面的是我已经生成好的





3.创建Material,把该material赋给UMG上就好了
接下来的就更简单了,创建一个material,material的设置为如下

接着在UMG上创建一个image,在吧material赋值给该image就行了


在分享一个不用开vpn也能打开的网址,里面的实现方式很类似,可以参考一下
Render 3D objects in UMG Widget/HUDhttps://engineunreal.wordpress.com/2015/04/21/render-3d-objects-in-umg-widget-hud/


有人提到过滤的问题,我在第一步中提到了Scene Capture 2D物体上有些参数需要设置一下,没有讲清楚。这里有个参数Show Only Actors,这我不需要翻译吗,这个参数就可以起到过滤的作用,就像这样

生成的RenderTextureTarget2D也不会显示圆锥体

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
ldhxuhuan | 2017-5-23 13:02:47 | 显示全部楼层
感谢分享
回复

使用道具 举报

我是狼 | 2017-5-23 13:11:14 | 显示全部楼层
很好的技巧
回复 支持 反对

使用道具 举报

594270461 | 2017-5-23 14:08:35 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
我很唯一
回复 支持 反对

使用道具 举报

konnin | 2017-5-23 14:54:06 | 显示全部楼层
594270461 发表于 2017-5-23 14:08
楼主的图片背景怎么去掉的呢?之前用过一个版本的也是这么干的,但是人家特意在编写材质球的时候过滤一个色 ...

这个把模型放在天空盒外面,就么有背景了,http://www.hoospo.com/ue4-arpg-2/
回复 支持 反对

使用道具 举报

疯跑的三 | 2017-5-23 15:43:04 | 显示全部楼层
挺不错的 谢谢分享
回复 支持 反对

使用道具 举报

我会为何弃疗 | 2017-5-23 17:14:23 | 显示全部楼层
不错的贴子,顶
回复 支持 反对

使用道具 举报

jie13523306 | 2017-5-23 17:24:24 | 显示全部楼层
不错的帖子看看
回复 支持 反对

使用道具 举报

jie13523306 | 2017-5-23 17:24:42 | 显示全部楼层
看起来很厉害的样子
回复 支持 反对

使用道具 举报

サビー | 2017-5-23 18:49:53 | 显示全部楼层
594270461 发表于 2017-5-23 14:08
楼主的图片背景怎么去掉的呢?之前用过一个版本的也是这么干的,但是人家特意在编写材质球的时候过滤一个色 ...

看第4张图,Scene Capture有个参数是Show Only Actors,相当于过滤其他物体。就像unity是通过layer层过滤一样。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

2

主题

144

回帖

983

积分

初阶编码师

积分
983