Missing assets in events created by collaborator

I am working on an FMOD project (currently 2.02.02) with one collaborator.

Problem: When either of us adds a new event, and we share the assets via Perforce, the other can successfully get the new event by choosing File/Sync Latest & Merge Project , but the assets are missing from the project. They appear in the assets list as ‘unimported’. After importing them, they appear as ‘unused’, and sure enough, they have disappeared from the events in which my collaborator has placed them.

It sure seems like a pathing problem, as our absolute paths are different, but I thought FMOD used relative pathing from the project file, doesn’t it? Our relative paths to the assets are the same, as both they and the FMOD project are in the Perforce depot.

Please advise, thank you.

P.S. We are not using FMOD to version-control the assets or banks, only the FMOD project metadata files.

You say you’re getting using the “Sync Latest & Merge Project” command to get the latest version of your project, but if your assets are not subject to version control as you say, this should not result in new #unused assets appearing in your project.

How and when are you updating the audio files in your assets directories?

We update the assets using P4V first, and then sync in Studio.

It’s not that we’re getting new #unused assets directly. We’re getting new #missing assets. When we then import them, they are tagged as #unused.

Importing an audio file signals Studio to create a corresponding asset metadata file. Studio uses these asset metadata files as unique identifiers for assets. You’re importing the same audio file twice, resulting in two different metadata files being created - and thus in FMOD Studio assuming that there’s two different audio files: One that’s gone missing, and one that’s been imported but isn’t yet used.

You shouldn’t need to re-import the missing assets. Studio looks for each audio file in a specific subpath within your assets directory; if the file is not there, it marks it as #missing. Conversely, if you put the missing files in their correct locations, FMOD Studio will detect that they’re present and stop marking them as #missing, with no additional importing required.

You should compare the subfolders of your assets directory with those of your collaborator. The easy way to do this is to scroll to the bottom of FMOD Studio’s assets browser, right-click on the grayspace at the bottom, and select “Open in Explorer” or “Open in Finder” from the context menu. If both you and your collaborator do this, the windows that pop up should both display the exact same list of subfolders; but if you see a different set of subfolders or need to navigate up or down a level in order to find the same set of subfolders as your collaborator, then that would explain the problem.

Thanks.

We definitely have the same folder structure: the assets are version-controlled in Perforce. That’s how we get assets from each other.

You may be on to the source of the problem though: I had assumed that if they imported assets, and then I got those assets via Perforce, that then I would have to also perform an FMOD import operation. (Our FMOD project is set to not version-control the assets or banks; we do that in P4) If that’s not the case, if just syncing the FMOD project will get the importations, then yeah, that could be it. I’ll test out that theory, thanks!

So now that I’m getting on top of this issue, I have encountered this:

List

What is the best way to resolve these errors? They only came up after running a validation which said there were no errors, but then the next time I tried to build a bank, I got this pop-up.

One thing that works is to just ignore them, but is there a better method? :smiley:

This thread was picked up by support email.

In conclusion the issue centered around having the FMOD Studio project within its own assets directory. This confused Studio making it think XML files required by the project were assets and were ignored from source control. We will be adding detection for this case to alert people to the problem in a future release.