UE4 将3D模型映射到UI

背景

UI中有时候会需要显示一些3D样式的东西,而且往往还不是静止的,需要响应世界变化,显示不同角度,这个时候就需要有一个方法将3D的模型映射到UI上面。

实现

新建一个actor改名3DWidgetAcotor

给actor添加mesh组件,我这里选择了一个SkeletaMesh,然后配置了一个男性骨骼。
在这里插入图片描述
然后这里添加了一个 SceneCaptureComponent2D,这里关键的一步是要修改RenserTarget.
在这里插入图片描述
新建一个RenderTarget,改下名字,我改成了My3DWidgetRenderTarget
在这里插入图片描述
可以通过调整size X/Y的值修改图像的清晰度,当然也会有不同的消耗,然后group最好改成UI,这个和打包有关系,对程序运行没有太大关系。
在这里插入图片描述

然后我们再修改上面的SceneCaptureComponent2D的RenderTarget,把Primitive Render Mode 修改为Use ShowOnly List,在Event Graph中编辑事件,把自己添加到白名单中,这里的clear不使用也是可以的。
在这里插入图片描述
在这里插入图片描述

通过调整相机的位置,改变显示图像的大小。下面是我的相机和人的相对位置和显示的图片的最终效果图,可以通过反复操作:修改相机位置->编译->查看My3DWidgetRenderTarget显示的预览图来调整相机。(这一步最好在调整白名单之前完成。)在这里插入图片描述在这里插入图片描述

创建材质3DWidgetRenderMat将材质类型改为UserInterface,mode改为masked。
给球场添加贴图,选择前面生成的My3DWidgetRenderTarget,并将A通道进行如下修改。
在这里插入图片描述

新建一个widget蓝图取名Show3DWidgetWidget,在里面添加以一张图片,大小设置500*500
在这里插入图片描述
然后在关卡蓝图中添加Show3DWidgetWidget,在界面中显示出来。
在这里插入图片描述
将3DWidgetAcotor拖拽到场景中,尽量是看不到的地方,运行你的程序,就会在界面上看到带3D模型的界面了。这里如果你不拖拽其实可以显示界面,这个时候实际上程序会给你生成一个,也不知道会放哪里的actor,所以最好是自己拖拽一个,防止随机actor出现在不该出现的位置。特别如果你想让actor出现在指定地方,那就更加需要拖拽出来了。

在这里插入图片描述
这之后你还可以旋转,移动等操作actor,显示的界面就会改变。这里面有意思的联动是如果你把thirdperson里面可以移动的操作的对象这样绑定,那UI就可以显示人物的实时状态,相应的显示在很多地方都有可以使用的,希望对大家有帮助,反正对我是帮助不小,这里mark一下,好记性不如烂笔头啊。
在第三人称上添加相机并设置,其他的和上面一样就可以在界面上看到运动的角色显示在界面上了。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/u012505629/article/details/119783141