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.

Recommended Head Prop Test

Build one simple prop in a duplicate avatar project before wiring it into a full expression menu.

  1. Start from a backed-up Creator Companion avatar project with a valid VRC Avatar Descriptor.
  2. Create the prop, place it correctly, then constrain it to the intended head or helper transform.
  3. Test the prop in Play Mode, Gesture Manager or SDK testing, and an uploaded/private VRChat test before polishing menus.
VRChat note

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:

  1. Put the prop model in the avatar scene.
  2. Create a clean parent object or anchor for the prop.
  3. Position the prop where it should appear relative to the head.
  4. Add the appropriate VRChat constraint to the prop parent or anchor.
  5. Assign the head or helper transform as the source.
  6. Set the weight and offset deliberately.
  7. Test movement by rotating the avatar head or using avatar testing tools.
  8. 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

Helpful follow-up pages

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