游戏技能系统分析
我们在这里要谈论的是MOBA/ARPG游戏中使用的技能系统。ACT游戏可以参考,很多地方都差不多。
在国内,技能系统一般分为几个模块:角色本身、技能、Buff、衍生;
总的来说,这个模块就是动画控制、位移控制、音效、特效等。角色释放技能时,与操纵角色本体相关的事件表现;
这是技能本身,涵盖了技能释放事件(玩家通过UI点击事件)、技能施放条件(CD和蓝量检测)、技能施放控制(技能方向和位置、角色扮演动画)、技能结束回调;
这是技能体系的核心。Buff用于将给予者发出的指令传送给受害者。比如角色A想要对角色B造成多大的伤害,那么角色A就可以制造一个伤害Buff,这个Buff只是用来传送伤害。创建的时候告诉Buff角色A的攻击力是多少,对谁施加,然后把这个伤害Buff用A的攻击力丢给B,这个时候Buff开始操作,对B造成伤害,再比如,如果角色A的技能有打飞的效果,那么就是角色A把打飞Buff传给了角色B,这个Buff控制了B在操作过程中的打飞位移;
这里需要注意的是,一个技能可以携带多个Buffs。比如一个技能释放后会让角色受伤眩晕,在接下来的几秒内角色会被降低。考虑到复用性,可以分为三个buff(伤害buff、眩晕Buff、减速Buff)然后同时扔给技能命中的角色。
Buff不是技能独有的。有些buff是被动buff,可能在角色初始化或者购买装备后才可用。比如这个装备,复活A,其实是购买后加入角色的。Buff一直挂在角色上,等角色血量为零才开始调用复活角色的逻辑。甚至还有一些羁绊buffs,在有相同属性的角色存在时增加攻击力。这也是buff的一种,buff有几千个。一般来说都逃不过几大类,后面会详细介绍。
导数大多数人喜欢把它细分为轨迹和魔场。轨迹是指与飞行物体(导弹,火球等)的技能。),而魔场是指一个技能,会创造一个区域,对这个区域内的敌人造成伤害。本质上都是技能衍生出来的对象。角色技能的动画是从衍生品中分离出来的,角色技能本身并不会造成伤害。在这个衍生物上加Buff会造成伤害。比如LOL阿里的Q技能,金克斯的R都是弹道学,火男的W,Kindred的R都是魔法领域,但其实还有一些东西也是衍生品,比如大头电池,安妮的熊,都是技能衍生的对象。
技能铸造过程分为以下几个过程:
技巧分为普通前摇和技巧唱法。
比如最简单的近战角色平A,在把角色平A看做技能的时候,可以分为三个阶段:前摇、结算、后摇;其中,结算是指平砍刀击中敌人的瞬间,然后向前晃动是指角色在击中伤害之前播放的动画(角色用刀砍伤敌人的过程)。在这个阶段,我们需要处理动画同步过程。如果预摇动画结束,而逻辑预摇过程没有结束,屏幕上会出现延迟问题。另外,我们需要处理读条过程是否允许中断,什么级别的Buff允许中断,后续的动画和技能CD处理会中断。一般来说,普通的伤害Buff不会打断平A,但是眩晕、飞行等强制Buff会打断平A的前摇过程。
技巧唱法通常是用技巧前摇重复,可以细分为读和积累。
比如是LOL人物回城的进度条过程,死歌的放大阅读过程。在这个过程中,我们需要处理角色动画的播放时间和读取时间的同步,还需要处理和普通前摇一样的Buff中断机制。比如回城过程中收到普通伤害会打断Buff,但是死歌的放大需要控制技能。
比如是维鲁斯释放Q技能玩家长按Q键的过程,泽拉斯释放Q技能的过程。这个过程需要监控玩家的长按输入过程,将输入的时间值传递给后续的技能,在结算时改变伤害或者技能长度状态,然后就是动画和中断机制以及读条需要注意。
技能结算的过程由伤害Buff完成,它计算攻击角色的各种属性和技能加成,以及被攻击角色的各种抗性属性和一些特殊的无敌和减伤Buff。结算完成后,改变被攻击玩家的血量。如果攻击角色有吸血鬼Buff,那么最终伤害需要返回给吸血鬼Buff计算。最后播放一些血腥的动画。
前面的技能后摆提到了技能后摆,本质上就是角色的后摆动画(角色在击伤后收回刀,回到默认动画状态的过程)。这个过程是否需要中断取决于项目需求,比如LOL中的后摆可以取消,不用等后摆结束就可以直接释放下一个技能。渡鸦光速QA就是基于这个原理。
根据上面对Buff的一些描述,我们也可以感觉到Buff是一个很抽象的概念,在技能体系中是无处不在的。buff的设计是技能系统的核心,需要很高的扩展性。以下是一些常见的Buff类型。
缓冲区具有许多属性,例如,缓冲区优先级、缓冲区中断级别、缓冲区类型等。,可根据项目需要增加。
常见的编辑器有蓝图、Unity编辑器、匹配表,各有千秋。一般来说,要根据项目需求和策划熟悉程度来做(虽然大部分策划会选择匹配表)。
需要注意的是,无论是哪种编辑器,最终都要满足批量修改和Json导出两个要求,一是满足规划和维护,二是满足服务器的使用。