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
每月下载量 202
用于 2 crates
475KB
10K SLoC
xc3_lib
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 的设备,如 wimdo
或 wismt
。以 pc
开头的扩展名用于 PC 构建,如 pcmdo
或 pcsmt
。以 ca
开头的扩展名用于 Wii U,如 camdo
或 casmt
。
格式 | 魔数 | 扩展名 | 写入 |
---|---|---|---|
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文档。
库
二进制文件
- xc3_gltf - 将模型和地图转换为glTF
- xc3_test - 与提取的转储文件中的文件进行测试
- xc3_tex - 在常见的格式之间转换纹理,并在
wilay
和wimdo
文件中替换纹理 - 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