Matt Olson did a detailed breakdown of his nostalgic sci-fi environment inspired by movies Alien & Serenity and made with UE4: modular assets, lighting & more.
Matt Olson did a detailed breakdown of his nostalgic sci-fi environment inspired by movies Alien & Serenity and made with UE4: modular assets, materials, lighting, the character of the scene and more.
Introduction
Hello! My name is Matt Olson, I am an environment artist from Orange County, California. I studied fine art, illustration, and graphic design at California State University Long Beach.
I began my career in 1997 as a concept artist at a small software company looking to develop a sci-fi MMORPG called Atriarch. I spent most of my time drawing aliens and alien landscapes, but I was given the freedom to learn Lightwave 3D. It was a great platform to learn modeling, lighting, and animation. In 2001, I started working for Collective, a small independent studio based in Newport Beach. I worked on such titles as Wrath: Unleashed, Getting Up, Star Wars Episode III Revenge of the Sith, The Da Vinci Code, Silent Hill: Homecoming, Front Mission Evolved along with several unreleased projects. Within 9 years in this studio, I went from environment artist to lead environment artist and then to art director.
I left to get away from management roles and get back to creating art again. My current home, Turtle Rock Studios, gave me that opportunity and I have been there ever since. I worked as a senior artist on EVOLVE as well as several Oculus VR projects. Currently, I’m working on an unannounced title.
Sci-Fi Project Anastasios: How It Started
When it comes to making environment art for video games, sci-fi is easily my favorite genre. I really enjoy the freedom it allows as you create spaces, shapes, and forms. EVOLVE and Star Wars were probably my 2 favorite projects for that very reason. With that in mind, I really wanted to dive heavily back into sci-fi after making my wild west entry for Art Station’s challenge. In my entry, I mixed sci-fi and wild west and realized that it gave me the itch to do more.
I also usually have movies playing while working and I had recently watched Alien, Serenity, and Star Wars Episodes 4-6. Serenity is where originally the whole idea to do a more “lived in” ship came from, while Alien heavily influenced the direction I chose to go with, specifically regarding the atmosphere and old school tech. I like the bulkier old type of technology with tactile switches, buttons and old green CRT monitors. I wanted to emulate that “found” style rather than design and fabricate my own shapes.
I took much inspiration from old submarines and naval ships as well, partially because of the beautiful engineering chaos of the spaces but also to avoid the trap of just copying the designs from those old movies. I wanted all the surfaces to be rough, scratched, oily, grimy, and unkempt. The whole place had to look as if it needed a good coat of paint.
I only intended to make a typical sci-fi hallway but after I finished it, I had momentum that carried me into extending it. This eventually led me to make an entire ship interior. I still consider it unfinished and want to go back and add more vignettes that would help allude to the people who inhabited the ship.
Blockout
As I mentioned, I was only planning on doing a small stretch of the hallway at first. My main goal was to create the spaces that felt crammed and chaotic while still having a flow that allowed people to move through. Initially, my first blockout of the hallway was too wide. I was aiming for making the space as tight as a submarine’s interior, so I roughed out a much narrower version but after a quick import into UE4 to see how it felt, I realized it was now too small. It didn’t allow me to place the camera anywhere for good screenshots. So I made a quick hallway to determine the min and max distances and then used those as my standards for the rest of the ship. Some spaces grew bigger obviously, especially the two hangar bays and the circular core in the middle of the ship.
Once I was happy with the size (it was as small as I could make while still allowing for good camera locations and sight-lines), I made a really rough blockout of the entire hallway.
After I decide on the overall look of the scene (no matter whether it’s concept art or reference imagery), I build a texture set that I know will compliment my scene. This set will grow upon needs I run into as the scene begins to manifest itself.
The entire environment is built using trim sheets and tileable textures. The first things I modeled were the modular walls, floors, and ceilings. Initially, I had three wall types that eventually turned into five which included color variants. From there, I built a modular pipe set and a set of modular door elements that included door frames, single doors, double doors, and a hatch. At this point, I had enough to build the basic structure of the hallways and rooms.
The next large modeling task was all the panels, machines, fixtures, light sources, and utility pieces such as levers, dials, and crank wheels. Once I had a base set of all those things I was able to kit-bash several different machines and devices that would align the spaces and give the scenes the mechanical life I was looking for.
Modular Assets
When it comes to approaching modular sets, I make sure to build everything on a grid that follows UE4’s use of metric measurement. In Maya, I set my units to centimeters and then set my grid to 1-meter increments with subdivisions every 1/2 meter. When I prepare a model for export, I make sure that my pivot is set to a point on that grid so it will snap properly in the editor. I also make sure that my modular pieces end on a grid line so they all snap together cleanly.
Once I have a healthy library of modular pieces, I will start expanding it where needed to help give the scene variety. For example, I decided to use UE4’s cable system to string wires and cables all throughout my scenes to help with the organized chaos I was going for. To accommodate those wires and cables, I built “plugs” for them so I could put them anywhere I wanted in the scene. The beauty of that system is that you can attach the end of your cable to an object and place it anywhere you want and the cable will stretch to accommodate that.
There were a few custom models that I had to create, specifically for the bridge and the hangar. I needed seats and a console for the bridge. For the most parts, these were still constructed the same as everything else using trim sheets but I still had to craft some specifics that I didn’t plan to use anywhere else.
The Shuttle in the hangar was also a stand-alone asset that was kit-bashed together. But the main hull of the shuttle is a custom model produced using a blend material so I could add custom wear on the edges and corners.
Materials
I knew for this project, I didn’t want a lot of smooth and shiny surfaces. I wanted all my materials to by rough, oily, gritty, and grimy. I strove to make all the surfaces have an abundance of character without resorting to excessive amounts of noise. They had to compliment the scene but not overpower it. The best way to achieve that is through clean reads, making sure that surfaces look the way they should but don’t compete with each other. The lighting in the scene will contribute to those reads but only if the surfaces are working together.
My preferred method for material creation is scan data. When you capture something from real life, there are so many subtleties and nuances that you get for free. Currently, that’s not available to me for my personal projects so I decided to make my materials via photo reference. I chose this method for 2 reasons: firstly because it would give me the “found” look I wanted for my scenes and secondly it’s a method I’ve been using for years so it would help me get through material creation pretty quickly.
This method is pretty similar to how you would create a material in Substance Designer, but it’s done with Photoshop using specific layers and filters. As an example, I started with a typical sci-fi wall material that I knew I would use throughout my scene.
I used 2 photo images to create the first material. I pulled the stainless steel metal from one image to create a framed border for my wall and used an old worn out roll-up door as the main body of the wall itself. I removed a lot of the imperfections like the broad color changes and the graffiti. After composing the image the way I wanted, I removed as much baked lighting information aside from the ambient occlusion I added under the metal frame around the border. Lastly, I adjusted my histogram to remove all strong dark and light values so it would light properly. I will reduce contrast to a small extent because I like the character it brings out in the final material.
I create the normal map next. This step is pretty simple, especially with a wall material like this. I create a simple height map with black and white gradients that match the large shapes in the base color. This will serve as my base for the normal map and drive the overall depth of the material. To create a subtle layer of bump, I use a de-saturated version of the base color that I have aggressively increased the contrast on. This way the bump doesn’t completely mud up the surface of the material and give it that plastic wrap feel.
I save the fine details for the roughness map. To generate the normal data, I use the XNormal plugin for Photoshop. I blend the bump layer into the height generated layer by removing the blue channel and using a blend mode of Hard Light. This way I can control the strength of the bump by simply adjusting the opacity of the layer.
For the roughness map, I de-saturate the base color and make the necessary adjustments to get highlights and rough spots to land where they should. This is the map I will usually revisit several times once I have it in the editor to get the desired effect with my lighting.
My material set up for standard PBR material is pretty simple in UE4. The one thing I do to save the number of maps I have to manage while reducing memory is combining the metalness, roughness, and AO maps into one texture by utilizing the RGB channels. I put the roughness in the green channel because this helps with texture compression.
Trim Sheets & Assembly
When I make a sci-fi environment, I find trim sheets irreplaceable especially when kit-bashing. The main thing I use them for is transitional areas whether it’s where a wall meets the floor or for creating a frame to ground an object to another surface. I also use them to make beams, frames, and pipes that help make up the structure of an environment. For this particular environment, I made one trim sheet for the entire scene. Almost every model uses it in one way or another.
Along with the trim sheets, I use a lot of atlas sheets. These are usually comprised of elements that don’t tile like panels, consoles, sheets of metal, etc.
When it comes to modularity, I use it to the extent of removing some of the monotony of piecing together a scene. It’s like when you’re modeling something and realize you’ve been digging into the same menu or tool over and over again, and suddenly think “why don’t I have a hotkey for this?”.
This particular environment doesn’t completely adhere to some of the rules you’d be under while making something that goes into a shipped title, such as LODs, occluders, draw calls, etc. But if this was to go into a game that had to run at 30 or even 60 FPS, I would have to rethink some things, specifically how much (or how little) I’m using instancing.
With that said, I enjoy piecing together a scene by hand and making it come to life. I feel excessive modular pieces don’t allow me to do that without a heavy amount of layering. I enjoy trying to fit areas together and making them work: sometimes they do and sometimes they don’t but I love when happy accidents occur. Especially when I have to bridge something I accommodate for in my base modular set.
I do have some obsessive-compulsive tendencies when it comes to modeling such as not burying vertices, making sure something that should be flat is “perfectly” flat or anything cylindrical has a number of sides that is divisible by 4 (4, 8, 16, 20, 24, 36). So when creating my ship’s interior, I wasn’t worried about it looking perfect. I wanted it to look old and used, lived in, and have a feeling like the crew members were doing their best to keep the old girl operational.
Lighting
The main goal I had for lighting was the atmosphere. I wanted the air to feel thick with a lot of particles clouding it up. I pushed to make the lighting bright enough so the scenes didn’t fade too quickly into darkness but also felt like the light bulbs should be replaced and the lens should be cleaned. I also wanted color. In a lot of movies and games of the last few years, especially in the sci-fi genre, my pet peeves is that everything is so dark, brown and grey, and so drab. I’m really inspired by how they directed the lighting in Alien and Aliens, but I didn’t want my scenes to completely copy them, so I worked in brighter materials along with a lot more color. I avoided dark black materials or the bright white surfaces. Initially, my materials were all mid-tone grey but I hated how it looked especially when I introduced color into my fog and lights.
Since I was using UE4, I knew I was going to leverage the volumetric fog and lights to get the look I wanted. I mostly used only static lights throughout the entire environment. Stationary lights were used when I wanted specific volumetric scattering. I used this in two ways: on point lights to create an inner glow inside or behind an object and on spotlights to create light shafts.
One of the biggest challenges I faced was getting the volumetrics to work inside the ship without it affecting the starry sky outside the ship. In an earthbound environment, this isn’t a problem because the earth has an atmosphere so you can blend it into your sky dome. Space is another story. The solution was simple but I did have to compromise the density of the fog I was using in my early lighting tests. In the fog volume, I had to find a value for the View Distance that gave me the thick atmosphere I wanted inside while not affecting the skydome.
I like to use backlighting to get a nice rim on objects in the mid-ground. It helps create more depth, especially in tight spaces. It also helps frame complex objects so they don’t get lost into the background.
I utilized every light type in my environment except directional since I was only making interiors. I would say I used point lights the most because they fill areas with more light without making me worry about what direction they’re pointing. These are the lights that I would tuck behind mid-ground objects to backlight them. I used Rect Lights on almost all my light fixtures because they spread more naturally away from the fixture since they are all rectangular. Spotlights were used when I needed light to go in a specific direction like the light coming through the vents. I did not use values above 1 on any of my lights in order not to overpower the scene with light. If the light wasn’t illuminating the scene enough I would increase its range and add another light source if needed.
Since this is a sci-fi environment, I start with a basic light set up that would naturally occur in a man-made space. I add a few overhead lights that properly fill the space with light. I’ll go through a few iterations until I’m happy with the amount of light hitting the scene and allowing for additional lights from smaller sources, and then begin adding lights in the back and mid-ground to create parallax and separation.
Next I added some volumetric lights to add a little more atmosphere. I wanted a glow to come from inside the machinery. The last pass is adding small accent lights from all the small light sources including small circular and rectangular lights and emissive objects like lit up consoles and computer screens. Once I’m happy with the scene overall, I’ll iterate on value and color to get the desired look.
As I mentioned, I’m leveraging UE4’s volumetric system so fog and bloom play a key role in establishing the desired level of atmosphere. Plus I added a healthy dose of dust particles. I wanted a dusty and thick layer of atmosphere but I made sure not to make it dominate the scene, otherwise, it started to look unnatural.
Adding Character to the Scene
Ever since the first game I shipped, I’ve tried to add extra character to my environments that would help them stand apart. In a video game, the environment should have just as much character as the actual characters do. It has to help sell the narrative without saying anything. I enjoy hiding in personal things just like in Silent Hill: Homecoming. I had the entire dev team give me a short personal message or a name that they would scratch on a wall if they were in prison. I made an atlas texture out of them and used it all of over the prison level in the game.
With my sci-fi scene, I had several goals I wanted to achieve: rough and worn materials, no smooth or overly reflective surfaces, complicated and ambiguous machines that feel familiar, NO touch screens, NO holograms, tactile buttons and levers, plenty of snaking wires, pipes, and conduits, 1980s computer tech, asymmetry, small confined spaces akin to a submarine or naval ship, ordered chaos.
And with all the elements, I think the trick to give your scene character is composition. In a development studio when blocking out an environment there are many factors I don’t have to take into account when making my own. So when it comes to creating compositions and vignettes, I have full creative control. Throughout the ship, I composed each area so I would get good reveals from around corners or through doorways as well as getting good stand-alone compositions in each area. I also made sure that each space had its own character, so you didn’t get the sense that everything was built from the same set of assets.
I wanted anyone who moved through the ship to have a wish to keep exploring because each space had something unique to offer visually.
The name of the ship came simply from emulating the names of the ships used in Alien and Aliens. The Nostromo and the Sulaco are very distinct as they’re somewhat romantic but actually hold some meaning. I looked for Greek names and found Anastasios, the name that meant resurrection. I felt it was quite fitting.
Conclusion
I hope you enjoyed reading about this project as much as I enjoyed making it. I’d like to thank 80.lv for giving me the opportunity to share my work.
Follow me on Instagram @i_am_jafo or ArtStation to see future projects!
If you found this article interesting, below we are listing a couple of related Unity Store Assets that may be useful for you.