在虚幻引擎5中构建你的首款游戏 - 09 - 压力板和开关门
前言介绍:
原版地址: << [功能亮点]在虚幻引擎5中构建你的首款游戏(官方字幕)_哔哩哔哩_bilibili >>
<< https://www.bilibili.com/video/BV1M34y1x7tc >>
官网地址: << Your First Game In Unreal Engine 5 | Tutorial (epicgames.com) >>
<< https://dev.epicgames.com/community/learning/tutorials/e2V/your-first-game-in-unreal-engine-5 >>
所处时间段:
[01:01:22]
~[01:13:23]
;主要内容: 压力板和开关门
1.压力板蓝图
- 上一篇已经导入压力板和开关门的模型了,现在先为压力板创建
actor
蓝图.命名为:BP_PressurePlate
;然后拖入2个压力板的模型,层级关系如下;
- 添加碰撞组件,输入
box
搜索得到如下图组件.
- 然后修改缩放大小和位置,覆盖整个压力板.和设置ai导航范围时类似.使用其他视图更加方便.
- 然后打开事件图表,在
Box
组件上右键,添加它的组件开始重叠时(Box)
节点.
- 注意,不同组件可以添加同类的事件,别选错组件了.
- 用同样的方法,为
Box
组件添加组件结束重叠时(Box)
节点.效果如下.
bug:这个写法有个bug,它只检测进入和退出的触发,不检测触发对象.导致后面程序有个漏洞,玩家触发时ai跟着触发,顺序会乱掉.
- 初步弄好后就可以把模型放到场景中测试了.效果如下
- 测试完后回归蓝图,添加时间轴节点,并命名为
时间轴_0
,然后对这个节点双击,可打开新的窗口.
- 添加新的轨道,选择浮点型,设置总长度0.5,然后添加2个关键帧,选择关键帧可以设置时间和值,设置完后可以点击缩放图标调整显示范围.这样就算弄弄完了,这个节点就相对在设定时间内输出设定的值.
- 然后蓝图设置内容如下,运行测试结果,正常.
2.开关门蓝图
- 创建开关门蓝图,命名为
BP_Door
;拖入模型,门框和2个门.门使用场景组件
嵌套,全部层级关系如图.门的相对父级坐标是0,发生起始偏移的是场景组件
.这样方便一会写蓝图.
- 开始编辑蓝图,同样使用到时间轴节点,不一样的是采用平滑曲线,而不是折线.分别对2个关键帧右键,都设置为中断即可.
- 最后蓝图如下,设置了3秒定时器,3秒后会开门并且打印字符串.
- 然后把
actor
蓝图拖入场景布置,开始运行看效果.如果你的门移动的方向反了或距离不够,将蓝图的乘法系数修改一下即可.
3.Actor组件蓝图
推荐参考: << 浅谈_UE5/UE4蓝图通信之恰恰舞_哔哩哔哩_bilibili >>
这个up的讲解生动形象,简单明了,还幽默风趣,强烈推荐.
- 接下来要让压力板和开关门联动起来.使用
actor组件
蓝图,创建一个,命名为BP_InteractionComponent
.
- 双击打开后做出如下设置.创建2个自定义事件,1个事件分发器,且有1个布尔类型的输入参数.就算设置完成了.
- 回到压力板的蓝图,添加组件,搜索得到刚刚创建的
actor组件
蓝图.
- 然后对压力板的蓝图做出以下修改:
- 然后运行查看效果,当触发压力板时就会调用
actor组件
蓝图中的事件.这样就有思路了,开关门也作出类似的关联.
- 回到
开关门
的蓝图,创建一个actor引用
类型的变量,并公开.然后对蓝图做出如下逻辑修改.程序判断变量是否有效,然后获取组件,然后再判断组件有没有效,最后才绑定到事件分发器.
- 完成后运行,在场景中为变量赋值,点击吸管图标再选取压力板.运行游戏.每次触发压力板门就会打开.
4.总结
- 这节的蓝图逻辑实现有点绕,教程主要是想展示更多方法的使用.
- 下一篇就是最后的了.讲简单的特效和声音制作.