The Interactive & Immersive HQ

A Look at Unreal Engine Procedural Generation of Content

The Procedural Content Generation framework is one of the exciting recent additions to Unreal Engine. Introduced with version 5.2 in May of this year, it provides a robust tool set for procedurally generating content in Unreal Engine without the need for any additional software or plugins. In practice, it can be used for a wide variety of applications, ranging from entire planets to much smaller features like moss growth on a tree branch. And it doesn’t just have to be used for generating 3D assets either! In this post, we’re going to take a closer look at Unreal Engine’s Procedural Content Generation framework, including the basic functionality, examples in use, and recently added updates.

Unreal Engine Procedural Content Generation Framework: The Basics

Procedural Generation at Any Scale

Unreal Engine Content Generation
PCG Framework Example. Source: Unreal Engine Blog.

So, what exactly is the Procedural Content Generation framework in Unreal Engine? The framework allows artists and designers to procedurally generate content in Unreal Engine without the need for any external tools or additional plugins. It can be used to rapidly populate environments with assets, whether that means adding buildings to a city or trees to a forest.

As mentioned in the intro, Procedural Content Generation doesn’t always have to be used for large scale environment generation, either. In the example below, it is used to procedurally populate mushrooms on a log.

Unreal Engine Content Generation
Procedural Generation example from a tutorial by Adrien Logut.

Procedural Generation in Real Time

Another exciting aspect of the Procedural Content Generation framework (PCG) is that it can also be used in real-time. According to the press release from version 5.2 of Unreal Engine, the PCG “offers the ability to populate large scenes with Unreal Engine assets at your disposal, while including both in-editor tools and a runtime component.”1 Environments, level layouts, and more can be made responsive and dynamic in a whole new way.

Unreal Engine Content Generation
A typical Procedural Generation node graph. Image Credit: Epic Games.

For users already familiar with Unreal Engine’s node-based programming environment for blueprints and materials, using the PCG framework should be a breeze. It uses the same node graph system, but with nodes specific to the PCG framework.

Many examples, including the one we’ll look at next, focus on the use of Procedural Content Generation for creating natural looking environments, but it’s important to note that the framework can be used with any asset in Unreal Engine.

Electric Dreams: Procedural Content Generation in Practice

Unreal Engine Content Generation
PCG Framework Example. Source: Unreal Engine Blog.

The example images of a lush, green forest seen above and in the last section are actually views from the Electric Dreams Environment Sample Project, a freely downloadable project file that showcases Procedural Content Generation in action on a large scale. Electric Dreams was first shown as a demo of new Unreal Engine features at GDC 2023 and has since been released to the Unreal Engine Marketplace.

Unreal Engine Content Generation
The top line of text reads: “This area is procedurally generated using the Procedural Content Generation Framework.” One word: wow!
Source: Unreal Engine Docs.

Aside from the very (!) visually impressive content, the Electric Dreams project is also a great learning tool for users looking to dig into a high-level example of PCG in use. As seen in the image above, the levels are filled with text descriptions that provide reference for the techniques used.

Tools For Refining PCG Asset Placement

Sometimes, it’s important for the PCG system to know where not to place an object in a particular location. The examples in Electric Dreams showcase useful tools and features for fine-tuning the procedural placement of assets that might be less obvious to first-time users. In the following image, large flat stones are procedurally placed into a level using PCG, but end up partially floating because of the terrain and objects already on the ground.

Unreal Engine Content Generation
Source: Unreal Engine Docs.

The next image shows the use of the Flat Area Detector Subgraph, a tool which is used to detect whether an area is flat enough for the placement of an object. In this case, it is used to find suitable locations for placing the flat stones. Pretty cool, huh? This is just one example of the tools available for refining and customizing PCG within your project.

Unreal Engine Content Generation
Source: Unreal Engine Docs.

As the above examples illustrate, the Electric Dreams Environment Sample Project is a great resource for hands-on learning about Procedural Content Generation. If you’re interested in learning more about how PCG is used in the project, check out the Procedural Content Generation in Electric Dreams article from the Unreal Engine Docs!

Get Our 7 Core TouchDesigner Templates, FREE

We’re making our 7 core project file templates available – for free.

These templates shed light into the most useful and sometimes obtuse features of TouchDesigner.

They’re designed to be immediately applicable for the complete TouchDesigner beginner, while also providing inspiration for the advanced user.

PCG Updates in Unreal Engine 5.3

Unreal Engine Content Generation
New PCG Feature in UE 5.3: Rule Processing from External Data. Source: Unreal Engine Docs.

As the PCG framework is still a recent addition to Unreal Engine, improvements and new features are being added frequently. In the most recent release, which dropped several weeks ago, a couple of PCG features were included. Most of these were workflow or performance improvements, but one that stood out in particular is the new ability to process data from external sources like Alembic point clouds and data tables, and produce artifacts on target actors.

Wrap-Up

As usual with most topics related to Unreal Engine, we’ve barely scratched the surface of the many, many possibilities that the Procedural Content Generation framework has enabled. In fact, as a recent addition from only months ago, it’s likely that those possibilities will continue to expand as more people use and experiment with the framework in projects of their own to achieve a unique final result. Hopefully this post has you excited to try out the PCG framework in your own Unreal Engine projects!