Those animations look amazing!! Great job!
Very cool review of the making of Spellbreak. Would be even more cool to see some videos inside UE4 showing how they do a few very specific things unique to them.
This was so helpful for me. I'm hoping to adapt your tutorial to pull off something similar comparing modern satellite imagery with historical maps. No topo, so my steps should be simpler, but I'm a novice with Blender and you've really helped. Thanks!
Owen Kiayias reviewed how he created a very detailed Jewelry Store Robbery scene with Substance and Maya. Inspired by PAYDAY!
Hi, my name is Owen Kiayias, I am from Wollongong, Australia. I’m a graduate with an advanced diploma in Game Art and currently working on my environment art portfolio for employment.
One of the main aims of the project was to make a modern-day interior scene where I could visually tell a story of a recent event and gain a better understanding of lighting within UE4. I initially wanted to create a bank robbery scene, but then decided to choose a jewelry store. A lot of the inspiration came from the game PAYDAY, reference sources for design mainly came from Artco Group portfolio which is a store planner and designer company. They designed a variety of jewelry stores, and I gained good ideas for my own design.
Firstly I started with a basic block-out in Maya with the major structural shapes of the scene. As the final output was in UE4 and it was a realistic environment, I worked in centimeters and built the block-out according to the real-world scale, rounding off all assets to the nearest 5 cm, and then separating the structural meshes into modular pieces and making sure they would snap together on the grid. Door manufacturing and display fixture websites, as well as Google images, helped to study real-world dimensions.
After creating the block-out in Maya I then thought about the asset approach: whether I would use a tileable/trim sheet or make a unique asset. I exported the block-out meshes into UE4 to get a feeling of the space in the engine. Trello helped me a lot with the asset management. Everything I planned for the scene was broken down into modular and unique meshes, textures, materials, props, decals, design reference, a mood of the scene, etc. It was all listed in Trello, along with reference images of each asset for its visual look.
I worked on the structural aspects of the jewelry store first and started with those elements that had a dramatic impact such as walls, floors, ceilings, display fixtures, wall fixtures, ceiling lights, doors. Most of these assets are modular and were modeled in Maya. They had tileable textures or trim sheets which were then textured in Substance Painter or created entirely in Substance Designer.
At this stage, I was also working out what texel density I was going to use so that all future assets are felt as parts of the same world, and not out of place. Working on these large assets helped me to tackle any scaling and design issues early on.
Next, I worked on the smaller assets such as props such as the furniture, picture frames, cash registers, exit signs, and jewelry. These assets were all modeled and then textured in Substance Painter/Photoshop. Amazon helped a lot with the dimension references.
After creating the general space of the jewelry store I then moved to the story-telling aspect of the scene. I ended up drawing a quick top-down flow map to organize the series of the events that took place in the store to express the story of a robbery. I created such assets as broken displays, heist equipment, footprint decals, and dropped cash. I also went back readjusting certain assets that were already in the scene such as the busts and mirrors and tipped over stools. After completing the interior I moved on to creating an exterior to make the scene a part of the world instead of an empty void.
When creating the textures for PBR, I ran into some problems with the wood textures on the display meshes, as the albedo was too dark and couldn’t be read in the engine properly. So I went back and adjusted the albedo to be lighter.
Roughness plays a key role in defining readability of the environment and what the material is. Roughness variation in assets will bring believability to the scene. You can visualize your scene’s roughness in the buffer visualization.
A lot of the textures used RMA texture packing, which made it easier to manage the scene in the engine and also allowed me to use less texture memory with one import, compared to using three. I packed textures either in Photoshop or in Substance Painter using RMA preset.
RMA Texture Packing
I mostly created master materials with different parameters and then transferred them into Material Instances. It made the scene perform smoother and allowed me to adjust parameter groups on the spot such as tinting over the base color and readjusting the roughness values to avoid going back and re-authoring certain textures. The master materials consisted of a unique, tileable, and decal materials and one for foliage.
Read more about the master material production here.
Working with the glass material I kept it very simple at the start and came back to it later. Based on the scene lighting and the meshes that included glass material (broken or not) I ended up using vertex color information where I could paint in certain aspects such as the glass cracks, the frosted edges and dusty/dirty stained glass.
Each display fixture glass mesh that was damaged had its own unique mask and normal information maps, and I used vertex paint on them to get control of the appearance.
Mask and normal map
One of the problems I encountered was the readability of the cracks. I was not able to get the result until I ended up adding the masks to the emissive output and a small value to give it more pop, so it could be read from a distance.
Lighting and post process
Lighting is always a challenge for me and it varies from scene to scene. I wanted to convey a natural sunset lighting outside with a bright natural lighting inside typical for a jewelry store with a lot of reflective elements.
The lights were broken down into the following groups to ease the balancing and management based on their location within the scene.
- Ceiling panel Lights (green). Lights along the ceiling panels were all static spotlights with the same values for each. They have mainly placed over the display fixtures and along the walls.
- Main Lights (red). These were the lights behind the actual counters and the storage area. They were set as static spotlights, but at larger angles with a higher intensity and softer fall-off with shadow casting. Lights with a very low intensity were also placed just below main ones to give a little glow and bounce back onto the ceiling with no shadow casting.
- Display Fixture Lights (pink)/Center Display lights (yellow). The main display fixture lights were static and only covered the area of each display, accompanied by another point light filling in the center of the displays with a low intensity and no shadow casting.
- Side Display Lights (turquoise). I used static spotlights for these areas and with a very low intensity and soft fall-off.
- Chandelier (blue). The Chandelier consisted of 1 stationary spotlight just below it with an angle to what I wanted it to influence and 4 point lights above each globe to get shadows of the chandelier casting back onto the ceiling.
During the process, I also added about 6 spotlights facing directly to the ceiling throughout the interior to gain more lighting information as it was too dark.
As with lighting, post process in UE4 can transform a scene from nice to stunning and let you achieve a look you were going for. Lookup table is an awesome feature that can help with this. I took a screenshot of the scene in UE4 after lighting was baked then moved it into Photoshop and made adjustments such as levels, exposure, highlights, midtones, and shadows. Then I brought the adjusted image back into UE4 as a lookup table and got the look of the scene I wanted to achieve.
Creating an environment takes time, that’s why start the projects that are manageable and do not go overboard. Spend as much time planning as possible before diving in as it will save time in the long run during the project. Collect feedback: the places like Polycount or Jeremy Estrellado (Dinusty) discord are great places for this goal. Finally, make things that inspire you as it will motivate you no matter what the project is.
I personally want to say a big thanks to Clinton Crumpler for his feedback during the project.