🍁Biomes

Calysto World uses a database approach. Which means you need to create your own biome database before you can draw it in the world. In the demo content, if you click on "Biome" then "Row Name" there is one biome available, and it is the demo forest.

Biome database

Let's take the demo biome for example, inside Calysto/World/Data, you will find DT_Biome. Open it to see the currently available biome.

If you did the "preparing for future updates" part, you should have your own version of this file. I recommend doing your changes in this one so you don't lose your work on an update.

Biome PCG Graph: This tells the biome which PCG graph you want to use. Feel free to use the default one, but you have the option to create your own.

Vegetation: This is the database for all the main vegetation, like big rocks, trees, bushes, etc (excluding the grass and other small details). This vegetation will spawn using the CPU and will have collision.

Detail: This is where you add your grass, small rocks, and small details to be spawned in a high density. Everything will be spawned at runtime using the GPU and will not have collisions.

Attached: This is where you add the details to be attached to other objects (like the main vegetation). Everything will be spawned at runtime using the GPU and will not have collisions.

Ground Material: This allows you to attach a ground material over the landscape (imagine like an auto landscape decal). It requires RVT enabled. Note that the slope detection is broken since 5.6 and will be updated soon.

Vegetation Density: Set the base density of the vegetation

Detail Density: Set the base density of the details and attached details.

Customizing your biome

Let's open the demo vegetation.

This is where you will add all the meshes you want to use in that biome and where you can control their behavior. The order of the meshes (index 0, index 1, etc) will determine the priorities, a bit like layers.

For example, index [0] is the big rocks, and it will have priority over all the other index below (like trees and bushes), this way they will not collide when spawning. Feel free to test it out juste by swapping the index [1] above the big rocks (index [0]).

Here is a quick example

Many of the settings' names are really self-explanatory, but here is some additional information...

Name: The name doesn't change anything; it is just a helper to tell you what every category is.

Mesh: This is where you add all the meshes you want to use. Note that you can drag and drop multiple meshes at the same time (this is a huge time saver).

Force Look Up: if enabled, it will force the vegetation to always be straight up (usually needed for trees).

ClusterStrength, ClusterPrimaryScale, and ClusterSecondaryScale work together. It creates some noise in the world that determines where the vegetation can spawn. The two scales are multiplied together to create more variation, and ClusterStrength will determine its impact (where 0 will disable the noise).

Here is a quick video to showcase them.

Bound Multiplicator: The radius of each vegetation is calculated automatically and used to remove the vegetation around it (making sure a tree doesn't spawn inside a rock). The default value of 1 will use the bounds of the objects, which works in most cases. But for some objects, like a tree, it feels better to reduce it a bit because the trunk of the tree is the most important part (and the bound will include the branches), so you can reduce this multiplier to make some adjustment.

Can Add Details: Determine if you can attach details at runtime on those objects; more on that later.

Creating a new biome

To create a new biome, right-click on the content browser and look for Data Asset. Then create a PDA_VegetationCalysto data asset. This is where you will add all your biomes' content.

Customize your biome and add it to your database.

Now you should see your new biome inside the drawing tool

Note: If you don't see your biome here, make sure your database is added to the CDT_AllBiome

Last updated