Here it is - the final blog post for my Advanced Interactive Audio course! Throughout this post, I'll be describing my process for the creation and implementation of sounds into a custom made map in the Unreal Development Kit. The map was actually made by another student for the purpose of lending it to our class for this final, which makes it even cooler. Anyways, bear with me because this is going to be a long post.
To begin, I've put together a gameplay video (using fraps on PC, hence the www.fraps.com text at the top of each video) demonstrating a bunch of the different sounds I did, so check it out first.
My initial thoughts were that this level is a pretty dark, poorly lit level. This was done on purpose and definitely creates a scary look, so the sound should reflect that also. I went for a minimalist approach, because I believe that the lack of sound is just as important as apparent sound itself when it comes to creating suspense and scaring people.
Background Ambience: To start out, I designed some background sounds to serve as constant, looping audio underneath all of the other sounds you hear going on. The backgrounds are not interactive, meaning you can't trigger them. They're just there, and they stay put. To incorporate them so they can be heard, I used an ambient sound - simple object (or actor) within the map. This is pretty much an object that loops a sound, in which you can adjust a few parameters to fine tune it. The parameters I worried about mostly were minimum and maximum distance, so that the background sounds covered the entire map. It's really as simple as its name suggests.
Ambient Stingers: After I got some good sounding backgrounds, I implemented some stingers. A stinger is a randomly generated sound used to enhance something - in this case, I used them to enhance the background. I've already got the erie outdoor wilderness sound of the backgrounds, so for the ambient sounds, I designed some wind using automated high-cut EQ filters on pink noise. For some of the other stingers, I used Logic instruments and got a creepy tone, then messed with the EQ and pitch drifting. Pretty simple process for some pretty creepy sounds. To put them in the game, I used an actor similar to the background ambience, but an ambient sound simple non-loop. This is an actor which I can put multiple sounds in that will continuously play one random sound at a time at random intervals. I've got a few screenshots for you to actually see what it looks like:
The blue speaker is the ambient sound simple background actor, with the red & green (highlighted red) being the two ambient sound simple non loop actors I used for my different stingers. As I mentioned, you can adjust the area in which you'll hear these sounds with a min and max distances, which look like this:
The Door: The door warranted a different approach than the stingers or the background. Instead of placing an actor that played a sound, I made the event of the door opening target the sound of it opening. This meant jumping into Kismet. Kismet is pretty much Unreal's interface environment for making things happen in the game (I don't have any pictures of the door sounds from Kismet, but you'll see some other examples soon). So, as you approached the door and it opened (set off by a trigger volume) you'll hear the sound too. The same applies when it closes.
The Jump Pad: The jump pad wasn't as complex as the door, even though the door wasn't much of a challenge either. I created the humming sound with a series of layered electric buzzes, air conditioners and airplane cabins, and ran them all through a tremolo effect to get a pulsing sound. Using the jump pad, you'll hear a big "WOOSH" sound. To be honest, I don't particularly remember my process for creating it, although it utilized a bunch of air piston release sounds. Once I had these two sounds, I found the packages that Unreal would play these sounds from and replaced them. The humming sound is a looping object, with a min/max setting so that it attenuates in volume when you get farther away. The use sound is a triggered one shot. Not so hard!
The Portal: The portal sound required a bit more building in Kismet. Initially, the sound of the portal was supposed to be just like the jump pad - a looping hum sound will play, and a portal use sound will be triggered when you walk through it. I used samples of low rumbles and high frequency harmonics and ran them through different plugins to get a sound as if you could hear the abyss of space. For the portal use sound, I used a similar process to the jump pad use where it's a series of piston blasts, a low frequency hit, and a noise generator that I manipulated with a low-to-high pitch sweep (makes another "woosh" sound). Just to be more creative, I got some nice electric shock noises that I wanted to randomly trigger on top of this. The basic humming sound is looped, while the 5 electric shock noises are selected at random within a random time interval. They are also modulated slightly so they sound a bit different every time. Once I had all of this together. I placed a sound actor at the portal that would play this. The portal use sound was just a oneshot trigger that I replaced in the appropriate sound package.
I'm pretty sure my portal hum/use sounds got layered with some existing sounds in the game, but it didn't bother me. It still sounds pretty cool to me.
The Portal Room Sound: I didn't do a whole lot of room tone, because it was mainly an outdoor level and I didn't feel it was necessary for the time I was given. However, I did on the indoor room where the portal is. This was an underground room made of stone that has some really tall skylit kind of things, so the sound here would be pretty reflective. This was done using a reverb volume. A reverb volume is a defined area that affects sound, whether it be interior or exterior. In this case, I made the reverb volume to apply a stone room type of reverb to all sounds that happen within the portal room. Another cool feature of a reverb volume is that it can attenuate or apply low pass filters to interior/exterior sounds. I utilized this so that the outside ambience and sound would be filtered out a little bit once you walked inside. On the other end, the interior sounds would be attenuated and cut off a bit when you walked outside. This is apparent in the video where you hear the portal from outside, but it's more of a muffled rumble. Although I could have attenuated it more, it's a good start to creating a more realistic sounding environment.
The Weapons: Well, I already have an entire blog post covering this topic. I just really wanted to put the sounds in the video again because they sound awesome. And I have a screenshot of the Kismet environment I created fo them:
Small Health Pack: the small health pack was pretty simple. All I did was design a sound using a sample of a gun loading and some synthesized noise, and replace Unreal's old health pickup sound with my new one. All of the coding and Kismet functions already existed to trigger a sound once the health was picked up, I just had to make sure it would be my sound. It was as simple as this:
The Dumpster: The dumpster was by far the most challenging aspect of this map, so I saved it for last. It wasn't hard to decide how I wanted to do it or get everything in place, but the challenge was all of the options I had to change and parameter checkboxes I had to make sure were checked. I started out with a dynamic trigger volume, which is essentially just a different type of trigger volume. In case you forgot or haven't read my earlier blogs, a trigger volume is a defined area that triggers an action once you interact with it in some way. In the case of the dumpster, I wanted it to trigger a sound once you shot it. So I made the trigger volume roughly the size of the dumpster, as shown below:
After this, I went through the volume's parameters and eventually figured out what I needed to do to get it to trigger when it was shot. Once I figured that out, I made an event for it in Kismet. So, I created an event that went something like "when the dumpster takes damage from any weapon, play this sound." Here's what that looked like (DynamicTriggerVolume_0 Take Damage object to Play Sound object):
And that's how it was done. It took me a bit of reading, trial and error to figure it out, but I was ultimately happy with the result.
-Matthew Morrison
No comments:
Post a Comment