# 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
