Houdini Groom Fur/Hair

reference:

https://youtu.be/p4yUNgy5HSA?si=m0sZ1LR9qjeizaTD

https://youtu.be/csPolONCnxE?si=YFZs2IBbB7V2SP7S

  1. Preparing 3 object for demonstration
  • original mesh – the static mesh that will put the guides on
  • collision object – animated tube for testing hair sim
  • deform mesh – the mesh which should have the same vertex ID as the original mesh but either being animated or deformed. In this case is being scaled
  1. get a guide groom node
  2. drop the static mesh out null to the SOP path
  1. turn off the display as subdiv curve to speed up the viewport
  1. need to adjust the VDB size. to do so, first needs to visualize it
  2. make the guide groom node editable
  3. go in side and look for the VDB from Poly node. visualize it
  1. then go back out and adjust the size so the VDB to have more details
  2. lock it back up after it is done

  1. to apply a custom density mask or any type of mask. It can be done manually by adding the attribute create node and attribute paint node inside the SOP geo
  2. or click on skin attribute from the density drop down of the guide groom node
  3. click on the painting icon on the left
  4. it’ll add it automatically.
  5. Suggested to add it manually. to understand the process better. multiple masks with multiple different mask name can be added through the same way.
  1. make sure that the name of the attribute create are the same as the mask name that is being recalled
  1. to paint the mask, select the attribute paint mask and press enter at the viewport
  2. the value can be beyond 1
  3. to visualize it go to the visualizer icon and chooes the mask
  4. under min and max adjust to what min/max is being painted on

  1. inside the guide groom node add another guide groom node
  2. hover to the centre and it’ll connect it by itself
  1. the guide groom node is a paint node
  2. select delete and over to the viewport and hit enter
  3. delete all the guides
  1. switch over to plant node and plant them manually
  2. switch to sculpt mode to further shaping the guides

Guide partition: Currently still can’t find a way to make part lines to work in a guide deform/simulate stage.

  1. to add parting line, add a guide partition node
  2. hit draw parting line and it’ll add a draw curve node
  3. draw the line on at the viewport

note that if the guides are not goign to deform to an animated mesh a rest node isn’t needed


GuideDeform: to reference the static mesh groom to the animated mesh

  1. add a guide deform node
  2. specify the deformed mesh
  3. drag and drop the guide groom node to the groom object section

Guide Simulation: to put collision or simulation to the guides

  1. simply drag and drop the guide deform node tot he groom object section. If the object doesn’t deform then put the guidegroom node in there instead.
  1. by default the simulation is more for long human hair
  2. for fur and short hair, either to test and increase the stiffness and damping ratio from the vellum constrain section or increase the vellum solver substeps to 2, or both
  1. go to vellum collision to activate external collision.
  2. put the collision object to the collide SOP section
  3. better to turn on self collision as well

Drawing the hair: this part is the most difficult and needs a lot of custom adjustments to define the hair clumps

  1. add a hair generation node
  2. put the guide sim node or deform node to groom object
  3. notice that if a parting line is added earlier there will be an error showing
  4. adding the rest node from the guide groom node will solve this issue
  1. increasing the influence radius will draw the hair around each guide wider
  1. inside the hair generation node, add hair clump node to get clumps
  2. more other nodes like “guide process” can enhance the look of it

Skin attribute: This is a type of mask that is like the density mask being added at the geometry SOP stage or it can be added under hair gen. In projection it is more comment to add attribute mask in SOP level and recall them to guide process node or clump node.

  1. to add the attribute mask within hair generate node
  2. for any drop down on right, choose skin attribute
  3. it’ll predefine the name of the input. type in the attribute name it is pre-made in the SOP level
  1. hitting the painting icon will add the 2 node inside hair generation node.

Guide Attribute: this one is similar to skin attribute but be a more procedural. A guide mask must be prepared in advance tobe recall

  1. add a guide mask before the clump node
  2. give the out attribute a name
  3. in the additional mask tab, commonly will use noise mask or random mask
  1. back to the hair clump or guide process node
  2. pick guide attribute and type in the name of the guide mask
  3. both guide and skin attribute can be use on those overides. So it’ll be driven by the mask instead of a flat float number.
additional fractal clumping can be added to the clump node without adding extra guide attribute

Limit to bounding box: generate hair in a selected area to speed up the process for lookdev

  1. under hair gen node
  2. optimization > limit to bounding box

Houdini Groom to Unreal:

source: https://www.youtube.com/watch?v=YL8oLH-EzGU

  1. inside hair gen node
  2. get a resample
  3. change the segment or the length, make sure the vertex aren’t too much but keep the shape as close as possible as the original
  4. set the treat poly as subdiv
  1. add a view attribute
  2. get attribute promote
  3. set the original name
  4. change class to vertex
  5. new name to groom_width (that is needed for unreal and it is written in their documents)

ps: if the colour is needed for the groom. needs to promote the cd attribute as well. Refer to the following tutorial for it.
source: https://youtu.be/AbQImIzNtV8?si=X4HAr9dQcm-mO95Q

  1. get a rop alembic (houdini student licence won’t allow to export)
  2. set a path and hit save to disc
  1. in unreal make sure to activate both groom plugin
  2. set the orientation as such
  3. refer to the source video for further attach to the character

Use Ramp in Karma:

  1. In resample: activate Curve U Attribute. Let it use the default attribute name.
  1. In the hair gen node, make sure it output with the new resampled attribut ename curveu. Add it manually.
  1. in stage, material library. Use the GeomPropValue the curveu geomprop to drive the t of the ramp constant.

Leave a comment