Audiokinetic's Community Q&A is the forum where users can ask and answer questions within the Wwise and Strata communities. If you would like to get an answer from Audiokinetic's Technical support team, make sure you use the Support Tickets page.

Wwise 2014.1/Unity 4.5.5: Plugin not registered

0 votes
Using the official Wwise Integration package for Unity, I'm getting errors when starting a scene stating "Plugin not registered". I'm unsure what the problem is. With Wwise 2013.8.2 this used to work.
asked Nov 7, 2014 in General Discussion by David S. (150 points)

1 Answer

0 votes
Hi David,

The question has been asked recently, here is my answer :

https://www.audiokinetic.com/qa/790/all-plugins-broken-with-stable-2014-1-unity-integration?show=790#q790

 

cheers,
answered Nov 8, 2014 by Florent D. (470 points)
Hi Florent,

unfortunately, I'm still unsure about what to do exactly. Maybe you can help me with specific information?
Reading the manual ("Wwise SDK 2014.1 » Sound Engine Integration Walkthrough » Integrate Wwise Elements into Your Game » Integrating Plug-Ins"), it seem's I have to register a plugin by using the following block of code:
// Register RoomVerb FX plugin
AK::SoundEngine::RegisterPlugin(
    AkPluginTypeEffect,
    AKCOMPANYID_AUDIOKINETIC,
    AKEFFECTID_ROOMVERB,
    CreateRoomVerbFX,
    CreateRoomVerbFXParams
    );
The manual however does not mention, at which file I have to register the plugin. Can you tell me the name and place of the file?

Next problem: the manual says, I'd have to unzip the source code of my target platform and should check the "Install the integration in a Unity project" section of the manual for details. But this section clearly doesn't mention any source code but the .unitypackage instead. So I'm unsure if there's any relevant information missing ...

Additionally, I'm unable to find the name I have to use to register the AstoundSound plugin. The section "Build Configuration" of the manual doesn't list it. Can you tell me how the code block for registering the plugin AstoundSound RTI should look like?
Which plug-in causes you issues ? Which platform do you need ?

I wrote a tutorial on "how-to register plugins" but it's only for windows platform at that moment, and it's in french. If you need to register your plugs for windows, I could share it to you, but I ll need to translate it if you can't read french :)

I wanted to translate it in english and complete it with some more specific issues before posting it in public.
I'm on Windows 7x64. The plugin I want to register is the AstoundSound RTI plugin. It still doesn't work, so any help is highly appreciated! I'm horrible at french but google could help ;)

My current status: I've found the file where I have to register the plugin: in (Wwise Source SDK) AkSoundEngine\Common\AkSoundEngineStubs.cpp
There around line 283 I uncommented the line for the AstoundSound Plugins. Then, I installed MS Visual Studio Professional 2010 (it won't work with VS Express), the DirectX SDK (from June 2010), PowerShell and Python3. The DirectX SDK showed an Error (S1023) at the end of the installation, but at that point the build process didn't quit with "dxguid.lib not found". I had to fix yet another error: I copied the file cvtres.exe from "c:\windows\Microsoft.Net\Framework\v4.0.30319\ cvtres.exe" (42Kb) to "program files(x86)\Microsoft Visual Studio 10.0\VC\Bin\cvtres.exe". After that, the build process works with the "AK::SoundEngine::RegisterConvolutionReverbPlugin();" and the "AK::SoundEngine::RegisterAllBuiltInPlugins();" plugins, only.

If I activate one of the following plugins:
AK::SoundEngine::RegisterSoundSeedPlugins();
AK::SoundEngine::RegisterMcDSPPlugins();
AK::SoundEngine::RegisterAstoundSoundPlugins();
AK::SoundEngine::RegisteriZotopePlugins();
AK::SoundEngine::RegisterCrankcaseAudioPlugins();

the build process will quit with the following error:
1>AkSoundEngineStubs.obj : error LNK2019: unresolved external symbol ""class AK::IAkPluginParam * __cdecl CreateAstoundSoundRTIMixerAttachmentParams(class AK::IAkPluginMemAlloc *)" (?CreateAstoundSoundRTIMixerAttachmentParams@@YAPAVIAkPluginParam@AK@@PAVIAkPluginMemAlloc@2@@Z)" in function ""enum AKRESULT __cdecl AK::SoundEngine::RegisterAstoundSoundPlugins(void)" (?RegisterAstoundSoundPlugins@SoundEngine@AK@@YA?AW4AKRESULT@@XZ)".

1>AkSoundEngineStubs.obj : error LNK2019: unresolved external symbol ""class AK::IAkPluginParam * __cdecl CreateAstoundSoundRTIMixerParams(class AK::IAkPluginMemAlloc *)" (?CreateAstoundSoundRTIMixerParams@@YAPEAVIAkPluginParam@AK@@PEAVIAkPluginMemAlloc@2@@Z)" in Funktion ""enum AKRESULT __cdecl AK::SoundEngine::RegisterAstoundSoundPlugins(void)" (?RegisterAstoundSoundPlugins@SoundEngine@AK@@YA?AW4AKRESULT@@XZ)".

1>AkSoundEngineStubs.obj : error LNK2019: unresolved external symbol ""class AK::IAkPlugin * __cdecl CreateAstoundSoundRTIMixer(class AK::IAkPluginMemAlloc *)" (?CreateAstoundSoundRTIMixer@@YAPEAVIAkPlugin@AK@@PEAVIAkPluginMemAlloc@2@@Z)" in Funktion ""enum AKRESULT __cdecl AK::SoundEngine::RegisterAstoundSoundPlugins(void)" (?RegisterAstoundSoundPlugins@SoundEngine@AK@@YA?AW4AKRESULT@@XZ)".

1>AkSoundEngineStubs.obj : error LNK2019: unresolved external symbol ""class AK::IAkPluginParam * __cdecl CreateAstoundSoundFolddownFXParams(class AK::IAkPluginMemAlloc *)" (?CreateAstoundSoundFolddownFXParams@@YAPEAVIAkPluginParam@AK@@PEAVIAkPluginMemAlloc@2@@Z)" in Funktion ""enum AKRESULT __cdecl AK::SoundEngine::RegisterAstoundSoundPlugins(void)" (?RegisterAstoundSoundPlugins@SoundEngine@AK@@YA?AW4AKRESULT@@XZ)".

1>AkSoundEngineStubs.obj : error LNK2019: unresolved external symbol ""class AK::IAkPlugin * __cdecl CreateAstoundSoundFolddownFX(class AK::IAkPluginMemAlloc *)" (?CreateAstoundSoundFolddownFX@@YAPEAVIAkPlugin@AK@@PEAVIAkPluginMemAlloc@2@@Z)" in Funktion ""enum AKRESULT __cdecl AK::SoundEngine::RegisterAstoundSoundPlugins(void)" (?RegisterAstoundSoundPlugins@SoundEngine@AK@@YA?AW4AKRESULT@@XZ)".

1>AkSoundEngineStubs.obj : error LNK2019: unresolved external symbol ""class AK::IAkPluginParam * __cdecl CreateAstoundSoundExpanderFXParams(class AK::IAkPluginMemAlloc *)" (?CreateAstoundSoundExpanderFXParams@@YAPEAVIAkPluginParam@AK@@PEAVIAkPluginMemAlloc@2@@Z)" in Funktion ""enum AKRESULT __cdecl AK::SoundEngine::RegisterAstoundSoundPlugins(void)" (?RegisterAstoundSoundPlugins@SoundEngine@AK@@YA?AW4AKRESULT@@XZ)".

1>AkSoundEngineStubs.obj : error LNK2019: unresolved external symbol ""class AK::IAkPlugin * __cdecl CreateAstoundSoundExpanderFX(class AK::IAkPluginMemAlloc *)" (?CreateAstoundSoundExpanderFX@@YAPEAVIAkPlugin@AK@@PEAVIAkPluginMemAlloc@2@@Z)" in Funktion ""enum AKRESULT __cdecl AK::SoundEngine::RegisterAstoundSoundPlugins(void)" (?RegisterAstoundSoundPlugins@SoundEngine@AK@@YA?AW4AKRESULT@@XZ)".

1>AkSoundEngineStubs.obj : error LNK2019: unresolved external symbol ""class AK::IAkPlugin * __cdecl CreateAstoundSoundRTIFX(class AK::IAkPluginMemAlloc *)" (?CreateAstoundSoundRTIFX@@YAPEAVIAkPlugin@AK@@PEAVIAkPluginMemAlloc@2@@Z)" in Funktion ""enum AKRESULT __cdecl AK::SoundEngine::RegisterAstoundSoundPlugins(void)" (?RegisterAstoundSoundPlugins@SoundEngine@AK@@YA?AW4AKRESULT@@XZ)".

1>AkSoundEngineStubs.obj : error LNK2019: unresolved external symbol ""class AK::IAkPluginParam * __cdecl CreateAstoundSoundRTIFXParams(class AK::IAkPluginMemAlloc *)" (?CreateAstoundSoundRTIFXParams@@YAPEAVIAkPluginParam@AK@@PEAVIAkPluginMemAlloc@2@@Z)" in Funktion ""enum AKRESULT __cdecl AK::SoundEngine::RegisterAstoundSoundPlugins(void)" (?RegisterAstoundSoundPlugins@SoundEngine@AK@@YA?AW4AKRESULT@@XZ)".

I translated the error message from my native language (german) to english, so mabye it's not the exact error message.
Here is a summary of the tutorial I wrote after succeding to build solutions :

First, download visual studio 2012.

Open AkSoundEngineWindows_vc110.sln in the sources your downloaded

Right click on AkSoundEngine_vc110 and properties
Platform Toolste ==> Visual2012 v110

Linker ==> Additionnal Library Directories ==> Edit and your should have : $(WWISESDK)\$(Platform)_vc110\$(Configuration)\lib

In your environnment variable (Start/right clik on your computer/properties/advanced/environnment variable, add "WWISESDK" to system variables and i advise you to rename your wwise folder without white spaces.

Add python path to your PATH variable (like C:\Python34\)

Back to Visual studio ==> Linker ==> Input ==> Additional Depedencies ==> Edit and add all Astound .lib to the list.

Uncomment the Astound register plugin line in Stubbs.cpp as you say before.

Try building your solution (BUILD ==> Build Solution)
Thanks a lot for your help. It's compiling after all. I still have major problems, though. It took me several days to analyze the problem.

What I did:
I searched in the SDK folder of Wwise for "Astoundsound" and found 4 *.lib files to add there: AstoundsoundExpanderFX.lib;AstoundsoundFolddownFX.lib;AstoundsoundRTIFX.lib;AstoundsoundShared.lib
I added these dependencies for all 6 profiles (debug_x86, profiler_x86, release_x86 and x64s ...). I started the build process with Visual Studio 2010 and there was no error.
I copied the entire deployment folder into Unityproject/Wwise/ and replaced all files in there. After that, I started Unity and used the "Assets->Wwise->Install Plugins ..." function to copy the debug versions to /Assets/Plugins (the debug versions are also used by standard in the integration.unitypackage). On the machine which built these plugins, the unity project runs fine.

On another machine it does not work, however! Using the same files, Unity will drop errors in the console during play-mode:
DllNotFoundException: /Path/To/Unityproject/Assets/Plugins/x86/AkSoundEngine.dll
AkMemSettings..ctor ()
AkInitializer.Awake () (at Assets/Wwise/Deployment/Components/AkInitializer.cs:81)

DllNotFoundException: /Path/To/Unityproject/Assets/Plugins/x86/AkSoundEngine.dll
AkSoundEngine.LoadBank (System.String in_pszString, Int32 in_memPoolId, System.UInt32& out_bankID) (at Assets/Wwise/Deployment/API/Generated/Windows/AkSoundEngine_Windows.cs:1536)
AkBankHandle.LoadBank () (at Assets/Wwise/Deployment/Components/AkBankManager.cs:40)
AkBankManager.LoadBank (System.String name) (at Assets/Wwise/Deployment/Components/AkBankManager.cs:108)
AkBank.HandleEvent (UnityEngine.GameObject in_gameObject) (at Assets/Wwise/Deployment/Components/AkBank.cs:55)
AkUnityEventHandler.Awake () (at Assets/Wwise/Deployment/Components/AkUnityEventHandler.cs:39)
AkBank.Awake () (at Assets/Wwise/Deployment/Components/AkBank.cs:30)

DllNotFoundException: /Path/To/Unityproject/Assets/Plugins/x86/AkSoundEngine.dll
AkSoundEngine.RegisterGameObj (UnityEngine.GameObject in_gameObjectID, System.String in_pszObjName) (at Assets/Wwise/Deployment/API/Generated/Windows/AkSoundEngine_Windows.cs:1405)
AkGameObj.Awake () (at Assets/Wwise/Deployment/Components/AkGameObj.cs:58)

DllNotFoundException: /Path/To/Unityproject/Assets/Plugins/x86/AkSoundEngine.dll
AkSoundEngine.RegisterGameObj (UnityEngine.GameObject in_gameObjectID, System.String in_pszObjName) (at Assets/Wwise/Deployment/API/Generated/Windows/AkSoundEngine_Windows.cs:1405)
AkGameObj.Awake () (at Assets/Wwise/Deployment/Components/AkGameObj.cs:58)

DllNotFoundException: /Path/To/Unityproject/Assets/Plugins/x86/AkSoundEngine.dll
AkSoundEngine.RegisterGameObj (UnityEngine.GameObject in_gameObjectID, System.String in_pszObjName) (at Assets/Wwise/Deployment/API/Generated/Windows/AkSoundEngine_Windows.cs:1405)
SoundTriggersWwise.Awake () (at Assets/Sounds/Classes/SoundTriggersWwise.cs:15)

DllNotFoundException: /Path/To/Unityproject/Assets/Plugins/x86/AkSoundEngine.dll
AkSoundEngine.SetListenerPosition (Single FrontX, Single FrontY, Single FrontZ, Single TopX, Single TopY, Single TopZ, Single PosX, Single PosY, Single PosZ, UInt32 in_ulListenerIndex) (at Assets/Wwise/Deployment/API/Generated/Windows/AkSoundEngine_Windows.cs:3289)
AkAudioListener.Update () (at Assets/Wwise/Deployment/Components/AkAudioListener.cs:32)


Of course, there is no sound.


Using the profiler or release version, it works on another machine, too. What do I have to do to make the debug version compiled on machine a run on machine b?

Again, thank you for your help!
I mixed something up. During developement, your are supposed to use the profiler version. The debug version is intended to be used in conjunction the audiokinetic support and will run only on if with Visual Studio is installed. So everything is working, now. Thank you for your help!
...