Procedural Buildings

May 11, 2018

For my short film Requiem, I made a Blueprint to quickly and randomly generate Parisian buildings.

The Blueprint can be divided in 3 main parts :

  1. Get the dimensions of the building
  2. Set the characteristics of the building
  3. Construct the building

Dimensions of the building

I used a vector to get the size of the buildings. For the Requiem project, I set fixed dimensions for all the elements that are part of the buildings. The vector and the different sizes are allowing me to calculate the number of stories and the number of meshes in length and depth.

Next step : to allow any size of mesh for more variations in a city

Characteristics of the building

It’s in this section that the uniqueness of the building is defined. For each characteristic that follows, a random choice is made between all the meshes available. For Requiem, I only had to time to do 2 variations, sometimes 3, for each module. But the Blueprint is designed to add endless variations. Here is the list of what is randomly chosen :

These are the main architectural characteristics of the buildings. Other elements are defined later in the Blueprint :

The main problem with my Blueprint is that everything is redefined each time I change the position or the orientation of the building or its size. It’s something that I definitely have to keep working on.

Next step : to stock all the characteristics in an array and add a function to redefine them only when I need to.

Construct the building

Finally, I created multiple functions to construct the building : ground floor, floors and the roof at the end.  I used a bunch of “Add static mesh” nodes with loops on the number of modules in the building height, width and depth. I used some socket to place the balcony and all the ornamental moldings.


Now, the main goals are to optimize the Blueprint and to make it more user-friendly for a level artist.  Indeed, I have to think about the changes a level artist has to control and the ones he doesn’t need to to build a city with this tool. Once this step will be over, I’ll be able to increase the number of modules for each characteristic and eventually create architectural group styles.


Scroll Up