rdInst Tutorial 7.2 – Creating rdSpawnActors


You can create rdSpawnActors in many ways:

  • Drag a SpawnActor Baked DataAsset into the level
  • Use the “Add Actor” menu or panel
  • Spawn from the rdSpawnActor class
  • Use the “Create SpawnActor from Selection” tool
  • Use the “Convert Level to SpawnActor” tool

This tutorial will go through creating a simple SpawnActor from some actors in your level.


Step 1. Create a Basic Level and add some props

Create a simple Basic level, remove the floor mesh and add a default landscape.

Now add some props, for this example we’ll add some simple assets to create a small SpawnActor from. The Trees and Foliage/rocks can be painted with the foliage tool and we’ll build some other props with actors and splines.

Don’t be shy, add a few thousand objects.


Step 2. Convert to rdSpawnActor

Now select all the actors and the foliage volumes, right-click, and select the “Create SpawnActor from Selection” option.

In the window that opens, just use the default values for now. You can select a folder and name for the new BakedDataAsset though. You can set the default folder for your assets from the rdInstSettings actor – otherwise it selects the current folder in the Content Browser.

From this window you can also set up things like streaming – to find out more check out this tutorial.

Now just click “Create” – the new rdSpawnActor will be spawned over the top of the existing actors in your level (unless you’ve ticked “Replace Selected Actors”).


Step 3. Check by hiding the original actors, and check the DataAsset size.

Now re-select the original actors in the level, and hide them all to check the new SpawnActor is identical.

You can keep an eye on their disk-size too (which is similar to CPU RAM usage) by looking at their asset details:

It can be interesting to see how they compare to a level instance or packed level actor, here’s the same data stored as a level:

The data is stored in a fairly optimized way, so the sizes should be good for most applications. This example highlights that using larger amounts of scatter can increase the memory footprint. This is where “Clusters” come in, they are stored as single instruction/parameter combinations which are then populated in realtime – this saves memory on disk, on the CPU and most importantly reduces the size of data that needs to be sent to the GPU for Meshlets (but more on those later).