1. Gameplay Ability System插件简介
根据官方文档的描述:
游戏能力系统(
Gameplay Ability System
,简称GAS
)是一个高度灵活的框架,用于构建在RPG或MOBA类游戏中常见的能力和属性系统。通过这个系统,你可以为游戏角色创建主动技能或被动能力,实现各种状态效果来提升或削弱不同属性,设置技能冷却时间或资源消耗来管理技能使用,调整能力等级及其效果,触发粒子或音效等等。简单来说,这个系统可以帮助你设计、实现并高效地网络同步游戏中的各种能力,从简单的跳跃到现代RPG或MOBA游戏中复杂的角色技能组合都可以实现。
GAS
插件由Epic Games开发,是虚幻引擎的内置插件。它已在《Paragon》和《堡垒之夜》等多款AAA商业游戏中经过实战检验。
这个插件为单人和多人游戏提供了一套完整的解决方案,包括:
- 实现基于等级的角色能力或技能,支持设置消耗和冷却时间(游戏能力 GameplayAbilities)
- 管理角色的数值属性(属性 Attributes)
- 为角色添加状态效果(游戏效果 GameplayEffects)
- 为角色添加游戏标签(游戏标签 GameplayTags)
- 生成视觉或音效(游戏提示 GameplayCues)
- 以上所有功能的网络同步复制(
Replication
)
在多人游戏中,GAS支持以下功能的客户端预测(client-side prediction
):
- 技能(
Ability
)激活 - 播放动画蒙太奇
- 属性值(
Attribute
)变化 - 添加
GameplayTags
- 触发
GameplayCues
- 通过
RootMotionSource
函数与CharacterMovementComponent
连接的移动功能
注意:GAS必须在C++中进行设置,但设计师可以在蓝图中创建游戏能力 GameplayAbility
和游戏效果 GameplayEffect
。
目前GAS存在的问题:
GameplayEffect
的延迟调和(Latency Reconciliation
)(无法预测技能冷却时间,导致高延迟玩家在使用低冷却技能时,实际发射速度会低于低延迟玩家)- 无法预测
GameplayEffect
的移除。虽然我们可以通过预测添加相反效果的方式来实现移除GameplayEffect
,但这种方法并不总是合适或可行 - 缺少样板模板、多人游戏示例和文档(希望本文能对此有所帮助!)