Summary of the project:
I wanted to implement sound effects and ambience for a sequence where the player opens a door, moves into a room and then closes the door:
• While standing outside the room with the door closed, the player should only hear the outside ambience (wind in this scenario)
• When the player comes within a certain distance of the door, the door should open and the player should hear a door open sound (with reverb from the room) and some room tone.
• When the player moves into the room, they should hear reverb on their footsteps, room tone, and wind from outside.
• When they move a certain distance beyond the door into the room, the door should close and the player should hear a door close sound and only room tone.
What I did:
I built a basic enclosed space and added a sliding door open/close sequence to one end. To activate the door open/close sequence and play the sounds at the right time, I made a Trigger volume the same width as the door and set the length so that it would trigger as the player approached. For the reverb, I built a Reverb volume with dimensions to match the space, and laid it over the room. In order for the player to hear the reverb effect as soon as the door opens, the door trigger mechanism and Reverb volume needed to be touched simultaneously, so I extruded part of the Reverb volume until it enclosed the external portion of the Trigger volume (leaving a small margin due to the difference in the way these two volumes seem to trigger). Finally, in Kismet I hooked the Trigger volume up to the Matinee door sequence. The screengrabs below show the enclosed space and Reverb/Trigger volumes.
(For a while I struggled with Reverb volumes because I wanted to be able to create a volume and subtract from it to create shapes more complex than the standard brushes. Then I discovered Geometry mode and found I could extrude to my heart’s content! here’s a good tutorial)
Now I had the basic mechanics working, I recorded and edited sounds for the door open and close animation; grabbed some wind and room tone ambience from a library CD; and imported everything into UDK. For the door sounds, I created AmbientSoundSimpleToggleable nodes and assigned my door sound recordings as SoundNodeWaves. I intended to control the volume of the ambience sounds using the ModifyProperty action in Kismet, so I made SoundCues for the wind and room tone. (Unfortunately since SoundNodeWaves have no VolumeMultiplier property, it seems that you can’t control the volume of a toggleable sound in this way – ModifyProperty doesn’t seem to be fully implemented in the public release of UDK).
This screengrab shows where I placed the sound nodes:
Next I added some Toggle actions to my Kismet sequence for the door sounds. For some reason, to get the sounds to play properly I had to enable Looping Sound in the wave’s properties. Since I didn’t actually want the sounds to loop, I made some Delay actions and set them to the length of the sounds, then placed them between the Touched output on the trigger and Turn Off output on the toggle, so that the sound would be stopped after playing once.
There are 2 sounds for the door close event, one is located inside the Reverb volume for triggering when the player is inside the room, the other is located just outside the Reverb volume so that it does not have reverb applied (I also changed the end of this sound to give it a quicker release time). The Kismet sequence below determines which of these door close sounds to play, by getting the X coordinate of the player and comparing it to the X coordinate of the door.
The last thing was to attenuate and increase the levels of the ambience sounds depending on whether or not the player was inside or outside the room and whether or not the door was open. Again, I used the player location calculation to trigger a ModifyProperty action to change the VolumeMultiplier property of the relevant soundcue. Then, in an attempt to simulate a fade congruent with the speed and trajectory of the sliding door, I daisy-chained several ModifyProperty and Delay actions together.
Here’s the Kismet sequence in full (the player co-ordinates are being pulled in from a separate sequence off-screen)
It works pretty well – it’s not terribly elegant in places, but maybe I’ll refine it as I learn more 🙂
There’s a video of the sequence in the third reel of my game audio showreel here.
About the sound effects:
I recorded and processed the door open and close effects using various heavy metal objects I found in the garage, including an old metal sun lounger, an axle stand and a grinder. I used Reaper running on my netbook, with an Mbox and a Rode NGT-2 mic to record them, and Pro Tools for the editing. The wind and room tone came from a sound library.