Sculpt & model a video game character in Maya & ZBrush
Hi everyone! My name is Anthony Lever, and in this breakdown I’m going to give a brief overview of all the steps involved in creating my latest fan-art project, Max. In the interest of not making this too long, many aspects of what I did will be glossed over, but I tried to include all the interesting bits, enjoy!
My goal with Max was to bring together everything I’d been studying about anatomy, cloth, and hair to create a full character from scratch. So I did a lot of research on 3D character creation; reading articles, and watching YouTube videos about this process so I could get a better idea of all the steps involved. The next step is to collect reference! Fortunately for me, there is a big community of Life is Strange fans and cosplayers, which provided me with perfect references for this project.
Character reference board
When I work on personal projects I like to start from scratch; it takes a bit longer, but I think it’s worth it for the learning experience. So I start with a dynamesh sphere and mostly use a combination of clay buildup and the move brush to find the proportions and primary shapes. When working on anatomy I’m constantly looking at reference material, I always have the book Anatomy for Sculptors open in front of me, and an ecorche to refer to. I find the combination of these two works really well for me.
I decimated the model I created in ZBrush and brought it over to Maya for retopology. To start things off I adjusted the scale to match real world proportions as this will be important for other tasks down the pipeline. All the topology was created manually by making my decimated mesh a live surface and drawing the new topology with the quad draw tool. I also created the UVs at this stage, splitting the body up into 4 UDIMs for the head, torso, arms, and legs.
Anatomy refinement and detailing
After projecting my new mesh on to my old one and cleaning up any errors, I refined my work from earlier, focusing on my secondary and tertiary shapes. After I was happy with my anatomy I moved on to detailing. I exported my low-res mesh over to Mari to project texturingxyz height maps onto the face. I then exported those maps back over to ZBrush where I could import them onto different layers and adjust their values to find something I like. I also used surface mimic maps for the hands and feet, projecting them using spotlight in ZBrush.
After sculpting all areas of unique details like the face and hands, I move on to Substance Painter to begin texturing. My technique is based on Magdalena Dadela’s 2017 GDC presentation; utilizing many fill layers, painting them in with masks, and then turning down the opacity for lots of subtle variation. I also used a lot of the micro skins from Substance Source to cover the skin with realistic surface details. Although texturing the torso and legs isn’t necessary for the final version of Max, I decided that I was going to publish another version of Max that would showcase anatomy.
I used Maya and Arnold for rendering. I only ended up using four of the maps that got exported from Substance as well as the displacement maps from ZBrush. Since Max uses a real world scale, I could set my subsurface radius to the “skin 1” preset, then the set subsurface scale somewhere between 0.015 and 0.02, which makes the skin interact with light in a realistic way. Arnold also has a feature called Autobump to utilize all the detail in the displacement maps without the need for excessive subdivision. It doesn’t work on subsurface materials by default, so it’s important to enable Autobump in SSS in the render settings.
Creating the head hair
I started by creating the hair in ZBrush with fibermesh (as seen above), usually I would have created my hair guides in Maya, but I wanted to try this workflow after seeing Damien Canderle’s presentation at the Blur Studio ZBrush Summit. This method produces a lot of guides, so there was some cleanup involved once they were brought over to Maya. Making the hair turned out to be quite challenging, going through many iterations. I was tweaking and changing things all the way up to the final renders.
For rigging, I like to use the Advanced Skeleton plug-in. It offers a very quick way of making a usable character rig with minimal effort. I didn’t spend a lot of time perfecting the rig here as I only needed it to be good enough to pose. Any errors that occurred in posing were just fixed with Blendshapes and the Maya sculpting tools. The hair was created on separate scalp meshes, so they were attached to the rig by using a wrap deformer on the scalp and main geometry.
Creating the clothes
I would have made the clothes before texturing, but since I split the project into two, I made the clothes after publishing the anatomy showcase. I started the clothes in Marvelous Designer, creating all my garments in the same project so they would interact in a realistic way. Once I was happy with the results, I brought the clothes over to Maya for retopo, using the Quad Draw tool on the flat versions of the Marvelous clothes. I then used the Transfer Attributes tool to make it fit the shape of the simulated version. After that I added thickness in ZBrush and added more details.
Texturing the clothes
Substance Painter was used again for the texturing of the clothes. I started off with each item of clothing by finding appropriate materials to use on Substance Source. Once I had my base materials, I layered in other procedural patterns and breakups to make it feel more natural and less like a tiled material. With the clothes being in pristine condition, it was quite tricky to add details without making the fabrics feel worn or dirty. I tried to work as procedurally and non destructively as I could, as I knew that there would be a lot of back and forth between Substance and Maya, making adjustments and then checking to see how they look in the final render.
Simulating the clothes
I made short 60 frame animations, transitioning from the neutral pose to the final pose. I then exported my animated character mesh over to Marvelous Designer as an Alembic cache, enabling me to simulate my clothes to fit my final poses very quickly. I then exported the clothes in their posed state back over to Maya and reshaped my render-mesh to fit the posed mesh using Wrap deformers and blendshapes.
I used a large key light for soft shadows, placing it high and off to one side to get a subtle rembrandt triangle on the right side of her face, boosting the exposure so it just starts to over-expose on some more reflective areas. I set it to a cool temperature because I felt it better matched the mood of her expression. The rim light was placed high so it would give a nice outline to her hair and shoulders, boosting the exposure really high to have that outline really contrast with the dark background, the temperature was set to a very warm color to offer contrast to the key light. The other two lights were to fill out unnaturally dark shadows and give more detail to any reflections.
Try to work non-destructively
It’s hard to know what you’ll come back to later and need to change, so try to work non-destructively as often as you can. I little bit of extra work now may save you from a lot of work later.
Texture with prime numbers
When layering tiling textures together try to use prime numbers for their tile value. This will help to hide tiling repetition as prime numbers will never fit perfectly together and make every part of the final texture unique.
Even if you think things are going well and you don’t need any feedback, it’s always beneficial to get another opinion. When you stare at the same project for a long time you get used to how it looks, and can stop seeing its flaws.