Course overview Course overview
Create quality hair for games
This class will teach you how to create AAA quality hair for games. Using techniques developed during the production of Horizon Zero Dawn, you will be taken through the full process of planning your work, creating hairs in xgen, baking the hairs into textures, creating a hair asset, and finally putting it into Unreal Engine. The class will contain both practical workflows and theoretical mindsets to help you further hone your skills in hair creation for games.
Environment design WHAT YOU’LL LEARN
The more you know, the better.
Taking your skills to the next level
Lectures by Johan Lithvall
Johan Lithvall is a Hair Specialist and Character Artist who specializes in real-time rendered hair for games. He was responsible for the full production of hair for Horizon Zero Dawn, including but not limited to: creating benchmark assets, including the hair for the main heroine; establishing a pipeline in the creation of hair; educating outsourcing vendors in the creation of hair, and providing live feedback sessions to studios as well as daily feedback to the artists. His other professional experience ranges from Killzone: Shadow Fall to The Walking Dead. He is currently a full-time freelancer and consultant for the games industry while living and travelling the world as a digital nomad.
Hair Creation for Games Student gallery
winter TERM Registration
Nov 5, 2019 - Feb 1, 2019
Calvin Verhoolen / Fall 2017
Johan is a great instructor.
Companies that hire our students
Speak to an advisor
Need guidance or course recommendations? Let us help!
Show us your skills
Not sure if you have the skills, or are you proving you do? Show us.
Game Character Hair Creation Techniques
Interview with Calvin Verhoolen
Calvin Verhoolen showed some of the cool stuff he learned about the creation of real-time hair for game characters.
My name is Calvin Verhoolen. I am a Senior Character Artist working in Berlin/Germany.
I started 3D in the year 2000 working at Eurocom Development Ltd. UK on titles like James Bond – TWINE, Nightfire and Pirates of the Carribean. After working for Climax Ltd. on Silent Hill Origins I moved back to Germany to join Yager Development for cool projects like Spec Ops – The Line and Dead Island 2. I also worked on some interesting mobile games at Wooga.
I am self-taught and enjoy learning something new in anything I do. The fastest way to learn of course is by having a good mentor which lead me to CGMA, who have a great selection of courses and mentors to choose from. When I saw that Johan Lithvall was presenting his course Hair Creation for Games I did not hesitate to enroll.
Reference is key
Hair in games is both interesting and challenging, since there is a lot to get right in hair.
It is an enormous time effort and I have yet to see someone do hair fast. As with everything in art: Reference is key!
Hair is one of the best tools to create personality in a character, since it shows a lot of attitude.
Which hair style do I want? Is the character well-kempt or does he/she/it not bother with hair?
How does it frame the face? Does it hide the face? What colour does it have?
All those decisions will shape the way people will perceive the characters personality and goals.
Once your reference is collected and represents what you want to express, you need to understand the hair you want to achieve in its physicality. Where are the roots? What is the growth direction and how does the hairline separate hair from skin? How is it structured and what are the details?
Armed with all this information about the haircut to be created you hit the technical limitations of the real-time world, forcing you to plan out your hair to be efficient in polycount as much as texture space.
Start planning out your texture with painting a quick map of it in Photoshop. This is a good chance to also study the reference more in-depth. For long hair it is best to lay out the texture in a 2:1 aspect ratio, keeping in mind to leave some space for any additional hair you want to create later when needed. The hair becomes less dense from right to left.
Xen will be your next port of call to create the texture you need for the final asset. Map the planning texture onto a ground plane that has the same aspect ratio as the texture.
Then extrude the top edge upwards to create planes to spawn your hair from. After this base setup is done you can spawn some spline curves by painting them into the ground plane in top view, with you planning texture applied for reference. Those splines will then be converted to XGenguides. XGen can be used to define the amount of hair per card, clumping, noise and other attributes of hair.
Once this is done the hair is converted into geometry and baked down to the ground plane. This way you can create all texture maps used by the shader in Unreal. There will be a height map, alpha, some gradients and an ID map. You can cut the plane into your final hair cards afterwards.
With the hair cards and textures created, the actual process of creating the hair mesh can start.
The most dense cards are used to create the block-out hair, which will define the main look. It is important at this stage to make sure you cannot see through the hair onto the skull or through to the other side. Once this is blocked out the second and third layer of hair will be created on top, leaving some negative spaces to give the hair depth. As with most assets in art we go from large to small detail. The later is created at the end and the most fun bit since it will give the assets its final volume, flow and shape. Finishing with flyaway hair will tie up the silhouette and finalize the mesh.
With the mesh done, it is almost ready to be exported into the engine. To enhance the depth and control it in the shader, ambient occlusion is going to be baked down into the vertices and them the asset can be exported. The engine stage has finally been reached and the mesh and textures can be imported. The shader used in this asset is the hair shader Epic provides in their character benchmark scene. Once this is set up it is all about careful tweaking of the attributes in the shader.
This hair asset has about 40K polygons which is quite heavy for hair. There is still a lot that can be cut down especially on the Base Layer of hair, since it is the most covered layer. Apart from that the top layer with flyaway-hair can be switched off in the first LOD pretty quickly and Simplygon can be used for the rest of the hair afterwards.
Hair in real-time is still a very complicated matter. The creation of hair simply takes time even on an expert level. It cannot be scanned or simply automatically built at this stage. Research, planning, baking, texturing and mesh creation as well as integration into the engine and also animation preparation make it a costly matter for every production.
Animating a hair asset shows its own challenges, since using physics on these hair cards can lead to intersections which will break the illusion instantly.
But: If this is done right it pays off well by making your characters stand out and give them and your project a lot more depth.
One strategy I keep being reminded on in my career and also here by Johan is that it is important to be able to kill your darlings early. So keep iterating every step of the way, but do it quickly to stay on schedule. Block-out your work to answer the most important questions of your task first, but also plan carefully to stay within budget/time.
I hope this general overview of the workflow was helpful to you as a reader. I can only recommend taking the course for more detail. I feel really lucky to have had the chance to be part of the CGMA Hair Creation for Games course by Johan Lithvall.
Tips & Tricks on Hair for Games
Interview with Andrew Giovannini
My name is Andrew Giovannini and I’m a 3D character artist currently living in Davis, California. I graduated with my bachelor of science degree in Media Arts & Animation in mid-2016. Right after graduating, I decided to make a shift and focus specifically on 3D character art for video games. For the last 2 years, I’ve developed my skills as a character artist through personal projects and taking courses through CGMA and Game Art Institute. From CGMA, I’ve taken Anatomy for Production, Introduction to Marvelous Designer, Animal Anatomy, and Hair Creation for Games.
Hair for games
When building the hair asset it’s important to focus on the overall form and silhouette and how the form is broken up giving the hair it’s depth and natural look. It’s extremely important to gather as much real-life reference early on and study the style of hair you are trying to achieve, carefully observing how the hair is broken up, clumping, the flow of the hair, and understanding how it naturally wants to fall into place. Good high-quality reference and observation of the areas where you’ll be able to see the roots, along the hairline are also extremely important. Everything has to be considered and planned out when it comes to how you create your textures and construct the layers of hair. The more time you spend gathering good reference material and understanding the construction of the hair in real life, the easier it’s going to be when it comes time to actually constructing the hair asset out of hair cards for the character.
Xgen is a procedural tool in Maya for creating instanced geometry along the surface of a mesh. It can be used to generate hair and fur, but can also be used to populate environments with grass, trees, and debris. It’s a very powerful tool with a lot of flexibility. For real-time hair, we use it at the beginning of the workflow to generate clumps of high-poly hair geometry. Xgen has built-in modifiers that allow you to procedurally control density, clumping, length variation, noise, and even things like curls and waviness. There are also tools that let you directly groom and manipulate the hair splines directly.
Once the hair clumps are generated with Xgen, they have to be baked down onto a flat texture for the hair cards. This can be done by either rendering the Xgen splines directly in Maya with Arnold or Mental Ray or by converting the Xgen splines to geometry and using xNormal to bake the textures on to a flat geometry plane. The method and approach depend on how the shaders are set up for the game engine, but there is a lot of flexibility. For Johan’s class, we baked the hair geometry onto flat planes using Xgen to create texture maps which utilize Epic’s realistic hair shader, which they created and provide for Unreal Engine 4. I’ve also created a video breakdown of the baking process with xNormal called “Creating Hair Textures for Unreal Engine 4” which can be found on youtube.
In my personal opinion, real-time hair is probably the most challenging and labor-intensive part of a real-time character to get right and to do well. Even with great tools like xgen, which help a lot with texture creation and the amazing advances in shaders, which help a lot to achieve great looking results, it still takes a lot of time to construct the hair from hair cards in a convincing way. This type of challenge is best overcome by carefully planning your approach from the beginning to reduce the amount of times you might have to redo anything, which is definitely going to happen at some points no matter what. Scheduling yourself and spreading out the workload over a period of time can help a lot too if you have that luxury.
First, the individual cards are combined and set up as hair clumps consisting of 2-3 cards each. Start out by creating an opaque base layer blocking in the overall structure and flow of the hair carefully following the references, while being sure to get good coverage over the scalp of the character’s head. Then begin laying down a breakup layer using less opaque cards following the general flow and structure of the base layer, but still looking for places to break up the flow of the base layer based on your references. While laying down cards, it’s important to be mindful and keep the number of edge loops in your cards to a minimum, only adding edges where necessary to accommodate the bending and twisting of the hair cards. This helps to minimize the number of vertices to what is necessary and minimizes the impact on the framerate in the game.
This step is repeated at least 1 or 2 more times using less opaque hair cards each time for each layer. While constructing the layers it can also be necessary to make large adjustments to the overall form and silhouette of the hair using a lattice deformer… since adding layers on top of layers can end up making the volumes too large in certain areas. The final layers are also used to work out the transition areas along the hairline and introduce stray hairs and flyaways. Once all layers are constructed, the ambient occlusion is baked into the vertices of the hair cards on a layer-by-layer basis, which can help to add some depth to the overall hair asset inside the game engine.
The final asset is imported into Unreal as one piece and the realistic hair shader provided by Epic is utilized along with the hair textures baked out with xNormal to achieve the final result.
The biggest tip I can offer for hair and character creation, in general, is to slow down, plan, and take the time to understand the process. There’s always a lot of pressure to get the work done quickly, it’s understandable, but careful planning will always save you time in the long run and will help you learn more and produce better results.
Learning Johan’s process and workflow have been invaluable. After tackling the assignment for the course, I feel a lot more capable of producing many different types of complicated hairstyles for games, greatly increasing my value as a character artist and creating a nice portfolio piece in the process. My time with CGMA has overall been great. The talent hired to teach the classes is top notch and the format you guys have developed for deadlines, weekly feedback, video lectures, and weekly Q&As offers a lot of content for each course. I definitely plan to come back and take more courses in the future.