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!
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.
- Four procedural roof types, gable, hip, shed and flat roofs.
- Courtyards.
- Free-form mode allowing for control over each individual spline point allowing for a custom building footprint.
- Simple interior support - Floors and Stairs.
- Async generation during runtime.
- 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:
- Discord
- aulden.carter@gmail.com
Update history:
V12A
- Fixed the procedural mesh component not being visible.
- Fixed persistent buildings causing a lag spike when selecting them.
V12 Video
- Added new roof type, "hip roof".
- Added new roof type, "shed roof".
- Added courtyards.
- Added free-form single building allowing you to freely decide the footprint of the building using spline points, experimental feature.
- Added "Async?" and "AsyncFast?" which reduces lag when generating during runtime.
- Persistent buildings now have persistent procedural meshes.
- "PerBuildingProceduralMeshes" is now deprecated, all buildings are now their own entities, ie they have there own HISMs and procedural mesh components.
- Random building width, height and roof slanted height are now condensed into one variable each.
- Added option "AutoAlignSplinePoints" which turns on or off the automatic terrain adjustment.
- Reworked the roof tile formula, should be a lot cleaner now (still not perfect).
- Added "RoofTileAngle" which allows you to fine tune the angle of tiles.
- Added "RoofTileApexZOffset" which allows you to offset the apex tiles up and down.
- Added intermediate apex tiles for the gable roof.
- Added "RoofTileCastShadow" which switches on or off shadow casting for roof tiles.
- Fixed bug causing random sidewalk material to not work.
- Fixed bug causing streetlights not spawning when "RemoveSomeStreetLights" was active.
- Fixed bug causing corner pillars to not reach the ground when building on a slope.
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.
Technical Details
Features:
- 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: 55
Number of Materials: 3
Network Replicated: No
Supported Development Platforms: All platforms should be supported (only Windows has been tested).