This is great. Keeping UVs at 90 degrees never occurred to me but it makes so much sense it seems obvious in retrospect
Unless I'm mistaken, this is how Shadow of the Colossus handles the fur on the Colossi
Awesome breakdown Simon!
Airship Images shared some information about the pipeline they use to create different hairstyles for virtual characters in games like Forza Horizon 3 and The Division.
Hey, we’re Airship Images a quality focused external art studio founded in 2010 and located in Lancashire, UK. The studio consists of 10 core artists and scaling with some of the most talented freelancers. Our speciality is in character hair & fur, which we have provided for 10+ AAA titles in the last two years alone. We are constantly developing and evolving our techniques as well as our internal tools to produce the most realistic hair in the industry.
We have a high degree of skill across the team when it comes to creating realistic faces and likenesses, both from scans and from scratch. When realism isn’t required we are well adept at stylised pieces and have worked on multiple games providing full stylised characters.
We have developed our own in-house tools over time to streamline our process and we continue to develop these tools with every project we work on, evolving our pipeline further. We don’t use plugins such as NeoFur or XGen, our process involves painting our cap and strands by hand using in-house brushes we created for Zbrush and Photoshop. By painting our cap and strands it gives us a higher level of accuracy when creating realistic hairstyles and adds more artistry to the process. This process also gives us the flexibility to create stylised painterly hair or high-quality realistic hair without changing our pipeline. We use Maya to place our strands utilising proprietary in-house tools known as Haircore to make the process quick and precise.
Creating hair is mostly tricky due to the freeform nature that hair strands take in real life. They are both individual but also treated as clumps or as a whole. Naturally we can’t replicate every hair strand due to tri count restrictions and even if we did, each strand would require many subdivisions. The average head of hair has 120,000 hairs! If each strand had 10 subdivisions, that’s already 1.2 million tris! We normally get between 5-20k, because of this we need to find a way to approximate and simplify the hairstyle and over many styles we have developed skills to break down a style into its core elements and recreate them in real-time.
Another common challenge we face when creating hair assets is tintable textures, where players can customise their character’s hair colour. Often, a black and white diffuse map is multiplied by a colour chosen by the players to create each tint. However, when you do this you lose a lot of depth and variation in the hair, so a coloured diffuse map would give better results but aren’t always optimal in a character customisation system. Having faced this challenge multiple times, we have several solutions that maximise the quality that can be achieved from the tintable map in multiple engines.
Another challenge we face is approaching hair for different game engines. While some engines might support alpha blend or soft alpha, others may require we work with cut-out or dither. This greatly changes the methods we use to build the hair and the way we author the alphas. We work closely with the game studio to ensure both our methods and the shader work correctly in the target engine.
This depends on the project, most of the time we start from scratch as it will give us the best and highest quality results as no two hairstyles are the same. There can be some reuse in elements of hairstyles where areas are shaved but with the tools we have in place its often easier to create it again from scratch for that specific style.
Often our clients will have a single image or concept of what they are looking for, we will then create a reference board of similar hairstyles from the front, side, ¾ views and back. For trickier styles we get a hairstylist to visit the studio and take our own reference images to assist us further.
This is entirely dependent on the project, we test our hairstyles in whatever engine our client is developing their game in. If we don’t have access to their build then we test assets using Marmoset Toolbag and iterate on them once we see how it’s looking in their build. We feel Marmoset gives us the best quality render for hair, this can sometimes be misleading as the same asset can look vastly different in a client’s engine, so generally speaking it is always our preference to build the hair for the engine that’s being used by our client. Our Haircore tools make LOD creation extremely straightforward and is all done in Maya to our clients’ preference.
As with all aspects of 3D it takes a lot of practice, time and patience to get comfortable with a workflow to achieve the best result possible. Take it a step at a time, breakdown hair and over each project try to improve one aspect of it, rather than all at once. A comprehensive reference board is needed to really understand hair flow, don’t be afraid to draw over images to fully understand the directionality, parting and overlaps that occur. Does the hair line match your references? Is there enough asymmetry for a natural look? Be sure to look out for ugly intersections also, as depending on the engine these can really ruin a great hairstyle. Keep pushing yourself and expanding your expectations and you will be creating great hair in no time!
For a more detailed look at our process be sure to check out our “Breakdown : Making the Hair on the Division” blog post.