Building Generator is a blueprint-based building generator which can be used to quickly generate buildings. It only requires meshes and then the spline-based algorithm will take care of the rest. Because it is based on splines you have full control over the primary shape of the building. The blueprint is also capable of generating several buildings at once which are based on a grid making it possible to create entire blocks or cities quickly. Floors and stairs can now be generated as well!
Showcase.
Latest update.
Video walkthrough.
Adding Quixel content.
Documentation.
Merge buildings.
The buildings are generated from the ground up during each cycle based on the properties given. The generation method is deterministic (seed based) meaning that the exact generation can be regenerated given the same seed and properties. Building length, width and height can be determined prior to generation whilst adding random values. Likewise, the properties of each building can be altered. These properties include, but are not limited to, roof, cornice, curb, gutter, entrances, signs etc. Both Lumen and Nanite are compatible, and collision can either be simple or complex. Generation during runtime is possible. The buildings are game ready in terms of draw calls as they are utilizing Unreal's HISM (Hierarchical Instanced Static Mesh) which also support LODs. The roofs, curbs, sidewalks and cornices are all generated using procedural meshes.
Features:
- All meshes are interchangeable (note, not the procedural meshes - curbs, cornices and roofs).
- Single or multiple building generation.
- Easy to control spline system that dynamically adjusts to the terrain.
- Adjust building height, width and length.
- Simple interior support - Floors and Stairs.
- Automatically scale meshes to fit perfectly or utilize the non-scale circle-circle intersection method for non-scaled building meshes.
- Custom data on building meshes, signs and socket meshes.
- Slanted or flat procedural mesh roofs.
- Curb and cornice custom profiles using curves.
- Spawn meshes per building mesh based on sockets.
- Balconies, gutters, roof meshes, curbs, signs, trees, street meshes and more.
- Per building procedural meshes allow for variance in materials.
- Bake buildings down to static meshes using Unreal's merge tool.
- Automatic forward axis on building meshes.
Limitations:
- Tri-planar texturing is advised on the procedural meshes due to the UV-unwrapping method (per face).
- Slanted roof does not support smooth shading or beveled edges.
- Procedural meshes do not support Mesh Distance Field Generation and can produce non-optimal Lumen results when inside a building.
- Roof tile generation is yet an experimental feature and can produce some wacky results if the buildings angles are not right.
Noteworthy:
- When generating large cities, it can be required to increase the "Maximum Loop Iteration Count" in the project settings.
- The included meshes are meant as placeholders and are low poly.
Support:
Update history:
V11
- Added WIP "SpawnType". Note that i have not figured out a way yet for the procedural mesh component to persist through level switches or editor reloads so use with caution. I still recommend to use HISM which is the previous standard of generation. "Persistent HISM" will spawn individual HISM connected to each "Persistent Building" , meaning that they are not dependent on the Building Generator. "Static Mesh Actors" each mesh is spawned as a individual static mesh actor allowing you to delete and modify specific mesh segments.
- Added "Entrance Override" which allows you to specify where you want the entrances to spawn and how many.
- Fixed "Roof Z Offset" not working with slanted roofs.
- Fixed "Curb Z Offset" to take into account foundation height.
- Fixed a floor generation bug when building is on sloped terrain.
- Building Generator is now an importable asset pack rather than a complete project!
V10 Video
- Added floors. Adjust floor thickness, offset first floor and per floor procedural meshes with random materials.
- Added support for primitive staircases. Adjust the amount of staircase cutouts, dimensions of the cutout, offset and auto scale staircase mesh on the Y axis.
- Corner pillar now fully replaced with a user defined corner pillar mesh. Added an offset Z value as well to the corner mesh.
- Foundation Z offset. Override the foundation height of the building.
- Added "CorniceAllFloors?". Adds cornices to all floors instead of just the top and bottom.
- Capped building ends and auto scale caps now support interiors. Adjust wall thickness and interior/exterior cap material.
- Fixed "VisuaizeSpline" when using auto build.
V9
- SM6 is now on by default to support 5.1.
V8
- Added "AutoForwardAxis?". Automatically determines the forward axis and rotates the mesh accordingly.
- Added "X ForwardAxis?". Set the forward axis of the building meshes which are being used. Use this in conjunction with GlobalMeshRotation.
- Added "GlobalMeshRotation". Rotate the Building meshes along the Z axis.
- Added "TreeOffsetZ". Offset trees up and down.
V7
- Added preliminary support for uneven terrain. Curbs will appreciate a flat slope. Entrances can be tricky.
- Added auto align to the spline. It will now always align to whatever it is under and is no longer sensitive to differences in Z value.
- Added "AutoBuild?". Automatically update the buildings in real time (in editor). This just means that the code is now present in the construction script as well. Be careful when generating large cities when this auto build is active.
- Added "CurbZOffset".
- Added "TreeScale".
- Added "TreeRandomRotation".
- Removed "Z Reset" button as it is now obsolete.
- Moved "AutoScaleCap" to settings.
- Fixed bug causing the gutters to have a world transform.