Wednesday, December 14, 2011

UDK Demo Dev Blog Part III

Part Three: Implementation!


This is the third installment of the development blog of my UDK Demo, you can check out the beginning, part one, by clicking the link below!

Or maybe you've already read part one! You can read part two here:




One of the best things that has been happening in the last few years is the advancement of game engines. Engines like UDK, Unity and Cryotech have been not only advancing in technology and capability but also in availability and accessibility. My favorite thing about UDK is not just because the engine is free but really because it has a built in audio system that is so intuitive but yet not too simple that you can't do complex things if you have the know how. These built in audio systems allow the sound designers, sound effects editors and composers on games to get more creative control over how their sounds interact with the players in the game and with how they are heard. It allows us as audio creators to see our work  through the entire process and become more involved with the creation of the game. Soon the days of creating your sounds and music and handing them to a programmer will be completely gone(if they aren't mostly already) with the development of comprehensive built in engine audio systems and audio middleware.

The implementation in this project can be divided into three main categories;
(These are in no way official or completely accurate names, so don't quote me on them!)


Player Character Objects
Environmental Placement
Environmental Triggers





Player Character Objects

The first category is all the player character related objects such as weapons, vehicles and pick ups that the player interacts with. The implementation for these kind of things is handled entirely in the content browser inside of UDK and is very straightforward, provided that the programming end is already done. The programming end being that the sound cue names are already being referenced by the game.






Now what is a sound cue?

A sound cue is a file that plays a sound when it is triggered. It is not the sound itself, but rather something that references a sound node wave, which is what UDK calls the raw audio file.  Inside of UDK this is how all triggered sounds are triggered, through sound cues. You might wonder, well why can't we just reference the sound node wave directly. But the benefit of a sound cue is that it allows us to set up a signal flow for the sound to pass through before the player hears it. We can add modifiers, layers, delays, etc into the chain to create many different effects or to serve many purposes. For example, The shock rifle has two sound node waves referenced inside of its sound cue. The first sound node wave is the fire layer of the weapon, this is the sound that mechanical parts of the gun makes. The second sound node wave is the actual shot of the gun. Now by using a sound cue we can layer these two together into one trigger instead of having to reference them twice inside of the code. This also gives the sound designer the option to add as many layers and active effects as they want to something without having to consult a programmer to add the changes in.

Now the reason why you would want multiple layers divided into separate sound node waves instead of bouncing it all into one sound node wave is so that you can actively effect each layer. What if you want the gun to sound random each shot, but you only have one version of each of the layers? You can add a randomizing modifier into the signal flow of each of the sound node wave so that each layer randomizes separately in a different way each time you fire the gun! Of course all of this only touches the tip of the ice berg of possibilities!



Now if you were to be actively working on a game project, you would create your sound cues based on either the names the programmer had given them when writing up the code or if something hasn't been programmed yet you would create your sound cues and give the list of names to the programmer to use. Given that I was working straight with the stock Unreal weapons, pick ups and vehicles that come with UDK, all of the sound cues were already created and programmed to work with the game. My end of implementation was to either match the sound cue's original names when I created new sound cues so that the code would find them or to just edit the original sound cues by removing the old sounds and placing my sounds inside of them . I used a mix of this depending on each item in specific.

How do you create or modify a sound cue? Well I wish I had time to explain but I've already delved into this topic enough for one blog post. I suggest you download UDK and find an online tutorial. There are plenty and I'm sure they would explain it much better than me!





Environmental Placement



This category of implementation is by the far the simplest but is still incredibly important. Whats great about UDK's audio system is that it allows you to fly around the map and place sounds where ever you want through the use of sound actors. Sound actors are like little speakers that you can place all over the map that play sound. They activate whenever a player steps into the radius of the sound actor, you can however have a sound actor player indefinitely regardless of player position but I don't recommend this (unless you want to use up limited channels in the audio system and processing, your call). The great thing about sound actors is that they allow you to literally build your ambiance. All you have to do is load the audio file into the content browser for the sound actor to reference. There are a bunch of different types of sound actors but the ones I am going to cover, as they pertain to my project, are Ambient Sound  and Ambient Sound Nonloop.







Sound Actor radius



The ambient sound sound actor is the one of the most basic of all the sound actors. Place the sound actor and the sound plays. The complexity and usefulness comes in the details you can edit such as volume radiuses, which control how big the area is in which the sound is heard , filters and modulation of the sound, such as pitch and volume. (Like the sound cue, I won't go into the details of each section) I mainly used these to create the ambient tones of the cave but they can also be used for static objects such as the hum of the generator for the lights or the hum and whisper layer of the crystals in the level.

Ambient Sound and Ambient Sound Nonloop actors


The ambient sound nonloop is very similar to the ambient sound, but allows you to load multiple sounds into it that can be randomly triggered. This is most usual for creating a group of randomly triggered stingers to add to the ambiance. I used these in my map for the rumbles and rock slides of the cave and also for the ambient whispers of the crystals. Just like the ambient sound sound actor, you can modify volume radius, filter radius, and modulation. You can also modify the time between triggers.



Environmental Triggers

The third category of implementation that I used in my project were environmental triggers. This basically encompasses reverb volumes, trigger volumes, sound classes and some Kismet.



Reverb Volumes


I'll start with reverb volumes. I wont delve too much into volumes, but using the brush tool, in UDK you can create something which is called a volume. A volume is a 3d box palette of sorts with which you can achieve many purposes. In this case, I used reverb volumes in specific. using the brush you can create zones in which sound will reverberate. Its very basic, take a room, create a reverb volume around that room with the brush tool, and any sound you place inside of that room with have the reverb set to the volume.


Reverb Volumes! and much more!

Now this being a small map, there were only three reverbs that I set up. First I created a large reverb volume that I placed over the entire level to set a general cave reverb. Next, using reverb volume priorities (which allows me to set which reverb will be heard when multiple are over lapping), I set up a bunch of smaller reverb volumes inside of the larger volume for all of the tunnels throughout the map so that they would have a different echo than the main rooms of the cave. Finally, jus for the area of the cave with water, a set a third reverb using one small reverb volume just over the passage with water, I wanted this area to have a large high end sewer like reflection because of the water and the metal pathway that hangs over it. These are just the basic features of a reverb volume, you can use them for isolation, occlusion and much more!


Trigger Volumes

In this particular map I set up two trigger volumes. These are the same concept as a reverb volume, except the volume you create acts a detector and triggers an event when the trigger condition is met. These are usually tied to events that are created in Kismet, the audio scripting section inside of UDK. A simple example of how this works is that you could set a trigger volume to detect when a player steps into it, upon the player entering the trigger volume, it will then be triggered this causing the event tied to the trigger volume to activate( like a sound or a cinema)


Both of the trigger volumes I used involved the water section of the level. The first thing I wanted to do was create an underwater sound and atmosphere when the player went under the water. To do this I set a trigger volume over the water that would change the sound class whenever a player entered the water. I created a custom sound class that would turn on a low pass filter and tied this to an event in Kismet. I then tied that event to the trigger volume. To finish up the underwater sound, I placed ambient sound sound actors in the water that played a water sound and then placed a reverb volume around them. Using the isolation features of a reverb volume, I limited the sound to just the area of the reverb volume so you would only hear it underwater. This is a great example of using everything I have talked about in conjunction!

 
A view from outside the map of the volumes.


The second place that I used the trigger volume was to create a gasp from the player whenever they exited the water. To do this I used two trigger volumes in front of each other before the player enters the water and created an event in Kismet. I won't go into ay of the Kismet scripting details as its a bit of an explanation on how its achieved.



Conclusion

Well that about wraps it up! At this point I've covered the highlights of my UDK sound design demo. Going forward I hope to expand my knowledge of UDK and keep learning! Who knows, maybe I'll write more UDK blogs in the future. If you stuck with me through this whole thing, then Thank You very much for reading! If your just joining me, well I still appreciate it!

As always, Thanks for reading!

-Matthew Hagberg

Wednesday, December 7, 2011

Dynamic Interference Sound Design Challenge #13: Creepy Advertising

Sound Design and Concept




I first noticed the Sound Design challenge hosted on designingsound.org back in October when the site hosted it's twelfth  sound design challenge, the Lifeless Howl. I remember looking through some of the entries that were up at the time and considered entering but at the time was preoccupied with class work and decided to put it off until the next challenge. I really enjoyed the creativity behind the challenge and how it really seemed to open the mind up to the possibilities of sound design by limiting the designer to creating a monsters howl with anything except sounds created by organisms. I immediately regretted not entering when the top five entries were posted for voting and I heard how awesome they all sounded! I was jealous that I had missed out on a great opportunity to stretch my sound design mind!


The thirteenth challenge, Creepy Advertising, is an entirely different beast than the previous challenge though. Being tasked with the creation of an entire experience rather than just one creature sound, it presented a larger challenge before even considering the context of the challenge. The Creepy Advertising challenge was to a task in which you took a video from an old 50's horror movie night ad and replaced all the audio yourself including the voiceover. The challenge here was that you couldn't use any music and you had to make it sound like it really came from the 50's but you still had to achieve the aspect of horror and advertisement.

Concept


My first step in taking on this challenge was to place myself into the shoes of a sound designer from the 50's. Now the thing about the 50's was that there really wasn't much "design" to even really going on in the sound departments, well not in the way we see it today. People were sitting at computers manipulating sound with Pro Tools and Logic and hosts of plug ins. Sound Design in the 50's was more sound construction. A lot of famous sound designers created devices to make the sounds they wanted rather than morphing and changing the sound of something to be what they wanted.

Example of Old Disney Sound Design! The whole video is awesome and I recommend watching it but you can skip to around 3:20ish for what I'm referencing.





So I drew my inspiration for this video from these old sound design pioneers. I wanted my video to contain prop created sounds. Though these kind of prop sounds don't always portray the horror aspect well and sometimes can come off as silly, I thought the risk in mood would pay off by the achievement of authenticity.



Creation


I didn't want the video to become to convoluted with sounds so as to stick with the old feel. To accomplish this I narrowed down my sound effects based just on what was important in the video stills.  Each of these sounds were ultimately achieved with only my own voice and sounds from classic prop items. For the Eye ball pops I used a mouth harp to create that classic "boing" just like Disney did and a bottle cork pop to make that cartoony "pop" noise. For the eruption before the final "Doomsday" announcement I used one of my cooking sheets for the old "metal sheet thunder" trick and was very pleased with the results. For the needle stab and wing flapping I used my own mouth. All these raw prop uses came together to create a very pleasing old feel to the advertisement.

The hardest part of this challenge was creating that sonic 50's sound for the entire video. I've always focused on trying to make all of my projects sound better in sound quality so it was an interesting challenge to try and work backwards. I found a free plugin by Izotope that worked really well in creating that vinyl noise and pop sound that you would e=hear in something from this era. For the voiceover, I ran it through a very slight distortion plugin to try to recreate a slight tube compression on the voice and boosted the low end a little more than usual and cut out the very high end. One thing I discovered was that when I first started to create my 50's sound, I was going way overboard and everything sound like it was coming from a late 1800th century phonograph tube or something. Sound has improved drastically since the 50's but in the grand scheme of things it really didn't feel like much of an improvement when I looked at the larger picture. I found that I didn't have to do nearly as much to the sound quality as I had planned to achieve the sound I wanted.

The Final Product





What Was Learned

This challenge gave me an interesting perspective on sound design and also allowed me to dip my toes in its roots. I discovered that our technology and machinery, although totally awesome, can sometimes become all we focus on. By grabbing this project by the horns, and trying to lead it into a real authentic feel, I found that simplicity can lead to creativity and inspiration. When you strip away the layers of possibilities and force yourself into a box with limited tools, it causes your mind to view these things in a new way and it causes you to utilize sound as a story telling device more effectively. When we can't just throw our fancy plugins and sound libraries at everything, we have to pick the perfect sounds and balance the project just right to achieve our goals! In the future I would love to challenge myself more to create effective sound use with limited resources to expand my abilities.

Thanks for reading!

-Matthew Hagberg