Overview

Reduces labor for audio designers, as less sound actors will need to be placed and iterated on inside/outside spaces

Reduces game systems overhead, due to the savings in number of needed sound actors to define interiors and exteriors

Quick Guide

Create a ReverbVolume, and place an AmbientSoundSimple with a large radius looping sound inside of it, and a second large radius AmbientSoundSimple looping sound outside of it.

Open the ReverbVolume parameters.

Expand the AmbientZoneSettings to reveal the AmbientZone parameters:

Set the bInside parameter to True; now the ReverbVolume is an active AmbientZone.

Set the ExteriorVolume to .5 This is the final volume of AmbientSounds that are outside the AmbientZone when the player is inside the AmbientZone.

Set the ExteriorLPF to .5 This is the final LowPassFilter on AmbientSounds that are outside the AmbientZone when the player is inside the AmbientZone.

Set the InteriorVolume to .2 This is the final volume of AmbientSounds that are inside the AmbientZone when the player is outside the AmbientZone.

Set the InteriorLPF to .2 This is the final LowPassFilter on AmbientSounds that are inside the AmbientZone when the player is outside the AmbientZone.

Rebuild geometry, and enter the ReverbVolume with the AmbientZone you just set up.

The AmbientSoundSimple that is outside the AmbientZone will have its volume multiplied by .5 and its LowPassFilter set to multiplied by .5

Exit the ReverbVolume. Now the AmbientSoundSimple that was outside the ReverbVolume is restored to its previous volume and LPF settings. The AmbientSoundSimple located inside the ReverbVolume now has a volume multiplier of .2 and an LPF multiplier of .2 applied to it, making it very quiet.

Current Problem AmbientZones Address

With previous versions of the audio system, there was a common implementation problem where it was difficult to define a detailed space with radius-based SoundActors. Many SoundActors with varied radii were required to achieve detail. Additionally, level geometry could contain interior spaces that opened up on exterior spaces (open walls and windows). Since SoundActors can only use a spherical radius to play back audio, many SoundActors with small radii were required to fill level geometry. Here is an illustration of this problem: a box-shaped room in the middle of an exterior space. The red spheres are exterior audio and the blue spheres are interior to the square blue volume. Notice that 8 Outside Radius SoundActors and 8 Inside Radius SoundActors are required to accurately fill a box shape with sound:

Solution: Ambient Zones

A solution called AmbientZones has been implemented to solve this problem. There is a new parameter group added to all Reverb Volumes called "AmbientZoneSettings". The settings for the AmbientZone define how SoundActors located inside of and outside of the associated Reverb Volume will be altered by the player's location.

A simple example of how this works is shown below. The square green volume is the AmbientZone volume; the purple sphere is a SoundActor located inside the AmbientZone, and the red spheres are SoundActors located outside the AmbientZone:

Here is the behavior of the AmbientZone volume:

When the player is outside of the AmbientZone, the SoundActors located inside the AmbientZone have a volume multiplier and LPF effect applied to them (these values are defined in the AmbientZoneSettings).

hen the player enters the AmbientZone, the SoundActors located inside that AmbientZone will return to 1.0 multipliers for volume and LPF over a specified fade time for both. At the same time, all SoundActors located outside of the AmbientZone will have a volume and LPF multiplier applied to them over a specified fade time for both. Again, the values for volume, LPF and fade times are defined in AmbientZoneSettings.

When the player exits the AmbientZone, the SoundActors outside the AmbientZone will return to their previous default volume and LPF values using the previous fade time, and the SoundActors located inside the AmbientZone will have their volume multiplier and LPF values changed via the AmbientZoneSettings for the AmbientZone.

Implementation Guide Examples

Here are some real-world examples to help illustrate this behavior:

City Restaurant Example

A map contains restaurant area that has a door that opens onto a city street. When the player is outside the restaurant, they can hear sounds of traffic on the street, and sounds of the restaurant at a low volume and slightly muffled. When the player enters the restaurant, the sounds of the restaurant become louder and clear, and the traffic sounds from the street become significantly quieter and muffled. When the player leaves the restaurant, the previous audio balance is restored. To achieve this effect:

Create a Reverb Volume inside the restaurant the size of the restaurant.

Open the AmbientZoneSettings in the Reverb Volume properties.

Set the InteriorVolume to .6, and the InteriorLPF to .4

Set the ExteriorVolume to .4 and the ExteriorLPF to .2

Place an AmbientSoundSimple with a large radius to play traffic sounds in the street.

Place an AmbientSoundSimple with a large radius to play restaurants sounds in the restaurant.

Rebuild your map geometry. This forces the Reverb Volume to check what SoundActors are inside of it.

Enter and exit the Reverb Volume to hear the changes to audio. In this example, all fade times were set to the default of .5 seconds.

Vertical Space Example

Because sound radii are spherical, they can create problems when they are vertically stacked in close interior spaces. AmbientZones help with this problem; here are some examples.

Multiple-story buildings: large radius ambient sounds can be placed on each vertical level of a building without bleeding through to the floor above or below

Bridges: unique ambient audio and reverb settings for below and above a bridge without bleedthrough

Wall Control Example

Walls: ambient sounds are located on the wall of a room, and suppressing the audio if the player is on the opposite side of the wall (outside the room)

Special Area Mix Control Example

City Street Detail: AmbientZones let you control the mix of traffic and city noise when you're close to an audio point of interest. For example, you could put an AmbientZone around a street vendor that lowers the volume of the city when inside that AmbientZone.

Implementation Tips

Only AmbientSoundSimple actors and SoundCues assigned to the Ambient soundclass are affected by AmbientZones

And AmbientZones also apply to any playing SoundCue set to the Ambient soundclass. Therefore actors such as:

AmbientSound

AmbientSoundMoveable

will be affected as well as Kismet PlaySound and Matinee soundtrack events, given the SoundCues used are set to the Ambient soundclass.

Default Values for AmbientZones

Can be set inside the WorldInfo properties, under WorldInfo->DefaultAmbientZoneSettings

Multiple AmbientZones and Large Radii SoundActors Interior behavior

Another aspect of AmbientZones to keep in mind is that the InteriorVolume and InteriorLPF are additive across AmbientZones if a SoundActor's attenuation radius is large enough to be heard in multiple AmbientZones at once. The goal of this behavior is to keep Internal volume and LPF from becoming overridden by entering a different AmbientZone. So, if you've set up a siren sound to become lower volume and with an LPF when the player is outside that siren's AmbientZone, it will remain quiet and with its LPF if you enter another AmbientZone with different ExteriorVolume and ExteriorLPF settings. This behavior mimics 'real world' behavior of audio and is consistent with AmbientZone behavior. Here is an example of this behavior:

In a level, there are two AmbientZones, AmbientZone A and AmbientZone B

AmbientZone A contains SoundActor 1 playing a looping sound with a large attenuation radius (large enough to be heard inside AmbientZone B), and has an InteriorVolume of .5 and an InteriorLPF of .4

AmbientZone B has an ExteriorVolume of 1.0 and an ExteriorLPF of 0.

When the player is outside of AmbientZone A, he hears the SoundActor 1 playing back at InteriorVolume of .5 and an InteriorLPF of .4

Now the player enters AmbientZone B

The InteriorVolume and InteriorLPF that were set via AmbientZone A for SoundActor 1 will be multiplied by the ExteriorVolume of 1.0 and ExteriorLPF of .5 in AmbientZone B. This will result in the SoundActor 1's volume being set to set to .5 and LPF set to .2 while the player is inside AmbientZone B.

bInside Setting

This True/False setting is used to define an AmbientZone as being active. By default, when the player is outside of any AmbientZones, all ambient soundactors play at the default 1.0 volume and 1.0 LPF setting.

NOTE: With the updated AmbientZone features, the concept of Inside? was removed, as AmbientZone volumes are always set to 'Inside' now as part of the feature.

Remember To Rebuild Geometry

When placing a sound actor inside of an AmbientZone volume, you must rebuild the level's geometry, as this is when the check is performed on the sound actor to determine its location. After geometry has been rebuilt, all AmbientZone parameters can be freely changed in the editor.