One of the new features included in Wwise 2018.1.0 is the enhancement of the Positioning tab. The goal of this refactoring is to clarify the terminology, make better use of the screen real estate and introduce two new features to Wwise. This article explains the changes, helping Wwise users understand the new UI. It also explains the added functionality of Positioning:
- Smooth 2D/3D Transitions: Speaker Panning / 3D Spatialization Mix Slider
- 3D User-defined around the emitter: Emitter with Automation
While improving the terminology used in the Positioning tab, we came to the conclusion that 2D was not the best term to define the behavior of these sounds. The 2D/3D sound concept was introduced in the 90s and we believe it is time to move on. Setting a sound to 2D in Wwise 2017.2.x and earlier meant that it would not be positioned in 3D space. You could assign a particular X-Y coordinate using the 2D Panner, that allows you to set a “position” for a mono sound. For multi-channel sources (i.e. not mono), the result was to change the panning of the volumes sent to the speakers very much like a car radio’s Balance and Fade settings do.
In Wwise 2018.1.0, 2D Positioning is now called Speaker Panning and it can be set to Direct Assignment to play the content of the source directly on their respective channels (L, R, C, etc.), or it can be set to Balance-Fade to enable the Speaker Panner.
Panning a sound in this way can give the impression that it is positioned in space without requiring the SoundEngine to evaluate the emitter-listener positions. This is how music is panned in a DAW, it is the standard way of panning non-diegetic sounds.
3D Always Meant Listener Relative Routing
Selecting the Listener Relative Routing option for a sound enables several other interface elements of the Positioning tab. Let’s say you want a Speaker Panning sound to be audible only when the listener is close to the emitter, computing the emitter-listener positions becomes necessary. You select Listener Relative Routing to access its Attenuation Editor and set the Output Bus Volume curve with the desired Max distance.
When a sound should appear to play from the position of the game object it is playing from, then we want the SoundEngine to compute 3D Spatialization of the emitter-listener positions. 3D Spatialization is defined as: "The action of panning a sound on speakers based on the positions of the objects in game". In order to do so, set 3D Spatialization to Position or Position + Orientation. When set to Position + Orientation, the multi-channel content of the source will rotate based on the orientation. It is crucial to set the Spread to a value greater than zero to get this effect; all multi channel sources are folded down to mono when the Spread is at zero. A review of the 3D Positioning Illustrated section of Wwise Help can help you visualize the subtleties of Position + Orientation and how Spread and Focus work in Wwise.
Introducing Speaker Panning / 3D Spatialization Mix
Although it was possible to use a Game Parameter to control the 2D/3D positioning type via RTPC (Real-time Parameter Controls) in Wwise 2017.2.x and earlier, the transition between the two was instantaneous; and this would often cause unnatural transitions or even glitches. The only way to achieve a smooth transition between the 2D and 3D versions of a sound involved duplicating the SFX to have a 2D and a 3D copy, place them in a Blend Container and cross fade them in the Blend Track. This workaround is a thing of the past in Wwise 2018.1.0 thanks to the Speaker Panning / 3D Spatialization Mix slider!
It can be used to either set a static percentage of mix between speaker panned and 3D spatialized, or controlled via RTPC to be dynamically set by the game code. You could also bind the Game Parameter to a built-in parameter like Distance to automate the transition between the speaker panned and 3D spatialized sounds.
3D Game-defined Becomes 3D Positioned Emitter
The 3D Game-defined sounds of Wwise 2017.2.x and earlier are sounds playing on game objects (a.k.a. emitters) that have their position set in the world through calls to the Wwise SDK functions. In Wwise 2018.1.0 the same result is achieved by enabling Listener Relative Routing, use Position or Position + Orientation for 3D Spatialization and set the 3D Position to Emitter:
The Hold Emitter Position and Orientation option is disabled by default, enable it if you want the initial position of the emitter to be used for spatialization for the entire duration of the sound; thus ignoring the movement of the emitting game object.
3D User-Defined Becomes Listener with Automation
The 3D User-defined sounds of Wwise 2017.2.x and earlier allowed you to “program” one or more paths around the listener to make the sound move while it played. To reach the goal of clarifying the terminology, it has been renamed to Listener with Automation in Wwise 2018.1.0.
The Hold Listener Orientation option will use the initial orientation of the listener when selected. If the listener changes orientation during the playback, sounds will be panned to reflect the change in orientation. Unselecting this option makes the sounds come from the same speakers no matter how the listener’s orientation changes.
Introducing Emitter with Automation
Another feature frequently requested by Wwise users was the ability to use 3D User-defined positions to be applied to the emitter game object instead of the listener. This feature is now available, it is called Emitter with Automation!
Using the same Position Editor used for Listener with Automation, it also has a Hold Emitter Position and Orientation option. If this option is used on a sound played on a moving game object, the initial position of the game object when the sound is played will be kept for the duration of playback.
I hope this article helped you understand the changes to Positioning in Wwise 2018.1.0.