Controls
- Last UpdatedOct 08, 2025
- 4 minute read
Aside from Boolean actions, the Input module also maps controls intended to move (Axis0) or rotate (Axis1) in the 3D space, such as:
-
Keyboard keys
-
WASD
-
Oculus thumb sticks
-
Joystick analogic controllers
-
Mouse
-
Multi-touch gestures
All the data coming from different controllers is standardized and unified in the same output fields. This allows the modules connecting to the Input module to seamlessly use the data provided by the Input module itself, regardless of the deployment target.
Keyboard keys
The mapping of keyboard keys, or any non-analogic key (such as joystick Dpad or mouse buttons), to control the movement in the 3D space is done by defining the different Axis0 and Axis1 configurations. By defining a [pos] configuration, when the mapped keys are pressed, the value 1 will be written to the corresponding axis coordinate. Similarly, defining a [neg] configuration the value -1 will be written. In the following example, pressing:
-
D key, value 1 will be summed to Axis0.x
-
A key, value -1 will be summed to Axis0.x
-
E key, value 1 will be summed to Axis0.y
-
Q key, value -1 will be summed to Axis0.y
-
W key, value 1 will be summed to Axis0.z
-
S key, value -1 will be summed to Axis0.z
Code example
<Module name="input_module" moduleType="InputModule" version="1.0.0"
"Axis0_posZ"="{dic1={key1=W}}"
"Axis0_negZ"="{dic1={key1=S}}"
"Axis0_posX"="{dic1={key1=D}}"
"Axis0_negX"="{dic1={key1=A}}"
"Axis0_posY"="{dic1={key1=E}}"
"Axis0_negY"="{dic1={key1=Q}}"
/>
Oculus thumb sticks
The Oculus thumb stick values are always mapped on the fields output_Axis0 (left thumb stick) and output_Axis1 (right thumb stick). If the configuration field oculus_lcontroller_enabled and oculus_rcontroller_enabled are set to true, then:
-
Left controller thumb stick axes are mapped [X] > [X] and [Y] > [Z] to match keyboard WASD mapping.
-
Right controller thumb stick axes are mapped [X] > [X] and [Y] > [-Y] to match mouse mapping.
Joystick analogic sticks
The joystick analogic sticks values are always mapped on the fields output_Axis0 (left thumb stick) and output_Axis1 (right thumb stick). If the configuration field joystick_enabled is set to true, then:
-
Left analogic sticks axes are mapped [X] > [X] and [Y] > [Y].
-
Right analogic sticks axes are mapped [X] > [X] and [Y] > [Y].
Mouse
For mapping the MouseAxis and PinchAxis to control the movement in the 3D space, axis configurations can be defined once, as in the following example:
<Module name="input_module" moduleType="InputModule" version="1.0.0"
"Axis0_posX"="{dic1={key1=PINCHPAN}} {dic2={key1=MMOUSE}} "
"Axis1_posX"="{dic1={key1=PINCHROTATE}}{dic2={key1=LMOUSE}} "
/>
If defined, the module automatically maps:
-
AxisMouse.x > Axis0.x and AxisMouse.y > Axis0
-
AxisPinch.z > Axis0.x; AxisPinch.w > Axis0.y
-
AxisMouse.x > Axis1.x and AxisMouse.y > Axis1.y
-
AxisPinch.x > Axis1.x.
Since more than one controller can write on the same fields, even concurrently, the following logic is applied: the analogic values coming from the Oculus thumb sticks, the joystick analogic sticks and the keyboard are individually summed on the proper axis components X,Y and Z of the relative output_axis output. Then the final value is capped between [-1, 1]. Finally, AxisMouse and AxisPinch are added.
Naming conventions for keys
Here is a list of all key naming conventions based on the device type.
Keyboard
|
Keys |
Description |
|---|---|
|
A > Z |
Each keyboard character is mapped to its corresponding capital case character. |
|
BACK |
Backspace key |
|
CAPITAL |
Caps-Lock key |
|
CONTROLKEY |
Ctrl key |
|
D0 > D9 |
Numeric keys (digital #) |
|
DELETE |
Delete key |
|
DOWN |
Down arrow |
|
END |
Endline key |
|
ESCAPE |
Esc key |
|
F1 > F12 |
Function keys |
|
HOME |
Home key |
|
LEFT |
Left arrow |
|
LWIN |
Left Win key |
|
MENU |
Left Alt |
|
OEMQUESTION |
[?] |
|
OEMPERIOD |
[.] |
|
OEMCOMMA |
[,] |
|
OEMMINUS |
[-] |
|
OEMPLUS |
[+] |
|
RETURN |
Return key |
|
RIGHT |
Right arrow |
|
RWIN |
Right Win key |
|
SHIFTKEY |
Shift key |
|
SPACE |
Space |
|
TAB |
Tab key |
|
UP |
Up arrow |
|
VOLUMEUP |
Volume Up key |
|
VOLUMEDOWN |
Volume Down key |
|
VOLUMEMUTE |
Volume Mute key |
Mouse
|
Mouse button |
Description |
|---|---|
|
LMOUSE |
Mouse left button |
|
MMOUSE |
Mouse middle button |
|
MSMOUSE |
Mouse scroll wheel |
|
RMOUSE |
Mouse right button |

GestureSensor
These gestures are recognized using the GestureSensor node.
|
Gesture |
Description |
|---|---|
|
PINCHPAN |
Pan gesture |
|
PINCHROTATE |
Rotation gesture |
|
PINCHZOOM |
Zoom gesture |
Joystick
|
Joystick |
Description |
|---|---|
|
JOYB1 |
Left button (XBOX=X, PS=SQUARE) |
|
JOYB2 |
Down button (XBOX=A, PS=X) |
|
JOYB3 |
Right button (XBOX=B, PS=CIRCLE) |
|
JOYB4 |
Up button (XBOX=B, PS=TRIANGLE) |
|
JOYB5 |
Left upper back button (XBOX=LB, PS=L1) |
|
JOYB6 |
Right upper back button (XBOX=RB, PS=R1) |
|
JOYB7 |
Left lower back button (XBOX=LT, PS=L2) |
|
JOYB8 |
Right upper back button (XBOX=RT, PS=R2) |
|
JOYPD |
Down arrow |
|
JOYPL |
Left arrow |
|
JOYLA |
Left analog thumbstick |
|
JOYPR |
Right arrow |
|
JOYRA |
Right analog thumbstick |
|
JOYPU |
Up arrow |

Oculus controller
|
Control |
Description |
|---|---|
|
OCULUSLGRIP |
Oculus left grip button |
|
OCULUSLMENU |
Menu button |
|
OCULUSLTRIGGER |
Oculus left trigger button |
|
OCULUSLTSBTN |
Triggered when the left thumb stick is clicked |
|
OCULUSLTSDOWN |
Triggered when the left thumb stick is moved down |
|
OCULUSLTSLEFT |
Triggered when the left thumb stick is moved left |
|
OCULUSLTSRIGHT |
Triggered when the left thumb stick is moved right |
|
OCULUSLTSUP |
Triggered when the left thumb stick is moved up |
|
OCULUSLX |
X button |
|
OCULUSLY |
Y button |
|
OCULUSRGRIP |
Oculus right grip button |
|
OCULUSRA |
A button |
|
OCULUSRB |
B button |
|
OCULUSRTRIGGER |
Oculus right trigger button |
|
OCULUSRTSBTN |
Triggered when the right thumb stick is clicked |
|
OCULUSRTSDOWN |
Triggered when the right thumb stick is moved down |
|
OCULUSRTSLEFT |
Triggered when the right thumb stick is moved left |
|
OCULUSRTSRIGHT |
Triggered when the right thumb stick is moved right |
|
OCULUSRTSUP |
Triggered when the right thumb stick is moved up |
