so in the next weeks our project which is still in pre-production will get a composer and a sounddesigner. After some talks we agreed to use FMOD.
Now those folks work remotely. I want to try to create a nice workflow where everyone can iterate in the best way possible. Now afaik FMOD works with source control. And that’s what I want to set up in the next days, I have some questions though with Unity, because from what I can tell from the docs it is apparently unwise to include the whole FMOD Studio project into the Unity Asset Folder:
Our Unity Project is in a git repository only I have access to as of now.
Do the audio people need full access to the Unity project itself in order to create and/or implement the sounds?
If the answer to 1) is no, how would I set the FMOD project up with git? What would be the best practice here?
From the docs I see the important thing are the .bank files and there are apparently three ways of adding them to the Unity Project:
Select FMOD Studio Project to use your FMOD Studio project.
Select Single Platform Build to use a single platform build (a directory containing a single set of .bank files).
Select Multiple Platform Build to use a multiple platform build (a directory containing multiple sets of .bank files).
From the top of my head I think I’d go with the Single Platform Build option and make a second repository for the FMOD Studio project. This repo has not only the fmod studio proj but also the exported/built .bank files.
Now the Unity Project, which sits in its own repo, links to the .bank files by path. The audio people can do their stuff, build the .bank files, push the updates to the repo. I will have the FMOD project repository somewhere on my system, pull and Unity gets automatically the updated .bank files.
This should work, right?
If 2) does indeed work, how does live update work exactly with this two repository-setup? Anything I need to consider this way?
This is a good workflow, keeping the repositories separate will stop the Unity repository from getting inflated with the assets used in the FMOD Studio project. The only issue is if other developers will need to access the new/updated Studio banks they will also need access to the Studio repository.
Of course, if you want the sound designers to implement their events then they will have to have access to the Unity repository, though this does not require the Studio project to be included in it too.
The way it can work.
Sound designers make updates to the Studio project and build updated banks
They push to the studio repo
You pull the changes and updated banks
You can then either build the banks to a location in the repository or manually paste them
You will then update the Unity repository so all developers have access to the updated banks and events.
Of course, you can make changes to this workflow where you see fit.
Thanks for confirming this will work. I was thinking of a similar process you described in 5 steps, with the difference that I will be the one implementing the sound events into the Unity project. That being said, I also thought that I would be the one who in the end will build the banks in FMOD Studio. So we have this flow:
everyone has access to the FMOD studio proj repository
the audio people will do the sounds and music in FMOD studio
then the will push their changes
I will pull the changes and build the banks to a dedicated folder inside the Unity Project, somewhere in the Asset folder
The fmod settings in Unity link to those banks
This way the audio folks dont cross “my lane” and dont alter any scenes, but still have the advantage of working in FMOD Studio and also still be able to live update from FMOD Studio when I provide them builds. Do I think correctly, this legit?
Correct, that should be fine. Putting the files in the top level of your project is if you are adding the entire FMOD Studio project. Apologies for the confusion. Banks files are fine to add in the Assets folder.