Loading multiple master banks fails with ERR_INTERNAL

I am trying to load builds from 2 separate FMOD Studio projects together into a single Unity project. These are separate FMOD projects because we are trying to modularize our development into Unity Packages that contain everything related to a package, and this modularization extends to source control and asset management. Maybe having separate FMOD Studio projects is the issue?

Anyway, anytime the second master bank loads, I start getting the following errors (note that the bank loads fine if it is the only bank being loaded):

Thoughts on how to get this working?

  • FMOD for Unity 2.02.20
  • FMOD Studio 2.02.19

Hi,

Could I get a screenshot of your FMOD Integration settings:
image

Would it be possible to see how you are trying to load the second project’s banks?

Here is the screenshot.
2024-01-03 00_56_17-
We are loading the banks with the FMOD Initialization Load Banks setting set to “All”. The built banks are in the build path specified.
2024-01-03 01_00_42-Unity Project - ServerExampleNetworkedSplash - Windows, Mac, Linux - Unity 2022.

1 Like

Hi,

Thank you for the information.

Unfortunately, this functionality is not supported. We support having multiple master banks from the same project but not from different projects.

If the events in the Unity project are isolated to the banks then you could load and unload the desired projects during run time using: System::unloadAll() and the Studio Bank Loader. Let me know if that would be a viable option.

Thanks for the response. I’d like to present a different use case that, if supported, we could probably make work.

Is there any way that users can generate content (UGC), and share their content to be used in a multiplayer environment? For example, a multiplayer game where users could customize the audio of their character with their own voice (not referring to voice chat), and then I might hear the UGC from a few different users playing at the same time if I am in a shared lobby with those users and the audio playback is triggered.

It seems to me that they would need to pass around an FMOD Studio project and each make their changes in the project before handing it off to the next user, which seems impractical. Is there some way to support this use case in a practical way?

Hi,

Yes, we do support User Generated Content. We have documentation with steps to implement it here: FMOD Studio | Supporting Downloadable and User-Generated Content. If you have any issues with the implementation please do not hesitate to ask.

For this idea, looking into Programmer Instruments may be a good starting point as it would allow the user to upload a range of audio files which can then be triggered using their unique keys.

Hope this helps!

I did see the User Generated Content documentation, but it talks about sharing the project with users, which I assume means that they have to append their content onto prior work. I assume this means that multiple users sharing content to be used together would need to share their modified project with each other in a serial fashion to get all of the changes into a single application?

It doesn’t look like programmer instruments supports adding parameters or events? We need the ability to add parameters, as well as audio files, as well as events, all as user generated content. Basically, entire banks.

We want to inject vehicles into a series of different games as packages, and some vehicles may have different sounds/events/parameters than other vehicles. These packages will come with logic to control the events so that the applications do not need to know what events exist ahead of time. There will be different combinations of vehicles for different applications, so they all need to be able to work together at some point.

I fear we will need to create one really large FMOD Studio project with banks for each vehicle plugin that we want to be able to use together, resulting in a really large project that is not capable of being modularized. If we have a new application that uses 3 of our 20 vehicles, and we want to upgrade FMOD Studio for that application, we are now upgrading FMOD Studio for all 20 vehicles. Then if we need to change an old project using any of the other vehicles, that will need to come with FMOD updates whether we want to do it for that project or not. This may also drive Unity updates, driving countless other updates. Or, we branch off an old version of the project and have to deal with asset fragmentation.

If we could load banks from separate projects, we could selectively update FMOD for vehicles that need it in a particular application without modifying other vehicle projects that don’t need to be in that application. It doesn’t seem like we have much choice at this time. Could supporting banks from separate projects be added to the development pipeline as a feature request?

Hi,

Thank you for the explanation, apologies for the miss understhanding.

Unfortunately, you are correct. This would require completely new banks unless it was possible to apply the parameters to the programmer instruments beforehand and just limit the users to what is already created.

Not necessarily. You would have to have a project that contains all the banks for the vehicles, however, only the vehicles/banks that are updated would have to be redistributed. If I am understanding correctly, you could change the events/banks as required and then only build those select few banks:


The Master.bank and Master.strings.bank are only required if there are changes to the mixer and/or you wish to use paths rather than the events GUID to reference it. Then you would just have to add/replace the updated banks.

Hopefully, this is the functionality you are looking for. If not, then I can pass on your suggestion to our development team to look into further.

The problem is that the entire project is updated. If I wanted to build banks for vehicles 1, 2, and 3 in a new project with updated FMOD plugins, that is fine. But then if a bug comes back for vehicle 6 in an entirely different application, an old project which has not needed to be updated, I cannot make changes to the bank for that vehicle without exporting a bank using a updated version of FMOD. This could drive cascading updates to plugins/Unity just to resolve a bug that could otherwise have been a simple hot fix.

We also have the issue of needing to pull and store far more assets than needed to make a change to a single vehicle or to create a new vehicle.

It is also more difficult to store a single shared FMOD Studio project in version control with release tagging matching the vehicle releases that they belong to (need to tag multiple repositories for the same release).

Ultimately, these problems may be rare or easy to work around, but allowing the vehicles to have their own separate projects that can live within their respective vehicle repositories and still work together prevents the issues entirely.

Hi,

Thanks for the information. I will pass on the suggestion to the development team to look into further, once there are updates I will let you know.

Hi,

It has been confirmed that we will not be supporting loading multiple Studio projects into the same Engine instance.

An alternative option may be to create a base project from which you copy whenever you need to make a new vehicle. This was it will be like loading DLC but they can be separate projects.

Let me know if that sounds like a viable solution.

Wouldn’t this present the same problem in that every vehicle would contain a different master bank within a different project?

My assumption is that DLC works by replacing the master bank with the newer projects master bank. So I assume that won’t work unless each vehicle builds on top of a previous vehicle (basically meaning all vehicles are a part of the end project that you use anyway).

Hi,

You are replacing the master bank with a new version of the same project’s master bank, rather than one from a completely different project. The issue is when you are trying to replace it with a completely different master bank.

The important part is using a base project which is then copied for new vehicles.

Hi,

Was there anything else I could assist with?

I haven’t had time to try copying a base project around. Once I heard that loading from different projects wasn’t supported, I combined everything into a single project so that we could move forward and try to hit our deadlines. I’ll post back when I get a chance to try separate projects copied from a same base project.

1 Like