Skip to main content

mmd_anim_format/
lib.rs

1//! Runtime-only PMX/VMD binary importer.
2//!
3//! This crate scans PMX/VMD sections and extracts only the runtime-required
4//! data into `mmd-anim-runtime` arenas and clips. It does not retain a full
5//! PMX/VMD object graph — mesh, material, texture, toon, display-frame UI,
6//! rigid body, joint, and soft-body metadata are dropped during import.
7
8mod binary;
9pub mod error;
10#[cfg(feature = "fbx")]
11pub mod fbx;
12pub mod format;
13pub mod nmd;
14pub mod normalize;
15pub mod pmd;
16pub mod pmm;
17pub mod pmx;
18mod sjis;
19pub mod vmd;
20pub mod vpd;
21pub mod xfile;
22
23pub use format::{MmdFormatKind, detect_mmd_format, sniff};
24pub use nmd::{NmdParsedManifest, parse_nmd_manifest};
25pub use normalize::normalize_vmd_name;
26pub use pmd::{
27    PmdParsedModel, PmdRuntimeImport, export_pmd_model, import_pmd_runtime, parse_pmd_model,
28};
29pub use pmm::{
30    PmmDocumentClipBuildError, PmmParsedManifest, PmmSceneExportOptions, PmmSceneExportReport,
31    build_pmm_document_model_clip, export_pmm_manifest, export_pmm_scene_from_pmx_vmd,
32    normalize_pmm_model_item_name, parse_pmm_manifest,
33};
34pub use pmx::{
35    PmxBoneImport, PmxMaterialSplit, PmxMaterialSplitManifest, PmxMaterialSplitManifestMesh,
36    PmxMaterialSplitMesh, PmxMaterialSplitMorphIndexMap, PmxMaterialSplitResult, PmxMorphNames,
37    PmxParsedModel, PmxPartsBoneDescriptor, PmxPartsDescriptor, PmxPartsDisplayFrameDescriptor,
38    PmxPartsDisplayFrameItem, PmxPartsGroupMorphOffset, PmxPartsIndexSizes, PmxPartsInput,
39    PmxPartsJointDescriptor, PmxPartsMaterialDescriptor, PmxPartsMaterialFlags,
40    PmxPartsMorphDescriptor, PmxPartsRigidBodyDescriptor, PmxPartsVertexMorphOffset, PmxRigSpec,
41    PmxRigSpecBone, PmxRigSpecGrant, PmxRigSpecIkChain, PmxRigSpecIkLink, PmxRigSpecLocalAxis,
42    PmxRuntimeImport, build_pmx_model_from_parts, export_pmx_model, import_pmx_model,
43    import_pmx_runtime, parse_pmx_material_split, parse_pmx_model, parse_pmx_rig_spec,
44    split_pmx_model_by_material, validate_pmx_export_model,
45};
46pub use vmd::{
47    VmdCameraState, VmdClipBuildError, VmdClipBuildOptions, VmdExportMorphKind, VmdExportName,
48    VmdIkEntry, VmdImportResult, VmdLightState, VmdParsedAnimation, VmdPoseExport,
49    VmdPoseExportBindings, VmdPoseExportError, VmdPoseExportReport, VmdPropertyIkFrame,
50    VmdSelfShadowState, build_clip_from_import, build_mmd_registered_pair_clip,
51    build_mmd_registered_pair_clip_with_options, build_pair_clip, build_pair_clip_with_options,
52    build_property_binding_with_ik_resolver, export_reduced_pose_to_vmd, export_vmd_animation,
53    import_vmd_motion, parse_vmd_animation, sample_vmd_camera_frames, sample_vmd_light_frames,
54    sample_vmd_self_shadow_frames,
55};
56pub use vpd::{VpdParsedPose, export_vpd_pose, parse_vpd_pose};
57pub use xfile::{AccessoryParsedManifest, export_accessory_manifest, parse_accessory_manifest};