aura:学习大纲


能帮到你的话,就给个赞吧 😘


文章目录

前置知识

1.ue5基础

基本的Actor、Component概念

UMG UI系统基础

蓝图与C++交互

2.GAS核心概念

Gameplay Ability System官方文档快速浏览

理解ASC、GA、GE、AttributeSet等基本组件

3.环境配置

1.获取项目:git clone https://github.com/DruidMech/GameplayAbilitySystem_Aura.git

2.确保安装

Unreal Engine 5.0+
Visual Studio 2022
Git LFS(项目可能包含大文件)

0.项目概览(2-3天):理解项目架构,不深入代码

1.运行项目

编译并运行,体验所有功能

测试每个技能,查看UI反馈

2.资产浏览

查看 Content/Blueprints/Abilities/ 下的技能配置

查看 Content/Data/ 中的数据表

查看 Content/UI/ 中的界面元素

3.绘制架构

cpp 复制代码
graph TD
  A[玩家输入] --> B[AuraInputComponent]
  B --> C[AuraAbilitySystemComponent]
  C --> D[激活技能]
  D --> E[GA_AuraBase]
  E --> F[应用效果 GE_AuraBase]
  F --> G[修改属性 AuraAttributeSet]
  G --> H[更新UI]

1.核心模块学习(7-10天):掌握GAS基础

1.Ability System Component

文件:AuraAbilitySystemComponent.h/.cpp

重点理解

1.GiveAbility() - 如何赋予角色技能
2.TryActivateAbility() - 技能激活流程
3.InputPressed/Released - 输入绑定

2.技能基类 :GA_AuraBase

文件:GA_AuraBase.h/.cpp

重点理解:技能生命周期

1.ActivateAbility() - 技能激活
2.EndAbility() - 技能结束
3.CancelAbility() - 技能取消
4.技能成本消耗和冷却逻辑

3.效果系统 :GE_AuraBase

文件:GE_AuraBase.h/.cpp

重点理解

1.Instant Gameplay Effect - 即时效果
2.Duration Gameplay Effect - 持续效果
3.Periodic Gameplay Effect - 周期性效果
4.Modifier Magnitude Calculation - 效果强度计算

4.属性系统 :AuraAttributeSet

文件:AuraAttributeSet.h/.cpp

重点理解

1.Pre/PostAttributeChange() - 属性变化前后处理
2.Pre/PostGameplayEffectExecute() - 效果执行前后
3.属性限制逻辑(如血量不超最大值)

整合测试

创建一个简单的自定义技能

创建一个新的属性

创建一个UI显示新属性

2.高级功能(5-7天)

1.伤害计算系统

重点理解

1.伤害类型分类
2.抗性计算
3.暴击和闪避系统
4.伤害数值显示

测试:添加一个新的伤害类型(如火焰伤害)

2.UI集成

文件:AuraHUD.cpp, AuraWidgetController.h/.cpp

重点理解

1.Widget Controller 模式
2.属性变化绑定到UI
3.技能冷却UI更新

测试:添加一个新的状态显示UI

3.多人网络同步

重点理解

1.网络复制标记:ReplicatedUsing, Replicated
2.RPC函数:Server, Client, NetMulticast
3.预测系统

测试:在本地服务器测试网络同步

4.调试和优化

1.使用 ABILITY_LOG() 查看技能日志

2.Gameplay Debugger 的使用

3.性能分析:查看技能的内存使用

3.项目实践

创建完整的技能:从零创建一个类似"治疗术"的技能

1.创建新的GameplayAbility类:GA_Heal

2.创建GameplayEffect:GE_HealEffect(治疗量计算)

3.创建输入配置:绑定到某个按键

4.创建UI:显示治疗技能图标和冷却

5.添加音效和粒子效果

6.测试多人同步

扩展练习

技能连招系统

连续使用技能A后,技能B增强
使用Gameplay Tags追踪状态

被动技能系统

根据属性自动触发的技能
叠加型被动(如每次攻击增加攻击力)

技能树系统

可升级的技能
技能之间的依赖关系

4.工具和技巧

调试工具

1.控制台命令

showdebug abilitysystem:显示GAS调试信息

2.可视化调试

使用Gameplay Abilities Debugger插件
在编辑器中查看Active Gameplay Effects

3.日志输出:ABILITY_LOG(LogTemp, Warning, TEXT("技能 %s 激活"), *GetName());

学习笔记模板

日期 学习内容:技能激活流程

核心流程
1.输入事件 → InputComponent → AbilitySystemComponent
2. ASC查找对应AbilitySpec
3. 调用TryActivateAbility()
4. 执行CanActivateAbility()检查
5. 调用GA::ActivateAbility()
关键代码位置
AuraInputComponent::SetupInput()
UAuraAbilitySystemComponent::AbilitySpecInputPressed()
UGameplayAbility::Activate()
遇到的问题
Q: 技能为什么没有激活?:检查技能是否被赋予,输入Tag是否正确
实践记录
成功创建了自定义技能
需要改进:添加更好的错误处理
cpp 复制代码
## [日期] 学习内容:技能激活流程

### 核心流程:
1. 输入事件 → InputComponent → AbilitySystemComponent
2. ASC查找对应AbilitySpec
3. 调用TryActivateAbility()
4. 执行CanActivateAbility()检查
5. 调用GA::ActivateAbility()

### 关键代码位置:
- AuraInputComponent::SetupInput()
- UAuraAbilitySystemComponent::AbilitySpecInputPressed()
- UGameplayAbility::Activate()

### 遇到的问题:
1. Q: 技能为什么没有激活?
   A: 检查技能是否被赋予,输入Tag是否正确

### 实践记录:
- 成功创建了自定义技能
- 需要改进:添加更好的错误处理

5.常见学习陷阱和解决方案

陷阱1:GAS概念太多,无从下手

解决方案

只关注一个核心流程(如技能激活)
忽略网络同步等高级功能,先做单人版本
使用大量日志输出,跟踪执行流程

陷阱2:编译错误

解决方案

清理项目
1. 删除 Intermediate/、Saved/、Binaries/ 文件夹
2. 右键 .uproject → Generate Visual Studio project files
3. 重新编译
常见问题
缺少模块依赖:检查 .Build.cs 文件
头文件错误:检查 #include 路径

陷阱3:不理解网络复制

解决方案

1.先学习单机版本
2.查看 UE 官方文档的 Network Compendium
3.使用 Unreal Insights 查看网络流量

6. 学习资源推荐

必看资料

1.官方文档

2.视频教程

GAS Companion 系列视频
Unreal Engine 的 GAS 官方教程

3.参考书籍:《Inside UE4》中关于Gameplay框架的章节

社区资源

Unreal Slackers Discord 的 #gameplay-ability-system 频道

知乎、B站上的中文 GAS 教程

7. 学习验收标准

初级(完成前两周)

理解 GAS 的基本组件和工作流程

能创建自定义的技能和效果

能实现基本的属性系统

中级(完成所有阶段)

能实现复杂的技能交互

理解网络同步机制

能调试 GAS 相关问题

高级(完成实践项目)

能设计完整的技能系统架构

能优化 GAS 性能

能扩展 GAS 功能

学习时间估计

快速学习:2-3周(每天3-4小时)

深入学习:1-2个月(每天2-3小时)

掌握并应用:3个月以上(包括实践项目)

关键建议

1.不要一次性阅读所有代码,按模块逐步学习

2.边学边实践,每学一个功能就动手实现

3.保持问题导向,遇到问题先尝试解决,再查看源码

4.参与社区讨论,分享你的学习心得

这个项目是学习 UE GAS 的优秀资源,按这个计划系统学习,你将在 1-2 个月内掌握 GAS 的核心应用。祝你学习顺利!

相关推荐
麦克马21 天前
GameplayAbilitiesSystem(六)
gas
晴夏。2 个月前
GAS下的网络同步的全面分析【超级全面】
游戏引擎·ue·gas·网络同步
麦克马2 个月前
GameplayAbilitiesSystem(四)
gas
麦克马2 个月前
GameplayAbilitiesSystem(五)
gas
麦克马2 个月前
GameplayAbilitiesSystem(三)
gas
妙为2 个月前
UE5中武器未跟随角色
ue5·gas·gameplay
Joy T3 个月前
【Web3】深入解析Coin-Token、ERC20-ERC721、自定义错误机制与合约继承
web3·代币·自定义错误·gas·erc-20·原生币·合约继承
许强0xq7 个月前
Q10: 对于地址白名单,使用 mapping 还是 array 更好?为什么?
面试·职场和发展·web3·solidity·evm·gas
小码闭眼ctrv9 个月前
gas 优化
区块链·solidity·gas