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