Our thanks to Aldo Vicente for this tutorial. For more of his excellent work, head to aldovicentecg.com.
This tutorial first appeared in issue 81 of 3D Artist.
In this tutorial we’ll be taking an overarching look at some 3D character workflows.
We will go through the process of constructing characters in Maya and ZBrush, from basic modelling and sculpting to building textures and materials, posing and rendering. We’ll be creating a steampunk scene with two characters that are very different from a technical standpoint.
Each character will present us with a distinct set of challenges, which enables us to explore a variety of tools, techniques and workflows.
While building our machinist, we’ll get to practice an organic character workflow. We’ll go over techniques for modelling and sculpting anatomy, clothing and accessories, as well as tools for quickly unwrapping clothes and baking perfect detail maps.
Our guardian character will have us work through balancing the character’s motion functionality and aesthetic appeal. We will also explore techniques for quickly texturing metals and building convincing materials.
Finally we’ll build a quick environment and set up our scene for rendering.
Step 01 – Guardian block-in
Let’s start with a quick, rough pass. This block-in gives us an early look at our character’s overall shapes and it’s important since our character’s proportion, overall feel and personality will get lost between the concept art and the 3D model. By blocking in the full character as quickly as possible, with minimal regard for edge flow, neatness and so on, we avoid wasting time on work that will most likely need to be redone. We can worry about edging and cleaning once our block-in feels like our concept.
Step 02 – Build our parts library
Now we can start looking at our overall forms and figuring out our individual parts based on the character’s intended functions. The best part about working on mechanical characters is that, just like in real-life machines, a lot of parts can be reused. We only need to model out a few types of protective plates and one of each part so that the arm can rotate, twist, bend and so on. This means that we are saving a lot of time in modelling and UV layout while creating a cohesive and believable design.
Step 03 – Lock down the look
With our small library of parts and our block-in as a reference, we can start finalising our model. We can duplicate, shift and modify existing parts to fill in the rest of our character. We have to keep function in mind to a certain extent (knees have to bend like knees, for example), but there’s no need to overthink all of the internal workings of our machine. Form and silhouette should take some priority. Hard surface parts can create very rigid-looking forms, so it’s important to emphasise the S-curves in our design to give our character a lively and natural feel.
Step 04 – Clean our mesh
Neat, well-distributed edges are helpful for UV layout and surfacing. The Sculpt Geometry tool on Relax mode, or the Relax Vertex tool are very useful here. Let’s delete the back faces on our guardian’s outer plates. This will reduce poly count, save UV space and make unwrapping much easier. Double extrude border edges has tons of benefits; we get a consistent edge loop around our mesh, we create support edges for smoothing and UV-relaxing algorithms, and we’re adding subdivision density around our borders to provide more fringe detail when sculpting.
Step 05 – Build the anatomy
In this step we want to create our machinist’s anatomy with concept-accurate proportions and clean edge flow. Generally we want to keep this mesh relatively low poly, as we will be using it to extrude our clothing and accessories later on. We can start with an available generic anatomy model, or we can build a simple base mesh in Maya
and take it into ZBrush
. Here we’ll manipulate the physique to fit our character. Our machinist is a cross between a blacksmith and an engineer, so we need his silhouette to convey that he frequently works with heavy metals and equipment.
Step 06 – Model clothing and accessories
Let’s bring our machinist mesh back into Maya, and make sure our character is at real-world scale. Split up our model into the basic areas of our head, shirt, gloves, pants and boots. We can repeat the process to create geometry for the vest, belt and harness. Instantly we have fitting base geometry for our character’s costume. We only need to refine our clothes meshes to a certain point, as most of the clothing detail will be done in ZBrush. We can use basic box modelling to shape the belt straps and harness.
Step 07 – Prepare our costume for sculpting
First, we should be sure again that we have neat, even edge distribution. The majority of this should have already been in place from our machinist anatomy model, but we can use the Quad Draw tool in the Modeling Toolkit to quickly and easily make improvements to edge flow wherever necessary. Again we should double extrude our border edges, for the reasons listed in Step 4. We could do UV layouts at this point, but it may be preferable to do it after sculpting as some of the geo may change considerably, and our UVs may need to be redone.
Step 08 – Sculpt the clothes
Here we’ll be sculpting in the large and mid-level detail of our clothing. This includes the overall structure, drape of our clothes and the wrinkles. We won’t be sculpting in the fine detail such as the threading and stitching of the fabric, as we’ll be adding those details via our textures later. It’s good to have reference of the types of fabric each piece is made of. Keep in mind that these are just panels of fabric falling over simple anatomical shapes. Also consider that these folds need to stay generic enough to work in most poses.
Step 09 – Lay out the UVs
To unwrap our clothes, we’ll use RoadKill, a free plugin for Maya. We can select our vest mesh, and run the plugin. In RoadKill we double-click to select the shoulder seam edges and hit C to cut the UVs. Instantly, we will see our vest flattened neatly in our UV viewer. We can quickly repeat this to separate the lapels and we’re done. If we want to smooth our UVs out further, headus is another free option with an excellent UV-relaxing algorithm and a very simple, but fantastic GUI for flagging, bunching and stretching in your UVs.
Step 10 – Unwrap the Guardian
Our guardian has a lot of internal and external parts, but we can save a lot of time and UV space by using 3D procedural textures on the smaller, less visible internal parts. We’ll only unwrap the outer metal plating of our guardian. Let’s select our plated parts, export them to ZBrush and run the UV Master plugin. Because of the cleanup and double extrudes back in Step 4, our plates are essentially curved planes with structured border edges. This makes them ideal for the UV Master algorithm. Almost instantly, we get a clean, evenly scaled UV layout for all our plates.
Step 11 – Paint metal grunge
It’s hard to distinguish which UV islands correspond to what plates by simply looking at the flattened mesh. This makes it difficult to paint our textures in 2D. Instead, let’s turn on ZBrush Polypaint and subdivide our mesh into the millions. We can start this off by coating our mesh in 50 per cent grey. Let’s set our brush to RGB Color Spray with a grungy alpha and zero z-intensity. We’ll paint in the edge grunge, rusting and scratches. At this point we are only concerned with colouring this detail onto our mesh. Grunge and rust should be darker values while scratches should be a white colour.
Step 12 – Create the metal textures
Now we should export our Polypaint data as a texture map and bring it into Photoshop as an overlay layer with our base metal colour underneath. The grey in our grunge map will disappear, leaving us some dark grunge and light scratches that will go over our base colour. We’ll also add a subtle metal photo texture over our base colour and colourise our grunge to get a rusty red hue. This is our Diffuse map. We’ll fashion a Bump map with desaturation and then invert our scratches to black. We’ll raise our base colour to near white and then adjust the noise layer to a medium grey.
Step 13 – Create metal materials
Metal materials are reflection-based so we’ll use image-based lighting to give our metals something to reflect. Using mia_material_x_passes, we’ll plug in our Diffuse and Bump maps. Metals have low diffuse weights. Our metal is relatively rough – it has a smooth, metallic microsurface, but its overall surface is too rough to cleanly reflect any image. We will get a certain level of gloss but our specular reflectivity should stay low. To control this further, we can fashion a Specular map from our Bump map by adjusting the levels to fit within our desired reflection values.
Step 14 – Bake good maps
We’ll bake our maps using XNormal. With our vest as an example, we’ll export the high and lower-res meshes. To create a cage mesh in Maya, we’ll duplicate the lower-res mesh, and with Translate set to Normal we’ll move all the verts out along N. The cage mesh should be just big enough to fully envelope both high and low-res meshes. Now we’ll take our meshes into XNormal. Right-click on the low-res mesh and click ‘Browse external cage file’ to assign our cage mesh. Set to Average Normals and Bake! This will produce full, clean, accurate and fast maps!
Step 15 – Texture the machinist
Normal and AO maps are a great starting point for Diffuse, Bump and Specular textures. In Photoshop, paint base colours for each island in our UV map. Multiply the AO map over the base and Overlay the green channel of our Normal map to create top-down shading. Now we’ll tile and overlay images of fine fabric detail. We can use those same overlays later on top of a grey background to create our fabric bump texture. Let’s paint in some subtle layers of dirt, dust and grunge to finish our diffuse texture.
Step 16 – Texture the equipment
For our equipment, textures, we’ll use a technique similar to Step 11. With the help of ZBrush Polypaint, we’ll colour in the rusting and scratching around our equipment’s nooks and edges. We can bring these maps into Photoshop and colourise or do a photo texture to create a grunge effect. Again we’ll repurpose the same maps to create our bumps, indenting scratches, dinks, rust and noise. We can add neat decorative pieces by adding black-and-white patterns into a Bump map, and overlay these patterns into our Diffuse map to make them pop even more.
Step 17 – Clothes shaders
Let’s import our machinist textures and plug them into a new mia_material_x_pass. Remember that the Normal map gives us the fold and wrinkle detail, while our fabric bump maps gives us the fine stitching and cloth detail. Both will be plugged into the shader. The cloth for our vest, pants and shirt is generally pretty diffuse, with very low gloss and specular reflectivity. We should also adjust the BRDF as looking at cloth at direct angles is especially dull. We can add a tiny bit of translucency, or we can fake it by plugging in a very weak mia_self_illumination node.
Step 18 – Build the remaining materials
We’ll need to build several different material types for our equipment. With our maps ready, gather reference and create some fresh MIA materials. First, name all our materials, turn on Use Fresnel, and input the real-world Fresnel values for each one. Now we can start balancing the Specularity and Diffuse, knowing that our reflective distribution is accurate. Since there’s no refraction, we can observe our reference and estimate the reflective strength, and the shade strength from zero to one. With MIA’s energy conservation math in mind, we can solve for really accurate reflective and diffuse weight values.
Step 19 – Make a background environment
Let’s create a simple ground or wall backdrop. We’ll give the wall extra edges to indicate where the brick meets the concrete segment. We can use planar mapping to quickly get UVs. In Photoshop
, we’ll use photo textures of bricks and concrete to create a quick Diffuse map. We’ll balance the levels and colours to make the different images fit each other. Now we can fashion a Bump map by desaturating and pushing recesses into black, while pulling convex surface space up to white. To add depth to our environment in Maya, we can apply a bend deformer and create a rounded wall.
Step 20 – Render our scene
Let’s set up render passes for better control over our final image. In Render Settings>Passes, we’ll create and associate beauty, AO, diffuse, Indirect, reflection, refraction, shadow and specular passes to all three. We can render and save these passes out individually for compositing in Photoshop. We should use ‘Linear Dodge (Add)’ blending mode to put our passes together and re-create our beauty pass. Finally, let’s create a custom matte pass, assigning different coloured surface shaders to each character and the environment. Now we have full control for tweaking each asset and element to make our final image.