Paperdoll Renderer
Desktopprogramma voor een paperdoll-project. Je bewaart een projectmap, leest modellen uit, en bekijkt een glTF-lichaam als bewegend 3D-model.
Rust 1.96.0 staat in rust-toolchain.toml. Voor het venster: pkg-config, libxcb1-dev, libx11-dev, libxkbcommon-dev, libxkbcommon-x11-dev en libgl1-mesa-dev.
cargo run
cargo run -- --preview-fixture
cargo run -- --status
cargo test --locked
--preview-fixture opent de preview met de testlichamen uit tests/fixtures/bodies/.
Project
Nieuw maakt een map met character.ppd, assets/body/, assets/equipment/, presets/, cache/ en renders/. Open leest een .ppd. Opslaan schrijft het bestand via een tijdelijk buurbestand.
In het bestand staan de projectnaam, de paden van het mannelijke en vrouwelijke model, de paden van equipment-presets, de uitvoermap, en breedte, hoogte en fps. Paden zijn relatief aan de projectmap. Een leeg geslachtsslot blijft leeg. Lees man en Lees vrouw tonen meshes, materialen, textures, joints en clips van glTF/GLB, FBX of OBJ+MTL.
3D-preview
Het middelste vlak tekent een geskind glTF/GLB-lichaam.
- Laad testlichamen zet de man en de vrouw uit de fixture in de view.
- 3D van project gebruikt de
.glb- of.gltf-paden van man en vrouw. - Man en Vrouw wisselen het lichaam. walk en attack wisselen de clip. Pauze / Speel zet de animatie stil of laat haar lopen.
- Sleep in het vlak om te draaien. Scroll om te zoomen.
- Yaw − en Yaw + stappen langs twaalf hoeken van 30°. pitch -30, pitch 0 en pitch 30 zetten de drie hoogtes. Yaw 0 kijkt op de voorkant; de testlichamen wijzen naar −Z.
Tests
cargo fmt --check
cargo clippy --workspace --all-targets --locked -- -D warnings
cargo test --workspace --locked
De testlichamen komen uit scripts/generate_test_bodies.py. Het FBX-bestand van de man komt uit scripts/convert_test_body_to_fbx.py met Blender.