Av 3.0 head prop constraint guide
Head prop constraints are useful when you want a local prop, accessory, camera gag, sign, halo, screen, or other object to follow the avatar's head while still being controlled as an Avatar 3.0 feature.
Use akalink's original video for the Unity demonstration, then use the checklist below for VRChat constraints, avatar toggles, testing, and performance.
Build one simple prop in a duplicate avatar project before wiring it into a full expression menu.
- Start from a backed-up Creator Companion avatar project with a valid VRC Avatar Descriptor.
- Create the prop, place it correctly, then constrain it to the intended head or helper transform.
- Test the prop in Play Mode, Gesture Manager or SDK testing, and an uploaded/private VRChat test before polishing menus.
VRChat now provides its own constraint components. Unity constraints on avatars can be converted at runtime, but VRChat recommends using VRChat constraints directly for more accurate behavior and performance ranking.
Video Companion
Use the video for the Unity-side sequence, then use the notes below to check whether the setup is still sensible for the current SDK and avatar performance system.
Creator: akalink
Watch on YouTube: https://www.youtube.com/watch?v=SX4T0-e8JDc
What The Setup Is For
A head prop constraint setup is usually trying to make an object follow the avatar's head without simply making the entire workflow messy in the armature.
Common examples:
- a floating halo or sign
- a camera prop or screen near the face
- a local-only guide object
- a head-follow accessory that can be toggled
- a prop that needs controlled offset from the head
- a gag object that should move with head motion
The goal is predictable follow behavior, clean toggles, and no surprise performance problems.
Constraint Concepts
Constraints let one object follow another object's position, rotation, scale, or aim behavior.
| Constraint idea | Beginner meaning | Head prop use |
|---|---|---|
| Source | The object being followed | Head bone, helper object, or prop anchor |
| Target/constrained object | The object being moved by the constraint | The prop or prop parent |
| Weight | How strongly the source affects the constrained object | Usually 1 for direct follow |
| Offset | The difference between source and target position or rotation | Keeps the prop beside, above, or in front of the head |
| Active state | Whether the constraint is currently affecting the object | Useful for toggles and testing |
For VRChat avatars, prefer VRChat constraint components when building new setups.
Suggested Avatar Hierarchy
Keep the prop setup easy to understand.
A simple pattern is:
Avatar Root
Armature
HeadProp_Setup
HeadProp_Anchor
HeadProp_Model
Use a helper object or anchor when it makes the offset easier to manage. That keeps the visible prop separate from the transform that handles constraint logic.
Basic Setup Checklist
Before wiring expression menus, make the physical setup work:
- Put the prop model in the avatar scene.
- Create a clean parent object or anchor for the prop.
- Position the prop where it should appear relative to the head.
- Add the appropriate VRChat constraint to the prop parent or anchor.
- Assign the head or helper transform as the source.
- Set the weight and offset deliberately.
- Test movement by rotating the avatar head or using avatar testing tools.
- Only then add toggles, parameters, or animation controller logic.
If the prop does not follow correctly before menu setup, the menu will not fix it.
Toggles And Avatar 3.0
For an Avatar 3.0 prop, you may want an expression menu toggle that shows, hides, or changes the prop.
Common toggle choices:
- enable or disable the visible prop object
- enable or disable a parent group
- animate blend shapes, materials, or scale
- switch between prop variants
- control whether interaction or extra effects are active
Keep the parameter budget in mind. One simple on/off prop does not need a large parameter setup.
Testing In VRChat
Do not rely only on the Unity Scene view.
Test:
- head movement from multiple angles
- crouching, leaning, and looking up/down
- mirrors
- first-person visibility
- desktop and VR movement
- toggle state after avatar reset
- whether the prop clips into the head, face, hair, or camera view
- avatar performance rank after the constraint and prop are added
Head-follow props can look fine from the outside and still be annoying in first person.
Performance And Compatibility
Watch these costs:
- constraint count
- prop mesh complexity
- material slots
- shader complexity
- extra Animator layers and parameters
- particles, lights, or audio attached to the prop
- platform restrictions if you care about Android or Quest support
Small props can still hurt performance if they bring expensive materials, lights, or overly complex controller logic.
Common Beginner Mistakes
Constraining the visible model directly
It often works, but a clean parent or anchor makes offsets, toggles, and debugging easier.
Adding menu logic before the prop follows correctly
Test the constraint first. Then add expressions, toggles, or animation controller work.
Ignoring first-person comfort
A head prop can block the view, clip into the camera, or feel distracting even when it looks good in a mirror.
Using old Unity-constraint advice without checking VRChat constraints
Older tutorials may use Unity constraints. Check the current VRChat constraint docs and use VRChat constraints for new avatar work where possible.
Forgetting performance rank
Constraints and props count. Test the final avatar rather than assuming one small feature is free.
Help! The prop jumps when I enable the constraint.
Check the source transform, offset, and parent hierarchy. Use a helper anchor if the visible prop is difficult to align directly.
Help! The prop follows position but not rotation.
Confirm the constraint type matches the behavior you need. Position, rotation, parent, aim, and scale constraints solve different problems.
Help! The prop works in Unity but not in VRChat.
Check SDK warnings, allowed avatar components, constraint conversion, expression parameters, and whether the prop is disabled by an animation state after upload.
Help! The prop blocks my view.
Test in first person and VR, then adjust the anchor offset or add a local visibility toggle. A prop that looks good to others can still be uncomfortable for the wearer.
Official References
- VRChat Creation: Constraints
- VRChat Creation: Allowed Avatar Components
- VRChat Creation: Avatar Optimization Tips
- Unity Manual: Constraints
Helpful follow-up pages
- Avatar Creation
- Avatar Optimization Checklist
- VRChat Avatar Dynamics Tutorial: Grab Prop Toggles
- How to improve and optimize dynamic bones with constraints
- Setting Up VRChat Creator Companion
Final Advice
Build the prop follow behavior first, then add Avatar 3.0 menu polish. A clean anchor, the right constraint type, careful first-person testing, and a quick performance check will save you from most head-prop problems.
Related Docs
Topics: avatars, constraints