With the Wwise UE integration used as an engine plug-in, dependencies from game module C++ code (as opposed to BP) seem to be broken in a couple of ways:
Cooking optimizes out Wwise data: This appears caused by UE4.11 attempting to skip data unreferenced by BP as would occur when loading banks and playing events directly from C++. From the 4.11 release notes “Cook-by-the-book will now skip saving packages that are only referenced through editor-only properties.” Here are a couple examples of people running into this:
https://www.audiokinetic.com/qa/2410/packaged-ue-4-11-project-has-random-soundbank-missing
https://answers.unrealengine.com/questions/409407/unreal-not-loading-wwise-soundbanks.html
Note the accompanying warning which actually results in a return LINKER_Failed from FLinkerLoad::SerializePackageFileSummary, UnrealEngine\Engine\Source\Runtime\CoreUObject\Private\UObject\LinkerLoad.cpp: UE_LOG(LogLinker, Warning, TEXT("Unable to load package (%s). Package contains EditorOnly data which is not supported by the current build."), *Filename );
Also note this comment from Package.cpp in the same directory: “ // Mark this package as editor-only by default. As soon as something in it is accessed through a non editor-only property the flag will be removed.”
So, 4.11 assumes a package is editor-only and the logic to handle non-BP dependencies re the use of Wwise Banks and Events doesn’t exist, e.g. using the auto-load attribute on bank uassets doesn’t guarantee their inclusion into the pak.
The brute-force workaround we’re using for now is to force bLoadedByEditorPropertiesOnly to default to false in Package.cpp; and comment out the failure return in LinkerLoad.cpp around line 1034. This effectively disables the new “cook by the book” optimization. If anyone knows of a way to flag Wwise bank+events uassets to force them into the final pak, please let us know.
2. Given this post (especially answer point 2), why did AudioKinetic change the to a plug-in model over being a library module? This seems at odds with game module code calling into plug-in functions, such as FAkAudioDevice::LoadBank.
https://answers.unrealengine.com/questions/83155/cannot-find-dll-when-using-an-uobject-exported-via.html