Building a UE4 Plugin
-
Upload
camden-leblanc -
Category
Documents
-
view
192 -
download
0
description
Transcript of Building a UE4 Plugin
![Page 1: Building a UE4 Plugin](https://reader033.fdocuments.in/reader033/viewer/2022061516/5681315c550346895d97d2d7/html5/thumbnails/1.jpg)
Building a UE4 PluginFMOD STUDIO Case Study
![Page 2: Building a UE4 Plugin](https://reader033.fdocuments.in/reader033/viewer/2022061516/5681315c550346895d97d2d7/html5/thumbnails/2.jpg)
Its easy Reuse common components Marketplace $$$
Motivation – Why make a plugin?
![Page 3: Building a UE4 Plugin](https://reader033.fdocuments.in/reader033/viewer/2022061516/5681315c550346895d97d2d7/html5/thumbnails/3.jpg)
FMOD Studio
![Page 4: Building a UE4 Plugin](https://reader033.fdocuments.in/reader033/viewer/2022061516/5681315c550346895d97d2d7/html5/thumbnails/4.jpg)
FMOD Studio
![Page 5: Building a UE4 Plugin](https://reader033.fdocuments.in/reader033/viewer/2022061516/5681315c550346895d97d2d7/html5/thumbnails/5.jpg)
FMOD Studio
![Page 6: Building a UE4 Plugin](https://reader033.fdocuments.in/reader033/viewer/2022061516/5681315c550346895d97d2d7/html5/thumbnails/6.jpg)
Industry leading audio middleware Easy and powerful authoring tools Free for indies ($100K or less)
FMOD Studio
![Page 7: Building a UE4 Plugin](https://reader033.fdocuments.in/reader033/viewer/2022061516/5681315c550346895d97d2d7/html5/thumbnails/7.jpg)
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
![Page 8: Building a UE4 Plugin](https://reader033.fdocuments.in/reader033/viewer/2022061516/5681315c550346895d97d2d7/html5/thumbnails/8.jpg)
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
![Page 9: Building a UE4 Plugin](https://reader033.fdocuments.in/reader033/viewer/2022061516/5681315c550346895d97d2d7/html5/thumbnails/9.jpg)
Plugin Basics
![Page 10: Building a UE4 Plugin](https://reader033.fdocuments.in/reader033/viewer/2022061516/5681315c550346895d97d2d7/html5/thumbnails/10.jpg)
Plugin Basics
![Page 11: Building a UE4 Plugin](https://reader033.fdocuments.in/reader033/viewer/2022061516/5681315c550346895d97d2d7/html5/thumbnails/11.jpg)
Plugin Basics
![Page 12: Building a UE4 Plugin](https://reader033.fdocuments.in/reader033/viewer/2022061516/5681315c550346895d97d2d7/html5/thumbnails/12.jpg)
Plugin Basics
![Page 13: Building a UE4 Plugin](https://reader033.fdocuments.in/reader033/viewer/2022061516/5681315c550346895d97d2d7/html5/thumbnails/13.jpg)
Module Class
• Macro to register module• Virtual functions when module loaded/unloaded
![Page 14: Building a UE4 Plugin](https://reader033.fdocuments.in/reader033/viewer/2022061516/5681315c550346895d97d2d7/html5/thumbnails/14.jpg)
Basic Asset Class
![Page 15: Building a UE4 Plugin](https://reader033.fdocuments.in/reader033/viewer/2022061516/5681315c550346895d97d2d7/html5/thumbnails/15.jpg)
Settings Class
![Page 16: Building a UE4 Plugin](https://reader033.fdocuments.in/reader033/viewer/2022061516/5681315c550346895d97d2d7/html5/thumbnails/16.jpg)
Settings Class
![Page 17: Building a UE4 Plugin](https://reader033.fdocuments.in/reader033/viewer/2022061516/5681315c550346895d97d2d7/html5/thumbnails/17.jpg)
Blueprints
![Page 18: Building a UE4 Plugin](https://reader033.fdocuments.in/reader033/viewer/2022061516/5681315c550346895d97d2d7/html5/thumbnails/18.jpg)
Blueprints
![Page 19: Building a UE4 Plugin](https://reader033.fdocuments.in/reader033/viewer/2022061516/5681315c550346895d97d2d7/html5/thumbnails/19.jpg)
Sound Banks
.xml files .bank filesFMOD Studio
UE4.uasset files Cooked .pak
![Page 20: Building a UE4 Plugin](https://reader033.fdocuments.in/reader033/viewer/2022061516/5681315c550346895d97d2d7/html5/thumbnails/20.jpg)
Choices◦ Bank with uasset and GUID references◦ Dummy uassets on disk◦ Dummy uassets in memory◦ Explode bank into individual files and import
Sound Banks
![Page 21: Building a UE4 Plugin](https://reader033.fdocuments.in/reader033/viewer/2022061516/5681315c550346895d97d2d7/html5/thumbnails/21.jpg)
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
![Page 22: Building a UE4 Plugin](https://reader033.fdocuments.in/reader033/viewer/2022061516/5681315c550346895d97d2d7/html5/thumbnails/22.jpg)
Sound Banks
![Page 23: Building a UE4 Plugin](https://reader033.fdocuments.in/reader033/viewer/2022061516/5681315c550346895d97d2d7/html5/thumbnails/23.jpg)
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
![Page 24: Building a UE4 Plugin](https://reader033.fdocuments.in/reader033/viewer/2022061516/5681315c550346895d97d2d7/html5/thumbnails/24.jpg)
Win64 plugin outputs:◦ UE4Editor-FMODStudio.dll◦ UE4Editor-FMODStudioEditor.dll◦ UE4Game-FMODStudio-Static.lib
Name is expected to be:◦ FMODStudio-Static.lib
Deployment - names
![Page 25: Building a UE4 Plugin](https://reader033.fdocuments.in/reader033/viewer/2022061516/5681315c550346895d97d2d7/html5/thumbnails/25.jpg)
Plugin version number◦ Baked into DLL◦ Must match exactly
Defines◦ BUILT_FROM_CHANGELIST◦ MODULE_API_VERSION
Deployment - plugin version
![Page 26: Building a UE4 Plugin](https://reader033.fdocuments.in/reader033/viewer/2022061516/5681315c550346895d97d2d7/html5/thumbnails/26.jpg)
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
![Page 27: Building a UE4 Plugin](https://reader033.fdocuments.in/reader033/viewer/2022061516/5681315c550346895d97d2d7/html5/thumbnails/27.jpg)
Coming soon*!* Not sure what soon means
Marketplace plugin support
![Page 28: Building a UE4 Plugin](https://reader033.fdocuments.in/reader033/viewer/2022061516/5681315c550346895d97d2d7/html5/thumbnails/28.jpg)
FMOD Tutorial videos (YouTube FMODTV) FMOD Q/A (www.fmod.com/questions) FMOD Support ([email protected]) Questions?
Demo/Questions/Comments