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.
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.
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 object's spatial positioning is defined by creating a path in Wwise relative to the position of the associated emitter game object.
Listener with Automation: Specifies that the object's spatial positioning is defined by creating a path in Wwise relative to the position of the listener game object.
With automation, 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.
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.
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, such as non-localized ambient sounds like birds or insects.
For example, you might want to simulate the sound of a mosquito buzzing overhead. The mosquito can be heard buzzing around, but cannot be seen. Since the sound emitter must move within the 3D space, 3D spatialization using either Emitter with Automation or Listener with Automation would be appropriate.
Whether you select Emitter with Automation or Listener with Automation, in the Position Editor, you can define a variety of paths for the mosquito sound to follow:
If Emitter with Automation is selected, this is the position of the emitter game object associated with the Mosquito Sound SFX. In this case, a game object is required to define the location, perhaps around a stagnant pond, where the buzzing would be heard.
If Listener with Automation is selected, this is the position of the listener game object. In this case, no mosquito-related game object is required. Instead, the buzzing follows the player around.
In either case, this is the predefined path upon which the mosquito sound will travel, relative to either the stagnant pond (Emitter with Automation) or the player (Listener with Automation).
In addition to spatialization, you can define the attenuation of an object. The attenuation settings simulate the natural weakening of a signal as its source moves away from the listener or behind obstacles. Wwise uses a series of curves to map Wwise property values, such as Volume and Low-Pass Filter, to specific drivers, such as distance or obstruction values. 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 Attenuation.
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.
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.
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.
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:
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).
VBAP gains are computed for each virtual position.
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.
Realize that in the special case where
To define the properties of a 3D object:
Load an object into the Property Editor.
Switch to the Positioning tab.
If the object is not a top-level object, you must select the Override parent option before you can set the Positioning options.
Enable Listener Relative Routing.
The group box activates.
Select the Position or the Position + Orientation option.
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.
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.
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.
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.
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.