以下のガイドは、GitHub で公開している Unreal Engine のソース コードをダウンロードしてビルド済みのユーザーを対象としています。詳細は「Unreal Engine ソースコードをダウンロードする」(programming-and-scripting/development-environment-setup/downloading-unreal-engine-source-code) を参照してください。
ダウンロードした最新の Unreal Engine (UE) のコードには、エンジンやサンプル ゲームをコンパイルして実行するための Visual Studio (VS) や Xcode のプロジェクト ファイルが含まれていません。プロジェクト ファイルを生成するスクリプトを実行してロードする必要があります。
UE のメイン ディレクトリ にある「
GenerateProjectFiles.bat
」ファイルを実行します。プロジェクト ジェネレータ ツールは、モジュールとターゲット ビルド ファイルを分析し、新しいプロジェクト ファイルを生成します。これには、15 秒程度かかることがあります。
VS デベロッパーの場合は、同じディレクトリに「UE5.sln
」ファイルが生成されます。このソリューション ファイルを使用して、UE4 のゲームとプログラムをビルドして実行します。初めてコンパイルする場合は、Development (開発) コンフィギュレーションを使用して Win64 プラットフォームでビルドすることをお勧めします。
デフォルトでは、SDK が検出されたすべての利用可能なプラットフォームに対してビルド可能なプロジェクトが生成されるため、コンソールやモバイル プラットフォームのビルドやデバッグも可能になります。実行中の現在のプラットフォーム (たとえば、Windows) のみのプロジェクトを生成する場合は、-CurrentPlatform
引数を指定して「GenerateProjectFiles.bat
」を実行します。プロジェクトファイルのサイズは、相対的に小さくなります。
ソース コントロールから新しいコードの変更を同期した後は、「GenerateProjectFiles.bat
」を再実行してください。再実行されなかった場合、ゲームのコンパイルまたは実行時に問題が発生する可能性があります。
ソース ファイルの追加や削除など、モジュールにローカルな変更を加えた場合は、「GenerateProjectFiles.bat
」を再実行する必要があります。プロジェクト ファイルを手動で変更することはお勧めしません。
コマンドライン オプション
プロジェクト ジェネレータには、必要に応じて生成したプロジェクト ファイルをカスタマイズする場合に使用できるオプションのコマンドライン引数があります。通常は必要ありませんが、このオプションの使用は推奨されません。
オプション |
説明 |
---|---|
|
検出された使用可能なすべてのターゲット プラットフォームではなく、現在のデスクトップ プラットフォーム (Windows または Mac) のみビルド可能なプロジェクトを生成します。 |
|
VS2015 ネイティブ形式でプロジェクトを生成します。このオプションを設定すると、コンパイルに Visual C++2015 コンパイラが使用されます。 |
|
VS2017 ネイティブ形式でプロジェクトを生成します。このオプションを設定すると、コンパイルに Visual C++2017 コンパイラが使用されます。 |
|
サードパーティ ライブラリのヘッダやその他のファイルをプロジェクトに追加します。これは、PhysX、Steamworks、または Bink 用の Visual Assist などでシンボルやファイルを表示する場合に便利です。ただし、プロジェクト ファイルのロードに時間がかかります! |
|
指定したプロジェクト名のコードとコンテンツのみを含むプロジェクト (検出された他のすべてのプロジェクトを除く) を生成するようにプロジェクト ジェネレータに指示します。プロジェクト名も必ず指定してください。たとえば、 |
|
|
|
IDE での自動補完およびエラーの波線に使用される IntelliSense データの生成をスキップします。 |
|
すべての言語のエンジン ドキュメントをインクルードします。デフォルトでは、英語のファイルのみがプロジェクトにインクルードされます。 |
|
指定すると、エンジン モジュール用に生成されたプロジェクトにはパブリック ヘッダ ファイルのみがインクルードされます。デフォルトでは、すべてのソース ファイルがエンジン モジュールにインクルードされます。これにより、プロジェクトのロード時間が短縮されますが、エンジン コードのナビゲートが難しくなる場合があります。 |
|
生成されたプロジェクトから |
|
プラットフォームのデフォルト セットをオーバーライドしてビルド可能なプロジェクトを生成し、代わりに指定したプラットフォームのプロジェクトを生成します。複数のプラットフォームを指定するには、「+」文字で区切ります。これにより、生成されたソリューション ファイルには、プラットフォーム名を含むサフィックスが付いた名前が付けられます。 |
よくある質問 (FAQ)
GenerateProjectFiles.bat
スクリプトは Unreal Build Tool のシンプルなラッパーで、プログラムの実行ファイルをビルドするのではなく、プロジェクト ファイルをビルドする特別なモードで起動されます。このスクリプトは、ProjectFiles
コマンドライン オプションを使用して Unreal Build Tool を起動します。
UE ビルド システムでは、コードをコンパイルするためにプロジェクト ファイルは実際には必要ありません。Unreal Build Tool は、モジュールとターゲット ビルド ファイルを使用して常にソース ファイルの場所を特定します。このため、新しいソース ファイルを追加してコンパイルをトリガーすると、プロジェクト ファイルがまだリフレッシュされていなくても、新しいソース ファイルがビルドに含まれることがあります。ただ、覚えておいてほしいことがあります。
VS プロジェクトの場合、「UE5.sln
」というソリューション ファイルが生成され、ルートの UE ディレクトリに保存されます。ただし、プロジェクト ファイルは「[Unreal Engine Root Directory]/Engine/Intermediate/ProjectFiles/
」ディレクトリに保存されます。これらのファイルはいつでも削除し、そしてプロジェクトを再生成しても問題ありません。しかし、これらのファイルを削除すると、コマンドライン引数の文字列などの特定のプロジェクト固有の環境設定が失われる可能性があります。
プロジェクト ファイルを生成する利点
賛否両論はありますが、UE 用のプロジェクト ファイルを生成する主な理由は次のとおりです。
UE は多くのプラットフォームで動作するように設計されていますが、チームによっては、特定のプラットフォームでしか動作させない場合があるため。プロジェクト ファイルを生成することで、プラットフォーム固有のファイルを省略し、関係のないコンフィギュレーションをビルドできます。
UE のプログラミング手法には多くのサブモジュールが組み込まれており、プログラマーが新しいモジュールを追加しやすくすることが非常に重要であったため。
プロジェクト ジェネレータは UE コードを使用するときに VS IntelliSense で使用されるパスを含む非常に正確な定義を発行するため。
プロジェクト ファイルを自動的に生成すると、新しいプロジェクトのセットアップが非常に簡単になるため。
複数のプラットフォームと開発環境 (たとえば、VS と Xcode) をサポートするため。それは複数のプロジェクト ファイルのセットを手作業で管理すると、エラーが発生しやすくなり面倒なため。
プログラマーが高度にカスタマイズされたプロジェクト ファイルを生成できるようにするため。この操作の重要性は徐々に求められてくると思います。
ソース ファイルのフォルダ構造が、プロジェクト ファイル ソリューション階層に自動的にミラー化されるため。これはソース ファイルをブラウズするときには非常に便利ですが、手作業で作成したプロジェクトでは保守が困難なため。
UE のビルド コンフィギュレーションは非常に複雑で、手作業でのメンテナンスが困難なため。プロジェクト ジェネレータはデベロッパーに対してこれを意識させることはありません。
プロジェクト ファイル生成で追加されるその他のファイル
C++ モジュールのソース コードとともに、生成されたプロジェクトには他のいくつかのファイルが自動的に追加されます。これは、検索時にこれらのファイルを簡単に検索できるようにするためです。生成されたプロジェクトに追加されるその他のファイルの例を次に示します。
シェーダ ソース コード (
*.usf
ファイル)エンジン ドキュメント ファイル (
*.udn
ファイル)プログラム コンフィギュレーション ファイル (
*.in`i
ファイル)ローカライゼーション ファイル (
*.int
ファイル)プログラム リソースファイルと manifest (
*.rc
、.manifest)任意の外部 (生成されていない) プロジェクト フィアル (例えば UnrealBuildTool および Clean)
プロジェクト ファイルとソース コントロール
プロジェクト ファイルは、ソースコントロールにチェックインされていません。ソースコントロールのコンフリクトをプロジェクトファイルにマージするのは面倒で、非常にエラーが発生しやすいものでした。新システムでは、プロジェクト ファイルを純粋な中間体として扱うことでこの問題を回避します。また、ソリューション ファイルは、異なるゲーム プロジェクトに取り組んでいる各チームで異なります。Epic で使用しているプロジェクト ファイルは、他のチームでは修正せずに使用できない可能性があります。
プロジェクト ジェネレータ コードをデバッグする
ここでは、プロジェクト ジェネレーターのコードに加えた変更をデバッグする際に役立つヒントを紹介します。
スタートアップ プロジェクトを UnrealBuildTool に変更します。
デバッグ用のコマンドライン パラメータを次のように設定します。
-ProjectFiles
作業ディレクトリをローカルパスに設定します。
[Unreal Engine Root Directory]/Engine/Source/
通常どおりにコンパイルおよびデバッグします。
プロジェクト ジェネレーターは、作業中に VS で使用しているプロジェクト ファイルを削除する可能性があることに注意してください。このため、通常の UE ソリューション ファイルを通じてデバッグするのではなく、Unreal Build Tool プロジェクトを直接 VS に読み込むと便利な場合があります。
複数のコンフィギュレーションをビルドする
VS の Batch Build 機能を使用することができます。これは、Build メニューの下にあります。コンパイルしたい設定をすべて選択し、**Build**をクリックするだけです。
UnrealVS Extension との統合
VS用 UnrealVS Extension にはツールバー ボタンがあり、クリックすると現在ロードされているソリューションのプロジェクト ファイルを再生成されます。
この機能にショートカット キーをバインドすることもできます。VS で T[Tools] -> [Options] -> [Environment] -> [Keyboard] を開き、「UnrealVS.RefreshProjects」を検索します。
この機能は、ソリューションをロードした後にのみ有効になることに留意してください (ツールはプロジェクトを生成するコード ブランチを把握する必要があるからです)。まだ「UE5.sln
」ファイルを生成していない場合は、最初に「GenerateProjectFiles.bat
」スクリプトを直接実行する必要があります。