2025 | WINTER REGISTRATION NOW OPEN!

Make sure to Enroll Today!


All articles

Abandoned Shinjuku Station: Modular Approach to Level Art

Clarence Ong did a detailed breakdown on the project that he worked on during the UE4 Modular Environments at CGMA, talked about working with references, shared his texturing workflow and game some tips on creating decorative assets.

Introduction

Hi everyone! My name is Clarence Ong, and I am a 3D environment artist based in Singapore, originally from Malaysia. I graduated with a Bachelor’s (Hons) Degree in Film and Animation and had since worked in the industry for more than 15 years. I had previously worked on several published console AAA game titles and MMORPG for game developers from Japan, UK, and Germany. Most of my work would involve creating environment art and open-world level art. Besides that, I also worked on feature film and TV animated series, which would help my experience on cinematic storytelling.

My passion is creating a beautiful environment level that has a cinematic composition and visual storytelling. I am always looking to learn better ways to improve my technical art skillsets in creating a game environment for AAA games. For this reason, I decided to take Clinton Crumpler’s UE4 Modular Environments from CGMA and set a goal to create a playable game level with the modular technique. My final product would be an original environment level art based on Tokyo Shinjuku Station inspired by the Division game. The software I used throughout the project includes 3Ds Max, Substance Painter, Substance Designer, Substance B2M, ZBrush, Photoshop, Marmoset, and Unreal Engine 4.

The Inspiration and Level Design

I am a big fan of the Division Series by Ubisoft and those post-apocalyptic setting in movies. I remembered when I was starting Clinton’s course back in October, some online photographs of Typhoon Trami hitting Tokyo causing the transportation shutdown of Shinjuku Station caught my attention. The eerie emptiness feeling in those photographs of the usual bustling train station inspired me to think about what would happen if a big metro city like Tokyo been deserted suddenly due to some epidemic events like the ones in the Division.

In the original Division game, the story event happened in the US while there’s little mentioned of what happened globally to countries like Asia and Europe. So, I thought it would be interesting to think about an original Division environment level based on a more Asian concept setting like Tokyo train station if the same event happened. Eventually, I decided to create an abandoned Division safe house of the Shinjuku Station based on a spin-off idea of the similar Division story timeline. This abandoned safe house would be taken over by the enemies such as the Hyenas, and the environment has playable level design integrated into the entire level for a possible mission.

I created a top-down level design map and would make sure there are main pathways, secondary pathways, and choke points implemented into the environment level just like a real game-environment level. I also thought about a possible mission objective and various choke points that have enemies AI that would guard those choke point areas. This layout would be used to create the final environment level in Unreal Engine later.

Gathering the Reference and Art Direction

During the first two weeks of the course, I had to define the theme and achievable scope of the scene. I started by searching on Google, Pinterest, and YouTube for images and videos of the abandoned train station, Shinjuku Station, and the Division. I used Trello to create a reference board to help me plan the modularity of the scene and the amount of work to do for better efficiency.

On my reference board, I categorized the references into several groups such as the platforms, trains, rails, background buildings, props, decals, and textures that I need to create. I practiced the PST principle (Primary, Secondary and Tertiary elements) and break up the textures into main textures, secondary, and decals by analyzing the references, so I can plan how to convey the visual storytelling when making the scene later.

When researching the Division game, I found the Hudson Yard train yard-environment level done by Christoffer Radsby, a senior environment artist from Ubisoft Massive to match what I was looking for. I played the Hudson Yard level in the Division game quite several times and screen captured every angle possible to help understand what assets were needed, and how it was placed in the scene to convey the intended visual storytelling and level design.

After analyzing through the references, I decided to set the initial environment art direction to have a slightly overcast daytime atmosphere rather than a horror type dark lighting because I feel it would fit my environment level more to the Division’s overall art direction.

Level Blocking and Modularity

I first created the basic blockout of the primary and secondary modular objects in a draft scene in 3Ds Max to get a sense of scale for the large and medium shapes. I placed a 3D humanoid character model in the scene to establish the relative scale of each modular objects, it is important to ensure the scale will be accurate when I assemble them into Unreal Engine. I believe it’s also important to get the blockout scene assembled in Unreal Engine as early as possible at this stage, so I can get a feel of the space and scale of the actual game level.

As for the modular objects, I make sure the scale and pivot point of each modular objects are properly set, so they can easily snap to the grid when I arrange them in the draft scene. I would export the modular objects and re-assemble them again in Unreal Engine by referring to the draft scene. I find this approach very useful because I can easily check the connectivity of large and medium modular objects between each other. Once the modularity is properly established, it will be easier to further refine the details of the modular objects and modifying the level design along the production process.

Creating the Level in Unreal Engine

After launching Unreal Engine, I choose the Third Person Blueprints template, so I can make the level playable with a character controller. I created a Terrain Landscape by sculpting and following the contour of the platforms. After that, I created a Landscape Master Shader that would have elements such as the ground soil, rocks, and grass. I downloaded these textures from Textures.com, a website to get good quality pictures of all sorts of materials. I would paint the terrain landscape with the different elements of rocks, ground soils, and grass by referring to the different train yard references.

After finishing the terrain landscape, I would replace the previous blockout models of the primary and secondary modular objects in the scene such as the train platforms, trains, buildings, walls, and containers with the more detail models. Because the Shinjuku train station has three rows of platforms, I would make sure the modular objects are well placed in the scene to avoid repeatability that is too obvious to the player since there will be the same assets everywhere.

Once the primary and secondary modular objects are properly replaced in the scene, I now have more ideas on how to place the smaller modular objects such as trash bin, wire, box, pole, signs, fence, etc. into the scene. I would set up basic lighting in the beginning to understand the overall atmosphere look of the scene. I also set up different camera placements for the beauty shots as well as controlling the amount of work that I would need to do. I make sure the different cameras would show a good sense of depth by having a foreground, midground, and background composition.

Creating Trim Sheets for Large Primary Objects

For this project, I created a few Trim Sheets with tillable texture to texture the train station platforms and roof. This would help reduce the number of unique textures and optimize texture memory usage. Since these are large modular objects, I usually use a tiling method to make sure the texture resolution stays sharp and achieves a good Texel Density inside the game level.

For the trim sheets, I would create the high-poly meshes and export them to Marmoset for the baking high-poly to low-poly process. Then I would assign the baked textures into the trim sheet’s channels in Substance Painter and paint the secondary details such as wear and decay. After the refining is done, I would render out the final textures and apply them to the large modular objects such as the train platforms, roof, staircase, etc.

Creating Train Assets

One of the most prominent assets in the scene is the train, specifically the Japanese style metro train that can be found in Shinjuku Train Station in the real world. I gathered a few reference images to help further understand the train design and would create the 3D train model as a unique 3D asset. My plan is to create a 3D train model that didn’t need to be a very high polygon model but still optimized enough to be used as a modular object for the level art.

One of the challenges that I faced when I was making this train asset is that the train is considered as a unique asset while at the same time it gets repeated many times in the scene with the different compartments. To optimize the number of unique textures for this train asset, I would focus on creating some part of the train head compartment with one set of train wheels and then use these textures to tile the rest of the train models. With this method, I can still unwrap the 3D train model with unique UVs and apply the baking process to paint the texture with details in Substance Painter.

Once I finished with the texturing of the train head compartment, I would apply the textures to the rest of the train models in 3Ds Max by reusing the same texture on different train compartments. This method is quite effective in reducing the number of unique textures and allowing the asset UV to be uniquely unwrapped for texture detailing. I would have the option to apply Vertex Blending in Unreal Engine shader with decals to make the train assets more unique in the later process. I only textured three train compartments as a single modular object to use for the level art.

After importing the train modular asset into Unreal Engine, I would create the material shaders and apply them to them. I placed the train modular asset in the scene by referring to the intended level design and making sure they would still look unique and not repetitive by decorating other smaller assets along with them in the scene. As a level artist, I would decorate the scene with repetitive modular assets to achieve a good sense of visual storytelling while still making sure the scene looks unique in different areas and maintaining the level design gameplay.

Creating Background Buildings

For the background buildings, I created several Texture Atlas by using the photo textures of different buildings downloaded from Textures.com. Once the texture atlas was created, I started modeling the background low-poly modular buildings by tiling these textures into the different building assets for texture optimization.

As an environment and level artist, I would often need to make decisions on which assets need to be a high polygon with details and which assets should be a low polygon with fewer details when creating the level art. Assets that are far away from the player interaction usually should be less polygon than the assets that are close to the player to interact with.

By creating just a few modular building assets, I can easily place them around the scene to establish the sense of cityscape from the player view. The modular building assets are placed floating at the area outside of the main train station and the bottom half of the models are blocked from view by the surrounding concrete walls. I would also delete these parts of the models where it’s not visible to the player for polygon optimization. Usually, this is how modular asset placements would look like in the non-playable area where the players will not able to reach.

Decorating with Assets

The next steps are creating the various assets to decorate the scene and usually working on an environment level for AAA games will require a large number of assets in the asset library. Assets such as barrel, box, sack, rubbish, crate, shelf, chair, table, cable, signpost, fuse box, and decals are used discretionary to decorate the scene, so it will look rich with realistic details from every corner.

Most of the smaller assets that I did are using photo textures downloaded from Textures.com, and I created several Texture Atlas to quickly create as many props as possible in a short period of time. Assets such as the fuse box and signboard were created with just one texture atlas that shared the same master shader by creating several Material Instances in Unreal Engine. I would use Substance B2M to create different textures such as normal, metallic, roughness, height and ambient occlusion from the texture atlas.

There are also assets such as the barrel that I did with details by having sculpted the high polygon detail in ZBrush and then bake the high poly to low poly in Marmoset. Then I will import the asset with its baked textures into Substance Painter to paint the texture with wear and decay details. For this type of asset, the UV unwrapping would be more unique and won’t be using the tiling method for texturing. However, I didn’t do many assets with this method as it’s very time-consuming to create every asset with details within a short period of time. Since this is an individual project, I would need to be very effective in asset creation management.

I decided to get some industry props packages from the Marketplace that have those made ready to use small assets for placement as I need to finish the project in the designated time. However, I would try to replace some of these assets afterward by remaking them again. But as my main priority is the level art itself rather than the individual small assets creation, I don’t think there’s a real need to create every single small asset from scratch. At this stage, my focus is to finish the overall level art within the planned project timeframe which I believe is more important.

Lighting

For the lighting, I decided to go for open natural lighting instead of the dark gloomy atmosphere. I placed only one Directional Light into the scene for the main light source. I added a Lightmass Importance Volume to control the area that needs detail indirect lighting while areas outside the volume would get only one bounce of indirect lighting at a lower quality. I used several point lights and spotlights to light up the several areas of the scene with the Cast Shadow option turned off for optimization.

As for the lighting rendering of the modular asset, I would set up the Lightmap Channel by adding a second UV channel for each object in 3Ds Max before exporting them. When these objects are imported into Unreal Engine, I would set up the lightmap resolution in their Mesh Editor. Usually, I would choose a higher lightmap resolution for large modular meshes like the train platforms, so the shadow rendered has a better quality. As for the smaller objects, a lower lightmap resolution was set instead for optimization.

Post-Processing

I added an Exponential Height Fog volume in the scene with the Volumetric Fog option enabled and adjusted the Start Distance, so the fog will always start at a distance away from the viewer to create a sense of atmospheric depth. I made sure the Max Opacity of the fog is very low and adjusted the Fog Inscattering Color to slightly blue to match the skydome color.

I also added a Post-Processing Volume in the scene and played around with the Bloom, Exposure, Chromatic Aberration, Lens Flares, and Vignette settings to get the right mood and feel for the scene. For any adjustment that I made, I will always make sure to check on each camera angle that I had set up earlier so all the beauty shots have consistent lighting with the third person player camera in the game.

For the sky, I created a very simple 3D skydome and made a skydome material using a free HDRI texture from cgskies.com. In the shader setup, I added a multiplier with a constant value of 2 to increase the emissive brightness of the skydome, so it appears more overcast in the scene.

Final Render and Playable Walkthrough

Here are some of the final beauty shots that I did, there are some more on my Artstation if you wish to see the other beauty shots. I categorized the entire level into 3 sections: Train YardTrain Hanger, and Station Exit.

The entire environment level is also playable in a third-person controller. I made a video walkthrough to showcase the entire level, you can view it from here.

Challenges

The main challenges that I faced throughout the whole project would be finding the time needed to spend on creating the assets because creating a playable environment level is very different from just creating a beautiful scene. To create a level art, I would need to have a lot of assets to decorate the level and usually in a game studio there will be other environment artists and prop artists to help create the asset library for level artists to use.

So as a level artist, I would just need to focus on creating the overall level with good visual composition and proper level design by using the provided assets for decoration placement. However, since this is an individual project, I would need to make the use of my time strategic on creating the overall scene with modular assets. For time management, I can only work on the project at night for a few hours after work on weekdays and slightly more hours to work on the project during weekends as I am a family man.

The time management wasn’t very ideal, but I still managed to find the time possible to finish the project because I believe if you passionate about achieving something, then there’s no excuse and reason that can stop you from finishing it.

Conclusion

Besides learning different techniques of modular asset creation from Clinton’s course, I also get to find out more insight into how different AAA studios’ approaches to modular technique are. I would like to thank Clinton for his honest feedback on my weekly work updates and the advice he had given during the live Q&A sessions every week was priceless. One of the best things about CGMA’s courses is that the instructors would give feedbacks weekly, so it can help timebox your assignment to the finish line with constant feedback.

I really enjoy those courses from CGMA as they feature a lot of world-class instructors from the industry such as Clinton Crumpler, Jared Sobotta, Anthony Vaccaro, and many other artists. I myself had also taken other courses from these other instructors to learn about how AAA game studios like Naughty Dog and Microsoft Studios create their impressive 3D environment levels.

The priceless lessons that I learned from these courses helped me improve my technical art skillsets, so I will be up-to-date with the current AAA production workflow. I believe it’s very important to be always updated with the latest AAA production workflow skillsets because the industry is always advancing into higher standards each year due to the evolving technology and better improvement in the production workflow. It would also prepare me for any opportunities in the future if it arises.

Final Thoughts

I hope you enjoyed the write up about my level artwork and hopefully, some people can find it useful. I also like to thank 80 LEVEL and CGMA for giving me this opportunity to write this article and hopefully I can contribute to the community again in the future!

If you have any questions regarding my projects on Artstation, please feel free to follow or message me.

Clarence Ong, Environment Artist

INTERVIEW CONDUCTED BY ELLIE HARISOVA

For more information on CG Master Academy and the UE4 Modular Environments Course, please visit the CGMA website, or email [email protected].