We’re having a few problems with the new FMod integration style and generated assets.
Originally we had just the sound banks in Perforce and the assets being generated by the commandlet during the build process, but this was causing intermittent problems.
We’ve since moved to storing the generated assets in Perforce as well. We check-in the Studio generated banks and the Unreal generated assets in the same change list. This way, we assumed, whoever gets that change list wouldn’t have anything generate locally.
However when other users get our check-ins it insists on trying to recreate BankLookUp.uasset. Checking the log the Bank and Asset lookup files get found ok (as well as the sound banks) , but there are two warnings:
LogClass: Warning: ObjectProperty FFMODLocalizedBankTable::Banks is not initialized properly. Module:FMODStudio File:Private/FMODBankLookup.h
LogClass: Display: BoolProperty FFMODProjectLocale::bDefault is not initialized properly. Module:FMODStudio File:Classes/FMODSettings.h
We don’t have any locales created as yet, but I’m assuming that wouldn’t be related? One of our sound banks is using an audio table, but it seems to be working ok. There aren’t any other warnings or assets being affected as far as I can tell.
I did a binary compare from a generated one and the changelist one, and there are about 32 bytes difference from offset 168, but the rest (including the size) is the same. I couldn’t quite decipher what they would be linked to in FModAssetBuilder.cpp , if I’m looking in the right place there.
It looks like the warning and message are both due to
FFMODProjectLocale::bDefault not being given default values, so it doesn’t look like anything nefarious is happening there. I’ll create a task to address this by providing appropriate default values to each.
BankLookUp.uasset is autogenerated during editor startup irrespective of whether there have been any changes/check-ins. Is this behaviour causing issues outside of the initialization warnings?
Thanks for the reply. Ah, we weren’t aware that file gets auto generated anyway, so currently any user on the team can check it out at the moment. We can work around that with Perforce rules. Out of interest, if another member of the team did check in their own generated version that doesn’t affect anything with builds etc.?
The worst case scenario I can think of would be an automated build failing if the file was deleted or a corrupt version being checked in- in which case you could safeguard that for now by regenerating assets using the commandlet on the build machine before running a build.
In any case, you shouldn’t need to worry about that to begin with so I’ve passed this along to the Dev team to look into and stop it from regenerating every time the editor reopens, thank you for bringing this to our attention!
Thanks for the update, that’s great news. I’ll pass this onto our coders.
This appears to be caused by having locales setup in the FMOD Studio project but not in the FMOD-Unreal settings. The integration sees multiple of the same bank (the different locales) but because there are no locales in the settings, it overrides the bank path in the lookup multiple times which then marks the lookup as dirty and requires updating.
I’m only just now bumping into and trying to solve this for our project. I’m a bit of a beginner so I’m trying to understand what it means to edit the “FMOD-Unreal settings”. I have stuff like Editor and Project Preferences inside UE, and inside FMOD I have FMODs own preferences. In the latter, setting locales is easy. But how do I set the corresponding locales inside Unreal? There seems to be very few ways of configuring the FMOD plugin or anything like that from inside the editor.
Edit: Nevermind, found it under Project Settings → FMOD Studio → Localization