SuperAPI AI 工具集

unreal-engine

编程与开发

查看项目

更新于 10-15 12:09

技能介绍

用途 该技能定位为虚幻引擎(Unreal Engine)的 C++ 与蓝图开发助手,具备对项目结构的深入理解,用于在用户请求虚幻引擎相关帮助时提供开发协助。其核心理念是“零假设”:不假设用户项目的结构、资产与配置,认为每个虚幻项目在结构、资产和配置上都各不相同,因此在建议代码或资产前必须先进行验证。

使用方式:预检发现流程 当用户请求虚幻引擎帮助时,该技能会先执行发现序列:

  1. 定位 .uproject 文件:使用 find . -maxdepth 2 -name "*.uproject" -type f 查找;若找到则读取以提取引擎版本(EngineAssociation 字段)、项目名(文件名)、启用的插件(Plugins 数组)以及模块依赖(Modules 数组)。文档给出了 .uproject 结构的示例。
  2. 映射项目结构:文档给出标准虚幻项目布局,包括 Source(C++ 源码,含 Public/Private 与 Build.cs)、Content(.uasset 资产,如 Blueprints、Input、Characters、UI 等)、Config(.ini 配置)、Plugins、Intermediate、Saved、Binaries 等,并说明 Intermediate、Saved、Binaries 可忽略。随后给出发现命令,如查看 C++ 类(view Source//Public、view Source//Private)、查找 Content 资产(find Content -type f -name ".uasset" | head -50)、查找输入动作(find Content -type f -name "IA_" -o -name "InputAction")、查找输入映射上下文(IMC_、InputMappingContext)、查找蓝图(BP_.uasset)等。
  3. 理解已有代码:在建议任何代码前,先阅读已有的角色/控制器类以了解模式,检查已添加的组件,识别命名约定(如 IA_ 前缀),查找已有的辅助类或基类。

主要能力:输入系统处理 针对 UE5+ 的增强输入系统(Enhanced Input),强调绝不假设输入动作名称,必须先用 find 命令发现 Content 中的输入动作与输入映射上下文。文档列出常见输入动作模式(IA_Move/IA_Movement、IA_Look、IA_Jump、IA_Interact),但强调必须验证,因为项目命名约定不同。在 C++ 中绑定输入动作时,给出 Enhanced Input 绑定模板,包括 #include "EnhancedInputComponent.h"、"EnhancedInputSubsystems.h"、"InputAction.h",在 SetupPlayerInputComponent 中将 PlayerInputComponent 转换为 UEnhancedInputComponent 并调用 BindAction;同时给出头文件声明示例(UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Input") UInputAction* MoveAction; 等)。

.uasset 文件与蓝图读取 .uasset 为二进制文件,在文本编辑器中大多不可读,但部分元数据(资产名、路径、GUID)可见,属性名和字符串值可能可读,可用于发现资产引用与依赖;不应依赖 .uasset 内容获取实现细节,更好的做法是用 find 发现资产后请用户验证或描述。

游戏能力系统(GAS) 针对含 GameplayAbilities 插件的项目,文档说明关键设置要求:Build.cs 依赖(GameplayAbilities、GameplayTags、GameplayTasks 等);Ability System Component 的放置(单机或 listen-server 可放 Character,专用服务器通常放 PlayerState,AI/NPC 可放 Character 或自定义 actor);关键 GAS 类(UAbilitySystemComponent、UGameplayAbility、UAttributeSet、UGameplayEffect、FGameplayTag)。并给出常见模式代码,如授予能力 AbilitySystemComponent->GiveAbility(FGameplayAbilitySpec(AbilityClass, 1, INDEX_NONE, this)); 以及按类或按标签激活能力(TryActivateAbilityByClass、TryActivateAbilitiesByTag)。

插件与 API 知识缺口处理 遇到不熟悉的插件(如 Mutable、MutableClothing、RelativeIKOp)时,建议搜索官方文档与用法示例、查看源码,并保持透明说明该插件为实验性/文档不足。对不确定的 API 用法,建议搜索 Epic 文档(含版本)、社区资源、Epic 开发者社区论坛,并参考示例项目(Lyra、Valley of the Ancient、ActionRPG)。

常见陷阱与版本注意事项 文档强调避免假设(如不应假设 IA_Jump 存在,应先 find Content -name "IA_")、避免通用动作名,应先验证资产名称与命名约定。版本方面,始终检查 .uproject 中的 EngineAssociation;列出 5.0-5.4(稳定增强输入、实验性 GAS 改进)、5.5+(Mutable/定制系统、新输入特性)、4.27(遗留输入系统,需手动设置增强输入),并建议在建议代码前搜索特性在对应版本的可用性。

工作流、最佳实践与参考资料 文档给出工作流决策树:查找 .uproject 提取版本与插件 → 映射项目结构 → 识别问题类型(输入系统/GAS/插件/通用 C++)→ 提供带已验证资产引用、版本适配代码、项目特定模式的方案 → 不确定时搜索文档。最佳实践清单要求提供任何代码建议前完成发现与验证步骤。快速参考命令包括 grep "EngineAssociation" .uproject、find Source -name ".h" -o -name ".cpp"、find Content -name "IA_.uasset"、grep -i "GameplayAbilities" *.uproject 等。该技能还包含参考文档:references/enhanced_input.md(增强输入系统 API、绑定示例、值类型、调试、迁移)、references/gameplay_ability_system.md(GAS 完整设置、复制策略、能力授予激活、Gameplay Tags、属性修改、常见模式、调试)、references/common_pitfalls.md(输入系统问题、GAS 激活问题、构建编译错误、蓝图/C++ 集成、资产引用、插件排障、性能调试、应急恢复)。

适用场景与限制 适用场景为虚幻引擎项目的 C++ 与蓝图开发协助,尤其是涉及增强输入系统、GAS、项目结构与资产发现的任务。限制方面,该技能自身以发现优先与验证为原则,对不确定 API 与未知插件会要求搜索外部文档;其资料未提供收费、价格、平台等信息,这些暂未提供。