Unity Editor tools for Pawlygon's avatar face-tracking workflow.
This package helps you duplicate source avatar assets, prepare a working folder structure, swap updated meshes and the primary humanoid Animator rig from a modified FBX back onto a prefab, and generate .hdiff patch files for distribution.
- Guided
Avatar Setup Wizardavailable from!Pawlygon/Avatar Setup Wizard - Batch setup for one or many avatar entries in a single run
- Shared-folder or separate-folder output layouts depending on your project needs
- Automatic creation of working folders, copied FBX assets, copied prefabs, and working scenes
- Reimport detection for modified FBX files
- Review UI for matching FBX skinned meshes to prefab skinned meshes and replacing the prefab's primary humanoid Animator rig before applying replacements
- Automatic creation of
FTDiffGeneratorassets for patch generation .hdiffgeneration for both FBX and.metachanges using bundledhdiffzbinaries- Optional prefab helpers for Pawlygon VRCFT setup and importing the latest PatcherHub package
- Built-in
FX Checkwizard step that runs the gesture and eye-blink analysis on each generated avatar, copies its FX controller into the avatar'sVRChat/folder, applies the guards to that copy and assigns it to the avatar FX Gesture Checkeravailable from!Pawlygon/Tools/FX Gesture Checker— scans an avatar's FX AnimatorController for gesture-driven facial expression transitions (GestureLeft/GestureRight) and applies aFacialExpressionsDisabledguard so they do not fire when face tracking is active, and detects eye-blink layers to apply anEyeTrackingActiveguard so blinking stops while eye tracking is active. Supports per-transition and per-layer guards, blink-layer confidence detection and work-on-copy mode. Guarded layers return to their default state once face or eye tracking stopsPatch Config Package Rulesavailable from!Pawlygon/Tools/Patch Config Package Rules— adds per-config package requirements to existing PatcherHubFTPatchConfigassets. Auto-lists every config in the project for multi-select, auto-fills a rule from your installed packages (common avatar packages listed first) with pre-written missing/outdated messages, and supports full add/edit/reorder/remove plus batch-applying a rule to many configs at onceEye Muscle Settingsavailable from!Pawlygon/Tools/Eye Muscle Settings— reads and adjusts the humanoid eye muscle limit settings (In, Out, Up, Down) on an avatar's ModelImporter for face tracking compatibility. Provides synced or split left/right sliders, live scene preview with bone rotation and blendshape activation, and writes changes back to the ModelImporter with a single clickFace Tracking Extrasavailable from!Pawlygon/Tools/Face Tracking Extras— generates extra face tracking driven animations (ears, tail and pupils) from a handful of poses. Detects the ear and tail bone chains (skipping constraint helper bones), lets you pose Look Right/Up/Down, Sad, Happy, Happy Flick, Tail Right and Tail Happy on the avatar in the scene with live ear mirroring (Look Left and Tail Left are mirrored automatically), and previews how they blend, including the happy ear flick and tail wag loops. Generates baked clips, a 4-layer FX controller (each ear follows its own eye, mood from the average smile, a "Tail follows Jaw" toggle, and an improved fake pupil dilation that steps aside when real dilation is available), and a!Pawlygon - Face Tracking ExtrasVRCFury prefab inPrefabs/FaceTrackingExtras
The current workflow is built around a six-step editor wizard:
Setup- choose source FBX/prefab assets, configure output folders, and create the working structureImport Modified FBX- replace the copied FBX with your edited version and wait for Unity to reimport itSelect Replacements- review detected skinned mesh matches plus the primary humanoid Animator rig and choose which replacements to applyPrefabs- optionally add Pawlygon VRCFT setup or import the latest PatcherHub unitypackageFX Check- analyze each avatar's FX controller for gesture-driven facial expressions and eye-blink layers, then applyFacialExpressionsDisabledandEyeTrackingActiveguardsFinish- review the generated paths and completed output
During setup, the wizard creates a working structure like this:
Assets/<MainFolder>/<AvatarName>/
FBX/
Prefabs/
Internal/
Scenes/
In shared-folder mode, multiple avatar entries can be placed into the same FBX/, Prefabs/, and Internal/Scenes/ structure.
The package includes FTDiffGenerator, an editor asset that compares the original FBX against the modified FBX and writes patch files into:
patcher/data/DiffFiles/
The generator creates:
- one
.hdifffile for the FBX itself - one
.hdifffile for the FBX.meta
The wizard creates these generator assets for you automatically as part of the avatar setup flow.
- Unity 2022.3 or later
- Hash's EditDistributionTools — Inspiration for distribution workflows using binary patching
- hpatchz — High-performance binary diff/patch library by housisong
- tkya — Countless hours of technical support to the community
- VRChat Community — Feedback, testing, and feature requests
Thank you to everyone who helped make Pawlygon Unity Tools possible!
This project is licensed under CC BY-NC-SA 4.0.
HDiffPatch (Packages/net.pawlygon.unitytools/hdiff/hdiffz/) is distributed under the MIT License.
Made with ❤ by Pawlygon Studio