dataterminals/grb-modding-knowledgebase

GitHub: dataterminals/grb-modding-knowledgebase

一个面向人类和AI的《幽灵行动:断点》模组开发知识库,系统性地记录了Ubisoft Anvil引擎的.forge文件格式与资产替换流程。

Stars: 0 | Forks: 1

# GRB 模组开发知识库 这是一个供人类**和** AI 阅读的知识库,用于 **Tom Clancy's Ghost Recon: Breakpoint** (GRB) 的模组开发 —— 涵盖了 Ubisoft 的 *Anvil* 引擎、其 `.forge` 档案文件、**Anvil Toolkit (ATK)**,以及模组社区使用的资产替换流程。 ## 为什么会有这个仓库 GRB 的官方模组工具实际上已经不复存在了;这个领域能够存续,全靠少数几位技术大神开发了 **ATK**,以及大量沉淀在 Discord 讨论串中、来之不易且基本没有文档的内部知识。这里的目标是**以结构化的形式记录这些知识**,以便: 1. 对 GRB 模组开发感兴趣的**人类**能有一个真正的参考资料,而不用去翻找零散的聊天记录。 2. **AI 编程代理**(Claude Code 等)可以将此仓库作为上下文加载,从而真正地*协助* —— 或最终*自动化* —— GRB 模组开发任务。 我们并没有单一且最终的终极目标。近期的任务重点是广度和准确性:构建一份关于*GRB 的数据运作机制以及我们如何修改它*的可靠图谱,然后再逐步扩展到工具、自动化和具体示例。 ## GRB 模组开发到底是怎么回事(60 秒版本) GRB 几乎将所有的游戏数据都存储在巨大的 **`.forge`** 档案文件中。`.forge` 是一种 Ubisoft *Anvil* 引擎容器(引擎代号 **"Scimitar"** —— 这就是每个 forge 文件开头的魔数)。一个 forge 文件内部包含了许多 **`.data`** 条目;每个 `.data` 本身就是一个微型容器,内部包含一个或多个**类型化资源** —— 网格、贴图、材质、构建表、骨架等。 **ATK**(Anvil Toolkit)是一个 Windows `.NET`/WPF 应用程序,相当于 **forge 文件的专用资源管理器**:它可以将 `.forge` 文件解包成可浏览的 `.data` 文件夹,让你查看/替换贴图和网格,将资源导出为标准格式(**DDS**、**glTF/GLB**、**XML**),重新导入修改后的文件,并将所有内容重新**打包**回游戏可加载的 forge 文件中。 实际操作中,一个完成的资产替换模组其实是一小部分 **补丁 forge 文件**(`*_patch_01.forge`),游戏会在其基础 forge 文件*之上*加载它们,并根据 ID 覆盖特定条目。大多数外观模组会同时涉及三个 forge 文件: | Forge 文件 | 包含内容 | | --- | --- | | `DataPC_patch_01.forge` | 物品/库存定义(`WI_…`)、构建表、实体数据 | | `DataPC_extra_patch_01.forge` | 游戏玩法定义(`WG_…`) | | `DataPC_Resources_patch_01.forge` | 占用空间大的资源:网格(`…_LOD0–3`)和贴图(`…_Mip0–N`) | 创作流程是:**在 Blender 中制作模型/贴图 → 导出为 glTF/DDS → 使用 ATK 导入到 forge 文件中 → 在你安装的游戏目录中就地重新打包该 forge 文件。**(你需要让 ATK 指向你的 GRB 安装目录并直接重新打包它的 forge 文件 —— 并没有单独“放入一个文件”的步骤;一个被修改过的游戏安装目录只是随着时间推移,其 forge 文件中不断累积了各种模组而已。)请参阅 [`docs/07-modding-workflow.md`](docs/07-modding-workflow.md)。 ## 如何使用此仓库 ### 如果你是人类 请从 [`docs/01-overview.md`](docs/01-overview.md) 开始,然后按顺序阅读文档。遇到不熟悉的术语时,请查阅 [`reference/glossary.md`](reference/glossary.md)。[`examples/`](examples/) 文件夹提供了从零开始的完整真实模组案例。 ### 如果你是 AI 代理 请先阅读 [`CLAUDE.md`](CLAUDE.md) —— 这是专门为你编写的导向文件。它会告诉你安全规则(例如**在没有备份的情况下绝不要操作 forge 文件**)、思维模型,以及在哪里可以找到权威事实。`AGENTS.md` 中也会指向这里。 ## 仓库导航 ``` docs/ Conceptual documentation, numbered in reading order reference/ Lookup tables: forge inventory, resource types, glossary, cloth section types examples/ Worked case studies of real mods, plus the studied mod corpus tools/ Scripts (e.g. cloth_inspect.py — inspect/diff MotionCloth .cloth resources) meta/ Research provenance, verification status, sources, open questions assets/ Diagrams and supporting images ``` | 文档 | 主题 | | --- | --- | | [`docs/01-overview.md`](docs/01-overview.md) | Anvil/Scimitar 引擎、GRB、模组生态 | | [`docs/02-forge-file-format.md`](docs/02-forge-file-format.md) | `.forge` 档案格式(二进制布局、已验证的内容) | | [`docs/03-data-and-resources.md`](docs/03-data-and-resources.md) | `.data` 容器、类型化资源、文件 ID、嵌套机制 | | [`docs/04-anvil-toolkit.md`](docs/04-anvil-toolkit.md) | ATK 深入解析:技术栈、功能、文件资源管理器模型 | | [`docs/05-three-forge-model.md`](docs/05-three-forge-model.md) | 基础 forge 与补丁 forge 的对比;三 forge 模组结构 | | [`docs/06-game-load-and-reassembly.md`](docs/06-game-load-and-reassembly.md) | GRB 如何在加载时将多个 forge 合并为一个索引 | | [`docs/07-modding-workflow.md`](docs/07-modding-workflow.md) | 端到端流程:Blender → glTF/DDS → 导入 → 重新打包 → 安装 | | [`docs/08-naming-conventions.md`](docs/08-naming-conventions.md) | 前缀、LOD/Mip 后缀、`77777` 约定、ID 格式 | | [`docs/09-textures.md`](docs/09-textures.md) | DDS、像素格式、重排、mips、gamma | | [`docs/10-meshes-and-skeletons.md`](docs/10-meshes-and-skeletons.md) | 顶点格式、LOD、glTF 流程、骨架 | | [`docs/11-cloth-and-physics.md`](docs/11-cloth-and-physics.md) | `.cloth` / MotionCloth 格式,逆向工程自 ATK 源码 —— 涵盖各区块、可调属性以及如何修改布料 | 重要的查找表:[`reference/forge-inventory.md`](reference/forge-inventory.md) · [`reference/resource-types.md`](reference/resource-types.md) · [`reference/resource-type-ids.md`](reference/resource-type-ids.md) · [`reference/cloth-section-types.md`](reference/cloth-section-types.md) · [`reference/glossary.md`](reference/glossary.md) ## 工具 - **🧵 布料检查器** ([`tools/`](tools/README.md)) —— 一款点击即用的工具(支持窗口化、拖拽,或独立的 `.exe`),可以读取 GRB 的布料文件(`.Cloth` 或 `.data`),并用通俗易懂的语言告诉你它是什么:包含的布料块(LOD)、每块布料驱动的**网格 + LOD**、模拟网格尺寸,以及**服装的绑定方式**(DIRECT 与 BARYCENTRIC —— 即你该如何为其重新蒙皮)。目前已由原版 MotionCloth 读取器(`motioncloth.py`)提供底层支持。**无需编写代码。** 请参阅 [`tools/README.md`](tools/README.md)。 - **🔎 Data 检查器** ([`tools/`](tools/README.md)) —— 一款点击即用的工具(支持窗口化、拖拽,或独立的 `.exe`),可列出任何 GRB `.data` 文件内的类型化资源(名称、**类型**、ClassID、大小),通过游戏自带的 DLL 进行 Oodle 解压。**无需编写代码。** 请参阅 [`tools/README.md`](tools/README.md)。 - **🗂️ Forge 检查器** ([`tools/`](tools/README.md)) —— 一款点击即用的工具(支持窗口化、拖拽,或独立的 `.exe`),通过索引读取整个 `.forge` 文件(速度快,无需解包),以显示其资源类型直方图,或者**根据真实的文件 ID 对比两个 forge 文件**,从而找出模组冲突/覆盖情况。**无需编写代码。** 请参阅 [`tools/README.md`](tools/README.md)。 ## 社区 - **Tier 1 Imports** —— 首要且活跃的 GRB 模组开发社区。 - **Anvil Toolkit Discord** —— `https://discord.gg/vsuGFEapdq`(源自 ATK 的 README;提供工具支持与更新)。 ## 关于准确性的说明 本知识库是在一位研究人员的电脑上,通过检查真实的 GRB 安装目录、ATK 发行版以及大量社区模组汇编而成的。只要某项陈述是**观察并验证过**的,我们都会明确指出。只要某项陈述是根据命名规则、文件结构或对 Anvil 引擎的通用了解而**推断**出来的,我们也会加以标记。如果你能确认或纠正某些内容,请更新 [`meta/research-log.md`](meta/research-log.md) 以及相关的文档。请将未经证实的说法视为假设,而不是真理。
标签:3D建模与纹理, Ruby, Ubisoft Anvil引擎, 多人体追踪, 文件解析, 游戏Mod开发, 知识库, 资源提取, 逆向工具