Bao Ngoc Vu: Building Real-Time Characters

3d artist Bao Ngoc Vu from Ninja Theory gave a complete how-to on building high-profile characters for real-time.

3d artist Bao Ngoc Vu from Ninja Theory gave a complete how-to on building high-profile characters for real-time. He shared some tips and tricks, discussed ways of scaling down the polygon count and rendering the final model in UE4. Lots of good advice here.

bao-ngoc-vu-inengine-1

Introduction

My Name is Bao Ngoc Vu and I am a Character Artist working at Ninja Theory. Before Ninja Theory I worked as a Character Artist at Yager (Spec Ops the Line, Dreadnought). In my free time I do a lot of freelance work or just personal projects if circumstances allow, so I am constantly trying to push myself doing Character Art.

In this article I want to share some tips and tricks on building real time characters based on this character example. There are also certain aspects I want to talk about which I think are really helpful to speed up your workflow. Hopefully after reading this you will be able to build and handle a lot more work.

Since this interview is mainly about my latest contribution to the “our Ghost Of War” project I want to give you guys a breakdown of this Character. Hopefully this might be useful to all the people who are interested in creating real time Characters (in this case for the Unreal Engine 4).

First of all you need to know what you need and then what you want:

  • If you work on a character it is really important to know what you need to do.
  • What kind of character are you doing?
  • For what purpose are you building this character?
  • Is it for a game project?
  • If yes then what are the game’s limitations?
  • Do you see the whole character?
  • What is the art style?
  • Do you feel confident working with the given art style examples?
  • How important is the character you going to build?
  • Is it only a high res model which is needed or do you need to do the textures as well?

It will be less stressful if you can answer these questions and the planning is going to be a lot easier.

So once you sort out what you need to do you can start thinking on what aspects you want to push yourself. For instance, I am also really interested in the character presentation aspects. So for this project I knew I am going to build the character with the purpose of lighting him as well, where I have full control. Of course the things you want to do should be appropria te. So keep that in mind before you go all out trying out new things.

Be smart on doing things

I try to avoid doing certain things over and over again. This will not only consume you a lot of time but eventually you get less motivated. So let’s talk about how I usually build my character heads. For all my heads I use a base mesh which I created the UVs already in 3ds Max. I split the head into several polygroups in Zbrush. This is really important since you can easily work on specific areas on the face without breaking too much.

(Base mesh Polygrouped)

2

In Zbrush I use the move tool for the first two subdivision levels. In this early stage you will set up the base characteristics of the face. I always make sure that I move the eyelid accordingly so when I get to a higher subdivision level I do not have to sculpt the eyelid and try to carve in that fold because it is already modeled.

3

(Eyes Polygroup: See how the red and the blue polygroup define the eyelid?)

(Here is a screenshot with the lowpoly on the left. On the right you see the lowpoly only subdivided and not sculpted on. See how the eyeshape, mouth and nose is defined already? This gives as a perfect base to start sculpting on!)

4

(Same screenshot but with polygroups turned on. The polygroups help you define the proportions and keep your model clean, so make use of it!)

Once I am more or less satisfied with the the overall proportions I move on to a higher subdivision level. It is really important that you only go higher if you are satisfied with the proportions, if you feel that you need to do some changes later on you can always go back to subdivision level 1 or 2.

5

After the sculpting is done I proceed with the polypainting. Usually all I do is to paint a gray scale mask on the face which will be used as a base for my Albedo. Since we are rendering with the Unreal Engine 4, we will make use of the dynamic shader instances. I’ve built myshaders with the purpose that I can change specific parameters on the fly. But i will talk about it more later on.

(Here is screenshot of the model with and without polypainting. As you can see I kept it fairly simple but that is already enough for me to use as a mask)

highpoly_whitebox_14

(Final Head Highpoly)

After this stage everything is prepared and we can proceed with the next steps. Since we created our UVs on our basemesh already we can bake down our polyppaint to our Lowpoly.
I often use the subidivsion level 2 as my final lowpoly. It is at around 7k triangles and I can optimize it if needed.

So in the next step I just export my highest subdivision level model and my 2nd subdivison model as my Lowpoly and then I bake down my maps. (for the head I mostly bake down only the normal map and the polypaint)

For the clothes there is nothing special what I did. I used Marvelous Designer and Zbrush. Since there are amazing documentations regarding the creation of clothing I think I don’t need to elaborate any further on how I did my clothing.

Here is a great article from Madina Chiondi for example and I also recommend you to have a read on this tutorial from Yuri Alexander.

Working in the Unreal Engine 4

I prefer using the Unreal Engine 4 for my renderings. So here I will talk about my lighting setup, tips and tricks on how I usually handle lighting and presentation.
I’ve built a lighting room which is basically just a big box with no openings so no light is coming through. I typically have a staged lighting scene for all my assets.

ScreenShot00020

(Here is a screen showing my whole level in Unreal Engine 4)

Since this image was for promotion purposes only I had our rigger pose me the character which I then imported into the Unreal Engine 4 as a static mesh.
Usually I light my character starting with the face. I try to get the general mood with a key and 2 fill lights and then 2 rim lights. For the lights i mostly use spot lights.

ScreenShot00006

(Lowpoly with lighting setup)

ScreenShot00007

(lowpoly with normal map displayed)

One thing what I noticed working with the Unreal Engine 4 is that sometimes the normal map looks not as desired as you want (faces for characters) So what I often boost the normal strength of my character’s faces.

Here is a comparison with the default normal map and a boosted normal map:

ScreenShot00021

(default normal map strength)

ScreenShot00022

(boosted normal map strength)

ScreenShot00019

(final head posed)

6

Here is how I boost my normal map in the shader.

Basically from here on it is just a back and forth between moving lights and camera position. I also add specific lights just to focus on specific areas.

Here are the indivual lights and combined:

ScreenShot00027

(So in this case I deleted all the dummy lights and started with a top light- top light only)

ScreenShot00028

(Key light only – sometimes I increase the source radius of the key light so you get that shiny spot on the eye)

ScreenShot00027

(Fill light only)

ScreenShot00038

(All lights turned on)

IMG_20160718_222007

(Final Image with post)

Basically this is how I brought this character to life. There are some things you need to take into consideration when you want to do your renderings in Unreal Engine 4. If you are going with a staged lighting like I do then please bear in mind that if you prepare your materials and change too much it might look really off when you are using the same character with the same materials in another level. Make use of saving a viewport position. If you like a certain view in the viewport you can save that position by holding ctrl and press any digit from 1-0. You can easily switch viewport positions really quick by pressing the digits. Once again, know what you need/want and the whole process will be much easier. Take some time to rest as well and you will look at your project with fresh new eyes! Otherwise I hope you will find something useful in this article. Good luck on your projects!

If you have any desire to talk to me here is my email.

Bao Ngoc Vu, Character Artist at Ninja Theory

Interview conducted by Kirill Tokarev

If you want to submit your work and your article to 80.lv, please send it over here (editor[at]80.lv). We’ll contact you right away.

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