Final Scene Render in Unreal Engine 5
A few weeks back I was tasked with developing a project showcasing aging in manmade materials. The assignment required me to develop six unique realistic materials in Substance Designer and implement them into a scene in Unreal Engine 5 showcasing a new and an old version of the materials. I decided to create a scene depicting a foam bullet toy gun with its original packaging for the concept.
Before creating the materials I designed and modeled the toy gun and the box in Maya. I modeled the gun with a modular approach so that the different pieces could be detachable and interchangeable. Since this project aimed to showcase the materials I decided to separate the gun mesh into multiple material IDs to preserve resolution at a close distance. This being said, If the project goal would have been to have a game-ready asset I would have limited myself to only two material IDs (one for the gun, and one for the transparent plastic material in the gun's scope).
Once the gun was modeled I started working on the different materials in Substance Designer. The weapon had two materials: a smooth plastic, and a rubber grip material. Additionally, I created materials for the cardboard box, the foam bullet, the lined paper, and the carpet floor.
The first material I created was the Smooth Plastic material. When looking at plastic references I realized that plastic is mainly just a smooth glossy surface. This means that I could have gotten away with just a base color and a very low roughness value for the material. However, I felt that something was still missing, so I created a blend node with a noise attached to the alpha resulting in a subtle color variation. Additionally, I added a few specks and scratches into the roughness channel for some additional variation in the plastic.
When creating the rubber grip material I started by looking at its base properties. Unlike smooth plastic, rubber has a higher overall roughness that is a result of its imperfect surface. Additionally, I wanted the material to have a surface pattern similar to the one in my reference. To achieve this pattern I started with a simple circular shape that was then taken into multiple tile generator nodes that were then blended. I decided to utilize multiple tiles to have more control over the size and position variation of the circles. Once I was happy with the pattern I connected it to the normal channel. Another important aspect of this material is the variation within the color. For the initial level of variation, I copied the strategy used for the smooth plastic material, but I added a step by blending in small random specks of a lighter color.
The third material I created was the foam for the bullet. When creating this material my main objective was to convey the soft and airy texture of foam. To create this effect I had to use a combination of the right normal map and subsurface. I created the normal map by combining a larger noise with a smaller noise texture. The larger noise displayed the bigger bumps in the foam and the smaller noise created the illusion of micro detail.
When creating the cardboard material I knew that the color would be handled in Substance Painter since I wanted to have it covered in illustrated graphical elements. Due to this my focus for this material was to show variation within the normal and roughness channels. A unique feature of cardboard is that it has faint bump lines on the surface. I achieved this effect by creating a rectangular shape with a blur node and attaching it to a tile generator.
The fifth material I created was the lined paper material. For this material, I used the shape generator to create an alpha for the lined pattern in the color node. A unique feature of this material is that I added the aging elements inside Substance Designer with parameters to control the intensity of the wrinkling within the normal map as well as a change of color for the yellowish older paper look.
The last material I created was the carpet. Making the carpet was one of the most challenging aspects of this project, especially making it feel like a softer material. When I started creating this material one of the first elements I focused on was the checkered pattern. Making a simple checkered pattern is fairly simple in Substance Designer, however, to match my reference I needed to have a slight color variation between each tile. To create this effect I selected two uniform colors and created a couple of blend nodes with different noises plugged into the alpha. By doing this I was able to get different variations of the same color combinations that I then introduced into a tiling node.
After lots of time playing around with creating the right color and normal combinations, I was able to reach a place where I was happy with how this material turned out. However, after importing the material into Unreal Engine 5 I felt like the quality of the carpet was not as high as it was for some of my other materials. The carpet felt fake and it did not feel like it was composed of multiple fibers. To tackle this I decided to implement parallax into the different channels using a height map generated in Substance Designer. Additionally, I also added a little bit of subsurface scattering to add some warm colors to the darker shadows.
One of the main components of this assignment was the aging of the different materials presented. When studying aging in different plastic materials for my toy gun I noticed that plastic materials tend to lose their color saturation and in many cases tend to gain a yellowish tint in the areas that had the most exposure to light. Additionally, plastic tends to accumulate dust all over with a higher intensity in crevices or areas where dirt can get stuck. To implement this into my model I used a combination of layers and compiled them into a smart material within Substance Painter. The layers created include a yellow tint color with an inverted ambient occlusion mask to target the areas that have the most light exposure. Apart from this, I had three levels of dirt applied: the Dirt 1 layer focuses on the larger dirt particles in the edges and crevices within the model while the Dirt 2 layer focuses on the smaller and more intense dirt being accumulated. Finally, the third level is a soft dust layer applied all around the model. I used a similar method with my other materials with small variations like tare in the cardboard and moss in the carpet.
One of my main goals for this project was to feature my illustration skills in the box design and graphical elements featured on the gun. I developed the main box illustration by rendering the gun model in Unreal Engine 5 and painting it in Photoshop. For the illustration to perfectly fit within the model, I exported a color map of the box with notes on what each component was and what direction it was facing. After that, I was able to create a quick sketch that would then get inked and colored.
The final stage of this project was setting up the scene in Unreal Engine 5. I started by adding an HDRI to the scene and placing the props into the scene to create a test render with a sequencer. After that, I imported the texture maps from Substance Painter, added some additional lights, and created the final materials for the scene. Overall, I was very satisfied with the final result of this project. By creating this scene I was able to showcase my abilities to design toys as well as create virtual materials. There were many aspects of this project that I found challenging, especially in adding interest to the smooth plastic and making the carpet feel realistic and on the same level as the other materials.