Welcome to the support thread for the Procedural Noise Generator Blueprint available on the Unreal Marketplace. Feel free to ask any questions and post suggestions.
What is it?
This Blueprint performs the Perlin noise algorithm to the parameters specified by the user. The output is used to transform the height of individual tiles on a grid. Tiles were chosen as it is the most stable example and should be supported by all versions of UE4. Tiles also display minor height changes more clearly than something like a generated mesh. This could be extended to any UE object that supports transformation at runtime.
The Blueprint is self contained, no extensions, plugins or code.
Why?
Mostly to test what Blueprints are capable of, and provide the capability to non-programmers.
This output can be modified further, after processing the algorithm but before rendering, by adjusting scene macros as demonstrated with the various scenes.
If your math capabilities are better than mine you should be able to produce very interesting results.
Depends on your game. A Civilization type map might be 100 x 50 tiles, no problem, should generate in less than a second. Skyrim type map, way too big for Blueprints to handle, maybe. You could have a master noise array for the lowest LOD, break up the map into cells with their own noise arrays, but I have not experimented with that yet.
The links above provide a thorough explanation of the concept and principles of procedural noise generation. This project provides implementation of the algorithm in Blueprints, but is not a turn key solution. The noise values still need to be applied against objects, whether a grid of tiles or vertices on a procedural mesh.
I know in Unreal procedural generation typically refers to replicating instances of an object. This is different. This Blueprint creates (height) data algorithmically as opposed to manually, which is the textbook definition of procedural generation. Changing the seed, and/or other variables, provides near infinite possibilities from a single Blueprint. As such, you should only need one instance of this Blueprint. To change the map, you change the parameters and regenerate, not replicate.
Simplest explanation: as it loops through the grid it spits out a single value for each coordinate, which is typically used as a height value for a tile, vertex, mesh section or converted to a grayscale value.