星露谷Mod神器xnbcli完全指南:终极XNB文件打包解包CLI工具入门
【免费下载链接】xnbcliA CLI tool for XNB packing/unpacking purpose built for Stardew Valley.项目地址: https://gitcode.com/gh_mirrors/xn/xnbcli
xnbcli是一款专为《星露谷物语》(Stardew Valley)打造的XNB 文件打包与解包 CLI 工具。如果你在做星露谷 Mod,需要把游戏里的.xnb资源文件(纹理、字体、音效、地图数据)解出来编辑,再重新打包回去,xnbcli 就能一条命令帮你搞定。本文带你快速上手这款终极 XNB 工具 👇
xnbcli 是什么?为什么 Mod 制作者需要它
星露谷物语的大量游戏资源都封装在.xnb文件中——这是 XNA/Xbox 时代的二进制容器格式,普通文本编辑器根本打不开。xnbcli 的价值在于:
- 📦解包(unpack):把
.xnb还原成可读的.json+.png、.xml、.wav等普通文件 - 📦打包(pack):把你修改后的文件重新封装回
.xnb,游戏可直接使用 - 🔧纯命令行:体积小、速度快,可写进脚本做批量处理
项目最终目标是作为 GUI 封装层的底层引擎,让普通用户也能轻松操作 XNB 文件(详见 README.md)。
最快上手:克隆仓库并安装
如果你从源码运行(开发者推荐路径),只需三条命令:
git clone https://gitcode.com/gh_mirrors/xn/xnbcli cd xnbcli npm install⚠️ 源码运行需要 Node.js、npm 和 Python 环境;Windows 用户还需安装
windows-build-tools。
依赖配置可查看 package.json,核心依赖包括lz4(LZ4 压缩解码)、pngjs(PNG 读写)等。
一键解包:把 .xnb 变成图片和文本
最简单的方式是文件夹工作流:
- 把要解包的
.xnb文件放进 packed/ 目录 - 运行对应系统的脚本:unpack.bat(Windows)、unpack.command(macOS)或 unpack.sh(Linux)
完成后,解包结果会自动出现在 unpacked/ 目录中:
| XNB 内部内容 | 解包后文件 |
|---|---|
| Texture2D 纹理 | .png图片 |
| 字体系列(BmFont) | .xml |
| 音效(SoundEffect) | .wav |
| 地图数据(TBin) | .tbin |
| 编译着色器(Effect) | .cso |
| 元数据 | .json(人类可读的结构描述) |
文件导出逻辑位于 app/Porter.js,它会自动把 JSON 中的二进制数据拆分导出为上述格式。
一键打包:把修改后的资源还原成 .xnb
反过来操作即可:
- 把修改好的文件(
.json及其引用的.png/.xml等)放进 unpacked/ 目录 - 运行 pack.bat、pack.command 或 pack.sh
打包后的.xnb文件会输出到 packed/ 目录,可以直接放进 Mod 的Content文件夹使用。JSON 中的export字段会被自动重新解析合并回二进制数据,全程无需手动配置。
终端用法:命令行参数一览
除了脚本,也可以直接调用入口 xnbcli.js:
xnbcli (pack|unpack) [输入] [输出]常用示例:
node xnbcli.js unpack ./packed ./unpacked—— 批量解包目录node xnbcli.js pack ./unpacked ./packed—— 批量打包目录- 只处理单个文件时,输出文件会自动生成在输入文件同目录,扩展名自动在
.xnb/.json之间互换
另外还支持这些实用参数:
--debug:输出详细调试日志--errors:只打印错误信息--silent:完全静默,适合脚本调用- 工具每次运行会自动检查新版本,有更新时会提示你
技术亮点:LZX 与 LZ4 压缩全支持
星露谷的 XNB 文件普遍使用 LZX 压缩,这也是很多工具解不开老版本 Mod 的原因。xnbcli 同时支持LZX和LZ4两种压缩格式的解码,LZX 实现位于 app/Presser/Lzx.js。
解析引擎基于「Reader 策略模式」设计:每种数据类型(字符串、向量、字典、纹理……)都有对应的读取器,统一注册在 app/Xnb/Readers/,包括Texture2DReader、SpriteFontReader、BmFontReader、Vector3Reader等 20+ 个解析器。核心调度逻辑在 app/Xnb/index.js,类型解析由 app/Xnb/TypeReader.js 和 app/Xnb/ReaderResolver.js 完成。
新手常见问题 FAQ
Q:解包失败/报错怎么办?加--debug参数查看详细日志。大部分失败源于文件被截断或格式不匹配,工具内置了完整性校验(见 app/Xnb/index.js)。
Q:打包后游戏读不到我的 Mod?请确认 JSON 文件与引用的图片/字体文件在同一目录下,export字段指向的文件名没有改错。
Q:批量处理几百个文件可以吗?可以。xnbcli 会递归遍历整个输入目录,单个文件失败不影响其他文件继续处理,最后统一输出 Success / Fail 统计(见 xnbcli.js)。
总结
xnbcli 用极小的体积解决了星露谷 Mod 开发中最头疼的 XNB 资源转换问题:packed进、unpacked出,双向一键完成。无论是做纹理替换、字体美化还是音效修改,装上它,你的 Mod 工作流会顺畅得多 🌟
【免费下载链接】xnbcliA CLI tool for XNB packing/unpacking purpose built for Stardew Valley.项目地址: https://gitcode.com/gh_mirrors/xn/xnbcli
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考