最近为了改善游戏的Melee效果,思考实验了很多,“反馈”可以说是重中之重,其中击退可以说是很重要的一个反馈表现,如果没有击退不仅欠缺反馈,而且欠缺力道感。查阅资料案例、以及自己调试过程中,关于击退的表现方式总结出了两个点:
- 根据攻击者与受击者之间的距离动态决定击退程度
- 根据受击对象的“坚定”程度让击退失效甚至反弹
距离决定击退程度
如果每个攻击带出的击退效果都是固定的数值,那么会造成一些飘忽的情况,比如发动连招时受击者吃了第一下连击,却很快地脱离了攻击范围,结果剩下攻击者在打空气
当然以上“打空气”的情况最直接的补救方式是把连招第一下的击退程度调得小一些,但这样就会带出了另一个问题:当攻击者和受击者距离非常的贴紧,攻击者带出的击退却没把受击者打得足够远,就会显得受击者像块贴身膏药一样甩都甩不掉的感觉
综合以上两种情况得出,根据攻击者和受击者的距离来动态调整击退程度,是有必要的。
击退的反作用力
如果受击者是个重甲兵,或是个盾兵,甚至有可能是一块大石头,此时显然要调低其受到的击退作用力,甚至不受击退,于是为了保持双方距离,攻击者反而要往后退
在实现的过程中发现了不能把击退的反作用简单地当成是“反作用力”来处理,这会导致每次施加攻击后都很飘忽地被反弹回来,打滑程度严重
于是把这种“反弹”改为“阻尼”,让攻击者停在一个位置不能再往前或退后,从而保持住了双方的距离,又压制住了受击者的击退
调试的过程中也有想过直接给角色们一个较大半径的碰撞体,让他们不管是攻击与否都保持住一个最小距离,但后来发现这种方式过于粗暴,碰撞体维持的最小距离对于非攻击状态时“擦身而过”来说过于大,但对于挥砍的范围半径来说又过于小,两面不讨好,终究是动态的决定阻尼范围比较灵活适用。