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 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
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?
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.;
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.