Backroom Project - Environment Rundown
Initial Concept Phase
Couple of research we did to start with production
- Research on underground hallway designs and structures, including props arrangements
- Researched on backroom
- Research on lighting
- Tested to fix the proportion of character and hallways, making sure it can be modular. this is a back and forth process where a lot of resizing can occur. in this process we determine
- How high the hallway should be
- How wide the hallway should be
- What is the play area
- Collisions and vision blocks
- What is the door size based on character movement and jump
- Afterwards we made sure the walls and floor can be modular, the size fits 1x1 grid. this is crucial for the modular system to work later in development. This process go throughout for every modular section we import like doorways, doors, Entrances etc.
Process of creating seamless floor material
Comparing the actual images, The dirt and dust usually accumulate on both sides of the hallways, while center remains less dusty but more reflective because the surfaces scrape off either by more walking, more brushing, dragging usually that occurs in hallways. to reflect that kind of look addition to a rundown look we created a material
- A base texture is taken from Megascans , This color is set with desaturation and Tint variable to give more control on color
- A mask texture is created from substance designer, This masked texture uses 3 color R, G and B, where R = Gradient that maps 2 side of the hallway to create dust accumulation. G = Grunge map to multiply with the gradient to give dust effect, B = Cloud map to reinforce randomness to the grunge map. These 3 textures are combined together to use as a mask for the material
- Another texture is taken that is dirt. This dirt is then masked with the heightmap of the dirt and the mask we created to give the visual representation of dirt on both sides rather than everywhere
Roughness / Reflections
- Other than base reflection we added a "wipe" roughness map, this represent attempt to clean. its a nice touch to a concrete surfaces specially a hallway.
- The concrete surface roughness is also subtracted by the dirt roughness to give variation and realism
- Reflection is tested on multiple angles and adjusted multiple times as the project progresses
- Other than base normal from concrete we added dirt normal maps on the correct position of dirt. we kept normal minimal to save shader and memory costs. Normal is also reduced to give a smoother effect
- Rather than base UV mapping we used world position mapping to prevent stretch and scale of textures. this is crucial when making things modular
Process of creating seamless wall material
Process for wall material is the same as floor material with some additional workarounds that took longer than floor material to finish.
- 2 additional textures are used to give variation (base, drip, Grunge) This include normal maps and reflection calculation based on angles
- Mapping is world position but we had to do a different process as mapping towards X and Y handles differently, GB is used for X axis and RB is used for Y.
- Dirt is accumulated towards the bottom, this uses a separate mask texture
- Added an additional paint layer, the paint strips are mathematically created in a way you can adjust the top and bottom to create variations of walls
- Walls and Floor material can be customized in multiple different colors and give multiple of endless variation.
Importing and Creation of Props
- Hallway door, Doorway wall pieces are created in blender. these are fit to the environment and modular sizes. the door was resized multiple times to see what’s best to fit the character.
- Mega scan assets are used for most of the props
- Some mega scans assets are modified from blender to benefit the project like the light from the junction is a dead rusty light which I added a different material index to light to make it glow.
- Mega scan LODs did not look good on the project so it had to be removed and regenerated
- The props are rearranged multiple ways and multiple test was done to make sure all collisions are set and player don't get stuck in-between any props.
- Some materials are made from scratch to represent a realistic objects like the fluorescent light has a custom made material that represent fluorescent lamp when turned off
Cables and Splines
- Cables are modeled and textured using substance painter
- Cables are a blueprint actor that runs a spline script from construction script.
- The spline script is made where for each look of spline index (x) a mesh is spawned and transformed alongside the spline. this can be altered and fit to the environment.
- For cables a separate material is created that material is being used for custom props too.
- Details, Dirt dust and wall damage decals are imported from Megascans. they are then color adjusted and fitted to environment with a trail and error manner. each decal actor is tested to make sure it does not bleed into character or props in the level.
- Blood splatter decals are modified to use it as water instead of blood splatter. this acts as a reflection point on the ground. these are set on points where you can see the reflection of light in some angles to give a good first expression.
- Number and text alongside some signs are made using photoshop
- A blue green dark theme for the project was chosen because that is commonly used in horror movies and games.
- Fluorescent light has a slight blue tint to it, while conflicting color as red. we avoided using postprocess to adjust the color as much to retain other colors in case any color comes crucial for gameplay.
- Shadow is slightly tinted blue and reinforced to produce more dark areas.
- Tested Screen space global illumination, even though it produce a good result it gives a slight visibility based on the light on screen. that can obstruct gameplay specially in a horror theme gameplay, The process was undo, and had to move forward with no global illumination.
- A light function and material for flickering light was made using random sine nodes. this is purely GPU driven for optimization reasons.
- Some lights cast volumetric shadows and volumetric lighting. each light has its own unique volumetric value to give a bit more variation
- There are some lights that does not cast shadow or specular. these light act as a fake Global illumination.
- Noise and Vignette and Screen dirt is also used to reinforce the grunge environment.