Today we’re looking at 3D audio emitters and how to creatively use them on large objects. When I first learned this, it was a huge “AHA!” moment for me and instantly sparked tons of ideas of how to use emitters in the future. So I hope it will do the same for you. We are going to be using Unity and FMOD for our example today, so if you don’t know those, try to follow along and learn some new stuff about those as well.
The Basic Idea
Take a look at this picture of a car… If you were tasked with giving this car a sound, where would you place your 3D emitter? Take some time to think about this.
Most of you would probably say in the center of the car, or maybe right on top of the engine? Those would be passable options and would probably sound pretty good as well… but there is another option, a “bigger” option.
The “bigger” option is placing emitters on all the components of the car that would actually make a sound (or that you think should make one). That means the exhaust, the engine, the interior and so forth. It would look something like the picture below…
Right now you’re maybe thinking to yourself what difference this actually makes, and the answer is that it makes the object sound more believable and based in reality of the game (at least in my opinion). It can be a quite subtle effect, especially if the object is the size of a TV or something, but with objects like cars, machines, helicopters and such, it makes a huge difference in how you perceive the object. So, let’s try this out and see how I would implement this in a game situation.
The FMOD Project
I decided to use the picture above as inspiration for my project, so I placed four looping 3D sounds into my FMOD project. One for the front of the engine (where the sound extrudes the most from), the back of the engine, the interior and the exhaust.
I re-used the sound from the back of the engine, to create the interior sound. Remember, it’s always a good idea to try and re-use assets whenever possible to try and save some memory for other things. I did this with two FMOD effects, Pitch Shifter and the Multiband EQ, to give it that boxed, low-end rumble.
Again, the reason I have these as multiple different events, is because I’m going to be placing them on different parts of the car. I have also made a single looped event, for demonstration purposes, with all the sounds combined into a single 3D sound.
As you can see, I’ve placed all but one sound into a nested event. If you don’t know what a nested event is, it’s basically a sub-event that plays a full audio file, no matter how long the nested event actually is, in the parent event. In this case, I’ve placed loops into them, stretched them out so they fill out the loop on the parent level, so they all keep played with constantly varying timing, making for a varied and not as tiring soundscape. If you don’t quite understand this, I’m going to be explaining this in much more depth in one of my upcoming FMOD specific posts.
Let’s Get This Into Unity!
I created a simple level in Unity with just a plane and a car (classy!) as our testing grounds, so let’s start placing some emitters! If you want, try creating your own little level and follow along!
One trick I like to use when placing emitters, is to place them on a little 3D cube, and then place the FMOD emitter on that. This helps me visually see where I’m actually placing the emitter, which can sometimes be quite difficult if you just have the navigational arrows to go after. After you’ve placed the cube, delete everything except for the FMOD Studio Event Emitter.
The next step is just to place the rest of the emitters on the car. There are no rules here, so place them where you think they sound good and go from there. It can be a little finicky to get this to sound just right, but with a little practice you’ll get the hang of it! This is how it looks for me;
Now for demonstration purposes I’ve also made a version with just the single emitter placed smack-dab in the middle of the car. Here’s what that looks like;
The Final Result
I’ve made a little video showcasing the difference between the two. I’ll let you draw your own conclusions on how this sounds (I’m in no way saying one is better than the other, but you should know your options!), but take note of what you like and don’t like!
Also, sorry for the little audio clicks in the video, that’s my recording software acting up.
I hope you learned something useful today and that you can use this in your future endeavours (be sure to give the exercises down below a shot as well)! If you have any further questions, never hesitate to contact me via e-mail or on twitter.
- Make a Unity level with 4 different types of vehicles (and whatever else you like).
- Setup an FMOD project and create events for all the vehicles just like I did in the above example.
- Go into your DAW and create loops based the objects you’ve chosen. Make sure nothing sticks out like a sore thumb. Import these sounds into FMOD.
- Place your emitters and play around with the attenuation settings.
- (Advanced) Animate some of the objects to move and use the Distance parameter in FMOD to control things like low-pass, EQ, Reverb and so forth.