Docs: step 2.6 and the crag

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
FoxyzandClaude Opus 5.5 committed 2026-10-02 17:26:20 +03:00
1 parent 6ff6130762
commit 423b709cc9
3 files changed
+30 -5

No files matched your search

+15 -4
View File
@@ -144,7 +144,7 @@ device only; the editor has an XR simulator for dev. Trackers/action map: see `x
moves the player OPPOSITE to hand motion in full 3D, both grips = anchor translation +
IN-PLACE yaw turn around the head. All grab deltas and turn pivots are computed in
WORLD space (tracking-space math made turns orbit the map center — do not regress).
Spawn/teleport placement pins arrival height (head height preserved). Locomotion drives
Spawn/teleport placement lands the floor on the target's height (head height above the floor preserved). Locomotion drives
`XROrigin3D` directly; physics reconciliation comes with the embodiment layer. Grip/trigger
are polled Floats with thresholds per docs
(bool actions unreliable across runtimes). Engine logs land in
@@ -162,8 +162,8 @@ device only; the editor has an XR simulator for dev. Trackers/action map: see `x
real Godot Control UI (`MainMenu.cs`: tabs Player / World / System, normal-sized buttons,
slider, scrollable log, FPS) rendered by `MenuScreen.cs` into a 960×640 SubViewport shown on
a thin 0.36×0.24 m panel (~2.7 px/mm ≈ 1:1 with headset pixels at 45 cm — viewport textures
have no mipmaps, so don't oversample). Summoned/dismissed via `ax_button` (A/X —
menu_button belongs to the runtime). It is PARENTED UNDER `XROrigin3D` — Koikatsu-VR-style
have no mipmaps, so don't oversample). Summoned/dismissed via the LEFT `ax_button` (X — right A is
jump; menu_button belongs to the runtime). It is PARENTED UNDER `XROrigin3D` — Koikatsu-VR-style
"fixed in the player's room": IRL movement doesn't move it relative to you, game locomotion
carries it. If that feel is wrong, reverting = reparenting to `Main` and fixing the `_Ready`
node paths. Appears 0.3 m in front of the summoning hand facing the head (full 3D facing —
@@ -318,7 +318,18 @@ device only; the editor has an XR simulator for dev. Trackers/action map: see `x
with a free-space check; strength asymmetric by direction (pull-down/flexion strong, raise weak; structural guide
strength push-only); **Box3D wrapper reads physics-material friction only at shape creation — set
`PhysicsMaterialOverride` before AddChild.**
Owner scope: thumbstick locomotion only, no jump, avatar scaling and NPCs later.
**Step 2.6:** landing DIP is physics (legs touch down only within reach → leg strength stops the body below
its stance; big falls fold the legs, Boneworks-style; rise eased so gravity alone can stop it at the stance);
JUMP on right A (countermovement dip + leg push over the stroke — crouching first jumps higher); STICK CROUCH on
right stick Y (`RagdollDriver.StickCrouch` = virtual floor offset); body facing from `BodyMath.HeadFacing`
(no flip looking down past vertical); the XR origin is DRAWN interpolated like the bodies (`PlayerRig`
`_physOrigin`, restored before physics) — the camera/body "two places at once" desync. Rule learned: play-space
corrections may shift feed-forward history HORIZONTALLY only (vertical goals are floor-relative already).
`ragdoll_spike -- only=<substrings>` runs a subset of phases.
**The crag** (`Crag.cs`): a 26 m box-rock cliff north of the playground with one graded route (boulders →
ladder → 8 m ledge → jug wall → traverse → overhang → 16 m ledge → chimney → summit with props); the way down
is the "Crag" teleport marker at the base. Regression `scenes/crag_spike.tscn` "CRAG: overall PASS" (layout only).
Owner scope: avatar scaling and NPCs later.
10. **Body physics Stage 2 — PHYSICAL ARMS, implemented 2026-10-02, awaiting owner playtest.**
`PhysicsArms.cs`: per side an upper-arm + forearm RigidBody3D (2.0 / 1.2 kg, layer 5) that
PD-chase their analytic 2-bone IK pose, solved each physics tick from the PHYSICAL chest