#game-assets #world #format-json #metadata #read #utility #warships

bin+lib wowsunpack

用于与世界战舰游戏资产交互的实用工具

6 个版本

0.1.6 2024年1月6日
0.1.5 2024年1月3日
0.1.3 2023年6月4日

#979解析实现

MIT 许可证

45KB
896

wowsunpack

用于解包世界战舰游戏资产的实用工具。

crates.io docs.rs

安装

前往 发布 页面以获取最新的预编译二进制文件。

如果您希望手动安装(从 crates.io 源构建)

$ cargo install --force wowsunpack

功能

  • 直接读取并将 GameParams.data 转换为 JSON
  • 将 IDX 文件资源元数据转储为序列化格式(JSON 或 CSV)
  • 使用 glob 文件模式提取游戏资产
  • 核心逻辑可以作为库被其他应用程序使用

计划

  • 解析 assets.bin
  • C FFI
  • 重构库 API

使用方法

Usage: wowsunpack [OPTIONS] <COMMAND>

Commands:
  extract      Extract files to an output directory
  metadata     Write meta information about the game assets to the specified output file. This may be useful for diffing contents between builds at a glance. Output data includes file name, size, CRC32, unpacked size, compression info, and a flag indicating if the file is a directory
  game-params  Special command for directly reading the `content/GameParams.data` file, converting it to JSON, and writing to the specified output file path
  help         Print this message or the help of the given subcommand(s)

Options:
  -p, --pkg-dir <PKG_DIR>      Directory where pkg files are located. If not provided, this will default relative to the given idx directory as "../../../../res_packages"
  -i, --idx-files <IDX_FILES>  .idx file(s) or their containing directory
  -h, --help                   Print help
  -V, --version                Print version

动机

世界战舰游戏文件打包在两种自定义文件格式中 -- .idx 文件和 .pkg 文件。 .idx 文件包含序列化的资源和体积 (.pkg) 元数据。游戏开发商 Wargaming 提供了一个 官方实用工具,但与这个实用工具相比有以下缺点

  • 不是开源的
  • 此实用工具的后端库可以轻松集成到其他应用程序中,以便直接读取游戏数据
  • 速度较慢(使用 CLI 工具约为 2 倍,使用 GUI 约为 6 倍)
  • 不公开资源的元信息
  • 不公开机器可序列化的格式数据

前两点是开发此实用工具的主要动机。例如,像 minimap_renderer 这样的应用程序依赖于游戏资产,而使用当前工具读取这些资产并不容易自动化。

依赖项

~4–6MB
~109K SLoC