September 6, 2019
Balinese Temple: Telling a powerful story through UE4 environments
Before we start breaking down the project, I’d like to thank Epic Games for the opportunity to share my work. I hope I can help you learn a trick or two through this blog post!
How the project startedBalinese Temple focuses on creating a real-time cinematic experience through environment storytelling. This project was highly inspired by the Gnomon talk (also available here) from 2017. The idea is that environment art can be used as a powerful tool to tell stories without the presence of a character. To make it more believable, stories are often grounded with real-life cultures, such as myths and legends.
Franchises like Lord of the Rings, Harry Potter, Legend of Zelda, God of War, and Assassin’s Creed are a few examples that show a direct influence of mythology in popular culture. Although some of these cultures (namely the Japanese, Greek, Persian, and Norse mythology) are more recognized than others, it does not mean that they are the only reference an environment artist can look for.
Recent movies like Moana (Polynesian) and Coco (Mexican) show a shifting trend from using mainstream mythology sources. As someone that comes from a third-world country, this trend allows me to explore the use of an under-exposed culture, Balinese, into my environment artwork.
Art DirectionBefore starting my project, I knew that I wanted to create an environment that told a story about my hometown. Thus, I began spending a bit of time gathering references on a style to support the narrative setting. Games like Uncharted 4, Horizon Zero Dawn, and Shadow of Tomb Raider are a few examples that highly resonate with my idea.
I then start brainstorming and fleshing out ideas after getting inspired by the quality of work. At this point, I knew that my concept would evolve as I continued to work on it. I therefore wanted to leave room for future ideas that could improve my project.
Once I had the basic idea nailed down, I created a series of mood boards that focused on color, light, and composition.
BlockoutThe first blockout was quite simple, but it helped me a lot to get the overall feel of the environment. I usually start with rough blockouts that I make in Maya to define the basic shapes before I lay it out in Unreal. The idea is to create modular proxy assets that I can substitute with more detailed versions later on.
One thing I noticed was that the proxy geo I used to build the environment did not completely represent my sculpted version. Thus, I decided to export the blockout assets from Unreal as a base proxy and sculpted the whole environment in Zbrush.
Although the decimated blockout represented the concept quite well, the amount of time needed to create a production-ready asset is too high. In the end, I decided to use the blockout as a guide and proceeded to use photogrammetry for asset creation.
Asset ProductionDue to the amount of details needed to create Balinese inspired assets, photogrammetry has become a huge part of my workflow. I first learned about this technique during my internship at Turn 10 Studios. I used RealityCapture for this project.
Once the scanned asset was generated, all I had to do was clean up the mesh and create a low-poly version with the UV unwrapped to bake textures. Low-poly assets were created using either Maya for foreground objects or Instant Meshes for background objects.
In addition to the assets I scanned on my own, I heavily used Quixel Megascans to quickly populate the environment. As a result, a new environment, which consists of scanned assets based on the previously decimated blockout, was created.
The next step in the project is to apply materials to the environment. The material setup I used was quite simple, a layered material function with an option to add procedural surface detail like moss or grunge. In addition, there is also an option to input a texture mask file.
LightingComing from a more traditional CG background, I tend to follow the general rule of three-point lighting. As it implies, this principle is based on the placement of three different sources of light: the key light, fill light, and rim light. I usually use a Directional Light as Key, Sky Light as Fill, and any lights for Rim for the initial setup.
TIP: Start with a grey material setup. In Unreal, you can do this easily by enabling the Lighting Only or the Detailed Lighting mode.
Image Based Lighting (IBL) is another common technique I use. From this point, I switched the Sky Light Source Type to SLS Specified Cubemap and plugged in HDRi that I got from HDRI Haven.
TIP: Set the exposure level in the Post Process Volume (Unbound) to 1.0 for both the min and max setting. This way, the engine won’t try to adapt the exposure automatically, which can be quite annoying when setting up a primary lighting set. You can turn auto exposure off in the Project Settings as well.
Additionally, I’ve also used a combination of Exponential Height Fog and Volumetric Fog, which was introduced back in Unreal Engine version 4.16. However, I ended up creating a few light shafts using a custom translucent material applied on a simple cylinder. This way, I have better control at defining the look of the environment, especially in terms of the general shape, intensity, and placement of each ray.
TIP: Create multiple light shaft materials, each with a different Noise and Depth Opacity value. You can also add a Panner node to add motion to the material. This way you get a sense of depth with each light shaft layer you place in the scene.
Here are a few examples of my lighting process. I usually start out defining the primary light, usually using a directional light, and a sky light for the fill. Unlike with a more traditional render engine, I have to place my own bounce lights in Unreal.
TIP: Use color temperature when creating a lighting scenario. This way it will give you a more natural and accurate result.
Environment Animation and FXOne thing often overlooked by artists when creating an environment is a subtle background animation. Although it does not need to be extravagant, the dynamic vibrancy adds a lot to the story and overall feeling of the environment.
TIP: Epic provides a good example project on Particles that show off a variety of particle systems such as fire, water, and snow.
Although the animation itself is a small part of the environment, it has a fundamental influence on the environment design. The added weathering effect can help enforce the idea of a quiet and overgrown living environment. In addition to where they are placed, the animation FX can also create an interesting lighting situation without drawing too much attention to the eye.
Post ProcessingThe final step in the pipeline is Compositing or Post Processing. Unreal Engine provides a Post Process Volume which allows artists to tweak the overall look of the scene, such as adding bloom, chromatic aberration, and color grading. The most direct effect is the ability to give the render a more cinematic look.
TIP: I created a lookup table (LUT) in Nuke for my color grading, but you can also use Photoshop or any other photo editing software.
ChallengesOne of the biggest challenges I faced during the production was creating a color harmony for the environment. It wasn’t until I saw this GDC talk by Dan Cox where he talked about the 60-30-10 Rule, which helped me tremendously on the project.
TIP: Psychology of color is a good way to convey a specific narrative theme. I mainly use green as the focal point of the environment color as it enforces the idea that Balinese art must be infused with life (nature).
Another thing that was hard to adjust was the correct value for Depth of Field (DoF). I had a tendency to overuse this function in my earlier versions, creating a really shallow DoF in my renders. I learned that having other people look at my project with a fresh perspective is necessary, especially for a project as ambitious as mine.
TIP: Aside from getting direct feedback from mentors I met in real life, there are a lot of online communities that can help in getting critique. I found myself posting on r/vfx, r/unrealengine, Unreal Engine Dev Community, 10K, Level Up, and 80 Level a lot.
AfterwordThank you very much for reading. I hope you enjoyed this breakdown! If you have any questions or feedback, you can always find me on Artstation and LinkedIn.
CreditsConcept Artist - Meghana Reddy
Storyboard Artist - Kylie Gay
Previs Artist - Sunny Wai Yan Chan
Sound Designer - H. Albert Holguin
Thesis Supervisor - Brett Rutland | Bridget Gaynor | Charles Shami