Blender-Welten aus der .blend im Map-Ordner bauen

Analog zur Ink-Pipeline: eine .blend neben ihrer .glb im Map-Ordner
(assets/maps/<map>/<name>.blend) wird von tools/build-models.sh headless
zu <name>.glb exportiert, inkrementell per mtime. build.rs stößt das beim
cargo-Build an, sobald sich eine .blend geändert hat.

- Export: blender -b --factory-startup ... export_scene.gltf mit
  export_extras (collide/signal/role), export_apply, yup, image AUTO.
- Blender über $BLENDER oder PATH; fehlt es, wird der Schritt still
  übersprungen — die committeten .glb reichen zum Bauen/Spielen.
- Ein Export-Fehler bei vorhandenem Blender ist fatal (wie bei Ink).
- build.rs teilt sich jetzt run_script/watch-Helfer für beide Pipelines.
- Cinemaroom.blend -> assets/maps/cinema/cinema.blend verschoben und die
  .glb einmal daraus gebaut.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0196AM4UyAJEXVtPvp5DdKr8
This commit is contained in:
irrlicht
2026-09-02 00:53:29 +02:00
co-authored by Claude Sonnet 5
parent f51f4e83fd
commit 331caf417a
7 changed files with 185 additions and 42 deletions
+26
View File
@@ -27,3 +27,29 @@ Das Skript sucht den Ink-Compiler in dieser Reihenfolge:
1. `$INKLECATE` (Pfad zum Binary)
2. `tools/inklecate` (mitgeliefert)
3. `inklecate` im `PATH`
## build-models.sh
Exportiert die Blender-Welten zu den `.glb`, die das Spiel lädt.
```sh
./tools/build-models.sh # nur Geändertes neu bauen
./tools/build-models.sh -f # alles neu bauen
```
Workflow für die Autorin: `.blend` in den jeweiligen Map-Ordner legen —
`assets/maps/<map>/<name>.blend` — Skript laufen lassen, fertig. Die
`.glb` landen direkt daneben (`assets/maps/<map>/<name>.glb`) und werden
mit ins Repo eingecheckt, damit ein frischer Clone ohne Blender spielbar
ist. Ein `.glb` ohne `.blend` daneben (z.B. `props/testscene.glb`) bleibt
unangetastet.
**Automatisch beim Build:** `cargo build`/`cargo run` ruft dieses Skript
über `build.rs` selbst auf, sobald sich eine `.blend` geändert hat.
Blender wird über `$BLENDER` oder den `PATH` gefunden. Fehlt es, wird der
Schritt übersprungen (kein Fehler — die committeten `.glb` reichen).
Bundeln geht nicht, dafür ist Blender zu groß.
Tipp: in Blender „File → External Data → Pack Resources", dann liegen die
Texturen in der `.blend` und der Export ist self-contained.