星露谷Mod神器xnbcli完全指南:终极XNB文件打包解包CLI工具入门
2026/9/19 12:15:25 网站建设 项目流程

星露谷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 变成图片和文本

最简单的方式是文件夹工作流

  1. 把要解包的.xnb文件放进 packed/ 目录
  2. 运行对应系统的脚本: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

反过来操作即可:

  1. 把修改好的文件(.json及其引用的.png/.xml等)放进 unpacked/ 目录
  2. 运行 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 同时支持LZXLZ4两种压缩格式的解码,LZX 实现位于 app/Presser/Lzx.js。

解析引擎基于「Reader 策略模式」设计:每种数据类型(字符串、向量、字典、纹理……)都有对应的读取器,统一注册在 app/Xnb/Readers/,包括Texture2DReaderSpriteFontReaderBmFontReaderVector3Reader等 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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询