Procedural Buildings in UE4: Logic Behind the Tool

Renaud Berger, a team member of EXE Collective, talked about their Houdini-Based Building Tool for UE4 that can assist in making different sorts of buildings quickly and efficiently.

Introduction

There are three people in EXE Collective: Renaud Berger (me), Guillaume Catteau, and Thomas Marcotte. We are Franco-Belgian freelancers who known each other since 2001, during the studies. At that time, we worked on a project and kind of stuck together afterward as we became friends, had common artistical sense and also realized that complemented each other professionally.

As we were building our careers, we tried as much as possible to share the work between the three of us. Eventually, we realized that it would be really cool to present ourselves as a team. We didn't start a company because we wanted to keep our freedom as individuals and avoid any money-related contentions.

Nowadays, we mostly work for apps, VR projects, and indie games, either as artists or devs.

Like I said earlier, we are very complementary. Besides being a great artist, Thomas has technical skills and knows how to code. Guillaume really shines in concept art, game design, and art direction. And I am more into pure 3D art, moodboards, inspiration research, and characters. With that being said, there're no defined roles in our team, especially when we work on side projects, but I can still safely say that Thomas usually backs us up as a tech artist and a problem solver.

Houdini-Based Building Tool for UE4 & City Project

Though we are a team, we often work separately whenever we get free time to do things on the side. At some point, we thought it was kind of ridiculous and we decided to make a huge underground city.

We knew that we wanted something original, outstanding and out-of-this-world. We also wanted to create a city that looked ancient but still functional, kind of like historical European cities with layers of different architectural styles blending into each other. We talked about the background of the city, how people lived there, and what we would need to make the city believable. Since the buildings were going to be placed densely resulting in little light coming through, we identified that we would need a lot of reflective materials like metal or ceramic to enhance that light.

Of course, we had to rely on some references in order to maintain coherence, so we began to search for ancient Mesopotamian art, Central Asian architecture (for example, such Uzbek cities as Samarkand, Khiva, or Bukhara), Scandinavian elements... and try to blend everything together!

From the technical point of view, we knew from the start that the project would be too huge for three of us, should we want to make it exactly as we planned. Therefore, we were in need of a procedural but very customizable approach in order to mass-produce houses, workshops, palaces, and other things quickly.

As a result, Thomas began working on this Building Tool relying on our brainstorms during which we shared ideas and discussed functionalities. This kind of thinking has to be applied to everything in this project because we anticipate that we'll need a lot of different procedural tools.

Examples of the building made with the tool

Creating Meshes for the Tool

As said above, the tool had to provide as much customization as possible. We listed the key elements of a building we'd need (walls, eaves, fences, columns, etc.) and arranged them into sets in the tool. After that, we went to Maya and created meshes for different sets.

1 of 3

In Maya, we always work in meters. Each mesh in a set must keep the same width, usually a multiple of 2 to ease the creation of buildings afterward. The meshes have to be named with a specific prefix (flat_, window_, corner_open_, corner_close_, etc.) and placed in specific folders (e.g. wall/set1_name_width_height/VARx) to be found and understood as a set by the tool. In the tool, each set is listed in the drop-down menu. From there, you can change the set globally or element by element (for instance, if you want to change the corners of your eaves).

For texturing, we make 4 atlases of the same mesh and place them in a UDIM tile (each atlas takes a quarter of a tile). We do that for all the meshes in the set and send the results to Painter to quickly create variation. In Unreal, we made a material that picks a quarter of the texture randomly to break any repetition.

1 of 3

How the Tool Functions

For each set, the tool will ask at least 3 meshes for walls, two corners, and a floor. Then you might want to add windows and doors. The tool will place windows randomly on your walls, but the placement can be controlled, and a random seed can be used for placement variation.

For the doors, you can display ID to identify where you can place them. Of course, you can add as many doors as you have ID available.

In Unreal, when you start to create a building, you have to draw a curve on a grid. This curve will be used as a base to shape all your floors. The curve is used as an input for Houdini to create the necessary points where your walls will pop up. The grid cell size is defined by the width of the straight wall. If your curve changes the direction the tool will place a corner there.

Once you created the curve and the walls are there, Houdini will output a ceiling mesh on top of your floor to fill the gaps. This is the only mesh created automatically.

You can add as many floors for your building as your GFX card will support. Each can be edited separately or just duplicated. For each floor, you can modify the covered surface by clamping the values of the start and endpoint of your curve. The floor will then be trimmed to form terraces or balconies. Also, you can offset your floor's position and extrude the walls to make some size variations in your building.

Cornices can also be changed: you can extrude them globally or set the point where you want your cornice to be extruded. If you use pillars, they will automatically fit the new shape to support the extrusion.

We also have Extention where you can add and place props, ornaments, bow windows. It works the same as with doors: you have a list of IDs to choose from and you can add whatever you want on them.

Tool for Community

We created this tool for a precise goal (i.e., for our project in particular), and it fits it quite efficiently. But, as written before, Extension allows the user to add meshes that have not been planned previously and create more complex building shapes. Also, once you finish the building, you can blend blueprints in Unreal to further upgrade the buildings and create palaces, castles, and so on.

As it is mesh-based, the tool can be used for any kind of architectural style. The artist can keep on doing what he/she wants, and the tool will simply help to shape the building.

Speaking of game production, the tool can also help level designers to prototype cities and test navigation there.

Obviously, this kind of tool is super useful if you want to create a lot of different buildings quickly. I don't think our small team would manage to create a full city if we had to model each building.

1 of 2

Renaud Berger, 3D Artist

Interview conducted by Kirill Tokarev

Keep reading

You may find this article interesting

Join discussion

Comments 0

    You might also like

    We need your consent

    We use cookies on this website to make your browsing experience better. By using the site you agree to our use of cookies.Learn more