一、什么是GAS
1、GAS全称叫GameplayAbilitySystem,是由Epic Games官方为UE4开发的技能系统,后来集成到插件里。
2、GAS成功的案例有堡垒之夜
3、GAS在单机或多人游戏中提供了开箱即用的:
1)基于等级的可消耗资源并带有冷却的角色能力(GameplayAbility)
2)对Actor所拥有的数值型属性的操控(AttributeSet)
3)对Actor施加状态效果(GameplayEffect)
4)对Actor添加游戏标签(GameplayTag)
5)生成粒子特效与音效(GameplayCue)
6)*在网络中复制上述内容
7)*一定程度上的预测能力
二、什么是ASC
1、ASC全称叫AbilitySystemComponent,是GAS中协调一切的核心,是一个SceneComponent。
2、要使用GAS的Actor必须有一个为其服务的ASC来管理相关一切
3、实际 添加/表现 ASC的Actor称为OwnerActor/AvatarActor
1)OwnerActor与AvatarActor根据需求可以相同也可以不同
2)单机:玩家与AI的OwnerActor与AvatarActor均为Character
3)多人:
玩家:OwnerActor是PlayerState(可以进行网络同步复制),AvatarActor是Character
AI:OwnerActor与AvatarActor均为Character
三、Attribute
1、由特殊结构体包装的浮点数
2、用来存放与游戏性相关的数值(攻击力、防御力等)
3、提供BaseValue与CurrentValue
1)BaseValue:永久值
2)CurrentValue:临时修改
四、AttributeSet
1、存放Attribute
2、对其中存放的Attribute进行管理等操作
3、可每个Actor一个,也可多个Actor共享一个
五、GameplayTag
1、具有点分层次结构的名称(可以看成字符串Parent.child.grandchild这种形式)
2、可查找(父子关系的层级查找)、可叠加(比如游戏中某种暴击效果:普攻4次必定暴击或者是站在火焰上有叠加烧伤效果)
3、描述Actor的状态(bool型变量)
六、GameplayEffect
1、用于改变Attribute或GameplayTag
2、多种更改模式
1)通过Modifier或Execution更改
2)可立即生效、持续一段时间、一直持续
3)可附加GameplayCue
七、GameplayCue
1、执行特效类操作:粒子、音效、屏幕效果等
2、根据不同特效提供不同选择:
1)Static:一次性效果
2)Actor:持续性效果
八、GameplayAbility
1、是Actor在游戏中可以执行的能力,可视作一种行为
2、可获得、失去;有等级概念;可消耗资源,进行冷却,执行逻辑
3、技术上可以处理任何逻辑,但只推荐处理与技能相关的
1)即,不推荐直接做:基本输入操作、界面交互操作、商城购买操作等
九、GameplayAbilityTask
1、为了执行随时间推移而发生的动作所提供的异步操作(比如等待动画播放完成)
2、GAS已经内置了一部分GameplayAbilityTask
3、全局可同时运行的GameplayAbilityTask有上限
十、GameplayEvent
1、被GameplayTag所标记
2、用于触发一些操作
3、可携带一些负载数据以便进行操作
十一、常用缩写
ATTR: GameplayAttribute
ASC: Ability System Component
ASG: Ability System Globals
GA: GameplayAbility
GAT: GameplayAbilityTask
GC: GameplayCue
GE: GameplayEffect
GEA: GameplayEffectAggregator/AttributeAggregator
GEEC:GameplayEffectExecutionCalculation
GEmod:modifier in a GE
GMMC:GameplayModMagnitudeCalculation
GT/tag:GameplayTag
GEv/GV:GameplayEvent