社区问答

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

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

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

+2 投票

Hello! I am wondering if anyone has a definitive guide for including in WWISE plug-ins (AkDelayFX, AkFlangerFX, etc. ), into an Unreal Engine 4 project in packaged builds? Or save that, just some advice for me. Here is what I know so far: 

  • I have basic WWISE integration into my project. All builds work on a base level.
  • Trying to use some of the Ak Plug-ins, I see that they are all able to work by default in Editor and Standalone Non-packaged builds. Great! 
  • In packaged builds only, I get the "missing plug-ins" spew, and discover that you need to include plug ins explicitly only for packaged builds. Makes sense! Happy to do so!

From here, I have tried a few things, I would give feedback that all the instructions point out to do two things (1. Include the AkPlugin in your project, or in AkAudioDevice.cpp and 2. Link the .lib in via an added call to AddWiseLib() in the Ak.build.cs file), but doing those two things alone have brought me pain, and it does not appear to be as straightforward as it is implied (also, the WWISE official sample project for UE does not appear to include any of these plugins.. which would also be a great thing to have! ).

Here are the various things I have tried:

  • Including the "#include <AK/Plugin/AkDelayFXFactory.h>" in game code:
    • Comes up with well documented Windows TEXT() Redefinition compile errors. Attempted to fix these with a "Header Sandwich" of the pre/post windows include header files, but I was unable to get it working. Seems like an issue with WWISE UE Plugin that needs to be fixed? But I couldn't say for certain.
  • Instead fell back to this FAQ, and KIND OF got things working: https://www.audiokinetic.com/library/2016.2.6_6153/?source=UE4&id=using__faq.html ( Note: alot of this seems out of date? )
    • I put "#include <AK/Plugin/AkDelayFXFactory.h>" directly in AkAudioDevice.cpp. 
    • I then went to GetAdditionalWwiseLibs() in AkAudio_Windows.Build.cs and added the "AkDelayFX" lib to the list. 
    • This actually works!!! :D yay! I do get my plugins in the packaged build! BUT...
    • It breaks normal non-packaged builds!! It seems like it might conflict with whatever mechanism is used to always load all plugins in non-Packaged builds?
So I can get it all working in Packaged Builds, or non-Packaged Builds, but not both at the same time! :D Was looking for a UE preprocessor define for Packaged builds ( to maybe just not include the factories outside of prepackaged builds ), but cannot find one. 

When I have my fix for the packaged build, the linker error I get for non-packaged build looks like this: 

AkAudioDevice.cpp.obj : error LNK2001: unresolved external symbol "class AK::PluginRegistration AkDelayFXRegistration" (?AkDelayFXRegistration@@3VPluginRegistration@AK@@A)

Things that would help me:
  • Any link to a definitive guide on how this is done? The latest docs seems to just not work (does anyone test these before publishing?) re: the Windows TEXT() re-definitions. And the closest things I have gotten to work seems terribly outdated. 
  • UE Preprocessor to conditionally compile on packaged builds or not
  • WWISE / AK Preprocessor to conditionally compile on when they decide to include all FXFactories or not.
  • Link to any similar code that works!
 
One would think that this would be a straightforward process, given how prolific UE and WWISE pairings seem to be. Any ideas would be greatly appreciated! 

Cheers,
Tim Rawcliffe
分类:General Discussion | 用户: Timothy R. (140 分)

Please sign-in or register to answer this question.

...