Character Production for UE4: The Warrior of Light

Alexander Biryukov did a detailed breakdown of his recent epic character Svetlana The Warrior of Light made with ZBrush, Maya, Substance Painter, and UE4.

Alexander Biryukov did a detailed breakdown of his recent epic character Svetlana The Warrior of Light made with ZBrushMayaSubstance Painter, and rendered in UE4.

Introduction

Hello, my name is Alexander Biryukov and  I am a 3D artist. Right now I am working at Sperasoft Studio in Saint-Petersburg for about 5 years. I was lucky to participate in a couple of great projects: Battlecry, Mass Effect Andromeda, Anthem and Overkill’s The Walking Dead.

I was born in a small town in Ukraine and studied 3d by myself using tutorials from the internet and watching more experienced artists’ WIP threads on forums and contests. But the progress was slow and I was very happy when Sperasoft reviewed my simple portfolio and asked me to relocate to their office. I learned a lot during the real production and from my colleagues.

Right now, I want to tell you about my recent project Svetlana The Warrior of Light, how she was created from a simple sketch to the final picture rendered in Unreal Engine.

Svetlana The Warrior of Light

Concept

The project started as an artwork for the contest. The theme of the contest was the battle of the Light versus Dark and each participant should have chosen the side.

My first choice was, of course, the dark side. I wanted to create a demoness with horns, lecherous outfit and dangerous temperament. I did a couple of sketches and everything was wrong, she was too generic. So I decided to play with contrast, switch the side and create a good demoness in a white costume. I did a couple more sketches, liked the white outfit and the lantern but the demoness theme didn’t match. I finally decided to focus on the light side and an idea was born to make the “Enchantress of Chains”. Here are some references:

And the concept:

I collected more references. The idea was settled and I started to work. I wanted to give her some superhero proportions. I made a quick head sculpt and decided that the whole body should be around 9 or 8.5 heads. When I designed her outfit I always tried to balance details: some elements should have lots of small details and the other ones should be comparatively empty in order to let the eyes rest. The details also shouldn’t distract the viewer from the character’s face.

High Poly

I mostly use default brushes in ZBrush: Flatten, Move, Clay Buildup, Polish, and Dam_stadnart.

When I worked on the crown, I thought it might be a cool idea to represent the light in armor too, and my inspiration was the Statue of Liberty. I created the low poly meshes which should look like light rays and dynameshed them.

For each metal parts, I did retopology in Maya to make it look crisper and less wobbly. When I do sculpts I always try to represent the material in sculpting. When metal sculpts look like metal and fabric sculpts look like fabric even without textures, that helps to make the textures much easier.

I liked the spikes on the crown but they did not fit the overall armor design, so I decided to put the spikes all over the armor. For hair, I just did a quick placeholder.

With lots of metal spikes, the name of the character was changed to the current one. The name Svetlana in the Russian language means “light” so I thought it would be funny. I think it is pretty important to give the characters names and simple stories even if you don’t tell them. This helps to make the design more believable and make the character less generic.

I wanted to give her a weapon which also represented the light and the shape of the old lantern was perfect for this. I created a simple hard surface base mesh in Maya, dropped it in ZBrush, made boolean, dynameshed it, and added more small details.

When I created the primary forms, I moved to the secondary ones. If your primary forms look bad and not interesting, lots of tiny ornaments and scratches will not make your design good. Using dam_standart I made the lines on the armor, then used h_polish and Flatten to bend the form slightly. I wanted to make the metal look less ideal as if it was worn out in a battle. For the border element, I created Insert Mesh and placed it using the curve tool framed by polygroup. I deleted half of the armor because it was hard for my computer to handle this high poly.

Next, I moved to the face. I think the face is the most important and most difficult part of the female character. You can’t add lots of scars or big fangs like in orcs. A woman’s face should be smooth and have soft forms. When I sculpt faces I know that I will be using SSS material, so for the skin, I switch to matcap with wax preview enabled. SSS-material makes some details less visible, and with wax material, I could push some of them and make noticeable. Of course, the best way to test the skin is to place the model into the engine from time to time.

I wanted to create the final scene in Unreal Engine because it is very powerful and can produce a really beautiful picture in real-time. But for the high poly test, I placed it in Marmoset Toolbag.

After that, I did another retopology pass for armor. I wanted to make it more refined and elegant.

When I was happy with overall forms, I moved to the skin pores. I did a quick UV for high poly face and started to project some pore alphas using Spotlight. I did a couple of separate layers with different types of pores and saved them as a texture. In any case, I could get back and fix some areas that I didn’t like. At first, I created a layer in ZBrush, projected the texture map as polypaint, made a mask by intensity, and used Inflate to push pores in or out. Next, I reduced the layer intensity. For the eyelashes and eyebrows, I used XGen.

For me, creating the face of the character is an endless process. I always want to make it better and better. Sometimes it’s hard to stop.

Low Poly

When I moved to retopology, I decimated the whole model, dropped it into Maya, and started to create the low poly version there using Quad Draw. I didn’t impose any polycount restrictions on the model, it just had to have good topology for posing and I wanted to avoid any signs of low poly.

Retopology is a boring and monotonous process and you can think about lots of stuff during it. This is when I decided that every hero needs a proper villain and the Shadows were born.

I planned to create them from the dark materials and make them fly around Svetlana in a dark cave. That’s why they were planned very simple but with a good silhouette and shiny eyes. Emissive eyes would help the viewer to identify the shadows in any dark corner of the cave. The bottom half of the shadow was also planned as some flying ripped fabric. Here’s an original quick sketch of the composition. Svetlana had to be the focus in the picture and the shadows were designed to emphasize it.

During the retopology stage, I did everything except retopology. For example, I started to fix the face again.

This was the final face look and I decided to stop since I might have never finished my project otherwise. It is a huge problem when you work on the big projects: your skills are growing and you start to hate your artwork. But I believe that one finished project is more valuable than ten sketches.

Here is the final high poly.

I also decided to change Svetlana’s enemies. The shadows had to be pure forces of nature and the ripped fabric was something manufactured. So I choose the tentacles instead. I also planned to make the bodies of the shadows from two contrasting materials: one had to be shiny and skin-like and the other one – rough and rock-like. The contrast in materials makes the characters more rich and interesting.

Finally, the retopology was complete. The whole model is about 130k vertices.

At some point, I tried to drop my model into Mixamo to create an auto-rig. This rig didn’t help me in the final composition, but it was really fun to see my character moving.

Let’s move to UV. Svetlana takes two 4k textures for the body, one 4k for the face, one 2k for the lantern, and one 2k for the hair. I decided to use Detail Normal Map, so I could scale down the textures in half if needed.

To bake the normal maps, I used Marmoset Toolbag. It is a great software solution for baking where you can separate each element, bake normals without intersections, and see the results immediately. I had a really dense low poly model, so I didn’t have any problems with the bakes. Also, I did an Ambient Occlusion Map, Curvature map (for skin) and Thickness. These maps help a lot in texturing.

Texturing

The textures were done in Substance Painter. I try to paint textures by hand as rarely as possible. Most of my texture process is working with grunge textures and mask generators. The skin, however, requires a more precise approach. Besides, I always check textures in Unreal Engine from time to time because Painter and Unreal show slightly different pictures.

I created several materials: white rough fabric, white fabric with a large pattern, metal, black shiny fabric, black fabric with a large pattern, and skin. Every good material must have lots of color and roughness variation, and I had some problems with the white and black colors as they are not expressive enough. It’s easy to make the white color material look dirty and the black one has no visible color variations. Luckily, Svetlana is the warrior and fights against an army of shadows in dark caves, so dirt is not a problem for her.

For PBR textures, it is really important to avoid extreme color and value numbers. PBR textures should work well in any type of light. There are some filters in Substance Painter which could help to avoid the wrong values. My metal texture has only 2 parameters, black or white. I try not to use gray metallic values.

Final textures:

Shaders

For shading in Unreal, I used material functions. I am not sure whether it is a good technique for production, but it served my goals very well. I created a couple of them with different detail normal (small skin pores, scratches, fabric pattern, and slight damage and surface imperfections).

Graph close-ups:

Next, I built a layered material and an RGB mask in Substance Painter. Each element with Red, Green, and Blue masks will have different types of detail normals.

Detail Normal helped to push the quality of my materials without using large textures.

1 of 2

Makeup

Another important element of a female character is makeup. If you don’t understand the basic rules of good makeup, you can destroy your beautiful sculpt and good textures. When your girlfriend who doesn’t work in the art industry starts laughing at your model, you’re definitely doing something wrong.

I did a super common rookie mistake: when drawing an eyeliner, a lot of men want to create hard lines all around the eye. The eyes will look better if the transitions are soft. And on the contrary, the lips should have sharp lines. It’s also good to keep the accent either on the eyes or on the lips, but not both. These are the basic rules. Of course, you can break them if you know what you are doing, but at first, I suggest that you stick to these rules. Byt the way, the makeup video tutorials made by beauty bloggers are a good resource for the artist, too.

Hair

For hair, I created some hair clumps using XGen, converted them to polygons and baked on the plane in Marmoset Toolbag. I baked a normal map, AO, opacity, heigh, mesh ID color, and specular. Next, I put them in Substance Painter.

In Unreal Engine, I just used the Base color, Opacity, Height, Root, and ID.

The root map helps to create transitions from roots to the end of the hair, and the grey ID map helps to add some color variation to the hair.

I created a couple of hair clumps and placed them as a pyramid so that from every angle the hair cards didn’t look like a flat plane. Next, I added subdivisions and started to place the cards on the head one by one. At first, I wanted to create a big and complex hairstyle for Svetlana, but I thought there might be problems with posing, so I decided to make the hairstyle simpler.

I created several layers with the hair cards:

  • The first one is scalp that should cover the head.
  • The second is the big hair cards that represent the main form of the hair.
  • The third one has smaller hair cards which follow the second layer but have some noise.
  • The last one is for small and messy hair cards.

The hairtail has three layers. I baked Ambient Occlusion into the vertex color in Maya and I used UE4’s default hair shader which is really powerful.

1 of 2

Pose and Composition

Everything is ready. Let’s start to build the final composition!

I did a quick rig for Svetlana in Maya and made a test pose but it was not dynamic enough. The chain was created very simply, I just used one baked low poly segment and duplicated it along the curve. This method has some disadvantages though, and one of them is the lack of gravity. I think the next time I will use some kind of simulation.

1 of 2

I knew that the whole scene had to take place in a dark cave, so I quickly built a couple of rocks and created a material with a displacement map for them. The map was adjusted to the world position of the object, so if I placed two rocks near each other they would look different. It helped me to create a rich environment without wasting time.

The first pass of composition looked like this:

I liked how the elements were placed, but I felt that the picture lacked depth.

For the light, I used only dynamic light sources and discovered that I needed to switch off the possibility to use static light. When it is switched on and you have a scene with dynamic lights, Unreal Engine produced weird artifacts.

When I changed the camera lens and the light, the next pass looked like this:

Still, there was not enough depth in the final composition.

I open a screenshot in Photoshop, adjusted brightness, contrast and created LUT for the post-process volume in Unreal.

The final picture was rendered using NVIDIA Ansel plugin for Unreal as the default “high-resolution screenshot” approach could have crashed my Unreal scene. NVIDIA Ansel allows you to capture super high-resolution screenshots. This method has one disadvantage: with it, it is hard to control the depth of field. I hope I’ll figure out how to resolve this issue later.

Conclusion

The project was challenging, especially when I had to combine the work at the office, personal life, and this character. At the same time, I learned a lot of things. I recommend everyone trying to do something similar because it will push your skills further in all aspects of 3D art, both artistic and technical. I want to say thanks to all my friends and everyone who gave me any feedback. Thank you.

Thanks for reading!

Alexander Biryukov, 3D Artist

Interview conducted by Kirill Tokarev

Join discussion

Comments 0

    You might also like

    We need your consent

    We use cookies on this website to make your browsing experience better. By using the site you agree to our use of cookies.Learn more