Body step 2.4: landing, movable ground, playground fixes
- legs brake landings at 4.5 g; vertical support is a rate-limited servo (no launch when stepping onto a mantled ledge) - ground control pushes back on movable ground (seesaw tips under the player) - playground hinges use absolute paths (joint paths resolve from the joint) - big props grabbable via surface query; Reset props keeps playground pieces - spike: landing, seesaw, playground joints/grab, person-like wall climb Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
b5f598aae9
commit
0b8f2131c1
6 files changed
+208
-42
No files matched your search
@@ -155,3 +155,26 @@ Rules added:
|
||||
- Measure "blocked" where the body is blocked.
|
||||
- Hysteresis plus a free-space check before re-enabling any collider.
|
||||
- In the Box3D wrapper, physics materials must be set before AddChild.
|
||||
|
||||
## Step 2.4 — playtest polish (2026-10-02)
|
||||
|
||||
Owner, after 2.3: "Climbing actually feels very solid now. Mantling is almost effortless … There wasn't anything I
|
||||
wasn't able to climb." Fixed from the same session:
|
||||
|
||||
- **Landing sink.** Support capped at 2× body weight leaves 1 g of braking, so a 1 m drop (4.4 m/s) took ~0.4 m to
|
||||
stop and the body sank out from under the view. `LegStrength` is now 4.5× (real legs brake landings at 3–5 g).
|
||||
The vertical support is now a rate-limited velocity servo, `MaxRiseSpeed` 1.2 m/s: full strength to brake, but the
|
||||
legs raise the body no faster than that. Legs can push but not pull, so a hard push toward a higher stance (just
|
||||
mantled onto a ledge) overshot into a 0.67 m jump. Spike: landing keeps the pelvis at standing height, eye within
|
||||
12 cm.
|
||||
- **Body weight on movable ground.** The feet aren't physical, so standing on a seesaw/plank/crate never pushed it.
|
||||
Ground control now applies the opposite of its support + carry force to a `RigidBody3D` under the ground ray, at the
|
||||
hit point. Box3D ray results also carry a null `collider`, so it uses `collider_id`. Spike: a seesaw tips 17°.
|
||||
- **Playground hinges.** `Joint3D.NodeA/NodeB` resolve relative to the JOINT node. `GetPathTo` from the parent
|
||||
pointed at nonexistent children, so the seesaw and swing board were never hinged. Absolute paths now.
|
||||
- **Big props weren't grabbable.** Prop grabbing measured distance to the prop ORIGIN, far from the hand on a 2–3 m
|
||||
plank. `PropGrabber.BodyUnderPalm` queries the surface (a prop first, else static world).
|
||||
- **Reset props removed every "prop".** `PropShop.Respawn` now frees only its own children; the playground resets
|
||||
in place.
|
||||
- The climbing spike now climbs like a person: hand moves are sequential (never release the second hand before the
|
||||
first re-grips), and pulls are relative to the body/room.
|
||||
Reference in new issue
Block a user