IDE のプロジェクト ファイル

現在のワークスペースのゲームとモジュールのプロジェクト ファイルを自動的に生成するプロセス。

Windows
MacOS
Linux

以下のガイドは、GitHub で公開している UE4 のソース コードをダウンロードしてビルド済みのユーザーを対象としています。

ダウンロードした最新の Unreal Engine 4 (UE4) のコードには、エンジンやサンプル ゲームをコンパイルして実行するための Visual Studio (VS) や Xcode のプロジェクト ファイルが含まれていません。プロジェクト ファイルを生成するスクリプトを実行してロードする必要があります。

  • UE4 のメイン ディレクトリ にある「GenerateProjectFiles.bat」ファイルを実行します。

    このスクリプトは任意のフォルダから実行できます。

  • プロジェクト ジェネレータ ツールは、モジュールとターゲット ビルド ファイルを分析し、新しいプロジェクト ファイルを生成します。これには、15 秒程度かかることがあります。

VS デベロッパーの場合は、同じディレクトリに「UE4.sln」ファイルが生成されます。このソリューション ファイルを使用して、UE4 のゲームとプログラムをビルドして実行します。初めてコンパイルする場合は、Development (開発) コンフィギュレーションを使用して Win64 プラットフォームでビルドすることをお勧めします。

デフォルトでは、SDK が検出されたすべての利用可能なプラットフォームに対してビルド可能なプロジェクトが生成されるため、コンソールやモバイル プラットフォームのビルドやデバッグも可能になります。実行中の現在のプラットフォーム (たとえば、Windows) のみのプロジェクトを生成する場合は、-CurrentPlatform 引数を指定して「GenerateProjectFiles.bat」を実行します。プロジェクトファイルのサイズは、相対的に小さくなります。

重要:ソース コントロールから新しいコードの変更を同期した後は、「GenerateProjectFiles.bat」を再実行してください。再実行されなかった場合、ゲームのコンパイルまたは実行時に問題が発生する可能性があります。

ソース ファイルの追加や削除など、モジュールにローカルな変更を加えた場合は、「GenerateProjectFiles.bat」を再実行する必要があります。プロジェクト ファイルを手動で変更することはお勧めしません。

UnrealVS Extension との統合

VS用 UnrealVS Extension にはツールバー ボタンがあり、クリックすると現在ロードされているソリューションのプロジェクト ファイルを再生成されます。

この機能にショートカット キーをバインドすることもできます。VS で [Tools] > [Options] > [Environment] -> [Keyboard] を開き、「UnrealVS.RefreshProjects」を検索します。

この機能は、ソリューションをロードした後にのみ有効になることに留意してください (ツールはプロジェクトを生成するコード ブランチを把握する必要があるからです)。まだ「UE4.sln」ファイルを生成していない場合は、最初に「GenerateProjectFiles.bat」スクリプトを直接実行する必要があります。

コマンドライン オプション (上級者向け)

プロジェクト ジェネレータには、必要に応じて生成したプロジェクト ファイルをカスタマイズする場合に使用できるオプションのコマンドライン引数があります。通常は必要ありませんが、このオプションの使用は推奨されません。

オプション

説明

-CurrentPlatform

検出された使用可能なすべてのターゲット プラットフォームではなく、現在のデスクトップ プラットフォーム (Windows または Mac) のみビルド可能なプロジェクトを生成します。

-2015

VS2015 ネイティブ形式でプロジェクトを生成します。このオプションを設定すると、コンパイルに Visual C++2015 コンパイラが使用されます。

-2017

VS2017 ネイティブ形式でプロジェクトを生成します。このオプションを設定すると、コンパイルに Visual C++2017 コンパイラが使用されます。

-ThirdParty

サードパーティ ライブラリのヘッダやその他のファイルをプロジェクトに追加します。これは、PhysX、Steamworks、または Bink 用の Visual Assist などでシンボルやファイルを表示する場合に便利です。ただし、プロジェクト ファイルのロードに時間がかかります!

-Game GameName

指定したプロジェクト名のコードとコンテンツのみを含むプロジェクト (検出された他のすべてのプロジェクトを除く) を生成するようにプロジェクト ジェネレータに指示します。プロジェクト名も必ず指定してください。たとえば、GenerateProjectFiles.bat ShooterGame.uproject Game は ShooterGame のソースとターゲットだけを持つプロジェクトを生成します。1 つのゲーム プロジェクトにエンジンのソース コードとプログラムをインクルードする場合は、Engine パラメータも渡すことができます。

-Engine

-Game と共に使用すると、エンジン コード、コンテンツ、およびプログラムも生成されたソリューションにインクルードされます。これは、ゲーム プロジェクトの作業中にエンジン ソースを頻繁に使用する必要がある場合に便利です。

-NoIntelliSense

IDE での自動補完およびエラーの波線に使用される IntelliSense データの生成をスキップします。

-AllLanguages

すべての言語のエンジン ドキュメントをインクルードします。デフォルトでは、英語のファイルのみがプロジェクトにインクルードされます。

-OnlyPublic

指定すると、エンジン モジュール用に生成されたプロジェクトにはパブリック ヘッダ ファイルのみがインクルードされます。デフォルトでは、すべてのソース ファイルがエンジン モジュールにインクルードされます。これにより、プロジェクトのロード時間が短縮されますが、エンジン コードのナビゲートが難しくなる場合があります。

-NoShippingConfigs

生成されたプロジェクトから Shipping および Test ビルド コンフィギュレーションを省略します。これにより、処理が必要となるターゲット コンフィギュレーションの数が削減されます。

-Platforms=PlatformName

プラットフォームのデフォルト セットをオーバーライドしてビルド可能なプロジェクトを生成し、代わりに指定したプラットフォームのプロジェクトを生成します。複数のプラットフォームを指定するには、「+」文字で区切ります。これにより、生成されたソリューション ファイルには、プラットフォーム名を含むサフィックスが付いた名前が付けられます。

よくある質問 (FAQ)

プロジェクト ファイルを更新していないのに、新しく追加されたソース ファイルがコンパイルされるのはなぜですか?

UE4 ビルド システムでは、実際にはコードのコンパイルにプロジェクト ファイルは必要ありません。Unreal Build Tool は常にモジュールとターゲットのビルド ファイルを使用してソース ファイルを探します。このため、新しいソース ファイルを追加してコンパイルすると、プロジェクト ファイルがまだ更新されていなくても、新しいソース ファイルがビルドにインクルードされる場合があることを覚えておいてください。

実際のプロジェクトはどこに保存されますか?

VS プロジェクトの場合、「UE4.sln」というソリューション ファイルが生成され、ルートの UE4 ディレクトリに保存されます。ただし、プロジェクト ファイルは「/UE4/Engine/Intermediate/ProjectFiles/」ディレクトリに保存されます。これらのファイルはいつでも削除し、そしてプロジェクトを再生成しても問題ありません。しかし、これらのファイルを削除すると、コマンドライン引数の文字列などの特定のプロジェクト固有の環境設定が失われる可能性があります。

プロジェクト ファイルを生成する利点は何ですか?

賛否両論はありますが、UE4 用のプロジェクト ファイルを生成する主な理由は次のとおりです。

  • UE4 は多くのプラットフォームで動作するように設計されていますが、チームによっては、特定のプラットフォームでしか動作させない場合があるため。プロジェクト ファイルを生成することで、プラットフォーム固有のファイルを省略し、関係のないコンフィギュレーションをビルドできます。

  • UE4 のプログラミング手法には多くのサブモジュールが組み込まれており、プログラマーが新しいモジュールを追加しやすくすることが非常に重要であったため。

  • プロジェクト ジェネレータは UE4 コードを使用するときに VS IntelliSense で使用されるパスを含む非常に正確な定義を発行するため。

  • プロジェクト ファイルを自動的に生成すると、新しいプロジェクトのセットアップが非常に簡単になるため。

  • 複数のプラットフォームと開発環境 (たとえば、VS と Xcode) をサポートするため。それは複数のプロジェクト ファイルのセットを手作業で管理すると、エラーが発生しやすくなり面倒なため。

  • プログラマーが高度にカスタマイズされたプロジェクト ファイルを生成できるようにするため。この操作の重要性は徐々に求められてくると思います。

  • ソース ファイルのフォルダ構造が、プロジェクト ファイル ソリューション階層に自動的にミラー化されるため。これはソース ファイルをブラウズするときには非常に便利ですが、手作業で作成したプロジェクトでは保守が困難なため。

  • UE4のビルド コンフィギュレーションは非常に複雑で、手作業でのメンテナンスが困難なため。プロジェクト ジェネレータはデベロッパーに対してこれを意識させることはありません。

これらの他のファイルはプロジェクトで何をしていますか?

C++ モジュールのソース コードとともに、生成されたプロジェクトには他のいくつかのファイルが自動的に追加されます。これは、検索時にこれらのファイルを簡単に検索できるようにするためです。生成されたプロジェクトに追加されるその他のファイルの例を次に示します。

  • シェーダ ソース コード (*.usf ファイル)

  • エンジン ドキュメント ファイル (*.udn ファイル)

  • プログラム コンフィギュレーション ファイル (*.ini ファイル)

  • ローカライゼーション ファイル (*.int ファイル)

  • プログラム リソースファイルと manifest (*.rc、.manifest)

  • 特定の外部 (非生成) プロジェクト ファイル (例 : UnrealBuildTool、Clean)

ソース コントロールにチェックインされているプロジェクト ファイルがないのはなぜですか?

ソース コントロールの競合をプロジェクト ファイルにマージするのは、面倒でエラーが発生しやすい作業でした。新しいシステムでは、プロジェクト ファイルを純粋な中間ファイルとして扱うことで、これを完全に回避しています。また、ソリューション ファイルは、異なるゲーム プロジェクトに取り組むチームごとに異なります。Epic で使用するプロジェクト ファイルは、変更を加えなければ他のチームで使用できない可能性があります。

`GenerateProjectFiles.bat` は実際に何をしますか?

このスクリプトは、Unreal Build Tool の単純なラッパーです。これは、プログラムの実行ファイルを作成する代わりにプロジェクト ファイルを作成する特別なモードで起動されます。Unreal Build Tool を -ProjectFiles コマンドライン オプションで起動します。

プロジェクト ジェネレータ コードを変更しています。どのようにデバッグするのですか?

  • スタートアップ プロジェクトを UnrealBuildTool に変更します。

  • デバッグ用のコマンドライン パラメータを次のように設定します。-ProjectFiles

  • 作業ディレクトリをローカルパスに設定します。[あなたの UE4 ディレクトリ]/Engine/Source/

  • 通常どおりにコンパイルおよびデバッグします。

作業中に VS で使用しているプロジェクト ファイルがプロジェクト ジェネレータによって破壊される可能性があることに留意してください。このため、通常の UE4 ソリューション ファイルを使ってデバッグする代わりに、UnrealBuildTool プロジェクトを直接 VS にロードすると便利な場合があります。

複数のコンフィギュレーションを同時に作成する方法はありますか?

VS の バッチ ビルド 機能を使用すると、[Build] メニューに表示されます。コンパイルするコンフィギュレーションをすべて選択し、[Build] をクリックします。将来的には、このインターフェースをより使いやすくする方法を検討しています。

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback