news about forums links tools tutorials contact

Sounds
Introduction Sounds are an integral part to any game, from the sounds of gunfire to the tinkling of water in a nearby stream, and eventually you will probably need to play some sort of sound in your modification. Unreal uses its own format for storing sounds (.uax), and in order to get sounds into that format you must use UnrealEd or UCC to import them from the .wav file format. Once you have imported the sounds into a package there are many different ways to get Unreal to actually play the sound, mainly by using the PlaySound() function. Note that this document doesn't cover music, just sound effects.
Importing Sounds Using UnrealEd
First of all, get the sound you want recorded into .wav format, then start up UnrealEd and select SoundFX in the browser. Click on the Import button and select the file you want imported. Then you can specify the Name of the sound (which can be indepent of the actual filename), the Group the sound should be organized in, and finally the Package which determines the .uax to store the file in. It is generally a good idea to keep your packages seperate from Unreal/UT's and named in such a way as to be able to quickly associate that the package belongs to your mod, ie UnloadedSounds.uax, or RAUTSounds. After you've imported the sound you'll want to click on the Save button to save the package to disk, otherwise you'll have to repeat the above process.
Importing Sounds Using UCC
Take the sound you want in .wav format and put it in a directory under your package's name, ie MyPackage\Sounds is a good directory. Then in the class where you want the sound to be imported add a line similar to this:

      #exec AUDIO IMPORT FILE="Sounds\MyWeaponFire.wav" NAME="WeaponFire" GROUP="Weapon"

The above line would import the wav file "Sounds\MyWeaponFire.wav", give it the name "WeaponFire", and finally put it in the "Weapon" Group. When you recompile the class UCC will automatically attempt to import the sound and then place it in the current package. This method is useful for when you have only 1 or 2 sounds and don't really need to create a seperate package solely for storing your mods sounds, on the other hand, having a seperate package can save users some time from having to re-download all that data if you just do an update to the code and not the sounds.
Playing the Sound with PlaySound()
The easiest way to get Unreal to actually play your sound in game is to use the PlaySound() function, which has the following declaration:

      native(264) final function PlaySound
      (
        sound        Sound,
        optional ESoundSlot Slot,
        optional float    Volume,
        optional bool    bNoOverride,
        optional float    Radius,
        optional float    Pitch
      );

Sound would point to the sound you've imported, including the Package name. Optionally you can also specify which Slot the sound is played in (see below for more information on Slots), the Volume, bNoOverride, the Radius at which the sound can be heard, and finally also the Pitch of the sound. Everything except for the Sound is optionally so if you just want to play a sound and nothing else you could try:

      PlaySound(Sound'MyPackage.MySound');

but you could also go with something like:

      PlaySound(Sound'MyPackage.MySound', SLOT_Misc, 4.0, false, 500.0, 64.0);

Sound Slots
Each actor in Unreal has several sound slots in which it can play sounds, so that an actor can have "8 simultaneous (overlapping) sound effects". SLOT_None, SLOT_Misc, SLOT_Pain, SLOT_Interact, SLOT_Ambient, SLOT_Talk, SLOT_Interface are the available ones, with SLOT_None being the most common as it allows any sound put there to be played simultaneously with any other songs. Note that Unreal has an internal limit of the number of sounds that can be playing at any one time (determined in Unreal/UT.ini).
Playing the Sound with AmbientSound
All actors also have a variable called AmbientSound that Unreal will loop, which is useful mainly for level editing to create that nifty waterfall sound in NyLeve, or the chirping of birds, etc etc. You can change the variables SoundVolume, SoundRadius, and SoundPitch to change the way the AmbientSound is played as with PlaySound().
If you're looking for more information on sounds, and more specifically music in Unreal/UT check out the Unreal Audio Document on the Tech Page, http://unreal.epicgames.com/Audio.htm.