Files
adminandClaude Fable 5 2ec4e147b9 Update docs: acoustic taunt/whistle is implemented
Taunt sound plays on every radar ping (sweep + self-ping) on all
clients as positional 3D audio; move it from open questions to done
in GAME_DESIGN.md and note it in the README match-loop bullet.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 19:14:24 +02:00

90 lines
4.6 KiB
Markdown

# Chameleon
A Unity online hide-and-seek game inspired by **Meccha Chameleon** — not a 1:1 clone.
Hiders paint their character directly on its 3D mesh to blend into the environment,
while hunters try to find them. Pure online PvP with an extended traversal kit
(run, jump, slope-slide, wall-climb, mantle).
> Status: playable multiplayer prototype. The core match loop works end-to-end
> (host/join, roles, phases, shooting/conversion, radar, result screen); what's
> left is mostly map design, audio and polish.
## Features so far
- **Seamless mesh painting** straight onto the character's 3D mesh (GPU + CPU path,
edge-dilation against seams, spherical brush with backface rejection, spray,
networked undo). Paintable **PBR channels**: albedo, metallic/smoothness and
height (relief normal + parallax shading).
- **Paint HUD** — HSV color picker, **eyedropper** (picks albedo/metallic/smoothness/
emission from the environment, incl. custom shaders), brush/channel toggles,
camo sliders (brightness/saturation) and a **painting library** (save/load/delete
named paintings, replicated to other players).
- **Pose system** — poses (curl up, lie down, T-pose, …) to match object silhouettes,
chosen via a radial menu with hotkeys, with per-pose fall animations and rendered
pose icons.
- **Multiplayer (Netcode for GameObjects + UGS Sessions)** — session browser with
host/join, lobby + match scenes, owner-authoritative movement sync, networked
painting with late-join replay, role prefab variants (hunter/hider).
- **Match loop** (server-authoritative): hide → seek → resolve → back to lobby.
Two modes: **Classic** (found hiders spectate) and **Conversion** (found hiders
become hunters). Hunter FP shooting, radar sweeps + self-ping taunt (E) with positional taunt sound,
X-ray reveal (anti-cheese via concealment measurement), conversion statues,
match HUD and result screen with win evaluation.
- **Third-person character controller** — camera-relative WASD, jump, sprint,
slope-sliding, acceleration/deceleration, **wall-climb** (walls & ceilings,
volumetric probes) and **mantle/top-out**.
- **Cinemachine orbit camera** — mouse look, interpolated zoom, smoothed orbit,
collision deocclusion, plus **HeroCutout** occlusion fade (soft cone cutout).
- **Game modes** (extensible state machine, switched via the overview menu):
Player Control, Paint, First Person (hunter) and Free Cam (spectator).
- **Rendering** — URP Deferred+ with **HTrace WSGI** global illumination
(auto-disabled in the lobby), custom URP ports of the ArchViz shaders,
shell-based fur that tints with the painting, skybox environment updater.
- **Editor tooling** — **Poly Haven importer** (textures *and* models: catalog
browser, PBR download, auto URP/Lit material build incl. roughness→smoothness
repack + ARM fallback), **ambientCG importer** (shared web-asset framework),
concealment collider baker (VHACD), normal-map generator and more.
## Controls
| Input | Action |
|---|---|
| WASD | Move (camera-relative) |
| Shift (hold) | Sprint |
| Space | Jump |
| Mouse | Look / orbit camera |
| Mouse wheel | Zoom |
| Left click | Paint (Paint mode) / shoot (hunter) |
| Right click (hold) | Orbit camera in Paint mode |
| E | Self-ping / taunt (hider, seek phase) |
| Esc / Tab | Overview menu (mode switching, pause, session browser, match results) |
## Getting started
1. Open the project with **Unity 6000.3.11f1** (Unity 6).
2. Open `Assets/Scenes/Main.unity` (boot scene — Lobby/match scenes load additively).
3. Press **Play**, host a session in the lobby (or join one), step into the
start-match trigger to begin a round.
Cinemachine, the Input System, Netcode for GameObjects and UGS packages are
resolved automatically via the package manifest.
## Project layout
- `Assets/Scripts/Components/` — gameplay components (`MeshPainter`, controllers,
concealment, `HeroCutout`, fur, radar, UI/Paint HUD).
- `Assets/Scripts/Network/` — multiplayer (`MatchManager`, session browser,
paint/animation sync, match HUD/result screen).
- `Assets/Scripts/GameMode/` — the mode state machine (Player Control, Paint,
First Person, Free Cam).
- `Assets/Scripts/Editor/` — editor tools (Poly Haven / ambientCG importers,
shared `WebAssets` framework, bakers, generators).
- `Assets/Scenes/` — `Main` (boot), `Lobby`, `The Room`, `Test Map`, `Pose Icon`.
- `Docs/GAME_DESIGN.md` — design notes and the full feature checklist (German).
## Roadmap
See **[`Docs/GAME_DESIGN.md`](Docs/GAME_DESIGN.md)** for the detailed checklist.
In short: map/level design depth, audio (SFX/music), art direction & lighting
polish, and multiplayer robustness (reconnect, host migration).