Hair Tool

(Crotalidae) #21

I’ve been rendering Daz Studio figures, exported into Blender, under Cycles, and the hair models Daz uses (or the ones I have, I mean) aren’t ideal, and I’d like to render hair in Blender instead of use those models.

Would this be a good way to do it, instead of dealing with Blender’s particle system? I tried that and found it difficult to work with and didn’t get very far…

Unfortunately I know of no add on or tool to help with particle hair in Blender.


(Xerilon) #22

I have a problem with this great tool!

I have made curves/ribbons from hair particles and can switch back and forth manipulating the curves etc. but I can’t get up a context sensitive menu like F6 to adjust the shape/size of the ribbons. No matter if I am in object or edit mode the operator says only “Toggle editmode”.

The only way I can adjust shape settings is when I create a new hair tool object, and as soon as I start to move the curves it will never appear again…

Is this just a noob problem?


(xan2622) #23

wow, it looks like the GMH2 Hair Script.
Thanks for delivering a similar tool for blender users!


(JoseConseco) #24

Crotalidae - I don’t know how daz studio hair export works but maybe you can emulate similar workflow to zbrush? Here is how to do get fibermesh hair to blender particle hair system. I hope there is similar way it can be done in daz studio.

Xerilon - yep, this is noob problem ;). It is how blender operators/buttons work. When you execute operation (by pressing button) - you can acess f6 properties. But after that you won’t be able to acces those.
It is actually god idea, to be able to change ribbons profile, after they have been created. I will add this in next update - maybe as ‘Reinitialize ribbon’ or something like that.
btw. I forgot when you are in curve mode, you can adjust curve radius to get bigger/ wider ribbon. And in curve props panel you can change -'u resolution’ - to reduce amount so curve subdivisions.
xanax - I’m glad u like it.


(Cyaoeu) #25

Hi, got an error with the latest version:

caused by the sharp loop being attached to both sides of a mirror modifier mesh (basically no space between the sides). It’s fine with an error there but maybe there could be a better error message so people who encounter it know how to fix it. :cool:



A note for anyone trying to use the new Particle Hair from Curves:

It seems the proper procedure is to select the curves, then the mesh you want to receive the particle system. If you do mesh then curves, you get an error and it creates an empty particle system.


(hoverBOX Creative) #27

This tool is amazing. We’ll worth $32. In fact, that’s a steal considering how much easier this tool makes my work. Thank you for your hard work.


(Kelleytoons) #28

Can someone help a newbee install this? Using Blender 2.78 I was unable to get it installed even though I copied all python files over to the scripts/addons and even tried the “Install a file” on all of them. It never shows up in Blender anywhere (to be fair I started off in Sensei but even switching it off and going through the install again I still don’t see it).

And one other question – I’m also interesting in HairMesher, as it seems it might be easier for my purpose (I want to generate men’s short hairstyles). I don’t mind spending the money (only half the cost of this one, but I spend far more $$$ on all kinds of 3D stuff) but I wondered what folks thought about it for my purpose (I’ll be exporting whatever hair I create for use in iClone).


(JoseConseco) #29

I can see (from your post on my blog) that you solved your problem.
About short hair - new update will have new custom made algorithm for generating child ribbons, based on parent particle hair strands. I will give you way more uniform child strands distribution, compared to blender build int child particle hairs (I wish it would be done my way in blender source code, but I’m not good at C++).
There new release should be out today or tomorrow (but I will take me few more day for tutorial and manual).


(Xerilon) #30

JoseConseco - Ok, thanks for clearing that up :slight_smile: Love the tool!

Has anyone encountered wrong alignment? No matter what I do, the curve alignment to the target object seems to be 90 degrees off. The curve planes will not flatten to the head and I have to rotate them with Ctrl-T manually and that is a chore…


(JoseConseco) #31

That is weird. If you can share the file I can look into it.


(Xerilon) #32

Well, I tried throwing some hair on a simple sphere to show you an example, and then it worked great, indicating that there must be something with the scalp of my character. So I checked it and found that the Rot Scale was not applied on the scalp and that was probably it. Too bad as I have spent much time styling the hair particles that was used, now it’s messed up :stuck_out_tongue: Lol! Consider it solved for now :slight_smile:


(Xerilon) #33

To give some help to others in the same situation, I can say that it is only necessary to apply rotation and not scale. The scale will mess it up, but only rotation works fine :slight_smile:


(IPv6) #34

Bought this tool and this is really time saver. Thanks for addon!
Curious how to make “pefect” hair braid, though :slight_smile:

Some inconviniences i encountered (2.79), may be it is possible to make addon even better in next versions:

  • Situation: i put several different surfaces/curves with hairs, generated by your addon. To lower visual mess and concentrate on needed part of hair, i hide several of them (eye icon in outliner). But any kind of hair action instantly show ALL of them again. This make hard to break hairs in parts and work on parts one by one
  • After that i decided to work on hair part in local view mode… but no luck - any changes in hair settings recreate curve OUTSIDE of local view (so curves just dissapear from viewport).
  • If this is possible, let addon name curves after corresponding surface object. Many “MyCurve.001” are confusing in heavy hierarchy
  • Tilting/aligning. Is it possible to add “rotation shift” parameter to this actions? Sometimes “strict paralelity” is not needed… and randomization can`t give precise results. This would be helpful to avoid manual work.
  • Adjust curve profile: Is it possible to make strand peak different along the curve? Like flat in the beginning and the end and non-flat in the center

Some errors encountered:

  • creating strands from Grease Pencil gives following:

Traceback (most recent call last):
File “C:\Users\Main\AppData\Roaming\Blender Foundation\Blender\2.79\scripts\addons\hair_tool\”, line 895, in invoke
return self.execute(context)
File “C:\Users\Main\AppData\Roaming\Blender Foundation\Blender\2.79\scripts\addons\hair_tool\”, line 977, in execute = self.bezierRes
File “C:\Program Files\Blender Foundation\Blender\2.79\scripts\modules\”, line 605, in getattribute
return super().getattribute(attr)
AttributeError: ‘GPencilToCurve’ object has no attribute ‘bezierRes’

  • simplify curve gives following

Traceback (most recent call last):
File “C:\Users\Main\AppData\Roaming\Blender Foundation\Blender\2.79\scripts\addons\hair_tool\”, line 295, in execute
main(context, context.active_object, options)
File “C:\Users\Main\AppData\Roaming\Blender Foundation\Blender\2.79\scripts\addons\hair_tool\”, line 226, in main
interpolRad.append(interp(t_ins, t_rad[0], radii)) # first arg len() = out len
File “C:\Program Files\Blender Foundation\Blender\2.79\python\lib\site-packages
umpy\lib\”, line 1271, in interp
return compiled_interp(x, xp, fp, left, right)
ValueError: array of sample points is empty


(Xerilon) #35

One thing I look for is the ability to adjust curves while keeping the UVs. For textures that fade in the end it is tiresome to refit the UVs when switching back and forth between ribbons and curves…

Also, if not using the hair tool and just working with bezier curves, the adjustment of “generated” UVs for the curves is a nightmare and takes too much time.

Otherwise great updates on the tool so far :slight_smile:


(JoseConseco) #36

Not sure what you mean? When you have multiple hair curves (ribbons) and you work one single item, is should not affect visibility any other hair curves. Works fine for me. Do you have gif or something to show what is your problem?

The local view is pain to fix because there is no API for it in python. I can try to look into it, but I would suggest using ‘Shift+h’ as replacement of local mode.

Done in 1.6.1

  • there is already option in ‘Randomize curve tilt’ called ‘Tilt Uniform’- when set to max value, whole strands will be rotated instead of just the tips. Is that what you are asking for?

It’s is on TODO list, but I’m not sure if blender allows to use curve profiles in F6 properties. I wanted this feature too, but not easy to implement.

Should be fixed in 1.6.1

Can’t reproduce. Can you test it again in 1.6.1. If it don’t work please give me some file for investigation.
Thanks for your time

Xerilon - you mean you did some manual uv tweaking on ribbons in mesh mode, and then after going into curve mode and back into mesh - the uv’s are reseted? When you go into mesh mode for second time use F6 - and use ‘Preserve UV’ option. If you didn’t changed the topology (you only moved, rotated, scaled curve ribbons), then the uv’s will be restored to the state from before you entered into curve state.
I hope this solves your problem.


(JoseConseco) #37

I latest release I focused mostly on creating short hair, so you will be able to create this kind of stuff:

Video about new features:

Update 1.6:

  • Updated UI
  • New option ‘Ribbons from particle hair with children’ - gives better result compared to child particles generated by build in blender child particles (more even distribution, better aligning of child ribbons to surface). Great for short Hair.
  • Resample - more options, and keeps curve tilt and rotation.
  • ‘Particle Hair From Grease Pencil’ strokes painted in grease pencil, can be converted to particle hair (with some options available under f6)
  • ‘Flip UV’ option in preferences - if enabled random strands will have uv’s flipped in X-axis



(Xerilon) #38

JoseConseco - Yes that solves it half way :stuck_out_tongue: The remaining thing is that it is (as far as I know) impossible to actually see the texture while adjusting the cruves. When the textures has a whispy end with much alpha transparency it is very difficult to know if you cover enough space with a cruve that looks like a gray bendy plate. It becomes like adjust-switch-look-switch-adjust some more-switch-look and so on…

If that was implemented I think the tool is near perfect :slight_smile:


(IPv6) #39

Thanks a lot for update!!! Most problems have gone :slight_smile:

Some minors for the sake of completeness though:

  • “I would suggest using ‘Shift+h’ as replacement of local mode.”

Thanks, forgot about this universal hiding option. Will use it this way then!

  • “When you have multiple hair curves (ribbons) and you work one single item, is should not affect visibility any other hair curve”

Just found why this happened, this is not addon-related at all… I changed visibility with operator panel opened and update operator parameters in that panel… Blender just undo all actions to the point when operator was called. Thus undoing my visibility changes :slight_smile: It was not obvious to me, my fault, sorry

  • “creating strands from Grease Pencil”

Now there is no errors, thank you! But another inconvenience (imho) arised - after creating strand grease pencil layer became hidden. so any additional grease strokes are not visible… So to add another GP strand i have to manually enable layer and clean up old/previous strokes first.

From other tools it is common to delete grease stroke after use (or have an option for this), which is more convenient - less clicks, smoother workflow

  • there is already option in ‘Randomize curve tilt’ called ‘Tilt Uniform’- when set to max value, whole strands will be rotated instead of just the tips. Is that what you are asking for?

No, this is not the same… Tilt Uniform rotates every strand with different angle (though this angle is the same along the curve). In my case i need all strand have the same angle regarding align surface, BUT this angle is not zero, more likely like 30-45 degree. It depends on the camera angle, for better view. So ALL strands are perfectly aligned to reference surface - but rotated on fixed angle inplace. I mean whole strand is rotated (tilted), while curve points flow along surface. More like “align to surface with fixed degree offset, added to each strand tilt”

And the last minor thing - most of actions has “Only selected” checkbox enabled by default. So if nothing special is selected (usually this is so) - operators seems not to work, like “do nothing”. Just not so obvious for newbies, to uncheck it first


(JoseConseco) #40

In next release hidding GP strokes will be optional - in preferences there will be checkbox for it.
"Only selected’ I will make it so that when your are in obj mode it will work on all curves, but in edit mode only on selection by default. But the checkbox will be still there.
Tilt Uniform - I would suggest using ‘ctlr+t’ hotkey, when you are in curve edit mode. It is build in hotkey in blender for rotating all curves in uniform fashion.