Expand description
§xc3_model
xc3_model provides high level data access for the files that make up a model.
Each type represents fully compressed and decoded data associated with one or more xc3_lib types. This simplifies the processing that needs to be done to access model data and abstracts away most of the game specific complexities.
§Getting Started
Loading a normal model returns a single ModelRoot. Loading a map returns multiple ModelRoot. Each ModelRoot has its own set of images.
The ShaderDatabase is optional and improves the accuracy of texture and material assignments.
use xc3_model::shader_database::ShaderDatabase;
let database = ShaderDatabase::from_file("xc3.bin")?;
let root = xc3_model::load_model("ch01011013.wimdo", Some(&database))?;
println!("{}", root.image_textures.len());
let roots = xc3_model::load_map("ma59a.wismhd", Some(&database))?;
println!("{}", roots[0].image_textures.len());
Re-exports§
pub use collision::load_collisions;
Modules§
- Utilities for working with animation data.
- Utilities for loading textures from the
monolib/shader
folder. - Database for compiled shader metadata for more accurate rendering.
- Utilities for working with vertex skinning.
- Utilities for working with vertex buffer data.
Structs§
- A single node in the skeleton heirarchy.
- See LodData.
- See LodGroup.
- See LodItem.
- See Mesh.
- Flags to determine how to draw a Mesh.
- See Model.
- See Models.
- See SamplerFlags.
Enums§
- How edges should be handled in texture addressing.
- Texel mixing mode when sampling between texels.
- nvn image format types used by Xenoblade 1 DE, Xenoblade 2, and Xenoblade 3.
- The render pass for this draw call.
Traits§
- A trait for mapping unique items to an index.
Functions§
- Load all animations from a
.anm
,.mot
, or.motstm_data
file. - Load a map from a
.wismhd
file. The corresponding.wismda
should be in the same directory. - Load a model from a
.wimdo
or.pcmdo
file. The corresponding.wismt
or.pcsmt
and.chr
or.arc
should be in the same directory. - Load a model from a
.camdo
file. The corresponding.casmt
should be in the same directory.