アンリアる! C++入門編 ~対話形式で学ぶUnreal Engine~
BOOTHでUnreal Engine C++入門書を販売していますUnreal Engine上でC++を使って開発するために必要となる基礎知識を一冊の本にまとめた本です。 対話形式によるわかりやすい説明を目指しました。無料の試し読みも可能ですので、ぜひ読んでみてください!
[UE5] パッケージ化したプロジェクトをデバッグする

Unreal Engineのプロジェクトをパッケージ化すると、対象のプラットフォームで作成したアプリケーションを実行できるようになります。
プロジェクトのパッケージ化は、対象のプラットフォームに向けた最適化処理やデータ形式の変換が行われます。
このためエディタ上では問題なく動作していたプロジェクトが、パッケージ化すると正しく動作しないということも起こり得ます。
エディタ上でデバッグする方法は、C++のプロジェクトを作成して「DebugGame Editor」を選択するだけでデバッグできました。
しかし、パッケージ化されたプロジェクトはこの方法ではうまくいきません。

そこで本記事では、パッケージ化したプロジェクトをVisual C++を利用してパッケージ化したプロジェクトをデバッグする方法を説明します。

前提条件

Unreal Engineのバージョン 5.1
エディタを実行するOS Windows
パッケージ対象プラットフォーム Windows

手順

C++のプロジェクトを作成する

Unreal Engineプロジェクトファイル(.uproject ファイル)を右クリックし、[Generate Visual Studio project files] を実行します。
Visual C++ソリューションファイル(.sln ファイル)を開き、プロジェクトをビルドします。
このとき、ソリューションの構成は [DebugGame Editor] を選択してください。

C++のプロジェクト作成方法の詳細については、次の記事も参考にしてください。

[UE5] C++の導入方法
本記事では、Unreal EngineでC++を導入する方法と、C++ヘッダファイル・ソースファイル(C++クラス)を追加する方法を説明します。

プロジェクトのパッケージ化設定を行う

Unreal Engineプロジェクトファイルを開きます。
画面上部の [Platforms] をクリックし、表示されたメニューから [Windows] に移動します。
さらに表示されたメニューの [BINARY CONFIGURATION] から、[DebugGame] を選択します。

プロジェクトのパッケージ化設定

プロジェクトをパッケージ化する

画面上部の [Platforms] をクリックし、表示されたメニューから [Windows] に移動します。
さらに表示されたメニューの [CONTENT MANAGEMENT] から、[Package Project] を実行します。

プロジェクトのパッケージ化

ビルド後の生成ファイルを保存する場所を指定するウィンドウが開くため、場所を指定するとプロジェクトのパッケージ化がはじまります。
プロジェクトのパッケージ化に成功すると、生成ファイルを保存する場所を起点とした場合は実行ファイル Windows/DebugPackagedProject/Binaries/Win64/<プロジェクト名>-Win64-DebugGame.exe が生成されます。

ビルドに失敗した場合は [Output Log] にエラーメッセージが表示されるため、確認してエラーを修正してください。

パッケージ化後に作成された実行ファイルを実行する

プロジェクトのパッケージ化で生成された実行ファイルを実行すると、アプリケーションが起動します。

アプリケーションのプロセスにアタッチする

起動したアプリケーションのプロセスにアタッチします。
Visual C++ソリューションファイルを開き、[デバッグ] > [プロセスにアタッチ] を実行します。

プロセスにアタッチ 手順1

ウィンドウが立ち上がるため、アタッチ先のプロセス名を選んでアタッチします。
アタッチ先のプロセス名は、実行ファイルの名前と同じです。

プロセスにアタッチ 手順2

デバッグする

プロセスをアタッチすると、Visual C++上でデバッグできるようになります。
ブレークポイントを使ったデバッグなどの通常のデバッグができるようになるため、気になる部分をデバッグしていきましょう。

デバッグ

まとめ

本記事では、パッケージ化されたプロジェクトをビルドする方法について説明しました。
同じ実装であってもパッケージ化前とパッケージ化後の動作が異なるケースはよくあります。
特にC++を使って実装している場合は、パッケージ化後のアプリケーションで正しく動作しない場合が少なくなく、デバッグが困難という厄介な問題もあります。
本記事によって、パッケージ化後のアプリケーションのデバッグ効率化に役立てれば幸いです。