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

Unreal Engineは 特定の条件 の下でソースコードを公開しているため、ソースコードからUnreal Engineをビルドできます。
当然のことながらリリースされていないUnreal Engineを利用することは、十分なテストが行われていない不安定なものを利用することになります。
場合によっては、予期しない問題に直面することも少なくありません。
しかしデメリットを理解したうえで、リリースされていないUnreal Engineを利用することにはメリットもあります。
たとえば、リリースされていない機能が利用できたり、致命的なバグ修正のパッチを早期に取り込めます。

本章ではソースコードからUnreal Engineをビルドする方法を説明し、ビルドしたUnreal Engineを利用する方法について説明します。
またUnreal Engineをデバッグビルドする方法を説明し、Unreal Engine自体をデバッグする方法も説明します。

前提条件

Unreal Engineのビルド方法は、ビルドする環境によって手順が異なります。
本記事では、次に示す環境を想定してUnreal Engineのビルド方法を説明します。

Unreal Engineのビルド方法

Unreal Engineをビルドするためには、次の手順に従います。

  1. Unreal Engineのソースコードの取得
  2. 依存ファイルのダウンロード
  3. Unreal EngineをビルドするためのVisual Studioのプロジェクトファイルを作成
  4. ビルド設定
  5. ビルド
  6. 実行

ここからは各手順について説明してきます。

1. Unrael Engineのソースコードの取得

GitHubからUnreal Engineのソースコードを取得します。
ソースコードの取得には、事前にUnreal Engineのソースコードへアクセスする権限が必要です。
ドキュメント を参照し、アクセス権限を事前に得ておきましょう。

git clone https://github.com/EpicGames/UnrealEngine.git
cd UnrealEngine

ビルドしたいソースコードに切り替えます。
Unreal Engineがリリースされたバージョンごとにタグが作成されているため、ビルドしたいバージョンに対応したタグを指定してください。
バージョン5.0.0のUnreal Engineをビルドする場合は、次のコマンドを実行します。

git checkout 5.0.0-release

最新のソースコードに切り替える場合は、次のコマンドを実行します。

git checkout ue5-main

注意点

Unreal Engineのソースコードを階層の深いディレクトリに配置すると、ビルド時にWindowsの絶対パスのパス長の制限(256文字)を超えてしまい、ビルドできない場合があります。
可能な限り、絶対パスのパス長が短くなるディレクトリでソースコードを取得するようにしましょう。

特に、ビルド時に作成される中間ファイルとなる .suppressed.exp 関連のファイルのパス長が長くなる傾向があり、パス長の制限を超えているとファイルが開けずにエラーとなる可能性が高いです。 たとえば UnrealEditor-VisualStudioCodeSourceCodeAccess.lib.response は、ソースコードが配置されたディレクトリからの相対パスでも200文字を占めており、絶対パスのパス長の制限まで56文字分しか余裕がありません。

/Engine/Plugins/Developer/VisualStudioCodeSourceCodeAccess/Intermediate/Build/Win64/UnrealEditor/Development/VisualStudioCodeSourceCodeAccess/UnrealEditor-VisualStudioCodeSourceCodeAccess.lib.response

2. 依存ファイルのダウンロード

取得したソースコードは、ディレクトリ UnrealEngine に配置されます。
ディレクトリ UnrealEngine には、Unreal Engineをビルドするために必要な依存ファイルをダウンロードするbatファイル Setup.bat が配置されています。
Setup.bat をダブルクリックし、依存ファイルをダウンロードします。

3. Unreal EngineをビルドするためのVisual Studioのプロジェクトファイルを作成

Unreal EngineのビルドにはVisual Studioを利用します。
ディレクトリ UnrealEngine には、Unreal EngineをビルドするためのVisual Studioのプロジェクトファイルを作成するbatファイル GenerateProjectFiles.bat 配置されています。
GenerateProjectFiles.bat をダブルクリックし、Visual Studioのプロジェクトファイルを作成します。
実行完了後、ディレクトリ UnrealEngine にはVisual Studioのプロジェクトファイル UE5.sln が生成されています。

4. ビルド設定

生成されたVisual Studioのプロジェクトファイル UE5.sln をダブルクリックし、Visual Studioを起動します。
Visual Studioが起動したら、次を実行してビルドに関する設定を行います。

  • [Solution Explorer] からプロジェクト [UE5] を探し、右クリックして表示されたメニューから [Set as StartUp Project] を実行してスタートアッププロジェクトに設定
  • 画面上部の [Solution Configuration] を [Development Editor] へ変更
  • 画面上部の [Solution Platform] を [Win64] へ変更

ビルド設定

5. ビルド

メニューから [Build] > [Build Solution] を実行し、Unreal Engine 5をビルドします。

6. 実行

ビルドが完了したらUnreal Engineを実行します。
実行方法は2通りあります。

  • メニューから [Debug] > [Start Without Debugging] を実行
  • ソースディレクトリを起点としたパス /Engine/Binaries/Win64 にある、実行ファイル UnraelEditor.exe から起動

Unreal Engineのデバッグ方法

ここではUnreal Engineをデバッグビルドし、実際にデバッグする方法について説明します。

1. 事前準備

Unreal Engineのビルド方法を参考に、Unreal Engineのビルドを行ってください。
ビルド設定などは、変更する必要はありません。

2. デバッグ実行

Unreal Engineをデバッグ実行します。
Visual StudioのメニューからビルドしたUnreal Engineを実行できますが、デバッガにアタッチされたプロセスが終了してプロジェクトを開く時に異なるプロセスが立ち上がるため、このままではデバッグできません。
そこで事前にUnreal Engineを起動しておき、次の手順でデバッグ対象のプロセスをアタッチします。

  1. ソースディレクトリを起点としたパス /Engine/Binaries/Win64 にある、実行ファイル UnraelEditor.exe から起動する
  2. Unreal Engineのプロジェクトを開く
  3. Visual Studioのメニューから [Debug] > [Attach to Process…] を実行する
  4. Unreal Engineのプロジェクトを開いたときに立ち上がったプロセス UnrealEditor.exe を選択する

プロセスのアタッチ

3. ブレークポイントを設定

この段階でデバッグ実行する環境が整ったため、ブループリントから Print String ノードに対応するライブラリ関数 UKismetSystemLibrary::PrintString にブレークポイントを設定してみましょう。
ライブラリ関数 UKismetSystemLibrary::PrintString のソースファイルは、ソースディレクトリを起点としたパス /Engine/Source/Runtime/Engine/Private/KismetSystemLibrary.cpp に配置されています。
Visual Studioでソースファイルを開き、ライブラリ関数の定義 UKismetSystemLibrary::PrintString を探し、最初の行にブレークポイントを追加します。

ビルド設定

エディタ上で新たにActorを作成し、Event Tick の先に Print String ノードを接続します。

Actorの実装

作成したActorをコンパイルし、レベル上に配置します。
[Play this level in the active leel editor viewport] をクリックしてゲームプレイを開始すると PrintString ノードが実行されて、設定したブレークポイントでプログラムが止まります。
このあとは通常のデバッグと同じように、ステップ実行したりスタックトレースを調べたりすることができます。

ブレークポイントでのプログラム停止

参考情報