
Building Generator
Final Product:
The Goal:
Create a building generator with modkit assets
The Solution:
Use volumes to create point data.
Creating Main Walls:
After sampling the collision volume I added in an actor blueprint, I generated point data from the volume and spawned main walls with the data after the transform node. To add walls with windows, I added two more static mesh types in the static mesh spawner node.


Adding Ceilings and Floors:
With the same method I used to create the main walls, I transformed the points to generate ceiling and floor meshes for the building.


To give the ceiling a more sophisticated look, I added ceiling trims around the ceiling mesh.


I created points to add railing on top of the ceiling trims and used a branch node for the user to decide if railing meshes would be spawned, allowing more variation in the mesh generations.


To add more set-dressing props on the roof, I copied point data from the mesh I used to generate the ceiling and use normal to density to get the points on top of the mesh. I added signal pole, roof exit, and potential roof bushes (users are allowed to choose if they want to have bushes).


Make The Building More Interesting!
I added bricks to the corners of the building by subtracting points on the walls next to each other. For example, to get the corner points between the +Y and +X walls, I subtracted the point data between those walls.


I wanted to add meshes on the wall panels that don't have windows, so I used attribute filter nodes to filter out points that have the window mesh strings. Getting the difference between points from all wall panels and the results from the attribute filter nodes, I got points that are only spawning empty wall panels to add meshes like AC units, signs. Using the same method, I could add shades on top of the window meshes.


Sidewalks and Props:
I used create point grid node to generate new points to have sidewalks around the building. With public variables in the actor blurpint, the user can control the grid extent and size, and the grid would generate according to the location of the building.




Doorway Volume:
I used a volume with a doorway tag to create a mask for the doorway mesh to spawn when the volume gets to a certain distance near the building walls.


Graph Overview:

Resource:
Building Reference made by Dzmitry Doryn https://www.artstation.com/artwork/lVEmGe