A ResoniteModLoader mod, that let's you use VRCFaceTracking Program for Eye and Face Tracking inside Resonite.
Warning
This is not a Plug and Play solution, it requires setup in-game.
- Install ResoniteModLoader.
- Place VRCFTReceiver.dll into your
rml_mods
folder. This folder should be atC:\Program Files (x86)\Steam\steamapps\common\Resonite\rml_mods
for a default install. You can create it if it's missing, or if you launch the game once with ResoniteModLoader installed it will create the folder for you. Copy(Not required as of v1.0.3)vrc_parameters.json
template from the static folder (or from Releases) intoC:\Users\{USER}\AppData\LocalLow\VRChat\VRChat\OSC\{USER_UUID}\Avatars
.- Launch VRCFaceTracking
- Start the game. If you want to verify that the mod is working you can check your Resonite logs.
- Use the dynamic variables to drive your avatar's blendshapes
Note
As of v1.0.3, vrc_parameters.json
template with all the parameters now gets created at C:\Users\{USER}\AppData\LocalLow\VRChat\VRChat\OSC\vrcft\Avatars
on initial install, so you don't need to copy it over manually anymore. You can edit this file if you wish to change the parameters.
- VRCFaceTracking 5.1.1 (Version 5.2.3 is broken currently, please use 5.1.1)
- How to run/install v5.1.1 even though the certificate has expired: Download the MSIX file, rename the extension to .zip and export it in a folder. Then you should be able to run VRCFaceTracking.exe in that folder to launch VRCFT v5.1.1
A Simple Template Prefab that I use to drive my avatar's face tracking blendshapes. Make to sure to assign the proper fields in the DV
slot for disabling the face tracking in Desktop.
- Template & Sample Avatar:
resrec:///U-hazre/R-03862F323FD20FBF7E5154015D67E580586E826AC732BD956239C1A72D084EB8
Basically the way VRCFT works is that it waits for a OSC message that says which json file to load at C:\Users\{USER}\AppData\LocalLow\VRChat\VRChat\OSC\{USER_UUID}\Avatars
which your VRChat avatar basically generates (If you use VRCFT Template). In this Json file, it includes all the parameters your avatar requires.
Since we aren't using VRCFT for VRChat, we need to get creative and create our own JSON file with parameters we need. You can find example of my own parameters file in /static/vrc_parameters.json
. If you need access to any other parameters, you need to add it by basically copy pasting the same template used for each paramter. For example:
{
"name": "FT/v2/EyeLeftX", // Paramter name
"input": {
"address": "/avatar/parameters/FT/v2/EyeLeftX", // Paramter name address
"type": "Float"
},
"output": {
"address": "/avatar/parameters/FT/v2/EyeLeftX", // Paramter name address
"type": "Float"
}
}
You can find all of the paramters here at VRCFT Docs (FYI: They aren't exactly 1:1 to the one used for the JSON, might need to look into how some VRC avatars do it or ask in their Discord, You can find me there as well if you need help)
The rest is pretty straight forward, we just forward all the osc messages as Resonite's ValueStream's. Which is accessible using dynamic variable in this format: User/{Paramter name}
.
You can find all the dynamic variables in a slot called VRCFTReceiver
in your User Root.
Then you can use those dynamic variables to drive blendshapes or whatever however you want but you can use my prefab as a template.
This last part of assigning Dynamic variables to Blendshapes is the most tedious part, so I recommend doing it in Desktop Mode.
Last Tested with VRCFaceTracking v5.1.1, Headset: Quest Pro, Virtual Desktop/Local ALXR Modules