“By default, snapshots apply instantly. If the snapshot has its intensity exposed as a parameter, then the UE4 integration will ramp in the intensity over time based on the audio volume’s Volume and Fade Time settings. If the snapshot does not expose its intensity as a parameter, then these values will not do anything.”
I have observed that the Volume and Fade Time of an Audio Volume DO have an effect when the snapshot intensity parameter is NOT exposed. However the behaviour seems inconsistent.
I will try to explain through some repro steps:
FMOD - create a Snapshot which applies some reverb (do NOT expose its intensity as a parameter).
FMOD - create any looping audio event which will be affected by the Snapshot and build banks.
Unreal - create a level with an Audio Volume.
Unreal - set Reverb -> Fade Time to 10.0 in the Audio Volume.
Unreal - assign the FMOD reverb effect for the Snapshot to the Audio Volume.
Unreal - put the looping FMOD audio event in the level and have it auto-activate.
Unreal - Press Play and navigate into and then out of, the Audio Volume in the level.
When ENTERING the Audio Volume, the snapshot will apply instantly and reverb will be heard with no fade, as is expected.
However, when LEAVING the Audio Volume, the snapshot will remain active, and the reverb will continue to be audible. After 10 seconds (the Fade Time value) the snapshot will then un-apply and reverb will no longer be audible.
It’s quite possible I’ve misunderstood this, but given that we have NOT exposed the intensity parameter of the FMOD snapshot, the reverb effect should turn on and off instantly when entering and leaving the Audio Volume. The Fade Time should have no effect. Even if it DID have an effect, should it not also affect both the fade in and the fade out?
An additional inconsistency can be observed by following the above repro steps, but upon reaching step 4, set the Volume to 0.0 as well as a 10.0 Fade Time. In this instance the snapshot will apply and un-apply instantly when moving in and out of the Audio Volume. This is also confusing given that these values are not meant to have any effect if the intensity parameter is not exposed.
Any thoughts on this would be appreciated. It has been confusing me somewhat!
Hehe, good question. I should have mentioned this in the original post!
To be honest this query came about because I am learning how to use audio volumes with and without the use of FMOD. I got stuck because things weren’t working as I expected. Some of the confusion had come from the volumes overlapping, and their priorities. The above was just another piece of behaviour I observed along the way. I kind of just wanted to share it here to see if it was a known issue or expected behaviour, and to help me understand if I was going mad or not.
This is both a known behavior and a deliberate one.
FMOD Studio’s Unreal Engine integration hooks up existing Unreal Engine settings to specific elements and behaviors of FMOD Studio. In doing this, we try to preserve the existing behavior of existing Unreal Engine as much as we can, while still granting access to the features of FMOD Studio.
In the Unreal Engine, Fade Time determines three distinct but related pieces of behavior: It determines the slope of the ramp used when the audio volume begins having an effect, it determines the slope of the ramp used when the audio volume stops having an effect, and it determines how long an audio volume persists once it is told to ramp down and stop.
FMOD Studio’s Unreal Engine integration handles the first two of these behaviors by smoothly ramping the value of a snapshot’s ‘Intensity’ parameter when the snapshot begins playing (i.e.: the audio volume is entered), and ramping the value of that parameter back down again when the snapshot is stopped (i.e.: the volume is exited). The ‘expose intensity’ context menu item simply automates the snapshot’s intensity property on a parameter named ‘Intensity,’ allowing this to work.
The third behavior is handled separately, by introducing a fixed delay before the snapshot instance ends. It is because this behavior is handled separately that setting a Fade Time when intensity is not exposed still alters how long the snapshot takes to stop.
You could potentially take advantage of this separation, for example by automating properties of the snapshot other than its intensity on its Intensity parameter.