Daniel Alandete Piñero told us about how to create a real-time bun hairstyle using GS CurveTools, showed his work on layers, and explained how to make hair realistic.
Hi everyone! My name is Daniel Alandete and I am a Character Artist from Valencia, Spain. Probably everyone has a super interesting history about how they found their love for 3D, and I also have mine. I’ve always been interested in graphic design and 3D space, so back when I was watching TV during the weekends, I was able to see those sliders moving around the screen, and that made my curiosity grow. Then, I started to make YouTube backgrounds for multiple content creators when I was 14 with different 3D programs, placing some lights in space and getting cool renders for making the final composition in Photoshop.
Some years later, in the university, I had the chance to meet some people who today I can consider my friends and who introduced me to 3D character art, letting me know what skills I needed to have and which programs should I use while making my characters. Making me understand the knowledge that was required to get into the industry, for example, anatomy.
Now, after pushing my portfolio a lot, I can say that I worked on many cool AAA video games such as Horizon Forbidden West, WWE 2K22, Remnant II, and some others.
But, don’t get me wrong, this is like a marathon, keep working on your skills and keep getting better, we never stop learning.
Creating realistic hair kind of found me. While making the OUTLAW character for my portfolio, hair was a real challenge for me, so I redid it a lot of times to learn and get a good result, but it was something that didn’t matter to me, I could repeat the same process over and over again. So that is how I discovered that making hair for video games was something I liked completely departing from the usual, where character artists don’t like grooming or placing hair cards at all, just a few.
Of course, I used different techniques and plugins because I was looking for realism at first. I used FiberShop and Ornatrix in 3Ds Max, but the one I liked the most was the combination of XGen Grooming and GS Curve Tools, it's an incredible and useful plugin. I try to vary between Interactive and Grooming with guides and modifiers while building up the hair cards because I like to experiment with every single option, knowing the resources that are in each one.
The Real-Time Bun Hair Project
After two years of making a bunch of hairstyles, I felt that my portfolio didn’t reflect me as an artist, and I needed to see myself once I looked at my work, so I decided to put all the knowledge I gathered during these past years to one challenging and cool project.
My first step was going to Pinterest and looking for some wedding bun hairstyles, where the color, light, and flow of the hair are pretty unique. Looking at how the hair interacts with itself, with the gravity, creating some nice curves was really attractive to me, and I wanted to recreate all of this in 3D.
I haven’t focused just on one hairstyle, I gathered a bunch of different images about the same main idea, and I let my mind pick a bit of each one. This is not just this, it is not to let your mind flow and you’ll create the masterpiece of an era, you need to have the fundamentals of what you are aiming for, building each thing with common sense and, above all, be critical with your work. Do not rush things, this is something I learned over these years, this takes time.
Probably one of the most important steps of the pipeline, we need to look for real references, including which material we are working on – in this case, it’s just hair – and find close-up images to match our model.
All references are valid, each angle counts and there is no specific website where we can find them, going to Pinterest and Google Images are the first portals that come to our minds, but watching some videos, even a movie or a TV show, can help us a lot.
To block or not to block
You know what works best for you. Blocking the hair with a rough sculpt in ZBrush is something that I’ve been used to for these past years, but now I don't feel it anymore.
If you are starting with hair for video games, I recommend you make it so it will always be easier to see how the volumes work, how far the roots from the scalp are, and how the transitions are placed. We tend to make the front view the coolest one, with all the detail we are afraid of out of the view, but blocking helps you to see how the hair grows and in which direction it moves. This forces you to have a general view and to make the entire hair with sense.
You will find too many tools and too many options to make your hair textures. Again, it is your decision, there are no magical tricks or the perfect tool, and every single one has its pros and cons. What's essential is to understand what is being done.
I use XGen because I think there is so much room to grow, and it is so powerful; also, I tried each one of the other possibilities and got the same result.
Now inside Maya, we can set up our scene, create an XGen collection, and go into descriptions adding them to our planes. It is so important that the planes we create in our scene have some curvature to distribute the roots of the hair a bit more when we place them into the scalp.
I create one plane by strand. I think about how many chunks I will need for my hair and I usually do this breakdown: the first will be so dense to cover the scalp; then I will have 2-3 dense cards that give me the flow of the hair, they are interchangeable between them; around 4 cards more with less density to place above the first layer where we got the general idea of the hairstyle and that will give some silhouette with lonely hairs; and, finally, 2-3.more that are usually a single strand and some chunks with no density to place the flyaways.
Hair textures generated
Setting up the scene
I create as many cards as strands we have groomed before, so in this case, I’ll create 12 new cards using GS Curve Tools and I will place them next to the face so I can take a look anytime while placing them.
Once I have them created, I click on Select Geo in the GS Curve Tools window and I apply a lambert material to set up the hair texture maps.
- Create the New Card
- Select on Select Geo and then apply a new material
- Click on Hypershade
- Set up the textures in here.
Setting up the scene and material
Remember that we need to go to Viewport, click on the Square next to Viewport 2.0 and it is mandatory to set the transparency on Depth Peeling. With this option enabled, we will make sure that what we see in Maya corresponds to the actual depth.
How to set Depth Peeling
I like to place the cards using a Description Map texture, which means that each chunk has a different solid color. This allows us to see clearly the clipping and distinguish the layers.
I start placing the densest card on the scalp to cover the mesh, so there are no see-through areas when we rotate the model. This can also be done with a hair cap texture, but I prefer to place them so it serves as a warm-up for me.
Next, I continue with probably the most important layer of the hair. The second one should give information on the flow of the hair and what we are meant to build. In this layer I generally use a dense hair card combined with some hair cards with more negative space on them so once I export the result from Maya to our render engine – in my case, Marmoset Toolbag as the main one – I start looking at both the direction of the strands and some accurate and appealing silhouette.
We need to keep in mind some key ideas. Our eye reacts when we see things that are not realistic, so we should be critical of our work. Gravity is so important in the hair because it is the main thing that makes it look like that, being thin on the top and so long on the back, and we have invented through the past years some hair products and made some creative buns and ponytails to avoid the falling of the hair.
Therefore, we see the hair looking as it should or not, so going back and forth when exporting our model to the engine while building this second layer is so important.
If it looks good, success is guaranteed.
Layers 1 and 2 in Marmoset Toolbag
Now I start enjoying it, having the references on my second monitor and getting some different ideas from them, where the silhouette gets the importance it deserves and the less dense hair cards with more negative space take place on it.
Here we just have to follow what we created on the layers before, just doing that we will start to see some interesting forms and we can interact with them.
Roots are very important in hairstyles so what I usually do is to place the first hair cards – the denser ones – a little further away than from where we see it, so then when we place the next layers on top of it we create a really good transition.
Then the workflow is really simple: we just need to duplicate the card in the previous layer, change the hair texture, and place it above the previous one. This will create the transition and the realism we were looking for.
As for the rendering, I try to keep myself simple. I set up really basic lighting following the standard three-point lighting method: a key light which will be the main one, a fill light, and a backlight to highlight some missing parts.
Then in Marmoset Toolbag I usually use the Hejl tone for the camera and tweak some of the properties like this:
I keep my shaders simple so every time I build them I can comprehend what I am doing. I do research on what people have been doing but I need to understand it, so I try to put each value consciously.
For hair, the albedo map is more important than we think because it can give a good look at transitions from root to tip and also create fades and color variety within the strands. This must be highlighted with values as specular and gloss maps that are guided by the flow or direction map to tell the light how it should bounce.
Marmoset Toolbag shader properties
As you can see, you can name your texture maps as you want, there are so many words to refer to the same thing.
The same applies in Unreal Engine where the lighting setup and shaders mainly follow the same result. In this case, I have played a bit more with the albedo map because I felt I had more control over it in this engine.
And you’ll be wondering: why did you render on both? Simply because I wanted to see my asset in the main real-time rendering engines. At first, it can be a bit scary to familiarize yourself with a new interface, but as I said before, you have the same tools in another place and probably with another name, the only thing we need is to find them.
If I can tell you one thing, now that nobody listens to us, is to not be afraid of hair. Trust me, I am constantly hearing from a lot of people that hair is the worst thing to do when making a character, that it will decrease the quality of their main asset, and many more crazy things. If you hear this, you are already conditioned not to like it. That is not true.
Of course, you may not like it, but we need to lose that fear when we face it. It is the same when we do retopology, at first it looks kinda repetitive but once we start feeling it and we play some music in the background, it’s even fun and relaxing.
I know it is repetitive and at first, it can be hard, boring, and even really frustrating, but there are now a bunch of tools like GS Curve Tools, grooming software like FiberShop, Coiffure, and Ornatrix, they make it easier and easier.
I can recommend YouTube videos from George Sladkovsky, the creator of GS Curve Tools, if you want to use the tool. Also, there is a course from Georgian Avasilcutei on Gumroad about hair creation for video games – he works in 3ds Max, but it is well explained. And the best resource is probably to repeat and repeat the same process over again.
I can say no more than please be patient, this takes time, but be curious about everything. Curiosity makes us better in any aspect whatsoever.
Be curious and explore everything.