Character Production Guide in Real-Time UE4

Character Production Guide in Real-Time UE4

Jared Chavez did a breakdown on his recent personal project, Lankester Merrin, that he created in real-time Unreal Engine, talked about his career path and discussed his approach to colors and hair production. 

Lankester Merrin, The Exorcist

Introduction

My name is Jared Chavez. I am 26 years old and I am currently a 3D character artist for Turtle Rock Studios working on Back 4 Blood. I grew up in Albuquerque, New Mexico. In high school, I was first introduced to 3D modeling, and from the moment I opened Blender, I knew it was the career I wanted to pursue. I attended the University of New Mexico with the hopes of furthering my endeavors in becoming a character artist in the visual effects industry. While at UNM, I was able to gain some of the fundamental knowledge of working in 3D. In my free time, I was constantly watching tutorials and doing personal work to one day break into the industry.  I completed my course work at UNM and felt that my skill set wasn’t industry level yet, so I decided to look into some secondary schools and see what I can find. 

I stumbled across CGMA, where I began to take all of the classes they offered for character artists. During my time at CGMA, I took a class focused on real-time characters, and it was mind-changing having instant feedback unlike what I used to with offline renderers. After graduation, I had a friend that sent me a link for a job in Northrop Grumman as a Multimedia Artist, and not knowing much about it other than it said 3D was involved, so I decided to apply. Soon after, I got a callback and had an interview a few weeks later. The fun thing is one of the managers who interviewed me ended up being the 3D instructor I had at UNM. Luckily he remembered me and liked my 3D work from his class, so I was offered a job.

 While at Northrop, I performed a number of different art-related tasks but managed to make myself one of the go-to 3D artists in the team and thus that became my primary role. During my time at Northrop, I continued to take more CGMA classes and grow my skill set in 3D, and because of Northrop’s need for more environment and prop focused work, I chose to take some of the environment courses that CGMA offered. This led me to Clinton Crumpler’s UE4 modular environments. This was my first time doing environments, so it was a new learning experience but a great one. 

Once I had finished up that course, Clinton reached out to me about this collaboration project he was making called Dekogon. I figured it was a great chance to make some nice AAA quality portfolio pieces, while also getting feedback from someone in the gaming industry. At this point, I had more or less exhausted all the classes CGMA had and I still wasn’t sure if my work was good enough to get into the industry. Luckily, Glauco Longhi had a mentorship starting, and I thought it would be a great learning experience. In that mentorship, he really was able to help push my limits as a character artist with the constant feedback he was providing.  Upon finishing the mentorship, The Artstation Wild West challenge had just begun and I figured it was a great chance to take everything I had learned in CGMA, Dekogon, and doing my mentorship with Glauco, and it would hopefully give me a great character at the end I could put in my portfolio. 

At this point, I was more or less eating breathing and sleeping 3D. My schedule consisted of waking up at 5.30 to go to work and coming home to work on my Wild West character till it was time to head to bed, rinse and repeat. Well, once the contest ended, I was fortunate enough to be awarded the first place. And well, you know that saying most artists throw around “It only takes one good piece”. Well, I’d have to say that is the truth.

Once I won that contest, I had a number of studios reach out about character artist positions. One of those studios being Turtle Rock Studios, who at the time was working on, announced AAA title. So I went through the interview process, and they offered me a position, which I accepted. A few months later, I moved out to Lake Forest, California and started my job with Turtle Rock. So needless to say I had somewhat of a crazy journey getting into the AAA video game industry. It was a lot of hard work and hours, but it was worth it!

Technical Restrictions with Real-time 3D Characters

I think the most prevalent modern day restrictions in games would have to be the number of texture sets and resolution we can use for assets. The game industry is always looking to push the amount of detail we can put in our models and characters. Unfortunately, right at this moment, using things like 4K textures, and a large number of texture sets isn’t viable. We don’t have the power to support it just yet. For current-gen characters, you are most likely using anywhere between 3-6 texture sets depending on the needs of the character. Each texture set is made up of multiple 2K images that are used to drive the properties of your shader. With only being allowed so many texture sets in a character, you can capture a lot of the detail in the model but not necessarily the tiny crisp tertiary details, things like stitching a fabric or micropore detail. 

Fortunately, like most things with video games, there is a solution to fake that detail. The most common practice is using tiling maps to replicate some of the tiny details a 2k map can’t capture. Some common examples of these may be creating the weave of cloth patterns on a shirt or the micro noise over skin that breaks up the light on the surface even more. Since a 2k map is unable to capture those small micro details, the first course of action is creating a relatively small tiling detail patch of the surface detail you want. You can do it in a number of ways depending on what the surface is. For skin, I usually use something like noise or something similar and generate a normal map off of that data. Once,  you have a normal map, you have the ability in most modern engines to tile that info across a specified model using a black and white mask. With this method, you aren’t just limited to a normal map which makes tiling micro maps even more powerful. You have the ability to tile a roughness, AO, or anything in between. With this solution, you are able to emulate that close up micro detail with the limitations of a 2k map. Like anything, this method isn’t a perfect replication of a 1 to 1 normal map with all those details in it but, for the most part, it gets the job done.

Modeling

Of course, first and foremost I just want to say that this character is in no way optimized to run in an AAA setting, some of the techniques aren’t applicable. That being said some of these techniques are fairly common practice. 

So, the inspiration for this project actually started with a conversation with one of my friends at work, his name is Jason Hill. He was actually taking Kris Costa’s fly on the wall class and was developing a highly detailed portrait. So for me, that’s where the original idea started I wanted to create a piece of a similar nature, the only problem was I didn’t wanna use an offline renderer because of the feedback and iteration I can do with real-time rendering. That brought me to the idea of using a pipeline similar to the work Epic did with the Meet Mike project. So with that knowledge now in place, it set my bar and expectations of what I was aiming for in terms of detail I wanted to strive for. 

1 of 3

Now, to get into the approach of how I accomplished those details. The first way I always approach the small details is I like to capture as much of that detail in the sculpt. Because I knew this was gonna be a relatively realistic style character and render, I figured the best and quickest solution would be to use Texture XYZ skin maps. Once my model has all my forms and everything built up and is ready to get the tertiary details, I like to prep my model by going across the surface with a very low-intensity clay brush just to break to surface perfection. Next, I will project down my Texture XYZ maps. During the whole detail process, using layers is a vital tool in my workflow. I store each step so that I can have as much granular control as possible. After my maps are projected in, I add a few variations of noise to break up the surface even more. At this point, the model will have nice detail but unfortunately, the details aren’t integrated into the model. This is the final step I like to take which is going across the model with the standard, dam standard, and inflate brushes and integrate the wrinkles and pore detail to help the model feel more as if they belong.

So in terms of modeling, I try to get as much mileage out of the model as I can.

Texturing

The same methodology applies to texturing. The main logic I try to follow is working from big to small. The same way I work here: from big primary forms to small tertiary forms. I also follow the same practice in sculpting. The initial step I take when texturing is getting color zones down. At this step, I’m not worried about how it looks I’m just trying to get complexity and variation of color that can be seen underneath skin. Following this, I paint an overall skin tone to cover the ski and, to follow it up, I paint reds, browns, yellows, and a number of other colors to help reinforce certain areas of the face where more blood is, or where there happen to be more yellow tones for the bony areas. Next, I get more precise and add all the small details like moles, sun spots, blood vessels, and things of this nature. 

Overall I like to work from big to small when working on projects like this. I check to make sure the model works from the large and work my way down to the small. 

Working on Colors

Yeah, the color is part of every character that I try to take into consideration and really sell a story, an emotion, or look to each piece I do. Usually, once it comes towards the later parts of a project like the texturing phase, I really start to think about what I want the final images to look like. I usually start with some form of reference or piece to key off of. From that point, it becomes somewhat of an iterative process. I usually create a variety of light setups that are all aimed at creating a similar try of feel. From there, I won’t really focus on color till I have a lighting setup that I like. Once I have lights in a place I like, I start adding some color, or temperature to the light. I usually try to use complementary colors as I enjoy the look I get. From that point, I refine the placement of my lights to make sure the things that  I wanna show off are getting the attention I want. 

While I am working on lighting and the color of my lighting, it becomes a back and forth iterative process with my textures and materials. I constantly check if my values are working in my planned renders. Sometimes, I finagle my materials to more unrealistic PBR values to enhance certain aspects of a model. For example, with the glasses for this character, I pushed some of the roughness values and color values to help the glasses draw a little more attention than they had with a more subdued metal.

Working on Accessories and Clothes

I have a number of workflows for clothing and accessories for my characters. Most of the time, I choose my workflow based on the needs of the project. When it comes to clothes, for example, in a production setting, I will more than likely go with a marvelous sim to get a quick result I can start sculpting and refining over. For this project, I took somewhat of a long harder route to get my final result. With this piece, I knew I was going to make a bust, so I used dynamesh to block out the piece of the shirt, collar, and scarf and took these blackouts to Maya to create a clean retopo mesh that I can sculpt over. 

When it comes to accessories, I usually use the second method mentioned. I like to make my models piece by piece and sculpt them in ZBrush. The reason I like to make the model piece by piece is I feel like I tend to get a nicer final looking result that way. 

When it comes to making assets in a production, I like to find a happy medium and go with the option that is going to give me the nicest result in the shortest possible time, so that could range from just staying in ZBrush to make something or maybe just jumping to Maya where I can knock out hard surface a little faster.

Presentation

I think that presenting characters in-game engines is always somewhat of a challenge, and each piece can present its own complexities. Some of those spring up from limitations of being a real-time render, other from the lack of knowledge or the learning of the engine. For me, using engines is always a learning process or an opportunity to learn something new or iron out an oddity.

I think one of the biggest things that I still to this day and always poses some struggle when presenting a character is making sure that everything feels like it belongs. What I mean by this is that a lot of times with real-time characters a mesh-like the eyes or hair can feel like they aren’t grounded to the character. They don’t feel integrated and a part of the model. A lot of this comes from the limitations of real-time rendering. For example, when it came to this project, I did a per strand hair generation in xgen that was converted to strips, and once placed on the head looked good, but didn’t have the grounding to sell it as it belonged to the model. It was missing things like spec reduction of the scalp, or the AO created from the hairs themselves. As stated earlier, a lot of working in real-time engines is a large part of the time faking to get the end result. When I run into situations like this, it mostly comes down to painting it into one of my texture maps. For this project, I used a couple of methods to help it feel like it belonged. The first was I baked out an AO map that converted the scalp and used that to darken the Albedo. I also generated a second AO that had a much smaller Ray distance. This allowed me to generate an AO that acted more as a contact shadow at the hair follicles.  Also, to further ground it. I painted hairs into the texture to help create a more cohesive feel to the model. 

When creating characters, faking things and coming up with creative solutions is a large part of the job. You have to dig deep into your toolset to really create something that can push the bounds of a character. 

Shaders are actually something I struggle with. There are a lot of facets to a shader, and the things that go into them. When it comes to getting a look I’m looking after, I depend pretty heavily on YouTube to help grow my knowledge and find a way to author a shader I need or can use for certain aspects. Luckily, engines like UE4 are pretty well-documented and user-friendly, so creating something that gets the job done can be quite pretty straightforward.

Lastly, I just wanted to say thanks to everyone who checked this character out, and 80 Level for the chance to talk about it! 

Jared Chavez, Character 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