【UE5】シッピングとパッケージ化

開発版とシッピング版は何がどう違うのか?

これによるとコンソールコマンドが使えるか、使えないかの違いだけらしい。

ソリューション構成は開発版は、
Development Client
Development Editor
Development Server
とあるが、シッピングは、
Shipping
Shipping Client
Shipping Server
となっている。

Shipping Clientは何度かビルドしてきた。パッケージ化するにはこれをやるしかないんだろうと思い込んでいたせい。当然だが、これだとEditorは起動しない。Editorがなければコンソールコマンドも何もない。
それでも「コンソールコマンドが使えるか、使えないかの違いだけ」というのなら、じゃあデバッカが使えるのか?とやってみたら、ちゃんとブレークポイントで止まってびっくり。普通のVC++のReleaseビルドとは違うんだ。コードが最適化されていないのか?VS2022のプロジェクト構成マネージャーを見てもよく分からないが、Unreal EngineのUnrealBuildToolで設定することになるみたいだ。

素の状態だとデバッグできちゃうわけだが、パフォーマンス的にどうなんだかな。しかし、そう思うなら自分で細かく設定しろってことなんだろう。ちゃんとこうして資料が提示されているわけだし。

ところで長い間、納得いかなかったものが簡潔に述べてあった。

Unreal Build Tool (UBT) では以下のターゲット タイプのビルドがサポートされています。
Game:実行にクック済みデータを必要とするスタンドアローン ゲーム。
Client:Game と同じですが、サーバー コードは含まれません。ネットワーク ゲームに適しています。
Server:Game と同じですが、クライアント コードは含まれません。ネットワーク ゲームの専用サーバーに適しています。
Editor:Unreal Editor を拡張するターゲット。
Program:Unreal Engine 上にビルドされたスタンドアローン ユーティリティ プログラム。

Editor:Unreal Editor を拡張するターゲット。」だったわけね。途中でUnreal Editorのプロパティに自分で書いたものが付け加えられていたりしたから、Unreal Editorごと自分のプロジェクトに合ったものにするためのビルドなんだろうなとは漠然と思っていたが、ちゃんとこうして明記されたものは初めて見た気がする。←訂正。初めてではなかった。【UE5】UBTターゲットと例外処理【VS2022】で読んでいた。
マジで最初はDevelopment Editorが意味不明だった。Unreal Editor.exeはちゃんとあるのに、どうしてわざわざそれをビルドしろってなるのか?って、ずっともやもやしながらUnreal Editorを使っていた。

だいぶ話が逸れたが、今度はただのShippingでビルドして起動してみると、エラーが出た。

Game files required to initialize the global shader library are missing from:/Unreal Projects/XXXXX/Content/
Please make sure the game is installed correctly.

よく分からないが、そもそもShippingでEditorを動かす意味がない。まあ、だからこそ、
Shipping
Shipping Client
Shipping Server
となっているのかもしれない。

パッケージ化については以下。

データの暗号化などもできるらしいが、「ロード時間を最適化する」と「Event Driven Loader (EDL) と Asynchronous Loading Thread (ALT) を使用する」が割と重要になってくる。上のリンクは5.3のドキュメントのはずだが、情報が古いままになっていて、現在はEDLの無効化は非推奨とされていた。項目自体は残っている。

この記事が気に入ったらサポートをしてみませんか?