Leap Motion Controller finger tracking for VRChat OSC
Using a Leap Motion Controller from Ultraleap for finger tracking in VRChat without mods.
- VRChat 2022.1.1, build 1167 and up (Open Beta)
- Leap Motion Orion 3.2.1 (I had problems with the new version of Ultraleap, maybe the new versions work for you)
- Make sure that your operating system has NodeJS installed and can execute npm commands.
- Clone the repo and run
npm installin its root directory.
- Run the script with
- If you want to receive VRChat OSC output on port 9001, comment-in the commented-out code in the leapmotion-osc.js file.
The default mode for the controllers is
optimizeHMD, if you want to use this on a flat surface instead, make sure you set
optimizeHMD:false at the very beginning of the
Your avatar receives OSC inputs for 10 float parameters that you need to add to your avatar. You also need to create or use the animations provided in the animations repo folder to create blendtrees that transition from the retracted to the extended state of each finger.
- leftThumb (float)
- leftIndex (float)
- leftMiddle (float)
- leftRing (float)
- leftPinky (float)
- rightThumb (float)
- rightIndex (float)
- rightMiddle (float)
- rightRing (float)
- rightPinky (float)
To do this, I created two layers in my gesture layer (one hand each) and added a custom bool parameter called “leapmotion” to turn OSC value playback on and off ingame.
I recommend using a threshold of
0.9 for the blendtrees, as I have had the best results with this. Please note that the animations provided in the repo are customized to my avatar and have not been tested on other avatars yet. In the worst case you will have to set up the animations and blendtrees yourself.
You can edit my code at any time to add or remove prefixes or change the name of the fingers as you like.
- Initial Release
You can use, edit or embed my code as you like.