INTSourceChangelist:3810557 Availability:Public Title:ゲーム プロジェクトのコンパイル Crumbs: %ROOT%, Programming, Programming/Development Description:Windows 上で Visual Studio を使用、または Mac 上でXcodeを使用した個々のゲームプロジェクトのコンパイル Version:4.16 Parent:Programming/Development Order: type:overview [TOC (start:2 end:3)] [EXCERPT:Main] アンリアル エンジン4 (UE4) ではUnrealBuildTool を用いたカスタムビルド手法を使用します。 UnrealBuildTool は、プロジェクトのコンパイルとこれらをエンジンとリンクさせる複雑な部分を全て処理します。標準の Visual Studio のビルド ワークフローを使用してプロジェクトのビルドを行うことができる 透過的なプロセスです。 UnrealBuildTool はゲームプロジェクトのビルドに *.Build.cs と *.Target.cs ファイルを使用します。これらのファイルは、 プロジェクトが C++ テンプレートを使用して作成された、または [](Programming\Development\ManagingGameCode\CppClassWizard) を使用して、Blueprints Only テンプレートから作成されたプロジェクトに コードを追加する場合に自動的に生成されます。 ## ビルド コンフィギュレーション エンジンのコンパイル方法を決定する際に、アンリアル エンジンと UnrealbuildTool は異なるビルド コンフィギュレーションを使用します。使用するコンフィギュレーションは、作成するビルドの目的によって決定されます。 [INCLUDE:#winbuildconfig] [/EXCERPT:Main] [COMMENT:none] [EXCERPT:winbuildconfig] 各ビルド コンフィギュレーションには、2 つのキーワードがあります。最初のキーワードは、エンジンとゲームプロジェクトのステートを表します。例えば、**Debug** コンフィギュレーションを使用してコンパイルすると、 ゲームのコードをデバッグすることができます。2 つめのキーワードは、ビルドしているターゲットを示します。例えば、アンリアルでプロジェクトを開きたい場合、**Editor** をターゲット キーワードとして ビルドする必要があります。 |ビルド コンフィギュレーション - ステート | 説明 | |------------- |------------- | | **Debug** | このコンフィギュレーションはデバッグ作業に使用するシンボルを含みます。デバッグ コンフィギュレーションでエンジンとゲームコードの両方をビルドします。**Debug** コンフィギュレーションを使用してプロジェクトをコンパイルし、アンリアル エディタでプロジェクトを開きたい場合、プロジェクトでコード変更が反映されているかを確認するには、"-debug" フラグを使用しなければなりません。 | | **DebugGame** | このコンフィギュレーションは、エンジンを最適化してビルドしますが、ゲームコードはデバッグ可能な状態のままにします。ゲーム モジュールのみをデバッグする場合に理想的なコンフィギュレーションです。 | | **Development** | Release と同等のコンフィギュレーションです。アンリアル エディタではデフォルトで **Development** を使用します。後でアンリアル エディタでプロジェクトを開き、プロジェクトのコード変更が反映されているかを見るには、Development コンフィギュレーションでコンパイルしなければなりません。 | | **Shipping** | 最適なパフォーマンスを実現し、ゲームを出荷するためのコンフィギュレーションです。このコンフィギュレーションはコンソール コマンド、統計情報、プロファイリング ツールを削除します。 | | **Test** | このコンフィギュレーションは、**Shipping** コンフィギュレーションですが、一部のコンソール コマンド、統計情報、プロファイリング ツールが有効になっています。 | |ビルド コンフィギュレーション - ターゲット | 説明 | | ------------------ | ---------- | | **[empty]** | スタンドアローンの実行可能なプロジェクトのバージョンをビルドするコンフィギュレーションですが、プラットフォーム固有のクックされたコンテンツが必要です。クックされたコンテンツに関する詳しい情報については、[](Engine/Basics/Projects/Packaging) のリファレンス ページをご覧ください。 | | **Editor** | エディタでプロジェクトを開き、すべてのコード変更が反映されていることを確認するには、プロジェクトが **Editor** コンフィギュレーションでビルドしなければなりません。 | | **Client** | UE4 のネットワーク構築機能を使ってマルチプレイヤー プロジェクトの作業を行っている場合、このターゲットは指定したプロジェクトを、マルチプレイヤー ゲーム用の UE4 のクライアント サーバー モデルのクライアントとして指定します。`Client.Target.cs` ファイルがあれば、**Client** ビルド コンフィギュレーション ファイルが有効になります。 | | **Server** | UE4 のネットワーク構築機能を使ってマルチプレイヤー プロジェクトの作業を行っている場合、このターゲットは指定したプロジェクトを、マルチプレイヤー ゲーム用の UE4 のクライアント サーバー モデルのサーバーとして指定します。`Server.Target.cs` ファイルがあれば **Server** ビルド コンフィギュレーションは有効になります。. | [/EXCERPT:winbuildconfig] [/COMMENT] [EXCERPT:VS] ##Visual Studio でビルドする ### ビルド コンフィギュレーションを設定する ビルド コンフィギュレーションは、Visual Studio のツールバーから設定することができます。 ### プロジェクト / コンフィギュレーション メニュー ![Project - Configuration Menu](rocket_configuration_menu.png) [COMMENT:none] ### ソリューション / コンフィギュレーション メニュー ![UE4 Solution - Configuration Menu](configuration_menu.png) [/COMMENT] ### ソリューション プラットフォームを設定する このソリューション プラットフォームは、Visual Studio のツールバーから設定することができます。 [COMMENT:none] UE4 は現在、以下のプラットフォームをサポートしています。 * **Windows 64-bit** ![Project - Platform Menu](rocket_platform_menu.png) ![UE4 Solution - Platform Menu](platform_menu.png) [/COMMENT] UE4 は現在、以下のプラットフォームをサポートしています。 * **Windows 32-bit** * **Windows 64-bit** UE4 で作業をする場合、通常 **Win64** プラットフォームを使用します。これはプロジェクト ファイルを生成する場合にデフォルトで含まれる唯一のものです。[](Programming/UnrealBuildSystem/ProjectFileGenerator) ページには、 他のプラットフォーム向けにプロジェクト ファイルを生成するための指示が記載されています。 ### プロジェクトのビルド [REGION:note] 作業を開始する前に、インストールされている Visual Studio 2015 (以降) for Windows Desktop を実行していることを確認してください。Mac を使用している場合、Xcode 8 以降をインストール済みであることを確認してください。 [/REGION] [COMMENT:none] [REGION:tip] Visual Studio でビルドする場合、ゲーム プロジェクトだけをコンパイルします。アンリアル エディタはコンパイルしません。 [/REGION] [REGION:tip] Visual Studio でビルドする場合、ゲーム プロジェクトに加えてエンジンをコンパイルしています。 [/REGION] 1. **[Solution Configuration]** にビルドしたいコンフィギュレーションを設定します。この例では、**Development Editor** に設定されています。利用可能な各コンフィギュレーションの詳細は [ビルド コンフィギュレーション](#ビルドコンフィギュレーション) セクションを参照してください。 ![Project - Set Configuration to Development](config_development_menu.png) 1. ゲームプロジェクトで右クリックして、**[Rebuild]** を選んで再コンパイルします。 ![](rebuild_project_rocket.png) [/COMMENT] 1. **[Solution Configuration]** にビルドしたいコンフィギュレーションを設定します。この例では、**Development Editor** に設定されています。利用可能な各コンフィギュレーションの詳細は [ビルド コンフィギュレーション](#ビルドコンフィギュレーション) セクションを参照してください。 ![](rocket_config_development_menu.png) 1. ゲームプロジェクトで右クリックして、**[Rebuild]** を選んで再コンパイルします。 ![](rebuild_project_outside.png) これで、コンパイルしたプロジェクトで [エンジンを実行](GettingStarted/RunningUnrealEngine) することができます。 [INCLUDE:#MatchEXE] ### Visual Studio の既知の問題 | 問題 | 解決法 | | ----- | -------- | | "Project is out of date" (プロジェクトが無効です) というメッセージが常に表示される | プロジェクトが最新状態であっても Visual Studio がプロジェクトを無効と解釈しています。 [**Do not show this dialog again**] ボックスにチェックを入れて **[No]** を選択することで、このメッセージが非表示になります。 | | **No Debugging Information (デバッグ情報がありません)** と表示したウィンドウが _Debug_ コンフィギュレーション使用時に表示される | 「UE4editor.exe」 ファイルを _Development_ コンフィギュレーションでコンパイルしたためこのメッセージが表示されます。警告表示に関係なく、_Debug_ コンフィギュレーションを使ってゲームプロジェクトを使ってコンパイルした場合、デバッグ可能です。 [**Do not show this dialog again**] ボックスにチェックを入れて **[Yes]** を選択することでこのメッセージが非表示になります。 | [/EXCERPT:VS] [COMMENT:none] [EXCERPT:MatchEXE] [REGION:note] エンジンを実行する場合、プロジェクトを再ビルドしたビルド コンフィギュレーションと一致するアンリアル エンジンの実行ファイルを使用することが重要です。例えば、**DebugGame Uncooked** ビルド コンフィギュレーションでプロジェクトをコンパイルした場合、 ゲーム情報を引数として、`UE4-Win64-DebugGame.exe` 実行ファイルを実行します。バイナリの命名規則に関する詳細は、 [アンリアル エンジンのビルド](Programming/Development/BuildingUnrealEngine) ページを参照してください。 [/REGION:note] [REGION:note] Unreal を実行する場合、**Uncooked** コンフィギュレーションでプロジェクトをリビルドした場合、`-game` フラグを付け加えることが重要です。**Debug** コンフィギュレーションでプロジェクトをリビルドした場合は、`-debug` フラグを付けることが重要です。 [/REGION:note] [/EXCERPT:MatchEXE] [/COMMENT] [EXCERPT:Xcode] ## Xcode を使用してビルドする [REGION:note] Xcode でビルドする場合、ゲーム プロジェクトだけをコンパイルします。エディタはコンパイルしません。 [/REGION] **プロジェクトのコンパイル方法** アンリアル エンジンの Xcode プロジェクトは、Xcode の **Product > Build** オプションを使用する場合に Debug コンフィギュレーションをビルドし、**Product > Build For > Profiling** を使用する場合は Debug コンフィギュレーションをビルドするように設定されています。ターゲット スキームを編集することで、この挙動を編集できます。 これで、コンパイルしたプロジェクトで [エンジンを実行](GettingStarted/RunningUnrealEngine) することができます。 [INCLUDE:#MatchDMG] ### Xcode の既知の問題 | 問題 | 解決法 | | ----- | -------- | | Xcode は、ブレークポイントでは停止しません。 | [INCLUDE:#XcodeDebug] | [/EXCERPT:Xcode] [COMMENT:none] [EXCERPT:XcodeDebug] Xcode の LLDB デバッガーは、アンリアル エンジンのプロジェクトでブレークポイントを正しく処理するように設定する必要があります。ホームフォルダで .lldbinit ファイルを作成 (または、既にある場合は、編集) し、以下の行を追加する必要があります。 settings set target.inline-breakpoint-strategy always [/EXCERPT:XcodeDebug] [EXCERPT:MatchDMG] [REGION:note] バイナリ エディタを実行する場合、**Uncooked** コンフィギュレーションでプロジェクトをリビルドした場合、`-game` フラグを付け加えることが重要です。**Debug** コンフィギュレーションでプロジェクトをリビルドした場合は、`-debug` フラグを付けることが重要です。 [/REGION:note] [/EXCERPT:MatchDMG] [/COMMENT]