Update README to current project state

The README still described the earliest painting/movement prototype. Bring
it up to date with the playable multiplayer prototype: match loop (Classic/
Conversion), Paint HUD + PBR channels, pose system, NGO/UGS networking,
HTrace Deferred+ rendering, editor tooling (Poly Haven / ambientCG
importers), current controls, Main boot scene flow, real project layout
and an updated roadmap.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
adminandClaude Fable 5 committed 2026-07-17 18:30:22 +02:00
1 parent 78ae0c84d8
commit d6c3e2a3b8
1 file changed
+59 -27
+59 -27
View File
@@ -1,27 +1,48 @@
# Chameleon
A Unity mesh-painting game inspired by **Meccha Chameleon** — not a 1:1 clone.
You paint your character directly on its 3D mesh to blend into the environment,
and move with an extended traversal kit (run, jump, slope-slide, wall-climb).
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: early prototype. Core painting and movement work; the hide-and-seek
> game loop (roles, rounds, scoring, multiplayer) is not built yet.
> 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).
- **Third-person character controller** — camera-relative WASD, jump, gravity,
slope-sliding off too-steep surfaces, hold-to-sprint and acceleration/deceleration
for smooth ramp-up and roll-out.
- **Wall-climb + mantle** — climb walls/ceilings (W approach/up, S detach, A/D
sideways) and pull up over top edges (or hop over slope tops) instead of dropping.
- **Cinemachine orbit camera** — mouse look, interpolated scroll zoom, smoothed
orbit rotation, collision deocclusion.
- **Animator hookup** — drives a `Running` bool while moving on the ground.
- **Game mode manager** — extensible state machine, switch with **Tab**:
- *Player Control* — move + mouse look.
- *Paint* — no movement, left-click paints, hold right-click to orbit.
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,
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, Tab): 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
@@ -32,26 +53,37 @@ and move with an extended traversal kit (run, jump, slope-slide, wall-climb).
| Space | Jump |
| Mouse | Look / orbit camera |
| Mouse wheel | Zoom |
| Left click | Paint (Paint mode) |
| Tab | Switch mode (Player Control ⇄ Paint) |
| Left click | Paint (Paint mode) / shoot (hunter) |
| Right click (hold) | Orbit camera in Paint mode |
| E | Self-ping / taunt (hider, seek phase) |
| Esc | Pause overlay / session browser |
## Getting started
1. Open the project with **Unity 6000.3.11f1** (Unity 6).
2. Open `Assets/Scenes/SampleScene.unity`.
3. Press **Play**, move with WASD, press **Tab** to switch to Paint mode and paint.
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 (`com.unity.cinemachine`) and the Input System are resolved
automatically via the package manifest.
Cinemachine, the Input System, Netcode for GameObjects and UGS packages are
resolved automatically via the package manifest.
## Project layout
- `Assets/Scripts/` — gameplay scripts (`PlayerCharacterController`, `MeshPainter`,
`ThirdPersonOrbitInput`, `GameModeManager`, modes, `FrameRateLimiter`).
- `Assets/Scenes/` — `SampleScene` (the playground).
- `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 what's done and what's next
(color-picker UI, eyedropper, poses, seeker role, rounds, multiplayer).
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).