11 个重大版本

0.12.0 2024 年 8 月 16 日
0.11.0 2024 年 7 月 19 日
0.10.0 2024 年 6 月 18 日
0.7.0 2024 年 3 月 15 日
0.2.0 2023 年 11 月 22 日

解析器实现 中排名第 534

Download history 262/week @ 2024-04-28 2/week @ 2024-05-05 109/week @ 2024-05-12 33/week @ 2024-05-19 8/week @ 2024-05-26 5/week @ 2024-06-02 3/week @ 2024-06-09 149/week @ 2024-06-16 5/week @ 2024-06-23 50/week @ 2024-06-30 124/week @ 2024-07-14 14/week @ 2024-07-21 43/week @ 2024-07-28 101/week @ 2024-08-11

每月下载量 202
用于 2 crates

MIT 许可证

475KB
10K SLoC

xc3_lib GitHub release (latest by date including pre-releases)

Rust 库和工具,用于处理《Xenoblade Chronicles X》、《Xenoblade Chronicles 1 DE》、《Xenoblade Chronicles 2》和《Xenoblade Chronicles 3》的渲染相关文件格式。

问题 中报告任何错误或请求新功能。在 发布 中下载工具的预编译二进制文件。xc3_model 的 Python 绑定可通过 xc3_model_py 获得。有关游戏渲染主题的信息,请参阅 xenoblade rendering research website

格式

xc3_lib 支持多种游戏内格式。所有格式都支持读取。某些格式的写入支持仍在进行中。点击链接以在 xc3_lib 中打开相应的 Rust 模块。以 wi 开头的扩展名用于类似 Switch 的设备,如 wimdowismt。以 pc 开头的扩展名用于 PC 构建,如 pcmdopcsmt。以 ca 开头的扩展名用于 Wii U,如 camdocasmt

格式 魔数 扩展名 写入
Apmd DMPA wimdo ✔️
Bc BC anm, motstm_data ✔️*
Beb beb ✔️
Beh hdev beh
Bmn BMN bmn
Dhal LAHD wilay ✔️*
Eva eva eva ✔️*
Fnt fnt ✔️
Laft LAFT wifnt ✔️
Lagp LAGP wilay ✔️*
Laps LAPS wilay ✔️*
Last LAST wisty ✔️
Ltpc LTPC ✔️
米布 LBIM witex, witx ✔️
Msmd DMSM Wismhd
Msrd DRSM Wismt ✔️*
Mtxt MTXT catex, calut, caavp ✔️
Mxmd DMXM wimdo ✔️*
MxmdLegacy MXMD Camdo
Sar1 1RAS arc, chr, mot ✔️
Spch HCPS Wishp ✔️
Xbc1 Xbc1 Wismt ✔️

* 一些文件在保存后与原始文件不是二进制相同的。

项目

有关各个项目的概要设计,请参阅架构。点击下面的docs.rs链接查看生成的rustdoc文档。

  • Crates.io docs.rs - 文件格式库
  • Crates.io docs.rs - xc3_lib的高级API
  • Crates.io docs.rs - 模型和地图渲染器
  • Crates.io docs.rs - 二进制写入和布局

二进制文件

  • xc3_gltf - 将模型和地图转换为glTF
  • xc3_test - 与提取的转储文件中的文件进行测试
  • xc3_tex - 在常见的格式之间转换纹理,并在wilaywimdo文件中替换纹理
  • xc3_viewer - 用于测试xc3_wgpu的简单模型查看器
  • xc3_wgpu_batch - 批量渲染模型和地图到PNG

构建

安装完Rust 工具链后,在仓库目录中运行cargo build --release来构建工具到target/release。如果不使用--release运行cargo build,开发过程中的编译时间会更快,但运行性能会大大降低。工具也可以使用cargo run --release -p <project> <args>运行。xc3_tex使用了image_dds,由于使用了预编译的DDS编码内核,支持Windows x86、Linux x86、MacOS x86和MacOS Apple Silicon。其他项目应在其他平台构建时没有问题。

致谢

本项目基于之前的逆向工程工作,包括为Xenoblade X和Xenoblade 2所做的工程。特别感谢World Tree Research discord(原World of Alrest discord)的成员们提供的帮助。

依赖项

~18MB
~162K SLoC