Body step 2.1: climbing, mantling, crawling, legs, playground, 144 Hz
- Step rule + lower-body collider: no walking onto tables, steps <= 0.35 m - Structural hand strength: two-hand mantle/pull-up works, one hand can't - Arms aim from the physical shoulder horizontally, keep True Body pose vertically - Crawl pose, crawl carry, 35 deg slope limit, ground feed-forward ignores play-space corrections (fixes a runaway feedback loop) - Grab static world (climbing), procedural visual legs - Playground sandbox; menu strength slider, spectator (old drag) and turn toggles - Physics 144 Hz with interpolation; legacy chase-body spikes pin 90 Hz - RagdollSpike: 27 phases incl. mantle, pull-up, crawl, ledge drop, ramps Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
d83273dd2f
commit
2aff2b61da
26 files changed
+1243
-70
No files matched your search
+24
-13
@@ -92,7 +92,22 @@ TERMINOLOGY (owner-corrected — use precisely):
|
||||
collision exceptions), so grabbing works unchanged. Hand ghosts at > 10 cm lag. Rebuilds on recalibration. Full
|
||||
design + measured findings: `research/ragdoll-player-step2.md` (incl. the light-link oscillation rule).
|
||||
Regression `scenes/ragdoll_spike.tscn` "RAGDOLL: overall PASS" (stand, reach, swings, stick + room-scale wall,
|
||||
bar blocked/crouch under, lean over table, crate push, 12 kg close vs far, teleport + snap turn, random soak).
|
||||
bar blocked/crouch under, lean over table, crate push, 12 kg close vs far, teleport + snap turn, random soak,
|
||||
knee-high box + table block walking, 0.25 m step up, two-hand mantle onto 0.9 m vs one hand fails, pull-up on a
|
||||
grabbed bar two vs one hand, crawl through a 0.6 m tunnel, walk off a 1 m ledge, 18° ramp up / 40° ramp stops).
|
||||
**Step 2.1 (owner playtest fixes, same day)** — see `research/ragdoll-player-step2.md` "Step 2.1": step rule
|
||||
(MaxStepHeight 0.35 + back-edge ray) and a lower-body `Legs` collider (blocks knee-high things, tucks when
|
||||
crawling/mantling, shape DISABLED not layer-cleared), STRUCTURAL hand strength (40 → 400 N with the axial share of
|
||||
the error), arm aim from the physical shoulder horizontally / True Body pose vertically, crawl pose in
|
||||
`TrueBodySolver` (trunk tips to 83° keeping the hips ≥ 0.15 m), crawl carry, MaxSlope 35°, `Climbing` (hand on
|
||||
static or arms lifting) = the only state that drags the view vertically, ground feed-forward that ignores play-space
|
||||
corrections (a runaway at 7 m/s otherwise), `ProceduralLegs` visuals, static-world grabs (climbing), menu strength
|
||||
slider / spectator / snap-smooth toggles, 144 Hz + physics interpolation (XR origin, TrueBody, PlayerRig excluded).
|
||||
- **Playground.cs** — the body sandbox around the table (east climbing/mantling, west physics toys, south
|
||||
crawl/duck/door); dynamic pieces are "prop"s reset by the menu's Reset props. `tools/playground_shots.tscn` renders
|
||||
overview PNGs (`godot-mono --path . tools/playground_shots.tscn -- <dir>`).
|
||||
- **AnchorMoveMode.cs** is now SPECTATOR-only (`AnchorMoveMode.Enabled`, menu → Player → Spectator), where the
|
||||
ragdoll is cleared; leaving rebuilds it at the current pose.
|
||||
- **LEGACY (not in main.tscn since step 2; kept for their spikes): PhysicsHands / PhysicsTorso / PhysicsArms / BodyRig.**
|
||||
- **PhysicsHands.cs** — physical palm bodies chasing the controller poses: 0.4 kg boxes (flat slab,
|
||||
thumb-side face), gravity off, CCD, **layer 4 (player hands)/mask 1|4** — NOT colliding with the
|
||||
@@ -372,11 +387,10 @@ Floor StaticBody mask 1|3|4|5 (collision_mask 29).
|
||||
|
||||
## 5. Known issues / open questions
|
||||
|
||||
- **Ragdoll player (step 2) — unvalidated in-headset.** Known gaps (details in
|
||||
`research/ragdoll-player-step2.md`): no legs yet; shoulder has no cone limit; grabs are props only (no
|
||||
climbing on static geometry); strength values are human-scale guesses; physics still at the headset rate
|
||||
(144 Hz not switched); legacy anchor-grab movement now fights gravity (the body falls, the view follows), so
|
||||
it only pulls you along the ground; teleport markers still work (the body is carried).
|
||||
- **Ragdoll player (step 2.1) — owner playtested step 2 ("feels amazing for the most part"); 2.1 fixes are
|
||||
unvalidated in-headset.** Remaining gaps: shoulder has no cone limit (fork addition); strength values are
|
||||
human-scale guesses (menu slider); stick-crawling is a comfort concession (Nimso pulls with hands only); legs are
|
||||
visual only. Legacy spikes (arm/grab/body/collapse) pin 90 Hz because the chase bodies were tuned there.
|
||||
|
||||
- **Body Stage 1 chest collapse — ROOT-CAUSED + FIXED (2026-10-01), awaiting owner re-playtest.**
|
||||
The first in-headset session NaN'd the chest ("head detaching from the body"). Cause was
|
||||
@@ -522,13 +536,10 @@ Floor StaticBody mask 1|3|4|5 (collision_mask 29).
|
||||
|
||||
## 7. Next steps (in order)
|
||||
|
||||
0. **Owner playtest of body step 2 (the ragdoll player)** — stand, reach, push props, grab/hold (strength is now
|
||||
human-scale: heavy things only close to the body), walk with the left stick into walls/the table, snap turn
|
||||
with the right, crouch. Read the log after ("PlayerRagdoll: ... snapped" = a safety reset). Tuning knobs:
|
||||
`PlayerRagdoll` strength/gain constants, `PlayerRig.MoveSpeed/SmoothTurn`. Step 1 (calibration, True Body)
|
||||
was validated by the owner ("seems normal"); `TrueBody.ShowDebug` is off now that the ragdoll is the visual.
|
||||
Next body steps: procedural legs, 144 Hz (needs physics interpolation + origin moves in physics ticks),
|
||||
climbing (weld to static), one global strength scalar.
|
||||
0. **Owner playtest of body step 2.1 + the playground** — mantle the ledges (both hands on top, press down, lean
|
||||
in), climb the wall holds / pull-up bar / monkey bars (grip = grab static), crawl the tunnel, walk ramps/stairs,
|
||||
planks/seesaw/swing board, strength slider, spectator mode, smooth turn. Read the log after. Next body work
|
||||
after feedback: shoulder cone limit (fork), Nimso flight-phase gait, NPC on the same ragdoll.
|
||||
1. **Owner re-playtest of the body (chest fix + Stage 2 arms)** — the Stage-1 collapse is
|
||||
fixed (`collapse_spike` 49/49); feel is unvalidated in-headset. Read the log after.
|
||||
2. **Locomotion decision** — owner report 2026-10-01: two-hand anchor turning broken (not
|
||||
|
||||
Reference in new issue
Block a user