Version
Wwise has a variety of tools that can help you simulate realistic positioning and propagation for any sound, music, or motion object in your game. The following sections describe how positioning works for the various objects in Wwise.
At a very basic level, your sound and music objects can use 3D spatialization or not.
The main difference is the way in which the source channels are mapped to the output speakers. Without spatialization, the source channels are linked together, whereas with 3D spatialization each input channel can be output to any speaker in a surround environment. The positioning method can be changed at runtime through an RTPC on the Positioning Type.
For non-diegetic sound and music objects, you can use a panner to balance the volume of each channel so the sound or music object can be heard through different speakers.
For diegetic objects, using 3D spatialization provides calculations using the X-Y-Z coordinate position and, optionally, the X-Y-Z coordinates for the top and front orientation vectors of the sound emitter in game. However, the spatialization information for either the listener or the emitter can be predefined in Wwise using specific animation paths.
Whether using 3D spatialization or not, Wwise also offers attenuation, which simulates the natural weakening of an audio signal as the sound emitter moves and/or turns away from the listener.
![]() | Note |
---|---|
The positioning information is used to determine the spatialization within the surround environment; but, it is also used to calculate the distance for attenuation. |
In a game, a single instance of a sound might not be enough to create a realistic soundscape. Multiple instances and positions might be more realistic.
Instead of duplicating the game object, you can set multiple positions for it using the Wwise SDK's SetMultiplePositions() function. This can create a number of effects, for example:
A single object emitting the same sound from multiple positions in the same area: this can be configured to increase the volume additively, or not, according to the scenario.
A single object emitting the same sound from multiple positions to simulate it being emitted from different directions, according to the listener's position.
A single object emitting the same multichannel sound, with the channel output adjusted according to the listener's position, for example proximity to the left or right speaker of a stereo audio system.
For implementation details, refer to the section Setting multiple positions for a single game object in the Wwise SDK documentation.
Positioning for less sophisticated devices, such as game controllers, is not an issue because the motors within these devices cannot simulate a 3D environment. You can, however, use attenuation to reduce the intensity of the motion signal as it moves away from the game player.
When setting the positioning for objects, keep in mind that each object within the hierarchy can have a positioning setting. Positioning is considered an absolute property, which means that the positioning of the top-level object is automatically passed down to all child objects. You can, however, override these settings if you need to customize the positioning for a particular object. For more information on how positioning works within the hierarchy, refer to About properties in the project hierarchy.
Multichannel sounds can be positioned in space using positioning just as well as mono sources, without downmixing to mono.
In order to compute a source's channel contributions to each speaker, "virtual emitters" are set in a circular arc around the listener. The extent of the circular arc depends on the spread (100% is the whole circle, 0% is a point in front of the listener). The circular arc is then split in as many regions of equal size as there are channels, and each of the source's original channels contribute to their assigned region. For example, with a stereo source, all virtual emitters on the left of the circle use the source's left channel, and all those on the right use the source's right channel. Once this is done, the actual contribution of each virtual emitter is computed for each speaker. Thus, the multichannel image is somewhat preserved even with 3D positioning.
![]() | Note |
---|---|
In a case where the spread is 0, all virtual emitters are located in a single point in front of the listener, which is similar to downmixing all channels to mono before positioning it in the 3D space. |
Questions? Problems? Need more info? Contact us, and we can help!
Visit our Support pageRegister your project and we'll help you get started with no strings attached!
Get started with Wwise