Humanoid bones & VRChat rig requirements
Reference for the bone mapping avatar-armature infers and validates, sourced from the
VRChat Rig
Requirements and Unity's HumanBodyBones. Full text:
docs/reference/humanoid-bones.md.
Required by VRChat (humanoid)
avatar armature check model.fbx --json # the inferred mapping + what is missing- Spine chain: Hips, Spine, Chest, Neck — and Shoulders — must all be present/mapped.
- Head: Head.
- Hands: LeftHand, RightHand (plus the lower/upper arm chain feeding them).
- Feet: LeftFoot, RightFoot (plus the leg chain).
Fingers, eyes, jaw, toes, and the upper-chest are optional but enable extra features (hand-tracking detail, simulated eye look, visemes/jaw).
Notes that drive validation rules
- Eye bones point up. SDK3 expects eye bones oriented upward, not outward.
- T-pose is expected at import for correct muscle/retarget setup.
- A clean single skeleton root (no stray extra roots) is expected.
Naming conventions we infer from
| Humanoid bone | Names that map to it (examples) |
|---|---|
Hips | Hips, hip, pelvis, mixamorig:Hips, Bip01_Pelvis, J_Bip_C_Hips |
LeftUpperArm | LeftUpperArm, mixamorig:LeftArm, Bip01_L_UpperArm, J_Bip_L_UpperArm, arm_L |
Head | Head, head, mixamorig:Head, Bip01_Head, J_Bip_C_Head |
Bone-name → Humanoid mapping must tolerate many rig exporters. Examples that all map to
Hips: Hips, hip, pelvis,
mixamorig:Hips, Bip01_Pelvis, J_Bip_C_Hips (VRoid). The
inference table lives in avatar-armature and is data-driven so it can grow. Canonicalizing
these names is exactly what armature repair does so Unity's humanoid
auto-mapper recognizes the rig.