UE4 マーケットプレイス用に自作Pluginのパッケージを作る
Marketplaceへの提出
今作成しているUnreal Engine用のデータ送受信プラグインObjectDeliverer
は一応Marketplaceへの提出を目指しているので一度パッケージ化してみました。
How to
UE4のプロジェクトのパッケージはEditor上からできるので、分かるのですがPluginは今までにパッケージ化したことはなく、どのようにすればいいのか不明でしたので検索してみました。
探してみるとドンピシャのページが見つかりましたので、基本この通りに行っていきます。
WhitelistPlatformsの記述
どのプラットフォーム向けのパッケージを作るのかを.upluginに記述する必要があるようです。 ObjectDelivererは現状Windowsでしか確認していないので、今回はWin64とWin32のみにしました。
{ "FileVersion": 3, "Version": 1, "VersionName": "1.0.0", "FriendlyName": "ObjectDeliverer", "Description": "ObjectDeliverer is a data transmission / reception library for Unreal Engine (C ++, Blueprint). ", "Category": "Programming", "CreatedBy": "ayumax", "CreatedByURL": "https://github.com/ayumax", "DocsURL": "", "MarketplaceURL": "", "SupportURL": "https://github.com/ayumax/ObjectDeliverer", "EnabledByDefault": false, "CanContainContent": false, "IsBetaVersion": false, "Installed": false, "Modules": [ { "Name": "ObjectDeliverer", "Type": "Runtime", "LoadingPhase": "Default", "WhitelistPlatforms": [ "Win64", "Win32" ] } ] }
ビルド用バッチファイルの作成
説明に従ってビルド用のバッチファイルを作成します。
以下の内容のファイルをbuildPlugin.bat
として保存しました。
上記説明ページに従って、Pluginの.uprojectがあるフォルダではなく、空のビルド用フォルダを別の場所に作成しそこにbuildPlugin.bat
を置きました。
"C:\Program Files\Epic Games\UE_4.21\Engine\Build\BatchFiles\RunUAT.bat" BuildPlugin -Plugin="C:\source\repos\ObjectDelivererTest\Plugins\ObjectDeliverer\ObjectDeliverer.uplugin" -Package="%CD%\PluginStaging_ALL\UE4_421" -Rocket
バッチファイルの実行
バッチファイルを置いたフォルダで、左のShiftキーを押しながら右クリックし、「PowerShellウィンドウをここに開く」を選択してPowerShellのコンソールを開き、.buildPlugin.bat
と入力して実行します。
エラーをつぶす
今まで開発中はずっとDebugGame Editorで起動して確認していたのでShippingではビルドしていませんでした。 おそらくそのせいで記述の甘かったところがたくさんありビルドエラーが多発しました。。。
おもにエラーとなったのはincludeを省略して書いていた箇所が大半でした。
たとえば#include "Common/TcpSocketBuilder.h"
と書かなければいけない所を#include "TcpSocketBuilder.h"
と書いていたりです。
ほとんどが上のパターンだったので、再度全C++ソースのincludeを確認して修整しました。
実行後
ビルド中にエラーがなければ、待っていると終了しバッチファイルの置いたフォルダにPluginStaging_ALL\UE4_421
フォルダが生成されPlugin一式ができていました。
まとめ
手順が書かれているページを参考にして自作pluginのパッケージの作成に成功しました。
あとはMarketplace提出用の説明分考えるので、地味にめんどそうなのが提出用の画像の用意ですね。 これは他のアプリストアでも同様ですが。。。
しっかり作って審査に落ちないようにしないと。