Wwise and Unity 3D



The video above is a walk-through of in-game audio implementation completed in Unity 3D. A level from Warden of Raal was used as a test bed for experimenting with Wwise integration in Unity. Instead of using Unity's standard audio solution (Fmod), a plugin was developed in order to take advantage of design features found in Wwise. After successfully generating a functional plugin, audio tools needed to be programmed in order to aid the visualization, execution and debugging of Wwise sound events. As a result, all of the original audio from the game was stripped out and replaced using audio assets run entirely through Wwise.


The work-flow involved with this project included:

  • Development and modification of Wwise Plugin(dll) : DirectX SDK, WwiseSDK, VisualStudio
  • Programming audio tools and custom debugging scripts in Unity
  • Creation of SFX in Pro Tools and Ableton Live
  • Full in-game audio implementation using Wwise middleware.


The Plugin

As an experimental plugin, a large portion of time was dedicated to testing Wwise functionality in Unity. The main goal was to have a complete audio middleware solution for Unity so all of core Wwise design features were tested. One of the largest problems faced during this project was the implementation process itself. Without built-in Unity support for Wwise, methods for controlling audio in the editor had to be created. A sound node based system similar to the existing Unity (Fmod) audio source component felt appropriate for handling the task. Since the audio portion of this particular build of Warden of Raal was incomplete, a significant amount of scripting needed to be done.



Audio tools and Scripts

The flexibility of the Unity game engine provides users with a considerable amount of control when it comes to tweaking and controlling audio content. The image to the left is a sample editor script used to mix the levels of each Wwise sound group in the Unity editor. Within the script, sliders can be adjusted which dynamically change the volume RTPC values of audio buses imported from Wwise soundbanks. Sound levels can now be quickly changed without having to constantly edit and re-import the Wwise project. One instance where Wwise audio bus levels are modified can be seen at 1:00 of the video implementation walk-through. In the scene, the player executes a toggle event which moves the camera away from the player to an aerial view. When this event occurs, the RTPC values on the Wwise audio buses are altered such that the character sound volume is reduced while ambiance is increased and a reverb effect is applied.




Wwise

Through the use of Wwise, complex sound assets were generated relatively quickly. All of the sound effects brought into the game had some level of randomization, be it through looping transitions, delays, pitch or volume. In looking at the ambient sound, several layers of insect, bird, wind and water sounds were combined in blend containers. Each of these sub-layers contain varying levels of randomization. In turn, the ambiance of the level never becomes monotonous. Another benefit that Wwise brings to Unity is the ability to use Audiokinetic's SoundSeed plugins. In the game space both SoundSeed Wind and SoundSeed Woosh plugins are used to create procedurally generated air sound effects via modular synthesis.