A few questions about integrating AudioKinetic Wwise and Unity
- by SaldaVonSchwartz
I'm new to Wwise and to using it with Unity, and though I have gotten the integration to work, I'm still dealing with some loose ends and have a few questions:
(I'm on Unity 4.3 as of now but I think it shouldn't make any difference)
The base path: The Wwise documentation implies you set this in the
AkGlobalSoundEngineInitializer basePath public ivar, which is
exposed to the editor. However, I found that this variable is not
really used. Instead, the path is hardcoded to
/Audio/GeneratedSoundBanks in AkBankPath. I had to modify both
scripts to actually look in the path that I set in the editor
property. What's the deal with this? Just sloppyness or am I missing
something?
Also about paths: since I'm on Mac, I'm using Unity natively under
OS X and in tadem, the Wwise authoring tool via VMWare and I share
the OS X Unity project folder so I can generate the soundbanks into
the assets folder. However, the authoring tool (downloaded the
latest one for Windows) doesn't automatically generate any
"platform-specific" subfolders for my wwise files. That is, again,
the Unity integration scripts assume the path to be
/Audio/GeneratedSoundBanks/<my-platform>/ which in my case would be
Mac (I set the authoring tool to generate for Mac). The
documentation says wwise will automatically generate the
platform-specific folders but it just dumps all the stuff in
GeneratedSoundBanks. Am I missing some setting? cause right now I
just manually create the /Mac folder.
The C# methods AkSoundEngine.PostEvent and AkSoundEngine.LoadBank
for instance, have a few overloads, including ones where I can refer
to the soundbanks or events by their ID. However, if I try to use
these, for instance:
AkSoundEngine.LoadBank(,
AkSoundEngine.AK_DEFAULT_POOL_ID)
where the int I got from the .h header, I get Ak_Fail. If I use the overloads that
reference the objects by string name then it works. What gives?
Converting the ID header to C#: The integration comes with a C# script that seems to fork a process
to call Python in turn to covert the C++ header into a C# script.
This always fails unless I manually execute the Python script myself
from outside Unity. Might be a permissions thing, but has anyone
experienced this?
The Profiler: I set up the Unity player to run in the background and
am using the "Profile" version of the plugin. However, when I start
the Unity OS X standalone app, the profiler in VMWare does not see
it. This I'm thinking might just be that I'm trying to see a running
instance of the sound engine inside an OS X binary from a Windows
virtual machine. But I'm just wondering if anyone has gotten the
Windows profiler to see an OS X Unity binary.
Different versions of the integration plugin: It's not clear to me from the documentation whether I have
to manually (or write a script to do it) remove the "Profile"
version and install the "Release" version when I'm going to do a
Release build or if I should install both version in Unity and it'll
select the right one.
Thanks!