【Unreal Engine】UE5のパッケージ化入門:作ったゲームをexeにして人に渡す

作成: 2026-07-20

UE5のPackage Projectの手順を図解。Game Default Mapの設定漏れで真っ暗になる定番、DevelopmentとShippingの違い、出力フォルダの中身、そして参照していないアセットが入らない問題まで。

エディタのPlayボタンでは問題なく遊べるゲームができました。友達に見せたいので、そのままプロジェクトフォルダを圧縮して渡す。ところが相手はUnreal Engineを持っていないので開けません。

人に渡す形にする作業を パッケージ化(Packaging) と呼びます。UE5には専用のメニューが用意されていて、押すだけで .exe が出来上がります。ただし初回は、起動しても真っ暗な画面が出るか、そもそもビルドが途中で止まるかのどちらかになりがちです。この記事では、パッケージ化の手順と、初めての人がほぼ確実に踏む3つの落とし穴の直し方を解説します。

プロジェクトフォルダがexeを含む配布フォルダに変わる様子と、ソフトブルーのクレイ人形

この記事でわかること

  • パッケージ化が実際にやっていること(Cook と Package)
  • 起動して真っ暗になる原因は Game Default Map の設定漏れ
  • DevelopmentShipping の違いと、使う順番
  • 出力されたフォルダの中身と、人に渡すときに何を渡すか
  • 参照していないアセットは入らない という仕様と回避策
  • 実践: テンプレートを起動できるexeにするまでを通しで

Sponsored

パッケージ化がやっていること

メニューを押してから .exe が出るまでに、UEは大きく2つの作業をしています。

段階呼び名内容
1Cook(クック).uasset を、実行する環境で直接読める形式へ変換する
2Package(パッケージ)変換したデータと実行ファイルを、1つのフォルダにまとめる
uassetがCookで変換されPakにまとめられ、exeと同じフォルダに出力されるまでの流れ図

エディタで扱っている .uasset は、編集のための情報を大量に持っています。そのままでは実行時に重いので、必要な形へ焼き直す作業がCookです。 初回のパッケージ化に何十分もかかるのは、ほぼこのCookの時間 です。2回目以降は変換済みのデータが再利用されるため、大幅に短くなります。

ここで重要なのが、 Cookの対象は「起動レベルから参照をたどって到達できたアセット」だけ という点です。フォルダに置いてあるだけのアセットは、原則としてパッケージに含まれません。この仕様が後述する落とし穴につながります。

Sponsored

先に済ませる3つの設定

パッケージ化を押す前に、必ず確認しておく設定が3つあります。

1. Game Default Map(これが最大の落とし穴)

Edit > Project Settings > Project > Maps & Modes を開きます。

項目意味
Editor Startup Mapエディタを開いたときに読み込むレベル
Game Default Mapパッケージ化したゲームが起動時に開くレベル
Game Default Mapが未設定だと起動時に何もない空間に落ちる様子と、設定済みでタイトルが表示される様子の対比図

エディタでは常に自分でレベルを開いているため、この項目を触る機会がありません。そのまま出荷すると、起動したexeは既定の空レベルを開きます。 床も光もプレイヤーもない空間 が表示されるので、画面は真っ暗になります。

ここに、タイトル画面なり最初のステージなりのレベルを指定してください。 「exeを起動したら真っ暗」の原因は、ほぼこれです。

2. ビルドツール(Visual Studio)

C++コードを含むプロジェクトや、C++を含むプラグインを入れている場合、パッケージ化にはコンパイラが要ります。Windowsでは Visual Studio をインストールし、インストーラーで次を選びます。

  • C++によるゲーム開発(Game development with C++)ワークロード
  • Windows 10/11 SDK

これが無いと、パッケージ化の途中で Missing required SDK や、コンパイル関連のエラーで停止します。Blueprintだけのプロジェクトなら不要なこともありますが、プラグインを1つ入れた瞬間に必要になるため、先に入れておくほうが結局早く済みます。

3. Packagingの設定を覗いておく

Project Settings > Project > Packaging に、出力内容を決める項目が並んでいます。最初に見ておくべきものだけ挙げます。

項目既定意味
Use Pak Fileオンアセットを1つの .pak にまとめる。オフにすると個別ファイルが大量に並ぶ
Full Rebuildオフオンにすると毎回すべて作り直す。時間がかかる代わりに古い残骸が消える
Cook everything in the project content directoryオフオンにすると、参照されていないアセットも全部含める
Additional Asset Directories to Cook特定のフォルダだけ強制的に含めたいときに指定する

3つ目の項目が、先ほど触れた「参照をたどれないアセットは入らない」問題への直接の対処です。ただし 全部入りにすると容量も時間も膨らむ ので、原因の分かっている一部フォルダだけを Additional Asset Directories to Cook に足すほうが健全です。

補足: 特に消えやすいのは、Blueprintから Spawn Actor from Class などで名前指定・変数指定で呼び出しているアセットです。エディタでは動くのに、パッケージ版では何も出てこない場合はここを疑ってください。アセットの参照関係の見方はアセット管理の記事で扱っています。

Sponsored

DevelopmentとShippingの違い

パッケージ化のときに選ぶ Build Configuration は、同じゲームを「どんな性格の実行ファイルにするか」の指定です。個人開発で使うのは実質2つです。

設定速度・容量ログコンソール(~キー)用途
Developmentやや遅い・大きい出る使える動作確認・テスト配布
Shipping最速・最小出ない使えない公開・最終配布
DevelopmentとShippingの画面を並べ、片方にはログとコンソールが表示され、もう片方には何も出ないことを示した対比図

Shippingでは、デバッグ用の仕組みがコンパイル時点で取り除かれます。 Print String の表示も、Line Traceの Draw Debug Type で描いていた線も出ません。速く小さくなる代わりに、 不具合が起きたときの手がかりが何も残らない ということです。

そのため順番が決まっています。 まずDevelopmentでパッケージして起動確認し、問題が無くなってからShippingで作り直す。 いきなりShippingで作ると、真っ暗な画面を前に何も情報が得られない状態になります。

選ぶ場所は、パッケージ化のメニューと同じ Platforms > Windows > Build Configuration です。ここで選んだ設定が、次のPackage Projectに適用されます。


出力されたフォルダの中身

パッケージ化が終わると、指定した出力先に Windows フォルダができます。中身はこうなっています。

Windowsフォルダの中にexeとEngineフォルダとプロジェクト名フォルダが並び、Pakファイルの位置を示したツリー図
Windows/
├─ MyGame.exe          ← 起動するのはこれ
├─ Engine/             ← エンジン側の実行時ファイル
└─ MyGame/
   ├─ Binaries/        ← 実際の本体(DLL等)
   └─ Content/
      └─ Paks/         ← Cookしたアセットが入った .pak

MyGame.exe は、実質的にランチャーです。 単体で取り出しても動きません。 Engine フォルダと MyGame フォルダが同じ階層に揃っていて初めて起動します。

したがって 人に渡すときは Windows フォルダごとZIPにします。 相手はそれを展開して、中の .exe をダブルクリックするだけです。「exeだけ送ったら起動しないと言われた」は、この構造を知らないと必ず一度は起こります。

Sponsored

実践:テンプレートを渡せるexeにする

アクションでもパズルでもホラーでも、公開の直前に必ず通る道です。Third Personテンプレートを題材に、 エディタで動くプロジェクトが、別のPCで起動するZIPになるまで を通しでやります。

完成形

ZIPを展開して .exe をダブルクリックすると、Unreal Engineの入っていないPCでもキャラクターを操作できる状態になります。

プロジェクトフォルダからパッケージ化を経てZIPになり、別PCで起動するまでの4ステップを示した図

再現条件

新規プロジェクトを次の構成で作ります。

項目
テンプレートThird Person
Project TypeBlueprint
Target PlatformDesktop
Starter Content含めない(容量を抑えるため)
プロジェクト名PackTest

保存先は、 日本語やスペースを含まないパス にしてください(例: D:\UE\PackTest )。パスに日本語が入っていると、Cookの途中で失敗することがあります。

手順1:Game Default Mapを設定する

Edit > Project Settings > Project > Maps & Modes を開き、次の2つを設定します。

項目設定する値
Editor Startup MapThirdPersonMap
Game Default MapThirdPersonMap

Third Personテンプレートでは既に入っていることが多いですが、 空欄になっていないかを必ず自分の目で確認してください。 ここを飛ばすと手順3で真っ暗な画面に出会います。

手順2:Developmentでパッケージする

  1. ツールバーの Platforms をクリックする
  2. Windows > Build Configuration > Development を選ぶ
  3. もう一度 Platforms を開き、 Windows > Package Project をクリックする
  4. 出力先フォルダを選ぶ(例: D:\UE\Build

エディタ右下に進捗が出ます。 初回は5〜20分程度 かかります(PCの性能とプロジェクト規模による)。完了すると右下に緑の通知が出ます。

失敗した場合は、通知の Show Output Log から詳細が見られます。 error の文字を含む行を上から探してください。

手順3:起動して確認する

出力先の Windows フォルダを開き、 PackTest.exe をダブルクリックします。

フルスクリーンでThird Personのレベルが開き、WASDでキャラクターが動き、スペースでジャンプできれば成功です。 終了は Alt + F4 です。

  • 真っ暗な画面のまま何も出ない → Game Default Mapが未設定(手順1へ戻る)
  • 一瞬ウィンドウが出て即座に閉じる%LOCALAPPDATA%\PackTest\Saved\Logs\ のログを確認する
  • そもそもパッケージ化が完了しない → Output Logのerror行を確認。SDK関連ならVisual Studioの構成を見直す
  • 音や一部のオブジェクトだけ出ない → 参照されていないアセットが落ちている(Additional Asset Directories to Cook へ追加)

ここで わざとGame Default Mapを空にして、もう一度パッケージしてみる と理解が早まります。同じプロジェクトが、設定1つで起動不能に見える状態になります。

手順4:Shippingで作り直してZIPにする

Developmentで問題が無ければ、 Platforms > Windows > Build Configuration > Shipping に切り替えて、もう一度 Package Project を実行します。出力先は別のフォルダにしてください。

出来上がった Windows フォルダを右クリックし、そのままZIPに圧縮します。これが配布物です。Developmentの版と比べると、 容量が数十MB単位で小さくなっている はずです。

ポイントは2つです。

  • 確認はDevelopment、配布はShipping: ログが出る版で先に通してから、最終版を作ります。逆順にすると、起きた不具合の原因を調べる手段がありません
  • 渡すのはフォルダごと: .exe は単独では動きません。 Engine フォルダと同階層に置かれた状態を崩さずZIPにします

アセットが入らない問題の根本的な予防は、参照関係を整理しておくことです。アセット管理の記事へ続きます。

Sponsored

パッケージ後にしか出ない不具合

「エディタでは動くのに、exeだと動かない」は珍しくありません。エディタとパッケージ版では、環境が違うからです。

症状よくある原因
特定のアセットだけ出てこない参照をたどれず、Cookされていない
起動直後に落ちるGame Default Mapが壊れている、または存在しないレベルを指している
動作が明らかに重いエディタのPlayでは効いていた設定が違う。まずStatコマンドで計測する
デバッグ表示が出ないShippingでは正常な挙動。Developmentで確認する
日本語が文字化け・表示されないフォントアセットに該当文字が含まれていない

調べる入口は ログ です。パッケージ版のログは、プロジェクトフォルダではなく次の場所に出ます。

%LOCALAPPDATA%\<プロジェクト名>\Saved\Logs\<プロジェクト名>.log

エクスプローラーのアドレス欄に %LOCALAPPDATA% と入力すれば開けます。Developmentでパッケージしていれば、 Print StringUE_LOG の内容もここに残ります。ログの読み方はPrint Stringの記事で扱っています。

おまけ:先に知っておくと良いこと

  • ゲーム名とアイコンは別の場所で変える: ウィンドウタイトルは Project Settings > Project > DescriptionProject Displayed Title 、アイコンは Platforms > WindowsGame Icon.ico を指定します。プロジェクト名をそのまま出すと、開発中の仮名が公開されてしまいます
  • 出力先はプロジェクトフォルダの外に: プロジェクト内に出力すると、次のCookでその出力自体を含めようとして肥大化します
  • 2回目以降は速い: 初回だけCookの全量が走ります。「毎回20分かかる」と身構える必要はありません
  • 配布前にテストを走らせる: 自動テストを書いてあるなら、パッケージ前に一度走らせておくと「配布してから気づく」を減らせます(→ UEの自動テスト入門
  • エンジンを上げたら、もう一度パッケージを通す: バージョンを上げた直後は、エディタで動いてもパッケージで初めて出る不具合があります。上げる手順そのものは バージョンアップの手順 を参照してください
  • Full Rebuildは詰まったときの手段: 古い残骸が原因で失敗しているときは、Full Rebuild をオンにすると通ることがあります。ただし所要時間は初回並みに戻ります
  • 配布先で必要な設定が増える: itch.ioやBOOTHはZIPをそのまま置けますが、Steamは専用のプラグインとアプリID設定が別途必要になります。まずはZIP配布から始めるのが確実です。Steamのオンライン機能まで使う場合の下準備は オンラインマルチプレイとセッション にまとめています

まとめ

  • パッケージ化は Cook(変換)+ Package(まとめ) 。初回が長いのはCookのため
  • Game Default Map の設定漏れが「起動したら真っ暗」の最大原因
  • C++やC++プラグインを使うなら Visual Studioの「C++によるゲーム開発」 が要る
  • Developmentで確認し、Shippingで配布する 。Shippingはログもコンソールも出ない
  • 渡すのは Windows フォルダごとZIP.exe 単体では起動しない
  • 参照をたどれないアセットはパッケージに入らない 。消えたら Additional Asset Directories to Cook を疑う

いま作っているプロジェクトの Game Default Map は、何を指しているでしょうか。エディタを開いて確認するところから始めてみてください。