- Created on Tuesday, 03 June 2008 18:44
Unreal Tournament 3 is host to a dynamic music system that is capable of cross-fading between different music sections based off the actions of the player or what is currently happening in the game. This document will attempt to outline the features of this system and methods to consider when writing audio for it. The engine makes references to cues which are a collection of properties associated with a single music segment. Cues can tell the engine how loud to play the segment, if it should loop and how often. They can also tell the engine to apply several effects ranging from pitch shifting, modulation, etc.. Logic dictates though that we as musicians should try to avoid doing anything unnecessary in the game engine that could just as easily rendered with our own software instead. It's not our job to be intrusive but complimentary.
For every music segment there will be a cue giving instructions to the game engine, but not directly, there is one other component that ties things together. A music arrangement is another collection of properties that stores information about the cues. The arrangement tells the engine things like which cue to use for the intro, how many measures it takes to cross-fade into the action segment, and the tempo (bpm) of the song.
How the music behaves is different with each gametype but only slightly. What events make certain cues play is written into the code for each gametype. While this is something you cannot change you can use it to your advantage.
This is the simplest gametype to write for as it makes use of the fewest cues compared to the other gametypes. This is also a good introduction to writing for Unreal Tournament 3 because all of the music changing events that occur in Deathmatch are inherited in every other gametype. This section also applies to Team Deathmatch.
This is the cue that plays after the map has loaded. At this time the player is in a spectator view of the map with a message that says "press fire to begin". The Intro cue is the one segment you can opt to not loop. The game engine will attempt to detect the end of the audio and once it reaches it will then switch cues to Ambient automatically. It isn't perfect and there will be a slight pause so you may want to write your intro segment with that in mind. Not looping is not mandatory. This is more of a creative decision. My advice would be to try both and see what works best. Another issue to consider is loading time. While the map is loading the audio is loaded into memory before the video data. If your intro starts out strong and right away you may encounter some skipping while the rest of the map is loading. Inserting a couple seconds of silence into the beginning of the Intro will reduce this unless your supersonic ears can actually perceive silence skipping.
This cue along with Action will be the two most heard loops during the game. With that in mind you will want to keep it interesting but not overpowering. The Ambient cue plays when the player isn't involved in anything harmful. If you set the Intro cue to not loop this is the cue that will begin playing after it. While the player's admiring the map, camping a powerup, or spectating; doing anything that does not involve getting injured or attempting to injure another player this cue will play. Another interesting bit is the Ambient cue is also the fallback cue for every other event. If the player's been tearing through a group of enemies there will always come a point where that ends. Deathmatch is usually a series of fast battles. Whatever the event, whatever cue is changed to there will come a time when the cue will change back to Ambient; usually a few seconds after the player is no longer in any danger. After the match has ended the players are put back into spectator mode with thier view locked onto the winning player. At this time, if not already playing, the music will change to the Ambient cue.
Just as the name implies this cue plays when there's some kind of action occurring. Anything involving the player inflicting or receiving damage will trigger the Action cue to begin playing. When writing for the action segment you should take note that in Unreal Tournament 3's dynamic music system when a cue changes it starts from the beginning. The unique arrangement you write for the beginning of the action segment may sound interesting during a full listen but remember players are likely to hear the first 30 seconds of your action segment several times over in a single ten minute match. Music for the most part is a creative design desicion and I'm not one to impose rules on this but merely give consideration to how this will be performed ingame. After all that is what you're writing for, isn't it? Another thing to take note of on the Action cue is it will override any other cue in the event the player is injured or causes injury. More on this later.
The name is a little ambiguous. What this cue actually represents is the player managed to find something of importance without being subject to the violent actions of anyone else. In Deathmatch there are several special powerups in the game. This is something you'll need to consider if writing for a specific map. If it doesn't have these powerups this cue doesn't necessarily need to be written. If the Ambient cue is currently playing and the player picks up an amp, berserk, invisibility, invulnerability, or redeemer the Victory cue will play. Bear in mind that only the player that has a powerup will hear the Victory cue, it will not play for other players. It will play until it is interrupted by the Action cue in the event the player gives or receives any damage. After our powered-up played kills his opponent a begins searching for the others now hiding from him the music will switch back to the Victory cue until the effects of the powerup(s) have worn off. If the powerup(s) naturally wear off while the Victory cue is playing the music will revert to the Ambient cue.