Hello,
Quick q
When packaging a project setting the spatializer & reverb plugin to Resonance, we get a warning above about the ResonanceSubmixDefault doesn’t exist on disk.
It looks like it doesn’t get cooked at all. Is this the expectation and we should be manually adding the ResonanceAudio plugin content to additional directories to cook / Primary Data Assets?
My understanding was that both the spatializer and reverb needed to be used, may be wrong here, do both the spatializer and reverb need to be resonance?
If I use resonance reverb assets there’s no warning, similarly if I change the default reverb to not resonance.
Best,
M
Steps to Reproduce
- Create a UE project, used UE5.6 with the first person starter template for example.
- Enable Google Resonance plugin.
- Set spatializer & reverb plugin for windows to Resonance
- Package and run build for Win64.
- Open log and notice warnings about unable to load ResonanceSubmixDefault.
LogStreaming: Warning: LoadPackage: SkipPackage: /ResonanceAudio/ResonanceSubmixDefault (0x30C8723EB0E7B477) - The package to load does not exist on disk or in the loader
LogStreaming: FlushAsyncLoading(148): 1 QueuedPackages, 0 AsyncPackages
LogUObjectGlobals: Warning: Failed to find object 'Object /ResonanceAudio/ResonanceSubmixDefault.ResonanceSubmixDefault'
LogResonanceAudio: Error: Couldn't load Resonance Reverb Submix from object path '/ResonanceAudio/ResonanceSubmixDefault.ResonanceSubmixDefault' in ResonanceSettings. Creating stub submix.
LogResonanceAudio: Error: Failed to find Resonance UResonanceAudioReverbPluginPreset on default reverb submix. Creating stub '/ResonanceAudio/ResonanceSubmixDefault.ResonanceSubmixDefault'.
Hi,
I was able to reproduce. That’s because the assets /ResonanceAudio/ResonanceSubmixDefault.ResonanceSubmixDefault is not seen by the cook. The asset would be registered to be cooked if it was loaded during the engine startup or if it gets loaded using a FCookLoadScope such as:
{
FCookLoadScope CookLoadScope(ECookLoadType::UsedInGame);
GetDefault<UResonanceAudioSettings>()->OutputSubmix.TryLoad();
}
So by default, in the Editor, the asset is not loaded early enough and when it’s get loaded, it not wrapped in the scope above. I hacked FResonanceAudioModule::StartupModule() in D:\UE_5.6\Engine\Plugins\Runtime\ResonanceAudio\Source\ResonanceAudio\Private\ResonanceAudioModule.cpp to add the code above with and without the FCookLoadScope, recompiled the Editor and repackaged. In both cases, the cooked game was able to load the asset, so it was cooked. Adding /ResonanceAudio to additional directories to cook also worked. For the moment, I’d just recommend adding the package to the additional directories to cook. I’ll report the issue.
Regards,
Patrick
Great, thanks for the info Patrick!
Best,
M