Version
menu_open

Working with 3D Objects

For 3D 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. If you choose not to use spatialization, a sound or music object is played according to its original channel configuration regardless of any movement of the source.

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

  • User-defined - Where the positioning information is predefined in Wwise using specific animation paths.

  • Game-defined - Where the positioning information is defined by the actual position of the object in game.

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

Attenuation

In addition to spatialization, you can define the attenuation of a 3D 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 3D 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, in others you may want to use only attenuation, and in others you may want to use both.

[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 positioning for motion objects

Not all motion devices fully support 3D positioning. 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 2D positioning without panning. 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 set the positioning of your motion object to 3D and then 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 a top-level parent 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 Enable Positioning.

    The positioning list activates.

  4. Select the 3D option.

    The 3D positioning controls become available.

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

    • User-defined to pre-define the spatial positioning information in Wwise using animation paths.

    • Game-defined to have the spatial positioning information calculated in real time by the game.

    [Note] Note

    If you selected User-defined, click the Edit button to open the 3D Position Editor 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 Source to User-defined, select the Follow Listener Orientation check box to lock the position of the animation path to the orientation of the listener. When this option is selected, the sound will always be heard through the same speakers regardless of the orientation of the listener. When this option is not 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 Source to Game-defined, select the Update at each frame check box to update the source's position information at every game frame. If you disable this option, the source's position remains static until it finishes playing.

  8. If you want the spatial positioning information to be calculated to simulate movement within the 3D game space, set the Spatialization Mode drop menu to Position or Position + Orientation. If you set this option to None, an object is played according to its original channel configuration regardless of any movement of the source.


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