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.
rml_mods
folder. This folder should be at C:\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.vrc_parameters.json
template from the static folder (or from Releases) into C:\Users\{USER}\AppData\LocalLow\VRChat\VRChat\OSC\{USER_UUID}\Avatars
.[!NOTE] As of v1.0.3,
vrc_parameters.json
template with all the parameters now gets created atC:\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.
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.
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