From 331caf417aed186e4f3f2c0159ca4f51f33eb160 Mon Sep 17 00:00:00 2001 From: irrlicht Date: Wed, 2 Sep 2026 00:53:29 +0200 Subject: [PATCH] Blender-Welten aus der .blend im Map-Ordner bauen MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Analog zur Ink-Pipeline: eine .blend neben ihrer .glb im Map-Ordner (assets/maps//.blend) wird von tools/build-models.sh headless zu .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 Claude-Session: https://claude.ai/code/session_0196AM4UyAJEXVtPvp5DdKr8 --- README.md | 4 + artist.md | 26 +++--- .../cinema/cinema.blend} | Bin 4932911 -> 4697105 bytes assets/maps/cinema/cinema.glb | Bin 2836972 -> 2816696 bytes build.rs | 85 ++++++++++------- tools/README.md | 26 ++++++ tools/build-models.sh | 86 ++++++++++++++++++ 7 files changed, 185 insertions(+), 42 deletions(-) rename assets/{Models/cinema/cinema/Cinemaroom.blend => maps/cinema/cinema.blend} (68%) create mode 100755 tools/build-models.sh diff --git a/README.md b/README.md index c4a185f..46bf032 100644 --- a/README.md +++ b/README.md @@ -18,3 +18,7 @@ Alternativ ohne Fenster/GPU in der Konsole: `cargo run -- --cli` Ein anderes Welt-Verzeichnis laden (Default `assets/maps/props/`): `cargo run -- --maps ` (Pfad relativ zum aktuellen Verzeichnis). + +Assets (Ink-Dialoge, Blender-Welten) baut `cargo build` bei Bedarf selbst, +sofern die Werkzeuge da sind (`inklecate` liegt bei, Blender über `$BLENDER` +oder `PATH`). Ohne sie werden die eingecheckten `.ink.json` / `.glb` benutzt. diff --git a/artist.md b/artist.md index fb9d84f..093ba01 100644 --- a/artist.md +++ b/artist.md @@ -5,20 +5,22 @@ Start in der Konsole gemeldet (`[model]`, `[audio]`, `[tex]`, …). ## 3D / Blender -- **Format:** glTF Binary (`.glb`) nach `assets/maps/props/` — alle Dateien - dort werden beim Start geladen (anderer Ordner: `cargo run -- --maps `). -- **Beim Export anhaken:** „Include → Custom Properties" (sonst fehlen die - Properties unten) **und** „Include → Textures" / „Data → Images" - (sonst fehlen die Texturen). +- **Ablage:** die `.blend` in ihren Map-Ordner legen — + `assets/maps//.blend`. `cargo build` (oder + `./tools/build-models.sh`) exportiert sie zu `.glb` daneben; von + Hand exportieren musst du nichts. Die Welt sind alle `.glb` unter + `assets/maps/props/`; ein anderer Ordner per `cargo run -- --maps `. - **Maßstab:** 1 Blender-Meter = 1 Engine-Meter. Augenhöhe 1,6 m, Türen/Durchgänge ≥ 2 m hoch und ≥ 0,8 m breit denken. -- **Texturen:** Bild im Material als Base Color zuweisen — es wird beim - Export in die `.glb` eingebettet und mitgeladen (kein `assets/textures/` - mehr). Format **PNG** (Export „Images: PNG" oder „Automatic"). Fehlt das - Bild, erscheint die Platzhalter-Textur. +- **Texturen:** Bild im Material als Base Color zuweisen (PNG) — es wird + beim Export in die `.glb` eingebettet. Damit die Datei self-contained + bleibt: „File → External Data → Pack Resources". Fehlt das Bild, + erscheint die Platzhalter-Textur. - **Kacheln / Skalieren:** über einen **Mapping-Node** vor dem Image-Texture-Node (Location/Scale). Die Engine backt das (`KHR_texture_transform`) beim Laden in die UVs ein. +- **Custom Properties** (unten) kommen automatisch mit; Modifier werden + beim Export angewandt. ### Custom Properties auf Mesh-Objekten @@ -72,8 +74,10 @@ Start in der Konsole gemeldet (`[model]`, `[audio]`, `[tex]`, …). ## Testen -- `cargo run` — Konsole zeigt beim Start, was ankam: Objekte, Dreiecke, - Empties und **jede Custom Property**. Fehlt eine → Export-Haken prüfen. +- `cargo run` — baut geänderte `.blend` neu und zeigt beim Start, was + ankam: Objekte, Dreiecke, Empties und **jede Custom Property**. Fehlt + eine, sitzt sie in Blender nicht am Objekt (Object Properties → Custom + Properties), nicht am Mesh-Data. - Im Spiel (Konsole = das Terminal, aus dem gestartet wurde): `noclip` zum freien Fliegen, `kv` zeigt alle Variablen, `signal ` feuert jedes Signal von Hand, `reload` lädt signals.toml neu. diff --git a/assets/Models/cinema/cinema/Cinemaroom.blend b/assets/maps/cinema/cinema.blend similarity index 68% rename from assets/Models/cinema/cinema/Cinemaroom.blend rename to assets/maps/cinema/cinema.blend index b4379aac8b8d7fa84af0c4d677463386cf0a61e7..736efdd57704de55b7463c8edff1cdc709644a5c 100644 GIT binary patch delta 122619 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 delta 151620 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 JUjB9c{{mCNr=V_x)5Xc|~ z$mS9q8vnp(&Cb@f#POdH5@3IH32_Z7CZZY4fFTlr#6NY3{4otgt>^LD(vj^CU-Ef5 z=ic-Eo^#*L`#p7*&Mlvzb$j>i7?cPha}T1VwfB78d&Bjn9yf)m>6)o0427$5YU`os z><`0f*X;O_{V&YE{mpYfrVjqv4p%1VSvWI6yWkd35B%~OZGd-x#vnF@(HziF>ds{k z9L-X1>d(tz_zP$l4rFN^_@`+#?46{q!84O6AI(xv>h{k;n4hF^_;;EHp)g4sA)iLG z{wa*gstAwkLf5!%a4t06l!fSv@whA}jD!$4tw?ZP<{I3XqTAv9sY>@qy5#;=y5#}ywc^n%rBhh*-8+q&wlu*xhfBRu5L{8I*@rhRl#w?_Iy%M{H+;aN65>Fd zhzoHeRY)~bgLn`xQj7SII%FNW5yYCUH^-vU^MwtuE4zRWz#UyEY<9}U#!nsAGv{q4rb&sAkYVvS*fOWy00VY?MO5oZ6 zYh7Q;EQu{?IkAZyb|gP~wdYwm zd?8=Rh4PQbrxsh1*7{MbStEwu2H8uS7ETz+(PGhRvDLs@KVEFMN({#~vu*IxhczZ_ zYjXL(Kg4SL3d1A$PecBBJok!^xhvqfc)RfK!%HaDK*x1wYxRn(wv<`=iL9#;7KWG) jazkvX-9c)}I^sYG@e?2M;M+s0h?7tfAWryt3+w$4A}ip^ delta 21756 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

KUjoW`v!puSKwRY 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 diff --git a/build.rs b/build.rs index c66fae2..ceeddbb 100644 --- a/build.rs +++ b/build.rs @@ -1,59 +1,82 @@ -//! Build-Hook: kompiliert geänderte Ink-Dialoge automatisch beim Cargo-Build. +//! Build-Hook: baut geänderte Assets automatisch beim Cargo-Build. //! -//! Reines „Wann"-Stück — das eigentliche Bauen macht `tools/build-dialogues.sh` -//! (und bleibt von Hand aufrufbar). Hier melden wir Cargo nur, wann es uns -//! erneut ausführen soll, und stoßen das Skript an. +//! Reines „Wann"-Stück — das eigentliche Bauen machen die Skripte unter +//! `tools/` (und bleiben von Hand aufrufbar). Hier melden wir Cargo nur, wann +//! es uns erneut ausführen soll, und stoßen die Skripte an: +//! +//! * `build-dialogues.sh` — `.ink` → `.ink.json` (inklecate) +//! * `build-models.sh` — `assets/maps/**/*.blend` → `.glb` (Blender) //! //! Cargo führt build.rs ausschließlich dann erneut aus, wenn eine der unten //! via `rerun-if-changed` gemeldeten Dateien sich ändert. Unveränderte -//! Rebuilds kosten also nichts; nur nach einer `.ink`-Änderung läuft -//! inklecate (inkrementell nur für die betroffene Datei). +//! Rebuilds kosten also nichts; nur nach einer Quell-Änderung läuft das +//! jeweilige Werkzeug (beide Skripte bauen intern inkrementell). -use std::path::Path; +use std::path::{Path, PathBuf}; use std::process::Command; fn main() { - let root = env!("CARGO_MANIFEST_DIR"); - let script = Path::new(root).join("tools/build-dialogues.sh"); - let ink_dir = Path::new(root).join("assets/interactions"); + let root = PathBuf::from(env!("CARGO_MANIFEST_DIR")); - // Wann soll Cargo build.rs erneut ausführen? + // --- Ink-Dialoge ------------------------------------------------------ println!("cargo:rerun-if-changed=tools/build-dialogues.sh"); println!("cargo:rerun-if-changed=tools/inklecate"); // Verzeichnis-mtime fängt neu hinzugekommene/gelöschte .ink-Dateien. println!("cargo:rerun-if-changed=assets/interactions"); - // Inhaltsänderungen einzelner .ink-Dateien einzeln melden. - if let Ok(entries) = std::fs::read_dir(&ink_dir) { - for entry in entries.flatten() { - let p = entry.path(); - if p.extension().and_then(|s| s.to_str()) == Some("ink") { - println!("cargo:rerun-if-changed={}", p.display()); - } + watch_ext(&root.join("assets/interactions"), "ink"); + run_script(&root, "tools/build-dialogues.sh", "Dialog"); + + // --- Blender-Welten ------------------------------------------------- + println!("cargo:rerun-if-changed=tools/build-models.sh"); + // Ordner-mtime fängt neue/gelöschte Maps; die .blend selbst einzeln. + // Die erzeugten .glb werden NICHT beobachtet (das Skript schreibt sie). + watch_dirs_and_ext(&root.join("assets/maps"), "blend"); + run_script(&root, "tools/build-models.sh", "Modell"); +} + +/// Jede Datei mit Endung `ext` direkt in `dir` einzeln bei Cargo anmelden. +fn watch_ext(dir: &Path, ext: &str) { + let Ok(entries) = std::fs::read_dir(dir) else { return }; + for entry in entries.flatten() { + let p = entry.path(); + if p.extension().and_then(|s| s.to_str()) == Some(ext) { + println!("cargo:rerun-if-changed={}", p.display()); } } +} - // Skript ausführen. Ausgabe einsammeln, damit ein Dialog-Fehler sichtbar - // wird (Cargo blendet Build-Script-stdout sonst aus). +/// Wie [`watch_ext`], aber rekursiv — und jedes Unterverzeichnis wird selbst +/// beobachtet (fängt neu angelegte/entfernte Maps). +fn watch_dirs_and_ext(dir: &Path, ext: &str) { + let Ok(entries) = std::fs::read_dir(dir) else { return }; + println!("cargo:rerun-if-changed={}", dir.display()); + for entry in entries.flatten() { + let p = entry.path(); + if p.is_dir() { + watch_dirs_and_ext(&p, ext); + } else if p.extension().and_then(|s| s.to_str()) == Some(ext) { + println!("cargo:rerun-if-changed={}", p.display()); + } + } +} + +/// Ein `tools/`-Skript laufen lassen. Ausgabe einsammeln (Cargo blendet +/// Build-Script-stdout sonst aus); Fehlschlag ist fatal, ein nicht startbares +/// bash nur eine Warnung — die committeten Artefakte reichen dann. +fn run_script(root: &Path, rel: &str, label: &str) { + let script = root.join(rel); match Command::new("bash").arg(&script).output() { - Ok(out) if out.status.success() => { /* still bei Erfolg */ } + Ok(out) if out.status.success() => { /* still bei Erfolg — Detail via Hand-Aufruf */ } Ok(out) => { let stdout = String::from_utf8_lossy(&out.stdout); let stderr = String::from_utf8_lossy(&out.stderr); for line in stdout.lines().chain(stderr.lines()) { println!("cargo:warning={line}"); } - panic!( - "Dialog-Build fehlgeschlagen — siehe Warnungen oben. \ - Einzeln debuggen: ./tools/build-dialogues.sh" - ); + panic!("{label}-Build fehlgeschlagen — siehe Warnungen oben. Einzeln debuggen: ./{rel}"); } Err(e) => { - // bash/Skript nicht startbar (z.B. fremdes OS): den Build nicht - // blockieren, nur warnen — die committeten .ink.json reichen. - println!( - "cargo:warning=Dialog-Build übersprungen ({e}). \ - Bei Bedarf von Hand: ./tools/build-dialogues.sh" - ); + println!("cargo:warning={label}-Build übersprungen ({e}). Bei Bedarf von Hand: ./{rel}"); } } } diff --git a/tools/README.md b/tools/README.md index 837223b..3aa5d14 100644 --- a/tools/README.md +++ b/tools/README.md @@ -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//.blend` — Skript laufen lassen, fertig. Die +`.glb` landen direkt daneben (`assets/maps//.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. diff --git a/tools/build-models.sh b/tools/build-models.sh new file mode 100755 index 0000000..50e851f --- /dev/null +++ b/tools/build-models.sh @@ -0,0 +1,86 @@ +#!/usr/bin/env bash +# +# Exportiert alle Blender-Welten unter assets/maps/ zu den .glb, die das +# Spiel lädt. +# +# Für die Autorin: Leg deine .blend in den jeweiligen Map-Ordner +# assets/maps//.blend +# und führ danach dieses Skript aus: +# ./tools/build-models.sh +# Fertig — die .glb landen direkt daneben (assets/maps//.glb). +# +# Standardmäßig wird nur exportiert, was sich seit dem letzten Mal geändert +# hat. Mit -f / --force wird alles neu gebaut. +# +# Tipp: in Blender „File -> External Data -> Pack Resources", dann sind die +# Texturen in der .blend und der Export ist self-contained. + +set -euo pipefail + +# Repo-Wurzel relativ zum Skript bestimmen — egal, von wo aufgerufen. +script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +root="$(cd "$script_dir/.." && pwd)" +maps_dir="$root/assets/maps" + +force=0 +case "${1:-}" in + -f|--force) force=1 ;; + "") ;; + *) echo "Unbekannte Option: $1 (nur -f/--force)" >&2; exit 2 ;; +esac + +# blender finden: $BLENDER -> PATH. Bundeln geht nicht (zu groß) — fehlt es, +# ist das kein Fehler: die committeten .glb reichen zum Bauen und Spielen. +if [ -n "${BLENDER:-}" ] && [ -x "$BLENDER" ]; then + blender="$BLENDER" +elif command -v blender >/dev/null 2>&1; then + blender="$(command -v blender)" +else + echo " übersprungen blender nicht gefunden (\$BLENDER oder PATH) — .glb bleiben wie committet" >&2 + exit 0 +fi + +if [ ! -d "$maps_dir" ]; then + echo "Kein Map-Ordner: $maps_dir" >&2 + exit 1 +fi + +# Der Export als Python-Einzeiler. filepath ohne Endung — export_format='GLB' +# hängt .glb an. export_extras trägt collide/signal/role mit. +gltf_expr=' +import bpy, sys +out = sys.argv[-1] +bpy.ops.export_scene.gltf( + filepath=out, + export_format="GLB", + export_extras=True, + export_yup=True, + export_apply=True, + export_image_format="AUTO", +)' + +built=0 skipped=0 failed=0 +while IFS= read -r -d '' src; do + out="${src%.blend}.glb" + rel="${src#"$root"/}" + + # Inkrementell: überspringen, wenn .glb existiert und neuer ist. + if [ "$force" -eq 0 ] && [ -f "$out" ] && [ "$out" -nt "$src" ]; then + printf ' aktuell %s\n' "$rel" + skipped=$((skipped + 1)) + continue + fi + + if log="$("$blender" -b --factory-startup "$src" \ + --python-expr "$gltf_expr" -- "${out%.glb}" 2>&1)"; then + printf ' gebaut %s\n' "$rel" + built=$((built + 1)) + else + printf ' FEHLER %s\n' "$rel" + printf '%s\n' "$log" | sed 's/^/ /' + failed=$((failed + 1)) + fi +done < <(find "$maps_dir" -type f -name '*.blend' -print0 | sort -z) + +echo "—— $built gebaut, $skipped aktuell, $failed fehlgeschlagen ——" +[ "$failed" -eq 0 ]