Cyborg Monk: Modeling Workflow in ZBrush & Maya
Marcos Melco did a breakdown of his hard-surface character Cyborg Monk made during CGMA’s course Hard Surface Modeling for Characters.
Introduction
Hello! My name is Marcos Melco, I’m a Brazillian 3D Modeling and Texturing artist with 3 years of experience in the VFX industry and many more in trying to figure out “How to art”. I’m currently not working in the industry but I’m gearing up to hopefully return this year. I’ve had the immense pleasure of working at Method Studios (2015-2018) and Icon Creative Studios (2018) in Vancouver, Canada. While at Method Studios, I worked on Black Panther, Okja, Captain America: Civil War, and King Arthur: The Legend of the Sword. At Icon Creative Studios, I worked on Disney’s Rocketeer reboot.
In this article, I’m going to talk a bit about my process of creating the Cyborg Monk character during CGMA’s Hard Surface Modeling for Characters course run by Ben Erdt.
Why CGMA
Why did I take a Hard Surface Modeling course at CGMA? This question has a two-part answer.
First of all, this industry is full of artists who are brutal with themselves. We shouldn’t be, but we are. I have a bit of Imposter Syndrome (that feeling of being undeserving of your job position or praise). Being a technical-minded person, I’m always second-guessing myself. “Is this the correct process of doing this?” As if such a thing existed in CG. The right mindset should be “If it works, looks good, and is completed within a reasonable time and specifications then yes, it is!”. I didn’t get rid of this bad habit yet but I’m trying to. So I took this course because I wanted to see how the real pros go about it. I wanted validation that I’m doing this the right way.
The second part was Ben Erdt’s art. His personal work is full of characters with great design, insane detail, but the most important aspect of it is that he makes them production-ready. A lot of projects you find on CG society or Artstation are stunning but they work only as still images. Ben’s work is functional, it can be rigged and animated. As a production artist, those are the skills I want to master.
I was very pleased to find that my workflow was similar to Ben’s. I still have a lot to learn to reach his level, but I’m hopefully on the right track. He helped me reinforce what I was doing right but also taught me some new ways of doing things, pointed out steps that most artists skip during the design process, and made me realize the power of some techniques I was aware of but to my detriment, didn’t really use.
Choosing the Concept and Preparations
At the start of the course, Ben gave us a few concepts of characters to work on. I chose Jianli Wu‘s concept for its design and the level of detail suited that my needs. l really liked the cyborg monk vibe and its composition of hard armor clustering on the upper body and lighter armor for the rest of the body. It makes the character feel quick and skilled and also fits its theme.
It was also helpful that the level of detail is high on the upper body and gets streamlined in the lower body which suited the course timeline. I was able to focus on the hard-surface portion during the 6 weeks I had with access to Ben’s feedback and I knew I could complete the rest on my own later.
To prepare for the modeling stage, Ben had us collect references, come up with a character backstory to help us breathe more life into the design, and do a material breakdown of the character. I also did an extra paintover to expose the details the armor is covering.
Course Assignment for Week 1: Backstory and Material Breakdown. PS: His backstory is lame, I know, I’m not a writer.
Blocking Stage (ZBrush)
Concept artists never deliver a 100% solved design. They do the bulk of the work and it’s up to the modeling artist to solve problems and flesh out the design. Sometimes you also need to change details that overcomplicate the modeling or rigging parts. It often happens that the design is changed in production. So don’t feel bad if you aren’t able to match the design 1 to 1.
Two important changes I made during the blocking phase were:
- Moved the piston that connects the character arm to the shoulder armor. Making a piston that works for that arm setup would be straightforward to a seasoned rigger but I don’t have that skillset, so I thought it was best to move it to the Shoulder armor making it simpler for the rig.
- The tail vertebrae were really organic-looking, morphing along the spine gradually into other shapes. I didn’t have the time to model each one to make that transition noticeable so I changed them to 3 simpler designs and manually scaled them along the tail. It doesn’t do the concept justice but I saved a lot of time approaching it that way.
I’ve started in ZBrush using the average male model that comes with the software. I blocked the body proportions, then went into Maya to quickly retopologize and remove details I wouldn’t need (nipples, genitals, facials details, and toes), then moved it back to ZBrush to start the armor sculpting.
ZBrush is really weird with how it handles the scales and position of the objects. The extra benefit of this first step is that it helps me make sure Maya and ZBrush scenes match. A good trick is having your top subtool as a ground plane (I use a 2m² one created in Maya (units set to cm)). This gives me a reference of scale and position. It also helps with naming, as every time you save your Ztool the top subtool gets renamed to the Ztool file name.
The retopo body mesh gives a source to start extracting costume parts from. Later in rigging, I can skin this base mesh, then transfer the skin weights to other deformable costume parts.
The costume sculpting was done using the old-school ZBrush Dynamesh workflow.
To create new parts, I either duplicate the base mesh and slice the parts I don’t need (Helmet, Chest armor) or use mesh extraction or panel loops to create thin meshes (Arm plates, Leg armor).
Using the classic tools of Masking, Clip brushes, Clay Tubes, Move, hPolish, Trim Dynamic, and DamStandard I define the shapes. You can also use alphas with base geometric shapes to speed up your blocking work.
Course Assignment for Week 2: Blocking Stage
I continue working in ZBrush up to the point when all the shapes are in place and there is nothing to solve in terms of design or proportions. I deliberately left the shoulder pistons unsolved as I planned to use Maya rigging tools to block functional ones. I used aim constraints and groups, nothing too complicated. Just made sure the Shoulder armor could move around and the pistons wouldn’t crash or disconnect by being too short.
One thing I have to comment on before we move to retopology is how I botched the proportions of the character. His chest is too wide, the armored collar is too high, and the shoulders too small. It makes his torso look super long. The character looks fantastic in up-close shots but when you look at the character as a whole you’ll know what I mean. It’s too late to fix it as it would take too much time to do it properly. Let it be a warning to myself and you. Be careful with your proportions, I’m sure that every character artist out there noticed my mistake. Oh, well!
Range of Motion Tests
Week 3 of the program was focused on motion tests. We broke the model into parts and built a quick and dirty rig to see if the model could move around without severe crashing. This character armor is well designed so it can move with freedom as long as the clavicle doesn’t rotate forward or upwards too much. In hindsight, I should’ve changed the design a bit by moving the border of the Chest armor inwards, giving the arms more freedom of movement, and reducing deformation if the character was to be animated.
Course Assignment for Week 3: Range of Motion Tests
Retopology in Maya
For this project, since I was going for a Sub-D ready character I decided to move to Maya and add more details directly in my final mesh. Sometimes, I’ll go back to ZBrush to block more details (I did this to the Collar armor and Helmet) as ZBrush allows me to work without the distraction of topology.
Course Assignment for Week 4: Sculpt Ready for Maya
Notice that the shapes are solved but the surfaces aren’t perfectly polished, it’s not useful to waste time cleaning surfaces in ZBrush if you can clean them during retopology. During retopo, working from big shapes to small, we can create those shiny clean shapes everybody expects to see.
I use 2 methods to start a retopo object:
Quad Draw on a live mesh is the main tool for retopology. If the shape from ZBrush is really clean you can do the whole model using mostly Quad Draw. But it’s important to know that sometimes it’s better to Quad Draw the bigger forms then turn it off and poly model the small details using the ZBrush mesh as a guide (Live Mesh off). Especially for parts that aren’t really fleshed out.
Mesh example using Quad Draw method.
Another way of getting started is Zremesh then GoZ into Maya. Starting from scratch always takes time, so getting ahead with Zremesher and cleaning-up in Maya is also a good tactic.
Mesh example using Zremesher method.
Experiment with Zremesher on your meshes with Polygroups and Keep Groups on. Play with Smooth Groups slider for better results.
Fair warning: SmoothGroups is no joke, it really rounds off sharp corners of your mesh. If you want a fighting chance, go with crazy low values like 0.0001 (and it still gives round corners) or just turn it off completely. There is no “one size fits all” setting here, experimentation is key. You might save a lot of modeling time here.
Useful Maya Tools
Let me walk through some tools I use a lot that I’ve seen some people overlook. Hopefully, there is something new for you here. Some experimentation is required.
MODIFY MENU
For the Matching Tools, select the target objects first then the object that will be the source (matched to).
- Match Translation, Match Rotation – These tools allow matching the translation and rotation of new objects to the selected target object.
- Match Pivot – Moves the pivot to the source object without changing transforms.
- Bake Pivot – This one is the best tool. Bakes the translation and rotation of the pivot current position. You can snap and orient the pivot then get that exact transform values. Very useful to get the transform of an object during blocking phases.
A combination of Bake Pivot, Match Translation, and Match Rotation allows blocking mechanical moving parts quickly. Matching also assists in the placement of bones and locators during the rigging step.
Bake Pivot also helps you to move the symmetry plane when in object mode. Ever wonder why sometimes it doesn’t work even if the pivot is in the correct position? It’s because you didn’t bake in the pivot transform values. It took me ages to figure that one out and I’m still mad about it.
EDIT MESH
- Transform – Allows you to move components along its normal. Works kinda like inflate in ZBrush. Super useful to change the thickness of cables or extrusion heights after you cleared the object history.
- Edit Edge Flow – It averages the selected edge loop based on the neighboring edges, this is my favorite tool to get smooth curved surfaces quickly.
Edit Edge Flow.
MESH TOOLS
- Connect – Creates an edge between 2 vertices or an edge loop along the midline of selected edges.
- Multi-Cut – This one is super useful as well. You can use it to insert edge loops or draw panel cuts in an existing mesh. Just go nuts with making cuts and clean the edge later.
- Sculpting Tools – If you ever used Mudbox, these brushes work in a similar way.
- Grab Tool – Works just like the move brush in ZBrush. You can use it to change shapes or just move vertices to even out the spacing.
- Relax Tool – Quickly evens out the surface vertices with minimal shape loss, remember to keep it away from supporting loops and corners.
Texturing Stage
The texturing stage for this character didn’t take too long and honestly, I didn’t push the textures as far as I should have. Just enough to make the materials read well in V-Ray.
Substance Painter can create great-looking materials quickly. You can make great textures only using its presets. The caveat is that every texture artist worth their salt will look and say “Oh! He is using Grunge X and smart material Y” so don’t do that. Take your time to create distinct materials and blend your grunges. You can also save those for later use.
I started by splitting the character into two files to help Substance run quicker and keep my file sizes smaller. One file had the metallic armor, the other had everything else.
I created my maps for V-Ray 3.6 so I used the Non-PBR (Physically Based Rendering) spec/gloss setup in Painter. In simple terms, Specular maps will tell V-Ray how shiny the pixel is and Glossiness tells us two things, the size of the highlight and how blurry the reflection is. IOR (Index of Refraction) is also very important for most materials and can be texture-mapped but if you need to map IOR it’s because the base material is changing (Bare metal to the coat of paint). It is a better practice to use a Vray Blended shader and a mask map and control the material aspects in their independent shaders. You get more control that way.
Good UVs are a huge help during texturing. There are a few guidelines that will pay off when texturing.
- Separate the UDIMs by materials.
- Every line should only contain UDIMs of the same type of material when possible.
- Texel density should be kept the same across the same material. It’s fine to scale shells up to fill a UDIM with free space. Just make sure the texture scale matches across the model.
- If some materials don’t occupy enough UV space to fill a full UDIM and also not visible enough to be scaled up, it’s fine to group them together in one UDIM. Keep the shells of the same material clustered together and give enough space between groups for easy selections in the texturing software.
- The cost of using many UDIMs is an increase in render times, so be as efficient as possible but from my experience, the VFX studios see render time cheaper than artist time. So plan your layouts for faster texturing and with a resolution to spare. You never know if the Director is gonna change a shot and bring your asset closer. If your textures hold up when changes happen, if nothing needs to be redone it will make your leads and production very happy.
UV layout (Maya UV Editor).
My process in Painter is to set up whole materials (texture sets of diff, spec, gloss, normals) procedurally in the Fill layers. Layer them one on top of the other and reveal the edge wear, scratches and so on by using the powerful mask generators. Nothing new really.
One step that I could’ve done to improve my textures is painting masks for my scratches. If you look closely there are some scratches that wrap perfectly around the geometry. Those never happen in reality and really detract from the quality of the textures.
Textures for the metallic parts (Substance Viewport).
Textures for the body (Substance Viewport).
Rendering Stage
V-Ray was the rendering software Method Studios used primarily so I learned the basics there and kept using it because lots of VFX studios still use it as their main rendering software. Its base shader is really easy to use. I used a Vray Standard Material for everything. Most of my materials only needed the maps plugged in and they worked. No remapping nodes needed, yay! There is no shame in remapping your textures though! It’s recommended actually. (For those who don’t use Maya remapping nodes have similar functionality to using HSV, Curves, and Levels on your texture sets.)
The “gold” Metal got a bit more attention. I made two specular maps for this material, as I’ve shown in the Texturing part of this article. The first specular works just like a regular spec map, the second specular map was used to fake an iridescent oily like sheen for an additional breakup. To blend those, we stack the shaders using the usual blend node and a VRayFresnel node to mask the oily sheen. The idea is that the first spec map is used on highlights but at certain angles (surface normal starts pointing away from the camera the second spec gets displayed).
Gold Metal Shader Setup (Maya Hypershade).
I’ve also used a similar setup for the cloth undersuit. I duplicated the shader and in one version made the diffuse map slightly brighter. Then using the same setup as for the gold shader I blended them together using the VRayFresnel. This setup gives a velvet-like result, I just toned it down to keep the cloth feel without drawing too much focus on it.
I won’t get into the Lighting part because most of my lighting was created through trial and error. I just placed a few Area Lights and a VrayLightDome (HDRI lighting) to light the model. I do need to spend some time learning lighting fundamentals to give accurate advice. It’s on the list.
Wrapping Up
This project was a really good ride. I think I came really close to Jianli Wu’s concept. The biggest challenge is always converting the 2D concept into a working 3D model, solving the hidden parts, and making sure the character can move with its costume. After that, follow the course and with patience finish the character.
If you are considering taking Ben’s course, make sure you are comfortable around ZBrush and your favorite 3D modeling package. There is a lot to learn from Ben and you wouldn’t want to waste time struggling with software issues. If you are comfortable with the basics I really recommend you take it.
I hope this article was helpful! Huge thanks to all the artists and staff that helped me along my art journey and thank you for reading all the way though!