Creating Character Hair in Games: The Never Ending Balancing Act

insights

Hey there! My name is John DeRiggi, a Senior Character Artist here at Schell Games. Each year at the studio, we dedicate one full week to what CEO Jesse Schell calls Jam Week. During this week, we do not work on client projects, but instead focus on developing potential internal projects and new skills or techniques that could be beneficial to an individual’s professional development, the studio’s collective knowledge, and also client projects as well. In the last Jam Week, I explored the creation of hair for characters in games as one of my projects.

The complexity of hair has always been a very difficult challenge in games. Thousands of individual computer generated hair strands are very processing intensive. CG hair looks pretty amazing in films these days, but film hair does not have the constraints of game hair. In film, a sequence of images are played back at a certain frame rate without you interacting. As in the below video, you just watch the magic of The Hulk from The Avengers unfold before your eyes with messy black hair!

Film can therefore utilize huge amounts of computer processing power to simulate each strand of hair on someone’s head, since it is all calculated before you, the viewer, actually see it. In contrast, games have to calculate all that hair information on-the-fly as you are pressing buttons on your game controller or computer mouse. Because of this on-the-fly processing need, we have to simplify hair in games much more than in film so that the game plays at an acceptable frame rate on your screen. Simplification in games usually means faking it in some way, and this is true for hair as well. The below example of Nathan Drake in Uncharted 4: A Thief’s End from Naughty Dog shows some pretty nice game hair fakery.

Because games cannot calculate each strand of hair as in films, simple flat pieces of geometry called hair cards are placed on the character’s head to fake the volume of real hair. Each of these hair cards receives a texture of hair strand clumps with a transparent background. You then only see the hair strands in the texture. With enough properly placed and sized hair cards, this simulates a scalp full of overlapping hair. The below image from Frank Tzeng at Naughty Dog shows these hair cards on the Nathan Drake model, before the hair strand texture is applied to them.

Nathan Drake Hair frank Tzeng naughtydog

By using a similar process, I aimed to create a longer hair test for a female head during Jam Week. These hair cards in the below image are therefore longer and wavier to create the believable volume of long hair.

Laurie Hair Cards zbrush

I used a sculptural approach to create the hair strands by sculpting each clump of strands in ZBrush, varying the clumps from thick to thin for variety in the final game hair.

Hair Strands zbrush

These hair strand clumps were then painted in Photoshop, where the background was also made transparent to create the final texture.

Hair Strands texture

I combined the hair card model with the new hair texture in a very useful game engine simulator called Marmoset Toolbag, where I could also add lights and shadows as well. Accurate shadowing with hair is very important to create something believable. It is also very challenging in games since creating shadows on-the-fly is extremely processing intensive with overlaid transparent textures like we have here. You therefore have to find a balance with enough hair cards, texture detail, and good lighting and shadows to create convincing hair, while still making sure the game can be played without lagging!

Laurie hair Test 512

Although my quick hair test is certainly no match for Nathan Drake in the upcoming Uncharted 4 title, I certainly learned quite a bit! For more info, you can also check out this hair tutorial by the talented character artist, Tom Parker, at 3D Artist Online. Thanks for reading!

For any questions about character art in games, feel free to contact me at john@johnderiggi.com. See more art on my website, or follow me on Facebook and Twitter!