I decided to make this scene in order to learn more about Unreal 4. Previously I have made very static environments, but for this scene I wanted to create something that feels a little more lived in and with a few more animated elements. With that in mind, I planned to make a cinematic video of it using Matinee once the scene was finished. I also experimented using Blueprints for things such as the lights, allowing me to control the emissive brightness and light properties with one single input.
Epic Games, creators of Unreal 4, contacted me and asked me to create a tutorial based on this scene, but applicable to any UE4 environment, on the use of master materials and material instancing. You can read this in the official UE4 documentation here.
This scene can now be downloaded through the ‘Learn’ tab of the Unreal 4 Engine launcher.
This environment was also featured on Kotaku shortly after release.
This scene makes extensive use of a single master material that is used for material instancing, allow me to quickly tweak input maps and values for roughness, albedo tint, and values such as detail normal map tiling rates, UV tiling etc. Below is a screenshot showing the master material and an example material instance, set to look like a white plastic material.
Most of the meshes in this scene were created without baking any unique normal maps, except for smaller and more unique pieces. Most assets were made of chunky panel sections which could be separated via material ID to create the stark contrast between metal and plastic. This allowed me to rapidly create new pieces without having to bake anything. I used the GetVertNormalsFromFace script to flatten faces and made extensive use of chamfered edges rather than bake normal maps.
All of the meshes were also very modular, allowing me to quickly move things around on the grid and also swap out models for variants where needed. Here is an example of their modularity:
The lights in this scene are controlled by Unreal Blueprint. You input a single value on the object properties once it has been placed in the scene, which runs it through the Blueprint and converts that value to the corresponding emissive texture value, and also changes the brightness of the relevant spotlight/pointlight. This means that you can control this one value and the light will change accordingly. This was very useful when turning the lights on in Matinee, as well as making them flicker, as I simply had to adjust the single number and everything updated accordingly.
I made a short tutorial explaining the process:
Here is the final video I created entirely using Unreal Engine 4.
This was the backstory I had in my head before I started planning and creating the scene:
“An orbiting space station above a planet in the beginning stages of being terraformed. The space station is a base for the research scientists and engineers involved in the terraforming. They primarily live on this station, but also go on excursions down to the planet for weeks at a time in order to seed the planet with algae and other microbes, with the end goal of making the planet hospitable in generations to come. The station generates it’s own gravity via its spinning superconductors below the station, and has the technology to create food (as well as having large stores from Earth), and also generates and recycles it’s own breathable air.
A large group of scientists and engineers left Earth 40 years previously, aboard a giant interstellar space station, in order to travel to the nearest star system to ours and start up a human colony in a different star system.
However, Earth received a distress signal 5 years into the terraforming process. A single garbled message was received, and no other contact has been made since. Fortunately, since the departure of the original crew, technology has been developed that has reduced the large amount of time required to travel across space, but the time required is still fairly substantial.
You are one of the crew members sent to investigate the cause of the distress signal. After waking up from 10 years in stasis, you are approaching the station, eager to find out what caused the distress signal.”