Custom Actor/Blueprint Spawner with Procedural Vine/Spline draping Tool
This tool is responsible for procedurally scattering actors/blueprints across any number of vast open world terrains.
Prerequisites
Prerequisites in order to use these tools.
The following plugins/features are required.
Unreal Engine 4.27
GoofishOptimization plugin
Enable Experimental feature: “Procedural Foliage” as the tools will respect any
ProceduralFoliageBlockingVolumes
in order to protect areas of the landscapes from foliage/scattering.
Be sure to first place any Procedural Foliage Blocking Volumes in areas where no spawning/scattering should occur.
Both the GoofishOptimization tools and the ProceduralTools plugin respects these volumes.
In order the for
ProceduralFoliageBlockingVolumes
to be detected via physics queries, ensure they are set to Overlap withWorldDynamic
Basic Editor Tool Setup
This section will show some of the properties how to setup these blueprints to populate a terrain.
Custom Spawner
Spawns actors on the landscape ( only )
Place this actor in the scene, and use it as editor tool, as code would be commented at runtime.
Set the various properties including desired Maximum Spawn, Slope Angle min-max, whether to align to hit surface and to perform min/max ZOffset ( height ) adjustments.
Then choose
Run Simulation
This will scatter the terrain with the desired spawn classes, using the random seed specified, to be able to get the same spawn locations when rerunning.
Remove All
Remove any instances that this specific spawner created. ( they may have moved to tiled levels, so be sure to load all tiles )
This will show some of the blueprint properties and how they may be used to scatter actors.
Inherits from CustomSpawner c++ class.
Is meant to be used in editor only, by dragging into the scene, and using the functions as described below.
BoxComponent
After placing in the scene, size up to the desired area where scattering should occur.
SpawnClasses
Add actors from the content browser to this list to scatter across the landscape.
Set desired random Scale min-max, Rotation ( max Pitch, Yaw and Roll )
Landscape Layers
This should match the landscape material layerInfo physical material name by ‘StartsWith’ ( empty to spawn anywhere on landscape )
Vine Draper
Drapes SplineActors ( such as vines ) across actors, spawned by the CustomSpawner.
This actor is meant to be placed in the scene, and used only in the editor.
Run Simulation
Will scan for any actors, matching the match tag, and attempt to procedurally drape a random spline actor across them, from the center. Can also drape off of a detected edge/drop.
Remove All
Removes all vines created by this spawner. ( ensure to load all tiles, as instances may live in other levels )
This tool can only spawn actors of the custom type SplineActor class.
Inherits from VineDraper c++ class.
Random Seed
Ensures splines are draped in the same manner everytime the simulation is run
Spawn Classes
Must inherit from SplineActor custom c++ class.
Actor Match & Remove Tag
Leave these alone, they are used to tag and match/remove spawned instances, as these may live across worlds/tiles.
Spline Actor
This actor is meant to be used with the Vine Draper procedural draper.
Spline Mesh Class is typically a static mesh that supports wind/vertex animation.
These are typically made using SpeedTree.
Inherits from SplineActor c++ class.
Forward Axis
Can change the “stretching” axis of the spline mesh accordingly, usually defaults to Z. ( does not have to )
Extend and Offset
Used to lengthen/shorten the spline mesh segments for better reaching, usually set per mesh, then not touched again.
Demo Usage
A demo of the tool being used, the terrain is a single 800, 000 by 800,000 Unreal Units single landscape, centered at the world origin.
The entire landscape exists in the persistent level, but the world ( any spawned actors ) is broken up into 81 ( 9 x 9 ) 100K sized tiles.
Custom Spawner
A demo of some of the spawners being used to quickly place terrace actors across grass and snow on the landscape.
Vine Draper
A demo of the vine draper in action on the terrain at scale.