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, simulating movement of the object in relation to the
listener. To achieve this enhanced surround experience, Wwise uses both spatial
positioning and attenuation.
You can also apply positioning to Audio and Auxiliary Busses. See Applying positioning to busses.
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:
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.
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]](/images/2023.1.6_8555/?source=Help&id=note.png) | 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.
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.
![[Note]](/images/2023.1.6_8555/?source=Help&id=note.png) | 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:
Load an object into the Property Editor.
Switch to the Positioning tab.
![[Note]](/images/2023.1.6_8555/?source=Help&id=note.png) | Note |
---|
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 activates.
Select the Position or the Position + Orientation option.
In the 3D Position group, 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]](/images/2023.1.6_8555/?source=Help&id=note.png) | 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. |
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.