Skip to main content

Errant Biomes 1.7

ยท 6 min read

MountainsScreenshot

This update introduces Custom Material Masks, CPU post-processing of the spawned instances, ability to access Material Masks at runtime, as well as other improvements and important fixes.

New Featuresโ€‹

  • We added Custom Material Masks - general-purpose masks that generate their content procedurally. This improves the organization as the logic is defined in only one place, while the generated data can be accessed conveniently in Species, Sub-biomes, or your game. An example of a Custom Mask could be a temperature map that affects various Species and also the player's health. Another example would be synchronising ambient audio with the biomes.

image

  • Various types of Masks can now be accessed at runtime. This means you can drive your gameplay or in-game generation based on Hand-Painted Masks, Biome-Masks (painted in the Biome tool), Custom Masks, or masks from Errant Landscape and Errant Paths.
  • We added a WorldPartitionBuilder that can be used in commandlets to generate Biomes on build-machines.

  • We now automatically discover material parameters used in the Material Masks. You don't need to manually add those parameters in the Species anymore and can now conveniently reuse Material Functions across different Species.

  • We added CPU post-processing stage for the generated instances. You can now add a Blueprint or a C++ class to be executed on the instances during the generation and modify the transforms or assets that are spawned. Below is an example of projecting spawned objects towards the water surface.
  • We made it easier to sample Masks over a larger area, when data from multiple landscape components needs to be sampled, for effects such as blur/extend/SDF. We added a material node that calculates the correct UVs needed to sample the merged texture created from multiple landscape components.

Improvementsโ€‹

  • You can now spawn child actors using Instanceable Blueprints. This allows for combining actors with logic and plain meshes in a single Instance Blueprint. Meshes are then spawned as instances while child actors are spawned as actors.
  • Added memory tags for Errant Biomes operations. Those show up in Unreal Memory Insights when investigating memory in your projects.
  • Added a name property to Errant Biomes material nodes to allow for easier name changes. Before it was only possible with the keyboard shortcut (F2).
  • You can now include neighbours' data when sampling mask nodes in material masks.
  • It's now possible to use grass and foliage density scalability settings for runtime spawning density scaling. Allowing you to control the number of spawned instances with the same settings used for controlling unreal foliage/grass.
  • Biomes data is now moved/duplicated when moving/duplicating the map.
  • Material mask properties now have a working "reset to default" button. Recreating basic material that was there when creating species/sub-biome/custom-mask.
  • When removing a mask asset, mask data for that asset is now also removed.
  • Added warning when game view or simulation is active when trying to use Errant Biomes. This hides all Errant Biomes visualizations and confuses many of our users who enter those modes by accident.
  • When using Instanceable Blueprints, properties that are missing in a component are now read from the Species during the generation. For example, when using StaticMeshComponents in Instanceable Blueprints, they lack InstancedStaticMeshComponent properties. Those properties will be read from the Species instead.
  • You can now set a default painting palette in the mask asset. When enabled this palette will be set automatically when selecting that mask for painting.
  • When spawning individual actors from Species they will now be based on the actor template in that Species. This allows for controlling additional properties like Data Layers.
  • Added keyboard shortcuts for changing brush shapes in Paint tools.
  • Added support for managing license seats.

Fixesโ€‹

  • Fixed multiple issues with Runtime Spawning.
  • Fixed masks failing to load on the first Biome generation, leading to incorrect results.
  • Fixed crash in Runtime Spawning due to small stack size when running Unreal Engine in debug mode.
  • Fixed shader compilation when using bindless-textures Unreal configuration.
  • Fixed an issue where World Partition bounds for spawners were incorrect.
  • Fixed an issue where instances spawned outside the bounds of the generation component they came from were never cleared properly, leading to mesh duplication.
  • Fixed an issue where Species with collisions were incorrectly selecting Runtime Spawning mode (instead of Offline) when set to Auto.
  • Fixed an issue where rearranging the order of Biomes in base settings was breaking the current Biomes paint preview.
  • Fixed issue where making changes to properties in the Common section in the Species wasn't dirtying the generation.
  • Marked all Errant Biomes editor-only objects as editor-only. They were already in editor-only modules but were missing this flag so Unreal Engine was trying to cook them when packaging the project from the Editor.
  • Fixed an issue where Runtime Spawning instances weren't cleared properly.
  • Fixed flatness check material function incorrect results on the edges of components.
  • Fixed an issue where missing WorldInfo object would spam error messages.
  • Fixed an issue where asset value in the Species wasn't copyable.
  • It's now impossible to have duplicated mask types in the Species mask generation order.
  • Fixed an issue where changing preview settings in mask debug view was resetting the visualization data, requiring regeneration.
  • Fixed an issue where masks were getting into an infinite loading loop. This affected all our plugin masks that are handled by Errant Biomes (so also from Errant Landscape and Errant Paths).
  • Fixed an issue where some masks were failing to load due to object flag conflicts.
  • Fixed an issue where masks were failing to save.
  • Fixed an issue where number of runtime instances was calculated incorrectly in debugs.
  • Fixed mismatched cpp standard version between the modules.
  • Fixed instance group size multiplier changed in Instanceable Blueprints not being respected.
  • Fixed mask type selector being shown when creating mask of a known type.
  • Fixed the tool that facilitates creating Species controlled with a Hand-Painted Mask.
  • Fixed masks getting in a loop of constant re-creation in UE 5.4.