Hair tool – video tutorials

Newest video about latest features can be seen here.

Tutorial about using this Hair Tool addon, with some tips and tricks, problem solving and stuff:
Video about hair shader:
Video about creating texture:

Hope you find them useful.


Hair tool – Blender addon ($)

I developed Hair Tool addon for blender to simplify creation process of low/medium poly hair models
This addon will help you generate hair mesh ribbons with uv’s from bezier/nurbs curves. It is how most current games are doing hairs for characters.

Blender Hair Tool addon

Hair Tool workflow


  • generating curve ribbons from mesh surfaces
  • convenient way of switching back and forth between curve ribbons and  mesh ribbons  hair state, while preserving mesh uv’s
  • ability to adjust ribbons radius profile over strand length to taper the ribbons shape
  • ability to convert Grease Pencil strokes to Particle Hair
  • ability to convert Curves to Particle Hair
  • ability to generate Curves/Ribbons from Particle Hair
  • Randomizing ribbons UV (you can draw multiple uv boxes, that will be randomly picked for each ribbon strand).
  • Powerful Curve Resampling – increase, decrease curve/ribbon points amount, while preserving it’s tilt and radius.
  • Generating vertex color and weights gradients for ribbons.
  • And More!

Video tutorial mostly about generating curves from mesh surface, with some tips and tricks, problem solving and stuff:
Newer video showing new features:
Video about hair shader:
Video about creating texture:

Basic workflow for generating curves from mesh surface:

First step is to generate base shape of hair. For that use grid mesh, created only of quads. Mark one border of this mesh with sharp edges – those will become roots of hair splines:

Press ‘Curves from surface‘ button located in left Tool Shelf -> Tools, to generate curves from selected object. Generated curve settings can be modified using ‘F6‘ hotkey. You can adjust stuff like hair amount, length, add some noise etc. Or you can do some manual tweaking here going into curve ‘Edit mode’.

To add ribbons to generated curves, press ‘Generate Ribbons’ button. There are some settings to play with under ‘F6’ hotkey. Usually manual work here is needed to adjust curve tilt (select curve and press Ctrl+T – to change curve tilt).

To preview how the hair will look, convert them to mesh with ‘Curves to Ribbons’ button. You can now quickly uv this mesh by going into ‘UV Editor’ and searching for ‘Hair UV’ operator under spacebar. Left click and draw rectangular shape, in uv Editor, to define the uv bounds for hair strands. That is it, hair are ready to render.

If you don’t like the result you can go back to curve by pressing ‘Ribbons to curve’ button (warning – any changes to mesh topology will be lost!). This kind of workflow lets you tweak the hair in curve mode, convert it to mesh and preview If you don’t like it – go back to curve mode and tweak it again. UV’s defined previously will be restored.

Curve Ribbon operations:

Curve Simplify

Curve Simplify- Allows to reduce point count. Good for reducing polycount on hairs .

Resample Curve

Resample Curve. Allows to increase/decrease number of points each curve is made of. It keeps the original strand radius and tilt.

Smooth Curve

Smooth Curve – smooth strand points (eg. to reduce noise)

Smooth Tilt

Smooth Tilt

Taper Curve

Taper Curve – change strands radius over length

Align Curve tilt

Align Curve tilt – lets you align cure tilt to target object surface.

Randomize Curve Tilt

Randomize Curve Tilt – change curve tilt over its length

Select Tips/Roots

Select Tips/Roots – lets you select first/last points on curves. There is randomize option under F6 properties.

Mesh Ribbon operations:

Add Ribbon Vertex Color

Add Ribbon Vertex Color – create black and white color gradient from strand root to tip

Add Ribbon Weights

Add Ribbon Weights – create vertex weight gradient from strand root to tip

UV hair operator

UV hair operator (found under spacebar) – Left click and draw multiple rectangular shapes, in uv Editor, to define the uv bounds for hair strands. Press enter to confirm.

Convert operations – let you convert Particle Hair to (ribbon curves), curves to Particle hair, Grease Pencil to Curves etc.:

Ribbon to Curves

Ribbon to Curves/ Curves to Ribbon – allow for switching between ribbon curve and ribbon mesh state. Usually you will want to do hair modeling in curve state, and then do UV in ribbon mesh state.

Particle Hairs to Curve – generate curve ribbons from Particle hair.  Align their tilt to head with ‘Align Tilt’ checkbox, and embed hair roots deeper into the scull using ‘Embed Roots’ parameter.

Particle Hair from Curves (this can be used to convert zbrush fibermesh to blender Particle Hair system). Select curves and target mesh (that will receive Particle Hair) and use ‘Particle Hair from Curves‘ to convert curves object to blenders Hair system.

Ribbons from particle hair with children‘ – gives more evenly distributed result compared to build-in child particles . Great for short Hair.

Particle Hair From Grease Pencil‘ strokes painted with grease pencil, can be converted to particle hair (with some options available under f6). Checkbox next to this button, describes if you want to use Scene GPencil data (when enabled), or Object GP data (when disabled).

  • ‘Flip UV’ option in preferences – if enabled random strands will have uv’s flipped in X-axis.

Hair Tool examples:


Improvements to uvSquares and Matalogue addons

EDIT: Matalogude developer included support for GroupPro into master branch. You can grab his addon from Matalogue.

Matalogue is great addon for managing materials. In my fork I added support for working with Group instances (so it works with GroupPro). Added support for Group Instances = when selecting group instance object (empty with duplication set to group), Matalogue will now show materials for objects that are inside this group. Previously it would show ‘no material’ message.
Matalogue addon


Another great addon is uvSquares. This time I added ability to work on multiple islands with one click. You can grab fork from here:

uvSquares addon

Hopefully autors of those addon will agree to merge those changes into master branches! Keep the thumbs up.

Whats new in Batchtool Baker 1.11

Quite some time passed since I described what is new in Batchtools 1.03 version. Right now Batchtool Baker is in version 1.11, so wanted to describe new features.

  • baking presets – lets your save your most used setups for baking:
    Batchtool presets
  • quick texture preview (in blender internal glsl mode – TODO: add Cycles support) – assign all baked maps to material of lowpoly object:
    Batchtools texture preview
  • Added Helper icon – ‘Duplicate passes’ – duplicates current bake job, with all render passes setting – saves time when creating new bake job.
  • added support for Substance Batchtools 6 series this includes (you need to go to addon preferences and select Substance batchtools version 6 in menu):
    • ability to bake non square maps
    • ability to bake 8k textures

New blender addon – Transform Utils

By default some blender operations do not work very well with instances. Mainly I speak about ‘Apply  transformation‘ and setting ‘Origin to 3D cursor’.  Apply  transformation – won’t work at all with instanced object and setting ‘Origin to 3D cursor’ won’t preserve position of instances. I made python version of these, that work with instances and are preserving positions of instanced objects. The math behind that was bit complicated, but I managed to make i work. The ‘Transform Utils‘ also has some other tools that I developed while working with blender.

  • Add Transform Orientation – quick way to align gizmo (add temporary Transform Orientation) to selection. Gizmo will be aligned to  selected object, face, vertex or edge.
  • Align To Transformation  – Sets current object rotation to match the gizmo transform orientation (created with previous command).
  • Apply Transformation – lets you apply location, rotation, scale even on object with instances. Instances positions will be maintained.
  • Origin to 3D cursor – same as default blender operator, but all instances positions are preserved.
  • Store position – let’s you save current object location, rotation, scale. Position can be restored with ‘Restore position’ button.

In image below I demo the ‘Apply Transformation’ operator. Build in apply loc, rot, scale operator won’t work on object with instances. The addon version works ok, and it is maintaining original position of all instances.

Transform Utils

Grab addon from gumroad

Procedural art with Animation Nodes

Animation nodes is addon for blender, that lets you animate stuff, but it is also great for procedural art generation :).

You can get the latest version of Animation Nodes from here (click the green button for download). Support the creator of addon – Jacques Lucke – by donating here.


Below is the breakdown of the most important steps to obtain results from above (this is for advanced users).  Here is the file

  • generating random point on mesh surface (Plane object) – it will be root of spline:
  • Then I can create spline from random (x,y,z) points in loop, but this gives to noisy result (looks like lightning, jagged and random). So instead I use coherent noise – perlin noise as way of generating points for splines. This makes the splines look like wavy grass thing.
  • next step is making tip of the hairs go into direction of target object (sphere). For that I just create BHV tree for target, and then I snap spline to target with ‘find nearest surface point’. If I snap spline point to target sphere I would end up with this:

    But I do not want snap whole spline to sphere, but just the tips. To do this I can interpolate between originally generated point (x,y,z) and snapped to surface point (obtained from BHV find nearest node).

    The red inscription says: 0 == ignore snapping, 1== full snapp to target shpere). Start value in AnimFloat is root of spline, End – tip of spline.

There is more stuff, but the basic idea is explained above.

Batchtool Baker – update 1.03

Update 1.03 to Batchtool Baker:

  • added ability to bake second or next uv set (UV map)
  • preview of frontal/rear ray distance
  • one click cage setup

Example of fixing black texure spots (to low value of ray distance causes some areas of highpoly to not be captured while baking). First I preview frontal (green) ray distance, fixing bake, then adjusting rear (red) ray distance, fixing bake again.


And example of one click cage setup. You can adjust cage offset by weight painting it.