I am Jason Tsai. I started my 3D career in 2011 after finishing the computer animation program at BCIT. I am currently working at Mainframe Studios. I have worked on feature films and animated series, including Ratchet and Clank, Escape from Planet Earth, and Spy Kids. The most recent projects I worked on are Team Zenko Go and Madagascar: A Little Wild.
Before grooming, I worked mostly as a texture/look dev artist. In the summer of 2019, the studio had a window of opportunity for a grooming position. I quickly joined.
What makes grooming exciting for me is that I enjoy the challenges it brings to me. As a CG artist, I love the artistic part but also favor the technical side a lot. Many interesting hairstyles just make me wonder how these can be achieved in 3D – sometimes I have no clue how to do it.
I would then spend days or even weeks doing research to come up with a workflow. Whether it's finding a technique or creating a new groom tool to help the creation of a certain hairstyle. Grooming provides this opportunity to explore from a different perspective and mindset in the industry.
The Side French Braid Project
There were two goals for making this project: to create demo videos for a tool kit (Groomer’s Tool) and also to test myself to see how far I can go with my current knowledge and experience.
I started searching online for a proper hairstyle that would best fit two goals. When I came across this hairstyle from Missy Sue, it immediately caught my attention. I asked a few people how they would groom braids like this. Most said they would divide the hair into groups: the side hairs and the braids.
Instead of doing that, I wanted to study how it would be done in real life – with the side hairs and the braids built from root to tip continuously. Grooming with this method is also something I do not have much experience with. I was up for the challenge and got right into it.
Difficulties Of Creating a Side French Braid
The complicated part of making this hairstyle is figuring out the structure of the braids before starting. The flow of each strand is important. Especially with a continuous braids setup, the planning and the placement of the 3 strands will determine how the braids look in the end.
Preparation: Scalp Geo Setup
With references gathered, I jumped straight into Maya. The first step is to determine the geometry area that will have hair. For XGen, I always extract a few extra rows of faces just to be on the safer side, as it can get tricky to add more faces later.
I then UVed the scalp mesh and named it properly.
Inspiration: Planning, From the Root
A while back, I came across Becca Baldwin’s Hair Groom: Overwatch: Rise and Shine on ArtStation. In the last image, she shared the hair tube geo structure that shows the blocking shapes on the scalp.
It is interesting that Disney has also shared a similar idea in their video Tonic that they used their volume-based editing tool to generate these blocking shapes.
After comparing the two sources, I had an enlightening moment of realization about hair creation. The importance of blocking out the hair from the "root".
Hair is just like grass growing from the soil. It doesn't matter how they look when they are fully "grown up", they need to grow from somewhere first. This is why at the very early stage, we need to determine/block out the hair volume and its placement on the scalp. Once they grew tall and long, then we can apply the modifiers, clump, noise, curl, etc.
With this inspiration, I used the reference images I gathered to see where each section of hair originated from. I blocked it out with three colors, one for each braid strand. When you become more experienced, you will be able to visualize this. However, if you are a beginner or want to take on a more complicated hairstyle, I recommend spending time doing this. It will give you a much clear idea of where hair grows and how hair flows. I used the Maya 3D Paint tool to illustrate this concept.
For the next few steps, I relied on Groomer’s Tool. It’s a Maya plugin that comes with multiple tools specialized for grooming.
First, I used the "Curve to Braid" tool to generate the geometry of the braids.
With the "Curve Sculpt" tool, I sculpted the braids to match the reference position in the reference.
I adjusted the knot width, twist, and flatness of the braids to shape them closer to the reference. In this step, I tried to match the braids to the reference as closely as possible. It is important to pay attention to the five numbered knots in the image below. If they are not positioned nicely, everything will fall out of shape when the neighbor hair strands flow into them.
When the shape was done, I then extracted the three central curves from the braids geo. These three curves would be the "heart" of the braids. All the XGen guides that I created next would be snapped to one of these three curves.
XGen – Adding Guides and Flowing them into Braids Curves
I studied the reference very closely to see where to place each guide. I also need to figure out which one of the three central braid curves that the new guide will flow to. As the braids go down, a new section of hair will join from the side to flow along the braids, just like small creeks flow into the river.
To flow new guides into a central curve, I snap the new guide to the selected central curve by using the "Guide Snap" tool from Groomer’s Tool. This is a technique that was discovered by YangRUR, who is one of the Groomer’s Tool users.
When the guide root was too far away from the curve root, to better control the shape, I would delete some excess CVs. This is to make the root section of the guide jump closer to my sculpting position. I repeated this process until the entire head was covered with guides.
Tip: When using the add/move guide tool in XGen, a middle mouse click will give you a guide without any interpolations from nearby guides.
For organizing purposes, I added guides into layers by using the "Guide Color" tool. It adds color value variations but keeps the hue for that layer, which makes selecting and adjusting guides easy. Here is the final guide placement for the braids.
XGen Braids Modifier Settings
Once the general base shape is done, it is time to use modifiers to add interesting details.
I created modifiers to affect different sections of the braids:
- hair before it turns into a knot;
- hair at the tip.
Here’s what the hair looks like with the modifiers turned on one by one.
Additional Sections of Hair
Creation for the additional parts of hair was fairly simple. I added the baby hairs, sideburns, bangs, and flyaway hairs.
Lighting and Shading
The lighting I used was just an aiSkyDome with an HDRI image.
For shading, I created two Arnold aiHair shaders. One for the darker blond, and another for the lighter blond. Then, I used an aiLayerShader to blend these two shaders with a mask. The entire mask was a ramp that mixed with three maps.
Below are some of the renders while I was doing mask exploration.
Here are the final renders.
The first challenge was to adjust the modifiers and masks to affect the proper section of the hair. I explored the possibility of using the $cLength expression, but it did not turn out as controllable as expected. The reason it did not work was that each hair primitive goes into the "knot" section at a different length. Hence, I had to create more modifiers and masks to control each section.
Another challenge was the time when a guide needed to be "rerouted", so it would follow into another central curve.
Based on the current root-to-tip setup, if I manually sculpt the guide, it would be very time-consuming. If I convert the guide to curve, I would need to move the root over to its previous position manually. Thus, both ways are not ideal.
In the end, I chose to use the same guide snap technique that I mentioned earlier. This method would keep the guide root in position, therefore, only a small amount of guide adjustment was needed.
To retain the overall hair shape, I first grabbed a screenshot of the model that matched the angle in the photo reference. I then placed the photo reference and the screenshot next to each other and drew on the guidelines. This helped me to better locate the hair position in relation to the character’s eyes, nose, chin, etc. From here, I just simply sculpted or moved guides to match the reference image as much as possible.
To adjust a group of guides, I used XGen’s "Lattice" tool from the utility tab. It allows previewing the hair before applying the change.
Advice to Artists
I like to treat each XGen guide with care. Each guide should exist for a reason. Take the time to see if a guide should be added or removed. Adding way more guides than necessary can make things difficult down the road. Also, try keeping the guide CV count as low as possible in the beginning, and only increasing it when needed. This will make your life so much easier.
Finding good reference photos for more realistic hairstyles is key. In order to keep everything consistent, I would highly recommend searching images of the same person from different angles. For more complicated braids, It is also best to study the same hairstyle from different perspectives. Mix-and-match images of different people can cause a lot of confusion, as everyone’s head shape is different, and everyone ties their hair/braids differently as well.
One good source to find references is hair stylists' portfolio websites. They usually have high-quality images. For this piece, I used Missy Sue’s website.
If anyone would like to learn XGen more, I highly recommend Michael Cauchi’s Introduction to XGen on FlippedNormals.
If anyone is interested in the tool I used, check out No Brain’s Groomer’s Tool. Thank you for your time, I hope you found this interview helpful.
You may find these articles interesting