Species is a group of similar individuals.
While biomes and sub-biomes are groupings of species, species themselves are groupings of spawn-able assets (meshes, blueprints, FXs, lights, decals etc).
In Forest biome you might have species such as:
- Forest floor
Those might be even more specific like:
- Large trees
- Medium trees
- Poplar etc.
Spacing decides how close the two neighboring instances of the same species will be spawned.
Depending on the growth mask output, the instances may spawn more sparsly as well.
Growth Mask is a material mask that controls how densely species spawn.
Growth Mask outputs a value of 1.0 in some region, the species spawns with the highest density (equal to
Growth Mask outputs a value of 0.0 the species doesn't spawn at all.
The priority mechanism resolves "collisions" between various species.
Species with a higher
Priority grow "over" lower priority species.
If a species has
Priority Radius larger than 0.0 then it will remove lower priority instances of other species within that radius.
Species can spawn anything that has an
Actor Factory. Typically that's everything you can drag-and-drop from the Content Browser onto the level.
Spawning thousands of blueprints is not recommended, because it's hard to work with so many actors in the level.
Static Meshes spawn as instances. Instances are setup using Species Instances Settings.
Used to control settings of spawned assets.
Instance Component Template
This property allows for changing/tweaking the instance component used for spawning meshes.
Desired Max Draw Distanceand collisions.
Instance Group Size Multiplier
The biomes generate as separate components, but you can group spawned instances from multiple tiles together.
This may affect the performance of your world.
Bigger groups render more efficiently while smaller groups load in smaller chunks during streaming. So the choice is between rendering performance, memory usage and potential streaming hitches.
As bigger groups spawn into a single actor this also effects how development of the map works as only one developer can check-out/lock an actor in the source control.
There's no one size fits all to this setting.
Instances best practices
- Disable shadows whenever you can.
- Enable physics only on assets that need collisions. Disable it for all the grass, bushes, small rocks. Having to many objects with collisions streamed-in leads to hitches.
- Always set
Desired Max Draw Distance. Set it to a distance from which you shouldn't see the species anyway. It's one of the most important settings! It can do wonders for optimization.
Density Scalingon objects that can gradually disappear with distance.
Instance Start Cull Distanceto when assets should start disappearing
Instance End Cull Distanceto when assets stop being visible
Desired Max Draw Distanceto just a bit more than
Instance End Cull Distance.
A species may have its assets split into multiple groups.
Groups allow you to spawn different set of assets depending on the
Asset Group mask output.
You could have Trees species that contains groups such as:
- Large Trees,
- Medium Trees
- and Small Trees.
You could then use a mask to spawn smaller trees on the edges of the trees growth regions.
Asset Group Mask
Asset Group material mask should output values between 0 to 1.
Created Asset Groups are spaced evenly between 0 and 1 based on how many groups you have.
Meaning that if you have only 1 asset group. Then it doesn't matter what value your mask outputs.
If you have 2 asset groups the values below 0.5(
1/2) select the first asset group and values higher than 0.5 select the second asset group.
|Mask < 0.5||Mask > 0.5|
|first group||second group|
If you have 3 groups the values below 0.333 (
1/3) select the first group, values between 0.333 and 0.666(
2/3) select the second group and values higher than 0.666 select the third group
|Mask < 0.333||0.333 < Mask < 0.666||Mask > 0.666|
|First Group||Second Group||Third Group|
Each asset in an asset group has an
Asset Probability which tells how often you want this asset to spawn compared to other assets in the same species.
If you have only 2 assets, with spawn probability of
0.5, it has the same meaning as two assets with probability of
The probabilities don't need to sum to one.
Simply give higher values to assets that you want to spawn more often and lower values to the ones you want to see less.
There are two mechanisms for spawning objects -
Offline Spawningplaces instances during the generation process in the Editor.
Runtime Spawningplaces instances dynamically in game/editor, around the camera.
You can choose which mechanism to use for each species using the
Runtime Spawning property in
or you can set this property to
Offline spawning allows for more optimization techniques such as
That's the mode you want to use for objects like trees or big rocks.
Runtime Spawning allows for spawning dense objects like grass or small rocks.
It allows you to spawn instances more densly as you only store some of them in the memory/disk at any given time.
That's the mode you want to use on species like grass or a lot of small rocks.
Desired Max Draw Distancesetting inside Instance Component Template decides when instances should spawn.
If that setting is missing
Instance End Cull Distance is used.
If that is missing some default fallback value will be chosen.
Setting this value too high will lead to performance problems. You should set it as low as possible in your scenario.
Runtime Spawningstreams-in and out the spawner actors and then generates instances near the camera.
Offline Spawning relies only on streaming.
With correct streaming setup you could achieve a similar memory (RAM) usage with
Offline spawning, but disk usage would be much higher in the
You configure transforms that are applied to your instances in the
Here you can select how landscape affects the instances' rotation, apply offsets and randomness to instances' transforms.
You can control the scale of the instances procedurally, by using a using a
Scale Mask material.
When creating species, a list of template options is provided to you as a starting point. If you wish, you can also include your own templates by adding a folder where you keep your templates in the project settings.
Any species can be used as a template without any additional work.
Configuring Templates Directory
Open Project Settings and go to the
Errant Biomes section inside of the
Templates Category, there is a
Project Templates Directories array where you can add directories that will be scanned for species to be used as a template.
Add a directory where you wish to store templates.
Place species you wish to use as a template in the previously configured directory.
Now every time you create a new species, you will be provided with templates you put in that directory