本篇文章是针对游戏技能系统(Gameplay Ability System,简称GAS)的学习计划目录,主要记录到目前位置自身在该系统上的学习笔记。
GAS是虚幻引擎官方推出的一套针对“技能”的处理框架,其优势在于完美契合虚幻代码中Gameplay部分的原有代码(character,controller,character state等),与原有代码的设计精神高度一致;当然,与市面上的其他相对成熟的方案相比,GAS的缺点也比较明显——缺少界面辅助(大部分内容需要到代码中找答案),框架涵盖内容驳杂(GAS并不单单是一套制作技能的系统,而是涵盖了角色能力、属性处理的方方面面),等等。
由于我本身的工作任务和领域,对GAS的需求不仅仅在于使用,更需要完全掌握并且能够加以拓展,随有了本系列文章。核心内容是围绕知名的GASDocumentation的阅读、学习和拓展发挥。
注意:系列文章的大部分内容算作是针对原英文文档的中文译作,目的是以中文还原、学习和传播原作者针对GAS的经验和独到见解。翻译的过程会结合虚幻官方文档中使用的术语标准,但是针对一些编程中常见的概念、核心类以及其他常见基础英文词汇,我的做法是做第一次遇到后作一番简要的解释阐述,随后直接使用英文原词。
注意2:因为GASDocumentation文档中,大部分是针对类概念和核心方法的简单阐述注释,并没有太多涉及到使用的部分,所以在完成基本翻译后,我还会添加一些自己的阅读和GAS的使用笔记,会以其他单篇文章的形式放出,之后会列在目录的最下方。
GASDocumentation开篇介绍
这是我的一个简单多人案例项目,其中蕴含了我对虚幻引擎中Gameplay技能系统(Gameplay Ability System,简称GAS)插件的理解。首先需要说明的是,这并不是一份官方文档,这个项目以及我本身都并不归属于Epic Games。出于这点考虑,我并不会保障这篇文档中涉及到的信息的准确性。
这篇文档的目的是去解释GAS中的核心概念和类,并且从我对GAS的经验为出发点提一些额外的论述。关于GAS,用户社区已经积攒了大量的tribal knowledge(译者注:指的是那些一些无法言传的技能或者知识,是书本中获取不到的东西,也是通过工作者在大量实践和探索所得的心得和体会),而我在这里就是想分享一些属于我的理解。
案例项目和文档所使用的引擎版本为4.27。当然对于更旧一点的版本也有相应的分支,只是我目前已经停止相关的更新和支持,其中也自然会有一些bug和过期的信息等等。
GASShooter项目本项目的孪生项目,其中展示了GAS高级技术在多人FPS/TPS游戏中的使用。
当然,最佳的文档永远还是插件源码本身。(译者注:我感谢提供代码的人,我同样感谢为代码书写注释的人,不管他们是否是同一个人,我对他们都怀着同样的感谢和钦佩)
目录:
- 游戏技能系统(Gameplay Ability System,简称GAS)插件介绍
- GAS示例项目
- GAS项目设置
- GAS中的核心概念 - Concepts
4.1 技能系统组件 - Ability System Component
4.2 游戏标签 - Gameplay Tags
4.3 属性 - Attributes
4.4 属性集 - Attribute Set
4.5 游戏效果 - Gameplay Effects
4.6 游戏技能 - Gameplay Abilities
4.7 技能任务 - Ability Tasks
4.8 游戏反馈 - Gameplay Cues
4.9 GAS的全局信息管理者 - Ability System Globals
4.10 预测 - Prediction
4.11 目标 - Targeting - 常见的技能和效果 - Commonly Implemented Abilities and Effects
- 游戏技能系统的调试 - Debugging GAS
- 优化 - Optimizations
- 建议 - Quality of Life Suggestions
- 答疑 - Troubleshooting
- 游戏技能系统中常用的缩写 - Common GAS Acronyms
- 资源 - Other Resources
- 游戏技能系统版本日志 - GAS Changelog
- GAS在动作游戏中的应用示例
13.1 GAS基本框架搭建及第一个GA
13.2 GAS与输入
13.3 GAS与属性
13.4 GAS与攻击