这里先引用虚幻官方文档中的一段话:
游戏技能系统是一个高度灵活的框架,可用于构建你可能会在RPG或MOBA游戏中看到的技能和属性。你可以构建可供游戏中的角色使用的动作或被动技能,实现各种属性累积或损耗的状态效果,实现约束这些动作使用的"冷却"计时器或资源消耗,更改技能等级及每个技能等级的技能效果,激活粒子或音效,等等。简单来说,此系统可帮助你在任何现代RPG或MOBA游戏中设计、实现及高效关联各种游戏中的技能,即可以包括跳跃等简单技能,也包括任何你喜欢的角色的复杂技能集合。
GAS插件是由Epic Games开发,并随着Unreal Engine 4一并推出的。其用法已经在3A级商业游戏(比如Paragon和Fortnite等)中进行了测试和验证。
这个插件针对单人及多人游戏提供了一套开箱即用的方案,其内容主要包括:
- 实现了基于等级的角色能力或技能,并可以配置相应的消耗和冷却时间(参见GameplayAbilities相关章节)
- 操作actor的
Attributes
(属性,参见Attributes相关章节) - 为actor施加状态效果(参见GameplayEffects相关章节)
- 为actor标记
GameplayTags
(Gameplay标签,参见GameplayTags相关章节) - 生成视觉或是声音效果(参见GameplayCues相关章节)
- 针对上述所有内容的网络复制
在多人游戏中,GAS针对客户端预测(client-side prediction )也做了一些方面的支持:
- 技能的激活
- 播放动画蒙太奇
- 修改
Attributes
- 应用
GameplayTags
- 生成
GameplayCues
- 通过连接到
CharacterMovementComponent
的RootMotionSource
函数进行运动
GAS必须使用C++来进行设置,但是GameplayAbilities
和GameplayEffects
可以由设计师通过蓝图来进行创建。
GAS目前也存在的一些问题:
GameplayEffect
延迟调节(不能预测技能冷却时间而导致高延迟的玩家与低延迟的玩家相比,其低冷却的技能频率是更低的)- 无法预测
GameplayEffect
的移除操作。但是,我们可以预测添加GameplayEffects的操作,从而预测其反向效果,从而高效得对效果进行清除。但这也并不总总是是合理或可行的,所以这一块目前仍然是一个问题 - 缺少规范性的模板,多人游戏的示例,以及相应的文档。希望本文能够有助于解决这个问题