rainyeve
  • 首页
  • 编程
  • 涂鸦
  • 其他
  • 关于
2020年3月27日
编程

【动作游戏设计】关于“击退”的小结

【动作游戏设计】关于“击退”的小结
2020年3月27日
编程

最近为了改善游戏的Melee效果,思考实验了很多,“反馈”可以说是重中之重,其中击退可以说是很重要的一个反馈表现,如果没有击退不仅欠缺反馈,而且欠缺力道感。查阅资料案例、以及自己调试过程中,关于击退的表现方式总结出了两个点:

  1. 根据攻击者与受击者之间的距离动态决定击退程度
  2. 根据受击对象的“坚定”程度让击退失效甚至反弹
根据距离动态决定击退程度

距离决定击退程度

如果每个攻击带出的击退效果都是固定的数值,那么会造成一些飘忽的情况,比如发动连招时受击者吃了第一下连击,却很快地脱离了攻击范围,结果剩下攻击者在打空气

AI发动连招第一下就把Player击退得太远

当然以上“打空气”的情况最直接的补救方式是把连招第一下的击退程度调得小一些,但这样就会带出了另一个问题:当攻击者和受击者距离非常的贴紧,攻击者带出的击退却没把受击者打得足够远,就会显得受击者像块贴身膏药一样甩都甩不掉的感觉

AI挥剑的slash效果甚至绕到了player身后

综合以上两种情况得出,根据攻击者和受击者的距离来动态调整击退程度,是有必要的。

击退的反作用力

如果受击者是个重甲兵,或是个盾兵,甚至有可能是一块大石头,此时显然要调低其受到的击退作用力,甚至不受击退,于是为了保持双方距离,攻击者反而要往后退

游戏《合金装备》中的场景,可以看到小兵起跳攻击后的落地位置明显往后打滑了一段距离

在实现的过程中发现了不能把击退的反作用简单地当成是“反作用力”来处理,这会导致每次施加攻击后都很飘忽地被反弹回来,打滑程度严重

受击者不动,攻击者被反弹,每次反弹程度不同,显得打滑

于是把这种“反弹”改为“阻尼”,让攻击者停在一个位置不能再往前或退后,从而保持住了双方的距离,又压制住了受击者的击退

只有第一下攻击让攻击者“被反弹”以拉开距离,其后双方维持住了一个最小距离

调试的过程中也有想过直接给角色们一个较大半径的碰撞体,让他们不管是攻击与否都保持住一个最小距离,但后来发现这种方式过于粗暴,碰撞体维持的最小距离对于非攻击状态时“擦身而过”来说过于大,但对于挥砍的范围半径来说又过于小,两面不讨好,终究是动态的决定阻尼范围比较灵活适用。

Post Views: 4,692

game design unity

上一篇【Unity Shader】结界墙效果下一篇 【Unity Foot IK】实现Foot IK System以适应不同地形

发表评论 取消回复

邮箱地址不会被公开。 必填项已用*标注

分类目录

  • 其他 (2)
  • 旅行 (1)
  • 涂鸦 (6)
  • 编程 (28)
Email: wuch441692@163.com