David Kwahk explains how studying kinesiology can help you to become a good 3D Character Artist and discusses the process of creating the intense scene with the little kid and hungry hyenas.
In case you missed it
You may find these articles interesting
My name is David Kwahk and I am currently studying at Gnomon School of Visual Effects in the 3D Generalist track. Before Gnomon I was at UCLA studying kinesiology. Although I hated studying the subject, it gave me a general understanding of human anatomy which came in handy for character modeling. I was one of those kids that were always drawing, getting into 2D animation software even such as Pivot Animator and EasyToon in middle school, but art was never something I really considered as a career.
It was during my quarter-life crisis at UCLA when a friend of mine from high school said, "you were always the art kid at school, why not try and pursue art?" After asking around and doing some research, I found Gnomon. I went for a school tour, and I remember waiting for an admissions counselor in their waiting lounge. They had a huge TV playing the student reel on repeat, and I could not believe what I was seeing. The tour only confirmed that this was the school I had to go to no matter what.
Getting into Character Art
As a kid, I was really into dinosaurs, reptiles, anime, and games such as Pokemon and MapleStory. All these themes were constantly on my mind and had me drawing a bunch of dragons, monsters, ninjas, warriors, etc. You would never know from looking at me, but I also got really interested in fitness in high school, which is why I had decided to pursue kinesiology. I was thinking a lot about how muscles work, how they are shaped, and where they intertwine before I even knew what character modeling was, I started to find the human figure really fascinating.
I think all these interests naturally made me gravitate towards character and creature art more than anything else. I first saw Xiaoyu Huang's concept on ArtStation when I was just getting started with 3D. It is such a powerful image, and I loved how the drama was not portrayed with over-the-top lighting or a super dynamic camera angle or composition, the subject did all the talking. At the time I did not think I would ever do anything with it, but when the time came to pick a piece to do for my demo reel class after a couple of years, that artwork just popped into my head.
Concept by Xiaoyu Huang
Creating Kid and the Hyenas
My process for the kid was a pretty standard character workflow. I started off with a sphere in ZBrush, used DynaMesh to build up his proportions, retopologize and UV him in Maya, and finished off the details in ZBrush and Mudbox. I like to retopologize my models a bit earlier in the process and smooth out the topology later if I need to. Since I knew this was for a still render, I used Mixamo for a quick rig and posed the kid very early on to help me visualize the scene better.
Of course, reference is key for any project. Having two monitors is great, but as trivial as it sounds, having references on one screen and software on the other gets really tiresome over time. PureRef lets me keep the reference right next to my model with its 'always on top' feature. I make sure I have a good amount of reference for every part of the body, the dirt I would later add to the kid, relative size compared to an adult, etc. It is easy to lose yourself in a sea of images, so it is important to keep your reference file organized.
No matter how much you think you know a subject, there are always so many different variations between people in real life even though the general anatomy might be the same. I believe that those little nuances are the difference between something looking real and fake, and it is really hard to achieve that without looking at references. With each image I reference, I am constantly looking out for interesting shapes to pull out and integrate into my models. This is something that my mentor Tran Ma really emphasized, and applying that to my work helped me improve a lot in a short amount of time.
The kid was definitely challenging, but it was familiar, as I had done a couple of characters prior to that and was pretty comfortable with the workflow. The hyenas were a totally different story. I had never done a groom of this scale before, so I wanted to save as much time as possible for that since I could not really gauge how long it would take me. As with the kid's body, I knew any details I put on the hyena sculpt would be completely obscured by the fur, besides areas like the nose, eyes, and mouth. So I made sure I would stop with the modeling once the anatomy and proportions were in place and move on instead of noodling around and adding needless detail, like small skin folds and stretching. I did have to end up adding some more detail on the face to get some variation through the fur.
Finding good anatomy references for the hyenas was surprisingly difficult, and I had to resort to using dog and big cat anatomy and somewhat merging the two to get something believable. The groom was done in XGen Legacy, just good old noise, cut, and clump modifiers, a bunch of guides, and a lot of masks. I feel the hyena groom is the weakest part of the whole piece but this is as good as I could get it with the time I had but is definitely something I want to revisit in the future.
Even though you do not see much of the gun, it was really fun to work on. The gun I referenced was a South African Musgrave 9mm pistol. I used Substance Painter to grunge it up, and really tried to tell a story with how I textured it. When someone drops this gun, how and where would it usually land? Has this gun been passed down from generation to generation, or is it something that the kid found somewhere and picked up? Would the amount of sweat from the owners' hands have stained the handle over the years? Where would people usually place their finger and why? I also tried to 'sculpt' in Substance through the Height Map to give it some seams as I saw in the reference, even though it is subtle I think it did break up the silhouette and made it look more authentic.
In terms of character texturing, I like to do most of my work in Mari and finish off any extra passes (in this case, a dirt pass) in Substance Painter. I grabbed a tileable skin texture and adjusted the individual RGB channel levels in Photoshop to match the Albedo Map in the Multichannel Face #42 pack from Texturing.xyz. I Triplanar project that new tileable map onto my model in Mari. Then I use a bunch of Mari's procedural Noise nodes (Cloud is my personal favorite) as masks with color lookup, HSV, and Level nodes to really quickly give the Albedo some variance and breakup. After that, I start painting masks for individual areas like the lips, eyes, palms, etc., and adjust those with the same three nodes.
My texture workflow (especially in Mari) is really simple: color lookup, HSV, and levels nodes along with a bunch of masks is pretty much 95% of it. I also like to take my high-poly model into Substance and bake out AO, Curvature, and Thickness maps to also use as masks in Mari, along with a Cavity map in ZBrush. I do not often like to paint directly on my model with a Mari brush, instead, I have a collection of alphas that I use to project paint. This tends to give me a lot of natural, organic breakup.
I start my Displacement Map the exact same way, with a tileable that I Triplanar project. I then use Texturing.xyz maps to projection paint onto the model. Once I am done with the displacement, I like to take the green channel and overlay it lightly onto my Albedo Map, which makes the pores pop up. Tran also helped me see that black skin tends to have a coverage of small light bumps, especially around the face and neck. To achieve that, I just used a tileable Spotty Map that I had, tiled it onto the model, and used it as a mask, for both the Displacement and the Albedo.
I also like to go into lookdev pretty early on as things look one way in ZBrush, another way in Mari, but what really matters is what it looks like in the render package. Subsurface scattering washes out a lot of detail, both in the Sculpt and the Albedo, so even if I think my map looks solid in Mari, I often see that it needs to be pushed further once I do a test render with SSS. I kept going back and forth between texturing, lookdev, and sculpting until the very end. One method for the Roughness Map I learned from Tran's Texturing and Shading 4 class at Gnomon is to render the model in intervals of 0.05 values in the roughness parameter, pick out areas that look good in certain values and paint those values in Mari.
For the specular, I just inverted the Roughness Map and made a few adjustments to the values. I then also overlay the Displacement Map over both maps so that the pores and wrinkles are rougher and less glossy. The dirt pass was pretty simple: I imported the Albedo Map from Mari into Substance Painter and started painting the dirt in a separate layer, using Painter's Grunge maps as a base and hand painting certain areas and getting rid of seams. I exported the dirt mask out with the Albedo and plugged that into V-Ray Layered Texture nodes for the roughness, spec, and SSS parameters in my shader. I have the original "clean" maps in the bottom layer, and the dirt mask in the top layer with very low spec and SSS values, and high roughness value. I did it this way instead of just applying the dirt pass to the actual maps because it is easier to control directly in Maya instead of having to go back and forth between software.
For the hyenas it is generally the same procedure, just much simpler. I pretty much just ended it with some procedural noise in the maps (except for the face) since I knew most of the body was going to be covered with fur. The fur Albedo was painted in Mudbox, which I connected to the dye color, primary, secondary, and transmission tint parameters in the VRayHairNextMtl. I used Mudbox for the fur since I find dealing with Ptex maps a lot easier in Mudbox as opposed to Mari.
The Final Touches
What's great about working off a concept is that the composition has already been set up for you, you just have to match it. I just imported the original concept in as an image plane in Maya and oriented everything around to match the painting as closely as I could. The concept looked like the main light source was coming from the back, so I put two VRayLightSpheres close to the back wall. This also cast a shadow over the kid from the hyenas, which was a cool touch. I also have an HDRI from HDRI Haven at a very low intensity.
Since your render never looks as good as you want straight out of Maya, I rendered the image out as an EXR with a bunch of render passes and took it to NukeX. The render looks really flat and two-dimensional because I did not render with any fog, and everything is just as sharp as everything else. So in Comp, I used my Z-depth pass to really brighten up the background and add some variety in value, especially around the hyenas' legs to fake depth. I also added a really subtle defocus and fog to the background and foreground so the eye would stay more on the kid and hyenas.
I learned a lot of things from Miguel Ortega's Look Development class about compositing, and there are two tips I now use for every comp: the first is to very slightly warm up the shadows and cool the highlights, and the second is to add a Soften node to anything CG to get rid of that 'CG sharpness' and make it look more real. I also added the hyena drool by masking out a photo of a black dog drooling. In the end, I added a Grain node and a subtle vignette and did a final grade to give the image that yellow tint that the original concept has.
All in all, this was a pretty intense project, mostly because of the hyenas, since grooming is not something I have much experience in. I think getting used to jumping back and forth between modeling, texturing, and lookdev is really important. You should constantly be doing test renders to see where your model and textures are lacking and adjust them accordingly. I cannot count how many times I thought my model looked decent in ZBrush only to see a soft subsurface-y blob in the render. Honestly, going back and forth between software is pretty tedious, but it is totally worth it in the end.
Also, finding people to give you feedback is crucial. All of my work would look completely different had I decided to tackle them all completely alone, and not in a good way. Texturing.xyz has a lot of great tutorials written by amazing artists that really go in-depth about this whole process. The FlippedNormals YouTube channel also holds a special place in my heart since I have been watching them pretty much since I started using ZBrush, they have a lot of amazing free content as well that I still go back to with every project.
The biggest rule for any project for me is to plan ahead. Figure out which parts of your piece are going to be important and which parts are not, and spend most of your time focusing on the stuff that really matters.
David Kwahk, 3D Creature and Character Artist
Interview conducted by Theodore Nikitin
You may find these articles interesting