WoLD Archives Search About Contact

World of Level Design

Tutorials to Becoming the Best Level Designer and Game Environment Artist (since 2008)

Making of Modular Steel Beams/Supports from O'Hara Airport Terminal (Maya & UE5)

Category: Maya, Environment Art, UE5
April 25, 2022

In this tutorial breakdown I'm going to cover how I created modular steel beam support from O'Hare Airport terminal.

I've always liked the design and the silhouette of these steel beams. And for the longest time I've always wanted to create them and put them into a game engine.

So for this following breakdown I'm going to cover the process of creating this modular steel beam set.

Software I used:

  • Maya
  • Substance Painter
  • Unreal Engine 5

Video Tutorial

Project Image Reference

The first and most important part of any project is to collect sufficient photo reference. You have to know what you are going to create - what you will model and how you will texture it.

Here is my Master Reference sheet:

These are some of the photo references but I've collected a lot more that were also in the same reference folder.

You don't need to spend a lot of time on collecting photo reference but you need to be thorough so you know what to create.

In my book "Preproduction Blueprint" I go more in-depth about the entire preproduction process of an environment and level design.

Size, Dimensions and Start of Blockouts

Number one priority for modular meshes is setting up the correct sizes and dimensions for each piece. They all need to have ability to snap to each other.

I started with the blockout by using primitive shapes at specific sizes.  For steel beam supports I established the height of 400 units or 400cm. For steel beams the width was set at 200 cm.  This was a very deliberate because it allowed me to have steel beams that could double up and give me 400cm in height if I were to use the beams along with the steel supports.

The modular sizes need to be established very early on with the most basic primitive shapes so they can work together. Get your sizes right and test early so you know modularity works across your pieces before modeling any detail.

Grid Options and Grid Size

Setting the grid up in Maya to match UE5 is very important. You need to have the same grid size and spacing that translates between meshes between your modeling package and your game engine.

Maya and UE5 both use centimeters.

Here are my grid settings in Maya to match UE5:

  • Length and width: 1,000+ units (size of the overall grid appearing in the viewport)
  • Grid lines every: 10 units (size of each grid unit, change this to match grid snapping in UE5)
  • Subdivisions: 1 (set this to 1 and don't change it)

Get Your Meshes into UE5 Early

I exported the blockout modular meshes from Maya and imported them into UE5. I do this very early in the process because I want to see if the assets work inside the game engine. It is one thing to see your meshes in 3d software but it is another to actually see them from the player's point of view.

I recommend you export/import your meshes as soon as you can. Make sure they work before you spend time on modeling detail.

More Defined Blockout

After checking how the blockouts look in UE5 in terms of dimensions, size and modularity - I went back to Maya and started refining the blockout.

I began to add primitive shapes to add more blockout detail. These included cylinders, supports, panels etc. This wasn't modeling yet but figuring out how the rest of the shapes needed to be to look correct.

I continued to export/import these refined blockouts into UE5 to see how they felt in-engine.

Modeling Process

Once I was happy with the refined blockout, I began to model.

I placed the blockouts onto their own Displayer Layer in Maya and turn them into a Template. I then used this template to model the rest the asset.

I knew the size and dimensions were good and could focus on the modeling. During the modeling process I optimized meshes, made sure everything lined up and looked good. The wireframes in the middle are there to show you the refined blockout template in the Display Layer I used.

Here are some more specific sizes I used just to see how I kept everything modular and on the grid:

Overall Cube Size Template:

  • Width: 100
  • Height: 400
  • Depth: 100

Platforms: Base

  • Width: 100
  • Height: 5
  • Depth: 100


  • Radius: 12
  • Height: 390
  • Subdiv Axis: 16

For steel beams it was even more precise to ensure modularity between straight and arch beams:

Using Booleans

For the round cutouts in the supports and steel beams I used Booleans operation.

One thing about Booleans is the amount of clean up that's required after. To make Boolean operations easier to cleanup, you need to prep the initial shape first. The one you will cut from. Introduce additional edges and made sure they aligned with the cylinder.

I used Booleans: Difference to cut the cylinder from the rectangular shape. Select the object you want to keep first, then the object that will be cut out second and apply Booleans: Difference.

I used this technique for all cylindrical cut outs, which took a lot longer to create but the result was worth it.


UVing was very quick. I sped this process up by UVing one element then duplicating it to position the rest. This way I only had to UV one.

Technique I used - UV then duplicate:

UVs tend to be tedious but very important. So they have to get done.

For these objects I decided to use a single, tiling texture. So I only had to keep the same texel density between all UV shells but UV shells could overlap. Here is the final UV layout of all the pieces. Overlapping and messy but that was on purpose due to single tiling texture being used.

One Texture Many Static Meshes

For texturing I kept it simple. I used Substance Painter and Smart Material - Steel Painted Chipped Dirty.

I didn't even bring in a mesh to texture. I used Sample content and Tiling Material. File > Open Sample: TilingMaterial.spp

Then applied the Smart Material onto it and adjusted various properties within each layer given:

Exported textures from Substance Painter gave me Albedo, Normal Map and a packed texture that contains Roughness, Metallic and Ambient Occlusion within each of the color channels.

UE5 Material

Upon importing all the textures into UE5, I only had to make one important adjustment to the packed texture.

  • In Texture Properties, Disable: sRGB

Here is the simple Material setup. Packed texture is connected as:

  • R = Ambient Occlusion
  • G = Roughness
  • B = Metallic

Additional controls were added for creating a Material Instance adjustments. These included changing color, adjust the contrast of the scratches and normal map intensity.

Click on the image to see larger size (opens in a new tab)

Material Instance and Adjustments

I then created a Material Instance and applied it to all the modular meshes meshes in the level. This allowed me to have some control and variety for how the Material appeared on the mesh

Final Meshes and Results

Here is the final result.

I didn't create a larger environment using these modular meshes but I may bring them into another project in the future if needed.

Next Tutorial: 32 Lessons I Learned from Creating 32 Modular Pipe Assets


Subscribe to receive FREE & Updated "Maya 3D Primer" PDF Guide (200+ pages).

Subscribe and Get a Free Maya 3D Primer PDF Guide

See more about this Free PDF Guides and what you are subscribing to.

Follow WoLD







About World of Level Design

My name is AlexG. I am self-taught level designer, game environment artist and the creator of World of Level Design.com. I've learned everything I know from personal experimentation and decades of being around various online communities of fellow environment artist and level designers. On World of Level Design you will find tutorials to make you become the best level designer and game environment artist.

Read More »

Home Terms of Use/Trademarks/Disclaimers Privacy Policy Donate About Contact

All content on this website is copyrighted ©2008-2024 World of Level Design LLC. All rights reserved.
Duplication and distribution is illegal and strictly prohibited.

World of Level Design LLC is an independent company. World of Level Design website, its tutorials and products are not endorsed, sponsored or approved by any mentioned companies on this website in any way. All content is based on my own personal experimentation, experience and opinion. World of Level Design™ and 11 Day Level Design™ are trademarks of AlexG.

Template powered by w3.css