Physics Bones Tutorial part 1: Phys Bone Physics
PhysBones are VRChat's built-in way to add secondary motion to avatars and worlds. They are commonly used for hair, ears, tails, clothing details, straps, accessories, plants, and other parts that should move after the main body moves.
Use akalink's original video for the Unity demonstration, then use the checklist below to understand the physics settings before changing values.
Start with one simple bone chain and tune it before adding physics to the whole avatar.
- Open a backed-up Creator Companion avatar project with no red Console errors.
- Add or inspect one VRC Phys Bone component on a non-humanoid secondary bone chain.
- Test motion, grabbing, posing, colliders, and avatar performance before copying the setup elsewhere.
Do not use humanoid body bones such as hips, spine, chest, neck, head, arms, or legs as PhysBone roots. VRChat recommends using separate duplicated or accessory bones for PhysBone chains.
Video Companion
Use the video for the step-by-step Unity workflow, then use the notes below as a checklist while you test your own avatar.
Creator: akalink
Watch on YouTube: https://www.youtube.com/watch?v=B4MTUG9KhVA
What PhysBones Actually Do
A VRC Phys Bone component defines a chain of transforms that can react to movement. Instead of every accessory staying stiffly attached to the avatar, the chain can lag, swing, pull back, stretch, squish, collide, or be grabbed depending on the settings.
Think of PhysBones as controlled secondary motion:
| Example | What PhysBones can add |
|---|---|
| Hair strand | delayed swing and return |
| Tail | follow-through after body movement |
| Ears | soft movement when the head turns |
| Hoodie strings | small reactive motion |
| Bag strap | subtle motion and collision |
| Plant or cable in a world | soft movement for environmental detail |
The goal is not maximum wobble. The goal is believable motion that still respects avatar performance.
Before You Add PhysBones
Check these things first:
- the avatar opens through VRChat Creator Companion
- the project uses a supported Unity and SDK setup
- the avatar has a valid VRC Avatar Descriptor
- there are no red Console errors
- the target bone chain is not part of the humanoid body rig
- the mesh and bones are already behaving correctly without physics
- you have a backup before testing new dynamics settings
If the avatar is already broken, adding PhysBones can make troubleshooting harder.
The Main Physics Settings
PhysBones expose a lot of options, but beginners should understand the motion basics first.
| Setting area | What it affects | Beginner tuning idea |
|---|---|---|
| Pull | How strongly the chain returns toward rest | Increase if the bone drifts too far or feels too loose |
| Spring | How bouncy the return feels | Increase carefully for lively motion; too much can feel rubbery |
| Stiffness | How much the bone resists motion | Increase if the chain bends too freely |
| Gravity | Directional pull at rest | Use for hanging objects, but test from multiple poses |
| Immobile | How much avatar movement affects the chain | Useful when movement creates too much swinging |
| Limits | How far the chain can rotate | Use to prevent impossible bending |
| Collision | How the chain reacts to colliders | Add only where interaction or body blocking is needed |
| Grab and Pose | Whether users can grab or hold the chain | Disable if interaction would be distracting or inappropriate |
Change one setting at a time. If you change Pull, Spring, Gravity, and Limits together, you will not know which value caused the result.
A Simple Tuning Workflow
Use this loop for one chain:
- Add or select the VRC Phys Bone component.
- Confirm the root transform targets the correct chain.
- Start with subtle motion.
- Test movement in Unity and through VRChat testing.
- Adjust Pull and Stiffness before chasing advanced settings.
- Add limits if the chain bends too far.
- Add colliders only after basic motion feels good.
- Check avatar performance before duplicating the setup.
Once one chain behaves well, you can reuse the thinking on similar chains.
Grabbing, Posing, And Interaction
PhysBones can be interactive. Depending on the settings, users may be able to:
- grab a bone chain
- move it around
- pose it and hold it in place
- collide with it using hands, fingers, or other configured colliders
Interaction can be fun, but it should be intentional. On avatars, think about personal space, performance, and whether other players should be allowed to interact with that part of the avatar.
Colliders And Standard Avatar Colliders
PhysBone colliders define shapes that affect PhysBone motion. VRChat also defines standard avatar colliders around body parts such as hands, fingers, head, torso, and feet.
Use colliders when:
- hair should not pass through the head or shoulders
- a tail should avoid clipping through the body
- an accessory should react to hands
- a world object needs soft interaction
Avoid adding colliders everywhere. Collision checks add complexity, and unnecessary colliders can hurt avatar performance.
Performance And Platform Checks
PhysBones are more VRChat-native than the old Dynamic Bones workflow, but they are still part of avatar performance.
Watch:
- number of PhysBone components
- number of affected transforms
- PhysBone colliders
- collision checks
- contacts and other Avatar Dynamics systems
- whether mobile or Android performance limits remove features
If an avatar exceeds VRChat's performance thresholds, PhysBones and related components may be limited or removed on some platforms. Test the avatar performance rank before assuming the setup is safe.
Common Beginner Mistakes
Adding physics to humanoid bones
Do not make hips, spine, chest, neck, head, arms, or legs the PhysBone root. Use accessory or duplicated bones for secondary motion.
Making motion too strong
Large bouncy movement can look funny in the editor but distracting in VR. Start subtle and increase only when the avatar needs it.
Adding colliders before the motion works
Get the chain moving correctly first. Then add colliders to solve specific clipping or interaction problems.
Copying settings to every chain
Hair, ears, tails, and clothing need different behavior. Reused settings are a starting point, not a finished setup.
Ignoring performance rank
Avatar Dynamics systems contribute to performance. Test the final avatar, especially if you care about mobile or Android users.
Help! My PhysBone does not move.
Check that the component has the correct root transform, the target chain has child bones, the component is enabled, and the avatar has no Console errors blocking normal SDK behavior.
Help! The bone bends too far or clips through the avatar.
Reduce the motion first with Pull, Stiffness, and limits. Add colliders only after the basic motion is controlled enough to tune predictably.
Help! Grabbing or posing feels wrong.
Review Allow Grabbing, Allow Posing, Grab Movement, and interaction settings. If the interaction is not needed, disable it and keep the chain as visual motion only.
Help! The avatar loses PhysBones on another platform.
Check the avatar performance rank and platform limits. Reduce components, transforms, colliders, and collision checks before assuming the SDK or upload failed.
Official References
- VRChat Creation: PhysBones
- VRChat Creation: Avatar Dynamics
- VRChat Creation: Performance Ranks
- VRChat Creation: Avatar Components
Helpful follow-up pages
- Avatar Creation
- Avatar Optimization Checklist
- Dynamic Bones Settings and Optimization
- Set Up Twist Bones on VRChat Avatar in Unity
- Setting Up VRChat Creator Companion
Final Advice
PhysBones work best when they are subtle, intentional, and tested. Start with one chain, understand what each motion setting is doing, then expand only after the avatar still looks good and passes performance checks.
Related Docs
Topics: physbones