top of page
Procedural Level Design Tools
As a level designer, blocking out levels can be a time-consuming task so I tried to create a tool to make this proces as efficient as possible with the power of PCG graphs in UE5.
This is a high-level breakdown of what the finished tool does.
Credit to Synty Store for their amazing POLYGON Horror Asylum asset pack!
Project goal
Building tool:​​
​
-
Create a tool for level designers that allows them to quickly block out interior and exterior playspaces in and surrounding buildings.
-
Walls must adhere to a spline and rotate correctly.
-
Every wallpiece should be swappable with window and door variations, with appropriate collision applied.
-
Content must be playable right away.
-
Easy to adjust with exposed variables.
​
​
Environment tool:
Add the ability to 'paint in' LD objects:
-
Blockers
-
Placeholder set-dressing to define playspace (paths and context)
-
Procedurally place objects to rapidly create environments (trees, rubble, rocks, hedges, paths, anything they can think of!)
-
Define spaces inside the splines to exclude from generating objects
​​​
​
Performance
Keep it performant by limiting drawcalls:​​
-
Being aware of material slots
-
Using instanced static meshes
Visuals to be added very soon!
Pre-viz
Building tools
Generating buildings​​
​​
-
The user can select PCG mode in the editor and pick the building generator tool to start drawing out a spline. The walls of the building will follow this spline an rotate accordingly.
-
The user can select different pieces from the dropdown 'Data Instance' list and pick what window or door piece they want to draw in. Can be easily removed by shift-clicking the object again.
-
Floor pieces are generated inside the building procedurally with some variation in tiles (damage vs undamaged) and rotation. These values can easily be tweaked in the graph.
​
Generating interior walls
​​
-
Interior walls follow a simple spline (loop off, not closed) and are used to create rooms within the main building.
-
Like the exterior walls, they can be painted in with doors and windows that are selected for interior spaces.
​
Extra:
-
Synty pack metrics were used, so every piece fits together perfectly.
-
Proper collision is maintained so built content is playable immediately: players can walk through doorways etc.
-
Easily add variations to the graph to create a more varied look (damaged vs. undamaged).
-
All generated objects are instanced static meshes for performance!
Visuals to be added very soon!
Environment tools
Scatter tool (PCG tool made outside of UE5.7's PCG mode)​​
​​
-
The user can draw a spline (closed loop) and generate trees, rocks, bushes (or whatever they want!) in an area. Variables are exposed so each instance of the spline can be set up appropriately.
-
Exclusion spline: the user can draw a spline to exclude zones from the generation zone. For example: trees will not generate on top of paths.
-
Seeds can be used to find the desired result.
-
Some objects have sockets to spawn objects alongside it.
For example: a tree has a chance of spawning a rock at the base. -
Possibility to create small, custom set-ups to spawn in as instanced levels to preserve artistic control.
​
​
Prop painting tool (PCG tool made inside of UE5.7's PCG mode):
-
The user can pick a prop from the dropdown 'Data Instance' list and start painting in objects.
-
Some props have rules like: 'free to place anywhere' or 'always up against a wall' etc.
-
Used to fill out a space quickly to show context of a space or establish the playable space.
-
'Random' rotation and size variations per prop if appropriate.
-
Props can easily be 'erased' by holding shift and clicking on the places object again.
​
Spline meshes for additional detail:
-
Allows the user to quickly place repeating objects like trims for buildings to increase readability, hedges etc.
-
Variations can easily be made for any object.
-
All generated objects are instanced static meshes for performance!
Visuals to be added very soon!
bottom of page