Make Hair doesn't work with some hair

Issue #1282 resolved
Alessandro Padovani created an issue

daz studio 4.21.0.5, blender 3.3.1, diffeomorphic 1.7.0.1290

This is reported in the daz forum. It seems the make hair tool doesn’t work for some hair, one example is the curly top updo by OOT. I managed to simplify the test scene stripping most hair and the textures. What happens is that some strands are not converted and are left as separate loose parts.

I remember we had issues with “separate by loose parts” and you wrote a custom tool for that, then the blender guys fixed it and we went back to the blender tool. Don’t know if this is the issue here.

https://www.daz3d.com/forums/discussion/605031

https://www.daz3d.com/curly-top-updo-hair-for-genesis-9

steps:

  1. Load the test scene curly.blend, this is a simplification of the OOT hair.
  2. Make Hair with the default options as the picture below.

Comments (9)

  1. Thomas Larsson repo owner

    Fixed in last commit. The problem was that the hair was split into more than 1000 loose parts (1171 to be precise). Blender names duplicates by appending three-digits numbers (.001, .002 etc), but if there are more than 1000 of them it switches to four digits, and the plugin didn’t handle that.

  2. Alessandro Padovani reporter

    Commit 8904da9 works great, thank you Thomas for the fast fix.

    I have a little suggestion, let me know what you think so I’ll mark as resolved anyway if you find this not useful. When I make hair I use “resize hair” and “multi materials” so to get one particle system per material. To choose the hair length to resize to I use “select strand by size“ to see what’s the max length. This I do for every material by splitting the mesh per material (mesh > separate > by material).

    It would be useful to have an option for “resize hair“ to resize each material to its max length, it could be “auto resize hair“. It can be done by hand as explained above but requires to split the mesh by material and look at each chunk for the max length. An automatic option would be handy.

    note. Or we could just set the hair length to zero for “auto resize”, in this case the tooltip could be “resize hair afterwards, set to zero to auto resize to the max length for each material“.

    note. Or a extra option “Resize to Max Length per Material“ as alternative to “Resize in Blocks“.

  3. Thomas Larsson repo owner

    I introduced an auto resize option, in which case the next paramter becomes the upper limit on the hair length. I didn’t want to allow Hair Length = 0 because Blender hairs don’t work with less than three vertices.

  4. Alessandro Padovani reporter

    As for commit 38a89cf I see that auto resize makes all the materials to the same length, that’s the max length of the whole hair. That’s easy to do just by looking at “select strands by size“ thus doesn’t require automation.

    What I mean is for each material to be resized to the max length for that specific material. For example for the OOT hair The “Front1-1” material has a max length = 26 but it is resized to 44 that’s the max length of the whole hair, same for the other materials they are all resized to 44.

    To get the max length for a material I separate by material (mesh > separate > by material) then look at “select strands by size“, but I guess the plugin could just select by material and look at the max length.

    Let me know or I’ll mark as resolved since this is not essential.

  5. Alessandro Padovani reporter

    Commit 61611e8 works great. This way we get one particle system per material with the max length for each material.

    Thank you Thomas for the nice option and the fast fix.

  6. Log in to comment