Chapter 8.0 Sound and the UDK Audio System

Sound is a sometimes overlooked aspect of game development, but it is immensely important to creating believable and immersive environments. Unreal Engine 3's audio system provides tools and features to mold the sounds in the game to give them the desired feel. This is important because it means that a clean version of the sound can be produced once in an external application, imported, and then crafted within the engine to create the appropriate result.

Audio System
UnrealEngine3's audio system consists of a base audio class UAudioDevice. The base implementation takes care of some of the basic logic, such as adding and removing UAudioComponent objects. The UAudioComponent objects are content that can be played on the UAudioDevice. UAudioComponent objects contain USoundCue objects, which reference USoundNode objects which contain the actual audio data (i.e. a USoundNodeWave contains wave audio data).

The platform specific portion of the UnrealEngine3's audio code lives in audio device classes derived from the UAudioDevice audio base class. Currently there are three platform specific audio devices: UALAudioDevice (OpenAL PC), UXeAudioDevice (XBox360) and UPS3AudioDevice (PlayStation3).

All devices support an optional per source low pass filter, per bus reverb effects, per bus EQ filter and multichannel (4.0, 5.1, 6.1 and 7.1) sounds (when the hardware allows it). The intention is to have all platforms sounding as close as possible to each other.

The base audio class implementation can be found in Engine\Src\UnAudio.cpp and the declaration in Engine\Inc\UnAudio.h. The base audio component implementation can be found in Engine\Src\UnAudio.cpp and the declaration in Engine\Inc\UnActorComponent.h. 

Distance Model Attenuation
Attenuation is essentially the ability of a sound to lower in volume as the player moves away from it. It works using two radii: MinRadius and MaxRadius. As you move from the sound’s origin through the MinRadius, volume of the sound is at 100%. As you pass between the MinRadius and the MaxRadius, the volume linearly fades between 100% and silence. The rate at which this fade occurs is based on the DistanceModel property, which provides several types of falloff curve to control the volume in-between the radii. Once you pass outside the MaxRadius, you’re outside the limit of the sound and hear only silence.

Unreal Sound Cue Editor User Guide
The behavior of audio playback in UE3 is defined within SoundCues. The Sound Cue Editor is the tool used to work with audio in the Unreal Engine.

Using Sound Actors
Unreal Engine 3 provides several different types of actors that can be used to produce or modify ambient sounds within the level.

Ambient Zones
AmbientZones are an inexpensive interior/exterior ambient audio solution. Benefits of AmbientZones include:
  • Makes the transition from interior to exteriors areas sound good
  • Reduces labor for audio designers, as less sound actors will need to be placed and iterated on inside/outside spaces
  • Reduces game systems overhead, due to the savings in number of needed sound actors to define interiors and exteriors

Streaming Audio and GUDS ( Gears Unscripted Dialog System )
The Unreal Engine Audio System does not support simultaneous streaming of arbitrary audio content; however you can stream packages that have audio in them. This approach was favored because Epic wanted to devote as much bandwidth to texture streaming as possible; and having a delay for such fast action games as Unreal Tournament and Gears of War would also be unacceptable. As an alternative, a special dialog system was created for Gears. The system is event-based and has the Pawns making comments on occurrences in the game, such as when an enemy is spotted, or a man on your team goes down.

**Topics to Explore**
  • From UT3 to UDK: Changes to the Unreal Audio System

  • UDK Sound: Introduction & Basic Set Up
  • UDK Sound Explorations: Various Implementations of Sound in UDK 
  • Interactive Game Audio Tutorial
( the level files in the Audio Tutorial are .UT3 files so you will need to install Unreal Tournament )

No comments:

Post a Comment