Commit Graph
163 Commits
Author SHA1 Message Date
adminandClaude Opus 4.8 4c28d1488d Add movement accel/decel, camera smoothing, and Running animator hook
- Smooth acceleration/deceleration on ground and air movement
- Interpolated scroll zoom and low-pass smoothed orbit rotation
- Drive Animator "Running" bool while moving on the ground
- Add Paintman animator controllers and animation clips
- Update README and GAME_DESIGN docs for sprint, accel, camera smoothing and animator hookup

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 22:35:50 +02:00
adminandClaude Opus 4.8 9e19146e35 Add hold-to-sprint with dedicated speed multiplier
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 21:46:57 +02:00
adminandClaude Opus 4.8 70e5323125 Fix wall-climb top-out on slopes with an upward hop
Detach back to grounded movement when the climbed face flattens into
walkable ground or walkable ground sits below the feet, testing an
explicit downward probe instead of isGrounded (which the standoff
correction can falsify by lifting the capsule off the surface). Top-out
now applies an upward hop so holding W carries the player over the lip
instead of dropping back onto the steep face and re-grabbing, and a
shared re-grab cooldown spans the hop to prevent detach/re-grab buzzing.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 21:13:56 +02:00
adminandClaude Opus 4.8 f68eec85d0 Add ceiling climbing to wall-climb mode
Reuse the climb mode for ceilings (surface normal pointing down):
grab by jumping up into a ceiling or by climbing a wall up into an
overhang. The body stays upright and crawls camera-relative in the
horizontal plane; jump or a ceiling edge releases into a fall.
Generalize the wall probe to use the capsule's support extent
(radius sideways, half-height vertically) so the ceiling gap is correct.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 20:28:42 +02:00
adminandClaude Opus 4.8 534477f6f7 Smooth wall-climb lean-out offset to remove stepping
Replace the dead-beat-with-deadzone perpendicular controller with an
exponential follow that targets one skin-width beyond the offset, so the
capsule never penetrates the wall and the controller's depenetration no
longer fights back. Removes the quantizing deadzone that caused stepping.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 19:43:23 +02:00
adminandClaude Opus 4.8 27301f34d9 Refine wall-climb: stable strafe, ground detach, push-in grab
- Strafe (A/D) along the wall's horizontal tangent instead of the live
  camera-right vector to stop the sideways jitter from the orbit feedback loop.
- Detach from the wall once the character reaches the ground (gated so it
  only triggers after the climb has left the ground).
- Dead zone on the perpendicular offset controller to suppress depenetration buzz.
- Grab the wall only when actively pushing into it (wallGrabMinPush), preventing
  re-grab at the wall base.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 19:33:00 +02:00
adminandClaude Opus 4.8 4c9eef18f4 Rework wall-climb controls: constant W/S climb, mouse-drag wall pose
- W/S climb straight up/down at a constant speed (camera pitch no longer
  tilts or slows them); the camera only drives A/D strafe along the wall.
- The body now always faces the wall. Holding LMB and dragging sets the
  wall pose: vertical drag leans out from / back to the wall (offset eases
  back to zero while moving, never detaches), horizontal drag turns the
  body (yaw held until leaving the wall, eased back by ground rotation).
- Pause the camera orbit while dragging the wall pose (LookSuppressed).
- Drop the camera-to-wall angle logic and the old approach/detach-distance
  model; add wallMaxOffset, wallOffsetSensitivity, wallOffsetReturnSpeed
  and wallRotateSensitivity.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 18:36:58 +02:00
adminandClaude Opus 4.8 f758c96dc5 Trim comments and use implicit null checks for Unity objects
Reduce comments to non-obvious "why" notes and convert UnityEngine.Object
null checks to implicit bool (if (obj) / if (!obj)). Input System devices
(Mouse.current, Keyboard.current) and plain arrays keep explicit != null.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 17:26:41 +02:00
adminandClaude Opus 4.8 fd67936d61 Add wall-climb mantle and wall-relative controls
- Make wall-climb controls wall-relative: W approaches/climbs up,
  S moves away and detaches, A/D strafe along the wall
- Add slow approach speed for moving toward/away from the wall
- Remove wall-climb activation time (activate on contact)
- Add mantle/top-out over the top edge so the player pulls onto the
  surface instead of dropping and re-grabbing (fixes edge flicker)
- Add re-grab cooldown after top-out

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 16:39:15 +02:00
adminandClaude Opus 4.8 dcb1fc42a6 Add game mode manager with player-control and paint modes
Introduce an extensible game mode system toggled with Tab:
- Player Control: WASD movement with always-on mouse camera orbit
- Paint: player frozen, left-click paints, right-click holds to orbit

Add GameMode base class, GameModeManager, and the two concrete modes.
Refactor controlled scripts to expose clean state flags instead of
handling input themselves: ThirdPersonOrbitInput.LookMode,
PlayerCharacterController.ControlEnabled, MeshPainter.PaintingEnabled.

Also fix camera zoom: remove the obsolete /120 wheel normalization so
one scroll notch maps to one zoomSpeed step under the new Input System.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 15:13:46 +02:00
adminandClaude Opus 4.8 6e8ab4bc6d Add Cinemachine third-person orbit camera and fix paint raycast
- Install Cinemachine 3.1.7 and set up an orbital third-person camera rig
  (CinemachineBrain, OrbitalFollow, RotationComposer, Deoccluder).
- Add ThirdPersonOrbitInput: mouse-driven orbit and wheel zoom with a Tab
  toggle that unlocks the cursor and pauses rotation.
- Fix MeshPainter so the paint ray skips the player's CharacterController
  capsule (and any other collider) and always targets the mesh collider,
  so painting works from every camera angle.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 14:31:45 +02:00
adminandClaude Opus 4.8 792c8c964f Add WASD character controller with jump and slope sliding
- Add PlayerCharacterController script: CharacterController-based
  movement (camera-relative WASD), jump, gravity, rotate-toward-movement
  and slope sliding so the player slides off surfaces/edges steeper than
  the slope limit instead of balancing on them.
- Update SampleScene: add Player (with CharacterController), ground plane
  and obstacle cubes; parent the paintable paintman_UV under the Player.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 13:02:03 +02:00
adminandClaude Opus 4.8 fa4474f6d4 Initial commit: Unity mesh painter project
Unity 6000.3 (URP) project with live mesh painting in play mode.

- MeshPainter.cs: paint a SkinnedMesh with the mouse, seamless across
  UV islands via 3D-space painting, GPU and CPU backends (switchable),
  edge-padding/dilation against bilinear seam bleed
- FrameRateLimiter.cs: simple frame rate limiting component
- MeshPaintBrush / MeshPaintDilate shaders for the GPU paint path
- Unity-specific .gitignore and .gitattributes

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 12:03:24 +02:00