Gameplay Abilities系统概念

GAS概念介绍

本文旨在从虚幻引擎的Gameplay Ability System文档中提炼核心概念,并对游戏技能系统进行简明易懂的介绍。这些概念能够有效解释游戏中角色其“行为(技能)、属性、状态”之间的关系。

由于“行为”一词的定义较为广泛,本文中所指的“行为”特指使用某项技能后所产生的具体动作。

目的

  • 避免设计用语模糊,提高沟通和开发效率。
  • 对于小团队,减少“翻译官”的需求。
  • 统一概念,以便设计师更好地利用虚幻引擎的技能系统。

Gameplay能力(技能)

游戏性技能是指角色(如人、马、狗)在游戏世界中能够触发的各种行为,包括移动(如跑、跳)和攻防(如攻击、防御)等。

多个技能可以同时激活,例如角色可以在奔跑的同时进行射击。

技能的定义非常广泛,几乎可以将角色能够执行的任何行为视为技能。

技能还可分为主动和被动,例如被击倒则属于被动技能。

角色的各种行为都与其个体特征相关,就像我们每个人都有吃饭、跑步等基本行为。不同的行为之间存在互斥关系,例如在跳跃时无法蹲下。

Gameplay属性(Attribute)

每个角色在游戏中都有多种属性,如血量、魔法值、攻击力、移动速度和防御力等。这些属性归属于特定角色,类似于人类的身高和体重。简而言之,一个角色拥有多个属性,而这些属性影响角色在游戏中的表现。

例如:

  • 从背后攻击敌人可能造成150%的额外伤害。
  • 奔跑行为会产生快速移动的视觉效果,并使角色的移动速度上升,同时每秒消耗1%的体力。

任何能够修改角色属性和状态的效果均可称为游戏效果。游戏效果的定义较为广泛,包括即时伤害、长期状态buff/debuff(如加速或眩晕)。

Gameplay状态

在GAS中,经常用GameplayTags来代表游戏世界中的Actor当前的一些状态。开发者可以通过技能、效果或直接赋予标记来改变Actor的状态。

例如:

  • 使用以LocStatus.开头的标记表示游戏中地点的状态(如沦陷、敌方、中立等)。
  • 使用以State.开头的标记表示角色的状态(如瞄准状态、防御状态等)。

单独的状态一般与产生该状态的行为或效果相关联,状态的主要目的是用于判断。例如:

  • 在骑乘状态下,角色无法使用地面攻防行为。
  • 在濒死状态下,角色无法执行任何移动或攻防行为。
  • 在体力冷却状态下,角色无法自动恢复体力。

Gameplay效果

在游戏中,角色的各种行为会产生不同的效果。游戏效果不仅包括属性的修改和状态的改变,还能触发可视化效果,例如攻击造成伤害时会伴随血液飞溅的粒子特效。

效果持续类型

游戏效果有三种持续类型:

  • 瞬间效果:如一次攻击造成的即时伤害。
  • 持续效果:如在10秒内每秒恢复10%的血量。
  • 永久效果:如角色死亡后的状态。

Gameplay效果举例

游戏效果的本质就是:玩家通过行为产生视觉和非视觉效果。以下是几个案例:

  • 玩家按“W”键前进,产生“前进效果”,视觉效果是角色位置变化,非视觉效果是移动速度上升。
  • 敌人攻击玩家,产生“受伤效果”,视觉效果是角色受击动作,非视觉效果是血量下降。
  • 敌人攻击并眩晕玩家,产生“受伤效果”和“眩晕2秒效果”,视觉效果是角色摇晃,非视觉效果是移动速度为0。
  • 角色防御时,产生“防御效果”,视觉效果是防御姿态动作,非视觉效果就是你受到的伤害减免了。

总结

角色的技能(行为)产生效果,游戏效果改变角色状态并修改角色属性。

你用GAS开发游戏的本质就是:

你的游戏世界中有一堆带有AbilitySystemComponent组件的Actor,它们根据你的游戏设计,通过各种各样的Ability相互施加各种各样的游戏效果,修改各种各样的状态和属性,并产生各种看得见的和看不见的结果。

所以在设计和开发游戏技能时,需要明确期望的效果、视觉表现、属性修改及其对其它行为的限制。效果明确后,你才能更高效地通过GAS完成你的游戏。