Hair Physics
Hair Physics makes the hair swing. It plays every clip on the rig, lets each hair chain hang, lag and bounce as the body moves, and writes that motion into the clip. Put it after Hair Guides and after every Add Animation.
What it does
Section titled “What it does”After Hair Guides, the hair has its own joints, but in every clip those joints stay at rest: the hair moves with the head as one stiff piece. Hair Physics gives them motion.
For every clip on the rig (Idle, Walk, Jog, …) it plays the clip on the body and treats each hair chain like a string of weights on springs:
- the root of each chain moves with the bone it hangs from;
- every other joint is pulled back towards where it would be if the hair kept its drawn shape, drops under Gravity when the head tilts, and trails behind when the body moves fast;
- each joint stays the same distance from the one before it, so the hair never stretches;
- every joint is kept out of the body, so long hair rests on the back instead of sinking through it.
It then writes the result into that clip as rotation keys on every hair joint, at the clip’s own keyframes. The body’s keys are not touched, and the mesh comes out exactly as it went in.
Because the motion is part of the clips, the exported .glb plays the swinging hair in Unreal, Unity, Godot or Blender with no physics setup in the engine.
Keeping the hair out of the body
Section titled “Keeping the hair out of the body”The body the hair collides with is a sphere for the head and capsules along the neck, the spine, the shoulders and the upper arms. Each is fitted to the character: its thickness is the body’s own around that bone, so it sits just inside the surface, and it moves with the skeleton in every clip. Only the part of a bone inside the body collides.
At every step of the simulation, each hair joint is pushed out of every collider, plus Collision margin. Raise the margin when the hair is thick, or rests on clothing, so it lies on top of it.
Turn on Show colliders to see them: while Hair Physics is selected, the viewport draws the colliders as faint wireframes over the character. It’s off by default, and it only changes the drawing, so flipping it never re-runs the simulation. If hair sinks into the body somewhere no collider covers, the colliders are the cause, not the hair settings.
Legs, forearms and hands don’t collide, and neither does the hair with itself.
Loops without a pop
Section titled “Loops without a pop”Every clip loops. Hair Physics plays each one a few times before it records, so the hair has settled into the motion, and records the last time through. The end of the recording is then blended into its start, so the hair’s last key matches its first and the loop plays without a jump.
Checking the result
Section titled “Checking the result”Display Hair Physics and switch the viewport to the Rig view. The Motion picker starts on the first clip; press play to watch the hair swing, and pick the other clips from the list. The Test motion has no hair keys, so the hair stays still in it.
Tuning
Section titled “Tuning”-
Stiffness sets how hard the hair springs back to its drawn shape. Lower lets it hang and swing; higher keeps it close to its shape.
-
Stiffness along hair shapes stiffness from root (left) to tip (right). The default keeps roots firm and lets tips swing. A flat line moves the whole strand as one.
-
Weight sets how heavy the hair feels: heavier hair drops further when the head tilts and lags further behind.
-
Damping sets how quickly a swing dies out. At 0 the hair keeps bouncing; at 1 it settles at once. The default, 0.6, settles a jog’s bounce within a stride or two.
-
Gravity pulls the hair down, in m/s². The hair’s drawn shape is the shape it holds standing still, so spikes stay up and a ponytail stays where you drew it; gravity only moves the hair as far as the head tilts from its rest pose. A bowed head lets the hair fall forward, a raised one lets it fall back. Set it to 0 for hair that only reacts to movement.
-
Collision margin sets how far, in cm, the hair is kept off the body.
These settings apply to every chain unless a guide overrides them.
Per guide
Section titled “Per guide”Short spikes beside long locks want different settings: the spikes should barely wobble while the locks swing. Per guide lists every hair chain on the rig by its guide number, the order Hair Guides lists the guides, with the joint it hangs from. Each guide has its own Weight, Stiffness, Damping and Gravity. A field reads shared until you move it; from then on that guide uses its own number and the rest still follow the settings above. Use shared puts a guide back on them. Stiffness along hair and Collision margin are always shared.
For stiff spikes, raise a guide’s Stiffness and Damping to about 0.9. A guide keeps its settings while other guides are added or removed upstream, because they are stored by its number; a setting for a guide the rig no longer has shows as a note on the node.
Travel speed
Section titled “Travel speed”The bundled clips play in place: Walk and Jog move the legs but the character never goes anywhere, so on its own the hair would never stream back. Travel speed gives each clip the speed the character would be moving at, in m/s, and Hair Physics blows the hair back by it like a headwind from the front.
The panel lists one row per clip on the rig. Until you change a row it shows the clip’s default: Idle 0, Walk 1.4, Jog 3, any other clip 0. Raise Jog to make the hair fly back harder while running; set Walk to 0 to keep the walk’s hair hanging. The values are kept by clip name, so adding or reordering clips upstream doesn’t mix them up. Heavier hair (higher Weight) is pushed back less.
Where to put it
Section titled “Where to put it”Hair Physics needs a rigged mesh: Auto Rig, then Hair Guides, then the clips from Add Animation, then Hair Physics, then Export.
- It bakes only the clips the rig carries when it cooks. A clip added after it has no hair keys, so the hair stays still in that clip. Put Hair Physics after the last Add Animation.
- With no hair joints on the rig, or no clips, it changes nothing and shows an amber note saying which node to put before it.
- Running it twice replaces the first bake, it doesn’t add to it.
Inputs
Section titled “Inputs”A rigged character carrying hair joints (Hair Guides) and clips (Add Animation).
Outputs
Section titled “Outputs”The same mesh, every clip on its rig carrying a rotation track on each hair joint.
Parameters
Section titled “Parameters”| Parameter | What it does | Default |
|---|---|---|
Weight | How heavy the hair is. Heavier hair droops further when the head tilts and lags further behind it. | 1 |
Stiffness | How hard the hair springs back to its drawn shape. 0 hangs loose, 1 barely moves. | 0.5 |
Stiffness along hair | Stiffness from the root (left) to the tip (right), as a share of Stiffness. Lower at the tip lets the ends swing more. | 1 to 0.3 |
Damping | How quickly a swing dies out. 0 keeps swinging, 1 settles at once. | 0.6 |
Gravity | How hard the hair is pulled down when the head tilts, in m/s². 9.81 is Earth’s gravity; 0 turns it off. | 9.81 m/s² |
Per guide | Per hair guide, its own Weight, Stiffness, Damping or Gravity. A guide left alone follows the settings above. | The shared settings for every guide |
Collision margin | How far the hair is kept off the body. Raise it for thick hair or clothes the hair should rest on. | 1 cm |
Travel speed | Per clip, how fast the character would be moving, in m/s. The clips play in place, so this blows the hair back like a headwind. | Idle 0, Walk 1.4, Jog 3 m/s; any other clip 0 |
See also
Section titled “See also”- Hair Guides: give the hair its joints first.
- Add Animation: add the clips the hair is baked into.
- Export: write the character and its clips to a .glb file.