Photorealistic 3d Character Design Process - Mursi Tribe Portrait
I'm Diego Rodriguez, a 3D artist living in Spain. As a kid, I was blown away by the cinematics created for my favorite video games, so in my 20s I decided to pursue a career in the VFX industry. My passion is 3D Modeling, but I enjoy the most creating 3D characters . At this moment I'm working on my portfolio, and in this article, I'm gonna talk about the process of creating the Mursi Portrait.
Why I created a Mursi?
I started this project for a CGMA course that I took part in a few months ago. The moment I saw a Mursi warrior with boar tusks hanging off his head and an AK-47 in his hands I fell in love with their look.
My main goal was to create a realistic character as well as practicing organic and hard surface modeling, texturing, and shading. I had a limited time to create the character (10 weeks) so I decided to focus on the upper part of the body and I created a portrait.
Searching for References
References are crucial when it comes to creating a model, so I always take my time finding the right ones. I use Google and Flickr, but there are some useful webs I always like to check. When I need anatomy references I use 3D.sk, Bodies in Motion, and Anatomy 4 Sculptors. Robophot and Humanae are useful for texturing and sculpting skin. Finally, for assets and other content, I always take a look at Photobash.
When searching references for heads, you should avoid images with makeup as it can be confusing while sculpting. It's also useful to find shots from different angles and with diverse lighting setups as it will be easier to find the right proportions.
On assets, we have to be careful with the different variants that could exist from the same object. For example, I found a wide range of AK-47 versions (AKM, Type 56, AK-74...) and it was challenging not to mix up references.
Keep your eyes on the focal length! It affects the perspective and it can lead to mistakes while modeling. If we are lucky enough we can find this information in the metadata.
Blocking out the 3d character
Creating a blockout can be beneficial since you will see the big picture of your character. In this case, I decided to do a fast blockout to see how I was going to position the assets hanging off the head.
At this stage, I also like to analyze my references doing paintovers to anticipate the struggles I'll face while modeling.
Breaking down the skin
For sculpting my characters I tend to use a basemesh with realistic measurements, so it's easier to keep the proportions. I usually start using the Move Brush to adjust the primary forms, then I use Claybuildup and DamStandard to sculpt the Secondary and Tertiary shapes.
I always use a lower intensity brush with a big size, because this helps to sculpt muscles and fat. I like to take my time to slowly build up the shapes, using the alternate smooth brush to soften the strokes.
In this project, I had to be careful with the face because younger people tend to have subtle shapes and this can be challenging. I like to experiment with a skin shader in Arnold as it usually softens the sculpt, and at this stage is easy to correct.
I used texturingXYZ maps to create the skin, they provide an astonishing amount of detail that we can project on our character. In this case, I used Mudbox but it’s a similar process in other packages. I always divide the map into 3 portions (forehead, cheeks, and nose) and I try to align them with the face I’m texturing. It’s also important to stay consistent with the pore size, so try to use the same scale while projecting your maps.
When I’m satisfied with the projection, I export the textures and I use the “Sculpt Using Map” setting in Mudbox to check the displacement. This way I can individually control the opacity of the secondary and tertiary maps. If I need to do some corrections I can keep sculpting over the pore detail.
To create the diffuse, I used red, yellow, and light blue colors to create the color zones of the face. Red for the cheeks and nose, Yellow for the forehead, and light blue for the chin. I chose a color tone from Humanae and I filled a layer with it to create the base of the skin.
Then it was a matter of creating color variation and adding small details like veins and moles. Finally, I imported the textures I projected for the pore detail into different layers and I used Vivid Light and a small opacity to darken the pores. This way the diffuse will match the displacement and it will give us a cleaner result.
I also needed to create war paint. We can either paint it into the skin diffuse map or, we can create a different shader for the paint and blend it with the skin using a mix shader in Arnold. I decided to do the later, so I used Substance Painter to create a mask.
This mask can be used in Arnold to separate both shaders, we just need to connect it to the mix shader.
What about the assets?
Creating assets can be time consuming, so it’s always recommended to create a 3D library with models you did for other projects. Sometimes we can reuse these models, and it’ll save us hours of work. We should also explore the different tools we have in Maya and Zbrush, there are different ways of creating the same model, but sometimes we can save us some trouble using the right tool.
Quad Draw is a great tool not only for retopologizing models but to generate meshes over a surface. I used it to create the headband.
NURBS and Curves
These tools are sometimes underrated, they can save us time if we use them for the right asset. In this case, I've used NURBS to create the tusks and curves for the ropes. Thanks to the construction history we can edit the mesh in a nondestructive way, and we can quickly generate different variants of the same model.
This is the most important tool when we want to create a production ready asset. It’s great for models like the AK were we need more precision and a good topology. It’s always helpful to import our main references into Maya to help us with the proportions.
I always start blocking out the model with basic geometry like planes or primitives.
Then I can focus on individual parts using Multicut to add edges and tools like extrude, extract, merge, etc to add details. It’s very important to add supporting edges to the plane changes, we can do this manually or using the bevel tool. I find it really useful to do this using the bevel tool, turning off chamfer and Offset as Fraction.
This tool is excellent to repeat a model through a curve. In this case, I used it to create the necklace. It has a lot of potential thanks to all the settings we can tweak.
Zbrush can be surprisingly useful for hard surface models. We can save some time using zmodeler for simple assets instead of using polygonal modeling in Maya. We can also generate assets over a basemesh using Mask, Extract and Zremesher but unlike Quad Draw, we will need to spend some time retopologizing our model.
We can use IMM brushes in combination with Maya Curves or extracted pieces to create complex models like ropes or detailed belts, to name a few.
As you can see Zbrush is a great alternative to Maya, the main difference is that Maya can be more precise in terms of topology and world space, and Zbrush is more intuitive and less time consuming for certain tasks. It’s important to use both packages to our own advantage.
Texturing the assets in Substance Painter
Substance Painter is exceptional to create textures for this kind of assets. It's very intuitive for making rust, grim, damage, or scratches with smart masks. This sort of details provide more realism to your models, and this is the reason why it's important to think about the way the objects were built, how moving parts work, how and where they're used, and the abuse they went through over the years.
We can create all sorts of maps in Substance, in this project I used the metal/roughness workflow. It’s very easy to understand and you will get a very close result when you use your maps in Arnold. I recommend taking a look at this guide made by Allegorithmic to get more information about the different workflows you can use.
Sometimes I don’t need to sculpt all the details in Zbrush. Substance Painter has a height map we can use to create small details like cloth patterns, leather texture, metal grain, scratches, etc. If we don’t need the amount of detail we can get from a displacement map, we can save render time by using our Height map as a Bump map in Arnold.
Rendering the 3d Character
Quite often we don't spend enough time playing with lights, but it's one of the most important aspects of our render. There’s nothing worse than having a great model ruined by a poor lighting setup.
I recommend searching for information about lighting for photography, there's a lot of content, and it will be invaluable for our portfolio! For example, one of the greatest techniques for portrait photography is the Rembrandt lighting. It produces a natural and interesting look, and it will enhance the shapes of our sculpt.
It's essential to create different lighting setups to test the shaders of our model and to try different compositions. HDRI maps are one of the most useful tools at this stage, there's a big collection of free HDRI maps at HDRI Haven. I can't recommend it highly enough!
For the final render, I used a warmer lighting setup trying to get the African vibes. In terms of camera attributes, the ideal focal length for portraits is 100mm. However, I got the best results with a 120mm lens, so it’s always important to test and play with the settings. Don’t take anything for granted!
I also enabled Depth of Field in the Arnold settings of my camera and I used a wide aperture to blur the background and the borders of the image.
I always export a 32bit EXR file for my final render, it has a lot of information and we can edit the image without losing quality. We can use Camera RAW, Lightroom, or Nuke to color grade the render giving a more natural look.
It ain't over till it's over
I had a blast creating this character. As always, there are some things I’d like to improve but I’m satisfied with the results and I learned a lot from it. I also wanted to give credit to Pete Zoppi, he’s a great teacher and his feedback was very helpful. If you have any question don’t hesitate to contact me, I’ll be glad to help!