MeikoMei16/AssetRipper-CLI

GitHub: MeikoMei16/AssetRipper-CLI

基于 AssetRipper 构建的命令行工具,支持通过预设配置从 Unity 游戏中精准提取 CG、音频及立绘等静态素材,并生成结构化分析报告。

Stars: 4 | Forks: 1

# AssetRipper CLI [![English](https://img.shields.io/badge/README-English-blue?style=for-the-badge)](README.en.md) 从 Unity 游戏中提取素材的命令行工具 —— CG、音频、背景、立绘,一条命令搞定。 基于 [AssetRipper](https://github.com/AssetRipper/AssetRipper) 构建,专注于 CLI 导出工作流。 ## 环境要求 - [.NET SDK 10](https://dotnet.microsoft.com/download)(版本 >= `10.0.200`) # Windows 安装 winget install Microsoft.DotNet.SDK.10 # 确认版本 dotnet --version # 输出应 >= 10.0.200 ## 编译 dotnet build AssetRipperCLI.slnx -c Release 设置别名方便后续使用: # PowerShell Set-Alias arc .\artifacts\bin\AssetRipper.Tools.ExportRunner\Release\net10.0\AssetRipper.Tools.ExportRunner.exe # Bash / Zsh alias arc="dotnet ./artifacts/bin/AssetRipper.Tools.ExportRunner/Release/net10.0/AssetRipper.Tools.ExportRunner.dll" 以下示例统一使用 `arc` 作为别名。 ## 快速上手 ### 1. 检查 — 先看看游戏里有什么 arc inspect .\GameRoot 输出素材数量、推荐的导出配置、内容分类概览。 ### 2. 导出 — 提取你想要的素材 提取 CG(事件图、立绘、剧情插画): arc export .\GameRoot --output .\output\cg --profile cg 提取音频(BGM、语音、音效): arc export .\GameRoot --output .\output\audio --profile audio 全量提取: arc export .\GameRoot --output .\output\all --mode primary ### 3. 查看 — 确认导出结果 arc report .\output\cg\export-manifest.json ## 预设配置 通过预设配置(Profile)可以按类别定向提取,不需要导出整个游戏。 | 配置 | 提取目标 | |---|---| | `cg` | 事件 CG、剧情插画、回忆画廊 | | `audio` | BGM、语音、音效 | | `characters` | 角色立绘、头像、半身像 | | `backgrounds` | 场景背景 | | `sprites` | 2D sprites | | `ui` | UI 界面元素 | | `player-art` | 面向玩家的美术素材 | | `narrative` | 剧情文本相关素材 | | `full-raw` | 全部主要内容,不做过滤 | | `full-project` | 完整 Unity 工程导出 | 配置基于启发式匹配 —— 大多数游戏效果很好,但可能存在少量误差。建议先用针对性配置,不够再换 `full-raw`。 ## 命令一览 | 命令 | 用途 | |---|---| | `inspect <路径>` | 快速内容概览 —— 拿到游戏先跑这个 | | `analyze <路径> --report out.json` | 同 inspect,额外保存 JSON 报告 | | `export <路径> --output <目录> --profile <名称>` | 按配置导出 | | `export <路径> --output <目录> --mode primary\|dump` | 按导出模式导出 | | `report ` | 将导出产物渲染为可读文本 | ### 导出选项 --keep-output 保留输出目录已有内容(默认会清空) --recursive-unpack on|off 是否递归解包嵌套 bundle(默认 on) --shard-strategy off|direct-children|auto 大型资源库的分片并行策略 ## 导出产物 每次导出会在输出目录生成结构化的记录文件: | 文件 | 内容 | |---|---| | `export-plan.json` | 导出计划 | | `export-manifest.json` | 实际导出清单 | | `summary.txt` | 运行摘要 | | `skipped-assets.json` | 被配置过滤跳过的集合 | | `failed-assets.json` | 导出失败的集合 | 用 `arc report <文件>` 可以在终端查看任意产物。 ## 推荐工作流 inspect → 选配置 → export → report 检查 1. 先跑 `inspect` 了解游戏内容 2. 选一个配置(`cg`、`audio`、`characters` 等) 3. 用该配置导出 4. 结果太少?换 `full-raw`;需要 Unity 工程?用 `full-project` 5. 用 `report` 检查导出清单和失败记录 ## 已知限制 - **配置匹配基于启发式** —— 配置是快捷方式,不是完美分类器,建议检查导出结果 - **部分游戏会出现导入警告** —— 通常不影响导出,具体看 `failed-assets.json` - **仅支持静态素材** —— Spine、Live2D、Cubism 等动态重建不在范围内 ## 仓库结构 src/ CLI 源代码 vendor/ 上游 AssetRipper 库(vendor 方式引入) docs/ 详细文档、架构说明、已知问题 ## 详细文档 - [使用指南](docs/articles/CliUsageGuide.md) — 完整命令参考 - [实现状态](docs/articles/CliImplementationStatus.md) — 内部实现与执行模型 - [已知问题](docs/articles/CodeReviewFindings.md) — 当前限制与验证记录 - [架构说明](docs/articles/CliArchitectureRefactor.md) — 设计决策 ## DMCA 本项目尊重知识产权。如果您是版权所有者并认为本仓库中的内容侵犯了您的权利,请通过 GitHub 提交 Issue 或按照 [GitHub DMCA 流程](https://docs.github.com/en/site-policy/content-removal-policies/dmca-takedown-policy) 发送通知,我们会及时处理。 ## 致谢 本项目基于 [AssetRipper](https://github.com/AssetRipper/AssetRipper),感谢上游项目的出色工作。 本项目由 [Linux.do](https://linux.do) 社区激励实现。学 AI,上 L 站!真诚、友善、团结、专业,共建你我引以为荣之社区。 ## 许可证 本仓库整体按 [GPL-3.0](LICENSE) 分发。 本仓库包含并修改了来自 [AssetRipper](https://github.com/AssetRipper/AssetRipper) 的代码。第三方许可与归属说明请参阅 [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md) 与 [vendor/assetripper/Source/Licenses](vendor/assetripper/Source/Licenses)。
标签:AssetRipper, CG提取, DNS解析, Homebrew安装, Unity, 云资产清单, 开源项目, 数据恢复, 文件转换, 游戏Mod, 游戏存档分析, 游戏开发, 游戏拆包, 立绘提取, 素材导出, 背景提取, 资源提取, 逆向工程, 音频提取