Hello! I’m Miriam Stastna — Digital Design student from the Czech Republic. My studies are focused on various digital media (web design, branding, apps), but my real passion is 3D game design. Therefore, I’d like to share with you my process of creating a game interior in Unreal Engine 4.
I really admire koooolalala’s work in UE4, so I decided to try something new and experiment with static prebaked lighting in Unreal Engine. Because I’m beginner and never done something this complex, it was quite a challenge for me. Another purpose of this project is in fact that using available tools I had a chance to virtually transform real studio space and explore different interior design ideas.
Thanks to the real-time UE 4 capabilities I was able to quickly visualise different lighting and layout situations. Another goal of this project was to learn, how to set-up and achieve natural lighting and set the overall mood of the scene.
Thanks to the real-time UE 4 capabilities I was able to quickly visualise different lighting and layout situations.
I’m a big fan of bright, minimalist interiors, with lots of natural light, wooden flooring, industrial elements and rough exposed brick walls. It was quite natural that I’ve decided to recreate a space containing these elements. I usually search for the reference images on the Pinterest, various architecture blogs, but I also seek inspiration in works of digital archviz artists.
This allows me to have both photography and CGI references. I’ve collected all of the images together and picked the key visuals which inspired me the most.
The first step was modeling the studio space in 3ds Max using primitive objects such as boxes and planes. Since the Unreal Engine 4 lacks the ability to quickly preview more precise illumination and the light building process takes ages, I’ve used Corona Renderer for its almost real-time interactive rendering ability, which helped me to test the scene in different lighting conditions and get the general idea of the final setup.
Utilizing a fast renderer in this part of the process was a huge improvement and saved me a lot of hours of searching for a similar result in UE4. Once I was happy with the result, I’ve done UV mapping and material ID’s for different parts of the interior and exported the scene as .fbx to be later imported in Unreal Engine.
Basic blocking and interactive rendering in 3ds Max with Corona
I’ve started with the default Unreal Engine scene and imported the whole FBX. Then, I’ve done the primary lighting from one stationary Light Source and additional SkyLight, based on my previous tweaking in 3ds Max. As I mentioned earlier, to achieve the most realistic and natural lighting with fine shadows and believable GI, I had to go for prebaked lights instead of fully dynamic setup.
However, the quality came at a cost of limitation in the matter of moving assets around the scene, forcing me to rebuild the lighting every time I did a noticeable change to the layout. I’ve also added BoxReflectionCapture to help me add more information to the bounced light rays, reflections in the materials and also strengthen the secondary bounced light rays to lighten up the space.
I’ve also experimented with various Lightmass settings to see the subtle changes in overall lighting quality, tweaked the shadow blurring and other adjustments, to get finer and softer shadows.
First lighting and material pass in UE4
Firstly, I applied raw materials for the wall, flooring and ceiling meshes, mainly to get a proper sense of scale and details in the scene. These materials were quite simple because I knew I’ll be later working on more advanced shaders for the objects and it will change a few times. In the next step, I’ve created the main layout.
Getting the empty space filled with furniture and accessories was a quite challenge, especially to keep the open space breathing while keeping the functionality of the studio in mind. An important part of the process was creating the shaders and tweaking them for the most realistic result. For most of the materials, I’ve created Material Instances (MI), which allowed me to tweak and adjust various linked parameters in real time without rebuilding the shaders each time I’ve changed something. For example, we can look at brick wall material.
Since its heavy presence in the scene, the natural look was a necessity. Thanks to MI, I was able to quickly compare various settings of the PBR material, constantly testing it from different angles and distances until I was satisfied enough. Using this method, I was able to slightly manipulate the UV tiling, displacement intensity and other parameters, which helped me to achieve a natural look and correct scale in the scene.
As a last step, I’ve added a fine-detail normal map on top of the material, which emphasized the rough surface quality, especially in the closeups.
Real-time Material Instance
Material Tree in Material. Editor
One of the last but not least important elements was Postprocessing volume.This step is key to achieve the desired feeling and mood in the scene, and also adjust the luminance of the scene, especially enhancing the darker parts with less light coverage.
To get closer to realism, I’ve utilised effects in a similar fashion to the postproduction of regular CG rendering. Bokeh Depth of Field, Dynamic Range adjustments, Lens Bloom, AO and as a final touch – fine Film Grain and Chromatic Aberration. Since each of these adjustments are calculated real time, It’s particularly easy to overdo it, therefore, to keep the natural look that I wanted to achieve one has to apply these effects very carefully.
Unlit, Detail Lighting and Final preview of the scene
With the finished scene, the last step was to create some animated camera movements for the presentation. For this, I used Unreal’s prebuild Matinee tool where I’ve done slow camera dolly for various parts of the interior.
This project was a great experience for me, as I’ve learned a lot and had tons of fun by exploring the new techniques and possibilities of real-time game design. Since I’m mostly self-taught in 3D, I’m constantly looking for new ways to improve my skillset and discover new methods.
I would also like to say thanks to all the amazing people who contribute and share their knowledge in the tutorials helping people like me to become better CG artists. I would also like to thank The Rookies team for the awesome opportunity to share some of my insights.