Version

menu_open
Warning: you were redirected to the latest documentation corresponding to your major release ( 2023.1.9.8628 ). Should you wish to access your specific version's documentation, please download the offline documentation from the Audiokinetic Launcher and check the Offline Documentation option in Wwise Authoring.

Using Effects to implement environment acoustics

In Wwise, two different types of busses are Audio and Auxiliary. The Auxiliary Busses, along with the send system, can be used to implement environment acoustics. Effects applied on Auxiliary Busses can be used to recreate how the environment influences the playing sounds, such as by adding reverberation. Effects on Auxiliary Busses have the additional capability of being applied dynamically according to game object location data.

The following sections will show you how you can use Effects in Auxiliary Busses in your project.

Understanding sends

The acoustics of an environment within your game is simulated by adding a series of Effects in an Auxiliary Bus and sending the signal to that bus. You can create as many Auxiliary Busses as you want; one for each of the different environments in your game. You also have the possibility to add Effects to an Auxiliary Bus dynamically in the game using the SDK function SetBusEffect(). Once you have defined the Auxiliary Busses with your effects, you need to define which object is sending to these busses.

You have the choice of defining the object sends statically by using User-Defined Auxiliary Sends, or by letting your game define the sends by using the game-defined auxiliary sends.

To create an Auxiliary Bus:

  1. In the Master-Mixer Hierarchy, create an Auxiliary Bus object.

  2. Inspect the Auxiliary Bus.

  3. In the Effects tab of the Auxiliary Bus, add the required Effects for the environment acoustics.

To have an object affected by an environment acoustic using the User-Defined Auxiliary Sends:

  1. Inspect the Actor-Mixer Hierarchy object.

  2. Drag & drop an Auxiliary Bus to the User-Defined Auxiliary Sends list.

  3. Use the Send volume slider to define how much signal is sent to the Auxiliary Bus, defining how much the object is participating in the environment acoustics.

To have an object affected by an environment acoustics using the game-defined auxiliary sends:

  1. Inspect the Actor-Mixer Hierarchy object.

  2. Enable the option Use game-define auxiliary sends.

  3. In the game, use the function AK::SoundEngine::SetGameObjectAuxSendValues() to assign an auxiliary send per game object.

[Note]Note

For more information on mapping environments in-game, refer to Wwise SDK - Windows > Sound Engine Integration Walkthrough > Integrate Wwise Elements into Your Game > Integrating Environments and Game-defined Auxiliary Sends in the Wwise SDK documentation. You and the audio programmer can also look at the Integration Demo, which gives examples of how to set up auxiliary sends.

Using auxiliary sends to recreate environment acoustics - example

Let's say you are working on a game that takes place in and around a haunted graveyard. The game is full of ghosts, and you want the ghosts to sound different depending on which environment the ghost sounds are coming from. In one section of the game, your player can explore a chapel, a tunnel, and the stairway connecting the two. For this section of the game, you define the following Auxiliary Busses:

  • Chapel

  • Stairs

  • Tunnel

You decide to give each of these three environments a distinct Reverb. For example, the tunnel is a much smaller space than the chapel, and has cavernous stone walls; therefore, its reverb will be much more pronounced than that of the chapel. In Wwise, you can create a reverb instance that will have a higher reverb level and shorter decay time to match the acoustics in the tunnel, as well as others to match the chapel and the stairs. Later, a developer maps the Auxiliary Busses that you have created to locations in the game's geometry. As a result, when a ghost is in the tunnel, ghost sounds echo far more than when the ghost is in the chapel.

Wwise auxiliary sends can also emulate the movement between environments by dynamically calculating the send volume for all of the simultaneous sends. The following diagram illustrates the in-game dynamic Auxiliary Bus routing and mixing for this example.

The proportion of each send that is applied to the particular sounds depends on the position of each game object within the game geometry. Here, your intrepid player is descending the stairs from the chapel into the tunnel, with a ghost in close pursuit. Partway through the tunnel, the player and ghost can be defined as being 100% in the Stairs environment, but also 50% in the Chapel environment, and 40% in the Tunnel environment. The ghost's sounds are then processed with each reverb instance at the appropriate percentage.

Integrating game-defined auxiliary sends into your workflow

In Wwise, you can create and edit Auxiliary Busses with Effects and define which object is sending to them. Auxiliary sends can be defined programmatically to sounds based on game object positioning. The following steps describe how a development team can implement game-define auxiliary sends:

  • The sound designer defines Auxiliary Bus objects corresponding to environments in the game, such as small room, church, and cave.

  • The sound designer makes sure all sounds that are to be affected by the environment acoustics have the option Use game-defined auxiliary sends enabled.

  • The game developer maps the Auxiliary Busses to the environments as they appear in the game geometry.

  • The game developer creates a mechanism for reporting the real-time calculation of percentages of environments to the sound engine.

  • The sound engine calculates which Auxiliary Bus applies to the sounds triggered by each game object.


Was this page helpful?

Need Support?

Questions? Problems? Need more info? Contact us, and we can help!

Visit our Support page

Tell us about your project. We're here to help.

Register your project and we'll help you get started with no strings attached!

Get started with Wwise