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也不会显示圆锥体
感谢分享
很好的技巧 594270461 发表于 2017-5-23 14:08
楼主的图片背景怎么去掉的呢?之前用过一个版本的也是这么干的,但是人家特意在编写材质球的时候过滤一个色 ...
这个把模型放在天空盒外面,就么有背景了,http://www.hoospo.com/ue4-arpg-2/
挺不错的 谢谢分享 不错的贴子,顶 不错的帖子看看 看起来很厉害的样子 594270461 发表于 2017-5-23 14:08
楼主的图片背景怎么去掉的呢?之前用过一个版本的也是这么干的,但是人家特意在编写材质球的时候过滤一个色 ...
看第4张图,Scene Capture有个参数是Show Only Actors,相当于过滤其他物体。就像unity是通过layer层过滤一样。