PMXUtil

Crates.ioPMXUtil
lib.rsPMXUtil
version0.9.0
sourcesrc
created_at2020-03-27 16:06:05.836885
updated_at2022-02-19 19:11:34.649584
descriptionA simple pmx reader and writer
homepage
repositoryhttps://github.com/t18b219k/PMXUtil
max_upload_size
id223551
size108,003
Kenta Kasahara (KentaTheBugMaker)

documentation

https://docs.rs/PMXUtil

README

PMXUtil

A PMX reader and writer written in Rust

What can this crate do

all of pmx related jobs.

Conformance Test

PMX 2.0 I/O tested by

  1. read original file and write it to another file
  2. compare these file by cargo test
  3. compare these file by WinMerge

WIP

  • improving docs

How to Use

Create reader instance and read

let mut loader= ModelInfoStage::open("/path/to/pmxfile").unwrap();
let header = loader.get_header();
println!("{:#?}", header);
let (model_info, ns) = loader.read_pmx_model_info();
print!("{:#?}", model_info);
let (vertices, ns) =ns.read_pmx_vertices();
print!("{}", vertices);
let (faces, ns) = ns.read_pmx_faces();
println!("{}", faces);
let (textures, ns) = ns.read_texture_list();
println!("{}", textures);
let (materials, ns) = ns.read_pmx_materials();
println!("{:#?}", materials);

Create Writer instance and write

you can choose text encoding UTF-8 or UTF-16LE but MMD only support UTF-16LE.

        use pmx_util::writer::Writer;
        let mut writer =Writer::begin_writer("/path/to/pmxfile").unwrap();
        writer.set_model_info(
            &ModelInfo{
                name:"A Model Name in your local language".to_owned()
                name_en:"A Model Name in english".to_owned()
                comment:"Comment in you local language".to_owned()
                comment_en:"Comment in english".to_owned()
            }
        );
        writer.add_vertices(&vertices);
        writer.add_faces(&faces);
        writer.add_textures(&textures);
        writer.add_materials(&materials);
        writer.add_bones(&bones);
        writer.add_morphs(&morphs);
        Writer::write(writer);

Note

more example for https://github.com/t18b219k/n_pmx_viewer

Commit count: 52

cargo fmt