本篇文章是针对游戏技能系统(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游戏中的使用。
当然,最佳的文档永远还是插件源码本身。(译者注:我感谢提供代码的人,我同样感谢为代码书写注释的人,不管他们是否是同一个人,我对他们都怀着同样的感谢和钦佩)