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 with WorldDynamic

 

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.