v0.1.0-alpha.5 — natural hand interaction, firm grabs and off-hand grabbing
·
32 commits
to master
since this release
Natural hand interaction: firm tracked grabs, direct object nudging, and bare off-hand grabbing.
New since v0.1.0-alpha.4
Hands and interaction
- Bare off-hand interaction on PS VR2 Sense: L2 in the default right-handed profile (R2 in the mirrored left-handed profile) can target and grab nearby objects.
- Off-hand trigger bindings in every bundled controller profile (HTC Vive, Valve Index/Knuckles, Oculus Touch, Pico 4, Pico Neo 3, Windows Mixed Reality): each hand's index trigger maps to
/actions/offhand/in/interact, matching the PS VR2 scheme — controller profiles ship in parity from now on. - Dedicated
/actions/offhandSteamVR action set, restricted at runtime to the physical off-hand controller without activating the full mirrored gameplay layout. - Per-hand interaction-source and held-body ownership: tracking, visibility, throwing, and haptics follow the controller that initiated the grab.
- Create/recenter remains available in both dominant-hand modes through the global action set.
- Throttled input and nudge diagnostics in
hpl.log.
Physics
- Direct hand nudge for dynamic world objects and hinged doors, with contact-point impulses and subtle per-hand haptics.
- Held physics objects now stay fixed to the rendered palm instead of trailing, floating, or orbiting around the controller.
- Map-defined Newton velocity caps are raised only while grabbing or dragging and restored on release; jointed bodies use a bounded velocity servo.
- Throw velocity is transformed into world space and clamped to reject controller spikes.
Items and pickup
- Pickup items touched by the palm take priority over overlapping furniture; normal line-of-sight checks remain in place away from direct contact.
- Item-use rays now follow the aim-pose rotation; the item indicator is smaller, view-facing, and anchored to the ray origin.
- Hand nudge excludes inventory items and held bodies, and applies gentler limits to grabbable/movable props so pickups are not launched accidentally.
Known limitations
- Interaction still uses one global player state: both hands can initiate a grab, but simultaneous two-object holding and two-hand constraints on one object are not implemented.
- Hand nudge is an impulse-based proxy for dynamic bodies, not a rigid hand collider against static level geometry; rendered hands can still pass visually through walls.
- Off-hand grabbing has been hardware-tested on PS VR2 Sense only; other bundled profiles use their standard SteamVR trigger inputs for off-hand interact but remain unvalidated per device.
What to test
- Grab and hold objects with either hand (off-hand via L2/R2 or the opposite-hand index trigger), drag heavy items, nudge doors and props.
- Throws from both hands — check trajectory and speed stability.
- Item use (flashlight, glowstick…) while holding something with the other hand.