社区问答

欢迎来到 Audiokinetic 社区问答论坛。在此,Wwise 和 Strata 用户可互帮互助。如需我们团队直接提供协助,请前往技术支持申请单页面。若要报告问题,请在 Audiokinetic Launcher 中选择“报告错误”选项(注意,问答论坛并不会接收错误报告)。我们内部设有专门的错误报告系统,会有专人查看报告并设法解决问题。

要想尽快得到满意的解答,请在提问时注意以下几点:

  • 描述尽量具体:比如,想达到什么样的目的,或者具体哪里有问题。
  • 包含关键细节:比如,Wwise 和游戏引擎版本以及所用操作系统等等。
  • 阐明所做努力:阐明自己为了排除故障都采取了哪些措施。
  • 聚焦问题本身:聚焦于问题本身的相关技术细节,以便别人可以快速找到解决方案。

+1 投票

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:

  1. 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

  • We’re seeing various infrequent module-not-unique errors, and would like to confirm that making direct calls from the game module is permissible when using the Wwise UE integration as an engine plug-in.

     

                                                

分类:General Discussion | 用户: Sserpenthraxus_nv (130 分)

Please sign-in or register to answer this question.

...