3d panning settings in a platform game/side scroller

Hi everyone. I have a question about tweaking the 3d positioning settings of sounds in a 2d style platform game/side scroller.

Using the default 3d panner settings, when the main character moves through the level and passes by an enemy or a sound emitting character/object/noisy thing, it seems to pan too extremely with the sound almost being only left or right in relation to the Unity listener.

I have tried a multitude of tweaks, eventually settling on these settings with the following values (See attached Pic) being a little better (but by no means a perfect solution). While these settings have solved the extremeness, I think it has lost panning completely, making all sounds in proximity of the listener seem to be centralised (Not Mono, but somehow all sounds seem to be playing across the full sound width spectrum).

I would like the panning to be less extreme and be able to achieve a gradual pan across the screen in a truer relation to the sound emitting object on screen.

Would anyone be able to advise on the settings to use in the 3D panner to achieve this?

Thanks for your time

Ryan

enter image description here

Hi Ryan. It seems like you’re on the right track in trying to use the Sound Size property of the 3D panner to increase the envelopment when the listener approaches the event. I’ll paste the values here as the picture isn’t linked correctly:

  • Mix/max distance: 10 to 17
  • Envelopment: User
  • Sound Size: 60.0
  • Min Extent: 0 deg
    Using the sound size to increase envelopment is the correct way to do this, and is the reason it exists. However, a sound size of 60 will mean at your max distance of 17, the envelopment will be very high, so you won’t hear much of the spatialization. Our default for sound size is twice the min attenuation distance (e.g. it will be 20 for a min distance of 10). You probably don’t want this to be as high as 60 units. If the default 20 units isn’t sounding right (maybe the listener moves very quickly?) perhaps try a slightly higher value.

Keep in mind that all this can be tested in Studio using the 3D Preview in the top right of the screen. The outer ring of the preview will display to you the surround envelopment, and the circle around the event indicates its sound size. You should be able to get the effect you want with some more tweaking.

1 Like

Thanks for the super speedy response! I’ll give this a try.

Hi Patrick.

After trying for a while with your suggestions I found almost no difference to the sound settings.

I pulled my project to bits and found that using convolution reverb seems to negate the 3D sound settings. When I deleted the convolution reverb entirely, 3D sound returned to the project. Is this expected behaviour? As in the sounds seem spread across the full width of the 3D spectrum when the convolution reverb is added.

Have I totally confused what the convolution reverb is for? I want all of my sound effects to go through one reverb so they can all sound as if they are in one particular space. I applied the convolution reverb to a SFX bus which seems like the logical thing to do in this scenario.

I also found that using the 3D preview in FMOD differs from within unity when using the convolution reverb, which is why I was struggling to pin down what was going on. Even though the panning is functional in FMOD it doesn’t seem to transfer into UNITY 5.3.

Is this perhaps a bug (known/unknown)? I am also mindful I am using FMOD studio 1.07.03 which admittedly isn’t the latest version.

Thank you for your time.

Ryan

Regarding your setup for the convolution reverb, I don’t think the original arrangement would give you the desired result. What we typically recommend is that you add a Send from the master bus of each event (after the 3D Panner), that goes to a Return bus in the mixer, which can contain the reverb effect (this is new projects are setup by default). This is because, as you’ve noticed, the reverb / convolution reverb effects will folder the signal down to mono before being applied – they intentionally do not preserve directionality.

You should remove the reverb from the event’s output path (as in, remove reverb from the SFX bus), and have SFX events send off their final signal to a global reverb Return bus. By doing this, you’ll hear the dry mix of the event output as well as a certain amount of wet reverb mix.

In terms differences in the 3D preview in Unity; are you describing the preview in the Unity event browser, versus the 3D Preview in FMOD Studio? I believe these would differ somewhat as the one in FMOD Studio uses a fisheye scale, whereas the Unity widget is displayed in a linear scale. Is this what you’re seeing?

FANTASTIC! This totally works. Thanks Patrick. I had no idea the convolution reverb collapsed to the sound to mono on an SFX bus. Thanks for the heads up and your continuing patience.

Cheers! :slight_smile:

No worries Ryan, glad that helps!

Based on my tests, this isn’t true anymore for convolution reverb with a stereo IR (but still is for standard reverb). Could you please explain why this implementation choice?

A convolution reverb with a stereo impulse response processes each channel separately: Left channels according to the left channel of the IR, and right channels according to the right channel of the IR. This allows the stereo quality of the source audio to be preserved, which is desirable in some cases.

Note, however, that setting the reverb effect to “link” links the channels, ensuring that the content is collapsed to mono.

And is the convolution reverb compatible with 5.1 (or more) impulse responses? They seem to be a bit hard to find, so I’m not able to just test to have the answer!

Yes, though it’s extremely rare for someone to actually want one. It’s more common to use linked mode to collapse the sound to mono, at which point a stereo and mono impulse response is just as effective.

I though find useful to have a real stereo reverb (and 5.1 of more if I had the use). Very common exemple: when the player is in a cave, I want my SFX to be sent to the reverb via a snapshot. With the standard reverb plugin (or the “linked” convolution reverb plugin), the more I send to the reverb, the more I loose the spatialization effect, which I find pretty problematic. That’s the main reason I adopted the convolution reverb on my projet! You should IMO change your standard reverb plugin in that sense.