120d3b6675565a919964bdbe75de5b5c05daef83
In an inner wall/ceiling corner the body's facing flipped ~9 deg every frame. Recorded frame data showed the wall/ceiling classification flipping 160 times: _wallNormal.y swung the full range (0.0 wall <-> -0.966 ceiling) each frame, far past the hysteresis band, so the Schmitt trigger could not hold it. Root cause: _wallNormal had two competing per-frame sources. - The contact-normal blend (Update) mixes ceiling and wall contacts in the corner into ~(0,-0.97,-0.26), classified as ceiling. - ProbeWall raycasts along -_wallNormal, which tilts toward the wall, so the ray clips the wall and returns (0,0,-1), classified as wall. Wall and ceiling drive different rotation targets (snap to face-wall vs. face movement direction), producing the per-frame twitch. Fix: - The contact blend no longer overwrites _wallNormal during an active climb (it only seeds the initial grab); the probes own the normal while climbing. - Surface-aware probing: on a ceiling, probe straight up (ProbeCeiling) instead of along -_wallNormal, so the angled ray can no longer clip the wall and demote us. Stay latched on the ceiling until it is genuinely gone overhead, then fall back to the wall probe. Also retains the ceiling-class hysteresis (Schmitt trigger on the normal's downward tilt) from the prior attempt as added stability. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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).
Status: early prototype. Core painting and movement work; the hide-and-seek game loop (roles, rounds, scoring, multiplayer) is not built yet.
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
Runningbool 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.
Controls
| Input | Action |
|---|---|
| WASD | Move (camera-relative) |
| Shift (hold) | Sprint |
| Space | Jump |
| Mouse | Look / orbit camera |
| Mouse wheel | Zoom |
| Left click | Paint (Paint mode) |
| Tab | Switch mode (Player Control ⇄ Paint) |
Getting started
- Open the project with Unity 6000.3.11f1 (Unity 6).
- Open
Assets/Scenes/SampleScene.unity. - Press Play, move with WASD, press Tab to switch to Paint mode and paint.
Cinemachine (com.unity.cinemachine) and the Input System are resolved
automatically via the package manifest.
Project layout
Assets/Scripts/— gameplay scripts (PlayerCharacterController,MeshPainter,ThirdPersonOrbitInput,GameModeManager, modes,FrameRateLimiter).Assets/Scenes/—SampleScene(the playground).Docs/GAME_DESIGN.md— design notes and the full feature checklist (German).
Roadmap
See Docs/GAME_DESIGN.md for what's done and what's next
(color-picker UI, eyedropper, poses, seeker role, rounds, multiplayer).
Description
Unity mesh-painting game (Meccha Chameleon-inspired)
1.1 GiB
0 Stars
1 Watchers
0 Forks
Languages
C#
85.6%
ShaderLab
8%
GLSL
4%
HLSL
2.3%