楚留香-战斗系统拆解与制作(二):基本行为之待机、跑步、转向之间的逻辑拆解

作者:华韬 2019-04-16

前言:

前段时间沉迷只狼无法自拔,无奈被卡在了义父哪里打不过去了,含恨被劝退!不管怎么样,众所周知,只狼没有第二周目(手动滑稽)。


言归正传吧还是继续玩楚留香吧。

我们把角色的操作行为分为前置行为和后置行为,前置行为是指的,我刚才通过什么行为进入到现在这个行为,就比方说我要跳舞,那么我要跳舞这个行为的上一个行为就应该是站着,站着就是跳舞的前置行为。而后置行为是指的我下一个行为是什么,我跳完舞需要蹲下休息,那么蹲下休息就是跳舞的后置行为。

站立→跳舞→下蹲休息,这就是一个基本动作的连贯。

同样的,先待机,再奔跑,再冲刺,再挑飞敌人也是同样的逻辑。

1、我们先把共性和简单的东西理清楚,然后在更高难度且比较抽象的东西进行组合,把这些元素都按照我们的行为规则编组成行为树,利用变量来控制他们之间的状态转换。

2、所有的复杂动作都是在基础动作的状态下根据变量的变化切换的,那么我们只要先把基础逻辑搞清楚,然后在对付进阶的逻辑就会得心应手。

我们会举一个样例,找一个模型和已有的动作来还原楚留香的设计,从无到有的按照楚留香的战斗进行设计。当然在大型的商业游戏中肯定会更抽象更模块化,通用性更高,但是需要的时间成本也会更多,我们在时间有限的情况下,只将基本的逻辑陈述即可。

而模型动作需求的设计、通用性的扩展方法、字段的设计等我们会放在后面的分享当中做进阶分享内容。

所用引擎版本:Unity 2017.4.15f

角色模型来源:6m5m游戏素材网


一、行为的三个重要条件

任何一个角色的行为都包含三个必要的组成条件,分别是:触发条件、前置过度条件以及具体的行为逻辑,触发条件是指的通过何种操作开始过度到这个行为;前置过度条件是指的它的上一个行为是什么行为,比方说三段跳的前置行为是跳跃,那么跳跃就是它的前置过度条件;而具体的行为逻辑则是指的在这个行为之内的变化,例如:位移、动画效果、特效等,具体会根据不同行为的需求进行配置。例如我们举一个默认的待机状态例子:

如图所示:


进入游戏时,会先判断该行为的前置过度条件,然后根据玩家的触发条件来改变当前的行为状态,如果玩家的触发状态成立则会进入具体的行为逻辑内。因此,一个行为的组成以及一个行为的切换,主要就是通过这三个重要的环节或者参数进行配置的。

二、行走和旋转:



这里需要说一个关于动画强制中断的概念:Has Exit Time,这是个bool型的参数,这个参数的意思是:当我从Idle→Walk的触发条件成立时,我是否需要等待Idle动画播放完毕才能播放Walk动画。Has Exit Time是一个很关键的参数。

举个例子:在楚留香中,我们释放技能释放到了一半,突然暗香突进贴身,我们这个时候需要立即中断当前的技能,马上释放一个护盾,这个时候就需要强制中断技能,而不是一定要等到我当前的技能释放完毕才能释放护盾,因此这种情况下,Has Exit Time就必须设计为false。反之,在楚留香中,绝学的释放时不允许中断的,我释放绝学的时候不允许其他行为,必须等待绝学释放完毕才能做下一个动作,那么这个时候Has Exit Time就必须为设计为true。


更多知识点可以在Unity的Mecaime动画系统中详细查询,这里仅做一个小的科普。

1、位移逻辑:

游戏物体在世界坐标中的位移是通过三维向量来进行计算的。

我们的设计方案是:当什么都不按下时,角色保持Idle行为,当我们按下方向键时,则会根据方向键的方向进行位移,同时会根据行为播放动画。根据我们的设计我们需要那些参数来完成呢。

角色的物理位移逻辑如图所示:


2、转向逻辑

楚留香中,当我按下W键,此时突然再按下S键时,角色并不是立即把方向转到背后,而是会有一个转向的过程,从左边或者右边绕到背后。

https://v.vzuu.com/video/1101165342184796160?
楚留香的转向逻辑

这里面的逻辑其实是,当我按下方向键后。会执行如下的逻辑:

1、检测方向键的向量,计算它的模是否大于0,如果大于0说明角色的位置产生了参数的变化。

2、如果模大于0,则播放跑步动作;否则播放待机动作。

3、如果模大于0,且正在播放跑步动作,则获取角色的目标朝向,用四元数进行计算求出差值,每帧赋给角色的旋转参数。

4、如果模大于0,且正在播放跑步动作,则角色朝着其Z轴每帧进行位移。


它的实际效果是,当我进行不同方向的移动时,我会将我当前的方向跟我的目标方向进行一个四元数的差值计算,求出一个差值,然后每帧将这个差值赋值给角色的rotation参数。让其旋转有一个过度的转向效果,这样的效果会比直接硬切更具有真实感。

如下将按下反方向键硬切的转向,跟按下反方向键有差值旋转的转向进行对比:

https://v.vzuu.com/video/1101175690749095936?
按下反方向键硬切的转向

https://v.vzuu.com/video/1101175792385556480?
按下反方向键有差值旋转的转向

角色位移及转向逻辑1

角色位移及转向逻辑2

本章节告一段落,后面的第三章将介绍基础攻击行为的逻辑:

1、普攻的释放时机

2、普攻的动作

3、普攻的冷却逻辑

4、普攻的分段逻辑:

5、普攻是如何造成伤害的

作者:华韬

最新评论
暂无评论
参与评论

商务合作 查看更多

编辑推荐 查看更多