- From: Matt Reynolds <notifications@github.com>
- Date: Wed, 21 Feb 2024 18:15:21 -0800
- To: w3c/gamepad <gamepad@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <w3c/gamepad/issues/191/1958536104@github.com>
I would prefer to adopt an existing button naming scheme instead of inventing something new. I'm looking at [OpenXR /user paths](https://registry.khronos.org/OpenXR/specs/1.0/html/xrspec.html#semantic-path-user) since it aims to solve the same problem. OpenXR organizes gamepad inputs into a subtree rooted at /user/gamepad. The specification gives standard identifiers for common gamepad components (buttons, triggers, thumbsticks, trackpads, etc). For example, the Standard Gamepad buttons are: /user/gamepad/input/diamond_down/click /user/gamepad/input/diamond_right/click /user/gamepad/input/diamond_left/click /user/gamepad/input/diamond_up/click /user/gamepad/input/shoulder_left/click /user/gamepad/input/shoulder_right/click /user/gamepad/input/trigger_left/click /user/gamepad/input/trigger_right/click /user/gamepad/input/select/click /user/gamepad/input/start/click /user/gamepad/input/thumbstick_left/click /user/gamepad/input/thumbstick_right/click /user/gamepad/input/dpad_up/click /user/gamepad/input/dpad_down/click /user/gamepad/input/dpad_left/click /user/gamepad/input/dpad_right/click /user/gamepad/input/system/click The PlayStation trackpad button is: /user/gamepad/input/trackpad/click It's not clear how to name buttons like Xbox Elite paddles or DualSense Edge back buttons. I think they are considered "squeeze" buttons similar to HTC Vive's Grip button. Xbox Elite squeeze buttons: /user/gamepad/input/squeeze_left_upper/click /user/gamepad/input/squeeze_left_lower/click /user/gamepad/input/squeeze_right_upper/click /user/gamepad/input/squeeze_right_lower/click DualSense Edge squeeze buttons: /user/gamepad/input/squeeze_left/click /user/gamepad/input/squeeze_right/click For many gamepads there isn't a standard OpenXR identifier for every button. OpenXR allows extensions to add new identifiers with the "_ext" suffix. Several gamepads have something like a "Share" button. Maybe these can use the same identifier? /user/gamepad/input/share_ext/click ("Share" button, Xbox Wireless Controller Model 1914) /user/gamepad/input/share_ext/click ("Capture" button, Nintendo Switch controllers) /user/gamepad/input/share_ext/click ("Capture" button, Stadia controller) DualShock4 has a button labeled "Share" but it's already included in the Standard Gamepad as "left button in center cluster". DualSense labels this button "Create". We should prefer the Standard Gamepad button name. /user/gamepad/input/select/click ("Share" button, DualShock4) /user/gamepad/input/select/click ("Create" button, DualSense) Google and Amazon gamepads have a dedicated button for calling the assistant: /user/gamepad/input/assistant_ext/click ("Google Assistant" button, Stadia Controller) /user/gamepad/input/assistant_ext/click ("Alexa Push-to-talk" button, Amazon Luna controller) @marcoscaceres Can you think of any reason why we shouldn't use OpenXR's /user paths as identifiers in Gamepad API? -- Reply to this email directly or view it on GitHub: https://github.com/w3c/gamepad/issues/191#issuecomment-1958536104 You are receiving this because you are subscribed to this thread. Message ID: <w3c/gamepad/issues/191/1958536104@github.com>
Received on Thursday, 22 February 2024 02:15:25 UTC