Apply Room Acoustics in Unreal
The acoustics features provide spatial cues beyond the direct path HRTF, including reflections and reverb. This creates a sense of space and helps to anchor spatial audio sources into the world.
The Meta XR Audio SDK offers two different Acoustic Models:
The Shoebox Room, which offers a lightweight solution with manual controls of a rectangular room. All components associated with this model are prefixed “MetaXRAudioRoom”.
Acoustic Ray Tracing which offers a more natural audio experience than the Shoebox Room solution and simplifies sound design by automating what are typically more manual processes with intuitive controls. All components associated with this model are prefixed “MetaXRAcoustic”. Acoustic Ray Tracing is implemented entirely in unreal even if you are using Middleware and is
fully documented in its own section.
By the end of this document, you’ll be able to:
- Setup your project to use Meta XR Audio.
- Setup an Audio Source to be spatialized and enter the Meta XR Reflections engine.
- Select which acoustic model Meta XR Audio will use for rendering.
- Adjust the available parameters for acoustics.
- Learn about the specific technical details about every parameter for acoustics.
To enable room acoustics simulation with the Meta XR Audio SDK first ensure you have set the default reverb plugin to Meta XR Audio in the project settings as described in
the setup instructions.
Create a new Sound Submix by right clicking in the Content Browser and selecting Audio > Mix > Sound Submix.
Create a new Sound Submix Effect Preset by right clicking in the Content Browser and selecting Audio > Effects > Submix Effect Preset and choosing the SubmixEffectMetaXRReverbPluginPreset option.
Attach the MetaXRReverb effect preset to the Sound Submix.
Navigate to Edit > Project Settings > Meta XR Audio to adjust the settings.
It is important to note that the Meta XR Audio reverb is a singleton. This means you can only instantiate one reverb on one submix and if you create more than one you will likely experience artifacts or other undefined behavior.
The following image shows the reverb settings for the spatializer found in project settings under Meta XR Audio.
| Parameter | Description |
|---|
Submix Output | Select where the output of the reflections plugin is sent. If it is left to None, it will default to the master output submix. |
Voice Limit | This parameter is used to artificially limit the maximum number of sources the reverb plugin can support. This means you can use this parameter to tune the CPU and memory consumption of the plugin in-game. |
Route your Sound into the Reverb Submix
Go to your Sound Cue, and under Effects > Submix set the “Base Submix” to the Sound Submix.
Make sure the Sound Cue you want to have reverb applied to has the Enable Acoustics setting enabled.
Navigate to any object or actor in the level and click Add in the details panel and then Meta XR Audio Acoustic Settings. Without this component the reverb will be disabled by default.
Selecting your Reverb Engine
In order to tell the Meta XR Audio SDK which of the two options to utilize, navigate to Edit > Project Settings > Meta XR Acoustics. Find the Acoustic Model dropdown and selected the desired option. Note that automatic will prefer the Raytraced Acoustics option if the project is setup to use it.
Important: If you would like to use Acoustics, proceed to
the documentation specific to that engine. If you prefer to use the lightweight Shoebox Room engine, continue reading on this page to learn about the Room component.
Change Shoebox Room acoustics properties in editor
In your editor, you will need to add a Meta XR Audio Room component to something in the game. It is important to note that you should only have one of these components in your entire game because it is global. If you add multiple of these components, only the most recently added component will function properly and the older components will no longer change the effects.
Once you have added the component you can adjust the settings directly in the UI.
Change Shoebox Room acoustics properties with Blueprints
If you want the game to programatically change the room acoustics as the game progresses you will need to use the provided Blueprint functions to get and set the parameters of the component. To them to your Blueprint, right click on the Blueprint, uncheck the “Context Sensitive” checkbox and then search for “Get” or “Set” and the name of the parameter you want to change.
Make sure the Blueprint has access to your Meta XR Audio Room Acoustic Properties instance or create your only instance directly in the Blueprint. Drag the instance of the component onto the Blueprint and connect it to the target of the getter or setter function.
There is also a setter function which combines all the properties into a single Blueprint node called Set Room Acoustic Properties. This simplifies the setting process is you plan to change multiple parameters of the room at once.

| Property | Description |
|---|
Lock Position To Listener | If enabled, this keeps the room model centered on the listener (camera). If disabled, then the Room Acoustics component should be positioned in the geometric center of the room in world space (usually, this is the center of the 3D mesh that represents the room). This setting is recommended to be enabled unless your scene is confined to a single room. |
Width, Height, Depth | Sets the dimensions of the room model (in meters for Unity and in centimeters for Unreal) used to determine the early reflection and reverb. Width is the x dimension, Height is the y dimension, and Depth is the z dimension. The orientation of transform of the GameObject that this script is attached to defines the orientation of the room’s coordinate system. |
Materials | This controls the materials of the shoebox room model. Harder materials reflect more sound and create longer reverb tails. Softer materials shorten the reverb’s response. For a list of materials and their frequency-dependent reflection coefficients, see the table below. |
Clutter Factor | Represents how much clutter (i.e. furniture, people, etc.) is in the room that would dampen the response. This parameter creates diffusion and can be used to tame an overly reverberant room. A setting of 0 represents no clutter at all (an empty room), whereas a setting of 1 represents an extremely cluttered room. |
Material absorption factors
The following table shows the reflection coefficients for each material for each frequency band.
| Material | 0-176 Hz | 176-775 Hz | 775-3408 Hz | 3408-22050 Hz |
|---|
AcousticTile | 0.488168418 | 0.361475229 | 0.339595377 | 0.498946249 |
Brick | 0.975468814 | 0.972064495 | 0.949180186 | 0.930105388 |
BrickPainted | 0.975710571 | 0.98332417 | 0.978116691 | 0.970052719 |
Cardboard | 0.590000 | 0.435728 | 0.251650 | 0.208000f |
Carpet | 0.987633705 | 0.905486643 | 0.583110571 | 0.351053834 |
CarpetHeavy | 0.977633715 | 0.859082878 | 0.526479602 | 0.370790422 |
CarpetHeavyPadded | 0.910534739 | 0.530433178 | 0.29405582 | 0.270105422 |
CeramicTile | 0.99000001 | 0.99000001 | 0.982753932 | 0.980000019 |
Concrete | 0.99000001 | 0.98332417 | 0.980000019 | 0.980000019 |
ConcreteRough | 0.989408433 | 0.964494646 | 0.922127008 | 0.900105357 |
ConcreteBlock | 0.635267377 | 0.65223068 | 0.671053469 | 0.789051592 |
ConcreteBlockPainted | 0.902957916 | 0.940235913 | 0.917584062 | 0.919947326 |
Curtain | 0.686494231 | 0.545859993 | 0.310078561 | 0.399473131 |
Foliage | 0.518259346 | 0.503568292 | 0.5786888 | 0.690210819 |
Glass | 0.655915797 | 0.800631821 | 0.918839693 | 0.92348814 |
GlassHeavy | 0.827098966 | 0.950222731 | 0.97460413 | 0.980000019 |
Grass | 0.881126285 | 0.507170796 | 0.131893098 | 0.0103688836 |
Gravel | 0.729294717 | 0.373122454 | 0.25531745 | 0.200263441 |
GypsumBoard | 0.721240044 | 0.927690148 | 0.93430227 | 0.910105407 |
Marble | 0.990000 | 0.990000 | 0.982754f | 0.980000f |
Mud | 0.844084 | 0.726577 | 0.794683 | 0.849737 |
PlasterOnBrick | 0.975696504 | 0.979106009 | 0.961063504 | 0.950052679 |
PlasterOnConcreteBlock | 0.881774724 | 0.924773932 | 0.951497555 | 0.959947288 |
Rubber | 0.950000 | 0.916621 | 0.936230 | 0.950000 |
Soil | 0.844084203 | 0.634624243 | 0.416662872 | 0.400000036 |
SoundProof | 0.0 | 0.0 | 0.0 | 0.0 |
Snow | 0.532252669 | 0.15453577 | 0.0509644151 | 0.0500000119 |
Steel | 0.793111682 | 0.840140402 | 0.925591767 | 0.979736567 |
Stone | 0.980000 | 0.978740 | 0.955701 | 0.950000 |
Vent | 0.847042 | 0.620450 | 0.702170 | 0.799473 |
Water | 0.970588267 | 0.971753478 | 0.978309572 | 0.970052719 |
WoodThin | 0.592423141 | 0.858273327 | 0.917242289 | 0.939999998 |
WoodThick | 0.812957883 | 0.895329595 | 0.941304684 | 0.949947298 |
WoodFloor | 0.852366328 | 0.898992121 | 0.934784114 | 0.930052698 |
WoodOnConcrete | 0.959999979 | 0.941232264 | 0.937923789 | 0.930052698 |
Controlling acoustic settings
There are additional settings for globally enabling and disabling early versus late reflections as well as the overall reverb level. These settings can also be controlled in the UI or in Blueprints the same way as described in the room acoustics properties section. As mentioned above, this component is required for the reverb to be active as these controls are disabled by default.
| Parameter | Description |
|---|
Early Reflections Enabled | When enabled, the low order reflections of each audio object will be rendered. When disabled, no object will have it’s lower order reflections rendered. |
Reverb Enabled | This enables the late reverbation modelling for all audio objects. When disabled, no reverb will be applied. |
Reverb Level (dB) | Use this parameter to adjust the overall level of the reverb relative to it’s acoustically accurate position. A positive value increases the reverb level for all objects and is applied on top of whatever audio object reverb level is specified (see below) and a negative value decreases the reverb level for all audio objects. |
- Learn more about advanced Acoustic Ray Tracing to use in place of the Shoebox Room model by clicking here.
- Learn about how to render ambisonic audio with the Meta XR Audio SDK by clicking here.