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. There is no support for interiors at this point in time.
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.
- 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.
- 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.
- 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.
- Only flat terrain is supported.
- There is no support for interiors.
- Roof tile generation is yet an experimental feature and can produce some wacky results if the buildings angles are not right.
- 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.
Report bugs or request features:
- Email me at firstname.lastname@example.org
- 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.
- Added new feature: “AutoScale?”. Automatically scales meshes so that they fit perfectly regardless of their dimensions. This feature is now default for ease of use, but I still recommend using it turned off and keeping all meshes the same width for the best possible results.
- Added new feature: “SocketMeshes?”. Spawns meshes on sockets. This requires that you add sockets to your existing meshes to work.
- Added new feature: “Trees?”. Spawns trees on the sidewalk.
- Added new feature: “StreetStuff?”. Spawns street stuff on the sidewalk.
- Added new feature: “RandomMesh?”. Randomly select a building mesh. This requires that the meshes you randomize from have the same dimensions.
- Signs now have custom data.
- Fixed bug where signs would spawn in corners.
- Roof stuff has a new spawn method allowing for more customization.
- Balconies and ladders now have a max building height on which they can spawn.
- Fixed bug where flat roof horizontal gutters would produce errors.
- Re-organized properties and settings. “CapBuildingEnds?” moved to settings.
- “CornerPillarWidth” renamed to “CornerPillarScale”.
- New placeholder meshes for the new features. Renamed some mesh folders.
- Changed name from “Simple Procedural Building Generator” to “Building Generator”. It was just too long to say.
- Fixed bug causing runtime generation to fail.
- Fixed bug causing “CorniceFirstFloor?” boolean to not function.
- Fixed bug where gutters were not properly positioned when their width was not the same as the building meshes. Should now support any type of gutter mesh regardless of width.
- Fixed bug where UVs were not generated on sidewalks and flat roofs.
- Performance optimization – Reduced draw calls by destroying unused HISM components. No longer matters how many meshes are referenced in the mesh arrays, will now only reference the meshes which are used in the generation itself.
- Added new feature: “Per Building Procedural Meshes?”.
- Fixed bug where the generation would fail when the “Mesh Width” was not an even integer.
- Updated description of “Building Width”.
- Spline based building generation.
- Deterministic (seed based generation).
- Modular (add your own meshes).
- HISM (LODs and few draw calls).
- Procedural Mesh generation for roofs, cornices, sidewalks and curbs.
- Export buildings using Unreal Engine’s Merge/Export.
Number of Blueprints: 1
Number of Meshes: 50
Number of Materials: 3
Network Replicated: No
Supported Development Platforms: All platforms should be supported (only Windows has been tested).