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