読者です 読者をやめる 読者になる 読者になる

Let's Enjoy Unreal Engine

Unreal Engineを使って遊んでみましょう

UE4 一番お手軽にパッケージング時のサイズを最適化する方法

先日ですが、UE4関連のゲームジャムイベントを開催しました。

atnd.org

イベント自体は大盛上がりで、とてもやって良かったなと思えるモノでした。また次回もやりたい。

さて、ゲームジャム終盤にパッケージングしてもらって動かせるようにしてもらっていたのですが、膨大なサイズのアセットを使用しており、パッケージング自体に時間がかかるチームがいたため、パッケージサイズを最適化してもらいました。

今回はその方法と注意点を解説しておきます。なおUE4.9.2時点での情報です。

まずはレベルの"移行"

最初にゲーム中に使用している全てのレベルを選択します。

f:id:alwei:20151013101852j:plain

この時にコンテンツのトップフォルダーから、"フィルタ"を使って"レベル"を指定すれば全てのレベルファイルを一覧化出来るので、それを使用します。必要なレベルをCtrlクリック等で複数選択してください。

f:id:alwei:20151013102046j:plain

そのまま右クリックして、"アセットアクション"→"移行"を選択します。

この後に必要なアセット一覧が表示されるので、そのまま"OK"してからファイルを適当な場所に保存しておいてください。

GameModeなどのブループリントが移行されない問題

プロジェクト設定からGameModeやプレイヤーなどのブループリントを指定している場合にそのブループリントが一緒に移行されない場合があります。この場合には2つやり方があります。

1つ目は手動でそれらのブループリントをコピーしておいて、移行したアセットと同じように配置しておく方法です。ただし、この方法では配置ミスなどが起きる可能性があります。

2つ目はGameModeなどをレベルで指定しておく方法です。ツールバーから"設定"→"ワールド設定"を開きます。

f:id:alwei:20151013102943j:plain

そうすると右下の方に普段は"詳細"パネルが表示されている部分に"ワールドセッティング"パネルが表示されるようになります。

f:id:alwei:20151013103140j:plain

ここで"GameMode Override"を選択し、既存のGameModeを割り当てておきます。そうする事でDefault Pawn Classで指定するプレイヤーのブループリント等もレベル移行時に一緒に移行されるようになります。

この他にも移行されていないブループリントがある可能性があります。その際には移行時に重要なブループリントが漏れていないかを確認してください。

移行したフォルダーと元のフォルダーのバックアップ

移行しようとしているプロジェクトのUE4エディターを一旦落としておきます。あとは移行したフォルダー全体の名前を"Content"に変更して元々あった"Content"フォルダーの名前をバックアップ用に変更しておきます。

f:id:alwei:20151013105648j:plain

あとはプロジェクトのフォルダー内で同じ階層に配置しておきます。これでプロジェクトを実際に開いてみて、特に何事もなければ無事プロジェクトのアセットが最低限のものだけになっていると思います。

パッケージング

あとは実際にパッケージングしてみるだけです。

unrealengine.hatenablog.com

必要なものだけになっているはずなので、パッケージサイズが縮小されているはずです。ただし、この方法は非公式のものであり、推奨されるわけではありません。

本来は実際にパッケージングする際にアンリアルフロントエンドと呼ばれるツールを使い、細かい部分もカスタマイズ出来るようになっていますが、ドキュメントの情報も少なく、プロフェッショナル向けになっています。

Unreal Frontend | Unreal Engine

こちらの正式な使い方も分かり次第解説していきたいなと思います。