关于 unreal-blueprint-analyzer
Unreal Blueprint Analyzer 是用于只读分析 Unreal Engine 项目中 Blueprint 二进制资源的技能。它帮助开发者将资源线索与源码、配置和文档交叉核对,区分已证实信息与推断,并避免直接修改二进制文件。
主要功能
- 01识别 Blueprint 资源类型
- 02使用结构化解析器提取线索
- 03与源码和文档交叉核对
- 04区分证据与推断
- 05报告置信度和编辑器复查项
适用场景
- 01调查 Blueprint 可能的用途
- 02追踪运行时引用与契约
- 03评估静态分析的不确定性
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ demon673/ demon-agent-skill --skill unreal-blueprint-analyzer安装后在 Claude Code 中输入/unreal-blueprint-analyzer确认已加载。
附带文件agents/openai.yamlscripts/extract_uasset_strings.py
详细介绍
Unreal Blueprint 分析器
对任意 Unreal Engine 项目中的 Blueprint 二进制资源进行只读分析。将 .uasset、.umap 和类似的 Unreal 资源视为二进制源文件;切勿就地修改。
核心规则
- 不要直接编辑
.uasset、.umap、.navmesh或其他 Unreal 二进制资源。 - 将已确认的事实与推断区分开。将证据来源标记为源代码、文档、引用、二进制字符串或编辑器导出内容。
- 优先使用最可靠的可用来源:官方编辑器导出内容、Commandlets、用户提供的屏幕截图或 JSON。
- 如果用户要求修改 Blueprint,请提供安全的编辑器操作步骤或可脚本化的编辑器/导出流程,而不是二进制补丁。
解析方法
优先使用结构化解析器,而不是直接对原始字符串进行搜索:
- CUE4Parse(FModel 背后的 .NET 库),用于解析
.uasset、.umap和.pak包结构。 - UAssetAPI,用于解析 Blueprint Kismet 字节码和表达式图。
- FModel,作为开箱即用的查看器和导出工具。
如果没有可用的结构化解析器,则使用 python <skill>/scripts/extract_uasset_strings.py <asset> --json(或 strings / PowerShell 字节读取)。
工作流
- 确认资源路径和类型:Actor Blueprint、UI Widget、Behavior Tree Task、Data Asset、Map 或未知。
- 查找相邻的源代码、配置和文档:将资源名称或路径与附近的 C++、Blueprint 原生化输出、Python/Editor Utility、Verse、Lua、C#、插件脚本、配置文件、数据表或项目脚本层相匹配;搜索资源名称、生成的类名、父类、ClassPaths、组件名称、Widget 名称、事件/函数名称、Delegates、RPC 名称、Gameplay Tags、Blackboard 键、Input Actions、Data Table 行和配置引用;如果存在,请阅读
AGENTS.md、GLOSSARY.md、README.md、设计文档、插件文档或源代码注释。 - 提取线索,但不要修改资源:优先使用内置脚本
python <skill>/scripts/extract_uasset_strings.py <asset> --json;否则使用strings、PowerShell 字节读取或编辑器导出内容。 - 对提取的线索进行分类:资源路径、ClassPaths 和父类;组件名称、Widget 名称和公开变量;函数、事件和 RPC 名称;Blackboard 键、Data Table 名称、标签、插槽、动画名称和引用的资源。
- 对照源代码、配置、文档和编辑器导出内容交叉验证线索。仅出现在二进制文件中的字符串属于较弱证据;同时出现在源代码、配置、文档或导出内容中的线索则更有力。
- 撰写简短报告。如果静态分析无法证明执行流程,请给出置信度,并列出具体的编辑器复查要点。
逐步淘汰说明
Blueprint 仍是已发布 UE5 中的一流创作系统,但 Epic 已宣布将逐步迁移到 Verse(预计 UE6 于 2027 年第 4 季度开启早期访问,并于 2029 年年中全面发布)。应将 Blueprint 资源视为生命周期较长但并非永久使用;不要将此工作流描述为永久方案。
输出格式
除非用户另有要求,否则请采用以下结构:
- Asset:路径、推断的类型,以及相关源代码/配置/导出路径。
- Purpose:Blueprint 最可能的用途,以及置信度。
- Evidence:分组列出已确认的源代码/文档证据和基于二进制字符串的推断。
- Runtime contracts:运行时依赖的组件名称、Widget 名称、字段、Blackboard 键、RPC、资源路径以及保存/同步字段。
- Risks / Unknowns:静态二进制分析无法证明的内容。
- Editor follow-up:需要在 Blueprint 编辑器中复查的具体项目,或安全的手动修改方式。
本地命令示例
python .\scripts\extract_uasset_strings.py <path-to-asset>.uasset --json
rg "BP_Door|Door_C|OpenDoor|Interact|BeginOverlap" Source Content Config Plugins docs
当项目使用自定义 Unreal 技术栈时,处理相邻代码应遵循该技术栈,不要擅自假定使用某种脚本语言。例如:Source/ 中的 C++ 类、Editor Utility Python、UEFN 项目中的 Verse、Oasis/PUBG Mobile UGC 项目中的 Lua、UnrealCLR 风格集成中的 C#、插件定义的 Blueprint Libraries,或数据驱动的配置。