290 likes | 828 Views
Building a UE4 Plugin. FMOD STUDIO Case Study. Motivation – Why make a plugin?. Its easy Reuse common components Marketplace $$$. FMOD Studio. FMOD Studio. FMOD Studio. FMOD Studio. Industry leading audio middleware Easy and powerful authoring tools Free for indies ($100K or less).
E N D
Building a UE4 Plugin FMOD STUDIO Case Study
Motivation – Why make a plugin? • Its easy • Reuse common components • Marketplace • $$$
FMOD Studio • Industry leading audio middleware • Easy and powerful authoring tools • Free for indies ($100K or less)
Unreal Integration • 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?
Plugin Basics FMODStudio plugin FMOD Studio module FMOD Studio Editor module YourGame module Unreal 4 Engine UE4 XmlParser module UE4 Core module UE4 Slate module UE4 Android module
Module Class • Macro to register module • Virtual functions when module loaded/unloaded
Sound Banks .xml files FMOD Studio .bank files Cooked .pak .uassetfiles UE4
Sound Banks • Choices • Bank with uasset and GUID references • Dummy uassets on disk • Dummy uassets in memory • Explode bank into individual files and import
Sound Banks • 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
Deployment - names • Win64 plugin outputs: • UE4Editor-FMODStudio.dll • UE4Editor-FMODStudioEditor.dll • UE4Game-FMODStudio-Static.lib • Name is expected to be: • FMODStudio-Static.lib
Deployment - plugin version • Plugin version number • Baked into DLL • Must match exactly • Defines • BUILT_FROM_CHANGELIST • MODULE_API_VERSION
Deployment – DLL deployment • 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
Marketplace plugin support • Coming soon*! * Not sure what soon means
Demo/Questions/Comments • FMOD Tutorial videos (YouTube FMODTV) • FMOD Q/A (www.fmod.com/questions) • FMOD Support (support@fmod.com) • Questions?