Support for audio events from Wwise soundbanks
First of all, this pull request is required .
As explained in the title, this implementation allows for audio events to be associated with WEM files that are embedded in the soundbanks, making it very easy to navigate through wwise audio.
Some explanation as to why I'm trying to load all Soundbanks at once (which I know may not seem ideal) - if audio event hierarchy starts in BNK 1 and continues in BNK 2, there's no way to determine that BNK 2 should be loaded. This is because developers control which banks are loaded into memory. Therefore, the most reliable approach is to either load all soundbanks or replicate the specific bank-loading logic of a given game. However, this is only needed in that specific scenario where audio event hierarchy is split across multiple soundbanks (and nothing points to different soundbank). To keep loading efficient, I’ve added constraints so the initial load takes only a few seconds. For example, while a game like Valorant uses thousands of soundbanks, the majority reference only loose WEM files, so loading every soundbank isn't necessary.
I left one TODO, which isn't needed in case all soundbanks are loaded so it can be omitted (because in some cases Wwise actually points to different Soundbank).
Example usage:
CUE4ParseViewModel.cs is quite a big mess already, can the logic be moved to either CUE4Parse for everyone to use or a dedicated class (static or not) in FModel?
CUE4ParseViewModel.cs is quite a big mess already, can the logic be moved to either CUE4Parse for everyone to use or a dedicated class (static or not) in FModel?
Sure, I moved the logic to CUE4Parse WwiseProvider class.
It takes quit a lot of time to preload BNKs, and on games I tried, it's not even needed
the updated PR on C4P makes it so that the number of preloaded BNKs can be user defined (it will be defaulted to 0 on FModel but can be overwritten via the settings) and WwiseProvider can be initialized without the need of an event straight away