Wwise SDK 2022.1.1
|Note: For an introduction to working with listeners in third-person perspective applications, refer to Working with Listeners in Third-Person Perspective Games. This section elaborates with details pertaining specifically to Spatial Audio.|
When working with third-person perspective (TPP) experiences with Wwise Spatial Audio initialized, there are some special considerations.
Wwise Spatial Audio performs sound propagation calculations using ray-based acoustic simulation techniques. In broad terms, we can think of Spatial Audio as solving for sound propagation paths between a sound emitter and a listener. A sound path may be subject to:
In general, there are many paths between a single sound and a listener, and they are combined to produce the final rendered sound. For more general information on Spatial Audio, refer to Spatial Audio.
In a TPP experience, it’s not uncommon to have discrepancy between what the camera experiences and what the character experiences. In such scenarios, it may be difficult or impossible to follow simple rules for rendering distance attenuation and filtering based on the Distance Probe and panning/spatialization based on the camera position. Calculations performed for acoustic simulation can be CPU intensive, and it’s not possible, nor desirable, to perform the simulation for both the Listener Game Object and the Distance Probe Game Object.
It is however still possible to assign a Distance Probe to the Spatial Audio Listener. The general approach taken by Wwise Spatial Audio is to use the Listener position for the purpose of sound propagation calculations. The distance value passed to the sound engine is augmented to give results closer to what one would expect had the path been computed to the Distance Probe Game Object. The methods used to augment the distance value differ based on the type of path; more details on what that means for reflection, diffraction and transmission paths are provided in the following sections. This approach ensures that spatialization and panning are always true to the simulation and do not disrupt the player's sense of immersion. However, when the position of the Distance Probe and the position of the Listener are highly divergent, the attenuation value may give slightly unexpected results. In any case where Spatial Audio features are in use, but a path computation results in an unobstructed straight line, attenuation results are exactly as expected.
The following sections describe in detail how the various Spatial Audio features operate when a Distance Probe is assigned to the Spatial Audio Listener.
The diffraction system in Spatial Audio is primarily responsible for rendering the dry signal path for a particular sound and listener. Often, a single sound will have multiple diffraction paths.
For the dry signal path, transmissive sounds can be used with Distance Probes with no special consideration, since transmission paths always follow a straight line.
The reflection system in Spatial Audio uses the Reflect plug-in to render early reflections for a sound and a Listener.
The rooms and portals system, while also used for diffraction calculations for the dry signal path, is the primary method to spatialize reverberation. Spatialized reverb includes the wet signal path and can generally be thought of as either reverb output from a plug-in, or a room tone playing directly on the Room Game Object.
The following annotated image of the Game Object 3D Viewer shows an example of a room with a single portal, where both the Distance Probe and the Listener are outside the room.
||Distance: Distance Probe to portal’s virtual position. This distance is used to evaluate the contribution of the portal.|
||Distance: Distance Probe to room extent. This is the distance between the Distance Probe and the closest point to the Distance Probe on the surface of the bounding box defining the room extent*. This distance is used to render the transmission path.|
||Direction: Listener to portal’s virtual position. This direction is used to pan the contribution of the portal.|
||Direction: Listener to room extent. This direction is used to pan the contribution of the transmission path.|
*Room extent visualization can be enabled in the Game Object 3D Viewer Settings by setting the Room Extent Opacity slider to a value greater than zero.