I'd like some advice on procedural generation

So I am pretty new to unreal and still learning everything. I’ve been working on a map generator based off of this (Blueprint Generating Procedural Rooms | Live Training | Unreal Engine - YouTube) tutorial. I’ve got some pictures here for your viewing pleasure. (Imgur: The magic of the Internet) Now right now every tile is assigned a number from 0-3 and each tile will be a different actor (forest, mountain, plain, and dirt) based on that random number. This is all fine and good, but the mountains are all identical and face the same directions, and there are obvious gaps between tiles when the tiles are mountain or forest. These really detract from the looks of the map and I want to improve these problems. Right now the static meshes are all placeholders but I will try to stick to the low-poly style. What I want to ask is if any of you guys have advice on blueprints like this.

So basically, if there are a line of mountains or forests in a row or clump, is there a way for the blueprints to recognize this and replace the “individual mountain” static meshes with a “multiple tile-sized mountain static mesh.”

Other than that, I would love to hear any unrelated advice you all have for a project like this.

Thanks

You can certainly do your idea of trying to detect large clusters and replace with larger custom assets, but I’d bet you can get a lot more out of your system without resorting to that since it will be more work to actually make the combined assets.

For reference, I set up the blueprints and did a good amount of the env art for the fortnite hexmap (around 1.5 years ago, its been heavily re-worked since I was on the project). We did not try to do the clustering thing, but we did make 2-3 variants for each tile. Variants used the same base ground texture and just re-organized deco objects on top. Most of the variations were actually made in the editor using the merge tool which allowed us to quickly knock them out and replace them etc.

Then we made each hex tile with itself (ie, make the roads wrap) and made a system to blend edge textures across tiles. I had originally set up all that blending within the hex materials themselves, but I believe they have since redone that part using decals or something. but there are tons of ways you could break it down and get more variation like this without really re-designing your base system;

For the edge blending, we basically did what you did, specified an index for each neighbor type. 0 means nothing or rock border, 1 means grass, 2 means forest etc. You could do the same thing by checking all 4 neighbors for your square tile and figuring out some way to blend them based on that.