1e51ef7def
- Konzept/, didaktik_geografie/, didaktik_simulation/, v2-modules/, v2-platform/ - 12 code-workspace-Files - STATUS-*.md - viele M/D/R-Änderungen an bereits getrackten Files - .gitignore verstärkt: **/.humaninput/, **/secret_keys.txt Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
196 lines
7.2 KiB
Markdown
196 lines
7.2 KiB
Markdown
# Heli-Audio-Drehbuch — Regelwerk V3
|
||
|
||
Stand: 2026-05-31 · Atlas · Status: aktives Konzept
|
||
|
||
## Zweck
|
||
|
||
Akustische Inszenierung jeder Heli-Mission, die **schnellen wie langsamen Spielern** gerecht wird — ohne Audio-Inhalt zu verlieren.
|
||
|
||
## Designkonflikt (aus V1 gelernt)
|
||
|
||
Bei M1 Damüls dauerte das Plan-Audio fast 2 Minuten. Thomas hat die Routenplanung in 15 Sekunden geklickt. → Audios kommen entweder nie zum Spielen oder spielen lange nach Plan-Ende weiter. **Beides falsch.**
|
||
|
||
## Lösung V3 — Skip + Nachhol
|
||
|
||
**Grundregel:** Audios werden **nie gekürzt** (Inhalt bewahren). Aber:
|
||
- Übersprungene Audios werden in eine **Nachhol-Queue** gepackt
|
||
- In den natürlichen Pausen (Abflug / Flug / Anflug) werden sie nachgeholt — mit Vorab-Text „Übrigens, beim Überflug von X …"
|
||
- Wenn die Nachhol-Queue zu lang ist, wird das Flugtempo **automatisch gedrosselt**
|
||
|
||
## Architektur
|
||
|
||
### 1. Mission-Eröffnung (kompakt, ~12 s)
|
||
|
||
NEU: `r_mission_intro_<mid>` ersetzt die alten langen `r_mission_geo_<mid>` + `r_mission_start_<mid>` in der Plan-Phase.
|
||
|
||
Inhalt:
|
||
- Notfall-Art + Ort (1 Satz)
|
||
- Stützpunkt + Ziel
|
||
- Hinweis aufs Ziel-Marker („auf der Karte rot markiert")
|
||
- Bereitschafts-Frage / Tower-Übergabe
|
||
|
||
Beispiel M1: *„Notarzteinsatz Skiunfall Damüls. Wir starten in Nenzing, unser Ziel ist die Bergrettung Damüls — auf der Karte rot markiert. Tower an Crew: bereit zur Routenplanung?"*
|
||
|
||
### 2. Routenplanung (schlank)
|
||
|
||
Pro Wegpunkt:
|
||
- **Tower funkt den Wegpunkt** (kombiniert mit Geo-Info, max ~5 s)
|
||
- Beispiel: *„Weiter über Thüringen — Walgauer Gemeinde am Eingang zum Großen Walsertal."*
|
||
- **Klick richtig:** Klickgeräusch (200 ms), KEIN Audio
|
||
- **Klick falsch:** Kurzer Pilot-Hinweis (max 3 s)
|
||
- *„Nicht ganz — weiter östlich."*
|
||
|
||
**Skip-Mechanik:**
|
||
- Wenn Spieler **klickt während Audio noch läuft**: Audio wird abgebrochen
|
||
- Wenn Spieler **richtigen Wegpunkt klickt obwohl Audio noch nicht gestartet**: Audio wird in `missedAudios`-Queue gepusht
|
||
- Tower-Audio für den nächsten Wegpunkt wird sofort gequeut
|
||
|
||
**Plan-Ende:**
|
||
- `r_nav_plan_done` (~5 s) — „Plan vollständig — Startfreigabe in Kürze."
|
||
|
||
### 3. Abflug-Phase (Cockpit)
|
||
|
||
Eigene Audios (Tower-Freigabe, Pilot-Bestätigung). Dazwischen Pausen → **erste Nachhol-Slots**.
|
||
|
||
### 4. Flug-Phase (Karten-Animation, längste Pause)
|
||
|
||
**Hauptzeit für Nachhol-Queue.** Plus:
|
||
- `r_nav_heli_intro_<key>` (Crew-Vorstellung der Region) — am Anfang
|
||
- `r_nav_altitude_*` (situativ)
|
||
- `r_nav_fuel_half` (Halbzeit)
|
||
- `r_im_zielgebiet` (kurz vor Landung)
|
||
|
||
**Tempo-Drossel:** wenn `missedAudios.length × 7s > flightDuration × 0.7` → `flightSpeed = 0.7x`
|
||
|
||
### 5. Ziel-Anflug + Landung
|
||
|
||
Letzte Nachhol-Items, dann Caution + Landung-Sequenz.
|
||
|
||
## Vorab-Text (5 rotierende Templates, Variante B)
|
||
|
||
5 kurze (~2 s) Intro-Audios, die VOR dem Original-Nachhol-Audio gespielt werden:
|
||
|
||
| Intro-ID | Text |
|
||
|---|---|
|
||
| `r_nachtrag_a` | *„Übrigens — kurzer Nachtrag noch."* |
|
||
| `r_nachtrag_b` | *„Da fällt mir noch etwas ein."* |
|
||
| `r_nachtrag_c` | *„Ich wollte dir noch sagen —"* |
|
||
| `r_nachtrag_d` | *„Ein kleiner Geo-Hinweis noch."* |
|
||
| `r_nachtrag_e` | *„Schau, was wir da gerade überflogen haben —"* |
|
||
|
||
Sequenz: `r_nachtrag_<x>` (2 s) → 0,5 s Pause → Original-Audio (5-10 s).
|
||
|
||
Im Funk-Pille zeigt sich ein Label „**Nachtrag**" statt der normalen Sprecher-Bezeichnung.
|
||
|
||
## Level-Mechanik (didaktische Tiefe)
|
||
|
||
| Level | Wegpunkt-Markierung | Tower-Anweisung | Audio-Menge |
|
||
|---|---|---|---|
|
||
| **L1** Einfach | Große rote Pulse-Marker, exklusiv | Wegpunkt-Name + Geo-Info | viel |
|
||
| **L2** Mittel | Kleine orange Marker unter Standard-POIs | Nur Wegpunkt-Name (keine Geo) | mittel |
|
||
| **L3** Schwer | NICHT markiert — verschmelzen mit allen POIs | Nur Richtungs-Hint („Richtung Süden") | wenig |
|
||
|
||
L2/L3 bauen wir später — V3 fokussiert auf L1.
|
||
|
||
## Audio-Slots pro Phase
|
||
|
||
### Phase 2 — PLANUNG
|
||
|
||
| Slot | Audio-ID | Dauer | Pflicht |
|
||
|---|---|---|---|
|
||
| Mission-Intro | `r_mission_intro_<mid>` | ~12 s | ✓ |
|
||
| Pro Wegpunkt (Tower+Geo) | `r_wp_geo_<wpkey>` | max 5 s | ✓ |
|
||
| Klick richtig | Klickgeräusch | 200 ms | ✓ |
|
||
| Klick falsch | `r_nav_plan_wrong_near/far` | max 3 s | optional |
|
||
| Plan-Ende | `r_nav_plan_done` | ~5 s | ✓ |
|
||
|
||
**Skipped Audios** → `game.missedAudios` Queue.
|
||
|
||
### Phase 3 — ABFLUG
|
||
|
||
| Slot | Audio-ID | Dauer |
|
||
|---|---|---|
|
||
| Tower-Startfreigabe | `r_tower_start_<helikey>` | ~8 s |
|
||
| Pilot-Bestätigung | `r_pilot_call_<helikey>` | ~6 s |
|
||
| Strike (situativ) | `r_tower_strike_<helikey>` | ~5 s |
|
||
| Übernahme (situativ) | `r_tower_handover_<helikey>` | ~8 s |
|
||
| Start erfolgreich | `r_start_erfolg` | ~5 s |
|
||
| **Nachhol-Slot** (in Pause) | `r_nachtrag_X` + queued | ~7-10 s |
|
||
|
||
### Phase 4 — FLUG
|
||
|
||
| Slot | Audio-ID | Dauer |
|
||
|---|---|---|
|
||
| Crew-Vorstellung | `r_nav_heli_intro_<key>` | ~12 s |
|
||
| Höhen-Info | `r_nav_altitude_mountain/valley` | ~6 s |
|
||
| Treibstoff | `r_nav_fuel_half` | ~5 s |
|
||
| Wetter (situativ) | `r_nav_weather_enter` | ~7 s |
|
||
| **Nachhol-Slots** (Hauptzeit) | `r_nachtrag_X` + queued | ~7-10 s each |
|
||
| Im Zielgebiet | `r_im_zielgebiet` | ~6 s |
|
||
|
||
### Phase 5 — RETTUNG (LANDUNG)
|
||
|
||
| Slot | Audio-ID | Dauer |
|
||
|---|---|---|
|
||
| Anflug | `r_land_approach` | ~7 s |
|
||
| Caution | `r_caution_<scen>` | ~8 s |
|
||
| Winde runter | `r_land_winch_down` | ~5 s |
|
||
| Retter unten | `r_land_rescuer_down` | ~6 s |
|
||
| Warteschleife (Filler) | `r_warteschleife` | ~5 s |
|
||
| Patient versorgt | `r_land_rescuer_ready` | ~5 s |
|
||
| Patient an Bord | `r_patient_aboard` | ~5 s |
|
||
| Kurs Klinik | `r_kurs_klinik` | ~6 s |
|
||
|
||
### Phase 6 — AUSWERTUNG
|
||
|
||
| Slot | Audio-ID |
|
||
|---|---|
|
||
| Mission erfolgreich | `r_mission_success` |
|
||
|
||
## Was muss neu produziert werden
|
||
|
||
### Neue Audio-Texte (TTS-Run nötig)
|
||
|
||
1. **5 Vorab-Intros** (Variante B):
|
||
- `r_nachtrag_a`, `r_nachtrag_b`, `r_nachtrag_c`, `r_nachtrag_d`, `r_nachtrag_e`
|
||
2. **5 fehlende WP-Geo-Audios** (aus Validator-Bericht):
|
||
- `r_wp_geo_zwischenwasser` (M1)
|
||
- `r_wp_geo_felswand_raetikon` (M3)
|
||
- `r_wp_geo_bodensee_bregenz` (M5)
|
||
- `r_wp_geo_schlucht_mellau` (M6)
|
||
- `r_wp_geo_kaiser_kufstein` (M7)
|
||
3. **25 Mission-Intros** (NEU):
|
||
- `r_mission_intro_m1` bis `r_mission_intro_m25`
|
||
|
||
### Re-Generation existierender Audios
|
||
|
||
- Alle 16 `r_tower_handover_*` und `r_mission_abort` → „Chefpilotin"-Text
|
||
- `r_caution_berg_fels`, `r_caution_berg_fels_m` → „kann Steinschlag verursachen"
|
||
- 13 audio-texts.json-Einträge mit ASCII-Umlauten
|
||
- 14 `r_pilot_call_*` mit Marlene-Stimme statt verschiedener Pilot:innen
|
||
|
||
**Schätzung Total:** ca. 70 MP3-Generierungen, Kosten ~3-5 €.
|
||
|
||
## Aufwandsplanung
|
||
|
||
| Phase | Aufwand | Wer |
|
||
|---|---|---|
|
||
| Audio-Texte schreiben (5+5+25 = 35 Texte) | 1-2 h | Atlas |
|
||
| Texte mit Thomas reviewen | 1 h | gemeinsam |
|
||
| Code: Skip-Detection + missedAudios-Queue | 2 h | Atlas |
|
||
| Code: Pump-Logik in Flight/Landing | 1 h | Atlas |
|
||
| Code: Vorab-Intro-Logik (Variante B) | 1 h | Atlas |
|
||
| Code: Tempo-Drossel | 30 min | Atlas |
|
||
| TTS-Run für alle neuen + gefixten Audios | 30 min + ~5 € | Atlas (Skript) |
|
||
| Test gemeinsam | 1-2 h | gemeinsam |
|
||
| **TOTAL** | ~8-10 h | |
|
||
|
||
## Status & nächste Schritte
|
||
|
||
- [x] Konzept V3 dokumentiert
|
||
- [ ] Audio-Texte entwerfen (35 Stück)
|
||
- [ ] Thomas-Review der Texte
|
||
- [ ] Code-Implementierung (Skip + Nachhol + Tempo + Vorab-Intro)
|
||
- [ ] TTS-Run
|
||
- [ ] Test
|