ゲーム プロジェクトのコンパイル

Windows 上で Visual Studio を使用、または Mac 上でXcodeを使用した個々のゲームプロジェクトのコンパイル

Unreal Engine (UE) では UnrealBuildTool (UBT) を用いたカスタムビルド手法を使用します。UnrealBuildTool は、プロジェクトのコンパイルとこれらをエンジンとリンクさせる複雑な部分を全て処理します。標準の Visual Studio のビルド ワークフローを使用してプロジェクトのビルドを行うことができる透過的なプロセスです。

UnrealBuildTool はゲームプロジェクトのビルドに *.build.cs ファイルと *.target.cs ファイルを使用します。これらのファイルは、プロジェクトが C++ テンプレートを使用して作成された、または CPP クラス ウィザード を使用して、Blueprints Only テンプレートから作成されたプロジェクトにコードを追加する場合に自動的に生成されます。

ビルド コンフィギュレーション

Unreal プロジェクトは複数のターゲット (EditorClientGameServer) を「*.target.cs」ファイルで記述します。それぞれのファイルは別のコンフィギュレーションにビルドされます。Visual Studio では、それぞれのファイルを異なるコンフィギュレーションで「Visual Studio *.vcxproj」ファイルとして明示します。ソリューション コンフィギュレーションは [Configuration][Target Type] と名付けられます (たとえば、デフォルト エディター ターゲットは "DevelopmentEditor"、デフォルト スタンドアローン型ゲーム ターゲットは "Development")。使用するコンフィギュレーションは、作成するビルドの目的によって決定されます。

各ビルド コンフィギュレーションには、2 つのキーワードがあります。最初のキーワードは、エンジンとゲームプロジェクトのステートを表します。例えば、Debug コンフィギュレーションを使用してコンパイルすると、ビルド プロセスの最適化がはぶかれてデバッグが容易になります。明確に言うと、Visual Studio でビルドした場合、または Unreal Editor の [Project Settings (プロジェクト設定)] > [Project] > [Packaging] > [Project] > [Include Debug Files (デバッグファイルを含める)] がオンになっている場合、シッピング ビルドでもすべての構成でデバッグ用のシンボルを生成します。つまり、開発とシッピングの構成でもデバッグは可能ですが、デバッグの構成ほどデバッグが容易でない可能性があります。2 つめのキーワードは、ビルドしているターゲットを示します。例えば、Unreal でプロジェクトを開きたい場合、Editor をターゲット キーワードとしてビルドする必要があります。

ビルド コンフィギュレーション - ステート

説明

Debug

この構成では、エンジンとゲームコードの両方を最適化せずにデバッグ構成でビルドします。処理は遅くなりますが、デバッグが容易になります。Debug コンフィギュレーションを使用してプロジェクトをコンパイルし、Unreal Editor でプロジェクトを開きたい場合、プロジェクトでコード変更が反映されているかを確認するには、-debug フラグを使用しなければなりません。

DebugGame

このコンフィギュレーションは、エンジンを最適化してビルドしますが、ゲームコードはデバッグ可能な状態のままにします。ゲーム モジュールのみをデバッグする場合に理想的なコンフィギュレーションです。

Development

エンジン コードおよびゲーム コードの最適化において、このコンフィギュレーションはすべてを有効にしますが最も時間のかかるコンフィギュレーションです。開発およびパフォーマンスの点では理想です。Unreal Editor ではデフォルトで Development を使用します。後で Unreal Editor でプロジェクトを開き、プロジェクトのコード変更が反映されているかを見るには、Development コンフィギュレーションでコンパイルしなければなりません。

Shipping

最適なパフォーマンスを実現し、ゲームを出荷するためのコンフィギュレーションです。このコンフィギュレーションはコンソール コマンド、統計情報、プロファイリング ツールを削除します。

Test

このコンフィギュレーションは、Shipping コンフィギュレーションですが、一部のコンソール コマンド、統計情報、プロファイリング ツールが有効になっています。

ビルド コンフィギュレーション - ターゲット

説明

Game

スタンドアローンの実行可能なプロジェクトのバージョンをビルドするコンフィギュレーションですが、プラットフォーム固有のクックされたコンテンツが必要です。クックされたコンテンツに関する詳しい情報については、「プロジェクトをパッケージ化する」リファレンス ページを参照してください。

Editor

エディタでプロジェクトを開き、すべてのコード変更が反映されていることを確認するには、プロジェクトが Editor コンフィギュレーションでビルドしなければなりません。

Client

UE のネットワーク構築機能を使ってマルチプレイヤー プロジェクトの作業を行っている場合、このターゲットは指定したプロジェクトを、マルチプレイヤー ゲーム用の UE のクライアント サーバー モデルのクライアントとして指定します。<GAME_NAME>Client.Target.cs ファイルがあれば、Client ビルド コンフィギュレーション ファイルが有効になります。

Server

UE のネットワーク構築機能を使ってマルチプレイヤー プロジェクトの作業を行っている場合、このターゲットは指定したプロジェクトを、マルチプレイヤー ゲーム用の UE のクライアント サーバー モデルのサーバーとして指定します。<GAME_NAME>Server.Target.cs ファイルがあれば Server ビルド コンフィギュレーションは有効になります。

Visual Studio でビルドする

ビルド コンフィギュレーションを設定する

ビルド コンフィギュレーションは、Visual Studio のツールバーから設定することができます。この設定は以下のようになります。

Build Configuration Menu

ソリューション プラットフォームを設定する

このソリューション プラットフォームは、Visual Studio のツールバーから設定することができます。

Unreal Engine で作業をする場合、通常 Win64 プラットフォームを使用します。これはプロジェクト ファイルを生成する場合にデフォルトで含まれる唯一のものです。IDE のプロジェクト ファイル ページには、他のプラットフォーム向けにプロジェクト ファイルを生成するための指示が記載されています。

Solution Platform Menu

プロジェクトのビルド

作業を開始する前に、インストールされている Visual Studio 2019 (以降) for Windows Desktop を実行していることを確認してください。Mac を使用している場合、Xcode 9.0 以降をインストール済みであることを確認してください。

  1. [Solution Configuration] にビルドしたいコンフィギュレーションを設定します。この例では、Development Editor に設定されています。利用可能な各コンフィギュレーションの詳細は ビルド コンフィギュレーション セクションを参照してください。

    03_ConfigurationSet.png

  2. ゲームプロジェクトで右クリックして、[Rebuild] を選んで再コンパイルします。

    04_RebuildProject.png

これで、コンパイルしたプロジェクトで 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 コンフィギュレーション使用時に表示される

UnrealEditor.exe」ファイルを Development コンフィギュレーションでコンパイルしたためこのメッセージが表示されます。この警告にもかかわらず、Debug コンフィギュレーションを使用してコンパイルすると、ゲーム プロジェクトはデバッグ可能なままです。 [Do not show this dialog again] ボックスにチェックを入れて [Yes] を選択することでこのメッセージが非表示になります。

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 のプロジェクトでブレークポイントを正しく処理するように設定する必要があります。ホームフォルダで「.lldbinit」ファイルを作成 (または、既にある場合は、編集) し、以下の行を追加する必要があります。

    settings set target.inline-breakpoint-strategy always
Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル