UE4 将3D模型映射到UI

UE4 将3D模型映射到UI

  • 背景
  • 实现
    • 新建一个actor改名3DWidgetAcotor

背景

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

实现

新建一个actor改名3DWidgetAcotor

给actor添加mesh组件,我这里选择了一个SkeletaMesh,然后配置了一个男性骨骼。
UE4 将3D模型映射到UI_第1张图片
然后这里添加了一个 SceneCaptureComponent2D,这里关键的一步是要修改RenserTarget.
UE4 将3D模型映射到UI_第2张图片
新建一个RenderTarget,改下名字,我改成了My3DWidgetRenderTarget

可以通过调整size X/Y的值修改图像的清晰度,当然也会有不同的消耗,然后group最好改成UI,这个和打包有关系,对程序运行没有太大关系。
UE4 将3D模型映射到UI_第3张图片

然后我们再修改上面的SceneCaptureComponent2D的RenderTarget,把Primitive Render Mode 修改为Use ShowOnly List,在Event Graph中编辑事件,把自己添加到白名单中,这里的clear不使用也是可以的。
UE4 将3D模型映射到UI_第4张图片
UE4 将3D模型映射到UI_第5张图片

通过调整相机的位置,改变显示图像的大小。下面是我的相机和人的相对位置和显示的图片的最终效果图,可以通过反复操作:修改相机位置->编译->查看My3DWidgetRenderTarget显示的预览图来调整相机。(这一步最好在调整白名单之前完成。)UE4 将3D模型映射到UI_第6张图片UE4 将3D模型映射到UI_第7张图片

创建材质3DWidgetRenderMat将材质类型改为UserInterface,mode改为masked。
给球场添加贴图,选择前面生成的My3DWidgetRenderTarget,并将A通道进行如下修改。
UE4 将3D模型映射到UI_第8张图片

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


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

你可能感兴趣的:(UE4,游戏开发,c++,3d引擎,3d游戏)