Constantin Vilsmeier did a breakdown of his project Brave Tiny Infantry: sculpting and detailing in ZBrush, creating vines, setting up fur, and more.
In case you missed it
You might find these articles interesting
My name is Constantin Vilsmeier and I’m a 3D Artist focusing on modeling and texturing with an emphasis on stylized characters and environments. Being surrounded by art during my childhood in Switzerland encouraged me to pursue my passion for painting, which subsequently led me to Animation. The process of bringing a story or concept to life by creating new worlds and characters without any limitations is the main reason why I am fascinated by CGI. I just recently graduated from Gnomon School of VFX with a Certificate in Digital Production and I’m hopefully about to start my career in the 3D industry.
Brave Tiny Infantry
Brave Tiny Infantry: About the Project
This project was done during my last term at Gnomon School of VFX in Miguel Ortega’s mentored Demo Reel class. The goal was to get it done in five weeks. I always wanted to do this original concept from Marta Dettlaff and after watching the new Lion King with my classmates in the theater I felt so inspired and wanted to challenge myself to try to create a photorealistic CG animal. I really loved the dreamy, fantasy atmosphere of the concept and I figured that it would be a great portfolio piece that would showcase a lot of variety and different skillsets combined in one project.
The first step for every project of mine is a reference board. I started off by collecting a lot of references from naked laboratory rats, all different kinds of furry mice up to medieval armor pieces. I build a big library of all different kinds of useful imagery. I also tried to find a lot of macro shots that showed me the anatomy of rats and mice. My goal was though to implement the concept artist's design decisions as close as I could. So by having that in mind, I picked the most relevant ones and limited my references to the following board.
The mouse was sculpted all the way in ZBrush – from the blockout to the final posed mesh. Due to the time pressure, I decided to sculpt the mouse already in a forward-leaning, almost final pose. I knew from the beginning that I had to work fast and efficiently to be able to finish this project in five weeks. I started off with a rough blockout and then gradually refined all the shapes and added the additional details along the way. While sculpting, I always referred to my references but also frequently checked the concept in the see-through mode in ZBrush to stay true to it. I wanted to achieve a realistic look and implement artistic choices given by the artist at the same time.
Once I had the right anatomical proportions of the body, I roughly blocked in all the armor pieces in ZBrush. I didn’t spend a lot of time on the blockout, those shapes are just meant to be stand-ins for the overall proportions. Later, I refined all the shapes in ZBrush and retopologized them in Maya. Some of the props (for example, the Sword and the Spear) were modeled straight in Maya.
After all the shapes were defined and in a good place, I then assembled everything in ZBrush and refined the meshes with additional sculpting detail. I spent quite some time sculpting the aging of the armor pieces. For the shoulder pieces, for example, I created an alpha with some rose patterns I found online, reworked them in Photoshop and applied an overall blur to create a nice transition of the values which is important in order to have the alpha work nicely while dragging it out on a mesh. Make sure that you use the .psd file in ZBrush to have the Alpha work properly. The deformation options in the tool menu come in really handy when you just want to play around to get different looks while sculpting. After dragging out the roses with the focal shift set to –100, I worked with the polish by feature bar to get sharper edges. Then, I went in again and added a more hand-made kind of look.
As I mentioned before the metal parts were all sculpted in ZBrush. All the small details like damage and wear were sculpted by hand. I worked a lot with the Trim and Mallet Fast Brushes to achieve a hand-made, hammered look of the metal.
Working with Transpose Master
After achieving a good level of detail in the sculpt, I posed the mouse with the Transpose Master in ZBrush according to the concept. Once I was done with the pose, I made sure that I hit the Layer button in the Transpose Master menu to later on be able to go back to work in symmetry mode in case I wanted to refine or re-sculpt certain parts. It automatically creates Layers for every Subtool which comes in very useful. By simply switching to 0 in the layer menu, I can sculpt in symmetry mode again. Changing it back to 1 re-poses the Subtool with the new added sculpting information. But you need to be careful because the file size increases drastically.
After finalizing the UVs, I transferred the meshes from ZBrush to Substance Painter and started working on the textures. When texturing in Substance Painter, I work with multiple layers, different masks as well as blending modes to create complexity. In this example, I created a standard shiny metal as a ground base. The next layer is a heavy wear metal with various stains elements. I then applied a mask and hand-painted scratches or other kinds of damage, revealing the underlying shiny metal. This process went on until I achieved a complex-looking metal.
I finalized the textures with a moss layer. For that step, I imported a moss texture and created my own customized material in Substance Painter. I then repeated the same process, by masking out and revealing the moss. I started off with the mask generator and applied a basic dirt mask. From this starting point, it is important to hand-paint additional details on the mask. Otherwise, it will look too procedural and not complex enough.
Flowers & Vines
For the Clematis Flower, I started by blocking out a leaf shape of the flower in Maya. Then, I imported the leaf mesh to ZBrush and sculpted the details. Once the sculpt was done, I resized the document size to 2K resolution in order to be able to extract the maps I needed for texturing. For the opacity map, I changed the background range to a black solid color and applied a white flat color shader to the mesh. Hit the Grab Doc button to extract the texture. After that, I extracted a displacement map and a normal map from the MultiMapExporter. Then, I exported a decimated mesh version of the flower and textured everything in Mari using the Projection method and some additional color touch-ups. Once I had all the textures ready, I created a look-development scene in Maya with a basic light-rig and made sure everything was working fine. I set up the shader and used the double-sided material to get translucency.
I did the same procedure for the vine leaves as well. For the vines, I used SpeedTree to generate two different branch variations of the Ivy. When I added the textures in SpeedTree, I made sure that I had different color variations enabled, so the Alembic export had four different leaf variations embedded.
After finishing all the steps in SpeedTree, I imported the Alembic export into my look-development scene in Maya, shaded and placed them on the helmet and the spear. I also used some other leaves and small yellow flowers that I had in my texture library and placed them to add more complexity.
My grooming process started first with the base texture of the mouse. I did the whole paint job in Mari using a random photo of a grey mouse and projection-painting it onto the mesh. I just did a fast and dirty job, because, in the end, I used the texture to drive the color information for the hair. I knew it wouldn’t be visible anyway. I created another texture which was basically pink skin as seen in my reference photos. For that, I used a seamless skin texture and the Tri-Planar Projection method to get a solid starting point.
Now back to grooming. Once I established the textures, I started with the XGen process in Maya. First, I imported the low-poly mesh into Maya and started off with placing curves that later turned into guide curves to define the flow of the fur. This process is crucial and takes a lot of time, but the more time you spend on this step the easier it will be along the way. The more guide curves the better and make sure that they are on the surface of the mesh. Also, be aware of where the starting point of the curve is. It is marked with a square. This is important because it represents the follicle of the hair strand, so if you don’t have the right curve direction it will not work properly in XGen and give you errors.
I worked with multiple descriptions in XGen Interactive Grooming to get a complex-looking fur. I began with a hair description, increased the density a bit, adjusted the width of the hair and straight from the beginning plugged in the curve guides that I created earlier. By doing that, I could easily see if there were some areas that didn’t work with the curves. Having the dynamic curve function on is key to adjust the curve guides and see the result interactively.
I then applied a density mask, basic noise and clump effects to the description. Working with XGen takes some time and operating many effect iterations is key to achieve a complex look. When it comes to clumping, I normally first apply a big clump layer and then create another one with smaller clumps. I repeat this step until I achieve the right look. At the very end, I increased the hair density to a high value. For fuzzy longer hair strands, I created another description. I used the same guides and made the hair a bit longer with more noise. The same principles were repeated on all the other body parts.
For the fur shading, I used the new V-Ray Next Hair Material. I already knew the shader but if you’re new to it, I would suggest playing around with the different settings first to really understand what all the sliders do. I highly recommend checking out the Chaosgroup documentation for more information about the shader:
I plugged the diffuse texture into the shader and blended it with the other settings. I also found the randomization sliders very helpful. I wanted to achieve a messy wild look for the fur, so I played around with the random gray hair density and melanin slider in order to get some more variations here and there.
Speaking of the background, I wasn’t sure what I wanted to do at first. I couldn’t decide if I wanted to go for a “realistic” look where all the plants were huge compared to the mouse or if I should go for a fictional look where the mouse is just big. I decided to go for the second one because I felt like the mouse in the armor has a fantastical feel, and therefore its size could just as well be fictional.
For the background, I used the Quixel Megascans library to get a lot of variety in the grass and the surrounding. I first created an empty look-development scene with a basic light-rig (Dome Light with HDRI, Key Light and Rim Light) and assembled all the assets that I wanted to use. I shaded everything until I got the right look and worked with the V-Ray double-sided material for most of the foliage. There, you have the chance to plug in a translucency map which comes in very handy for leaves. Normally, I use the remap HSV node to get a slightly different color for the translucency and plug that into the translucency map slot. But some assets from Megascans already come with a specific translucency map. From there, I used MASH with its Instance Option to create and scatter complex grass elements. I also did that for all the other objects such as rocks and small debris. For composition purposes, I created a Shotcam with the right focal length and kept adding rocks, clover leaves, and other plants in the foreground to add more depth and complexity to the scene. I did the same procedure for the background trees and hills. I applied the Megascans textures to the assets, shaded them and added moss on top of it with MASH. I used a black and white mask to scatter the moss in the right place.
For the lighting, I wanted to achieve a golden hour look with high contrast. I started with an HDRI Dome Light to fill in the scene and created a Key Light with the right intensity and temperature to simulate the sun. I then rotated around the mouse and looked for the right position of the light. It took me quite some time to achieve the right lighting and I also had to do it in a scene without any shaders active, just a grey Lambert, because the file got super heavy with MASH and XGen. It was just hard to get instant feedback in IPR mode. Additionally, I placed some gobos in front of the light - Gobos are basically black and white maps that can add complexity to your lighting.
Overall, it was very challenging for me to tackle all these different production aspects in 5 weeks. I had to cut some steps because I just didn’t have the time to work for another day or two on the sculpt or add more detail to the textures. But having the time pressure in mind made me work efficiently and fast. I’m just the kind of guy who needs a deadline in order to stay focused and work hard towards a finish line.
I also wanted to thank my classmates and Miguel Ortega. Overall, Gnomon has a creative and productive atmosphere, we all try to help each other out and give constructive feedback along the way and I’m very thankful to have had this experience.
I hope you enjoyed the article, learned something new and most of all - found some inspiration for your next project.
Thanks for reading!