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:
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.
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.
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:
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.
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.
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:
For steel beams it was even more precise to ensure modularity between straight and arch beams:
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.
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.
Upon importing all the textures into UE5, I only had to make one important adjustment to the packed texture.
Here is the simple Material setup. Packed texture is connected as:
Additional controls were added for creating a Material Instance adjustments. These included changing color, adjust the contrast of the scratches and normal map intensity.
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
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
All content on this website is copyrighted ©2008-2023 World of Level Design LLC by Alex Galuzin. 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 Alex Galuzin.
Template powered by w3.css