FMOD Bus / VCA volume Blueprints node issue

FMOD VCA volume set and Bus volume set appears to do nothing in packaged build of 4.25 unreal. I can play with the sliders in editor and I get the desired volume change effect that im looking for. In the packaged version however It seems to do nothing? Any assistance would be greatly appreciated.

image

I have no errors in logs and all banks, busses and VCA’s are being loaded and intialized correctly according to the log files.

Any news on this, we are knocking our head against a wall with this one as our playerbase keep being blasted with full volume with no ability to change it inside the game!

Apologies for the delay, I have not been able to reproduce this myself.
What version of FMOD are you using?
Are there any errors or warnings in the logs?

2.00.10 FMOD version, Unreal 4.25

I have just found these errors in the logs which will 100% be our problem. Im not 100% sure why the errors exist however.

Is there a specific way that VCA’s and Busses get added to the build thats different to FMOD events?

Our FMOD project settings:

FMOD is added as a Non-Asset Directory to copy in our package settings, its important to note here that all our sounds are working in the package build!

Busses and VCA’s are in the project and the audio sliders work in editor to 100% prove that the intial setup is correct.

image
image

I hope this is enough information to go on! Thank you for your help as well!

Depending on where/when the the FMOD assets are referenced it may be caused by blueprints being loaded before the plugin.

We do not have anywhere in our code with a line like

static ConstructorHelpers::FClassFinder PlayerPawnClassFinder(TEXT("/Game/FirstPersonCPP/Blueprints/FirstPersonCharacter"));

Can you reccomend where we could go about searching for places to implement the

IFMODStudioModule::Get();

This is usually found in the GameMode constructor of the code example projects, adding it to your own GameMode constructor should be enough.

Hey Cameron,

We’ve added a cpp gamemode class and have parented our entry level map gamemode to this newly created gamemode. Below you can see how the constructor is written and i’ve included both header and CPP file screenshots. We are still having exactly the same issue.

GameMode.h
unknown

GameMode.cpp

Weirdly only the VCA + Busses and around 5/6 sounds of the whole project fail to load. Once FMOD initialises after the failures every single VCA, Bus and Sound gets loaded correctly but the issue still persists and the 5/6 sounds that failed initially also dont work.

I feel it important to mention that the 5/6 sounds that fail to load are not in one central location but are in various classes around the project that sit as components alongside other component sounds that are being loaded correctly and working.

I am having trouble reproducing the issue at the moment.
Are you able to share your entire output log containing the errors?
You can send it support@fmod.com if you don’t want to attach it here.

See attached a log file, line 509 - 565 is the errors and line 619 - 813 is FMOD initialising correctly.

SuperSquad.log (155.1 KB)

It looks like these assets are attempting to be accessed by the async loading code before the FMODStudio plugin has been initialized.

Are these sounds, busses, vcas maybe referenced in similar ways? Maybe in some UI blueprint for example?

They are all referenced in different places around the project. None of them appear to be referenced in the same place. Still very much at a loss.

Solved the issue in the end. It seems you guys have a problem with referencing in nodes themselves.

Rather than this:

image

You must create a soft reference variable of type, set that variable to be whatever you want either an Event / Bus / VCA and then do this.

image

Same applies for all nodes like Play Event at location, Play Event Attached, VCA Set Volume and Bus Set Volume.

Definitly an issue and really not the cleanest work around as Im now having to create soft reference variables for literally every fire and forget sound but atleast I now can have players set their volume in game!

Glad you were able to figure this out, Cameron had asked me to look at this as a fresh set of eyes and I was just about to request a repro project as I was stumped too.

I’ll try to reproduce based on your findings and we’ll add appropriate issues to our tracker to try and improve this for a future release.

I’ve spent some time today investigating this further and I believe the fundamental problem is still an issue of references to FMOD assets being deserialized before the FMODStudio module has initialized and created the assets. Your workaround makes sense. By using a soft reference to the Event / Bus / VCA the engine won’t try to load the FMOD asset when it encounters the reference, and as long as the asset has been created before trying to execute the blueprint everything will work as intended.

Referencing FMOD assets directly in blueprint nodes as you were initially definitely works as long as the FMODStudio module startup has created the assets before the blueprint is loaded.

Looking at your log again, it appears that the UE4 streaming system is precaching the assets from your PAK file before the FMODStudio module is initialized, thus triggering the “Loading blueprints before plugin load” issue which Cameron pointed out previously. We have never encountered this issue arising this way before and so far I’ve been unable to reproduce it directly so I’m just going on your log for the time being. I’ll continue to work on reproducing the issue and if we can figure it out we can review our options for fixing it.

In the meantime the workaround you’ve found is probably the best solution. One alternative you might want to try is disabling the UE4 async loading thread (in Project Settings / Engine / Streaming). I’m not certain but I suspect that would also prevent the issue occurring.