跳到主要内容
信息
文章中可能会出现一些错误,希望大佬们可以在评论区指出错误,感谢支持!

01 - GAS基本概念和组成

本文主要说明了UE5中Gameplay技能系统(Gameplay Ability System, GAS)中的基本概念和组成。

Gameplay技能系统

概述

Gameplay技能系统(Gameplay Ability System)是一种框架,它可以构建Actor可以拥有和触发的属性Attributes,技能Ability和交互GameplayEffect。该系统可适应各种各样的Gameplay驱动项目,例如角色扮演游戏RPG,动作冒险游戏和多玩家在线战术经济MOBA等。

GAS是管理下述概念的系统框架:

  • 属性Attributes:人物的各种数值属性,例如生命值,伤害值等;
  • 技能Abilities:人物的各种行为,例如播放动画、造成伤害等;
  • 效果Effects:导致Attribute值改变的游戏机制,例如让生命值回复的治疗buff;
  • 特效Cues:和游戏机制相关的视/声效等;

组成

这些概念在UE5的GAS中由如下基本组件构成:

  • Ability System Component:是让Actor参与到GAS的核心组件,它可以让Actor受到GAS中GameplayEffect的影响,进而处理Ability相关的功能;
  • Attribute Set:负责存储多个Attribute;
  • Gameplay Ability:封装Actor的行为,使之与GAS中的GameplayEffect,视觉效果,动画、声音等组件进行协作;
  • Ability Task:在GAS中的Gameplay Ability执行期间,异步执行相关工作;
  • Gameplay Effects:可以改变Attribute值,在网络同步上允许客户端预测,服务端回滚;
  • Gameplay Cue:处理GAS中的视/声效,也负责这些效果的网络同步;
  • Gameplay Tags:虽然不属于GAS,但在其中被广泛应用,主要用于分类管理Actor;

使用搭配

在使用GAS前,请确保在编辑器中启用相关插件,在Build.cs中包含相关模块。

对于不复杂的Actor,可用Pawn+ASC+Attribute Set完成简单GAS功能;

对于复杂的Actor(例如玩家本身),则推荐用Player State+ASC+Attribute Set完成GAS相关功能。

参考资料