So after updating the engine of our game and going from older version of UE to a newer one, we naturally had to update the FMOD plugin/UE4 integration and FMOD Studio itself. Now, we’ve been having this problem for quiet a while now, what basically happens is this:
All of the sounds work while playing the game from the editor, but when packaging the build and creating an .exe file some sounds (that work in the editor) go missing.
I’ve basically tried everything - FMOD plugin validation, additional asset directories to cook in UE4 etc. but none of this works.
What I’ve noticed is that after the update there’s a new folder, besides the one that keeps all of the desktop banks, there’s another FMOD folder with all of the events, banks etc. with .uasset extension.
This folder wasn’t present in the previous UE version we’ve had and what’s more, when I enter this folder, go to the banks folder, and remove all of the banks with .uasset extension, the same sounds that go missing in builds, also start missing in the editor!
So right now, I’m at a complete loss and don’t know what to do anymore. I’m hoping that someone in here has the solution for this. Thanks!
The new directories containing uasset files are created by the integration and you should not modify or remove those files - doing so would be expected to cause problems like you encountered. You should be able to restore those uasset files by re-launching the editor, or by choosing “Reload Banks” from the File menu.
I haven’t been able to reproduce any issues with playback failing in a packaged build. If you change the Logging Level setting to LEVEL WARNING and package and run a development build do you see any warning log messages from FMOD?
No warning log messages whatsoever after changing logging level to LEVEL WARNING. Should the .uasset files build into the packaged build aswell? Because for now, ony the conent/FMOD/Desktop and Master.bank file builds, but some of the sounds are still missing. Is there a way (if it’s required to do so) to include the .uasset files in the packaged build?
EDIT: I’ve added the .uasset files to the packaged build via “additional non-asset directories to copy” but to no avail, the sounds are still missing. I’ve tried everything at this point.
There should be no need to worry about the uasset files, just treat them as the other UE4 assets. They’ll be included in the PAK file when you build.
I’m not sure what you mean by “only the content/FMOD/Deskop and Master.bank file builds”? You should have Content/FMOD/Desktop added to “additional non-asset directories to copy” and everything in Content/FMOD/Desktop should be copied to the build, is that not the case?
That is exactly the case, by “only” I meant without the FMOD folder with all of the .uasset files, but as you’ve stated, they’re not needed as they build automatically. The issue still stands, the sounds are still missing and I’m still at a complete loss.
I’m afraid without being able to reproduce this I’m also at a loss to explain it.
Could you package up a minimal UE4 + FMOD Studio project which demonstrates the issue and upload it to fmod.com using the uploads tab in your user profile? If we can test it directly we should be able to figure out what is going wrong.
I’m afraid uploading is not possible in my situation. Right now, the same thing happens in the editor for some of the levels, some sounds are triggering correctly (event FMOD profiler shows that the events trigger) but they output no sound.
We’ve encountered a similar issue where events triggered in code wouldn’t play. One way I found to temporarily “fix” it is by placing the events into the level and turning off “auto activate”.
We found and fixed a bug which could explain this behavior - the Blueprint functions Find Event By Name and Find Asset By Name are returning null for assets which have not been loaded. We’ve added a fix for this to our upcoming release which.
The fix has already been pushed to GitHub, so if you’re comfortable updating the UE4 plugin source code that way you can access the fix immediately.
FInd Event By Name and Find Asset By Name (internally the same flow) returns null assets/fmodevents when we publish our game. Important notice is that events we are looking for aren’t referenced in BP or other places. We are using this to get VO files.
tested on 2.01.10 (release) i 2.01.09 (github) (unreal 4.26.2)
previously works very well on 2.01.08 and UE 4.25.4
log is very clean so we put some more logs in process of events loading (FMODAssetTable/FFMODAssetTable::GetAssetByStudioPath() ) and it looks like AssetLookup table is ok.
Row with event is present in table (ln 185).
Package is created and fully loaded (ln 190) but cannot find object in package (ln 190).
As I said previously when running on unreal 4.25 (2.01.08) works fine in development build.
I made one more test with looking for event referenced somewhere and it’s loaded well by name. Problem is with not referenced events.
This sounds possible because in the 4.26 integration we switched to making generated assets on disk rather than just in memory, and if assets aren’t referenced then they may get cleaned up by the garbage collector.
I tried to reproduce this myself but did not run into any issues when I tried to use UFMODBlueprintStatics::FindEventByName, the event appeared to be usable without being referenced anywhere else.
Are you able to share small project that reproduces this at all?
You can upload files to your FMOD Profile.
ok. I created temp project with simple case and still didn’t work. I tried to upload it on FMOD Profile but still got error on any type of file (7z, zip or simple log).
here is a link to our simple test project. FMOD bank contains only 2 events. One is placed on map and is played automaticaly on run (and works well on editor and build). Second one is played after 5sec by name (look at level blueprint where you find bp block - Find Event by Name).