cancel
Showing results for 
Search instead for 
Did you mean: 

Implementing Oculus Spatializer + Fmod + Unity

JavierZumer
Level 2
Hi there,

I have been trying to make this work for a few hours and can't make it happen.

-I'm using Unity 2019.3.4f1
-I'm using Fmod 2.01.00
-Up until now, audio was working fine, the fmod implementation in Unity had no issues.
-So, tried to add the Oculus Spatializer to my setup.
-Installed the plugin in fmod, everything works fine.
-Imported the supplied Unity package into Unity. (The one supplied with the fmod implementation, not a Unity standalone version).
-In Unity, added the Plugin name "OculusSpatializerFMOD" to the Plugins section on FMODStudioSettings.
-In Fmod, I used the Oculus Spatializer on a 3D event and built banks.
-When trying to play in editor, Unity throws the following error:

SystemNotInitializedException: [FMOD] Initialization failed : Loading plugin 'OculusSpatializerFMOD' from /Assets/Plugins/FMOD/lib/win/X86_64/OculusSpatializerFMOD.dll' : ERR_FILE_NOTFOUND : File not found.

-Notice that Unity expects the plugin files to be at "/Assets/Plugins/FMOD/lib/win/X86_64", but the package import puts them at: "/Assets/Plugins/X86_64". Not sure why this happens.

-So, after reading some forum posts, I try to copy the plugin .dll file on the folder that Unity seems to want. Then I get this error:

Multiple plugins with the same name 'oculusspatializerfmod' (found at 'Assets/Plugins/x86_64/OculusSpatializerFMOD.dll' and 'Assets/Plugins/FMOD/lib/win/x86_64/OculusSpatializerFMOD.dll'). That means one or more plugins are set to be compatible with Editor. Only one plugin at the time can be used by Editor

-So then I tried to delete the .dll files from where the packet import put them.
-That seems to work and Unity is "seeing" the plugin but then I get a different set of errors:

[FMOD] PostLoad::initPluginEffects : DSP plugin returned an error, bank will not load properly.

UnityEngine.Debug:LogError(Object)
FMODUnity.RuntimeManager:DEBUG_CALLBACK(DEBUG_FLAGS, IntPtr, Int32, IntPtr, IntPtr) (at Assets/Plugins/FMOD/src/Runtime/RuntimeManager.cs:32)

BankLoadException: [FMOD] Could not load bank 'FMODAssets\Desktop/Master.bank' : ERR_PLUGIN_MISSING : A requested output, dsp unit type or codec was not available.

-Which sounds like the plugin just can't be read correctly for some reason. I can also add that on any of those cases, after error I've listed I've always found a set of fmod events and snapshot that where not found, which makes sense since the master bank could not be loaded.

So things I've tried:
-Install older versions of the Oculus Spatializer, a few previous ones and a few older ones.
-Checking 7 times that the plugin name is correct.
-Made sure I had a Oculus Spatial Reverb on the fmod master, as pre-fader.
-Tried doing everything from scratch but not import the Unity package, just copy the plugin file to the proper folder.
-In Unity, tried going to where the package puts the plugin (Assets/Plugins/x86_64) and exclude the plugin from Editor. This seems to remove the "multiple plugin" error but still throws the "DSP plugin" error.
-Tried also the above in reverse, excluding the other way around.
-In Unity, went to Edit > Project Settings>Audio and change the spatializer and ambisonic plugin there. I can choose OculusSpatilizer but doesn't help.
-I realized the Oculus SDK brought an spatializer. Tried disabling it and even deleting it in case it had a conflict with the specific fmod oculus spatializer. This did not seem to help either.

So that's where I am at the moment.
Any help please?

Thanks,
Javier.
1 REPLY 1

JavierZumer
Level 2
I manged to fix it at the end by removing some bypassed google resonance plugins and the plugin itself on the fmod installation folder.