Version

menu_open

Working with 3D Spatialized Objects

For 3D Spatialized sound and music objects, each input channel can be output to any speaker in a surround environment making it easy to simulate movement of the object in relation to the listener. To achieve this enhanced surround experience, Wwise uses both spatial positioning and attenuation.

Spatial positioning

Spatialization determines the actual location or positioning of the object within the 3D environment of the game. When you use spatialization, movement of the source in game is reflected by hearing the sound through different speakers.

Depending on the type of sound you are dealing with, you can choose from two types of spatialization:

  • Position: Uses only the three-dimensional positioning information (X-Y-Z coordinates) of game objects.

  • Position + Orientation: Uses both the three-dimensional positioning and orientation information (X-Y-Z coordinates of the top and front vectors) of game objects.

    [Note] Note

    For a better understanding of the subtleties of orientation, please read 3D Positioning Illustrated with special focus on the Effect of Spread and the Effect of Orientation examples.

On top of this, depending on the type of sound you are dealing with, you can choose from three types of positioning:

  • Emitter: Specifies that the emitter game object's spatial positioning is defined by live game position data. When Emitter is selected, the propagation properties defined in Wwise are directly related to the position and, optionally, orientation of the listener and emitter in game.

  • Emitter with Automation: Specifies that the emitter game object's spatial positioning is defined by creating a path in Wwise. You can define a set of fixed propagation behaviors that will ignore the position and orientation of the game object. Automated spatialization is useful for game interfaces, menus, non-localized ambiences, and voices.

  • Listener with Automation: Specifies that the listener game object's spatial positioning is defined by creating a path in Wwise. You can define a set of fixed propagation behaviors that will ignore the position and orientation of the game object. Automated spatialization is useful for game interfaces, menus, non-localized ambiences, and voices.

Most of the mobile sound and music objects in your game will use Emitter positioning, but Automation can be used for a variety of purposes too, for example, non-localized ambient sounds, such as birds or insects.

You also have the option of holding the emitter or the listener orientation, as well as the position in the case of an emitter position (with or without Automation). By enabling the applicable option, the orientation (and position) move with the animation path.

Attenuation

In addition to spatialization, you can define the attenuation of an object. The attenuation settings simulate the natural weakening of a signal as it moves away from the listener. Wwise uses a series of curves to map Wwise property values, such as Volume and Low-Pass Filter, to specific distance values. With these curves, you can create a sophisticated distance-based roll-off for your objects. To add even more realism, you can also use sound cones that attenuate the sound based on the orientation of the object in relation to the listener. For more information on defining the attenuation of your spatialized objects, refer to Applying Distance-Based Attenuation.

Combined positioning options

You can use a combination of the different positioning options to create a rich and diverse audio environment for your game. In certain situations, you may want to use only spatialization, and in others you may want to use both spatialization and attenuation. Of course, you can also use only attenuation, but this is covered under Working with Speaker Panning.

[Note] Note

For the 3D sounds that are key to the game play, you may want to route their signals to the center speaker to ensure audibility. The Center % controls allow you to define the amount of the signal that will pass through the center speaker. For more information on using the Center % controls, refer to Routing Audio Signals to the Center Speaker.

3D spatialization for motion objects

Not all motion devices fully support 3D spatialization. Game controllers, for example, have few motors with a limited number of movements and, therefore, cannot make use of the 3D spatialization information. As a result, for less sophisticated motion devices, you should use Speaker Panning with Direct Assignment. There may be some situations, however, where you might want to reduce the intensity of a motion signal based on the proximity of the source. In these cases, you can use the attenuation settings without spatialization.

Wwise 3D specifics

Refer to the following list to learn more about how Wwise calculates 3D positioning. If you don't need to know such details and would just like to set things up in the authoring tool, you can jump to the second list below.

How 3D positioning is calculated:

  1. Virtual positions are laid down according to spread (see this "Spread versus Focus" graph for more details). With multiple input channels, the spread arc is split among them (such as in stereo, where half of the virtual positions are assigned to the left and the remaining half to the right).
  2. VBAP gains are computed for each virtual position.
  3. Gains of all virtual positions are merged like this:
    • For each output channel, the square of the gains of all contributing input channels are summed together.
    • They are then divided by the number of input channels.
    • And then the square root of the quotient is taken.
    [Note] Note
    Realize that in the special case where spread == 0, all virtual positions are at the same location. This naturally results in a downmix of input channels.

To define the properties of a 3D object:

  1. Load an object into the Property Editor.

  2. Switch to the Positioning tab.

    [Note] Note

    If the object is not a top-level object, you must select the Override parent option before you can set the Positioning options.

  3. Enable Listener Relative Routing.

    The group box activates.

  4. Select the Position or the Position + Orientation option.

  5. In the 3D Position group box, select one of the following options to determine the source of the spatialization information:

    • Emitter to have the spatial positioning information calculated in real time by the game.

    • Emitter with Automation or Listener with Automation to predefine the spatial positioning information in Wwise using animation paths.

    [Note] Note

    If you selected an Automation option, click the Automation… button to open the Position Editor (3D Automation) where you can define the animation paths for your objects. For more information on creating animation paths, refer to Defining Spatial Positioning Using Animation Paths.

  6. If you set the Position to use the Listener with Automation option, enable the Hold Listener Orientation check box to store the listener's instantaneous orientation when the sound starts playing, and base positioning off of it for the whole duration of the sound. When this option is not selected, the sound will always be heard through the same speakers regardless of the orientation of the listener. When this option is selected, the listener moves independently of the path. This means that the sound will be heard through different speakers as the listener turns around. For more information on this option, refer to Creating animation paths that follow the orientation of the listener.

  7. If you set the Position to use an Emitter option, enable the Hold Emitter Position and Orientation check box to keep the source's position static until it finishes playing. If you disable this option, the source's position information updates at every game frame.

  8. If you want the spatial positioning information to be calculated to simulate movement within the 3D game space, set the 3D Spatialization list to Position or Position + Orientation.


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