GroomLab

Utilities

Move hair in and out of plain Maya geometry, onto new scalps and between grooms.

Everything here is under GroomLab > Utilities, works on the active groom (Find Missing Files: the selected grooms), and is one undo step.

Conversions

ItemWhat it does
Guides to CurvesA NURBS curve per guide, tagged with its guide ID.
Curves to Guides...Tagged curves reshape their own guide in place; any other curve becomes a new guide.
Strands to Curves...The evaluated strands as plain Maya curves (20,000 by default), with their attributes.
Strands to Mesh...The strands as one mesh of tubes or ribbons, with UVs.
Bake Node to Guides...A node's strands or guides become guides you can brush.

So you can edit guides with any Maya tool: Guides to Curves, reshape (CVs, lattices, a sculpt deformer), then Curves to Guides....

Start from existing curves

  • Maya curves: select the scalp and the curves, then Create Groom from Selection. Or add them later with From Curves under Guide groups & edits.
  • Alembic curves (from Houdini or XGen): groomlab.import_guides_from_alembic(groom, path).

Transfer to a new scalp

A new sculpt, a retopologized head or another character: select the new mesh and click Pick on the Scalp row of the groom's Attribute Editor, or use Transfer Groom to Scalp....

  • Guides, parts and painted maps move onto it. Guide layers ride with the guides; vertex and texture maps are projected by position, so a head with other UVs keeps its maps.
  • Fit and Move handles a scalp elsewhere or of another size.
  • Copy mesh color sets the graph reads (off by default) brings Maya color sets along too.
  • The dialog reports what moved, what was projected and what stayed behind.
groomlab.transfer_groom(groom, "newHead")             # closest point, maps projected
groomlab.transfer_groom(groom, "bigCat", fit=True)    # another size or place

Copy Graph to Other Grooms

Pin (or select first) the groom whose look you like, select the others and choose Copy Graph to Other Grooms.... Keep their guides or replace them; Copy painted maps brings the maps the graph reads.

Find Missing Files

After a botched copy or a moved project, Find Missing Files... relinks what the selected grooms (or every groom) can't find: texture maps, images and Alembic files named in the graph, guide caches and groom files. Pick a folder; it looks there and in its subfolders for files of the same name.

  • Names compare without case on Windows.
  • When several files share a name, the one whose folders match the stored path wins. If none does, the file is listed as ambiguous and left alone.
  • The Script Editor lists every file relinked, ambiguous or still missing. It is one undo step.
groomlab.missing_files(groom)                         # what is missing, by kind
groomlab.find_missing_files([groom], "D:/recovered")  # relinked, still_missing, ambiguous

Colliders

Select a body, collar or hat and click Pick on the Collider row of the Attribute Editor's Inputs (groomlab.add_collider(groom, mesh)). An animated mesh keeps the hair out as it moves, in the viewport, renders and exports.

On this page