Using Transceivers in FMOD to make occlusion sound effects in a 2D game


Hey all!  I’m back with another devlog for Signals!

Signals Meme by En Hughey (artist for Signals)

Now that I’ve had some time to mess with some sound design features, I wanted to show off a fun little trick that I used to fake sound occlusion in a 2D game.  If you don’t know, sound occlusion is the audio effect that muffles sound when a physical object is blocking a sound source. You know when a car passes by and you hear the muffled sound of their music?  The higher end detail is missing, because higher frequencies have a tough time passing through the car’s material.  

In 3D games, this can be simulated by tracing a line between a sound source and the player position.  If another physical game object breaks that line, the sound source is modified to sound like something is blocking it.  In 2D games like Signals, you can’t easily simulate this because there is no 3D space to measure. Sense of 3D space is only an illusion kept up by the artist’s use of perspective and sprite layers.  While En, the artist for Signals, is doing this visually with their art, I’m doing this audibly with sound design tricks and coding.

One way I can create this illusion is by making the Radio Station occlude the sound of the station’s broadcast that is playing through monitors inside the building.  When the player is outside the station, I want them to hear a mix of ambient nature sounds, and the faint low frequencies of the station’s broadcast. 


Dar loves the effect! (placeholder art on the right side!!)

I achieved this using FMOD Receivers and filter effects.  I’ll take you through step by step on how this is working.

First, the music is one 2D FMOD event that is looped.  Whenever the game needs to interact with the music being broadcast from the station, this event is the one being modified by script.  From now on, I’ll call this the Control track.

(For some reason this audio is muffled.  Ignore that!!)

So, now that I have a static Control version of the radio music, I need to spatialize it.  I do this by adding a pre-fader Receiver insert on the Master track of the event, and setting it to Transmit.  Then, I turn the volume of the fader all the way down. This means that the music in this Control event won’t be heard unless you have another FMOD Event that has a Receiver insert attached to it that is set to Receive the same channel that the control track is Transmitting on.  


Transceiver Effect Insert on Control track’s Master (pre-fader with volume turned all the way down), set to Transmit to Channel 1:

Transceiver Effect Insert on Radio Speakers event Master, set to Receive Channel 1:

So, basically, the Control track is playing the music, but if I want it to be heard in-game, I have to set up one of these Receiver FMOD events and place it on an object in game.

Video example to better understand how this is working:

(The music is playing, but you can't hear it until I hit play on the FMOD event with the Receiving Transceiver effect on it.)

This may seem convoluted, but the reason I’m doing this is because now I have a clean version of the station music that I can always rely on to be constant.  If I want to affect how the music sounds in specific places in the game world, I can just transmit it to a new 3D FMOD event with its own filters, eq’s, etc, and not worry about if it’s affecting the audio in other places in the game.  Since our game is also literally about music being sent from a station to smaller radio receivers in other parts of the game-world, it also allows us to control the sound design exactly how it is working in the game-world.

So, say I want an NPC to carry a portable radio on them with the station music broadcasting from it, I can send the Control audio to that portable radio GameObject’s Event Emitter and add Effects to it to make it sound like it’s coming out of tiny speakers.  

Now that we have all of that in mind, I want to make the music play inside the station.  The radio station has speakers hanging for Carem to monitor what is being broadcast, so that’s how we want the player to hear it.  To do that, I put a 3D Event Emitter in the station that receives from the Control event. When the player exits the radio station, I simply have the game change a Parameter in this Receiver FMOD Event that filters down the higher end frequencies of the audio.  Since it is a 3D Event, it also gets quieter as the player gets further away from it. Now when the player exits the station, it sounds like the audio is being heard from outside the walls of the station.

In-game example video:

Being happy with that effect, I wanted to add a small detail to really sell it.  In real life, if you were to open the radio station door, more detail of the music would pour out of the opening.  So, to do this in-game, I attached a new 3D Emitter to the door opening that is Receiving the Control audio, but this one is set up with an EQ effect that accents the mid range of the music. I then set up this Emitter to only activate when the player opens the door.  

In-game example video:

That’s all for now!  Hopefully that will give you some ideas on how to play with FMOD Receivers for sound design details.  I think setting up a Control music track saved me a bunch of headaches for future sound detailing in Signals and I hope it can help you at some point too!

I plan to do a deeper dive into how I composed the music to change from genre to genre seamlessly and how it works within FMOD and Unity.  I’ll save that for a future Devlog!

Follow us on Twitter at @spaceowlpro, and @humancomicsans

Also, we’re going to start streaming on Twitch at a scheduled pace.  I’ll be doing video versions of these devlog’s so definitely follow us there:

https://www.twitch.tv/spaceowlproductions/

<3 Kurt (& En!)

Leave a comment

Log in with itch.io to leave a comment.