Create a stylized Battle Dwarf with ZBrush


Hello, my name is Michael Robson and I'm a 3D character artist living in Curitiba, Brazil. In this breakdown, I'm going to take you through the process that I used to create Magni, which is a fantasy character from the Warcraft franchise.

The main goal of this project for me was to push beyond my skills as a character artist and try to achieve the best result that I could and also this was my very first project rendered with Arnold.

Choosing the concept and gathering references

Reference is your best friend! Always remember that. The way I organize this step is to break into parts or topics. For example, I create a mood board on Pureref (the software that I use to display my references) that consists of the quality that I want to achieve in my final piece, generally is characters from movies, games etc (this is not a direct reference for model or anything else, just for the quality that I want to achieve). Some references for materials when I start to model and texture my asset (skin, leather, metals, fur etc) anatomy for modeling and so on.

Blocking the character

Starting with a basic primitive in ZBrush, using dynamesh I start to sculpt the character as a whole to check proportions and silhouettes. At this point I'm not very concerned with any detail, so is very rough and simple. I usually jump to Maya to model props or something else that is easier to model poly by poly.

Modeling armor and cloth

When I'm satisfied with the overall look of the character block, I move to Maya to refine things a bit, remodel pieces and get more clean meshes.

To make those cross leather on the under armor, I used a very nice plugin for 3ds Max called "Weaver" by Ivan Max, this tool saved me a ton of time and is very easy to use, I basically modeled a clean quad mesh of the shape of the armor and used the plugin to create the crossed leather.)

For the scale mail on his arm, I created a tileable 3D pattern inside Maya, duplicated a couple of times and used some deformers such as lattice and bend to shape around his arm.


For the retopology, I export a decimated version of the base mesh sculpted in ZBrush (the head in this case) and with quad draw, I start to rebuild the geometry on top of the sculpt.

Usually, the areas such as the eyes, mouth, and nose have a bit more geometry; they mimic a bit the flow of the facial anatomy.

Quick tip here is to retopo only one side if you have a symmetrical mesh and then mirror to the other. For example, I always start to sculpt a face symmetrically and after I have a clean topology I send it back to ZBrush to break that symmetry and work more on the sculpt to achieve a nicer look. As always, I collected some references for the face to help me here.


After I finish all the retopology, it's time to unfold the UVs. My personal preference when it comes to this task is to use Maya – the UV toolkit handles the job very well and it is very easy to use.

For this character, I decided to split the face in multiple UVs so I can paint higher resolution maps and render closer shots and also organized my UVs based on materials (Metals, Leathers, Skin etc) this makes the texturing process easier and faster.


I bring into ZBrush a clean quad mesh and subdivide a couple of times to begin the details process. Using collected references I sculpt the details in various layers in ZBrush, I tend to do a general pass of clay brush with spray stroke to break the highlights of the metal and I keep adding layers for different types of damages and scratches.

I also used some very nice brushes from Michael "Orb" Vicente, some of them have nice effects to achieve a particular kind of detail.

When I'm happy with the result I export displacement maps from that piece to use later on the render.


For the Skin I used some maps from Texturing XYZ and projected on the geometry using Mari. After I cover the entire face, I do some more manual paint and projection until I'm happy with the look.

For the rest of the character, I used Substance Painter. I not that difficult to use and just like Mari you have a preview straight on the 3D model. Here in Substance, I start very simple laying out some basic seamless textures and from there I start to bring details, for example in the borders of the leather, add some dirt on the cavities of the metal etc.

Try to avoid only use smart masks and materials in Substance, use them but put some more manual work on top to break that procedural look. Once the textures are done, I export them all with the Arnold preset that is default from substance.

Rendering in Arnold

Here I used the standard material from Arnold (AI Standard Surface) and just plugged the textures in their respective slots, Substance basically name each texture for the slots in Arnold so is very straight forward. Sometimes I put an adjustment layer between the map and the material parameter to tweak the map slightly.

For the lights, I used some HDRIs from HDRI Haven, and some additional lights from Arnold.

Hair creation with Xgen

Setting your project inside of Maya

One of the biggest mistakes people used to do when start with XGen is to not set the project before starting the grooming. This is a very simple step and it is the first thing you have to.

I personally like to go into Project Window, this way I will have a very organized folder setup for my entire project.

If you have problems with the destination go to the Set Project window in file, and set the project destination to the root of the folders that were created.

Organizing your geometry

Before we start the hair creation, we need to organize our geometry to have a proper groom.

My personal approach is to work with detached geometry to grow the hair, so I simply select the faces of my model where I want the hair to grow from and detach it, rename it, and put it on a group where I can identify it as the XGen geos.

Another important step is to have proper UVs on the geometry that you have detached – this is crucial to paint control maps later. Make sure to organize your UVs in the first UV island, I'm not completely sure about that but I don’t think XGen recognizes UDIMs.

TIP: Do not delete any of your scalp geometry that you used as a base to grow hair from.

XGen setup

Select the detached geometry and go to Generate > Create Description, name your description and collection properly, make sure to check Randomly Across The Surface and placing and shaping guides, then hit Create.

XGen guides

In order to style the hair the way we want, we need to create some guides across the surface. These guides will tell the hair what direction he needs to follow. Make sure to give enough space between each guide that you place on the surface.

Another thing to keep in mind is to brush the guides in a way to make volume, when the hair is created it will interpolate between each guide.

TIP: Avoid making guides completely straight

Control Maps

In most of the cases we want the hair to grow in a specific area – to do that we use some control maps to help us. In this case I'll use a density map to exclude the borders of my scalp; this will make the transition of the hair look more natural. The areas in black specify where the hair will not grow and the areas in white where the hair will grow.

IMPORTANT STEP: When painting any map in XGen, make sure to assign the standard lambert1 material to each scalp geometry.

XGen Modifiers

After I'm satisfied with the guide work I made, I start to play with the modifiers. One of the most important modifiers you will have is the clump. I usually work with 2 or 3 levels of clump, the first one will be sort of like a broad effect clump and then I start to create other levels a bit tighter, with different clumping maps.

Another important modifier is the noise; this will give a more natural look to the hair. Just like the clump, I use the noise modifier in levels, from big noise levels to small ones.

TIP: XGen expressions are very powerful. I like to use the "percent" in the noise to achieve those flyaway effects.


For the braids I used an insert mesh brush from the BadKing website that already has a nice topology. I brought it into Maya and created Splines from the existing topology. After that I aligned the tips of the spline in a base geo and used a utility modifier from XGen called "Curves to Guides", this way the splines created from the braid geo becomes XGen Guides, them I repeat the steps the we talked up here, paint density maps and create modifiers.

TIP: Break your hair into different descriptions, it's easy to control. In this character I broke the hair in many, many parts; some of them could be simplified in a single description, the braid of each side for example.

Creating nice-looking digital hair takes time and is a back-and-forth process; this means sometimes you will have to re-work your guides, take a step back, and re-paint your maps, modifiers, and so on. It is a very complex process, that's why we have professionals dedicated only to grooming in the VFX industry.

If you want to dive more into grooming I highly recommend you check Jesus Fernandez’s content, he has some free videos on YouTube covering the very basics of XGen, and also a Patreon page with more advanced subjects.

Final Words

This character took a very long time to be done and a lot of effort, I would like to thank everyone who helped me in something, especially my friends Cesar Zambelli and José Pericles who followed closely with me each step and provided some nice feedback to improve the quality.

Fetching comments...

Post a comment