Ara
Download

Search or run a command

Jump to a section or open an Ara link.

Component · audio

ReverbZone

A room or space with its own reverb. The listener's zone drives the room reverb; sources in other zones reach the listener through portals.

Fields

name

string
Unique zone name; portals, traces and diagnostics refer to zones by name.
default ""
Volume shape.
default "box"

One ofboxsphere

position

vec3
World-space center, supplied from the entity transform by the bridge.
default [0,0,0]m

rotation

vec4
World rotation as a unit quaternion (x, y, z, w), supplied by the bridge.
default [0,0,0,1]

halfExtents

vec3
Box half extents.
default [5,3,5]m

radius

f32
Sphere radius.
default 5m0.1 – 10000

fade

f32
Width inside the boundary over which the listener crossfades to the outer space.
default 1m0 – 100

priority

i32
Nested zones: the highest priority containing zone wins.
default 0
Wall material, deriving absorption for the realtime room model.
default "generic"

One ofgenericbrickconcreteceramicgravelcarpetglassplasterwoodmetalrock

rt60

option<vec3>
Explicit low/mid/high reverberation times in seconds, overriding derived and baked values.
default null

wet

f32
Reverb return gain.
default 10 – 4

earlyReflections

bool
Geometric early reflections from the zone's walls.
default true

useBaked

bool
Prefer baked probe reverb times inside this zone when cooked cells are loaded.
default true

Usage

Every edit is an undoable command: from the CLI as below, or the same JSON from an agent over MCP. See component.add and property.set.

Add it

ara do component.add -p entity=name:Crate -p component=ReverbZone --why "Add ReverbZone"

Set a field

ara do property.set -p entity=name:Crate -p path=ReverbZone.name -p value="" --why "Tune ReverbZone"

In a scene document

{
  "ReverbZone": {
    "name": ""
  }
}

From C#

/// <summary>Increase the reverb blend inside a large room.</summary>
public static void UseReverbZone(Entity entity, in Tick tick)
{
    ref var component = ref World.Get<ReverbZone>(entity);
    component.Wet = 0.6f;
}

From C#

Scripts read and write it with Get<ReverbZone>(); see the ReverbZone struct.