Creating a Sci-Fi Corridor With The Help of UE5 & Maya

Egor Kayali and Konstantin Gaidukow shared the workflow behind the Transition Atrium project, explaining how Unreal Engine 5 and Maya were used to create the sci-fi corridor.

Introduction

Hello, dear readers of 80 Level! We are Egor and Kostya, 3D Environment Artists, and we would like to tell you how we created Transition Atrium in Unreal Engine 5: its pipeline, our data exchange methods, concept design, and a little about the struggle with perfectionism.

Preface

Just over a year ago, after a failed attempt at joining a studio, I offered my friend Kostya to create a collaborative sci-fi location, saying: "It's an adventure for a couple of months." At that time, everything seemed clear, but things didn't go as planned. Firstly, we didn't fully determine the asset creation pipeline.

Secondly, we hadn't fully conceptualized what the scene would be, and the idea of a portal emerged just four months before the release. Thirdly, we decided it would be a great idea to concept the scene ourselves (looking back, I can confidently say it was indeed a great idea, but it was a long and challenging process). Within a couple of months, the estimate grew exponentially, and if we had decided to stop at some point, we would have never released this project.

Chapter 1: Idea Research and Blocking

As I have mentioned before, the idea for Transition Atrium didn't start with the image of the corridor with a portal but rather with the pipeline. I was particularly drawn to the idea of adding fine details using a second UV channel and mesh decals.

I was so impressed by the simplicity of this pipeline and the quality of the results, that it sparked thoughts in my mind about different kinds of scenes that could be created by using this approach. I didn't want to create something small, yet I realized that I couldn't tackle something big on my own. That's why I decided to offer this adventure to my friend, Kostya.

The first thing we needed to figure out was how to exchange files. The simplest method for both of us turned out to be purchasing storage on Google Drive and creating a repository there. The repository had two folders: one for the source files and another for the Unreal Engine project. By the way, Google Drive proved to be highly efficient, as it stored all versions of the project somewhere in the cloud, allowing us easily to revert to previous updates.

This required coordination regarding who was working in Unreal Engine and when. However, with just two people on the project, it wasn't difficult to manage it. Kostya created the blocking based on the references we found, taking into account the proportions of our character and the atmosphere we wanted to convey in the scene.

Unfortunately, we don't have screenshots from Maya, so we can only show the stage where we broke down the blocking into modules and assembled them in Unreal Engine.

From the beginning, we understood that the scene should be modular, and our interaction would primarily be with 3D models rather than the engine itself. In essence, we created a blocking for each of the future tasks, which allowed us to have a clear understanding of the workload and the direction we needed to move in.

Chapter 2: High-Resolution Geometry

The blocking was complete. We didn't fully understand what kind of location it would be, assuming it was just a corridor. However, we knew for certain, that we had a floor and two side modules, energy monuments, and a central platform with stairs and four pathways. We left everything else for later. Looking back, I believe it was a wise decision because coming up with the entire scene concept right away would have been impossible for us.

We created the first iteration of high-resolution modules to gain a general understanding of how to proceed with them.

Here you can see some unusual lightning.

The time, when vague doubts started creeping in, arrived. Everything didn't look the way we wanted it to, but neither of us could articulate what needed to be fixed and how it should be done. We decided to put the Adventure (that was the working title for Transition Atrium) on hold for a while and come back to it with fresh energy later.

We returned to it when we decided to immerse ourselves in references from all the Sci-Fi projects in the world. We looked at Halo, Destiny, and Horizon: Zero Dawn. I closely studied the works of Alex Senechal, who had a significant influence on my vision and perception of design. We spent a long time analyzing forms and creating rough drafts, prototypes, etc. It was an excruciatingly challenging process. Later, one day, we came to the realization that we had created a floor module that we both loved. Not only did we like it, but it also perfectly fit into the entire pipeline we had envisioned, thanks to its simple geometry. We understood how to work with shapes and what was worth modeling and what was not.

In this part, it is important to mention the correction of normals. Since we were working with mid-poly objects (a type of object where real chamfers and depressions are used to achieve smoothness on edges), it was crucial for us to fix the shading on them. Fortunately, this process was simple and easy to perform in Maya.

Chapter 3: Mapping and Texturing

During the mapping phase, we finally began implementing our idea: adding details by using the second UV channel! Before explaining how it worked for us, let me briefly describe the general principle of what it is. So, we had a mesh, and it could have an infinite number of UV channels. Each channel could contain unique information about the placement of UV shells, their mapping, cuts, and so on. In Maya, this could be done through this little menu here:

In our case, the pipeline was structured as follows: in the first UV channel, we defined the shell sizes required for achieving consistent texel density for tiling. In the second UV channel, we applied the trim:

And here's how it worked in conjunction with each other:

However, adding detail through normals, even with well-distributed materials, was not enough. We needed a method that would allow us to incorporate additional, smaller insets of different materials. We decided to implement this concept using shaders and two clever texture tricks.

So, in our shader, we also utilized two additional textures.

Let's start with the first one. This mask allowed us to isolate specific areas and adjust their roughness and metallic properties:

The second one is a combination of three textures with varying levels of detail. The principle of their operation is similar, but while the previous mask provided material diversity, this one allows us to showcase how the material interacts with the surrounding world.

For additional detail, we also used Detail Normal and Roughness textures, which incorporated various tile patterns generated in Substance 3D Designer.

To enhance fine detail, we created a parallax decal atlas, which we scattered across the modules to achieve greater intricacy.

For those, we created a very simple shader with alpha and parallax mapping.

By the way, speaking of mesh decal texturing, we created a visible Ambient Occlusion (AO) because, without it, the Height Map won't be pronounced enough to achieve the desired camera distortion effect.

Here you can see all the modules used:

Chapter 5: Lighting

I believe that lighting and composition are the two most crucial components of any artwork. Of course, assuming we have good materials (and I think our materials were good), lighting allows us to unlock the full potential of the scene by emphasizing the silhouettes and shapes of objects.

For variety, I added two additional colors to illuminate the side modules. To differentiate the non-primary parts of the scene, I used less saturated versions of the same colors. This allowed me to achieve a proper focus on the main object of the scene, which is the portal, and create the desired atmosphere.

We used fully dynamic lighting because Lumen wasn't allowed for the combination with pre-baked global illumination (GI). In the scene, we also employed numerous fake light sources to create a more accurate GI. Even though Lumen was impressive, it didn't provide us with the desired results for this particular project.

To add some realism, I utilized a set of IES textures that I personally generated using an IES generator. These textures allowed me to achieve interesting light reflections on the floor and walls, enhancing the overall lighting effects.

In the post-processing stage, I utilized standard settings for contrast and saturation to enhance the overall visual appeal.

In the scene, we also utilized Volumetric Fog, which helped to create a more cinematic and atmospheric environment.

I also used local fog sheets, which allowed me to further break down the scene into different planes

Conclusion

During our journey on this project, we learned even more than we initially intended to showcase. Apart from the significant improvements in modeling, texturing, lighting, working with modern pipelines, and concept design, we also discovered how to combat perfectionism and procrastination. We learned how to work as a team and listen to each other.

We hope you have gained something new from our experience. Thank you for reading! Special thanks to 80 Level for giving us the opportunity to share our story!

UPD: As a reference to the general configuration of the scene, we used the art Entrance to the Ancient Temple by Sergey Tyapkin. Unfortunately, initially, we forgot to provide a link to his work, for which we strongly apologize.

Egor Kayali, 3D Environment Artist

Konstantin Gaidukow, 3D Environment Artist

Published 21 August 2023
Egor Kayali and Konstantin Gaidukow
3D Environment Artists