先日ですが、UE4関連のゲームジャムイベントを開催しました。
イベント自体は大盛上がりで、とてもやって良かったなと思えるモノでした。また次回もやりたい。
さて、ゲームジャム終盤にパッケージングしてもらって動かせるようにしてもらっていたのですが、膨大なサイズのアセットを使用しており、パッケージング自体に時間がかかるチームがいたため、パッケージサイズを最適化してもらいました。
今回はその方法と注意点を解説しておきます。なおUE4.9.2時点での情報です。
まずはレベルの"移行"
最初にゲーム中に使用している全てのレベルを選択します。
この時にコンテンツのトップフォルダーから、"フィルタ"を使って"レベル"を指定すれば全てのレベルファイルを一覧化出来るので、それを使用します。必要なレベルをCtrlクリック等で複数選択してください。
そのまま右クリックして、"アセットアクション"→"移行"を選択します。
この後に必要なアセット一覧が表示されるので、そのまま"OK"してからファイルを適当な場所に保存しておいてください。
GameModeなどのブループリントが移行されない問題
プロジェクト設定からGameModeやプレイヤーなどのブループリントを指定している場合にそのブループリントが一緒に移行されない場合があります。この場合には2つやり方があります。
1つ目は手動でそれらのブループリントをコピーしておいて、移行したアセットと同じように配置しておく方法です。ただし、この方法では配置ミスなどが起きる可能性があります。
2つ目はGameModeなどをレベルで指定しておく方法です。ツールバーから"設定"→"ワールド設定"を開きます。
そうすると右下の方に普段は"詳細"パネルが表示されている部分に"ワールドセッティング"パネルが表示されるようになります。
ここで"GameMode Override"を選択し、既存のGameModeを割り当てておきます。そうする事でDefault Pawn Classで指定するプレイヤーのブループリント等もレベル移行時に一緒に移行されるようになります。
この他にも移行されていないブループリントがある可能性があります。その際には移行時に重要なブループリントが漏れていないかを確認してください。
移行したフォルダーと元のフォルダーのバックアップ
移行しようとしているプロジェクトのUE4エディターを一旦落としておきます。あとは移行したフォルダー全体の名前を"Content"に変更して元々あった"Content"フォルダーの名前をバックアップ用に変更しておきます。
あとはプロジェクトのフォルダー内で同じ階層に配置しておきます。これでプロジェクトを実際に開いてみて、特に何事もなければ無事プロジェクトのアセットが最低限のものだけになっていると思います。
パッケージング
あとは実際にパッケージングしてみるだけです。
必要なものだけになっているはずなので、パッケージサイズが縮小されているはずです。ただし、この方法は非公式のものであり、推奨されるわけではありません。
本来は実際にパッケージングする際にアンリアルフロントエンドと呼ばれるツールを使い、細かい部分もカスタマイズ出来るようになっていますが、ドキュメントの情報も少なく、プロフェッショナル向けになっています。
Unreal Frontend | Unreal Engine
こちらの正式な使い方も分かり次第解説していきたいなと思います。