Rookie Awards 2024 - Open for Entries!


Van Nguyen
by vannguyen on 6 Apr 2024 for Rookie Awards 2024

My first game-ready character and environment, completed as part of the one-year diploma programme at 3dsense Media School.

23 597 8
Round of applause for our sponsors

Below are two major assignments I worked on as part of the curriculum for the one-year Diploma programme offered by 3dsense Media School.

Game-ready character

This project was done for the second term of the Game Art Diploma programme offered by 3dsense Media School. This character model was based on a beautiful concept by 陈英俊stan chenyingjun on Artstation:

This was my first game-ready character model, and my first exposure to the process and workflow of creating a character optimised for games.

It was a great learning experience to try my hand at sculpting various different organic and inorganic materials, from damaged skin and flesh to metal and fabric. 

This character was sculpted mostly in ZBrush, with some metal accessories being blocked out in Maya first, such as the bells and chains on the staff. I blocked out the big primary shapes first, trying to achieve the right proportions and silhouette before adding secondary and tertiary details. After the hi res model is complete, I did the retopo in Maya to optimise the poly count and topology. The textures were created using a combination of Substance Painter and Photoshop. The low res model and texture maps were then imported into Marmoset Toolbag 4 to finalise the look and establish a lighting scheme. The final renders were also done in Marmoset.

Gathering references

I started by gathering references, both from 3d models and real life. 3d references helped establish a visual target and benchmark for my own model, while real life references helped to inform my decisions to sell the believability of the final model.

I was particularly concerned with finding references for the fabric (the gown and flowy cloth) since it is a big portion of the model and can sell the dynamic quality of the silhouette. I also did a rough sketch of the back view to help myself visualise how each layer of cloth will behave. I tried to introduce enough “action” for the flowy cloth while still retaining an overall flow to the entire body of cloth.

Hi res model

I started sculpting by using a base mesh and modifying it to achieve the body proportion I needed. I then added more anatomical details such as facial features, body landmarks and muscle definition. After the base body has been established, I added the blocking for the garments and accessories on top. I made sure the blocking followed the silhouette and proportions as shown in the concept, before adding secondary and tertiary details.

For the head, I used the Zwrap plugin within ZBrush to project the details of the high res sculpt onto a low res model with clean topology. I then used Texturing XYZ’s highly detailed skin texture to project the pore details onto the low res model. The damage detail on the head was quite challenging as I needed to retain the structure underneath (i.e. the skin, muscle and bone layers). Finding good 3d references was key for this part.

For the fabric, the most challenging part was the gown, and the flowy cloths to the character’s side. I started by blocking out the cloths in Marvelous Designer, making use of the built-in simulator to create the main shapes and get the overall flow of the folds. However, just using Marvelous was not sufficient to get the complex folds that I needed. I imported the result from Marvelous into Zbrush and adjusted the folds using Zbrush’s built-in cloth brushes, such as the cloth fold and cloth move brush.

Final hi res model:

Low res model, hair cards & UV

After the hi res sculpt was completed, I retopo-ed the model in Maya using the quad draw tool. The hair was created using hair cards. I placed the hair cards layer by layer to build up the volume. The final layer consists of numerous fly aways to create a natural messy hair look and hide any obvious intersections underneath.

Final wireframes:



Before proceeding to texture the model, I needed to bake the details from the hi res model onto the low res model. I used Marmoset Toolbag for this task as the results produced are usually quite clean.


I did my texturing in Substance Painter. I used a combination of Substance built-in smart materials and generators, and hand painting to create the desired look. As I knew I was going to render the character in Marmoset Toolbag, I frequently imported the partially textured model and maps from Substance into Marmoset to make any necessary tweaks and to texture with the final render context in mind.

Final texture maps:

Lighting & rendering

I rendered the character using Marmoset Toolbag 4. I experimented with various camera angles and lighting setup to achieve the desired results.

Final lighting setup for beauty render:

Game environment

This project was done for the final term of the Game Art Diploma programme at 3dsense Media School, spanning approximately 3 months. This was my first time working on a real-time environment in Unreal Engine 5, and also my first time exploring game development for VR.

The experience was incredibly valuable for me as I learned the end-to-end process of producing assets for a game environment, from blocking out and detailing the assets in Maya, creating tileable textures and trim sheets, setting up materials and shaders in Unreal, to lighting and rendering using the powerful Lumen system. I also learned how to convert the environment into a playable VR space with interactive assets, which was incredibly fun.

This environment was based on an amazing concept “Wasteland” by Dan Mao on Artstation:

Reference gathering & planning

Firstly, I gathered the relevant references for each asset. I looked for 3d references for the parts which are not visible in the concept, and look dev references to use as visual target for the final render.

While looking for references, concurrently I also started to plan by breaking down the concept into smaller parts or regions. For each part, I identified the assets included and the quantity. I also took note of whether the asset is unique or modular/reusable, and whether it should be textured using tileable or trim sheet. This planning stage was crucial as it gave me an understanding of the scale of the project and helped me decide how to model and texture the assets.

Blocking out & setting up the camera

I started the modeling process by matching the camera in Maya as close to the concept as possible, then with the camera and perspective fixed, I blocked out the bigger shapes to get the overall composition. During this stage, I also tried to achieve the silhouette for the main assets to be as accurate to the concept art as possible.

Establishing a suitable scale early in the blocking stage is also incredibly important, as having the wrong scale can affect the lighting down the line. I tried to achieve a suitable scale by using a 1.8m-tall human model as reference against the asset model.

Final blocking:


The detailing stage involved enhancing the details of the major assets, including parts that are not visible in the concept art. This is where having the right 3d references can come in very handy. During this stage, I also made extensive use of selectively beveled segments and softened edges to reduce the “blockish” look of the assets and make them look more hi res.

Importing assets into Unreal

I started importing the environment into Unreal as early as the blocking stage, to test the scale and the overall lighting. Subsequently, I imported one group of assets at a time to start the texturing process. I would then make the tweaks for the materials in Unreal, make any necessary changes to the model in Maya, and re-import the assets back into Unreal. Quite a bit of back-and-forth between Maya and Unreal was involved in this highly iterative process to achieve the final look that I wanted.

Setting up Unreal materials

Given the massive scale of the environment, the majority of the textures I used were either tileables or trim sheets. I also learned to set up the linear interpolation (LERP) nodes, which allowed me to blend two materials in Unreal. This was especially useful in introducing variations to the materials which made the assets look more visually interesting and suggested weathering or rusting (such as for metals).

Creating tileables & trim sheets

I used tileables and trim sheets extensively for this project. Most of the textures were created in Quixel Mixer, with some editing in Photoshop to get rid of the repetitive patterns and introduce some semi-stylised look to the textures.

Adding decals for details

I used a large number of decals to add more details to the assets, such as color variations, dirt or rust.

Lighting, rendering & post process

I set up the Directional Light to establish the main light source first, then gradually added more lights to add focus to selected parts of the scene. I also used Exponential Height Fog to create a sense of depth, and additional fog cards to create localised foggy areas. I also used the Post Process Volume to adjust the overall exposure, add some bloom and do some color correction to the final render.

Asset callouts:

Thank you!

Comments (8)