[UE4]虚幻4蓝图实现类似永劫无间的钩锁系统

[UE4]虚幻4引擎实现类似永劫无间的钩锁系统

基于UE4实现类似永劫无间的钩锁系统,主要介绍一下思路,抛砖引玉,欢迎交流!

项目展示https://www.bilibili.com/video/BV16S4y1S7GU?share_source=copy_web

总览

总体使用有限状态机实现,包括状态内处理和状态转换两部分。

为表述清晰,后文将钩锁连接在人物一端称为A端,发射出去的一端称为B端

钩锁利用UE4自带的Cable组件实现,比较重要的是两个参数LocationEnd Location分别为钩锁两端的位置,我们利用前者作为B端,后者作为A端

有限状态机:

有限状态机

转换箭头的两侧分别为状态转换的条件和状态转换时进行的(主要)操作,高亮为输入信号

包含四个状态:其他状态瞄准状态钩锁发射状态人物移动状态

其中后三个状态内皆需要进行状态内处理(每帧):

瞄准状态

进行射线检测,检测距离内钩锁能否命中,若能命中则改变准星的形状

钩锁发射状态:

每帧改变钩锁B端的位置,实现发射的效果

人物移动状态:

  • 由于钩锁在 ThirdPersonCharacter 内,因此随人物移动,钩锁也会改变位置,所以要根据人物移动改变钩锁位置,实现钩锁B端的固定效果
  • 随人物向钩锁B端移动缩短钩锁长度
  • 给人物一个朝向钩锁B端的速度,使之朝B端移动
  • 检测移动过程中是否被阻挡

实现细节

瞄准

瞄准逻辑

实现按Q键进行瞄准,当钩锁能够命中时改变准星的形状,瞄准时缩小Field Of View

因为牵扯到HUD的变化,我们用蓝图接口传递两个布尔变量到HUD,分别表示是否在瞄准状态和钩锁能否命中。根据这两个变量值决定是否绘制准星和准星的形状

HUD蓝图:

HUD蓝图

瞄准时缩小视角利用两个事件来控制,以便当视角变化到一半停止瞄准也能正常回到正常视角而不是跳变

视角变化

瞄准的输入控制

与其他输入不同,瞄准的输入在钩锁发射和人物移动过程中是要关闭的(发射钩锁时让视角回到正常状态)

利用一个Gate实现输入控制,同时还可以进行与HUD蓝图的通信

状态0–其他状态

状态0内不需要做任何处理,只需根据输入转换状态即可

在这里插入图片描述

状态1–瞄准状态

状态内处理

状态1中需要进行射线检测,检测射程内钩锁能否命中,并将检测结果以变量的形式保存下来,命中结果发送给HUD
状态1处理

状态转换

两种情况,一种松开Q键回到状态0,一种进入钩锁发射状态

进入钩锁发射状态时需要顺序执行四个操作

  1. 关闭瞄准状态
  2. 设置钩锁B端的位置(若命中则设置为命中位置,未命中则设置为最远距离
  3. 改变角色朝向,令角色朝向摄像机位置
  4. 播放钩锁发射的动画,为保证发射动画过程中角色处于静止,此处将Movement Mode设置为None
    状态1

在这里插入图片描述

状态2–钩锁发射状态

状态内处理

在钩锁移动完成之前,需要每帧更新钩锁B端位置,以实现发射的动画效果,使用VInterp To节点实现平滑过渡
在这里插入图片描述

状态转换

钩锁移动完成后,首先改回Movement Mode

  • 若未命中则收回钩锁后回到状态0,同样使用VInterp To节点

在这里插入图片描述

  • 若命中则进行一次跳跃并进入状态3

在这里插入图片描述

其中Do once节点通过Reset Hook事件重置

在这里插入图片描述

此事件用于重置相关变量,便于下次的钩锁发射

状态3–人物移动状态

状态内处理

人物移动完成前

  • 需要每帧改变钩锁B端的位置,以保证钩锁B端在世界坐标下的固定效果
  • 随着人物的移动缩短钩锁的长度
  • 给人物一个向着钩锁B端位置的速度,移动人物。其中这个速度越靠近B端越小
  • 检测前方是否有阻挡,若有阻挡,需将人物的移动速度降低
    在这里插入图片描述
    在这里插入图片描述

状态转换

三种情况下人物移动完成,重置钩锁,回到状态0

  • 按下空格,主动终止,此时需降低人物速度
  • 有物体阻挡
  • 人物离钩锁B端够近
    在这里插入图片描述

结语

至此就完成了一个类似永劫无间的钩锁系统了,在此基础上还可以加上攀爬系统,并设置二段跳实现更灵活的移动

参考资料

https://www.bilibili.com/video/BV1Zt411D7Zt?share_source=copy_web

攀爬系统:https://www.bilibili.com/video/BV1yb4y1o7BY?share_source=copy_web

猜你喜欢

转载自blog.csdn.net/Zireael2019/article/details/123383569