TABLE OF CONTENTS
- Creating a Groom
- Using Grooms
- Tool Settings
- Component Editing
- Groom Node
- Parting Regions
Although the graph provides enough control to get a decent overall fur result in most cases you’re going to want a much more aesthetic means of controlling the look of the system.
Yeti provides this control via Grooms which is a set of controllable strands that can be shaped with the ability to store any number of custom attributes on each.
A graph can rely on any number of input grooms which may control the length, density, direction or other node parameters via the Attribute node.
Creating a Groom
A groom is generated via a groom node in Maya - to create the groom select a mesh and press the CRG ( Create Groom ) button in the Yeti shelf and a new empty node will be created.
Grooms consist of any number of strands, defaulting to none, and require the user to create an initial set of strands - to do this use the Add followed by the Fill tool to quickly create a strand at every vertex which is a good default starting point for most grooms.
The Yeti Groom node works within it’s own grooming context where you can use brushes to cut, comb and paint the Groom.
To enter the combing mode select the groom and in the attribute editor press any of the tools in the Tools palette - from this point on you can click and drag across the surface of the mesh to comb the strands in various modes.
As you groom the node maintains the length of the strand and tries to relax the segments to give a more fluid feel to the workflow.
Once a groom has been created you’ll want to use the result in your graph.
The first step is to attach the groom to your Yeti node, to do this select the Yeti node and open up the Graph/Input Grooms palette and Add Grooms(s). This will bring up a selection window that lists all the possible grooms in the scene.
Select the desired groom and Select Groom(s) which will attach the Groom to your Yeti node and you should now see it in the list of Input Grooms.
The next step is to return to the graph editor ( selected the Yeti Node and press GE in the Yeti shelf or Open Graph Editor). As with all data you will need to import the groom, use the Import node and in the attribute inspector set it too groom mode. In the name field specify all or some of the name of the groom ( you need to specify the groom shape node, in practice it’s safe to use myGroom* vs. having to explicitly set myGroomShape ).
It’s likely that the minimal use for the groom will be to adjust the fibers directions and to do this you will need to use the Comb node. Once created make sure the main fur flow ( output from Grow ) is connected to the first input of the Combnode, and connect the output from your groom Import node to the second input of the Comb node. When set as the root you should now see the fibers adhering to the groom you created.
If you adjusted the lengths of the strands in the groom node you can also connect the groom to the second input of the Grow node, this tell the grow node to use the length attribute of the strands as a multiplier. Lastly, if you painted a density attribute on the groom node you can also connect the groom to the Scatter node in a similar manner to control how the initial source points are generated.
Once the groom has been imported and used in the graph and changes to the groom will dynamically be updated in the graph and viewport. This is useful to see the final result of the graph though depending on the density and complexity of the graph it may slow down interactivity.
When in the Groom context the Tool Settings window will present many of the tools you can use to comb, sculpt, trim and paint the strands as well as offering control over mirroring and update frequency.
Strength of the brush.
Radius of the brush.
How soft the brush is, this controls the falloff from the centre of the brush to the full radius.
Control the brush strength along the length of the strands.
U/V Tangent Weight
Used to control how the U and V tangents are mixed when using the Tangent brush.
Choose an axis to turn mirroring on.
Sculpt Mirror Style
Use World to mirror the sculpt brush in world space, or Screen to do so in screen space.
Obey Surface Normal
Used to determine if strands facing away from the stroke will be affected.
When populating you are adding or removing strands from the groom, depending on parameters selected you may be arbitrarily adding points to the surface or the new surface points can be constrained to the vertex positions.
|Add||Used to add strands to the groom, only a single strand will be created within the radius of the brush.|
|Delete||Used to remove strands from the groom.|
|Scatter||Add strands by scattering them on the surface under the brush as if using a spray can.|
Combing tools affect the strands based on their surface position with the effect generally based on their relationship to the underlying surface and surrounding strands.
|Comb||The most familiar mode where the stroke pulls the strands in the direction of the brush stroke.|
|Direction||This will change the orientation of the strand but not it’s shape.|
|Lift||Lift the strands off of the surface of the mesh.|
|Straighten||Straighten out the strands shape across the length using the base as a normalized direction.|
|Smooth||Smooth out the strands to create a more even groom.|
|Move||Move strand around the surface of the input geometry.|
|Scale||Uniformly scale the strands, this differs from length as you’re not altering the strands shape.|
|Clump||As the brush moves the strands will clump towards a point on the surface at the beginning of the stroke.|
|Twist||Twists the strands around the center axis of the brush.|
|Tangent||Aligns the strands to the surface tangent.|
Sculpting acts on the strands in world space. While sculpting the groom is less concerned about strand to strand relationship and focused on the over all shape/mass of the groom.
|Sculpt||Sculpt the volume of strands.|
|Trim||Trim away the ends of strands, as if you were using a plane/scissors to cut them|
Workflow and Settings
The last few tools in the Tool palette are to help with Workflow as well as a general setting which controls how often graphs are evaluated when painting.
|Flood Fill||flood fill using the currently selected tool|
|De-Select||deselect strands previously selected with the ctrl-hot key|
|Invert Selection||invert the current selection|
|Mirror Selection||mirror the current selection|
|Undo||undo the last action ( CTRL + Z )|
|Redo||redo the last action ( CTRL + SHIFT + Z )|
Besides used to adjust the shape of strands Yeti Grooming allows any number of custom attributes to be painted.
Attribute Painting is used to control attributes that generally represent one value per strand where the interaction takes on a more painterly feel vs. adjusting the strands directly, this includes length ( which is always available ), density and width.
Except for Length any other attribute needs to be added before painting - using the four buttons at the bottom of the palette a user can Add, Duplicate, Rename and Remove attributes ( except Length ).
To start painting an attribute double-click on it’s name in the Attribute List, all the brush parameters will affect the attribute paint as expected.
Turn attribute display on/off.
Display As Heat Map
Will draw the displayed paint values as a heat map vs. a greyscale representation of the values.
Size of the attribute in the viewport.
An attribute is treated as an HDR value which means it’s possible to paint above 1.0 - by adjusting the clipping level you can change.
The seed to use with the Random brush.
|CTRL+LMB||Select strands, CTRL-clicking in empty space will clear the current selection.|
|B||Adjust the brush size.|
|M||Adjust the brush strength.|
|C||Will lock the end points of each strand (v4.0)|
Add Layer Mask
When a groom is used as an input to a Deformation Layer a layer mask can be used to paint and isolate the effect of the groom like an alpha channel.
When in the groom context specific Attribute Paint tools can be used - the Attribute Paint Value is controlled via a monochromatic colour (only floating point attributes can be painted at this time).
Paint - Paint the current value on the surface.
Increase - Increase the current attribute by the paint value.
Decrease - Decrease the current attribute by the paint value.
Smooth - smooth out the painted values modulated by the brush strength.
Random - randomize the painting effect.
Sample - used to sample the attribute value already painted.
While grooming it’s possible to select and de-select strands to limit the effect of the brush, to do this hold down the CTRL key and the first mouse button to select points and the CTRL key with the second mouse button to deselect points. You may find that while working on a groom you may want to only see strands you have selected, this is possible by toggling on the Isolate Selected attribute in the grooms Display palette.
Grooms fully support Maya's component editing allowing you to have finer control over individual strand shapes.
By default when you first enter the component editing mode all of the points on the strands will be visible, this can be toggled in the Groom's AE editor in the component editing tab by turning the Display Style from All to End Points.
The maintain length option will ensure that when editing the length of the strands will maintain their length, when off the same strands can be stretched and pulled accordingly.
Adjusting Length (v4.0)
While component editing holding the SHIFT key will put you in length editing mode, as the mouse moves the selected strands will get longer/shorter depending on what direction your move your input device.
Global groom parameters are used to control the behavior of the Groom.
Edit the groom with brush based toolset.
Radius Of Influence
By default a strand in a groom has the potential of affecting any fur element created in the graph, by adjust the radius of influence you can limit the radius at which the strands affect the data. It’s generally a good idea to use the Display Radius Of Influence display parameter to visualize this.
General settings to control the strand topology.
Conform New Strands
When off new strands will use defaults set above, when on new strands will use interpolated values from the surrounding strands to conform itself to the neighbourhood.
Initial Strand Length
The default length for new strands, this can also be 0 to paint points vs strands.
Strand Segment Length
Each strand is made up of a number of segments, each segment will be equal too or less than this specified value - depending on the Initial Strand Length parameter.
Populate At Mesh Points
When on new strands will be created on the vertices of the input object, when off you’re able to create new strands anywhere on the input object.
Minimum Strand Distance
When adding or moving strands Yeti will ensure that this minimum distance is kept between strands within the Groom.
Controls to resample all or selected strands.
Choose whether to resample the strands by count or length.
The minimum number of segments for strands after resampling.
The maximum number of segments for strands after resampling.
The number of segments desired for resampled strands.
The segment strand length desired for resampled strands.
Resample all or selected strands.
Can be used to globally control how random the parting regions are.
Toggle Automatic Parting on/off
Auto Parting Threshold
A threshold used to determine what angle should be considered for Automatic Parting
Auto Parting Reference Position
The a reference position along the strands to use to compute the angle threshold for Automatic Parting
Introduced in Yeti 3.0, Deformation Layers provide a way of layering in additional Grooms and Guides on top of the current groom to mix, blend and deform the strands in a flexible way.
Other than being created on the same mesh there are no additional requirements for the guide layers, they can vary in strand count, length, etc.
Do Layer Deformation
Toggle layer deformation on/off.
Add Guise Set Layer(s)
Add a guide set as a new deformation layer.
Add Groom Layer(s)
Add a groom as a new deformation layer.
Once a layer has been added it’s weight can be controlled via the input or slider, or it can be re-ordered with in the stack.
It is also possible to export the current attribute to a texture map ( using the current UV coordinates of the input mesh ) and import a texture to set the values of the current attribute.
will turn off/on the display of the strands.
Display Strand Segments
will draw the strand segments in the viewport.
Isolate Selected Strands
will only draw the currently selected strands in the viewport.
Display Strand Length
provides feedback on the length of each strand, which is drawn at the tip.
Color of the strands.
Many hair styles are defined by a part where hair is combed in opposite directions to define a distinctive shape to the groom - although it’s possible to groom strands in opposite directions; by default Yeti tries to interpolate between the strands leading a fanning effect which may not be the desired result.
To support grooms where true parting is needed part regions can be created using a part_ tag as a prefix to a new attribute ( eg. part_left, part_right ). These attributes are masks that define the area of influence for the region and strands fully contained in one region will not interpolate with those fully contained in a different region, if a strand is contained in two ( or more ) regions then the effect is weighted based on the value of the masks.
A special attribute called part_randomness can also be painting which modulates how random the parts appear which is helpful to avoid uniform looking results.
Please see yeti_partingExample.ma for a reference.