Setting Up a 70s Office Modular Environment with Unreal Engine 5

Dennis Levi has walked us through the creation process behind the '70s office modular environment project made in Unreal Engine 5, detailing the modeling and texturing pipelines.

In case you missed it

You may find this article interesting

Introduction

Hey everyone! My name is Dennis Levi and I'm working as a Prop and Environment Artist at 2K Games in Valencia, Spain. I started studying 3D art in 2017 as my second course of education, after previously working for nearly 10 years on a very different career path. 

I am very passionate about 3D, as well as 2D, and I always try to push my skills a little bit further with private projects that I love to work on in my spare time. These projects include various areas, such as environment design, hard surface modeling, organic sculpting, and even character art.

Besides creating 3D and 2D art, I also love to travel. I'm very interested in movies and TV shows, which lead to a lot of inspiration that I use for my artistic work.

Starting the Project: Setting Goals and Defining the Scene

I'm a passionate enthusiast of online classes taught by industry veterans, aiming to deepen my knowledge and broaden my skill set. Over the past few years, my experiences with classes offered by CGMA have been truly remarkable.

I have long held an admiration for the modular projects showcased on Artstation, whether created by former students of CGMA's Modular Environment class or featured by Dekogon Studio. I have always harbored a desire to enroll in a class and learn directly from Clinton Crumpler. His artistry has been a source of inspiration for me since the early days of my 3D studies.

Even after transitioning to a full-time position in the industry, I find a significant benefit in participating in classes or mentorship programs. This is primarily because you receive guidance and feedback from highly experienced artists, who can offer you not only new techniques but also fresh perspectives for every stage of your workflow. Developing such skills can be challenging when working solely on personal projects, so I highly recommend these classes to anyone out there.

The technical goals for my modular environment were to work with trim textures and create as many pieces as possible from them. I also aimed to make use of a weighted normal workflow because I had never used this workflow in a personal project before. Even though we have Nanite nowadays, I believe this workflow and skill remain valuable to know, as not all companies use Nanite or Unreal Engine 5. Lastly, I aimed to ensure that the environment was fully playable at a good FPS rate, rather than just functioning as a showcase piece. This goal also included all the necessary shader and post-process work.

For the environment itself, I wanted to work on something I'm personally deeply interested in. I have a strong affinity for everything from past decades, encompassing the years from the 60s to the 90s. This fascination extends to music, movies, art, and fashion. I enjoy delving into these eras to understand what made each decade unique. I particularly relish the challenge of recreating environments from these periods, aiming to capture the mood and ambiance of that time and bring it to life within my own scene. As a result, I decided to create a modular interior environment inspired by the 1970s.

Research and The Reference Board

After establishing the foundation of the environment I wanted to work on, I began my research and created a reference board in PureRef. My most frequently used and common resource for this is Pinterest. However, I also rely on Google, and of course, I use ArtStation to find more technical inspirations. I started watching movies and series that could fit the setting I wanted to work on. These movies and series were either made in or set during that time period. Examples include Anchorman, Mad Men, and Columbo. I also like to use eBay, especially for prop references, because you can find many old props with high-quality pictures available for sale there.

In addition to these real-life references, I also sought out game references that were either set in that era or had a style that I greatly admired. The two main references I looked up to were Mafia 3, set in the 70s, and Remedy's Control, which possesses a truly beautiful style and aesthetic, in my opinion.

Last but not least, I searched for mood and lighting references I would use in my scene and ended up with references from the show Loki, which wonderfully exuded retro vibes and aesthetics.

The Environment Scale

I aimed to maintain a very reasonable scale for the environment. I was aware that I could only work on this scene in my spare time, alongside a full-time job. Even though we have the flexibility to work on projects as much as we want, my experience has shown that environments tend to take more time than initially anticipated. Along the way, we always discover things to add, especially in prop work, which breathes life and storytelling into the scene. So my advice to those of you out there is to consider keeping your scene small rather than large, as you may risk losing motivation during the process. The journey to completing an environment is long, and the workload for small scenes can also be quite substantial.

As a small preview, I ended up with around 130 different meshes in the Unreal Engine for my scene. Each of them required modeling, unwrapping, texturing, implementation, etc. I'm sure you get the point – don't underestimate the scope of your own scene.

Planning Assets, Trim Textures, and the Color Palette

Before I began modeling the initial meshes for the blockout, I conducted a breakdown of my main reference to determine the necessary modules and how to assemble them in a modular way. This analysis also helped me decide whether to texture them with a trim texture or tileable materials. The thorough planning of the trim texture is a crucial step for a modular environment. So, even if you're excited about the project's outset, take some time for meticulous planning. It will ultimately save a lot of time and resources.

In addition to the modules and trim texture, I also considered the primary colors I wanted to use in my scene. They were mainly inspired by my main reference, but I adjusted and desaturated them slightly because I aimed for my scene to have a more subdued and less vibrant appearance.

Starting the Blockout in Unreal Engine

After the planning phase, I could move on to the enjoyable part, which involved modeling the initial modules and setting up an Unreal Engine scene. At that time, I began with an Unreal Engine 4 scene because the CGMA class primarily focused on it.

Establishing a well-organized file structure was crucial, so I had already created all the necessary folders both in my Internet Explorer and within Unreal Engine. I proceeded to create a blockout for most of the modules and props I had planned for the scene. I didn't delve into intricate detailing during the modeling stage, ensuring that I could easily make adjustments when needed. Additionally, I conducted some early playtesting with the Unreal Engine character at this stage, allowing me to assess how the environment felt in terms of gameplay and identify any areas that needed resizing.

Modeling and Texturing

After I had the blockout in place, I began modeling the first modules that would make use of the trim texture I had planned ahead of time. These modules encompassed meshes such as desks, sideboards, shelves, wall pieces (which included doors and door frames), and more. 

Following that, I proceeded with props where I couldn't utilize the trim texture, opting instead for a high-to-low poly workflow. This approach was applied to assets like the typewriter, water cooler, telephone, and numerous smaller props scattered throughout the scene.

I won't delve into my modeling approach in this article because its primary focus is on the overall environment and composition in Unreal Engine. However, I completed all the modeling exclusively in Blender, utilizing various modeling techniques, such as the weighted normal workflow, Sub-D, or Remesh workflows for my high-poly models. Subsequently, all the meshes were textured in Substance 3D Painter and then baked, either within Substance 3D Painter or using Marmoset Toolbag 4.

The Shader, Master-Materials, Blueprints, MediaPlayer, and VFX

Within Unreal Engine, I established several shaders and used them as master materials, enabling me to fine-tune various texture properties within the material instances. This flexibility allowed me to generate different asset variations without the necessity of importing a new texture set. With these master materials, I could adjust color values in the base color, enhance the Roughness Map, modify the scaling and rotation of the texture, or make other necessary tweaks.

For some of the assets, I created blueprints, allowing me to either add animations to items, such as the ceiling fans or elevator lights or place all the necessary cables directly within the level itself.

To display the footage on the TV Wall, I set up a media file in Unreal Engine. I captured some old '70s footage and saved it as an MP4 file on my local file path. In Unreal Engine, I created a "File Media Source" so I could reference the video footage without importing the entire video into the Unreal Engine scene.

Following that, I created a "Media Player", which automatically generates a "Media Texture". This Media Texture can be utilized in the Material Editor, plugged into the base color channel, and if necessary, into the emissive color channel. I did use it in the emissive color channel but I multiplied it by a value of 0.15 to prevent it from becoming overly bright in the scene. Finally, I applied the created material to the TV Wall mesh, enabling the playback of footage within the playable level.

Due to the '70s setting and the decidedly dusty atmosphere in my scene, I thought it would be a nice idea to add some cigarette smoke. I experimented with various approaches but since I wanted it to be in motion within the playable level, I ultimately settled on using a Niagra VFX system.

Lumen Lighting and Post-Production

After completing the CGMA class, I made the decision to transition the project to Unreal Engine 5. My motivation for this shift was to leverage the new enhancements provided by Unreal Engine 5 compared to its predecessor. One particular improvement I was eager to explore was the new Lumen technology. Lumen is an exceptional real-time lighting method that not only offers impressive visual quality but also saves a significant amount of production time. In Unreal Engine 4, dealing with light bakes was often time-consuming and frustrating, especially when encountering issues related to lighting, shadows, or baking. These issues can easily arise in an environment scene with numerous props. However, Lumen allows you to address such problems in real time without the need for time-consuming production bakes that can take minutes or even hours.

In addition to implementing Lumen lighting, I introduced ExponentialHeightFog in Unreal Engine to create a dusty atmosphere. I continually adjusted the fog's intensity and color to find the ideal balance that suited my preferences.

Furthermore, I applied PostProcessVolume where I incorporated bloom effects and adjusted colors using a Look-Up Table (LUT). Additionally, I utilized a sharpen filter to enhance the scene's crispness during actual gameplay.

Importing MetaHuman

As I was aware that I intended to present my scene with a real-time video featuring a third-person character navigating the environment, I believed it would be a nice addition to use MetaHuman instead of Unreal Engine's default mannequin. Thus, I integrated the prebuilt MetaHuman using Quixel Bridge and substituted the mesh of the existing mannequin blueprint with the MetaHuman one. This approach allowed me to utilize the Mannequin's walking animation, which was entirely suitable for my showcasing needs.

Final Words and Pieces of Advice

The most significant challenge of this project was undoubtedly the complexity inherent in creating an environment. I don't mean solely my own environment, but rather, I'm referring to the general process. Any environment destined for use in a game requires meticulous planning and technical expertise. It's not merely about assembling appealing props, it encompasses so much more. Elements like the layout, modules, props, shaders, lighting, and post-processing, to name just a few, play crucial roles. During the process of crafting an environment, you may encounter situations where fixing one aspect inadvertently breaks another, akin to tugging a too-small tablecloth back and forth. As an environment artist, you must maintain focus on the bigger picture, ensuring that everything seamlessly integrates into one cohesive whole, with nothing feeling disconnected or neglected.

Another challenge lies in the considerable time investment needed to work on such an environment. There is an abundance of work to complete, which can make you feel like you're toiling on the scene indefinitely, potentially leading to fatigue. It's crucial to take breaks, refresh your perspective, and recharge your creative energy. There have been times when I paused the project for weeks, only to return later and discover issues and solutions that I might not have found if I had rushed through the scene.

I have a deep passion for crafting environments, and guiding them from the initial concept to the final result. I approach an environment as if it were a character within a game. I aim to imbue it with life and a rich history as if it yearns to tell its own story. Working on these types of projects is the beauty of environmental art, and I am genuinely thankful for the opportunity to work on this matter full-time.

Thanks to 80 Level for giving me the chance to write this article. I hope that whoever reads through it finds it helpful and if you have any further questions feel free to reach out to me on ArtStation or LinkedIn.

Dennis Levi, Prop/Environment Artist at 2K Games

Join discussion

Comments 0

    You might also like

    We need your consent

    We use cookies on this website to make your browsing experience better. By using the site you agree to our use of cookies.Learn more