Hair Deformers¶
Think of them as nodes inside Hair System modifier. They give you ability change chair look: add noise, curls, snap to surface etc.
Deformers are stacked on top of each other, just like Blender modifiers.
Note: Some deformers (e.g. clump, twist, braids) will only work, if Hair System (to which deformer belongs to) is Set as Child
Note: Most of the input properties of Deformers can be masked by input masks like: vertex group, texture, length mask etc.
Animation¶
Attach Curves UV¶
Attach strands roots to source mesh UVs, without it animation of hair with 'Surface Deform' modifier will not work.
Bake/Cache Hair¶
Save hair strands into cached memory. They will no longer be editable, but will be faster to animate, since they will not be re-generated on every frame change.
Surface Deform¶
Same as blender built-in modifier. Allows hair to follow source mesh deformation (by rig or shape keys).
Note: You may want to use Bake deformer first, so that strands will not be regenerated on every frame
Physics¶
You can add collision objects, control: wind, gravity, damping etc. Not perfect yet, but can give some nice results. For more advanced physics simulation we may need to wait for native blender geo-nodes physics integration.
Note: You may want to use Bake deformer first, so that strands will not be regenerated on every frame
Note: If you notice some jittering, try reducing gravity and increasing damping.
For now self collisions are disabled, since you would have to subdivide strands a lot, to get good results. Long hair simulation may not look the best. But at least new HTool 4.x physics does not exploade like it used to in HT 3.x
Assign Group ID¶
Assign Group ID attribute to strands. After baking hair system you can use this to select strands by group ID.
Braids (Child)¶
Clump child strands to Guide/Parent strands (FIRST tag) in shape of Braids. Set Hair System as child first
Color Set (System)¶
It will allow your to colorize haircards generated inside current hair system (added mostly for debugging hair sub-systems setups)
Clumps (Child)¶
Clumps child strands toward parent strands. Set Hair System as child first
Curls¶
We add curls effect to second Hair System and play with the: Frequency and Phase. The amount of curls (and clumps) is determined by parent strand count. Child-parent setup is needed
Generators¶
Duplicate Strands¶
Simple duplication of exisitng strands
Braid Generator¶
Each strand will be duplicated 2 times (3 strands with original one), and braided together. Works best with 'Circular' Profile
The Idea in above video is:
- Take single strand, and convert it to 3 braided ones with 'Braid Generator'
- Duplicate each sub-strand few times with Duplicate Strands deformer
- Add some randomization with Noise deformer and UV Region Distribute deformer
This should make it more volumetric looking, since braid will be made from multiple textured haircards, rather than single one.
Instance on Strand¶
Instance any mesh on hair Strands (can be used to eg. add tie and tail on the end of braid) - since HTool 2.44
Mirror¶
Mirror hair, with optional option of bisect (remove one half of hair first, then mirror the remaining part)
Move in/out of Surface¶
Embed Roots¶
Helps to push hair roots into surface. Best to used before Align Tilt deformer, since it can lead to haircard twisting
Push Out¶
Push hair outside surface. Useful when wanting to push out layer of hair or to prevent hair clipping through character geometry
Attach To Surface¶
Attach hair to surface. Useful when wanting to 'glue' hair to character geometry (scalp)
Move to Border¶
In the video above, a source mesh is created using two half-sphere meshes. We use the "Move to Border" deformer to move the strands to the edge of this mesh. Then, we apply the 'Track To Mesh' deformer, to clump tips of strands together
Snap¶
Snap hair to source surface (could be used for wet hair effect)
Lengthen¶
Lenghtens hair strands. Unlike simple scale - it will make hair extend from the tips
Noise¶
Add noise distortion to strands
Radius Set¶
Set Radius - for hair tapering, strand width randomization, etc. Can also guide Curls amplitude or Braid size - for child Hair Systems
Roll Strands¶
Basically the same as blender build-in Roll
Scale¶
Scale hair up or down. With trim deformer we can reduce length of hair, but Scale deformer helps to make them longer.
Simplify Strands¶
Resamples strands - assigning lower points count to shorter strands
Slide Points¶
Give more resolution to hair root or tips (depending on 'Influence Range'), by 'sliding' points along the curves
Smooth Strands¶
Smooth out the strands
Tag¶
Assign Tag¶
Here we assign R
tag to right side of head (masking it with vertex group). Then in 'Scale' Hair System that is set to Strands Filter we resize these tagged strands with Scale deformer
Note: Assigning any tag e.g. X will create negative tag 'X, for example if we create tag
RIGHT
with some strands, then tag'RIGHT
will contain opposite set of strands.
Delete Strands¶
Simple delete strands operation based on their Tag. In video above I removed strands tagged as R
then GUIDE
strands (bit hard too see, since they are covered by other strands)
Tilt¶
Add Tilt¶
Add tilt to hair strands. If 'Flip Probability' is 0.5 - then half strands will be rotated clockwise and half counter clockwise
Align Tilt¶
Aligns tilt to hair source surface (hair normal will point outside of surface)
Align Tilt to Parent¶
Aligns tilt to Parent (Guide) strands. Hair card backfaces are shown in blue. Great for Dragon Ball hairstyle :)
Align Tilt to Target¶
Aligns tilt to target surface (hair normal will point outside of target surface)
Align Tilt to Mesh Border¶
Align strands tilt to border of source surface (usually scalp). Backfaces are shown in blue
Force Align if checked, it will align curve and force curve normal to point outside border edge. If unchecked, tilt will be aligned to border, but curve normal will point with the 'flow' - see video above.
Track To:¶
Track to Mesh¶
Track to Mesh - Strands from closes mesh island will follow tracked mesh object. Use Bind
button to prevets hair tips from 'sliding' on mesh surface
Note: Closest affected island is determined by Tracked object origin. Move it to change which island will be affected. After finding desired island, you can move tracked object in edit mode, so that affected strands won't change.
Note: If you want to 'Freeze' tracked points, use 'Bind Tracked Mesh' button. Now strands will follow point at which they were bound, rather than sliding around mesh surface.
Track to Curve¶
Track to Curve - Strands from closes mesh island will follow tracked curve object. Use Bind
button to prevets hair tips from 'sliding' on tracked surface surface
Note: Closest affected island is determined by Tracked object origin. Move it to change which island will be affected. After finding desired island, you can move tracked object in edit mode, so that affected strands won't change.
Note: If you want to 'Freeze' tracked points, use 'Bind Tracked Curve' button (this will convert 'old' curve to 'new' type). Now strands will follow point at which they were bound, rather than sliding around curve surface.
Note: Curve Shape Keys are great addition to Track To Curve deformer.
Trim¶
It will shorten strands roots and/or tips. Best to use with randomization mask
Twist¶
Twist effect requires to set Hair System to be set as child. For best effect is is good idea to place it after Clump deformer
Profile Distribute¶
Mesh Profile or Multi Curve Profile holds profile objects list for instancing on strands, but it does not tell which strand will receive which profile object. This is where 'Profile Distribute' deformer comes in.
It will tell which strand will receive which profile object, based 'Profile_ID' attribute, assigned to each strand.
You can use multiple 'Profile Distribute' Deformers, and stack them on top of each other (think of them as layers). In video above, I used RED and GREEN profile objects as base layer, then added PURPLE on top - masked by vertex group
UV Region Distribute¶
Hair Profile holds UV Boxes/Regions amount and dimensions, but it does not tell which strand will receive which UV Region. This is where 'UV Region Distribute' deformer comes in - it will assign random (or masked) UV Region to each strand.
Note: use multiple 'UV Region Distribute' deformers + Input Masks, to achieve layered UVs effect (see video below),
Example use of multiple 'UV Regions Distribute' Deformers, to stack them on top of each other (as layers). Region ID_2 as base layer + Region ID_0 on top - masked by vertex group
Note:
UV Region Distribute
is often created automatically when hair system is added