StretchSense SteamVR VRChat Guide

https://store.steampowered.com/app/438100/VRChat/

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

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

Description

Image

Mini Wireless Bluetooth Gamepad VR Controller (optional)
Mini-Wireless-Bluetooth-Gamepad-VR-Controller-Remote-Pad-For-IOS-Android-Smartphone-PC-Laptop-Game-Accessories.jpg_.png

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

  1. In Windows, unzip and place the profile json in %USERPROFILE%\Documents\steamvr\input:

  2. 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

Screenshot 2024-08-26 113416.png

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 to Udon Menu Button . Remove all actions bound to Single for the B button.

Left Hand

Pose

Button Name

Action

Type

Description

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 Forward
Radial Menu Selection Up

Scalar Y: 1.0 *

Make the horns gesture with your thumb forward, parallel to your index finger.

Left

Strafe Left
Radial 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 Right
Radial 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 Backward
Radial 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

Pose

Button Name

Action

Type

Description

Left Up

Forward Strafe Left
Radial 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 Left
Radial 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 Right
Radial 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 Right
Radial 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

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 Menu
Udon 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

  1. Turn on the gamepad and put it in pairing mode, according to the manufacturer’s instructions.

  2. Go to Windows Settings → Bluetooth & devices → Devices → Add device.

  3. Select Bluetooth when prompted for the kind of device to add.

  4. Once the device is connected, in the Windows toolbar, search and run Set up USB Game Controllers.

  5. Calibrate the joystick on the game controller (if your manufacturer’s device manual has hardware calibration instructions do this first).

  6. Open SteamVR and check the gamepad shows up in the SteamVR status window alongside your trackers and headset.

  7. Proceed to setup SteamVR bindings for VRChat. There are no default bindings available so you will need to create new ones from scratch.

  8. 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

  1. Update the OSC address configuration in VRCFT.

  2. 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)

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