https://store.steampowered.com/app/438100/VRChat/
The below software is required for this guide, except those marked as optional:
Installers for the StretchSense SteamVR App can be downloaded from the My Account → Software Downloads section of the StretchSense website. |
Description | Version |
---|---|
Hand Engine | 3.2.0-LITE |
Steam Desktop Client | latest |
SteamVR | 2.7.4 |
StretchSense Driver Add-On for SteamVR (Included with StretchSense SteamVR App installer) | latest |
StretchSense SteamVR App | 0.6.0 |
VRChat Creator Companion (optional) | 2.3.2 |
The below optional hardware may improve your VRChat experience:
Description | Image |
---|---|
Mini Wireless Bluetooth Gamepad VR Controller (optional) | ![]() |
As of VRChat 2024.3.1, this has some built in finger touch gestures that may interfere with the StretchSense SteamVR App button emulation. In particular, it seems like the activation detection for held objects is performed by the contact distance between the index finger and thumb and this is independent of the grip button being pressed down.
In v0.6.0 of the StretchSense SteamVR App, there is a known issue when OSC apps and drivers like VRCFaceTracking (VRCFT), Virtual Motion Tracker and Double Hip Tracker are used with VRChat and the StretchSense SteamVR App and OpenGloves SteamVR add-on. You must change these OSC apps to use different ports than 9000. You must also configure VRChat to use these updated ports. See more in the OSC Port Collisions with VRChat section of this guide. |
In Windows, unzip and place the profile json in %USERPROFILE%\Documents\steamvr\input
:
Open SteamVR Settings → Controllers → Manage Controller Bindings → VRChat → Active Controller: Index Controller → Active Controller Binding: Custom, select the StretchSense VRChat configuration for Index Controller
.
If you have your own customized bindings, refer to the configuration below for optimal changes. We recommend all menu buttons be set to long press to avoid accidentally activating menus while making gestures. |
![]() | ![]() |
![]() |
We recommend training these standard gestures in the StretchSense SteamVR app. |
The following binding changes will help stop accidental activations of the VRChat menus.
Left B Button - Change Button bindings so that Long press triggers the Action Menu. Remove all Single actions bound for this button. When using the Action Menu, use the joystick to navigate and release the joystick gesture to select an item from the radial wheel.
Right B Button - Change Use As Button bindings so Quick Menu
is Long press. Change the second Use As Button binding for Double and set this to Udon Menu Button
. Remove all actions bound to Single for the B button.
Support for the VRChat Action Menu is currently experimental as of v0.6.0 of the StretchSense SteamVR App. We are working to improve joystick emulation for radial menus in future versions of the app. |
The VRChat radial Action Menu uses flick selection by default. As of v0.6.0 of the StretchSense SteamVR App, flick selection is the only supported selection method for this menu and is limited to up to 8 directional inputs. |
|
Pose | Button Name | Action | Type | Description | ||
---|---|---|---|---|---|---|
![]() | Idle | Make the horns gesture, then move your thumb straight up. This represents the centered position of joystick. | ||||
![]() | Up | Walk ForwardRadial Menu Selection Up |
| Make the horns gesture | ||
![]() | Left | Strafe LeftRadial Menu Selection Left |
| Make the horns gesture | ||
![]() | Right | Strafe RightRadial Menu Selection Right |
| Make the horns gesture | ||
![]() | Down | Walk BackwardRadial Menu Selection Down |
| Make the horns gesture | ||
![]() | Grip | Grab objects in world |
| Make a finger gun pose with your thumb pointing upwards and your middle, ring and little fingers curled.
| ||
![]() | LT | Activate objects and UI in world |
| Point gesture with thumb pointing upwards. Fully curl in your index finger, as if you were pulling a real trigger.
| ||
![]() | A Button | Toggle mic |
| Touch your middle finger to your thumb, with your thumb resting on the middle part of your middle finger. Keep your other fingers extended. | ||
![]() | B Button | Open VRChat radial Action Menu |
| Touch your ring finger to your thumb, with your thumb resting on the middle part of your ring finger. Keep your other fingers extended. |
The following optional poses extend the joystick to 8 directions to improve the selection range of the VRChat Action Menu.
Support for these additional buttons may interfere with the performance of other button gestures on the same hand. We are aiming to improve this in subsequent builds of the StretchSense SteamVR App. |
|
Pose | Button Name | Action | Type | Description |
---|---|---|---|---|
![]() | Left Up | Forward Strafe LeftRadial Menu Selection Left Up |
| Make the horns gesture |
![]() | Left Down | Backward Strafe LeftRadial Menu Selection Left Down |
| Make the horns gesture |
![]() | Right Up | Forward Strafe RightRadial Menu Selection Right Up |
| Make the horns gesture |
![]() | Right Down | Backward Strafe RightRadial Menu Selection Right Down |
| Make the horns gesture |
The right hand is used for interaction and selecting UI elements with a laser pointer.
Avoid training joystick directions on the right hand as the default left/right joystick behavior is to activate turning. Instead use your physical body to turn when moving in VRChat. Your head look direction with control the forward direction you will travel during smooth locomotion. |
|
Pose | Button Name | Action | Type | Description | ||
---|---|---|---|---|---|---|
![]() | Idle | Make a relaxed pose and move your fingers between being fully extended to a slightly relaxed curled pose. This represents no buttons being pressed. | ||||
![]() | Grip | Grab objects in world |
| Make a finger gun pose with your thumb pointing upwards and your middle, ring and little fingers curled.
| ||
![]() | RT | Activate objects and UI in world |
| Point gesture with thumb pointing upwards. Fully curl in your index finger, as if you were pulling a real trigger.
| ||
![]() | Menu | Toggle SteamVR Dashboard | Touch your little finger to your thumb, with your thumb resting on the middle part of your little finger. Keep your other fingers extended. This gesture activates the SteamVR Dashboard. Train it so it can be pressed accurately. You may need to go back and train the idle pose again to stop it accidentally triggering.
| |||
![]() | A Button | Jump | Touch your middle finger to your thumb, with your thumb resting on the middle part of your middle finger. Keep your other fingers extended. | |||
![]() | B Button | Quick MenuUdon Menu |
| Touch your ring finger to your thumb, with your thumb resting on the middle part of your ring finger. Keep your other fingers extended. |
VRChat supports keyboard and gamepad input natively while running in the foreground. For XInput compatible gamepads it is possible to use and remap these in SteamVR, using the same approach as for virtual Index Controllers. These can be used at the same time while the StretchSense SteamVR app is running.
This can free your hands for improved performance if you are using an avatar with a complex gesture set to drive facial animations, props or if you are planning on playing games in VRChat worlds that require high precision or movement.
It is possible to use a small third-party gamepad that is detected by Steam to achieve better joystick performance and to have physical buttons for things like opening and selecting items from the VRChat radial action menu.
Turn on the gamepad and put it in pairing mode, according to the manufacturer’s instructions.
Go to Windows Settings → Bluetooth & devices → Devices → Add device.
Select Bluetooth when prompted for the kind of device to add.
Once the device is connected, in the Windows toolbar, search and run Set up USB Game Controllers.
Calibrate the joystick on the game controller (if your manufacturer’s device manual has hardware calibration instructions do this first).
Open SteamVR and check the gamepad shows up in the SteamVR status window alongside your trackers and headset.
Proceed to setup SteamVR bindings for VRChat. There are no default bindings available so you will need to create new ones from scratch.
In the StretchSense SteamVR App, train a new model that excludes any gestures for button actions that have been mapped to the gamepad. We recommend training a model that has Trigger, Grip and Menu to improve stability while using the gamepad in that hand.
We recommend using the following SteamVR bindings for VRChat. Additionally binding the Menu (Combined) action will allow all 3 menu types in VRChat to be triggered from a single button, leaving the other gamepad buttons free:
![]() | ![]() |
![]() |
Check the Return bindings with left hand under the Extra Settings tab to allow the left-hand radial menu to be navigated using the gamepad’s left joystick. |
Under the hood, VRChat uses the Mixamo Y-Bot skeleton for its animation retargeting. Avatars rigged and weight painted to this skeleton will have their hands look the best when SteamVR skeleton data is applied to the hands. Other skeletons, especially those ripped from other games may not have their fingers animate correctly.
Optionally, avatar creators can upload their avatar to Mixamo and use its auto-rigging feature, then download the resulting FBX to get the fingers looking optimal in the VRChat Creator Companion.
https://sketchfab.com/3d-models/y-bot-from-mixamo-f114e5b0bd2141119544756530560e48
We recommend resetting the SteamVR controller bindings for VRChat to the default VRChat Default Bindings for Valve Index prior to making further adjustments or some of the buttons such as the D-Pad/Joystick will not work correctly. Alternately, use our StretchSense VRChat configuration for Index Controller from this guide, which is based on VRChat’s defaults, but customised to work with the StretchSense SteamVR App.
If you get a Missing Required Bindings error when starting VRChat, this can happen when Vive or Tundra trackers are detected by default. Go to SteamVR Settings → Manage Controller Bindings and check the active controller binding is set to Index Controller and either the VRChat Default Bindings for Valve Index profile or a custom one derived from this.
For more information on how VRChat supports SteamVR Input 2.0, please read the following articles:
Follow our OpenGloves Configuration Guide to configure the OpenGloves SteamVR add-on to work with your tracker and strap combination.
In StretchSense App for SteamVR v0.9.0 or below, you may need to adjust apps like VRCFaceTracking to use a different OSC port other than 9000
.
Update the OSC address configuration in VRCFT.
In your Steam library, change the VRChat launch arguments to add the following:
--osc=9002:127.0.0.1:9001
Changelog | Version | Publish Date (YYYY/MM/DD) |
---|---|---|
Add guide for using gamepads and Studio Gloves together | v1.1.0 | 2024/09/06 |
Add note about OSC port collisions with OpenGloves | v1.0.1 | 2024/08/29 |
Initial version. | v1.0.0 | 2024/08/26 |