If you’ve ever dipped your toes into VRChat avatar creation—specifically custom visemes or eye tracking—you’ve likely stumbled upon a peculiar term in the Unity Animator parameters list: vrcfaceblendh .
| Direct BlendShape | vrcfaceblendh Parameter | |------------------|----------------------------| | Hardcoded to one mesh | Works across LODs / multiple meshes | | May conflict with visemes | Easily blended with other face parameters | | No built-in normalization | Can be remapped (0–100% to 0–1 float) | | Can break avatar dynamics | Fully supported by Expression Menu & Actions | vrcfaceblendh
Let’s break down what vrcfaceblendh actually is, why it matters, and how to use it without breaking your avatar. In simple terms: vrcfaceblendh is a float parameter that controls a custom facial BlendShape (morph target) on your avatar. If you’ve ever dipped your toes into VRChat
The "h" in vrcfaceblendh ? That stands for (or historically, "head")—it's designed for face BlendShapes on a humanoid rig. Why Use vrcfaceblendh Instead of Direct BlendShape Control? You might ask: Can't I just animate the BlendShape by its original name (e.g., smile_left )? The "h" in vrcfaceblendh
While VRChat provides built-in parameters for visemes ( vrc_viseme_* ) and eye tracking ( vrc_eyelid_* ), vrcfaceblendh is part of the custom expression pipeline. It allows you to drive specific BlendShapes directly from an animation or a gesture.
At first glance, it looks like a typo. "Blendh"? Shouldn't it be "BlendShape"? But make no mistake—this parameter is one of the most powerful (and misunderstood) tools for high-fidelity facial expression management.