STEP BY STEP: Create wind-swept hairstyles in Maya
Learn how to create realistic features on a stylised model and make interesting hairstyles in Maya using Xgen, Arnold and Zbrush
Crystal Bretz reveals her workflow
The Xgen hair system has been the top choice for many artists lately for creating hyper-realistic hairstyles. Like many grooming tools, Xgen can be a bit of a challenge to learn, but once you get the hang of its great tools you can create beautiful hair with ease. In this tutorial you are going to learn how to create a wind-swept hairstyle using Xgen, Maya, Arnold, and Zbrush.
This tutorial demonstrates how to create hair guides from proxy geo, simulate hair layering using Xgen’s clump modifier, and shade dyed and damaged hair in Arnold. You will also learn how to create stray and art-directed hairs for a final presentation of a still frame that simulates motion.
01 Create proxy hair geo Before starting any hairstyle it’s good to block out a proxy geo. This can be beneficial for many reasons. In this particular case we’re using it to establish the volume of hair and how far it should come off the head and we’ll use it to create our guides from. This has been done in Zbrush with Dynamesh for this instance but can be done in any 3D modelling software that you’re comfortable with. Once satisfied with the proxy geo, making sure it matches your concept, we’ll Zremesh and export the geo to bring it into Maya later.
02 Prep your scene for Xgen Now that we have our proxy geo we can start to prep our Maya scene to start with the Xgen. The first steps before starting the Xgen is to triple-check that your project is set. This is super important so that you don’t lose work and your Xgen maps save to the proper folders once painted. The next step is to import a mid-resolution version of the character model you will be using for the hair. Make sure this geo has its UVS in UDIM 1001. This is important because Xgen uses Ptex when painting maps. 03 Create hair cap geo The next step is to create cap geo out of the imported mid resolution mesh. To do this we will chop everything off the geo that we don’t need hair on. You will create this geo to generate your Xgen hair on instead of your clean model. We will make these cap geos invisible at render time or cast shadows so they don’t exist to the camera by changing their render stats in the attribute editor. Alternatively, you can hide the cap geo completely when rendering, it doesn’t need to be visible for the hair to show up.
The first steps before starting the Xgen is to check that your project is set
The next step is to import a mid resolution version of the character model you will be using for the hair
04 Create curves from proxy geo Now we’ll import the proxy geo we created in Zbrush earlier to create guides from. This is done by selecting the edges and converting them to curves. While doing this step it is important to keep in mind the direction in which your curve is going. The curve needs to start and be touching the base of the scalp or Xgen will create a real mess when you generate the hair and potentially crash Maya. The little square represents the start of the curve, you can reverse the direction of the curve in the Surfaces tab > reverse Curve.
05 Create Xgen guides We’re going to create a new Xgen collection and description with the following selected: Splines > randomly Across Surface > placing And Shaping Guides. Now that we have curves representing the general volume of the hair from the previous step we’ll convert these to Xgen guides.
We will do this by selecting our curves and navigating to the Xgen Utilities and using the Curves to Guides option. After this we’ll need to create more guides, as evenly spaced as possible, to fill in the rest of the head.
06 Paint density mask The next step will be to paint a Ptex map to control where exactly we want the hair to grow and how much. The maps are painted inside Maya with the 3D painter tool. These will be painted in greyscale, white is more and black is less. You can also paint with grey tones to thin out particular areas. To start painting you will need to click the Paintbrush icon next to the Mask section under Generator Attributes, set your resolution and name it. Then to save your new painted maps, click the Save icon next to the Paintbrush.
07 Paint region map Now we’ll paint a region map to define where the hair will part. Without the region masks, Xgen will not distribute the hair in a natural way. This map is also painted inside Maya, the same way as we painted the density mask. The difference between the two masks is that the region mask is painted in RGB colours instead of greyscale. You can find the region map under Region Control. If satisfied with your region mask, click the save icon. The region map won’t work until you turn the region mask from 0.0 to 1.0.
08 Fine-tune hair Next we’re going to fine-tune our guides by grooming these as per our concept. At this time, we’ll set the length for each guide, the width and taper of the strands, and adjust the density.
This particular project has a density of 100, and a width of 0.0105 with a taper of 0.2750.
09 Add layered clumping This groom relies heavily on layered clumping with Xgen’s Clump Modifier to create a natural feeling to the hair. How we go about doing this is by having three Clump Modifiers stacked on top of each other. For the first, we will click Setup Maps and select the box guide and save. The next will be set up similarly except instead of using guides, set the Density to 0.5 and click Generate. The next setup is similar to the second, except set the density to an even higher value. You can preview each clumping layer easily with Color Preview.
10 Add noise modifier Adding noise to your hair can help add more realism to your groom by adding a notion of imperfection. This project has a noise with a frequency of 1.0 and magnitude of 0.5 added. You can layer noise as well depending on your hairstyle or groom but for this style it wasn’t necessary.
11 Add cut modifier Using the Cut Modifier will trim the ends of your hair by a certain length defined by you. This can be handy to create a natural look to the tips of the hair. This can be used to define split ends and hair breakage or even freshly trimmed hair.
This hairstyle has one cut modifier added with an amount of: rand(0.5,2.0).
12 Create stray hairs Creating stray hairs is a very simple process with Xgen but it’s very effective for creating even more imperfection, thus adding more realism. To do this, navigate to the descriptions tab in the Xgen editor, then click Set Stray Percentage. Set this value to 4. Now create a noise modifier and set the frequency to ‘stray() ? .2 : .1’ and the magnitude to ‘stray() ? 7 : .4’. All of these numbers can be adjusted based on your specific hairstyle or groom but the expression will stay the same.
13 Create flyaway/windswept hairs This step is mainly for creating the art directed and windswept hairs seen in the concept. To do this we create a new description within the same collection using the options Splines>at Specific Points>placing and Shaping Guides. Add a Clump Modifier and set up the maps to follow guides again.
Adding noise to your hair can help add more realism to your groom by adding a notion of imperfection
14 Set up Arnold shaders for hair Now we will set up our Arnold shaders for the hair. To assign the shader, select the description group in the outliner and then assign the AI Standard Hair Shader in the Hypershade. After this is done, to create the dyed white hair and natural brown roots we will use ramps into the Melanin, Diffuse and Specular. Adding more melanin will make the hair darker so this is ramped to a 0.8 value. We want the white dyed hair to have more diffuse values so this is ramped to white. The specular was also tinted slightly browner near the roots.
15 Add final touches Now is a time you can look over your groom as a whole once it’s rendered and make tweaks as necessary. You can increase your stray hair percentage and adjust your modifier values if they don’t look right.
This is the time to make sure everything is working cohesively and adjust the elements that may be fighting each other.