Unreal Engine (UE) では UnrealBuildTool (UBT) を用いたカスタムビルド手法を使用します。UnrealBuildTool は、プロジェクトのコンパイルとこれらをエンジンとリンクさせる複雑な部分を全て処理します。標準の Visual Studio のビルド ワークフローを使用してプロジェクトのビルドを行うことができる透過的なプロセスです。
UnrealBuildTool はゲームプロジェクトのビルドに *.build.cs
ファイルと *.target.cs
ファイルを使用します。これらのファイルは、プロジェクトが C++ テンプレートを使用して作成された、または CPP クラス ウィザード を使用して、Blueprints Only テンプレートから作成されたプロジェクトにコードを追加する場合に自動的に生成されます。
ビルド コンフィギュレーション
Unreal プロジェクトは複数のターゲット (Editor、Client、Game、Server) を「*.target.cs
」ファイルで記述します。それぞれのファイルは別のコンフィギュレーションにビルドされます。Visual Studio では、それぞれのファイルを異なるコンフィギュレーションで「Visual Studio *.vcxproj
」ファイルとして明示します。ソリューション コンフィギュレーションは [Configuration][Target Type] と名付けられます (たとえば、デフォルト エディター ターゲットは "DevelopmentEditor"、デフォルト スタンドアローン型ゲーム ターゲットは "Development")。使用するコンフィギュレーションは、作成するビルドの目的によって決定されます。
各ビルド コンフィギュレーションには、2 つのキーワードがあります。最初のキーワードは、エンジンとゲームプロジェクトのステートを表します。例えば、Debug コンフィギュレーションを使用してコンパイルすると、ゲームのコードをデバッグすることができます。2 つめのキーワードは、ビルドしているターゲットを示します。例えば、Unreal でプロジェクトを開きたい場合、Editor をターゲット キーワードとしてビルドする必要があります。
ビルド コンフィギュレーション - ステート |
説明 |
---|---|
Debug |
このコンフィギュレーションはデバッグ作業に使用するシンボルを含みます。デバッグ コンフィギュレーションでエンジンとゲームコードの両方をビルドします。Debug コンフィギュレーションを使用してプロジェクトをコンパイルし、Unreal Editor でプロジェクトを開きたい場合、プロジェクトでコード変更が反映されているかを確認するには、 |
DebugGame |
このコンフィギュレーションは、エンジンを最適化してビルドしますが、ゲームコードはデバッグ可能な状態のままにします。ゲーム モジュールのみをデバッグする場合に理想的なコンフィギュレーションです。 |
Development |
エンジン コードおよびゲーム コードの最適化において、このコンフィギュレーションはすべてを有効にしますが最も時間のかかるコンフィギュレーションです。開発およびパフォーマンスの点では理想です。Unreal Editor ではデフォルトで Development を使用します。後で Unreal Editor でプロジェクトを開き、プロジェクトのコード変更が反映されているかを見るには、Development コンフィギュレーションでコンパイルしなければなりません。 |
Shipping |
最適なパフォーマンスを実現し、ゲームを出荷するためのコンフィギュレーションです。このコンフィギュレーションはコンソール コマンド、統計情報、プロファイリング ツールを削除します。 |
Test |
このコンフィギュレーションは、Shipping コンフィギュレーションですが、一部のコンソール コマンド、統計情報、プロファイリング ツールが有効になっています。 |
ビルド コンフィギュレーション - ターゲット |
説明 |
---|---|
Game |
スタンドアローンの実行可能なプロジェクトのバージョンをビルドするコンフィギュレーションですが、プラットフォーム固有のクックされたコンテンツが必要です。クックされたコンテンツに関する詳しい情報については、「プロジェクトをパッケージ化する」リファレンス ページを参照してください。 |
Editor |
エディタでプロジェクトを開き、すべてのコード変更が反映されていることを確認するには、プロジェクトが Editor コンフィギュレーションでビルドしなければなりません。 |
Client |
UE のネットワーク構築機能を使ってマルチプレイヤー プロジェクトの作業を行っている場合、このターゲットは指定したプロジェクトを、マルチプレイヤー ゲーム用の UE のクライアント サーバー モデルのクライアントとして指定します。 |
Server |
UE のネットワーク構築機能を使ってマルチプレイヤー プロジェクトの作業を行っている場合、このターゲットは指定したプロジェクトを、マルチプレイヤー ゲーム用の UE のクライアント サーバー モデルのサーバーとして指定します。 |
Visual Studio でビルドする
ビルド コンフィギュレーションを設定する
ビルド コンフィギュレーションは、Visual Studio のツールバーから設定することができます。この設定は以下のようになります。
ソリューション プラットフォームを設定する
このソリューション プラットフォームは、Visual Studio のツールバーから設定することができます。
Unreal Engine で作業をする場合、通常 Win64 プラットフォームを使用します。これはプロジェクト ファイルを生成する場合にデフォルトで含まれる唯一のものです。IDE のプロジェクト ファイル ページには、他のプラットフォーム向けにプロジェクト ファイルを生成するための指示が記載されています。
プロジェクトのビルド
作業を開始する前に、インストールされている Visual Studio 2019 (以降) for Windows Desktop を実行していることを確認してください。Mac を使用している場合、Xcode 9.0 以降をインストール済みであることを確認してください。
[Solution Configuration] にビルドしたいコンフィギュレーションを設定します。この例では、Development Editor に設定されています。利用可能な各コンフィギュレーションの詳細は ビルド コンフィギュレーション セクションを参照してください。
ゲームプロジェクトで右クリックして、[Rebuild] を選んで再コンパイルします。

これで、コンパイルしたプロジェクトで Unreal Engine を実行 することができます。
UE を実行する場合、プロジェクトを再ビルドしたビルド コンフィギュレーションと一致する Unreal Engine の実行ファイルを使用することが重要です。たとえば、DebugGame Uncooked ビルド コンフィギュレーションでプロジェクトをコンパイルした場合、
ゲーム情報を引数として、UnrealEditor-Win64-DebugGame.exe
実行ファイルを実行します。バイナリの命名規則に関する詳細は、「Unreal Engine のビルド」を参照してください。
Unreal Engine を実行する際、Uncooked (クックされていない) コンフィギュレーションでプロジェクトをリビルドした場合は -game
フラグを、Debug コンフィギュレーションでプロジェクトをリビルドした場合は -debug
フラグを追加することが重要です。
Visual Studio の既知の問題
問題 |
解決法 |
---|---|
"Project is out of date" (プロジェクトが無効です) というメッセージが常に表示される |
プロジェクトが最新状態であっても Visual Studio がプロジェクトを無効と解釈しています。 [Do not show this dialog again] ボックスにチェックを入れて [No] を選択することで、このメッセージが非表示になります。 |
No Debugging Information (デバッグ情報がありません) と表示したウィンドウが Debug コンフィギュレーション使用時に表示される |
「 |
Xcode を使用してビルドする
Xcode でビルドする場合、ゲーム プロジェクトだけをコンパイルします。エディタはコンパイルしません。
プロジェクトをビルドする
Unreal Engine の Xcode プロジェクトは、Xcode の [Product] > [Build] オプションを使用する場合に Debug コンフィギュレーションをビルドし、[Product] > [Build For] > [Profiling] を使用する場合は Debug コンフィギュレーションをビルドするように設定されています。ターゲット スキームを編集することで、この挙動を編集できます。
これで、コンパイルしたプロジェクトで Unreal Engine を実行 することができます。
バイナリ エディタを実行する際、Uncooked (クックされていない) コンフィギュレーションでプロジェクトをリビルドした場合は -game
フラグを、Debug コンフィギュレーションでプロジェクトをリビルドした場合は -debug
フラグを追加することが重要です。
Xcode の既知の問題
問題 |
解決法 |
---|---|
Xcode は、ブレークポイントでは停止しません。 |
Xcode の LLDB デバッガーは、Unreal Engine のプロジェクトでブレークポイントを正しく処理するように設定する必要があります。ホームフォルダで「
|