Files
chameleon/Docs/GAME_DESIGN.md
T
adminandClaude Opus 4.8 3b26f2e622 Add per-pose fall animation state and clip
Play a dedicated falling animation when the player is airborne and
descending past a scale-aware velocity threshold.

- PlayerCharacterController: new IsFalling state + Fall Animation Speed
  threshold (true only when !grounded && !wallClimbing && descending,
  scaled via CapsuleScale); explicitly false during wall/ceiling climb.
- PlayerPose: per-pose Fall Clip + Fall Clip Speed (mirrors walk/run).
- PlayerPoseController: select the fall clip while falling, fall back to
  the idle clip when a pose has none (no regression).
- Author content: Paintman-Fall.anim assigned to Pose_Idle; UMotion
  project, Player prefab and scene authoring.
- Docs: check off the fall animation in GAME_DESIGN.md.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 13:49:16 +02:00

132 lines
6.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Chameleon — Game Design & Fortschritt
> Lebendes Dokument. Checkliste, was wir schon haben und was noch fehlt.
> Vorbild: **Meccha Chameleon** — aber **kein 1:1-Klon**. Wir picken die Mechaniken,
> die uns gefallen, und lassen den Rest weg oder machen es anders.
---
## 1. Referenz: Was ist Meccha Chameleon?
Online-PvP-Versteckspiel (Hide & Seek), 2–10 Spieler. Kurzüberblick der Mechaniken
(Quellen: Wikipedia, Steam-Store-Seite, Stand der Recherche):
- **Hider:** Bemalt seinen anfangs **reinweißen** Chamäleon-Körper, um mit der Umgebung
zu verschmelzen. Werkzeuge: **Farbrad** + **Pipette (Eyedropper)** zum Aufnehmen von
Umgebungsfarben. Zusätzlich **Posen** (z. B. zusammenrollen, hinlegen), um die Silhouette
an Objekte anzupassen. „Versteck, Pose und vor allem die malerische Geschicklichkeit" sind
der Schlüssel.
- **Seeker/Hunter:** Muss **alle Hider im Zeitlimit** finden. Hider können „taunten"
(pfeifen), um sich verräterisch bemerkbar zu machen; optional **erzwungenes Taunting**
in Intervallen.
- **Modi:** Standard-Hide-and-Seek, **Infection** (Gefangene wechseln die Seite), u. a.
- **Struktur:** Runden mit Zeitlimit, Sieg der Seeker, wenn alle gefunden wurden.
- Empfohlen **2–10 Spieler**, reines **Online-PvP**. Keine nennenswerten
Progressions-/Kosmetik-Systeme in der Store-Beschreibung erwähnt.
---
## 2. Unsere Vision (Abgrenzung)
- **Behalten / Stärke ausbauen:** das **Bemalen** als Kern-Mechanik (haben wir bereits,
sogar nahtfreies Mesh-Painting auf 3D) + **Bewegung über das Gewöhnliche hinaus**
(Wand-Klettern/Mantle ist bei uns schon drin und geht über Meccha Chameleon hinaus).
- **Entschieden:**
- **Reines Multiplayer-PvP.** Kein Singleplayer/PvE, keine Seeker-KI — Hider und Seeker
sind immer menschliche Spieler.
- **Keine automatische Tarnungs-Bewertung.** Wie gut eine Bemalung tarnt, entscheidet
allein das Auge des Seekers — das Spiel misst/wertet die Tarnung nicht.
- **Noch offen / Geschmacksfrage** (bitte hier markieren, was dir an Meccha Chameleon (nicht) gefällt):
- Posen-System ja/nein?
- Taunt/Pfeifen ja/nein?
> **TODO (User):** Hier eintragen, was dir bei Meccha Chameleon gefällt und was nicht — danach
> schärfen wir Scope & Reihenfolge.
---
## 3. Checkliste — Was wir schon haben ✅
### Charakter & Bewegung
- [x] Third-Person **CharacterController** mit WASD-Bewegung (kamerarelativ)
- [x] **Sprung** + Schwerkraft
- [x] **Sprint** (Shift halten, eigener Speed-Multiplikator)
- [x] **Beschleunigung/Entschleunigung** (sanfter Anlauf/Ausrollen statt Snap)
- [x] **Slope-Sliding** (Abrutschen von zu steilen Flächen/Kanten)
- [x] **Wall-Climb**: Wände/Decken hochklettern (wand-relative Steuerung:
W ran/hoch, S weg+ablösen, A/D seitlich)
- [x] **Mantle / Top-Out**: über die Oberkante ziehen statt droppen, an steilen
Schrägen mit Aufwärts-Hop drüber (kein Kanten-Flackern)
- [x] **Animator-Anbindung**: `Running`-Bool wird bei Bodenbewegung gesetzt
### Posen & Charakter
- [x] **Posen-System** (zusammenrollen, hinlegen) zum Anpassen der Silhouette
- [x] Finales Charakter-Modell + Rig
- [x] Animationen (Klettern, Springen, Posen) — **Laufen** bereits über den
`Running`-Animator-Bool angebunden
- [x] **Fall-Animation**: eigene Pose-Animation beim Fallen (Abwärts-Velocity über
Schwellenwert, nicht am Boden; pro Pose authorbar mit Idle-Fallback)
### Bemalen (Kern der Camouflage-Idee)
- [x] **MeshPainter**: nahtfreies Bemalen direkt auf dem 3D-Mesh des Charakters
- [x] **GPU- und CPU-Pfad**, umschaltbar; Edge-Padding/Dilation gegen Naht-Linien
- [x] Pinsel: **Farbe**, **Größe**, Texturauflösung, Grundfarbe (Inspector)
- [x] Shader: `MeshPaintBrush.shader`, `MeshPaintDilate.shader`
- [x] **Farbwähler-UI** (Farbrad/Color-Picker) statt fester Inspector-Farbe
- [x] **Pipette / Eyedropper**: Umgebungsfarbe per Klick aufnehmen
- [x] Weitere Brushes (Größe per Hotkey/Slider, evtl. Muster/Texturen)
### Kamera
- [x] **Cinemachine** 3.1.7 Third-Person **Orbit-Kamera** (Maus)
- [x] Zoom (Mausrad, **interpoliert**), Kollisionsvermeidung (**Deoccluder**)
- [x] **Geglättete Orbit-Rotation** (Tiefpass auf das Maus-Delta)
- [x] Cursor-Lock/-Logik je nach Modus
### Spiel-Struktur / Tooling
- [x] **GameModeManager** (erweiterbare State-Machine, Tab schaltet um)
- [x] **Player-Control-Modus** (Laufen + Kamera per Maus)
- [x] **Paint-Modus** (kein Movement, Linksklick malt, Rechtsklick hält Kamera-Dreh)
- [x] **FrameRateLimiter** (FPS-Begrenzung, VSync-Handling)
- [x] Git initialisiert (Unity-`.gitignore` + `.gitattributes`), englische Commits
---
## 4. Checkliste — Was noch fehlt ❌
### Bemalen / Camouflage (höchste Priorität, ist unser Alleinstellungsmerkmal)
- [ ] Bemalung **zurücksetzen** / Undo
### Spielablauf (Hide & Seek)
- [ ] **Seeker/Hunter-Rolle** (immer menschlicher Spieler)
- [ ] **Runden-System**: Vorbereitungsphase (verstecken/bemalen) → Suchphase
- [ ] **Zeitlimit** + Timer-Logik
- [ ] **Sieg-/Niederlage-Bedingungen** (Seeker findet alle Hider im Zeitlimit — keine automatische Tarnungs-Wertung)
- [ ] **Taunt/Pfeifen** (optional, ggf. erzwungen) — falls gewünscht
- [ ] **Spielmodi**: Standard, Infection, ggf. eigene Ideen
### Multiplayer (Kern — reines Online-PvP, kein Singleplayer)
- [ ] **Netcode** (z. B. Netcode for GameObjects / Mirror / Photon)
- [ ] Lobby / Matchmaking / Host-Join
- [ ] Spieler-Synchronisation inkl. **Bemalung über das Netzwerk**
### Welt & Präsentation
- [ ] **Maps / Level-Design** (Verstecke, abwechslungsreiche Oberflächen/Farben)
- [ ] **UI/HUD**: Timer, Rollen-Anzeige, Farbwähler, Menüs, Ergebnis-Screen
- [ ] **Audio**: SFX (Pfeifen, Schritte, Klettern), Musik
- [ ] Beleuchtung / Art-Direction
---
## 5. Vorgeschlagene nächste Schritte (Reihenfolge zur Diskussion)
1. **Tarnung sichtbar machen:** Farbwähler-UI + Pipette → das Bemalen wird im Play-Mode
bedienbar (ohne Inspector). Macht den Kern sofort spielbar.
2. **Eine einfache Test-Map** mit unterschiedlich gefärbten Oberflächen zum Üben der Tarnung.
3. **Lokaler Gameplay-Loop zum Testen** (zweiter lokaler Controller als Seeker) +
Runden/Timer → erster echter Hide-&-Seek-Ablauf, noch ohne Netzwerk.
4. **Multiplayer-Netcode** angehen (Kern des Spiels): Lobby/Host-Join, Spieler- und
Bemalungs-Synchronisation.
> Reihenfolge bewusst so, dass wir früh etwas **Spielbares** haben, bevor wir uns an
> Netcode (aufwendig) binden.