零基础Unreal Engine 4(UE4)图文笔记教学之基础篇-简易交互门(五)

正文:

本章将使用蓝图,首先实现自动门功能,图比较多,如果懂,可以直接跳到最后查看最终蓝图

1.前面创建的材质我已经放到了文件夹中,并创建了新的蓝图文件夹,建议各位,文件夹可以用中文命名,但是内容最好使用英文。

打开新创建的蓝图文件夹,

右键空白处,点击蓝图类

选择第一个Actor就可以了

命名为BP_Door_Auto(蓝图类的命名一般是BP_打头),命名好后打开

如果是这个界面就点击打开完整蓝图

2.在组件一栏中找到并点击添加组件,搜索mesh并选择最下面的StaticMesh(静态网格模型),命名为Door

再次搜索box,添加一个 Boxcollision

点击Door,Ctrl W复制一个出来,命名为DoorFrame

选中Door,在右边的细节面板中找到Static Mesh,下拉菜单,搜索door,点击SM_Door

对另一个另一个mesh进行同样的操作,选择SM_DoorFrame

在视口中可以看到两个模型,调整两个物体到合适的位置,差不多就行了

调整box大小,让box包裹住门并向两边有一定的延伸

3.准备工作已经做完了,马上使用蓝图对其进行控制

首先切换到事件图表

首先选中box(点击一下)

在中间空白处右键如图点击“添加On Component Begin Overlap”或者在细节面板事件中点击加号直接添加,也要选中box(当有物体进入这个体积的时候就会触发后续事件)

同样的操作再添加一个“添加On component End Overlap”(相反的,当物体离开这个范围后执行),你会得到如下图的两个模块

4.右键空白处,搜索timeline,点击添加时间轴

5.双击时间轴,添加一条Float型变化曲线

首先设置长度为2,这个是开门时间的长度

右键插入两个关键帧,也可以按住Shift左键点击添加,点击对应点,调整两个点的时间和值第一个为0,0,第二个为2,1

返回事件图表,按图连接(拖拽点到另外一个点上)

6.和前面一样的操作,右键点击空白处,搜索lerp,选择Lerp(Rotator),因为这里需要门进行旋转

7.把组件中的Door和DoorFrame拖拽到空白处

拖拽并搜索setrelativerotation

如下图连接

同样搜索Getrelativerotation

搜索Break rotator

从z这个节点引出搜索+,选择浮点型

设置值为90

最后从x引出并搜索makerotator

连接后是这个样子

最后按照图示连接到Lerp上

完整蓝图是这个样子

记得每次完成蓝图后都要编译一下才有用

8.现在回到我们的场景中,把刚才创建的蓝图类拖拽到场景中

9.运行游戏试一下

10.完成,玩家靠近门,离开关门

11.这只是一个超级简单的自动门,BUG是不可避免的,你会发现,不管你在门的哪边,门都是朝一个方向打开,但问题也不大,所有这个问题留到以后再解决。

12角色进不去,是因为门框太小了,调整一下就好了,还有一个问题,角色会穿过门,是因为门没有碰撞体积,也很好解决

回到刚才的蓝图,点击door,在细节中找到Static Mesh,点击加号,就可以在内容浏览器中找到该物体

左键双击内容浏览器中的SM_Door,会弹出该物体的编辑界面,点击菜单栏中的Collision中的simple collision,就可以查看当前物体是否有简单的碰撞体积,很显然,现在是没有的,如图

点击菜单栏上方的碰撞中的Add Box Simplified Collision就可以为当前物体添加一个盒子碰撞体积

保存一下,回到场景,就比较符合逻辑了,这样一个自动门就实现了

总结:

本章主要介绍了蓝图的基本使用方法,创建蓝图,添加组件,设置属性,添加节点,连接,编译,运行

以及简单碰撞的创建,都是些最基础的东西,图比较多,主要是怕有朋友看不懂嘛,后面的话,前面说过的问题就不再说了

 

下一章将对这个门进行升级,玩家将可以通过按键来控制门的开启和关闭

另外,希望正在学习的小伙伴不要光顾着学习新的知识,多思考和设计,如果看了我前面的章节的朋友,可以设置把门和场景结合起来,做一个小场景,但建议不要花太多时间哦。

猜你喜欢

转载自blog.csdn.net/qq_30919603/article/details/81102442