Skip to content

A Mod that Let's you use VRCFaceTracking in Resonite

License

Notifications You must be signed in to change notification settings

hazre/VRCFTReceiver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VRCFTReceiver

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.

Installation

  1. Install ResoniteModLoader.
  2. Place VRCFTReceiver.dll into your 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.
  3. Copy vrc_parameters.json template from the static folder (or from Releases) into C:\Users\{USER}\AppData\LocalLow\VRChat\VRChat\OSC\{USER_UUID}\Avatars. (Not required as of v1.0.3)
  4. Launch VRCFaceTracking
  5. Start the game. If you want to verify that the mod is working you can check your Resonite logs.
  6. 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.

Requirements

  • 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

Resonite Prefabs

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

How it works

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

Credits