mirror of
https://github.com/mitch030504/Wiicompiled_VR_Frame.git
synced 2026-10-06 03:00:14 +02:00
Drive with bare hands in the cockpit
- With tracked hands on, a hand driving khr/simple_controller with camera-tracked joints is bare: latched through wheel_tracking_grace (Meta drops the select action while a hand is lost), cleared as soon as a controller's squeeze is back. Its palm joint stands in for the grip and a grasp from the middle, ring and little fingers' flexion (0 below 1.2 rad, 1 from 3.0) for the squeeze, so closing a hand on the rim takes hold under the wheel's own press and release. The grasp never reaches the game's buttons. - In a cockpit race a bare hand holding the wheel holds the gas (A / South) and a pinch from a free bare hand uses an item (Z / L) once the hand has been off the wheel for 0.15 s. Only while the game has the remote's pointer off: KPAD publishes the game's pointer switch for the VR remote, so the pause menu and the results keep a right pinch as A. The pacing thread logs each change, to confirm on the headset that MKW turns the pointer off while driving. - A held bare hand keeps its last joints drawn through a short loss; bare hands get no haptics. The headset panel's readout shows grasp, hold and pinch. Docs: OPENXR.md. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
a21e22b605
commit
5a38377f61
8 files changed
+129
-9
No files matched your search
@@ -275,6 +275,13 @@ see [Steering wheel and hand
|
||||
steering](#steering-wheel-and-hand-steering). Turning the wheel moves the controllers, and the game's
|
||||
own motion detection still reads them, so a sharp enough turn can read as a shake.
|
||||
|
||||
**Bare hands.** On the Quest, with `hand_tracking` on and the controllers put down, the hands drive
|
||||
`khr/simple_controller`: a right pinch is A with the pointer on the hand's aim ray, the left
|
||||
palm-up pinch is + (pause), and in a cockpit race a hand on the wheel holds A and a free hand's
|
||||
pinch is Z; see "Tracked hands" under [Steering wheel and hand
|
||||
steering](#steering-wheel-and-hand-steering). A bare hand feeds no motion. With `hand_tracking` off
|
||||
a bare hand presses nothing but +.
|
||||
|
||||
`"gamepad"` keeps the controllers one ordinary gamepad read through PAD as a GameCube controller:
|
||||
A/B → South/East, X/Y → West/North, index triggers → trigger axes, grips → shoulders, thumbsticks
|
||||
→ sticks (clicks → stick buttons), left menu → Start. Every binding in the F10 controller menu
|
||||
@@ -528,6 +535,27 @@ no Wii Remote motion, so the permission changes nothing for players who leave th
|
||||
PC none of this applies: a PC runtime can drive real controllers through `khr/simple_controller`
|
||||
and synthesize joints for them, so a hand-edited `hand_tracking = true` only changes the drawing.
|
||||
|
||||
With tracked hands on, bare hands drive. A hand is bare while it drives `khr/simple_controller`
|
||||
with camera-tracked joints, latched through `wheel_tracking_grace` (Meta also drops the select
|
||||
action while a hand is lost) and cleared as soon as a controller's squeeze is back. Its palm joint
|
||||
stands in for the grip and a grasp for the squeeze: the middle, ring and little fingers' flexion,
|
||||
summed over each finger's three joints, read as 0 below 1.2 radians (a relaxed hand) and 1 from
|
||||
3.0 (a hand closed on a rim), so the wheel's own 55 % press and 15 % release apply, and closing a
|
||||
hand on the rim takes hold. The grasp never reaches the game's buttons (as a squeeze it would press
|
||||
the gamepad's shoulders). In a cockpit race a bare hand holding the wheel holds the gas (A, the
|
||||
gamepad's South) until both hands let go, and a pinch from a free bare hand uses an item (Z, the
|
||||
gamepad's L) if the hand has been off the wheel for 0.15 s, so opening a hand off the rim does not
|
||||
fire one; holding the pinch holds the button. The left palm-up pinch pauses (a pinch made in that
|
||||
gesture is not an item: `XR_FB_hand_tracking_aim` reports the system gesture). Outside a race, and
|
||||
in a race whenever the game has the remote's pointer on (the pause menu, the results), a right
|
||||
pinch is A and the pointer follows the hand's aim ray; a left pinch does nothing, so the headset
|
||||
panel cannot be opened with bare hands (an open one takes a right pinch, and the palm-up pinch
|
||||
closes it). The game's pointer switch is read where KPAD polls the VR remote, and the log notes
|
||||
each change (`OpenXR bare hands: the game's pointer is off (driving)`); with the gamepad
|
||||
presentation there is no pointer, so the race controls apply throughout the cockpit. Manual drift
|
||||
has no gesture: choose Automatic drift. The headset panel reads out each hand's source, grasp,
|
||||
hold and pinch under the checkbox, for tuning.
|
||||
|
||||
**Hands and the separate wheel.** Hands are drawn while hand steering is on: the runtime's own hand
|
||||
mesh where it offers one (`XR_EXT_hand_tracking` and `XR_FB_hand_tracking_mesh`, requested when
|
||||
hand steering or tracked hands are on at launch), otherwise procedural gloves that curl with the
|
||||
|
||||
Reference in new issue
Block a user