Skip to content
Brass Orrery

Orrery Terrain · OrreryTerrain module · class

AOrreryTerrainActor

A terrain in a level: names its natural-ground source, its material and its runtime settings, and hosts the chunk components (Tier 3).

Declaration

UCLASS(ClassGroup=Orrery, HideCategories=(Physics, Collision, Navigation, Replication, Input))
class AOrreryTerrainActor : public AActor
Header
#include "OrreryTerrainActor.h"
Module
PublicDependencyModuleNames.Add("OrreryTerrain"); in your module’s Build.cs.
Stability
Stable: changes within a major version only add.
Derives from
AActor

Description

Lifecycle. In a Game or PIE world it asks the world's UOrreryTerrainSubsystem to create the terrain at BeginPlay and to destroy it at EndPlay. In an editor world the terrain exists too, read-only: it is created when the actor is registered or constructed with a source, re-created when Source, Material, LayerSet, Settings or Render change in the details panel or through an undo, and destroyed when the actor is deleted. Commandlets (cook, Python scripts run as commandlets) never create it.

The actor holds configuration only: the ground itself is the subsystem's FTerrainWorld, and the collision and render chunks are components the chunk managers add to this actor at runtime, never saved with the level.

Its transform does not move the terrain: the grid origin lives in the source asset (double precision, part of the ground's identity). In a World Partition map the actor is always loaded; World Partition only drives residency, through streaming sources.

Note.

One terrain per world. A second actor is refused with a warning (once per actor in the editor).

Functions

Properties

NameTypeDefaultMeaning
SourceBlueprintReadOnlyTObjectPtr<UOrreryTerrainSourceAsset>—

Natural ground.

Baked into a Tier-1 source when the terrain is created.

MaterialBlueprintReadOnlyTObjectPtr<UMaterialInterface>—

Surface material of every render chunk.

The mesh tier (v0) accepts any material; the heightfield tier needs a terrain wrapper (see TerrainMaterial).

LayerSetBlueprintReadOnlyTObjectPtr<UOrreryTerrainLayerSet>—

The terrain's paint layer table and the grass each layer grows.

Empty: no grass, unless code gives the render subsystem's grass system a layer set of its own.

SettingsBlueprintReadOnlyFOrreryTerrainRuntimeSettings—

Streaming, collision and sculpt settings.

ResidencyRadius_m, SculptUndoStrokes and bRegisterGroundProvider default to the project's (UOrreryTerrainSettings).

RenderBlueprintReadOnlyFOrreryTerrainRenderSettings—

How this terrain renders: tier, LOD, far field, shadows.

A change re-creates the terrain, as Settings does.

TerrainMaterialTObjectPtr<UMaterialInterface>—

The heightfield tier's wrapper of Material, made and stored by the editor module when Material changes.

Empty: the render subsystem draws Material if it is a wrapper or a special engine material, and the default wrapper otherwise. The mesh tier ignores it and draws Material itself: a wrapper has no shaders for FLocalVertexFactory.