Building a UE4 Plugin

Report
FMOD STUDIO Case Study




Its easy
Reuse common components
Marketplace
$$$



Industry leading audio middleware
Easy and powerful authoring tools
Free for indies ($100K or less)

Previous UE3 Integration
◦ Deep integration with engine code
◦ Long time to development

UE4 Integration Plan
◦ Basic version and iterate on it
 Estimate 2 weeks for first version
◦ Open questions
 Can it be done as a pure plugin?
 Content window/asset integration?
FMODStudio plugin
FMOD Studio
Editor
module
FMOD Studio
module
YourGame
module
Unreal 4 Engine
UE4
Android
module
UE4
Core
module
UE4
Slate
module
UE4
XmlParser
module
• Macro to register module
• Virtual functions when module loaded/unloaded
.xml files
.uasset files
FMOD Studio
.bank files
UE4
Cooked .pak

Choices
◦
◦
◦
◦
Bank with uasset and GUID references
Dummy uassets on disk
Dummy uassets in memory
Explode bank into individual files and import


Create dummy assets on demand in memory
The good:
◦ Assets as first class citizens
◦ They appear in the content window
◦ Blueprints just work

The bad:
◦ Not the recommended approach!
◦ Serialized by name not Guid
◦ Not read-only in content window, but they should be
Building from GitHub/P4
Downloaded UE4 binary
Code project
DLL deployment issues
Wrong static library name
Plugin version must match Epic’s
DLL deployment issues
Blueprint-only project
DLL deployment issues
Plugin won’t link
Wrong static library name
Plugin version must match Epic’s
DLL deployment issues

Win64 plugin outputs:
◦ UE4Editor-FMODStudio.dll
◦ UE4Editor-FMODStudioEditor.dll
◦ UE4Game-FMODStudio-Static.lib

Name is expected to be:
◦ FMODStudio-Static.lib

Plugin version number
◦ Baked into DLL
◦ Must match exactly

Defines
◦ BUILT_FROM_CHANGELIST
◦ MODULE_API_VERSION

External DLLs
◦ Third party directory

Packaging
◦ Copies third party DLLs into destination directory

Android has additional requirements
◦ .jar file needs to be linked in
◦ .so files need to be loaded by main java Activity

How does it work for plugins?
◦ It doesn’t

Coming soon*!
* Not sure what soon means




FMOD Tutorial videos (YouTube FMODTV)
FMOD Q/A (www.fmod.com/questions)
FMOD Support ([email protected])
Questions?

similar documents