My initial goal with this project was to learn how to create hair using Xgen in Maya, and then render it in a real-time engine like Unreal 5. I did not need a complete head for that, but after some thinking, I chose to also use the project as practice for my modeling and anatomy skills.
As with every work, the first step was to find good references for both the head and the hair. I needed at least a frontal, side, and three-quarter photos. When looking for references, it is important to keep them as coherent as possible. That means trying to find pictures in which the person has the same age, and preferably with similar lighting. With stock photos that is not an issue, so I decided to use a 3d.sk reference I had, because the quality of their pictures is always very good.
At first, I was not planning to create the hat. That came later in the project, so I had to find references for it too.
The creation of the Head
For personal projects like this, I like to start from a sphere to practice my sculpting skills. I only use base meshes when I am doing production work. At this stage, I am mostly worried about proportions, placements, and the overall feel of the face, so I use Dynamesh a lot. From time to time, I use the See-through tool in Zbrush with the reference in the background to check if I am going in the right direction.
For better accuracy, I like to take screenshots, send them to Photoshop, and make comparisons with the pictures. This way I can see what I need to change to maintain the likeness of the character. Sometimes it is a very tedious step of the work, but essential at this stage because the primary and secondary shapes define the rest of the work. No amount of detailing can save a bad sculpture.
Retopology and UV
Once the blocking is complete, I like to retopologize it and create the UVs to apply the fine details directly on the final mesh. Doing this saves time in the next steps. In the image below you can see I went a little too far before retopologizing it.
Detailing and pores
With the final mesh done, and all the shapes projected back on this new subtool, I can start creating the tertiary details: big wrinkles, skin folds, define muscles and bones, remove symmetry, and everything else the projects needs.
To create the pores, I can follow two different workflows:
The first one consists of sending an image of the UV wireframe (see the image below to learn how to do it in Maya) to Photoshop and use one of the amazing displacement textures by texturing.xyz. The idea is to convert the displacement map to a Smart Object, use Puppet Tool or Liquify to match it with the wireframe, and later use it as a displacement texture in Zbrush – (link)
The second one consists of projecting displacement alpha textures in various parts of the face. It is a long but simple job of placing them correctly and making adjustments when necessary.
For this project, I used the second method. The map I selected was “displacement-male-face-40s-fullface-04” by texturing.xyz, in case anyone wants to try it out. First, I create a layer to save the initial state of the sculpt, and I also save a Morph Target. Then, a couple of layers of noise make the whole surface less perfect – the effect can be stronger on males or older people, and weaker on females and younger ones.
After breaking up the smoothness, I start applying the alphas accordingly to the map, trying to follow it as best as possible, and making corrections with the Morph Brush whenever necessary.
Next, I usually create a layer with an overall skin texture, using a standard brush set to stroke and with a squiggly line alpha like in the image below (you can create one in Photoshop), to fill the missing spots.
At this point, it is normal to end up with an inflated head, so one way to fix it is to create a layer, go the lowest subdivision, and apply the morph brush everywhere.
Then, it is just a matter of meticulously create small wrinkles, folds, bumps, and everything else you can see in the references. For that I use mostly the Standard, Pinch, and DamStandard brushes.
A nice technique I sometimes use is to create a Cavity mask, blur it one time, and then apply the inflate brush to make the pores more visible.
With the pores complete, I export the lowest subdivision as head_low and the highest as head_high in two separate FBX files. I like to bake my maps in Marmoset Toolbag 4, but you can do it in a software of your preference. I use the Quick Load function to select both files, and the software does the hard work for me. I need the Normals, Curvature, Cavity, and Ambient Occlusion maps (I flipped the Y Axis of the Normal map to use it in Unreal later). Al the textures are baked in 4k.
After this step, it is painting time. To prepare the mesh for texturing, you need to pay close attention to their materials – each material will be a texture set in Substance Painter. For this character, I created a new project in Substance Painter, loaded the low poly mesh, and started working the colors. I did not use any kind of special workflow, I just tried to follow great artists like Magadalena Dadela or Saurabh Jehtani. They have amazing tutorials you can follow in the links below.
Magdalena Dadela (tutorial)
Saurabh Jethani (tutorial)
Some tips I learned along the way are: use an Environment Map that does not add any color to you character, like the Soft_1Front_2Backs; avoid using color layers – give preference to fill layers and masks; check the texture in the game engine as soon as you can; create some artificial shading for the nose and ear canals, and the eyebrows.
For Unreal we need some specific textures for the skin:
1 – Color (RGBA) Texture – with only color information, no light or shadow
2 – Channel Pack Texture – multi gray texture pack (Ambient Occlusion – Red Channel; Roughness – Green Channel; Metallic – Blue Channel; Mask – Alpha Channel)
3 – Normal Texture – with normal information
4 – Detail Normal Mask – A mask that selects where to apply the detail normal texture
5 – Detail Normal Texture – a tileable texture with a patch of skin – used to increase the resolution detail of the face without increasing the resolution of the main texture
6 – Scattering or SSS mask (optional) – texture used to select the intensity of the scattering for each part of the head – if you prefer, you can use a linear value for everything
7 – Specular or Cavity Mask – used to remove or decrease the specularity of the pores
For the eyes, I used the Digital Human meshes provided by Epic. The eye material is very complex, and they recommend using their own mesh. If you want to do the same, you just need to download the Digital Human project for free, export the mesh to a 3D app like Maya or Blender, extract the eyes and all the other pieces, and adapt them to your own project. More information here: epic documentation.
This is the final mesh for the head and the eyes.
The hair was completely made in Maya using Xgen.
I used eleven descriptions – below are all the names of them, with their respective primitive settings and the modifiers I used. Except for the peach fuzz and the stubble, everything else was created using guides and random distribution.
As I said at the beginning of this article, during production I decided to create a hat and a shirt for the character. For the clothes I used Marvelous Designer, and this is the design of it.
Marvelous Designer is a great tool to develop your garments, but it tends to get very heavy when you are working with complex ones. It is also hard to create precise effects there, so try to use it just as a starting point for your character. As soon as you have a good base, export the mesh to Zbrush and finalize it there. While doing the retopology, one tip that will save you time, while at the same time will improve the quality of the texturing, is to create an edge for every seam, and use then as UV seams. This will allow the fabric texture to behave more realistically.
I created the hat in Blender using poly modeling techniques. The main idea for most of the objects was to create a main structure that could repeat itself seamlessly and apply it to a curve or to a lattice. For the main hat part below, I created the small structure to be repeated, then I applied an array modifier to it, followed by a Simple Deform – Bend modifier to make it circular, and finally applied another Simple Deform – Taper to turn it into a cone.
For the other parts I did something similar but using curves. I created the main structure, applied an Array Modifier with Fit type set to Fit Curve, then applied a Curve Modifier, and lastly a Subdivision Modifier for detailing.
With the objects ready, I simply did the same as with the head: I retopologized them, baked in marmoset, and textured them in Substance Painter. These are the final textures for the full character.
With everything ready, I had all I needed for the final render in Unreal. So, I created a new empty project (with ray-tracing enabled), and I imported the meshes and textures there. This is the setup for the scene I rendered:
1 x HDMI Background (this is a plugin with the same name that you need to activate – it is free and it comes with every Unreal installation) – it allows you to create a background that will light you scene and can be seen by the camera. If you only want the ambient light of the HDRI you need to create a Sky Light)
1 x Main Rectangular Light (all lights and meshes are set to movable)
Below are the settings for these lights:
1 x Back Rectangular Light
1 x Fill Rectangular Light
1 x Top Rectangular Light
1 x Rim Rectangular Light
1 x ExponentialHeightFog
Post Process Volume
Setup for the scene:
For the hair, eyes and skin, I used the same material provided by Epic, with very few tweaks here and there. For the hat I used this generic material than can be used for many purposes.
I created four material functions to keep the main material organized and to save time.
Then it was just a matter of fine-tuning the lights, finding good camera angles, and rendering some pictures and videos using the Movie Render Queue.
I hope this character breakdown was useful to you. Thank you GamesArtist.co.uk for the opportunity. Please check my other characters in my portfolio at https://www.artstation.com/carlos_soares.