Easy terrain shaping and landscape manipulation
Different meshes on the edges of growth regions
You can, for example, spawn small trees instead of large ones on the outskirts of forests or adjust scale and density of the meshes in order to place denser and larger grass in regions with more sun exposure.
Adjusting landscape to the spawned meshes
You want to lift terrain under large trees to simulate growth of their roots, or adjust terrain under large rocks? You can easily achieve that with the Biomes plugin.
Spawning any type of objects on the map
Meshes, blueprints, light sources, FXs, sounds and more. When spawning meshes, the plugin automatically groups meshes into HISMs (Hierarchical Instanced Static Mesh Components), so that they can be rendered as fast as possible.
Places a hill or a valley based on a selected heightmap with support for scaling, rotation,
and a variety of blending options.
Lifts the landscape based on a configurable noise function. Can be used as a base for a new landscape or to add smaller details to an existing landscape.
Smoothens the shape of your landscape or detail in weightmaps or biomes masks.
Balance between automation and creative control
Artists often fear that using procedural generation will limit their creative control over fine details, or that they will have to work in a way which doesn't feel natural to them.
We kept those concerns in mind when working on the procedural tools, and thus we focused on boosting the individual artist's efficiency rather than trying to make the computer take over their job.
and quick iteration
The bulk of our procedural generation is run on the GPU and directly in Unreal Editor. It makes our solutions fast - often an order of magnitude faster than competitive solutions run in external programs.
It also makes our tools radically easier to use - allowing for quick iteration and working within the context of the game. We remove the hassle of importing/exporting large intermediate files or the need for a powerful workstation.
The support you need
Our tools are used daily by us and other game studios. We are dedicated to working out all the edge-cases and assisting you in reaching the final solution.
Path blueprints may contain all types of components, such as meshes, light sources, sound emitters, decals, splines, volumes, etc. They may even contain child blueprints. All of these components get spawned along a path in a predictable manner.
Using the aforementioned rules you can decide which of the blueprint components get spawned in specific scenarios. Or you can define spawning probability. Location, rotation and scale of the spawned components may also be affected by randomization.
We put a lot of effort into making the paths efficient. The generation process minimizes the number of components spawned, merges certain components together (splines), substitutes spline-meshes for cheaper static-meshes wherever it makes no visual difference, uses mesh instancing, etc.
Useful performance hints are also provided during the blueprint compilation.
Flexible asset organization
In order to facilitate asset management, one path can be made of multiple blueprints in a layered fashion. For example, one blueprint containing the road surface, another containing decals and yet another containing barriers, lamp posts or other decorations.
Rules can also apply to whole blueprints, deciding which of several blueprints gets spawned at a certain part of the path. All of these features give you the most flexibility and workflow options when coming up with your own designs.
Defining a path is as simple as creating a blueprint with a few meshes inside. The content of this blueprint is then repeatedly spawned along a spline and bent to match the curvature of the path.
Most importantly, the hierarchy of components and their spatial relations are maintained, despite some meshes getting significantly bent. For example, a lamp post attached to a barrier may follow the curvature of the barrier (stay attached visually and oriented properly), while not getting bent. Complex relations of bendable meshes are also supported, such as pipes or cables, connecting barriers on both sides of the road.
For extremely large maps, filled with hundreds of roads, we provide a powerful pathfinding feature. Path finding allows you to create a realistic looking road, passing over swaths of land, by simply defining the road's start and end positions. Pathfinding creates a naturally-looking path connecting these points by mimicking the decisions of real-world engineers who take into account the cost of construction, cost of land shifting, safety, obstacles, height differences, tunnels, bridges and other, user-defined constraints and criteria. One example of such constraint would be that highways can't make sharp turns, while small dirt roads can.
Intersections, forking and merging
The plugin allows for connecting multiple paths together, either directly or via intersections, as well as cutting them and merging.
Landscape and foliage adjustment
Paths may also affect landscape by raising or lowering it in alignment with the path geometry or by painting onto weight-maps (affecting material of the landscape). They may also remove nearby foliage or affect the type of foliage which grows near the path.
Paths that adapt to the environment
One of the key features of our tool is that paths can be configured to automatically adapt and react to their environment in many useful ways. The adaptation is achieved through user defined rules, which can be easily created in blueprints/code and combined in arbitrary ways. This means that you can create just a few types of paths (asphalt, dirt, highway, etc.), which blend well with every environment you place them in.
Examples of path adaptations:
Roadside barriers added in sharp turns along a cliff
Different lane markings used in turns and straights
Tunnel walls added where the road goes underground
Concrete pillars added when the road goes above the ground
Automatic placement of road signs
Dirt cover in dry regions
Trash scattered in urban areas
Cracks, patches and potholes in rural areas
Easy creation of spline-based networks
Roads, railways, tunnels and more...
Errant Paths allows for creation of all kinds of spline-based networks: roads, railways, tunnels, fences, pipelines, power lines, etc. We will focus on roads here, as they serve as a good example.
Our tool allows you to define a path's appearance in one asset and have it applied to all paths of that type in a large map. There is no need for tedious, manual application of the same change over kilometers of existing paths. This encourages iterative work and experimentation.