Details on using UE4 Reverb Snapshot parameters

#1

Hello,

I am having a lot of trouble getting the most out of FMODs reverb and wanted pointers to get some nuances figured out. There were tons of things I used to be able to do in designer on my old engine, but on Studio and UE4 I’m stuck on a few things.

  1. Is there a way to map the “Intensity” parameter of the reverb to the distance between the Audio Volume point of origin and it’s cut-off point?

Such as, when a 3D FMOD event has a min and max distance and the attenuation curve is adjusted by how far away from the actors origin and the final attenuation distance.

My ideal behavior would be… lets say you’re going down into a valley, to have the intensity increase the further down you get into the valley.

  1. Is there a way to get the “distance” parameter updated by looking at actor locations?

  2. Audio Volume triggers for reverb that overlap do not seem to respond to the priorities being set in the UE4 details window, am I missing something?

Right now, I’m currently using Audio Volume class in UE4 to call up the Reverb Snapshot events in FMOD.
FMOD 1.10.11
UE4 4.21

I would appreciate anything that can help point me in the right direction.

Thanks for your time.

#2

You could automate the intensity of the snapshot using a distance parameter, the only problem is that this would be a hard-coded value. Depending on the exact usage, this may or may not work.

As a thought, you may be able to use a range of 0-100 and manually update in intensity by the distance as a percentage from the origin to the max distance.

The built in distance parameter works this way, but works on hard-coded values set in Studio.
https://fmod.com/resources/documentation-studio?version=2.0&page=parameters-reference.html#distance

This was fixed in the latest release, 1.10.13 & 2.00.01.

#3

Is there a way to fix the bug on overlapping volumes without updating the FMOD versions?

#4

You can manually edit the FMODListener.cpp.

From:

void FFMODListener::ApplyInteriorSettings(class AAudioVolume *InVolume, const FInteriorSettings &Settings)
{
    if (InteriorSettings != Settings)
    {
        ...
        Volume = InVolume;
        InteriorSettings = Settings;
    }
}

To:

void FFMODListener::ApplyInteriorSettings(class AAudioVolume *InVolume, const FInteriorSettings &Settings)
{
    if (InteriorSettings != Settings)
    {
        ...
        InteriorSettings = Settings;
    }
    Volume = InVolume;
}
#5

Awesome! Thanks Cameron, you’re the best!