Hair Systems

Courtesy of Avalanche Software
Animation Master 2004 now has a very exciting and powerful hair system. This system can be used for fur as shown in the Orangutan image above. It can also be used for long human hair, grass, plants, trees, feathers, and scales to name a few. It is extremely versatile and has about every feature needed to create unsurpassed hair.

New Material
To add hair to a model you must first create a Hair Material. Select [File][New][Material] to do this. A new Material Window will appear. This window can be closed because we will want to work with our hair on the actual model.

Change Type
The Material must be changed from a simple Attribute Material to a Hair Material. Right click (control click on a Mac) on the Attribute object under the Material in the Project Workspace Tree and select [Change Type To] [Particle System] [Hair].

Apply Material to a Model.
The Material can now be applied to a Model so we can see the changes we make take effect in real-time. Simply drag and drop the Material onto a Model or a Group on a Model.
If the Modeling Window is not currently open for the Model you just applied the Material to, simply double click the Model in the Project Workspace Tree to open it.

Default Hair Material
The hair should look something like the above image. The hair doesn't look very realistic at this point, but we are just beginning to touch on the features that allows the hair to come alive.

Draw Particles / Hair
Note: If the hair isn't visible on your Model first try pressing the <space bar> to refresh the screen. If that doesn't show the hair make sure that "Draw Particles / Hair" is turned to ON in the [Tools][Options] menu on the Render tab. This property only shows up if the Advanced options is checked and the Quality is set to any of the real-time options (Default, Wireframe, Shaded). The Shortcut key for toggling "Draw Particles /Hair" ON and OFF is <Shift + 8>.

Hair System
Now that we have hair on our model it is time to customize it to fit our needs.
A Hair System can contain more than one Hair Emitter. Just choose [Add Hair
Emitter] from the Hair System's context menu, or choose [Duplicate] from a Hair
Emitter's menu.
The Hair System governs all child Hair Emitters. So changing values like Length,
Density, etc. effect all child emitters. Whereas setting values on an individual
Hair Emitter only effects that one.

Hair System Properties
When the Hair System object is selected in the Project Workspace Tree, it's properties will appear in the Properties panel.
Hair System Properties:
Preroll: Hair systems are affected by gravity and other forces when dynamics are turned on. Many times you want the hair to be in its resting state when you render the very first frame of an animation or when you are in a Modeling Window where there is no concept of time. Preroll allows you to type in an amount of time that you want the hair to be acted upon by forces before the first frame is drawn. For instance in our image below notice that the hair appears very stiff on the first frame when no preroll is applied. This is because for stiffness to take place it must be acted on by gravity. Using Preroll is necessary if you wish to see the effect of stiffness on your hair in a Modeling Window. Preroll is set to zero by default because it slows down the rate at which the hair can be drawn dramatically in many cases, especially when the hair is being groomed (the dynamics for all of the frames set in the Preroll have to be calculated to show you the results on the first frame). Usually most of your properties can be set with Preroll off, and then preroll can be turned on to adjust the stiffness of your hair or when you render a scene so your first few frames look correct, because your hair has been calculated and has reached its resting state.

No Preroll / Preroll 00:01:00
Cast Shadows: Turn this option on when it is necessary for the hair to cast shadows. When this option is turned on it will slow down the render time only when you do a final quality render with shadows on in the render settings too.
Control Points: This value specifies how many control points are on each hair guide. This is where the power starts with Hair Systems. Hair guides allow you to brush or style the hair that comes out of the patches. Hair Guides will be thoroughly explained later in this document. To see the Hair Guides you must be in Grooming Mode.

Hair Guides
Grooming Mode: There is a button on your "Mode" toolbar called Grooming Mode. When in Grooming Mode, you can see a guide hair coming from each control point that has hair on it. These hair guides define where the hairs are trying to get back to. When dynamics is turned on in the system, the hairs won't generally make it to these guides due to gravity and other forces. We will talk more about Grooming Mode in the Grooming section later.
![]()
Grooming Mode
Dynamics: Turn on dynamics if you want your hair to be affected by gravity and other forces. Many times when this option is turned on you will want to set a Preroll so the dynamic calculations can occur before the first frame of your animation.
Stiffness: Controls how stiff or ridged each hair strand is. The stiffer the value the less affect dynamics and forces such as gravity has on the hair. This value is a percentage to adjust all the child Hair Emitter's Stiffness values.

Stiffness
Density: Density depicts how many hair follicles come out of the patches with this Hair System on it. The larger the value the more hair follicles there will be. This value is a percentage to adjust all the child Hair Emitter's Density values.

Density
Length: This value is the actual length of the Hair Guides, which in turn is the maximum length of the hair. This is reversed from all the other properties. Usually the Hair System properties are a percentage value that adjust all the child Hair Emitter properties. But in the case of Length it is the opposite. This is because there is only one set of hair guides, not a set for each Hair Emitter and hair can not be any longer than the Hair Guides. So this Length property allows you to set the maximum length of the hair, and you can make each of the Hair Emitters have shorter hair than this by specifying a percentage of this length.
Thickness: The Thickness property controls how thick each hair follicle is. This value is a percentage to adjust all the child Hair Emitter's Thickness values.

Thickness
Kinkiness: Controls how kinky the hair is. This value is a percentage to adjust all the child Hair Emitter's Kinkiness values. Since the Hair Emitter's Kinkiness value defaults to 0 you will not see an effect by setting this value until you add a kinkiness value to the child Hair Emitters.

Kinkiness
Kinkiness Scale: This value is a percentage to adjust all the child Hair Emitter's Kinkiness Scale values. Kinkiness scale controls how large or small the kinks are.

Kinkiness Scale
Real-time: Hair Systems can be computationally expensive, causing the response time to be become sluggish. These real-time properties are aimed at letting the user choose between tactile real-time interaction with hair in the interface, or high quality real-time rendering.
Quality: Determines the quality of the real-time rendering of hair.
Don't Draw: The hair will not draw in the interface but it will still Render. The hair guides are still visible for grooming.
Wireframe: The hair will be rendered with lines using the diffuse color of the hair material. This is the fastest rendering mode.
Shaded: The hair will be rendered taking lighting and specular highlights into consideration. This is slower than displaying the hair as flat shaded lines.
Density Factor: For sake of speed, when rendering the hairs in the real-time interface, the density of the hair will be reduced by this factor.
Spline Subdivision: When rendering in the interface, the splines used to draw the hair are split into individual line segments. This value determines how many line segments to use when doing so. The smaller the number, the less line segments used, causing the hair system to render
faster.
Hair Emitter Properties:

Hair Emitter Properties
Image: Select an image map to be wrapped onto each hair follicle. This is great for creating feathers on a bird, scales on a fish, or leaves on a tree. The image will be rendered with the exact same properties as the hair follicle would have used. For instance Thickness, Kinkiness, Bow, and all other hair properties will control how the image looks.

Leaf image map used for hair follicles
Image Courtesy of Phillip Leavens
Cap ends:

Cap ends
With this option on, hair with a thickness and bow will have an end cap added to the tip to make it appear to be solid. This property defaults to "OFF" because in most cases caps on the end of hair follicles are not even noticeable so there is no need for the added expense.
Density: Controls the quantity of hair emitted from the Hair Emitter.
Length: Controls the length of the hairs emitted from this emitter as a percentage of the length set in the parent Hair System.
Length Variation: The amount of fluctuation from the above specified Length percent used to determine the length of each hair. If Length of the Hair System is set to 10cm, and the Length of this Emitter is set to 50% (causing hairs to be 5cm), but its variation is 20%, individual hairs will be generated with lengths randomly ranging from 4-6cm, or 40-60% of the Hair System's length.
Position Variation: Controls how sporadic the hairs' placement on the surface of the model is. Without any positional variation, the hair will be emitted on a perfect grid, assuming that all guide's individual densities are set to 100%.
Direction Variation: Controls how perfectly the hairs come straight out of the surface of the model. With no direction variation, all hair come out perpendicular to the surface. The higher the variation, the less likely they are to come straight out.

Direction Variation
Surface:

Surface Properties
All of the surface properties (Diffuse Color, Specular Color, Specular Intensity, Transparency, etc...) can be set for the Hair Emitter. All of these properties can be set for any value along the length of the hair. Using the timeline you can set these properties from 0% - 100% along the hair.

Diffuse Color Timeline
In the grass example pictured above, the hair changes color from a dark green at the root to a transparent yellow at the tip.
Brightness: Darkens or lightens the diffuse color of the hairs along their length. This is most useful when the hair color is driving by the decal on the patch it is emitting from. This allows a variation of color still along the hairs length.
Surface Variation: Fluctuates all of the surface properties and brightness of individual hairs from the standard values set above.
Thickness: Sets the thickness of the hair. The thickness can very along its length allowing for some powerful shapes to be made.
Thickness Variation: Fluctuates the thickness of individual hairs from the standard value set above.

Mr. Dodo Image Courtesy of William Sutton

Thickness Graph
The feathers for Mr. Dodo were created by changing the thickness of the hair along its length shown in the timeline image above.

Flower Hair
The flowers are created by changing both the diffuse color and the thickness of the hair over the length of the follicle.
Bow: Sets the amount of bow in the hair. 0% bow looks like flat strips which can be good for feathers, 100% looks like tubes and is more hair like.
Bow Variation: Fluctuates the amount of bow on individual hairs from the standard bow value set above.

Bow
Kinkiness: Sets the kinkiness of the hair along its length. Use the timeline to control the location at which you want to set the hairs Kinkiness value.

Kinkiness along length of hair

Kinkiness Graph
The timeline images above show how kinkiness was increased halfway along the hair and then also at the tip. The results are shown in the hair image above.
Kinkiness Variation: Fluctuates the kinkiness of individual hairs from the standard value set above.
Kinkiness Scale: Sets the size of the kinks in the hair along the length. Use the timeline to control the location at which you want to set the hairs Kinkiness Scale value.
Kinkiness Scale Variation: Fluctuates the kink scale of individual hairs from the standard value set above.
Face Camera: The hairs are always rendered as strips. With this option on (100%), all hair strips will face the camera. This gives the illusion that the hairs are rendered as tubes (good for hair). If it is turned off (0%), they lie in the direction of the surface that they came out of (good for feathers or grass blades).
Face Camera Variation: Fluctuates the face camera value of individual hairs from the standard value set above.

Face Camera

Face Camera Timeline
In the above example the hair was changed from 0% face the camera to 100% face the camera at 74% along the hair's length.
Grooming Mode: There is a button on your "Mode" toolbar called Grooming Mode. When in Grooming Mode, you can see a guide hair coming from each control point that has hair on it. These hair guides define where the hairs are trying to get back to. When dynamics is turned on in the system, the hairs won't generally make it to these guides due to gravity and other forces.
![]()
Grooming Mode
![]()
Grooming Toolbar

Brushed Hair
All of these grooming tools can be used in
an Action or Relationship to change the hair over time.
Note: When in the modeler, you are seeing frame 0, so no
gravity has taken affect. Because of this, the hairs will be at their goal as
described by the hair guides. It is sometimes a good idea to have a Preroll of
about 20-30 frames on the Hair System to allow gravity to have taken place by
frame 0. This will slow down the process of grooming though, because each time
you manipulate a guide hair, those 20 frames have to be recomputed to show
what the hair will now look like at frame 0.
Surface Driven Properties:
Many times it is desired to use the surface's decals to control Hair Diffuse Color, Hair Length, or Hair Direction.

Decal Controlling Hair's Diffuse Color

Decal Image
To change a decal from coloring the surface of a model to controlling properties in a Hair System simply click the Image under the decal to show its properties in the Properties panel.

Decal Image Properties
Change the type of the Decal Image to "Other..." and a new Property will appear called "Properties Driven."

Adding a Property to Drive
Right click (Control click on a Mac) the "Properties Driven" property and choose [Add Property].

Driving Hair Diffuse Color
From the new Properties Driven Property, there is a list of surface controllable properties available on this model. Because this model has a hair system on it, it has the properties listed from that hair system. Select "Diffuse Color" to have this decals image control the diffuse color of the hair system.

Surface Driver
After the Diffuse Color was selected from the Properties Driven property the Surface.DiffuseColor Driver will appear under the Hair Emitter showing that the Diffuse Color is being controlled by the surface decal.
Hair Tips:
A hair's color is determined in the following order:
Underlying surface color from the model (this includes materials but not decals).
If a decal drives the hair's Diffuse Color, it is used, and it overrides the color from above.
If the Diffuse Color is "Set" on the Hair Emitter, none of the above matters because it takes precedence. This color's timeline channel is interpolated along the hairs length.
Finally, no matter how the color is determined above, the color is multiplied by the Hair Emitters Brightness property that is also interpolated along the hair's length.
Did you know you can create a single Material that not only has multiple hair
emitters, but also has hair that varies in attributes across the surface of the
model. This material is self contained and can be dropped on any model or group
of control points as is, with no maps involved.

Hair Material with Multiple Attributes

Multiple Attribute Hair Material
Notice that everything needed to make this system have a two-toned look and have
sparse gray hairs coming out of it is contained in the material.
To break it down:
HairTurb.Mat has two children: Hair System, and CellTurb. The hair system was made
by creating a new Material, and right clicking the Attribute (Control click on
the Mac) and choosing [Change Type To] [Particle System] [Hair]. The CellTurb combiner was created by choosing
[New Attribute]
from HairTurb.Mat's context menu, and then changing its type to
[Combiner] [Turbulence] [CellTurb]. Then change the colors on each of the
Attributes under the CellTurb combiner. Scaled up the turbulence a little
(it's kind of fun to play with this while watching the hair in the model window).
The Hair System has a second Hair Emitter added to it by choosing [Insert Hair
Emitter] from the Hair System's context menu. This one has a much lower density.
Notice that the first one does not have a color set. This means that the hair
emitted from this emitter will take it's color from the underlying surface's
color (which comes from the CellTurb combiner). The second one has overridden
the color to a grayish color.