top of page
UnderConstruction

A plugin for Unreal Engine
 

A selection of shapes and tools for improving the iterative process for Level Designers when prototyping.

Plugin details
 

  • Collection of utilities for blocking out levels

  • Mesh sculpting for creating caves

  • Easily generate, update and bake Static Meshes

  • Cold Storage system for swapping between different types of meshes

  • Editor Utility Widget helper tool for a more streamlined workflow

  • Workflow example project

GithubLogo_edited_edited_edited.png

Github repository
 

Including both the example project and the free to use plugin, which can easily be migrated to your own project without dependencies. 

Full project documentation Coming soon
 

Step-by-step guide covering plugin migration, how to use the shapes and tools, generating and baking meshes, and workflow examples.

// Shapes

Basic shapes for blockouts

​​

The plugin features three primary shapes to utilize for blockouts and level prototyping.

 

  • A cube with support for boolean operations.

  • A cylinder which can be hollowed out and and cover a set amount of degrees. 

  • A triangle/ramp with individual points to modify.​

CubeGIF.gif
RevolveGIF.gif
TriangleGIF.gif

Dynamic meshes

Built entirely with Blueprints using Geometry Scripting. Shared functionality is handled in a parent class, including Static Mesh generation, baking and material ID management. Each shape can be modified via vector handles or editable values in the Details panel, providing exact measurements between disciplines. 

It's versatile, user-friendly and ideal for efficiently blocking out more complex geometry.
Using Dynamic Mesh actors at runtime on a larger scale have an impact on performance, which we circumvent with Static Mesh generation. 

// Cliff generator

Developed specifically for Fred is Lost
 

The first level of my puzzle project is based on traversing a set of smaller islands with surrounding cliffs.
After identifying the need to have a platfom generation tool to quickly test the layout, I built one inheriting from the Dynamic Mesh base class.

Platform generation
 

Shaped by moving points along a closed spline and appending the mesh floor from the sampled points.  The uniform slope angle is calculated from the center point of the mesh and extruded downwards to imitate a cliff with flat ground.
 

Mesh sculpting
 

Spline based cave and path carving tool.
Controlling both the shape and direction carved into the selected mesh by rebuilding the geometry after applied boolean and cleaning up unwanted triangles.

Can be applied to multiple target meshes at once.

 

// Additional tools

Combining Dynamic Meshes
 

Generating a large amount of static meshes in succession is quite tedious.
By combining before converting, which automatically removes hidden and overlapping triangles, the mesh generation got more manageable. The tool also preserves the world relations between copied meshes to local space and remaps their individual material ID when baking to Static Meshes. 

// Asset management

Replicating Lyra's Cold Storage system

​​

Static Meshes can be generated by calling the in-editor function from the base Dynamic Mesh class. 

An asset key is generated when the mesh is created, which is needed when toggling between the two types of actors. If the Dynamic Mesh is later modified, the updates can be baked to the set Static Mesh asset.

​

The Cold Storage system from Epic's sample project Lyra is implemented in UnderConstruction. The intricate system utilizes mesh containers and editor actions to copy properties between actors.
The process is made more user-friendly with my Mesh Management helper widget. 

HighresScreenshot00000.png

Helper widget

​​

To streamline the process of toggling between Dynamic and Static Meshes during level prototyping the tool guides you through the actions needed. The dropdown sorts and populates all active Dynamic Meshes in the level. From the widget each actor can be generated and baked to a corresponding static mesh, identified by the asset key, and switched between type by utilizing a Cold Storage system. The widget gathers all editor actions in one place to assist you from having to navigate different interfaces. 

In addition, the tool helps you focus selected meshes in viewport as well as temporary hiding them in editor and during runtime. 

// Workflow example project

A practical guide to the plugin

​​

Each step of the process for using the shapes and the asset management is documented for ease of use.
An example map is provided to guide you through the Cold Storage workflow. There's no dependencies between the project and the plugin to make it easy to integrate the plugin to any project.

HighresScreenshot00001.png
HighresScreenshot00002.png

Additional notes

The plugin is my take on simplifying an existing system and workflow to practice teaching and showcasing technical design. I've added complementary functionality to make it a little bit more intuitive to navigate. 

I use GeometryScripting to a large extent, and I highly recommend all Level Designers to give it a try.
Working with a widely interconnected system like Cold Storage together with editor utilities and asset management have been very informative and inspiring. 

bottom of page