FMOD STUDIO Case Study. Its easy Reuse common components Marketplace $$$

Preview:

Citation preview

Building a UE4 PluginFMOD STUDIO Case Study

Its easy Reuse common components Marketplace $$$

Motivation – Why make a plugin?

FMOD Studio

FMOD Studio

FMOD Studio

Industry leading audio middleware Easy and powerful authoring tools Free for indies ($100K or less)

FMOD Studio

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?

Unreal Integration

Plugin Basics

UE4 Android module

UE4 Core

module

UE4 Slate

module

UE4 XmlParser

module

YourGame module

FMOD Studiomodule

FMOD Studio Editor

module

FMODStudio plugin

Unreal 4 Engine

Plugin Basics

Plugin Basics

Plugin Basics

Plugin Basics

Module Class

• Macro to register module• Virtual functions when module loaded/unloaded

Basic Asset Class

Settings Class

Settings Class

Blueprints

Blueprints

Sound Banks

.xml files .bank filesFMOD Studio

UE4.uasset files Cooked .pak

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

Sound Banks

Sound Banks

Building from GitHub/P4

Downloaded UE4 binary

Code project DLL deployment issues Wrong static library namePlugin version must match Epic’sDLL deployment issues

Blueprint-only project DLL deployment issues Plugin won’t linkWrong static library namePlugin version must match Epic’sDLL deployment issues

Deployment

Win64 plugin outputs:◦ UE4Editor-FMODStudio.dll◦ UE4Editor-FMODStudioEditor.dll◦ UE4Game-FMODStudio-Static.lib

Name is expected to be:◦ FMODStudio-Static.lib

Deployment - names

Plugin version number◦ Baked into DLL◦ Must match exactly

Defines◦ BUILT_FROM_CHANGELIST◦ MODULE_API_VERSION

Deployment - plugin 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

Deployment – DLL deployment

Coming soon*!* Not sure what soon means

Marketplace plugin support

FMOD Tutorial videos (YouTube FMODTV) FMOD Q/A (www.fmod.com/questions) FMOD Support (support@fmod.com) Questions?

Demo/Questions/Comments

Recommended