The full pipeline to produce a creature prototype and get it ready for animation!
Pablo Munoz Gomez, 3D concept and character artist, who runs the ZBrushGuides website and teaches online at 3DConceptArtist.com. In this article, Pablo will walk you through his process of designing and prototyping a creature for production. He will show you the process of adjusting a base mesh, sculpting details, texturing, and rendering.
The intro video:
To begin with, let me give you a brief introduction to the software we will be using for the different stages of the process and what part they play in the pipeline:
- Character Creator 3: It provides a versatile starting point with intuitive tools to adjust and deform a clean base mesh (with optimized topology and rig for animation). We’ll use this to set up the base for our creature and later on, to pose and render the final image.
- ZBrush: We’ll use ZBrush to adjust the volumes from the base mesh, create additional geometry, add details, and export texture maps that we can use in the texturing process. This is also where we’ll keep our ‘master file’ for the project.
- Rizom UV (optional): This is a dedicated tool for UV mapping and the one I prefer to produce and pack my UVs. However, you can totally do the same thing within ZBrush using the UVMaster Plugin and I’ll show you how (this is an official plugin for ZBrush so it comes with it).
- Substance Painter: We’ll use this tool to bake some Mesh maps and to create the textures for our creature.
- iClone (optional): this is an additional step that you can follow to take the creature and the rig from Character Creator 3, and produce the animation.
This is a collaborative project with ArtStation. The full tutorial videos can be found on ArtStation Learning.
STEP 1 – Generating the base mesh
The first step is to select one of the base meshes that come with CC3 and drag and drop it into the viewport to load it. I choose a neutral male character base (CC3+_Neutral_M.ccAvatar from the Project > Avatar folder), but any base mesh would work fine as they all use the same rig and you can completely change the appearance of the generic base mesh.
Once the base mesh is loaded, you can head over to the ‘Modify’ tab on the right-hand side of the UI, and use the ‘Morph’ sliders to adjust the shape of the body. For instance, you can select the ‘Arm’ from the hierarchy and simply change the values in the sliders to get a longer and bulkier arm.
After tweaking the sliders of the base mesh I ended up with a more stylized set of proportions and a thinner frame for the body of my creature:
STEP 2 – Setting up the ZBrush project
Once you are happy with the base mesh in CC3, you can use the integrated ‘GoZ’ button to send the base mesh to ZBrush and continue the process there. To send the Base mesh to ZBrush, make sure you select all the objects you want to send (shift + click to select them). I ignored the ‘EyeOcclusion’ and ‘TearLine’ because these can get in the way when sculpting and CC3 has a neat tool to re-position those pieces at the end anyway.
After selecting the objects you want to send to ZBrush, clicking on the GoZ button will bring a window with some additional settings. The settings you choose in this window are important for the ‘round trip’ so that we can send the creature back to CC3 from ZBrush.
From the ‘body parts’ section, I ticked the ‘Eyelash’ and the ‘Tear Ducts’ so that I can have these pieces as separate subtools in ZBrush. The ‘Pose’ is how you want to have the character to be posed in ZBrush for sculpting, either A-pose or T-Pose. I chose A-pose and clicked on the ‘GoZ’ button.
CC3 is going to automatically set up everything in ZBrush and you’ll see the tweaked base mesh from CC3 now in ZBrush and you are ready to start sculpting.
The first thing I do to complete the setup of my project in ZBrush is to adjust the brush size from the preference palette. CC3 works with a pretty big scale but ‘unifying’ or scaling down the mesh in ZBrush will ‘break’ the connection to the original CC3 rig, so instead, you can simply set the ‘Max Brush Size’ and the ‘Dynamic Brush Scale’ from the Draw subpalette to something like 5000 and 50 respectively (Preferences > Draw).
The workflow in ZBrush is pretty straight forward but in order to keep the connection with CC3, there are just a couple of things to keep in mind:
- Avoid re-arranging the subtools from CC3
- Do not rename any CC3 objects
- Do not alter the topology
We need to keep the objects that came from CC3 with the same name and the underlying topology cannot be changed. That means that we cannot use features like Dynamesh or ZRemesher on the objects that came from CC3. However, as long as you keep the topology, you can use the subdivision approach to get more resolution and to sculpt the details.
Outside of this specific restriction, you can create additional meshes in any way you want and with those new meshes, anything goes. You can for instance append a sphere and Dynamesh it, which is what I did for the head of the creature, and add as many details as you need.
Another very useful method to create meshes is to use the masking and Extract function in ZBrush. This method allows you to mask a position of the base mesh, like the torso and part of the arms for instance, and extract a mesh that follows the volumes of the masked objects.
This method is ideal for extracting pieces of geometry for clothing, armor plates, or anything that needs to follow the contours of the base mesh.
The following step is not really part of the pipeline, but it is something I like to do to test what I’m doing in ZBrush within CC3. With the 3D sphere for the head and the extracted ‘shirt’ as an example, you can click on the ‘All’ button from the Tool palette in ZBrush (right next to the GoZ button). This will send whatever you have in ZBrush back to CC3.
In the process of sending things from ZBrush, CC3 will open up a window where I ticked the ‘Adjust Bone to Fit Morph’ and selected the A-Pose (the same one I used to send things to ZBrush).
Once you have everything back into CC3, you can quickly test and prototype the pieces you have generated in ZBrush with different poses and even re-adjust the body’s proportions and volumes with the morphs.
STEP 3 – Sculpting
Now that the project is all set up in ZBrush, you can start the sculpting process. I like to start by doing another pass to adjust the base mesh using the move brushes on the lowest subdivision level.
I avoid detailing the mesh until I’m very happy with the overall silhouette and ‘primary shapes’ so I try to bring every mesh or additional object to the same level before moving into details.
Once I’m happy with the primary shapes in ZBrush, I start to move up in subdivision as I need more resolution to describe new details. For this process, I usually keep my toolset very limited and use brushes like the Standard brush, the Dam_Standard, the clay buildup brush, and the smooth brush constantly to maintain a clean mesh.
There are two main areas of focus during this sculpting pass: Balance and transitions.
When I start to use smaller brushes to add more details, I’m constantly keeping an eye on other surfaces of the model trying to keep a good balance between areas of details and areas of rest. Also, even though this is a made-up creature, there are certain shapes and volumes in the anatomy that suggest a visual ‘flow’ and I use details to reinforce that pattern.
The other big thing for me at this stage is the transition between various shapes. I like to make sure that the brushstrokes are intentional and they feel part of the same, this is particularly important for the added meshes so that they look like they are part of the main body.
In this particular project, I knew from the start that I was going to end up in Substance Painter for the texturing process so I decided to leave any high-frequency detail (pores, small wrinkles, etc) for that stage and keep the mesh in ZBrush relatively with clean and polished surfaces.
Once I was happy with the polish level on the creature all around, I did a quick optimization of the meshes I created in ZBrush. Using the ZRmesher and projection features, I took the head and the chest pieces to follow the subdivision workflow with a clean topology instead of the Dynamesh object I used during the sculpting process.
STEP 4 – UV Mapping
The next step in the process is to produce UV maps for the meshes created in ZBrush. All the pieces that came from CC3 have nicely laid out UVs so we don’t have to touch those, but in order to move to Substance Painter we need all the pieces to have UVs.
As I mentioned at the beginning, I prefer to use Rizom UV to create my UVs, but ZBrush is perfectly capable of doing the same thing and it is a very quick process. In ZBrush I assigned two polygroups, essentially splitting the headpieces in two, and clicked on the ‘Unwrap’ button from the UV Master plugin.
Alternatively, you can do the same thing with Rizom UV if you want to have a bit more control over how the UV islands are generated and packed within the UV space. Just keep in mind that if you create the UVs somewhere else, you need to import the meshes back into ZBrush and transfer the UVs using the same UV Master Plugin.
STEP 5 – Exporting Maps from ZBrush
Once I had all the meshes with UVs I moved on to produce a Normal map and a Cavity map from ZBrush to use inside Substance Painter. This is a process that you can do straight from Substance Painter and bake all the maps in there, but I prefer to ‘bake’ my normals and cavity maps inside ZBrush and export them.
The cavity map is something that I like to tweak a bit so that I can use it as a ‘curvature’ map in Substance and the process to do that is quite simple. You can tell ZBrush that you want to use the settings from the ‘Mask by Cavity’ section in all the sub tools to produce the ‘curvature map’ (it is actually a cavity map but it works for the same purpose in this case).
A more subtle curve in the ‘Cavity Profile’ and low intensity (15 worked for me) produces a mask that highlights the protrusion or convex details, a dark grey for the crevices, and a nice range of greys in between.
From the ‘Multi Map Exporter’ plugin from ZBrush, I enabled the switches for Normal and Cavity and set the following settings for each map from the ‘Export options’:
- Normal Map: Tangent, Adaptive, SmoothUV, and SNormals enabled and the SubDiv Level set at 6 (the same as the highest subdivision level I had on the creature).
- Cavity Map: I enabled the ‘Use Curve All Subtools’ switch to tell ZBrush I want to use the settings I set in the masking palette, to produce the cavity maps.
Once the settings in the Multi Map Exporter are set, the next step is a one-click operation to produce all the maps. From the Plugin, I enabled the ‘Subtool’ switch, set the map size to 4096, and then clicked on the ‘Create All Maps’ button.
STEP 6 – Baking
Once I had the normal and cavity maps, I exported a low res version of the creature as an FBX file and imported it into Substance Painter for texturing. In the initial window where you can set up the project in Substance Painter, I chose a document resolution of 2048 and the Normal Map format to be ‘OpenGL’ (this is important for the normals to work correctly with CC3 later on).
In the UV tiles settings (UDIMS), I selected the new workflow to paint across UV tiles since the body from CC3 comes with UV tiles the head, torso, arms, legs, and nails.
After importing the FBX and setting up the project settings, I simply dragged and dropped the Normal maps and the Cavity maps exported from ZBrush, into the shelf in Substance Painter. (from the import resources window I chose ‘Texture’ as the filetype).
The next step is to assign the normal and cavity maps into the ‘Mesh maps’ section of the Texture Set settings. The exported Cavity maps from ZBrush go into the ‘Curvature’.
To finalize the initial setup of the Substance Painter project and before starting the texturing process we need to generate a few other ‘Mesh maps’ to leverage the power of the generators and other filters. Substance Painter can produce the additional maps based on the low-res mesh and the normal details we exported from ZBrush.
From the ‘Mesh maps’ section, you can click on the Bake Mesh Maps button and change the settings for the baking process. From the ‘Common’ tab, I ticked the ‘Use low poly mesh as high poly mesh’ box, and then from the individual settings of the Ambient Occlusion, I changed the ‘Self Occlusion’ from ‘Always’ to ‘Only Same Mesh Name’ and baked the additional mesh maps.
STEP 7 – Texturing
Once I had all the mesh maps working I started the texturing process with a series of color layers to variate the hues of the creature’s skin. When creating a skin texture, even if it is for a creature, there are a lot of subtleties that sometimes it’s easy to overlook, so my first priority is to set the main color for the palette but also to emulate all the subtle variations in hues and brightness of the skin.
I use duplicates of the base color and change the hue and saturation slightly. With the procedurals in Substance Painter, it’s easy to create an intricate mask that will occlude parts of the layer and let through parts of the original color.
I like to use a combination of procedural maps with filters to create complex masks, but I also rely heavily on the generators to determine the placement of certain details. At this point in the process, my focus is on the ‘albedo’ or colour of the textures, the roughness, and surface noise comes after.
Once I’m happy with the base colour and all the variation generated with the various masks and generators, I bring in other layers with roughness and height information to add bumps and that sort of high-frequency details.
At this point, I start to move away from the procedurals and start to make more conscious decisions about where to place certain details using hand-painted masks.
STEP 8 – Exporting Texture Maps
Once happy with the textures of the creature, the process of exporting maps is quite simple. From the File menu, click on the Export textures (or press Shift+Ctrl+E).
In Global Settings from the Export Texture window, you can choose the ‘iClone’ as the Output Template, this will ensure that the Normal maps are exported correctly, but you can also use the PBR workflow and make sure that the Normal from the ‘Converted maps’ is the OpenGL one.
You can choose a map size of each texture set and click ‘Export’.
STEP 9 – Setting up the project back in CC3
As I mentioned at the very beginning, the ZBrush file is your master file and as long as you you don’t change the names of the subtools that came from CC3 or change the topology, we can easily send the meshes back to Character Creator 3 and finalize the project there.
So from the ZBrush ‘master file’, you can click on the ‘All’ button again next to the ‘GoZ’ to send every subtool into CC3.
From the GoZ options in CC3 once prompted, make sure that the ‘Adjust Bone to fit Morph’ is ticked and also that the same pose you used when you first sent it to ZBrush is selected (in my case the A-Pose).
Also from the ‘Action’ column, each new mesh item has a dropdown menu to choose either ‘Create Cloth’ or ‘Create Acc’. For the most part, what you want to select here is the ‘Create Cloth’ (should be the default), this option tells CC3 that the meshes need to deform with the rig based on the base mesh so you’ll have automatic ‘skinning’. However, there are certain objects that you might want to keep as ‘solid objects’ like the Claws of this creature. If that is the case you can use the ‘Create Acc’ (Create Accessory) instead.
That’s it, you should now have all the meshes ready to go inside CC3. The next step is obviously to bring in all the details from ZBrush and texture information that we exported from Substance Painter. The mesh that was sent to CC from ZBrush is automatically reduced to the lowest subdivision level, so all the sculpted details will be given by the Normal maps.
To connect the exported textures from Substance Painter into CC3, go to the texture tab from the Modify panel, select the mesh from the Material list, and below under the Texture Settings, you have the thumbnails to update with the textures from Substance Painter. To import the textures you can click and drag into the respective slot.
STEP 10 – Further prototyping
At this point, you should have a good looking creature with detailed textures working well inside CC3 so this next step is an extra thing you can do to leverage the power of the CC3 base mesh and rig.
You can go to the Morph tab under the Modify window, and further adjust the volumes using the same morphs and the same process you used to set up the original base mesh. This is a great way to produce quick variations of the same creature:
STEP 11 – Posing and extras
Another great advantage of using the CC3 base mesh and rig is that once we have all the meshes, details, and textures in there, we can easily pose the creature and all the meshes we created in ZBrush will deform with the base mesh.
From the Modify window, you can go to the Motion tab, click on ‘Edit Pose’ and use the interactive controls to move and rotate the bones. This is a really easy process and everything should work just fine but if you want to dive deeper into the tools inside CC3, there are also options to manually edit the weight painting and the rig’s influence on the mesh.
Another awesome feature of CC3 is the gallery (or Smart Gallery) of assets. There are lots of downloadable content and some paid products but you can simply drag and drop from the gallery into the creature, and it will be automatically fitted since it uses the same rig.
STEP 12 – Rendering
To complete this project I used the rendering tools inside CC3 to light and adjust the final look of the creature.
From the ‘Create’ menu at the top of the UI, you can create different types of lights and tweak the settings of each light you add from the Modify window. I wanted to accentuate the ‘creepy’ vibe of the creature so I went for a very dark theme with just a couple of spotlights that barely show the whole creature.
From the Visual window, there are also options for ‘Post Effects’ so I added a few LUTs (Lookup tables) that are stacked as layers and played the opacity to variate the contribution of each effect.
Following the idea for the theme of this creature, I did a few more renders variating the light intensity, position, and post effects and took the renders into Photoshop for some final tweaks and effects.
And to wrap up, the same right that CC3 uses to post the creature can also be used inside iClone to create animations for the creature. All you have to do is click on the ‘Send Character to iClone’ button inside CC3 and that’s it!
I hope you have found this overview of the project useful and hopefully gained some insight into my process of prototyping a creature design for production.