In case you missed it
Study more realistic characters
My name is Kestutis Rinkevicius, and I’m a Senior Character Artist currently working at Playground Games. Before joining the studio, I worked on various games, VFX and commercial projects, - one of my last commissions was character work for the new Total War: Three Kingdoms developed by Creative Assembly.
I've been interested in art and computers since childhood, and video games seemed to be a perfect crossover between those two things. I was fascinated by the idea that you could create entire worlds for people to enjoy and explore. Over the years, I tried a lot of different things from programming and rigging to archviz but, by the process of elimination, I eventually found my path and specialized in Character Art. I’m was born in a very small country, so learning 3D modeling or character art at any kind of university or college was not an option because there were no such courses. As a result, I am completely self-taught - everything I learned was taken from tutorials, forums, and books. At the beginning of my career, I was lucky enough to land my first job at a small outsourcing studio which gave me a chance to work on various projects and quickly learn necessary skills.
Project Queen: Goals
My latest project Queen started with a quick dynamesh sketch from a sphere, but I decided to take it a bit further to learn rendering in Arnold and hair grooming. My goal was to take something from a ZBrush sculpt to a final render while learning new techniques. I usually structure my personal projects around learning something new, it gives a good challenge and keeps me motivated. Another personal goal was to explore and learn a few tools for cinematic art to improve my work - since I am primarily a game character artist, I am more used to the traditional game art workflow. In general, I think it’s very important to keep up to date with the latest tools and software and try out different workflows - this knowledge and experience can be really helpful in the future.
Sculpting the Face
The face is one of the hardest things to do. I wish I could say there is a secret menu in ZBrush with magic tools that help you sculpt a great face, but in fact, it all comes down to practice, practice and more practice. In general, my advice would be to study anatomy, from the underlying skull structure to the muscles and fat pads that make up the face. Don’t focus too much on the little details, pores won’t save your model if the primary shapes are not working. Also, if you’re a digital artist, grab a chunk of clay and try sculpting in a different medium - it really opens up your mind when you lose digital helpers.
In personal projects, I usually start sculpting from a dynamesh sphere. I really like the freedom it gives you - you don't have to worry about anything but the shapes and proportions. In a production environment, you might need to work from existing base meshes, so I find it very useful to start personal work from scratch. It helps to keep my sculpting skills sharp. The only thing I reuse nowadays is a set of eyeballs that are sized and placed correctly. After all the main big shapes and forms are defined with dynamesh, I just use Wrap3 to retarget my existing basemesh onto a new sculpt.
Some advice on facial sculpting:
- Work in real-world scale. For example, an average human eyeball is 23-24mm in diameter, and the typical distance between the centers of the eyes is 62-65mm depending on the person. These values are a very good starting point to make sure you are on the right track early on.
- Find and lock down an image that will be your main reference and use other images to complement it. Different age, makeup, expressions, and many other things influence the final look of the model, and it will be really hard to nail down all the references at the same time.
- I recommend using basic materials in ZBrush instead of matcap materials. Using a basic material allows you to move the light around in ZBrush. Try to match the light with your reference - it will help you to evaluate the forms better and spot any problems in the sculpt.
- Export your sculpt out of ZBrush into Max, Maya, Marmoset, Mudbox or any other software that has a more accurate 3D viewport. ZBrush doesn't have a true 3D camera so seeing the sculpt in a different program is very useful. It will help you make sure the sculpt reads well outside ZBrush.
- Do A/B comparisons with older save files, especially when working on the likeness sculpts. Sometimes, you can get stuck working in a loop - just moving stuff around without making any significant changes. The comparison can be a good sanity check to make sure you are on the right track.
- Utilize ZBrush layers to your advantage. For this project, I sculpted the head symmetrically first and then used layers to add asymmetry, pores, as well as turn the eyes to the side. The face itself didn’t move. To create the pose, I kept the face straight and rotated the body instead. To have the ability to go back and forth, I keyframed the rotation so I could flick through the frames.
For the hair, I used Ornatrix instead of xGen. I must admit I tried xGen first, but after trying both, Ornatrix felt a bit easier to work with as it had a few very cool features xGen doesn’t really have. For example, to create a randomness effect you need to write expressions in xGen, while in Ornatrixm these things are just built into the controls, so it makes the process much more natural and more intuitive. Another good thing about Ornatrix is that the groom is contained in a node in the Maya scene itself, while xGen creates a lot of additional links and sidecar files which often lead to project corruption. It happened a couple of times while I tried xGen for the project and it was one of the reasons that pushed me to look for alternatives.
I am by no means a hair grooming master as I am still learning myself but I can mention a few tricks that helped me in this project:
- First of all, create a clean topology of the head with proper UV map before diving into the final detailing of the model. Having a sculpt with a proper UV gives you the opportunity to iterate on the sculpt while working on the groom.
- Create a dynamesh blockout with the general shape and the flow of the hair and use it as a 3D reference - it will help to plan and place the guides later on.
- For creating actual hair grooms, I detached areas of the face mesh (I call these meshes Scalps). The key thing here is that they must have the same UV as the sculpt mesh. It is possible to have 2 UV sets for the scalps since you don't really need multiple UDIM textures for the masks. You can create the 2nd UV channel and pack everything into one UV map. Ornatrix works great with this setup as it supports multiple UV channels to drive the masks.
- It’s very easy to update the ‘scalp’ meshes with the latest version of the sculpt - all you need to do is use Maya's feature called Transfer Attributes to update the vertex position based on UVs and all the hair work will stay intact. After this step is complete you can hit Delete History and safely remove the updated mesh.
- To improve viewport performance and hairstyling responsiveness, I created the hair in a separate scene that contained only the hair grooms. After that, the hair file was just referenced in the main render scene.
- For painting groom control maps such as density, width, and length, it is possible to use Maya’s built-in painting tools but I prefer Mari, Mudbox or ZBrush because in dedicated painting programs painting feels much more fluid and natural.
- The most difficult part of the groom for me was getting the hair to behave and go under the crown and create the impression of the hair being pushed down and compressed. I ended up using a lot of excess guides to force the hair under the crown - this was one of the frustrating points for me, so in the future, I will look into solving collisions or something like that. Maybe it helps to reduce the number of hair guides required to create this kind of effect.
- For this project, in particular, I used Ornatrix to create fuzz on the fabrics, inside the leather, etc. I find it a good way to compliment the texture and add a good break-up to the silhouette. It is also quite easy to do for all the fabrics as it doesn’t require any intricate guide work - you just need to nail down the length, density, and noise. For the leather bits, I exported the base color of the leather, desaturated the texture, did some Level tweaks in Photoshop to extract the worn-out places, and then used it as a density mask in Ornatrix. That way, the fuzz would only appear on the edges and worn-out parts.
Modeling and Texturing
For creating objects like the crown and the armor, my process looks more or less like this:
I blockout the shape and design in ZBrush with dynamesh. In the blockout stage, I really like to have complete freedom and worry only about the shapes, proportions, and design. The topology and UVs are left for later when the design is complete.
When I am more or less happy with the design, I do a quick retopo pass, but mainly for the armor and other parts that need to have clean edges. For more organic shapes, I just use Zremesher. In production, I wouldn't use Zremesher but for personal projects, I find it a good time-saving shortcut.
The next step is UVs. I won’t go into too many details about this process itself as there are plenty of tutorials out there, but one important thing I always consider is the UV orientation. It is best to keep the UV either horizontal or vertical. Weird arbitrary rotations will make it quite hard to create realistic materials.
To create ornaments and similar things, I create a black and white mask texture with the ornaments I want. Then, I just convert it into a mask and inflate the unmasked part.
After UVs are done, I use folders in ZBrush to group and organize my ZTL file so that each folder contains only the subtools from the same texture set.
I use Multi Map exporter in ZBrush to bake Displacement, Normal, and Ambient Occlusion maps. Since I organized my scene, I can use MergeMaps function and combine the displacement maps of all the subtools that belong to a specific texture set.
My favorite texturing tool is Substance Painter. I usually import Normal and Ambient Occlusion maps, then bake a curvature, and position maps in Painter. This gives me the ability to fully utilize all of Painter's filters and materials. However, ZBrush's Normal map is only used for preview in Substance Painter, I don’t use it for rendering.
Texturing itself is pretty basic: I try to keep it simple and stick to default materials and smart masks that come with Substance Painter. I find them more than enough in most cases. The key here is to manually paint some details as the default masks just look a bit generic.
When it comes to exporting my textures out of Substance Painter, I remove the Normal map I had previously baked in ZBrush so that Painter exports a Normal map with scratches and micro details without the big shapes. I use the default Arnold preset in Painter.
Texture rendering in Arnold is pretty straightforward - you just need to make sure that the textures are loaded in the correct color space. The base color needs to be set to sRGB, and all the other maps such as metalness, roughness, bump, and height need to be set to RAW. A more detailed breakdown can be found here.
For fabric, I used the default materials that come with Substance Painter. 8K texture resolution + fuzz on top was enough to give the sharpness I needed for this project.
To add details, it is possible to use the Heightmap from Painter and combine it with the Displacement map from ZBrush. I used nodes such as plusMinusAverage and BlendColours to create the shading network that adds the details onto the sculpted displacement with the ability to control the overall strength for some fine-tuning.
Facial Detailing and Texturing
For the facial details, I used one of the multi-channel faces from Texturing XYZ and used their wrap technique to get the details. The full guide is available here. I wasn’t happy with the sharpness of the details from the displacement projection, so I identified a few ‘hero’ areas on the face such as the tip of the nose, cheeks, forehead, and lips and made a detailing pass to make things sharper in those specific areas. The face texture itself had 4x8k UDIMs and the face had around 27m polygons. I think that it is more than enough for most cases, but as a final step, I used a tiled noise and added it on top of my sculpted displacement just to add that extra little sharpness.
For the color map, I painted everything from scratch with polypaint in ZBrush. Using photo projections would be much faster and easier but for learning purposes, I wanted to do it from scratch. For getting skin color right, I used the multi-channel diffuse as a reference for the color tones. Most of the color texturing was done straight in ZBrush, plus I used Mari for some color and saturation adjustments.
For specular and roughness, I like to keep things simple. Specular weight has a little bit more variation for different areas of the face like the tip of the nose or the lips but generally, it is very simple noise. The reason for that is that once you have a highly detailed model with pores and micro details, it naturally breaks up the light and makes the specular spread where the model is bumpier. Also, when rendering with Arnold, the light size affects the tightness of the specular. Digital Emily project was my main source of reference when it came to nailing down the specular response of the skin. I highly recommend it for anyone who wants to get into realistic character rendering.
Overall, this was quite a challenging project for me because I studied new things such as Arnold rendering and hairstyling. There were a lot of ups and downs but I learned a lot and I will apply the knowledge to my future artworks. I like to take notes during my projects, especially during those moments where something is not going as planned. After the project is finished, I usually review my notes, then think about the things that went well or need to be improved. This helps me to grow as an artist with each project I undertake. I hope this article has shed light on character art techniques and answered some of your questions.