UE5-GAS:读取Excel数据在蓝图创建并更新GE类

💡 原文中文,约4800字,阅读约需12分钟。
📝

内容提要

这篇文章讨论了如何使用Excel和Python来导出和生成蓝图GE类。作者首先介绍了将Excel中的GE数据导出为Json,然后使用Python脚本将Json数据填充到UE的DataTable中。接下来,作者讨论了如何使用C++代码创建和更新GE类的特性。最后,作者还介绍了如何使用Python和Excel来导出Json文件,并将其导入到UE中。

🔎

延伸解读

工具链的组成与工作流程

文章介绍的工具链包含三个核心部分:用Python将Excel数据导出为JSON、通过Editor Utility将JSON导入DataTable、再用C++代码遍历DataTable创建或更新蓝图GE资产。整个流程在编辑器内完成,不打包到发行版本,适合策划通过Excel维护GE配置,减少手动创建蓝图的工作量。

UE5.3中GE组件化的影响

从UE5.3开始,GameplayEffect的AssetTags等属性改由GEComponent管理。因此,在代码中为GE添加AssetTags时,需要先添加对应的AssetTagsGameplayEffectComponent,再设置标签。类似地,GrantAbility、Immunity等功能也需通过添加相应组件实现,这与旧版本直接修改GE属性的方式不同。

Excel导表工具的类型处理

Python导表工具支持基础类型(str、int、float)以及list、map和tag等复杂类型。对于枚举,作者通过维护一个Enum Map来校验Excel中输入的数据是否合法,避免导入UE时出错。list和map使用逗号作为分隔符,并通过递归解析单元格内容,生成与UE导出格式一致的JSON。

当前实现的局限与扩展方向

作者指出,当前代码仅完成基本构想,结构体导出函数只实现了简单版本,尚未支持嵌套结构体的递归解析。此外,DataTable是二进制文件,无法合并,且功能不如Excel灵活。未来可考虑将工具完善为插件,并扩展至GA等其它配置,将技能范围、效果等也转移到Excel中维护。

❓

Q&A

如何将Excel中的GE数据导出为Json格式?

可以使用Python编写脚本,将Excel中的GE数据转换为UE所需的Json格式。

在UE中如何使用C++创建和更新GE类的特性?

通过C++代码可以创建指定类的Asset财物,并根据DataTable中的数据更新GE类的参数。

使用Python和Excel导出Json文件的步骤是什么?

首先编写Python脚本读取Excel数据,然后将其转换为Json格式,最后将Json文件导入到UE中。

如何在UE编辑器中使用Editor Utility代码导入Json数据?

可以编写Editor Utility代码,将Json数据导入并填充到DataTable中,然后遍历DataTable创建和更新GE类Asset。

创建蓝图GE类的过程中需要注意哪些参数?

在创建蓝图GE类时,需要关注AssetTags、Duration和Modifiers等参数的设置。

如何提升策划在维护GE类时的工作效率?

通过使用Excel维护GE类数据,并结合Python导出Json文件,可以显著提升策划的工作效率。

🏷️

标签

➡️

继续阅读