I spent some time setting up a UE4 project with FMOD integration and adding some DLC content to it, and I found it’s possible, but a little janky.
My test was built around using a simple UE4 project with the FMOD integration and following a tutorial video I found online for adding DLC content to a UE4 project (https://www.youtube.com/watch?v=ndHNdUSRpho ). The video is not official Epic learning material but I couldn’t locate anything official that detailed how to create DLC. There may be different and better approaches for adding DLC in UE4 but I imagine the key takeaways for the FMOD side of things would be the same.
This is the process I used:
- Created a basic UE4 / C++ project using the Blank template.
- Added the FMOD UE4 integration plugin.
- Created a copy of the FMOD Studio Examples project to use.
- Moved the
Ambience/Country event in the examples to a new bank which I named
- Added an ambient sound to the map playing
- Followed this tutorial to create additional content https://www.youtube.com/watch?v=ndHNdUSRpho
- Packaged the main build.
SFX_DLC.bank from the staged build.
- Added the
Ambience/Country event to the DLC map.
- Packaged the additional content DLC build.
- Ran the main build, confirmed the main map loaded and the
Ambience/City event played as expected. Attempting to load the DLC map failed as expected.
- Closed the main build and added the additional content DLC pak and the SFX_DLC.bank to the filesystem and ran the build again, confirmed that the DLC map loaded and played the
Ambience/Country event as expected.
The requirement at step 8 to jump out of the UE4 build process to modify the output of the staged builds irritated me. What you need to manage there is that the DLC bank has to be in the same location as the main banks so you can use the DLC content in the editor, and that leads to the DLC bank being copied to staging when you create the main build. There are other approaches than manually modifying the staged build that I would investigate if I had to do this in production. It may be possible to do it more elegantly by playing with the build automation tools in UE4, it could also be managed quite nicely in a scripted build process.
We’ll review this internally to determine how we might enhance our integration to offer a better user experience for using DLC, but for now I hope this will give you some leads on how you can manage it with what’s currently available.