@Utsav singh, Yes. But a kind of lowpoly projection to have the best balance between poly count and alpha/quad overdraw.
Appreciate the shoutout!
your shader complexity is low because you used true polygon models instead of just a masked plane to prevent alpha overdraw?
Artstation contest finalist Rodrigo Gonçalves shared an extended breakdown of his amazing Blacksmith character, based on an awesome concept from Tatiana Vetrova.
Hi there, 80.lv! I’m Rodrigo Gonçalves, and I’m originally from Brazil, where I’m also currently living. Before I ever dreamt of working in 3D character design, I worked as a Web & Flash Designer from 2007 until the end of 2012. Halfway through 2010, however, I decided to take my first steps into the world of 3D art by taking some 3D art classes in Brazil. And it was during this period that I fell deeply in love with the creative process of 3D art! Since then, I’ve focused more on my studies and devoted more energy into learning 3D arts.
At the beginning of 2013, I decided to make a career change and apply myself towards becoming a 3D Character Artist, which involved learning new skills, creating an entirely new portfolio, and pursuing a fresh career all over again. I knew producing good results in this field would take considerable time, much effort, and tons of commitment and persistence. After quite a bit of hard work, with some ups and downs along the way, I eventually obtained good results through my efforts, which later manifested as job opportunities. Since then, I’ve been freelancing as a 3D Character Artist, primarily focusing on 3D modeling, digital sculpting and texturing, and creating models for games and real-time creative projects.
I had the pleasure and opportunity to freelance for Angry Mob Games, an indie game studio, on its Toysburg mobile game. I also made small digital sculpting contributions on some miniatures for Kingdom Death, a top table game, and most recently freelanced for Ember Lab studios. I’ve come a long way since my flash designer days, but I still want to learn more as I progress throughout my career!
The Blacksmith character was originally based on an awesome concept from Tatiana Vetrova that was created for an art challenge, “Ancient Civilizations: Lost & Found – Game Character Art (real-time),” hosted by ArtStation. I also wanted to create a new character for my portfolio and improve myself as an artist. When I saw the opportunity to do a real-time, 3D game character based on someone else’s concept art for this challenge, I immediately thought of Tatiana’s work and knew it would be a great opportunity for me. “Here we go!” I thought, “I’ve accepted a new challenge!”
During the first week of the challenge, I began by studying the concept itself and started sculpting the head to see if I could capture the feel or likeness of the concept. This opportunity proved challenging yet rewarding—it pushed me to explore and learn new techniques and practices, like how to design a more complex hair style in real-time, how to fine tune skin texturing and shaders, and how to create an appealing female character with an engaging personality. The Blacksmith is a tough and strong woman but I still wanted to present her as graceful and beautiful.
After I get the overall basic shapes, I like to put some quick and very basic color into the model using polypaint in ZBrush. This helps bring some life to the model and I find it a bit easier to compare my work with the concept and references to check for general likeness and specific proportions of the face/head. In doing so, I can feel if the model is heading in the right direction or not.
After that, I’m happy with a high-poly head sketch. Then, I start doing some final retopology while refining the sculpt with new mesh topology for it to be ready later on for bake textures.
There are tons of ways of doing cloths and props, so I think there’s no right or wrong answer here. Put simply, each project requires a different approach. But, I’ve found the process of building characters becomes infinitely easier when following logical steps.
First, I need to model a body so I can have something to clothe later in the production process. So, I start modeling the body and obtain the overall proportions close to what I need. Then, I move on and continue refining the model as I progress throughout my production workflow.
If I were to start the other way around, creating the cloths or the props without having a well-defined and proportioned body, I would probably have to fix the cloth/prop proportions later on or even redo the entire process over again! Thus, I prefer creating the body and finalizing proportions as soon as possible.
For me, it’s far easier to extract mesh parts from a mesh body (like mask + extract mesh parts) and create the cloths and props from there. Of course some props are just traditional polygon modeling, but in early phases, like the sketching phase, I just do a prop block out to get the big shapes done and to check ideas, which I further refine if I like them.
High-frequency details are the last thing I think about in high-poly and there are many techniques to approach this aspect of production. I can use alphas maps to guide and sculpt, or I sculpt details by hand and so on. Here’s an example of how I do metal detail by hand, which results in a more organic, handmade metal. I used this technique to detail all of the metal materials for the Blacksmith character.
To create certain elements, like the props/belts/leather parts, I always try to instill some logic and function into my elements or at least inject them with an illusion of credibility for the final viewer. Generally, either of these steps helps to bring some realism to the elements. I typically research my elements and use real-life references to inspire me while recreating them—all the while, my main concept helps me stay on track with the original idea.
Thinking or imagining the history behind a character also helps me understand if something on the character should be made to look as if it were handmade or machine made. In this case, because the character is a blacksmith and originates from an “ancient civilization” (the theme of this art challenge, remember?), I approached creating details for the character by hand, much like a blacksmith. Again, it’s a good opportunity to learn and explore how to do exciting work in different ways!
In ZBrush, if they are some basic organic elements, like leather cloths, bolts, and belts, I extract the mesh from the body (Dynamesh or ZRemesher) and sculpt until I get the desired final look. Of course, I try to use some references to help me in case the concept doesn’t show enough direction, and I need to redesign props from scratch—such was the case with the Blacksmith’s side purse and back cloth. For hard surface objects that really aren’t organic shapes, I use some basic polygon modeling. In ZBrush, I like to use the ZModeler brush along with ZRemesher, which helps a lot with polygon modeling in general and creates a good base mesh to continue sculpting or modeling, like I did on the boot plate metal and buckles.
In ZBrush, I use the Transpose brush to move/rotate/scale and pose all the elements on the character by hand, which are then separated by Subtools in ZBrush (different polygroups for selecting different elemental groups). At the end of the day, it’s easy to mask the parts and move things around or try new element ideas. It’s also nothing special, one just needs patience and care to make things look good!
In high-poly, for high frequency details such as fabrics, line stitches, and so forth, I add or enhance later on in the texturing phase. I like to sculpt some high frequency details or use some alphas maps to guide me while sculpting stones/rocks and wood. For skin, I use specific brushes and place by hand. I always try to find a good balance between the levels of detail and areas of rest for the final viewer’s eyes.
Consequently, when I sculpt details, I also imagine what type of materials and colors this entails, which helps me understand when the details are “just right.” Sometimes, previous experience guides me. Other times, when I’m not sure about a certain level of detail, I perform a quick test in real-time with materials in Substance Painter to demonstrate if that level of detail will work before I invest time later on into a low-poly. All of this helps me understand when I should stop or add more detail to my high-poly as well as help me recognize how it will translate to my low-poly.
Buckles and Shoes
For the metal buckles, I modeled a base mesh with the ZModeler brush inside ZBrush. Then, I hand sculpted these ornamental buckles from scratch, using my imagination for the design—no alphas here!
I chose the theme of “flames” and let my imagination go wild. Sticking with the idea of “flames,” I incorporated certain shapes and heightened symmetry to foster a cohesive pattern with the character. In ZBrush, I like to use the Dam Standard brush and the Orb Cracks brush (thanks Michael Vicente!). Below is a video timelapse example of how I approach sculpting ornaments on metal from scratch. This video is from another project I did some time ago called The Warchief.
Timelapse of me detailing 3D ornaments
For elements I want to be eye catching, like the buckles and shoes, I simply make the UV space of those elements in the low-poly a bit bigger in comparison with other UV shells, ensuring I get the best resolution detail as possible on the maps for those specific parts.
In the case of the buckles, I needed to increase the UV space resolution for that to achieve the details on the end. I always think and plan things ahead with low-poly while I’m doing the high-poly, which helps me foresee potential troubles or extra challenges I might encounter during production. Sometimes, when I don’t really know if something will work, I run a quick test of bakes from the high-poly to low-poly. This helps me grasp how much UV space resolution would be required to achieve my desired level of detail for the final viewer. I also test with some different texture maps resolutions, such as 1k, 2k, and 4k resolution maps.
By performing those little, smart tests before hand, I become confident moving forward that the level of detail will look good enough for the end result, or I come to terms with letting go of an idea and become content working within the restraints of certain technical limitations, such as texture resolution, UV space, or the number of workable UV sets. And at the end of the day, some high frequency details can be improved later during the texturing phase.
Inside ZBrush, I created a base mesh from Dynamesh and began sculpting the overall proportions of the head. My main focus was to achieve some likeness with Tatiana’s concept, so I ended up using several references of female heads/faces that had similar features to the character in Tatiana’s concept. These references helped me nail the facial features, like the eyes, head shape/silhouette, ears, and mouth, of my model. But, I don’t add high frequency details in this sketch stage. I add just enough to have well-defined, main shapes that “sell the idea” of the character.
After that, I’m content with the overall face/head and do some retopology for the final, low-poly head and reuse lost details from the old mesh and finish sculpting on my new mesh.
For the hair, in the sketch stage of the high-poly, I used Dynamesh to create a block out of the main shape. The blockout of the hair helps me have a better feeling of the character’s hair style based on the concept.
The low poly hair is the last thing I work on for real-time characters. In a nutshell, the following is what my workflow looks like.
I sculpted the hair sketch for reference, made a few hair cards with ZBrush, generated a UV for it, created a basic alpha map, duplicated UV mesh hair cards, and started to populate by hand to fill gaps, imbue volume, and establish flows. Also, I refined the hair with new alpha variations and added new hair cards as needed to finalize the look.
Then, I sent my work to Marmoset to check how it looked in real-time. This is a back and forth process that involves creating by layers until everything is built. And I would have provided more detail to the hair, but I needed to keep the polycount under 20k tris as the polycount limit for the whole character needed to be under 100k in total. Further, I used some images of neat and messy hairstyles to achieve a realistic, neat-yet-messy hairdo. As with other aspects of 3D modeling, I have much to practice and improve on when it comes to hair.
I begin by baking the main texture maps. I like to use ZBrush + Substance Painter as my workflow—it’s a series of steps I learned from Michael Pavlovich. Overall, it’s a fairly quick, simple, and visible workflow, meaning tweaking anything during this phase is quite easy!
Here are all the main maps I baked to help later on with texturing.
All of the tattoos are hand painted and based off Tatiana’s concept. I simply created a quick polypaint sketch inside ZBrush and from that, I later defined the symbols based on the concept and created a black and white color “mask” for later use. After baking a texture for this as a base color, I created a “color mask,” which I used inside Photoshop to mask another color layer to create the tattoo on top of her skin. An alternative approach would have been to paint the tattoo inside Substance Painter or 3D-Coat and export that as a diffuse or mask to use in Photoshop (one can stick to any 3D paint tool, too). In Photoshop, I like to do layers as much as possible so it’s easier to edit or tweak things later in the workflow. For the forehead tattoo, I painted a mask directly inside Photoshop and used the same approach to create the compositions of the tattoos on her arms.
I start by creating a base color and bake the base color map for texturing. Inside ZBrush, I also create a color pallet based on the concept so I can easily pick the same color while poly painting the high-poly within ZBrush. This make my work more consistent and efficient!
Along with the concept, I always envision a character’s history as well as the environments and situations he or she typically encounters throughout life. This sort of thinking ahead (or should I say looking back?) influences my decision of materials for a project. Will a material be new and shiny or old and rusty? Handmade or machine made?
I like using Substance Painter to manage PBR and complex texturing layers. Before I import the model inside Substance Painter, I like to offset position (or explode) the mesh to texturing because it helps me isolate better while painting. I use Substance Painter to create most of my Roughness, Metalness, and Normal high frequency details (like fabrics, leathers, line stitches). Furthermore, I use Substance Painter to enhance the base color by adding dirt, wearing and damages, and sometimes, a bit of color correction and paint-overs to fix the texture issues of bakes. After that, I export the main maps (Albedo/Diffuse, Roughness, Metalness, and Normal Tangent Space).
All of the main maps for shading work with PBR later on inside Marmoset Toolbag. But, I like to go one step further with texturing! I bring those maps to Photoshop and continue my texturing there, enhancing the Diffuse/Albedo, Roughness, and Metalness to bring a more dynamic look to the surface. I like to add a bit of AO map on top of my Diffuse to flesh out color variation and add a bit of Cavity map and Curvature as Overlay to help pop some dirt details in some areas.
I like to use one .PSD file for all the maps as it’s easier and quicker to organize, manage, and edit all of the maps in this fashion—these maps are then sent to Marmoset for real-time updates. This back and forth process happens a few time between Substance Painter, Photoshop, and Marmoset Toolbag until I’m happy with the result!
Inside Marmoset, I start by applying the shaders that when done right with PBR texturing creates an almost “plug and play” setup. Consequently, I just need to implement a few tweaks to make the shader more fabric-like (Microfiber as Diffusion on the shader) or SSS as Diffusion on the shader for skin. I can tweak the Fresnel for metals and lathers and change the hair shader to be an anisotropic reflection to achieve better hair highlights. After, I can also tweak the Metalness and Roughness maps to start matching the materials. And as always, I try to use reference images to make my job easier!
For the texturing of the skin, I did a polypaint inside ZBrush and baked it high-poly to low-poly from the base color map. After, I enhanced the texturing with Photoshop for a final Albedo/Diffuse map.
I also created the rough quality of the skin with Photoshop and added a bit of cavity and convexity from curvature maps to help break the highlights and paint over the area with black and white. This led to less roughness/glossiness in some parts of the face.
For the skin shader, I tried to use something similar to the workflow shown in this video from the Marmoset Toolbag team.
More final texture maps and breakdowns of UV sets.
I like to pose my models inside ZBrush using Transpose Master, masking some areas and then moving/tweaking the pose/silhouette until it’s just right. A pose brings personality to the character and reinforces the driving concept of the project. I always aim for an interesting stance and a good silhouette, making sure that the pose works from every possible angle available to a final viewer.
Light Setup and Render
Inside Marmoset Toolbag, I lit the scene and character starting with a simple three-point light setup workflow to which I added lights and messed around with the setup when needed—nothing all too special here! For reference, I suggest 80.lv readers find some three-point light setups around the internet, which will guide artists on the right path while letting them tweak the setups if need be.
After, I added a type of “infinite floor studio” to the character to create a better composition for the project. I then captured some images of the Blacksmith for the next step of my production process.
I exported those images from Marmoset Toolbag to Photoshop (one can use any 2D image editor) to make the final images. I used the same logic shown above to create other image shots. Below are some of final images I created for this project!
Thanks 80.lv for taking the time (I know it was long!) to read about my work and creative process. I hope you all enjoyed it and picked up a thing or two by learning about my Blacksmith character!