Games Production: Professional Practice (Lighting Rig Reflection and feedback)
Games Production: Professional Practice (Lighting Rig Finalisation)
This post is for the finalisation of the first professional practice brief.
I originally wanted to make windows for my scene so you could look out into space which would help cement the sci-fi theme. Furthermore, I thought it was a bit empty so I added a sun. This was going to be made in 3ds max, but realising I didn't have any more tri count for the scene, I decided to use the default sphere that comes with unreal.
Furthermore, I broke down the environment texel density to include the sun textures - https://www.youtube.com/watch?v=BAtUtTBs using this tutorial, it helped me create the sun in the background.
Furthermore, because we have to author the textures ourselves, I created the textures using substance designer and imported them into unreal.
![]() |
Sun texture using designer |
As to not make the sun look exactly like that in the tutorial, I went with something that was not only grounded, but contrasting. Because my interior is mainly orange, having a blue star like that of Sirius, it would provide some much needed offset and asymmetry.
To finalise the LCD screen and make it look like an actual screen, I followed this tutorial. - https://www.youtube.com/watch?v=wIQrNJUhVjA
Then when applied to a material instance, I could change some of the settings and use the emissive as a mask to only be affected by the effect.
![]() |
Render with photoshop post processing. |
The original screenshot was quite dark, so in photoshop I boosted the brightness and lowered the contrast slightly, furthermore, I added light bloom around the lights using the vivid light blend mode to give the lighting a halo around it to fake the emissive without it being ruined by Unreal's post process volume.
I additionally added a colour LUT to the post process to enhance colours like previously mentioned, additionally including a selective colour, which helped me identify what colours to boost.
As some additional feedback, I was given advice about the scene, how it looks 'too dark' - furthermore, I was told it looked a bit bare.
So I went back to optimise my environment a bit more, by doing so, I was able to add a cylindrical mesh which would act like cable.
To keep within the tri count, I invested my time into looking at making a spline mesh to help with instancing within engine. This gave me the ability to create a cable within engine without affecting my tri count by individually modelling the entire cable in 3ds max.
![]() |
Spline mesh Blueprint construction script taken from this video by Ryan Laley - https://www.youtube.com/watch?v=eKIiWa19EMI |
Working on feedback, I additionally added an extra prop, it was difficult to get around a UV problem. When I tried to re-import the mesh into substance painter, which included the new prop, I wasn't able to because of it being located on a drive that my PC didn't recognise. So as a work around, I textured the prop in a separate substance file, exported the textures, then I exported a 'render UVW template' from 3ds max, of which, I put in Photoshop and erased around the props to add the new prop to the sheet.
Self Directed - Abbey Pumping Station Compositional Thumbnails
As Part of self directed, I went to abbey pumping station with the 2nd year students to draw on location and gather some photo texture reference.
Here are the compositional thumbnails I generated.
The purpose of this task was to see what interesting angles and objects I could include, it was about quick mark making to store enough information for future reference.
Games Production: Professional Practice (Week 4)
This week's focus was on finalising assets and the engine imports.
I have had issues with unreal 5 in the past, due to lumen not being compatible with screenspace effects by default, I felt like I lost control with some of my projects, however, I found out how you can re-enable the SSAO within the post process volume. Typing this command into the defaultengine.ini config file, I was able to regain control of the ambient occlusion.
r.Lumen.ScreenProbeGather.ShortRangeAO=0
![]() |
Screenspace Ambient Occlusion now re-enabled in engine |
![]() |
Setting up emissive via material only on the Material IDs attached to meshes. |
![]() |
Rig imported into the level. |
![]() |
Rig animation test gif |
Using the Level sequencer inside unreal, I was able to fulfil the implied functionality like in the concept that was provided in the brief.
![]() |
Example of level sequencer with keyframes for animation loop |
For the props, I was originally going to the crate on its own. Until a friend mentioned to me I could possibly do something on top of crates, so I opted for a bolt and spanner, which would act as narrative as if someone was helping to fix the rig with some old school equipment.
I managed to get all of these within budget of the required 2k tris for the narrative prop budget.
Floor texture inside Substance Designer |
Going along with the consistent texel density, this floor texture I made in Designer came out as a 512.
When looking at my reference from Star Citizen, I saw a few references that had rubber style flooring.
I couldn't remember how to find/create a triangle inside of Designer, so I created a base rounded triangle inside of Photoshop, then imported it into Designer.
I plugged this into a tile sampler, which allowed me to make a pattern in the floor, I then dragged this directly in to the normals. I left the normal intensity as default, mainly because I would come back and edit the normals using the flatten normal node inside of Unreal.
Games Production: Professional Practice (Week 3)
This week I wanted to focus on texturing and start importing in to engine.
Last week I showcased the start of the rig and the baked normals I was going to use for the model.
I also broke down my textures into subsections, here are the textures that I ended up creating for the rig:
![]() |
Base colour decal atlas (512) (Includes Base colour with Opacity) |
![]() |
Additional bump normal map for rubber (256) (Just Normal) |
![]() |
LCD Screen (512) (Includes Base colour, Channel pack and Emissive) |
![]() |
Metal Tiling texture (1024) (Includes Base colour, Channel pack and Normal) |
![]() |
Normal decal atlas (1024) (Includes Base colour with Opacity, Channel pack and Normal) |
![]() |
Additional scratch map (256) (Includes Base colour and channel pack) |
The idea behind some of these textures, most notably, the Base colour decal atlas, I left this white so I could control the colour inside of Unreal using a Constant 3 Parameter, this gave me the opportunity to change the colour from white to whatever I wanted when applied to the material instance.
Furthermore, I added material IDs to the mesh decals that I wanted to control with these parameters (Most are colour coded).
For example, the green parts of the rig represent the green metal that would be applied to them. Not each part needed a material ID, but a lot of planning needed to be undertaken here to understand what would be most effective to transpose these materials inside unreal.
Often grouping material IDs for certain colours, like mentioned before was the easiest form of affecting the mesh inside engine.
My method was to unwrap the meshes on the required UV sheet within max, then apply a material ID to the specific part I wanted to alter or change colour of.
The same method was applied to the environment as well.
I made sure to colour code my mesh decals so I could apply a material instance to them when it came to finalising the mesh in unreal.
I also made sure to material ID the pipes, 1 would have an emissive (marked in blue) and another would be metal pipe which would change colour (marked in purple) this way I could change the colour of both materials and add an additional emissive boost on to the emissive to increase the brightness.
Material IDs/Colour shift in action after the fact:
![]() |
Example of me changing colours via parameters |
![]() |
Base colour atlas material with albedo shift parameter |
![]() |
Normal decal atlas overlaid with the base metal texture, albedo shift and a normal intensity parameter |
![]() |
Plastic vinyl (from environment) connected to an albedo shift parameter |
Self directed - Primary research texture gathering
This year I wanted to enhance my workflow, whether it is to speed it up or to help the texture quality.
I discovered the usage of substance sampler and how it can be utilised to create photoreal textures from images.
Games Production: Professional Practice (Week 2)
This week was the start of building the base assets.
I went ahead and blocked out then refined the mesh, making sure to split the asset into the equal parts needed in order to fulfil the animation requirement.
Which meant I had to split the base, lifting section, 2 light arms and swing handles into separate assets.
When reaching out to my contact, they talked about how the workflow sometimes require modelling with ngons as hard surface modelling is easier to unwrap using ngon workflows, additionally it is easier to add weight faced normals to a mesh.
I started off with some ngon modelling, but then decided to triangulate the mesh, because auto triangulation could have gone wrong and resulted in incorrect shading on the model itself.
After the finalisation, I went around the model and started optimising and getting efficient optimisation edge loops to preserve my tri budget, because in theory, the more budget I had to play with, the more I could include on the model in terms of mesh decals.
There isn't much of an issue diverging too much from the original concept, as long as the base forms of the model are there, there wouldn't be problems adding additional surface details in terms of decals.
One problem that was encountered fairly early on was test runs of the rig, which resulted in the export of the model reverting to inches by default.
It confused me at first because I was modelling in centimetres, but didn't realise why it was converting to inches, but then tweaked the export options to export as centimetres.
Environment:
These pieces are all modular, being at 300x100, 100x100, 300x300 and 100x300 respectively, meaning they all snap in to place in unreal engine.
Mesh Decal Baking plane:
In preparation for the baking phase, I created a decal atlas for the normals, of which I would be assigning to the rig. This consists of some insets, bolts, handles vents, covers, etc. Which would add to the workflow and create some extra depth through these smaller details on the model
Games Production: Professional Practice (Captain's Table reflection)
This post if about the reflection of my Captain's table project. Overall, I enjoyed this project more than the light rig, as I feel like...
-
This week I started to put my assets into Unreal engine. Most assets remain untextured at this stage, so I was able to work on the composit...
-
Here is an update post to my level, a lot of the texturing is finalised, but I want to add some extra settings to my scene to make it stand ...
-
To finalise my captains table, I wanted to make sure I checked off things from the brief. For example, I made a flythrough for the level, wh...