OSC program that makes SteamVR controller actions accessible as Avatar Parameters.
Currently supports Valve-Index and Oculus(Meta)-Touch Controllers.
In Action menu, got to Options>OSC>Enable
Run Configurator.exe
to configure the program.
Then just run the ThumbParamsOSC.exe
and you are all set!
If you have problems with this program, try this to fix it:
- Automatic way:
- Close VRChat.
- Run
Configurator.exe
and click on the Button "Reset OSC Config" - Startup VRChat again and it should work.
- Manual way:
- Close VRChat.
- Open 'Run' in Windows (Windows Key + R)
- Type in
%APPDATA%\..\LocalLow\VRChat\VRChat\OSC
- Delete the folders that start with 'usr_*'.
- Startup VRChat again and it should work.
All parameters are case-sensitive.
Two int parameters for the Thumb position on each controller:
- RightThumb
- LeftThumb
The Integer represents the position of each thumb with the numbers from 0 to 4:
Value | Real Position |
---|---|
0 | Not Touching |
1 | A/X Button |
2 | B/Y Button |
3 | Trackpad |
4 | Thumbstick |
Additionally, bool versions of the thumb positions are available, They're mapped the following:
- [Left/Right]AButton
- [Left/Right]BButton
- [Left/Right]TrackPad
- [Left/Right]ThumbStick
Another bool is also available to detect if the thumb is on either the A or B buttons, or Touching both at the same time.
- [Left/Right]ABButtons
All button clicks are available as bool parameters, They're mapped the following:
- [Left/Right]AButtonClick
- [Left/Right]BButtonClick
- [Left/Right]TrackPadClick
- [Left/Right]ThumbStickClick
If you also need the Trigger pull values, you'll have to add two additional parameters of "float" type.
- [Left/Right]Trigger
The values range from 0.0 to 1.0 for both of these parameters, depending on how much you pull the trigger.
4 Float Parameters for the thumb position on the trackpad:
- [Left/Right]TrackPad[X/Y]
4 Float Parameters for the Thumbstick position:
- [Left/Right]ThumbStick[X/Y]
The Trackpad Parameters range from -1.0 to 1.0. you can think of it like a coordinate system, with the middle of the Trackpad being the origin. These parameters are only available on Index Controllers.
A few more bools to determine if the Left or Right stick was moved:
- [Left/Right]StickMoved
Two bools and two Floats to determine if the controller is gripped and how strongly its gripped:
- [Left/Right]Grab
- [Left/Right]GrabForce
Bools for every available Tracker Power button is available aswell. This does require Tracker roles to be set up in SteamVR:
Go to SteamVR-Settings > Manage Trackers
and set up tracking roles for each tracker respectively:
- LeftFootTracker
- RightFootTracker
- WaistTracker
- ChestTracker
- LeftElbowTracker
- RightElbowTracker
- LeftKneeTracker
- RightKneeTracker
Finally, the int ControllerType gives what controller is currently being used:
- Meta/Oculus Touch (2)
- Index (1)
- Any other controller/No Controller (0)
After adding any of those Parameter, you can use them just like other parameters in your Animation Controllers.
You can run this by using ThumbParamsOSC.exe {Arguments}
in command line.
Option | Value |
---|---|
-d, --debug | prints values for debugging |
-i IP, --ip IP | set OSC IP. Default=127.0.0.1 |
-p PORT, --port PORT | set OSC port. Default=9000 |
Running Configurator.exe
lets you customize the Parameters that you want to have sent to VRChat, and some more things:
Unchecking or checking any of the parameters and the hitting save
will save the current settings.
Floating Time
allows values "float" on the last value registered, it is measured in seconds.
If Floating Time
is set to -1 for boolean values, they will act like a toggle instead of always updating to the current state.
On first launch of the program, it registers as an Overlay app on SteamVR just like other well known programs like XSOverlay or OVRAdvancedSettings and can be launched on startup:
After setting the option to ON it will launch the program without the console on SteamVR startup.
- pyopenvr thank you.
- benaclejames and Greendayle for the inspiration!
- VRC-ASL_Gestures by me :)
- VRCImmersiveImmobilize by me :)
- AutoImmobilizeOSC by SouljaVR