Localized banks not loading in 2.02.14

Hi,

After we upgraded to from version 2.02.10 to version 2.02.14 a few weeks ago we encountered problems with our localized audio. We tracked the issue down to FMOD failing to load any non-English banks (or more importantly, any banks other than our default language), which was due to FMOD not registering the existence of any non-English (non-default) banks. We further tracked it down to the changes made in FMODAssetBuilder.cpp. As a bandaid we reverted this file and resolved the issue.

We did not have time to confirm further, but I believe the core of the issue to be related to FFMODAssetBuilder::BuildBankLookup, line 272:
if (Locale.bDefault && BankPath.EndsWith(FString(“_”) + Locale.LocaleCode + FString(“.bank”)))
The addition of the Locale.bDefault check prevents any bank other than the default language bank from ever being added to the BankGuids list.

Fixes in 2.02.16 do not resolve this issue, but do suggest this code is currently volatile and under development. I’m interested in both verifying we aren’t missing anything, and just reporting this as a bug.

Thanks

Hi,

Thanks for reaching out. I can see how the changes to FMODAssetBuilder.cpp in 2.02.14 could cause issues. While I haven’t been able to reproduce the behavior you’re describing on my end, I suspect this is due to a difference in how I’m handling bank loading compared to you. If possible, could I get you to provide me with a code snippet or blueprint screenshot that demonstrates how you’re attempting to load your non-default-locale banks?

I don’t know if the issue in my team is related to this, since it seems like this happens just on one workstation in the team I am in.
We are working with split banks (meta-assets) and it seems like the Asset.bank is not loading, while the .bank is loaded. It’s on Version 2.02.15


grafik
This is from the log and our own FMOD info panel.

Thanks for the log screenshots. I’m not sure whether it’s related, but I’ll take a look on my end and get back to you soon. Edit: Unfortunately, I haven’t been able to reproduce issue you’re describing.

Just to confirm, are all of your bank files are in the expected directory, and do the paths being logged match the bank directory? Also, as with my previous reply in this thread, can I get you to provide me with a code snippet or blueprint screenshot that demonstrates how you’re attempting to load banks?

We’re not doing anything complicated to switch locales. We unload the currently loaded bank, call SetLocale to set the new locale, then call LoadBank to load the new locale version of the bank, however the new version of FMODAssetBuilder does not acknowledge the existence of any localized version of thr bank that is not the default locale.

Can you show me how you are currently expecting locales to be loaded?

The way it is intended to be used appears to be the same as what your are describing:
https://fmod.com/docs/2.02/unreal/user-guide.html#loading-localized-banks

Unload Bank > Set Locale > Load Bank

FMOD can only have one localized bank loaded at a time, this is because they use the same GUID so the FMOD System things they are the same bank and it will just increment the refcount. This is why we need to unload the original bank first before loading the new one, the locale can be changed at any time but it won’t do anything until you try to load the new bank.

The intention was to only have one bank (and corresponding events, etc.) visible in the editor for localized banks, because all the localized banks should appear identical but load different data. You can also choose not to load the localized bank at startup, if you want to make use of the ‘Load All Banks’ option by using the ‘Settings > Advanced > Skip Load Bank Name’.

What is the actual issue you are currently having? In your initial post it sounded like you were unable to load any bank other than the default, or was that just in relation to the FMODAssetBuilder only adding one of the banks to the lookup?

If we attempt to set any language other than the default it will not load any version of the bank and thus the audio will not play.

Specifically this is for our VO bank. With locale set to English (our default), the VO_English bank correctly loads and works. If we set locale to anything else e.g. French no VO bank will load; not VO_French nor VO_English. We get no VO audio if the locale is not default.

When debugging it appears FMOD is not aware that any localized bank except the default locale exists; i.e. it fails to find a bank to load if locale is French.

FFMODAssetBuilder::BuildBankLookup, line 272 stands out as likely to be at fault but I have not had time to debug and verify.;

1 Like

Thanks for the information, I have been able to reproduce this and have made a task to address it for an upcoming release.

The FMODAssetBuilder was updated to fix an issue with the lookup assets in source control constantly being checked out, so that could be backed out without issue if it does not effect you or your team.