mcpField
U
unreal-blueprint-analyzer

unreal-blueprint-analyzer

github.com/demon673开发074 次安装1 天前更新
代码仓库

关于 unreal-blueprint-analyzer

Unreal Blueprint Analyzer 是用于只读分析 Unreal Engine 项目中 Blueprint 二进制资源的技能。它帮助开发者将资源线索与源码、配置和文档交叉核对,区分已证实信息与推断,并避免直接修改二进制文件。

主要功能

  1. 01识别 Blueprint 资源类型
  2. 02使用结构化解析器提取线索
  3. 03与源码和文档交叉核对
  4. 04区分证据与推断
  5. 05报告置信度和编辑器复查项

适用场景

  1. 01调查 Blueprint 可能的用途
  2. 02追踪运行时引用与契约
  3. 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 字节读取)。

工作流

  1. 确认资源路径和类型:Actor Blueprint、UI Widget、Behavior Tree Task、Data Asset、Map 或未知。
  2. 查找相邻的源代码、配置和文档:将资源名称或路径与附近的 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、设计文档、插件文档或源代码注释。
  3. 提取线索,但不要修改资源:优先使用内置脚本 python <skill>/scripts/extract_uasset_strings.py <asset> --json;否则使用 strings、PowerShell 字节读取或编辑器导出内容。
  4. 对提取的线索进行分类:资源路径、ClassPaths 和父类;组件名称、Widget 名称和公开变量;函数、事件和 RPC 名称;Blackboard 键、Data Table 名称、标签、插槽、动画名称和引用的资源。
  5. 对照源代码、配置、文档和编辑器导出内容交叉验证线索。仅出现在二进制文件中的字符串属于较弱证据;同时出现在源代码、配置、文档或导出内容中的线索则更有力。
  6. 撰写简短报告。如果静态分析无法证明执行流程,请给出置信度,并列出具体的编辑器复查要点。

逐步淘汰说明

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,或数据驱动的配置。

评论

支持 Markdown