Character Breakdown

Ivan Lim


Ivan Lim

Character Artist


Hello, my name is Ivan Lim. I am living in Singapore, and currently, I just graduated from Think Tank Training Centre (Online). I have been making Character Art for a couple of years now and am still in love with it!

Today, I would like to share a breakdown process of my recent Mentorship final project piece at Think Tank, which is an 18-week project given to us to make a game character.
I want to thank my amazing mentor Manuel Armonio for guiding me through making the best mentorship piece I can!

Odin Project

I found a stunning 2D concept of Odin by the amazing Johnson Ting on Artstation and knew that I had to make it in 3D.
Link to the piece by Johnson Ting.

For all of my projects, reference is a very important and fundamental part of the process. The reference board can start small, giving an idea of the path ahead, and you can add to it if you need to. However, making a model without reference and just relying on memory is not a good idea.


For reference, I have the key components like facial references, armor and leather pieces, weapon parts, skin aging, rune designs on the shields and belts, etc.
This gives me an idea of the blockout phase of what they will look like before starting the piece.

I am a huge fan of the God of War games made by Santa Monica Studios and used a lot of the amazing work done by the artists at Santa Monica as a reference for the character!


For the blockout, we want to make sure that the character is on a real-world scale, which helps with correct lighting information, shadows, and SSS.
Subsurface Scattering is made for real-world scale, and if your object is too small, it could cause artifacts in the light transmission or give unexpected results.

I started with a scaled rectangular primitive model in Maya and brought it into Zbrush to scale the base mesh according to my desired scale of the rectangular primitive model.


For the face, I used a base mesh that I had worked on before with UVs already on the model. Using a reference of an actor can be useful while sculpting. In my case, I used Ian McShane as my character reference because I watched a show called “American Gods” where he was Odin in the series, which I thought would fit the character.

For the assets like the belts, it starts as simple primitives and slowly sculpting using Dynamesh mode in Zbrush and making sure that the silhouette of the overall character looks good! Always check for silhouettes from different angles to make the character more interesting.

In this phase, being quick and dirty is the best to get different shapes going and start working on big forms in the silhouette.


For the highpoly stage, I am adding the secondary forms and much finer details. This stage is where the character starts telling a story through the different aging elements in the armor like scratches, dents, and damage.

Since I wanted Odin to be a little older due to his wisdom in mythology, I ensured the anatomy was right during the blockout stage and then added wrinkles and sagging in the skin. After adding the secondary forms come the finer details like pores, micro scratches, and micro damages to add more life to the character.

I used R3DS wrap together with TextureXYZ displacement maps to apply some pore detail onto the character. Finding a good-aged pore displacement map is key. TextureXYZ has a bunch of different assets for the skin on their website, which I highly recommend checking out.

I also used leather alphas on leather assets and used a tileable fabric alpha onto the cloth to add details to the sculpted model.



I wanted this character to be next-gen, so I gave myself a higher polycount budget. The way of retopology is the same way of using quad-draw in Maya and manually retopologizing the model. This method gives the most control over where your topology goes.

Using a decimated model as a live mesh and quad draw sticking the new retopologized model on top of the decimated model is the way I chose. The overall character had 174k tris, hair being 134k tris, and weapons having 23.1k tris.


For the UVs, I packed them nicely, using as much tile space as possible to reduce the number of texture sets used. Ensure the UVs have even texel density so the texture quality and resolution look consistent throughout the character.

I gave the face more texel density, and the back of the head less in the UVs because the face requires more resolution for the pores. Thus, I stretched the face region using a soft select and scaling the UV vertex.



My mentor suggested I use Marmoset Toolbag 4’s baking system because it has some better features compared to Substance Painter. Marmoset Toolbag is good for baking; you can paint in real-time a paint cage offset which helps areas that are tight together that might cause artifacts during baking.

This allows a smaller cage in some areas and a larger cage in others to do a final bake and not have too many artifacts. Some artifacting is unavoidable, so I fixed those in Photoshop by using a clone stamp and stamping away the parts with issues.


The texturing phase is a fun part where you can start to see your character come to life in the render engine. I highly suggest starting to set up early basic first-pass textures in Substance and bringing it into the render engine to do some LookDev while texturing.

Going back and forth between texturing and LookDev is crucial for ensuring that your textures are on the right path. I always start by working with the base color, using different masks like your curvature, AO, and simple noises to add breakup in the color.

I always try to make the textures as procedural as possible, making use of different textures as masks. At the end of the procedural texturing, I will go in and add more specific details by doing hand painting.

In my render engine, my color space is set to ACES so the textures created in Substance Painter may look different in the render engine; thus, a lot of tweaking is required to make it look good.


For the tattoo, I used a warp projection to place my desired alphas as tattoos, then I did a blur to add a little red outline to blend the skin and the tattoo, which makes it look more realistic.

Then different breakups use masks to add more color variation to the tattoo. I also did a color HSL tweak after to get the desired color I wanted for the tattoo.



There are many different hair parts of this character: the beard, eyebrows, eyelashes, fur mantle, fur pouch, chest hair, and fur on the waist belt as well. I started with Xgen and rendered out different hair sets ranging from Opaque to flyaway hairs in Arnold.

The process does take a long time setting up and rendering takes a few hours which can be time-consuming. I found a software called “Fibershop” which speeds up the hair creation workflow.

You can make great-looking hair in an hour of tweaking a set of procedural parameters in the software. I highly recommend watching their YouTube tutorials on how to use their software.

After the hair cards were created, I used a method that Johan Lithvall used. He has an interview with CGMA about creating hair for games, and I highly recommend listening to his workflow.

Following his method, I created hair chunks instead of using hair cards. The hair chunks were created by having three hair cards forming it, creating a sense of depth and volume when looking at the hair chunk from multiple angles.

Johan Lithvall’s method.


Afterward, I started using the hair chunks and started placing them in layers: Opacity, Breakup, Sparse, and Flyaways. Each chunk layer has fewer and fewer strands of hair.

Like in Johan’s method, I used bend deformers instead of using soft selection when moving the hairs. It gives more control over the hair, and when using bend deformers, the vertices will have a proper edge flow as they bend. Even though it is a little more time-consuming, the control you get from it is worth the time spent.

Hair card automation could work, but it could end up taking more time to tweak than placing the hair cards by hand.


I brought all the low poly assets that have been created to Zbrush and posed the character using Zbrush’s Tposemesh plugin.

I then bring the updated models into Marmoset Toolbag 4 to do the tweaks and final renders.



The raven was not in the original concept, but I thought that having a raven next to Odin would bring more meaning to the character. The raven helps convey to the audience that it is not just a Norse warrior but Odin himself.

The base model of the bird was sculpted in Zbrush without its feathers. Then sculpting some feathers for different parts of the wings and baking the model down onto a flat plane to use them as textures in Substance Painter.


I then added more details in Substance Painter like adding color variation in the base color, giving it more roughness variation, and painting a directional map.

I then bring the textured plane with the feathers baked on and use them as feather hair cards which I place slowly on the bird. After the process was done, I posed the bird in Zbrush together with the character and brought it into Marmoset Toolbag 4 for the final renders.

Final Renders

The lighting of the scene is pretty simple, consisting of a top-down key light, a fill light, and multiple rim lights. I added a couple more lights in the scene to bring the viewer’s attention to some parts of the assets.

The scene was Ray-traced and using ACES color space. After doing the final renders, I took them into Photoshop to do some color correction as well as some brightness and contrast tweaks.


Overall, the project took about 22 weeks to complete. I want to thank my mentor, Manuel Armonio, for giving me valuable feedback every week! I learned so much from Manuel’s years of experience in the industry.

challenges I faced were the hair as the character had a lot of hair which is one of the most time-consuming parts of this project! However, the project was really fun to work on and I enjoyed every aspect of making it! I would like to thank Games Artist for giving me this opportunity to share my work and workflow with everyone.