The Google VR Audio FMOD integration is a plugin package that enables high- quality spatial audio on mobile (Daydream, Android, iOS) and desktop (OS X, Windows, Linux) VR platforms.
The package consists of two plugins:
GVR Audio Renderer is an audio effect plugin that allows you to binaurally spatialize sound sources using Wwise's Ambisonic pipeline. With this feature, you can route 3D sound sources to an Ambisonic mixer (an audio/aux bus with Ambisonic channel configuration) which will encode the sources into Ambisonics which can be rendered to a binaural output using the GVR audio binaural renderer plugin.
GVRAudio Room Effects is a mixer plugin that allows you to simulate room acoustics for each sound source in the environment, based on early reflections and late reverberation calculated from the characteristics of a 3D room model. 3D sound sources can be routed to a stereo mixer (an audio bus) which will mix the sources and render spatial room effects respectively in order to simulate the acoustic properties of given environment.
- Download the plugin package.
- Extract and copy the package content into your Wwise installation folder.
- You should now be able to run the plugins in the Wwise Authoring app.
Using GVR Audio Renderer in Wwise
Here's an example showing how to setup a Wwise project using the GVR Audio Renderer.
- Create a new project in Wwise Authoring.
- Create a new Audio Bus under the master audio bus and set its configuration to one of the Ambisonic channel configs. Use Ambisonics-3-3 for the highest quality.
- Add GVR Audio Renderer as an effect to the Ambisonic bus.
- Create a sound (for example, by importing an audio file to the project) and set its positioning to 3D. Optionally, you can set the Position Source toUser-defined to try different source positions on the fly.
- Finally, route the sound to the Ambisonic bus by selecting its Output Bus accordingly. Press play and you should hear the sound binaurally rendered with respect to sound's position!
Using GVR Audio Room Effects in Wwise
Set up the GVR Audio renderer plugin as covered in the previous section.
Add an Auxiliary Bus under the Ambisonic Bus to access the direct sound of each source alongside the room effects mix using the Auxiliary Sends.
Create a new Audio Bus under the master audio bus and set its channel configuration to stereo.
Add GVR Room Effects as a mixer plugin to the room effects bus.
The Master Bus hierarchy should now have the corresponding buses for the plugins.
Select your 3D sound and route its output to the room effects bus (keeping the Ambisonic auxiliary mix bus as one of the auxiliary sends) as shown below.
Finally, make sure the routing has been setup correctly by switching to the Mixer plugin tab. You should be able to see the room effects plugin UI dialog accordingly.
Using multiple Ambisonic pipelines
You can route and render desired sounds with different Ambisonic order rendering pipelines by extending the Ambisonic Auxiliary Bus approach for each Ambisonic order as described above.
To do this, create an auxiliary bus for each Ambisonic order by selecting the corresponding channel configuration for that bus respectively under the main Ambisonic Audio Bus. Then, change the auxiliary send for the sound to the desired Ambisonic order respectively.
For example, if you create an Ambisonic_FOA_Mix auxiliary bus with the channel configuration Ambisonic 1-1 it will render the routed sounds in first-order- Ambisonics regardless of the selection for the binaural renderer order in the main Ambisonic bus. This can be useful when rendering Ambisonic sounds with different orders directly (rather than point sources) in the same pipeline.
Game engine integration
The GVR audio plugins follows the standard Wwine plugin integration process. Both static and dynamic libraries are available for Windows, Android, iOS, Mac and Linux in the provided package.
Using GVR Audio plugins in Unity
The recommended way to setup the Wwise integration with the GVR audio plugins is to use the provided dynamic libraries. This way, there is no need to re-compile any code during installation.
- Download and install the Wwise Unity plugin by following the Wwise Unity Integration guide.
- Once you have your Unity project setup and linked to your Wwise project, close the Unity Editor. Copy the GVR audio plugin dynamic libraries per each platform into the corresponding DSP folders in Wwise integration.
- You can now access the plugins within Unity. See the Room effects section below to include the room effects directly in Unity using the provided scripts.
Using GVR Audio plugins in Unreal
The Wwise integration for Unreal currently does not support loading plugins via dynamic libraries. The provided static libraries must be used to re-compile the Wwise integration code with the GVR audio plugin registered.
- Download and install the Wwise Unreal plugin by following the Wwise Unreal plugin section of the official Wwise documentation.
Add the GVR audio plugin static runtime libraries to your project and rebuild the integration code to finalize the registration.
#include <AK/Plugin/GvrAudioFXFactory.h>into AkAudioDevice.cpp
AddWwiseLib(Target, "GvrAudioFX");to AkAudio.Build.cs
- Rebuild the project to register the plugin.
The GVR Audio Room Effects plugin uses the plugin custom game data structure in the Wwise
SDK to set the room properties in the environment. These room properties can be set via the
method in the game engine integration of your project.
Room effects in Unity
The plugin package provides an example wrapper implementation of room detection and multiple rooms management scripts for the Unity integration, which can be found in the UnityIntegration folder. This folder includes a wrapper script named WwiseGvrAudioRoom, which encapsulates a ready-to-use room component that can be attached to any game object in the Unity scene.
To use this component:
- Add the GoogleVR folder into the Assets folder of your Unity project.
- Attach the WwiseGvrAudioRoom component to a GameObject in your scene. Then, adjust its properties as desired (both the audio listener, and the audio sources should be inside the selected room boundaries for the corresponding room effects to take effect).
- Update the Room Effects Bus Name field in the Unity Editor Inspector GUI with the name of the Audio Bus in the Wwise project, where the GVR Audio Room Effects plugin is attached to (in case you named the bus differently than "Room Effects Bus"). Note that this step is required only once per scene. Additional WwiseGvrAudioRoom components added in the scene will automatically get updated with the chosen plugin name.
- This script is identical to the one used for integrating the GVR FMOD plugins. A detailed breakdown of the script controls is available there.