StretchSense SteamVR VRChat Guide
Required Materials
Software
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 |
Hardware
The below optional hardware may improve your VRChat experience:
Description | Image |
---|---|
Mini Wireless Bluetooth Gamepad VR Controller (optional) |
General Notes
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.
SteamVR Controller Profile
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.
Controller Profile Global Binding
Controller Profile One_Hand Binding
|
VRChat Gestures
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 toUdon Menu Button
. Remove all actions bound to Single for the B button.
Left Hand
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 | Scalar Y: 1.0 * | Make the horns gesture with your thumb forward, parallel to your index finger. | |
Left | Strafe LeftRadial Menu Selection Left | Scalar X: -1.0 * | Make the horns gesture with your thumb pulled towards the left side of your hand, away from your palm. | |
Right | Strafe RightRadial Menu Selection Right | Scalar X: 1.0 * | Make the horns gesture with your thumb pulled towards the right side of your hand, towards your palm. | |
Down | Walk BackwardRadial Menu Selection Down | Scalar X: -1.0 * | Make the horns gesture with your thumb curled in, with your knuckle arching up and the tip pressing towards middle of your middle finger. This direction is not used often as it is a fatiguing pose for the thumb. | |
Grip | Grab objects in world | Scalar: 1.0 * | 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 | Scalar: 1.0 * | Point gesture with thumb pointing upwards. Fully curl in your index finger, as if you were pulling a real trigger. | |
A Button | Toggle mic | Single | 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 | LONG PRESS | Touch your ring finger to your thumb, with your thumb resting on the middle part of your ring finger. Keep your other fingers extended. |
Left Hand Extended Joystick
The following optional poses extend the joystick to 8 directions to improve the selection range of the VRChat Action Menu.
Pose | Button Name | Action | Type | Description |
---|---|---|---|---|
Left Up | Forward Strafe LeftRadial Menu Selection Left Up | Scalar Y: 1.0 * | Make the horns gesture with your thumb pulled towards the top left side of your hand, away from your palm. | |
Left Down | Backward Strafe LeftRadial Menu Selection Left Down | Scalar X: -1.0 * Scalar Y: -1.0 * | Make the horns gesture with your thumb curled in, with your knuckle arching up and the tip pressing towards middle of your middle finger. Pull towards the left side of your hand. This direction is not used often as it is a fatiguing pose for the thumb. | |
Right Up | Forward Strafe RightRadial Menu Selection Right Up | Scalar X: 1.0 * Scalar Y: 1.0 * | Make the horns gesture with your thumb pulled towards the top right side of your hand, away from your palm. | |
Right Down | Backward Strafe RightRadial Menu Selection Right Down | Scalar X: 1.0 * Scalar Y: -1.0 * | Make the horns gesture with your thumb curled in, with your knuckle arching up and the tip pressing towards middle of your middle finger. Pull towards the right side of your hand. This direction is not used often as it is a fatiguing pose for the thumb. |
Right Hand
The right hand is used for interaction and selecting UI elements with a laser pointer.
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 | Scalar: 1.0 * | 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 | Scalar: 1.0 * | Point gesture with thumb pointing upwards. Fully curl in your index finger, as if you were pulling a real trigger. | |
Menu | Toggle SteamVR Dashboard | LONG PRESS | 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 | Single | 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 | LONG PRESS Double PRESS | Touch your ring finger to your thumb, with your thumb resting on the middle part of your ring finger. Keep your other fingers extended. |
Using Third Party Gamepads
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.
Gamepad SteamVR Setup
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.
Gamepad SteamVR Bindings
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:
|
VRChat Hand Skeleton
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
Troubleshooting
Missing Required Bindings
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:
Using SlimeVR, Mocopi or Third-Party Straps for VRChat
Follow our OpenGloves Configuration Guide to configure the OpenGloves SteamVR add-on to work with your tracker and strap combination.
OSC Port Collisions with VRChat
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
.
Changing OSC port in VRCFaceTracking
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 clarification about version required for OSC port collision fix. | v1.1.1 | 2024/12/02 |
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 |