The Making Of 'Baby Cakes'
Discover how to create minute sci-fi detailing in Henrique Naspolini's workflow breakdown of his female sci-fi character, Baby Cakes...
In this article I will go through the steps of making the Baby Cakes game model. It will cover high-res, low-res, custom alphas, posing and Rendering using softwares like ZBrush, Maya and Marmoset Toolbag.
The idea to make this character came when I saw its concept, by Trevor Claxton, on the internet. I thought it was such a fresh and awesome design that I just could not hold myself back from doing it. Also, the challenge to recreate such an amazing piece was another important motivational aspect.
The first thing to do was to get the proportions of the body right. In this specific model I used a female base mesh that I have made before and imported into ZBrush. That allowed me to save some time and jump straight to the proportions and silhouette I needed. I used the actual concept as reference. Even though the concept was not in a modeling pose, it was good enough to extract some information from it, like leg size, waist size, and torso size. I really wanted to get a narrow waist, thick thighs and small feet. It was important to get a solid body base because it served as reference for everything else on the model.
Once I was happy with the body proportions, I could then move on to the suit blockout. In ZBrush, I duplicated the body SubTool, went down the 2nd subdivision and the deleted the lowest and highest subdivisions.
Then I masked the whole body but the head (1). After masking I clicked Hide Point, to hide the head, and then Delete Hidden, to get rid of the head. That left me a second SubTool with only the body (2). Now with a basemesh for the suit I could start blocking the shapes and details out of the suit with brushes like Standard, Clay tube, Clay Buildup etc (3). Then it was just a matter of adding and polishing the shapes and details (4).
After sketching out all the details of the suit, I used Decimation Master in ZBrush to lower the polygon count.
Moving to Maya
Then I imported the decimated mesh into Maya (1) and started remaking the suit with Maya's new Modeling Tool Kit (2) until I had all the parts of the suit rebuilt with a cleaner topology (3).
Heading toward the end of the high-poly modeling stage, I made some custom alphas from 3D models to add the final details on my model. In the image below you can see the 3D models on the left and the correspondent alphas on the right.
Adding detail with alphas
The process was something like the following:
- Model a shape that you want to use as alpha in ZBrush and export as OBJ
- Import it to ZBrush, place it in the canvas and then press 'T' to drop the tool
- Click In the brush palette and choose the MRGBZGrabber brush
- With the MRGBZGrabber brush selected, click-and-drag anywhere on the canvas until it covers the whole canvas. When you release it, ZBrush will capture and store color and ZDepth information from the canvas
- You will find the ZDepth information in the alpha sub-palette. Select the alpha and export
- Open it in Photoshop and adjust the document size to be square
With the high-res retopology done, I imported all the pieces back into ZBrush as separated SubTools for final detailing and polishing. I used the alphas I created and also, with the Standard brush, I added some folds on the fabric and rubber areas.
From the beginning I wanted this to be a character for a game, so once the high-res model was done, it was time to work on the game model. At this point the process was very similar to the 'High-Res Re-topology' step.
I again used Decimation Master on my high-res model to get a lower polygon count version (1). Then I could import it into Maya for the re-topology, but this time for the game-res version, something around 15k to 20k polygons (2). Once the re-topology work was done I then split the model into a few parts which each one could have their own UV sets and textures – head (yellow), hair (red), eyes and teeth (green) and body (blue) (3).
It's important the break the materials up like that because you want to be able to control the material properties and resolution independently from each other, especially the head since it is usually the focal point of the character.
Another thing to take in consideration here is the facial topology. It's important that the loops are placed respecting the face structure, muscles and so on. That will allow the face to have a better deformation when animators are working on the face expressions. Although that wasn't the goal here, it is always a good practice to do them.
Textures were pretty straight forward. Normal map and occlusion map were baked with xNormal. Cavity maps were extracted from normal maps in Photoshop with a personal set of actions, but you could get it with the xNormal filter for PS or nDO. For the face I used real photo reference projection in Mudbox.
To give the character some attitude in the final render, I decided to pose the model just like the concept. For that I imported game model back into ZBrush and used the transpose tools.
The process of posing is as follows:
- Mask out the portion of the model you want to pose
- Select the Transpose Rotate tool and place on of the ends of the transpose line at the desired pivot point
- Click-and-drag the other end to rotate and pose the unmasked portion
I basically followed these three steps to pose the whole body. It took some back and forth, masks, touch ups and right placement of the transpose tool to get everything correctly posed but it was, definitely, much faster than the traditional way of rigging.
To render this character I used Marmoset Toolbag. It was really good because it gave the model that in-game look since it's pretty much a game engine. But before taking the model to Marmoset, there are a couple of things that you need to do when exporting the model from Maya to Marmoset.
- Make sure you split the model based on the UV sets, and name them accordingly to each object for easy management later, then make sure you select them all to export at the same time
- Then go to File > Export Selection. In the Export window, choose OBJexport as your file type and make sure Groups is turned on. This is important to guarantee that the model will be exported as separated objects instead one object together
- Importing it into Marmoset you will get a list of chunks that match the objects exactly in Maya, and then you will be able assign one material for each one of them
After I was done assigning all the materials, with the correspondent textures, I made a quick a lighting setup. First I chose Garage in the Sky Lighting Presets (1) to use as my global lighting. Then I added a couple of dynamic lights (2), one over the head (A) to slightly illuminate the face and another far on the side (B). After that it was just a matter of placing the camera, adjusting the field of view, which in this case was pretty low, 15.00, and rendering it (3).
With the mask in the alpha channel of the rendered image, I could easily isolate the character from the original background (A). I added an occlusion pass in Multiply mode to give it a little more shadow information (B). Then I created a simple background in Photoshop that matched the lighting in the render, painted some ground shadows (C) and added some layer adjustments to tweak the color and saturation to get my final render (D).
The final render
Head over to Henrique Naspolini's website
See more of Trevor Claxton's work