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.

How should I set up file structure for a shared project in Unity

+1 vote

I'm trying to integrate WWise into a Unity project here but am running into extreme difficulty sharing my project with other folks. I've got everything set up ok on my machine, but when other folks download my revisions from source control, they get errors on the audio.

I've set up the project to generate sound banks directly to the Streaming Assets/ Audio/ Windows folder (the only platform we're supporting). The sound banks appear here just fine. However, the Wwise project itself sits on DropBox, so everyone has a different path to that.  It seems that Wwise in Unity is dependent on having access to the original project file.

(If we were to include the Wwise project as part of the overall source control package, it would still end up in different locations; I believe the path is somehow hard coded in the integration.)

If I edit AllBasePathGetter.cs to specifically point to a path, everything works, but that's not a sustainable solution.

Some questions:

  1. In order to run the project in the Unity Editor, exactly what files do I need and where should they be?
  2. In order to compile/ build a project from Unity, does this need change (I believe they must be in Streaming Assets according to some docs I found)
  3. How do I break the dependency on needing access to the ww project file?
  4. Is there additional information we can include in the Sound Bank to make it more independent/ self sufficient?

Thanks so much in advance.

 

Jeff

asked Feb 6, 2017 in General Discussion by Jeff M. (110 points)

2 Answers

0 votes

It looks like your collaborators don't locally have the SoundBanks on their machines. Did you make sure to add them to your Source Control?

To answer your specific questions:

  1. If you only want your collaborators to hear sound, and do not need them to do actual sound design, the only files that they need are the SoundBanks
  2. The SoundBanks should be in the Streaming Assets/Audio/Generated SoundBanks/Windows folder (for Windows builds)
  3. The integration will make sound just fine without the Wwise project. The Wwise picker will be disabled, though.
  4. Sound Banks are generated by Wwise, and cannot be modified afterwards. The Unity integration only requires for them to be inside of Streaming Assets.
If you need your collaborators to do some actual sound design, they will need to access the Wwise project. We suggest that you add the Wwise project (without the .cache and .backup folders) to your source control. The ideal place for it to be is inside your Unity project folder, next to Assets (but NOT in Assets).
answered Feb 6, 2017 by Benoit S. (Audiokinetic) (16,020 points)
This did not work. I put all sound banks in Assets\StreamingAssets\Audio\Generated SoundBanks\Windows as you suggested. (I corrected the typo in "Streaming Assets" to "StreamingAssets" without the space.)  If I run this with the .wproj file in place, it works. If I rename the .wproj file, it does not.

The .wproj file (and the entire Wwise project) is sitting outside of Unity.

I just checked the logs and it seems that it doesn't want a space in "Generated SoundBanks" either:

WwiseUnity: Looking for SoundBanks in D:\GitRepos\TheTerrace\Terrace Prototype A\Assets\StreamingAssets\Audio\GeneratedSoundBanks\Windows\

I made that change (so files are now in the directory in the line above) and I still get a file not found error in the logs, although with no additional information:

WwiseUnity: Bank Main failed to load (AK_FileNotFound)
UnityEngine.DebugLogHandler:Internal_Log(LogType, String, Object)
UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
UnityEngine.Logger:Log(LogType, Object)
UnityEngine.Debug:LogWarning(Object)
AkBankHandle:LoadBank() (at Assets\Wwise\Deployment\Components\AkBankManager.cs:116)
AkBankManager:LoadBank(String, Boolean, Boolean) (at Assets\Wwise\Deployment\Components\AkBankManager.cs:213)
AkBank:HandleEvent(GameObject) (at Assets\Wwise\Deployment\Components\AkBank.cs:62)
AkUnityEventHandler:Start() (at Assets\Wwise\Deployment\Components\AkUnityEventHandler.cs:48)
AkBank:Start() (at Assets\Wwise\Deployment\Components\AkBank.cs:49)
 
(Filename: Assets/Wwise/Deployment/Components/AkBankManager.cs Line: 116)

Any other thoughts on what needs to be done?

Thanks
To be clear: My setup works fine if the .wproj file is in place; I only get this error if I move or rename it.
Looking at the log you pasted, the integration is looking for the SoundBanks in:
 D:\GitRepos\TheTerrace\Terrace Prototype A\Assets\StreamingAssets\Audio\GeneratedSoundBanks\Windows\

(there are no spaces in StreamingAssets and GeneratedSoundBanks). Can you ensure they really are located in that path?
Hey Jeff,
We ran into this same issue.  Might not be helpful, but this is an Editor only problem we discovered, and if you would like to solve it change line 94 of AkBasePathGetter from
        if (System.IO.Path.GetPathRoot(SoundBankDest) == "")
to
        if (SoundBankDest != "" && System.IO.Path.GetPathRoot(SoundBankDest) == "")

Issue stems from SoundBankDest being empty string, and System.IO.Path.GetPathRoot throwing an exception on this.  Hope this works for you as well!
0 votes

Hey Jeff, 

Hope you got your problem solved. If anyone else has a similar problem, maybe this One Minute Wwise video will be helpful - https://youtu.be/hyle0TKvYTE

answered Aug 12, 2020 by Mads Maretty S. (Audiokinetic) (38,280 points)
...