Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Controller mappings #99

Closed
BastiaanOlij opened this issue Sep 29, 2021 · 0 comments
Closed

Controller mappings #99

BastiaanOlij opened this issue Sep 29, 2021 · 0 comments
Labels
documentation Improvements or additions to documentation

Comments

@BastiaanOlij
Copy link
Member

BastiaanOlij commented Sep 29, 2021

The Godot 3 version of our OpenXR plugin uses a hardcoded action set and interaction profile that maps all the available inputs to Godot joystick/gamepad system.

Care has been taken to make sure inputs match as much as possible so there are only very rare occasions where you need to know the controller the player uses. The nonsensical order of the buttons is unfortunately a result of features becoming available after button id's were already assigned making everything a little messy.

Note menu/select button and secondary thumbstick/trackpad input is a recent addition and is only available from 1.1.0 onwards

Default/unknown controllers
Buttons:

  • 3 = menu button
  • 4 = select button

No axis

Vive wands
Buttons:

  • 2 = grip button
  • 3 = menu button
  • 4 = system button
  • 12 = trackpad "touch"
  • 14 = trackpad "click"
  • 15 = trigger

Axis:

  • 0/1 = trackpad x/y
  • 2 = trigger
  • 4 = grip (acts as button so only values 0.0 and 1.0)

Windows WMR Controllers
Buttons:

  • 2 = grip button
  • 3 = menu button
  • 11 = trackpad "touch"
  • 13 = trackpad "click"
  • 14 = thumbstick "click"
  • 15 = trigger

Axis:

  • 0/1 = thumbstick x/y
  • 2 = trigger
  • 4 = grip (acts as button so only values 0.0 and 1.0)
  • 6/7 = trackpad x/y

Oculus Touch Controllers
Buttons:

  • 1 = B (right) / Y (left) button
  • 2 = grip button
  • 3 = menu button (left only)
  • 7 = A (right) / X (left) button
  • 12 = thumbstick "touch"
  • 14 = thumbstick "click"
  • 15 = trigger

Axis:

  • 0/1 = thumbstick x/y
  • 2 = trigger
  • 4 = grip (acts as button so only values 0.0 and 1.0)

Valve Index Controllers
Buttons:

  • 1 = B button
  • 2 = grip button
  • 7 = A button
  • 11 = trackpad "touch"
  • 12 = thumbstick "touch"
  • 13 = trackpad "click"
  • 14 = thumbstick "click"
  • 15 = trigger

Axis:

  • 0/1 = thumbstick x/y
  • 2 = trigger
  • 4 = grip (acts as button so only values 0.0 and 1.0)
  • 6/7 = trackpad x/y

We are planning changes to how this works in Godot 4 so the above information applies to Godot 3 only.

@BastiaanOlij BastiaanOlij added the documentation Improvements or additions to documentation label Sep 29, 2021
@BastiaanOlij BastiaanOlij pinned this issue Sep 29, 2021
@m4gr3d m4gr3d closed this as completed Mar 21, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

2 participants