游戏技能系统全解析

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

游戏技能系统全解析

游戏技能系统全解析

职责和原理:

技能信息管理:管理unit所拥有的技能以及技能的等级、cd等。

技能调用接口:AI或者UI操作触发技能,触发技能时可能选择

了一个目标(AI),也可能并没有目标。

技能流程管理:一个技能可能由多个子技能以移动的执行模式组合而成,而每一个最终执行的技能执行过程也存在一个流程,一般

包括:前摇过程-结算点-后摇过程。技能在前摇结束时进入技能真

正的结算流程,结算流程可能创建子弹,也可能触发buf或者创建

法术场。

技能目标查找:若技能触发时已经设置了技能目标unit,则直

接将其作为目标unit,否则需要根据一定的策略选择。此外,技能

释放的时候还需要释放方向和释放位置等信息,也在这个模块获取。

技能表现:技能释放过程中,需要创建相应的特效以及执行相应的动作。

buf/弹道/法术场管理:buf挂在unit身上,可能影响unit的

一些行为和状态;法术场一般由场景管理,影响场景中某范围内的unit。弹道就是技能创建的一个子弹,这个子弹可能以不同的路线

移动(直线/抛物线/直接命中等)

技能表

首先说下实现技能的基本思路。实现技能的基本思路就是通过策划填写表格,来配制成某些技能,在执行某个技能的时候,分别去

根据这些表格中的内容,确定技能如何表现。基本的逻辑是:

ifskillTable.get("技能动作"):

paly动作

ifskillTable.get("特效"):

播放特效

ifskillTable.get("法术场"):

创建法术场

技能信息管理

unit创建时,此模块管理unit可使用哪些技能,比如游戏中玩

家可以选择使用哪些技能。

游戏中技能的升级、技能加点、技能池管理都在这个模块。

此处包括处理技能升级/附文/装备等外部模块对技能参数的修改。

技能调用接口

提供技能调用的接口供AI调用,调用时可以提供一个目标unit,也可以不提供让技能自己查找。

提供三个接口:

技能开始:开始执行技能,若技能不循环进行,则技能可以自动结束。

技能结束:有的技能不能自己结束,比如某些循环技能。当玩家松开按钮,调用技能结束接口,告诉当前技能使其结束,此时技能

到达后摇点时,技能不再继续执行。

技能停止:当技能被强制打断时,如被攻击、晕眩等,技能会被强制停止。

此外,当前一个技能正在执行时新的技能调用启动,此时新的技能调用信息会被保存。一般来说,并不会把所有新的技能调用信息

保存下来,那样就成了一个技能执行的序列。我们游戏仅保存一个

新的技能调用信息。

技能流程管理

技能流程这里分两点讨论:

一个技能可能由多个子技能以一定的模式组合起来。

一个技能常常由多个子技能以一定的模式组合而成,比如三段击、比如冲锋斩(先冲锋、后斩)等,甚至还存在根据不同的环境选择执

行不同的子技能。分析发现,技能可以分成一个树形结构,这个树

形结构非常类似行为树,同样可以将节点分为控制节点和执行节点,甚至可以包括condition节点。为此,我们项目引入一个技能树概

念来描述这种数据结构。

一个具体的技能(技能树执行节点)也有一个固定的执行流程。这个流程一般为:前摇过程、前摇过程结束=技能结算时间点、后摇时

间点。

1、技能树

技能树参考传统行为树的设计,使用树形结构控制技能的.执行

流程。

技能树和行为树在结构上比较类似,但是在运行逻辑上有很大的不同。

首先,技能树的重点并不是根据上下文选择一个合适的节点执行,而是以一定的策略将技能树从头到尾遍历执行一遍。

其次,技能树没有tick的概念,而是基于回调的,比如一个顺

序节点,顺序节点中一个子节点执行完毕后,马上通知顺序节点,

顺序节点执行下一个子节点,直至顺序节点的最后一个子节点执行

完毕,顺序节点就会通知父节点(如果有)它已经执行完毕。

此外,为了完成技能的一些需求,控制节点往往存储更多的控制信息来控制子节点的执行流程。具体的信息根据策划需求设置,比

如顺序结点包括原子属性和循环属性。如果一个顺序节点具有原子

属性,则这个顺树节点在执行的过程中并不会被end,只有全部子

节点执行结束才可以end。

2、执行节点的技能流程

一般来说,技能的执行流程包括:

前摇时间:技能开始,但是技能真正的结算流程还没开始。技能开始以后,机能相关的特效和动作就开始播放。

前摇时间结束:技能前摇结束时技能开始真正的释放以及结算,等技能前摇结束以后,技能真正的释放并结算。释放包括创建相应

的弹道/法术场和buff。

技能后摇点:技能播放到后摇点时间时,技能真正的结束。这时,技能对应的特效以及人物动作可能还会继续播放,但是技能流程已

经正式结束了。也就是说,下一个技能可以执行。

技能目标查找

技能释放时,目标可能已经由AI传给了技能模块,也有可能没

有一个目标,如玩家控制单位。

技能在释放法术场、弹道的时候,重要的是技能的方向而不是技能目标一般来说,技能获得一个目标对象以后,技能的方向就是释

法者到目标的向量。

此外,技能方向可能需要一些配置,如前摇锁定(前摇过程中目

标移动,技能方向不变),UI可控制(技能释放过程中,玩家可以通

过控制UI控制技能的释放方向)。

技能表现

技能的表现包括动作、特效、shader、音效等。其中,特效比较复杂,需要配置的内容也比较多。比如,有些特效挂在模型上,有

的特效挂在场景里。对于法术场的特效,分别可以分为法术场开始、结算、结束特效,分别在法术场开始时、结算时、结束时显示。对

于buff也类似。

弹道、法术场和buff等技能创生体

相关文档
最新文档