サビー 发表于 2017-5-23 13:00:15

UE4在UI上显示人物模型

本帖最后由 サビー 于 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层过滤一样。
页: [1] 2 3 4
查看完整版本: UE4在UI上显示人物模型