使用了一套基于蓝图的节点式技能系统。使用了节点图,每个节点内使用时间线。
蓝图基本结构
基本结构如下:
蓝图节点从入度为0的节点开始执行。
节点内的逻辑会触发不同的输出信号
输出型号传递给下游的节点执行逻辑
一般来说单个节点只执行一件简单的事情。
节点类型大致分为:
节点 | 说明 |
---|---|
动画节点 | 主要包含播放动画, |
检测节点 | 主要用于检测,比如检测CD,检测输入, |
目标筛选 | 主要用于目标筛选,比如圆形法术场,锁定当前选择目标等 |
功能性节点 | 主要是技能开始,相机轨迹等 |
节点同步
在节点运行时,分三部分,本机,本机的其他客户端,服务器,彼此间只同步非正常结束的消息。
技能节点在执行时,会产生一个令牌,由本机或者服务器所有。消息同步由令牌发起端发起,接受者执行。
- 对客户端判定机制的,令牌由客户端所有
- 结算相关由服务器所有
- 除了1,2的其他节点,主机触发的技能(输入信号)由本级所有。非主动触发技能由服务器所有。
蓝图技能系统的优势
高度可定制化
每一个节点只需关注自身的逻辑和输入输出。节点间的关系可以由不同的需求进行连线,高度的可定制化。
同步开销小
只同步了需要同步的信息,同步的开销比较小
编辑器友好
可以支持编辑器在线调试
支持强表现
可以把部分节点放在客户端执行,较好实现强表现的技能