Tab is an alternate binding for the overview menu, not a direct mode toggle; mode switching happens via the menu buttons. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
90 lines
4.6 KiB
Markdown
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),
|
|
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).
|