Blender Geo Nodes: Platform Generator
REQUIRES BLENDER 4.1
A platform generator made with geometry nodes with lots of parameters to control and customize your model. Simply by adding new planes the node will automatically generate a platform-like structure with procedural meshes or using custom made assets. If you encounter any problem read the FAQs down below and if that doesn't solve it feel free to message me in the Youtube comment section and I'll try to guide you to a solution.
The core functioning of the node is that at each vertex it will spawn a pillar, at each edge a support beam and on each plane it will instance planks following the general direction of the face.A lot more customizable details will be generated as well. There are a lot of ways to customize the placement and scale of each piece and choose a different style for your platform with ways to scatter objects on it and control the scatter areas via vertex groups.
The node comes with premade assets to create six different styles of platform like the ones you see in the previews.
FAQ
Can I export the platform I make to use it in my game?
Yes, it might not be export ready and some work is required but it should be easy enough. Also make sure to check the "realize instances" checkbox before applying the modifier.
I installed the add-on but it's not appearing in the add-on window.
This is a geometry node setup not an addon so no installation needed, if you want to use the node in a new Blender file just append the node (go to File>Append>look for the location of the downloaded Blender file>Node Tree>Platform Generator) or use the asset library.
When I apply the modifier to export the mesh something disappears.
It's because the node uses instances instead of real geometry to save memory. To realize the instances there is a checkbox near the top of the modifier tab. Make sure it's checked before applying the modifier, this way nothing will disappear.
When I open the file it crashes.
Make sure to run at least Blender 4.1 as I used some nodes that were introduced in this version and there is no backward compatibility.
The node is not as advertised.
Make sure to have bought the full version and not the demo.
I can't find the correct UV Map when applying the modifier.
It might got erroneously applyied. To find it go to in the Object Data Properties tab under Attributes. There scroll until you find "UVMap" select it and click on the little down arrow to the rigth. Convert the Data type from Vector to 2D Vector and you'll get the correct UV Map.
HOW IT WORKS
To get started add a plane and add the geometry node called "Platform Generator" in the modifier tab, then model the shape of the platform using quadrangular faces ONLY. Even though the faces composing the structure don't have to be merged, merging where possible assures there won't be overlapping beams and such.
I've divided the modifier tab into sections containing parameters for the different pieces of the platform.
- GENERAL: contains the general parameters of the platform like the angles at which stairs will start to generate and if you want to smooth out corners. There is also an option to realize the instances before converting everything to mesh if you want to export the mesh, otherwise there will be missing pieces.
- PLATFORM: contains the parameters to instance up to two layersof planks along the surface and to tassellate a collection of meshes onto each face of the platform.
- SUPPORTS: contains the parameters to instance beams on each edge of the geometry to make the grid on which the planks can be layered upon.
- BASE: contains the parameters to make the pillars or walls that hold up the structure with an option to choose a terrain collection so that the base matches the terrain's elevation.
- RAILING: contains the parameters to spawn a railing along each vertical face. The faces must be EXACTLY vertical so make sure to extrude along the Z axis.
- STAIRS AND LADDERS: contains the parameter of the stairs and ladders that will spawn on sufficentlyangled surfaces.
- DETAILS: containsthe parameter to add details like bridges and hanging ropes along with all the parameteres to scatter objects alongside the perimeter and on the walls and platform.
Each piece has to option to use a premade asset or use a procedural mesh. Instanced options have roughly the same parameters: You can adjust the length and width and randomly mirror it to have more variations, be careful that mirroring will mess up the normals unfortunately if you choose to realize the instances for export and such. For planks, beams etc. you can instance objects at the very end of the piece to add caps or at the intersections (meaning at the end of the piece before the length adjustment) to add things like ropes. To use the procedural features make sure to not have chosen any instance collection in the corresponding section otherwise it will use the assets instead.
The assets must be align in a specific way to avoid weird positioning.
As a general rule all the plank, beams etc. must have the origin point at their center and be oriented along the Y axis.
All the railings must have their origin point where it should connect with the platform and at half length while be oriented along the Y axis and with the outer side of the railing pointing in the direction of the positive X.
All the scattered objects must have their origin point where it should connect with the platform and with their vertical pointing upward. The side of the object that should point away from the wall or perimeter should be oriented in the direction of the positive Y.
All the Profiles for the wall and balcony must must be curves flat on the Z axis with their origin point where it should connect with the platform, aligned along the positive Y axis with the outer side pointing in the positive X direction.
Planks will be instanced on each face parallel to each other connecting the longest edge in the face to its opposite unless a fixed direction is chosen. To have the planks not be parallel to each other and spread out in a radial manner simply mark the face as Smooth.
There is an option to merge adjacent planks and to bevel them in order to have curved planks (be sure the original assets has enough geometry to make the curve). If you want to merge planks everywhere except on specific edges you can marke them as Sharp so it will cut the planks along that edge.
Each Scatter option has roughly the same parameters for density and minimum distance between objects along with options to randomize the scatter. You can use a vertex group to control the scatter. Simply add a vertex group containing the vertices you want the scatter to be (or not to be depending on the menu choice) and type the name of the group in the "Vertex Group Name" box in the modifier tab. If used with "On Corners" unchecked it should affect the next counterclockwise edge. To scatter on walls or when using the Doors feature the vertices that control the scatter are the ones on top of the wall.
To use the UV and color variation features the materials must be set up using the two shader node groups called "UVMap" and "ColorVar" like the ones in the file.
You can get even more control by assigning the materials called FLIP DIRECTION, BRIDGE and BALCONY to the faces where you want the following:
FLIP DIRECTION: if used on a horizontal face it rotates by 90° the direction of the planks on that face (Only works if you did not choose a fixed direction). If used on a vertical face it will flip the railing so that it points in the opposite direction.
BRIDGE: spawns a bridge using premade assets on that face.
BALCONY: Removes all the pillars and walls underneath that face with the option to use a custom profile for the balcony using a curve.