次のガイドは、Unreal Engine のソース コードをダウンロードしてビルドしたユーザーを対象としています。これは GitHub で公開されています。 詳細は、「Unreal Engine ソースコードのダウンロード」を参照してください。
最新の Unreal Engine (UE) のコードをダウンロードした場合、エンジンまたはサンプル ゲームのコンパイルおよび実行のための Visual Studio (VS) または Xcode のプロジェクト ファイルが含まれていないことに留意してください。 プロジェクト ファイルを生成してロードするには、スクリプトを実行する必要があります。
UE ルート ディレクトリにある
GenerateProjectFiles.batファイルを実行します。プロジェクト ジェネレータ ツールは、モジュールやターゲットのビルド ファイルを分析し、新しいプロジェクト ファイルを生成します。 完了するまでに時間がかかる場合があります。
Visual Studio 開発者の場合、同じディレクトリに UE5.sln ファイルが生成されます。 このソリューション ファイルを使用して、UE ゲームやプログラムのビルドや実行を行います。 初めてコンパイルする場合は、Win64 プラットフォームの Development 構成でのビルドを推奨します。
デフォルトでは、検出されたすべての利用可能なプラットフォーム向けに、ビルド可能なプロジェクトを生成します。そのため、コンソールやモバイル プラットフォームでもビルドやデバッグが可能です。 現在実行しているプラットフォーム (たとえば、Windows) 向けのみのプロジェクトを生成する場合は、-CurrentPlatform 引数を指定して GenerateProjectFiles.bat を実行します。 プロジェクト ファイルは少し軽くなります。
ソース コントロールと新しいコードの変更を同期した後、GenerateProjectFiles.bat を再実行してください。 これを行わないと、ゲームのコンパイル時や実行時に問題が発生する可能性があります。
ソース ファイルの追加や削除など、モジュールに対してローカルな変更を行った場合は、GenerateProjectFiles.bat を再実行する必要があります。 プロジェクト ファイルを手動で変更することは推奨しません。
コマンドライン オプション
プロジェクト ジェネレーターには、生成したプロジェクト ファイルをニーズに合わせてカスタマイズできるオプションのコマンドライン引数があります。 通常、これらのオプションは必須ではなく、推奨されません。
| オプション | 説明 |
|---|---|
| 検出されたすべての利用可能なターゲット プラットフォームではなく、現在のデスクトップ プラットフォーム (Windows または Mac) のみを対象にビルド可能なプロジェクトを生成します。 |
| VS 2022 にネイティブな形式でプロジェクトを生成します。 このオプションを設定すると、コンパイルに Visual C++ 2022 コンパイラが使用されます。 |
| サードパーティ ライブラリのヘッダーやその他のファイルをプロジェクトに追加します。 たとえば、PhysX、Steamworks、Bink の Visual Assist でシンボルやファイルを表示したい場合に便利です。 ただし、プロジェクト ファイルのロードに時間がかかります。 |
| 指定したプロジェクト名のコードとコンテンツのみを含むプロジェクトを生成し、他の検出されたすべてのプロジェクトを除外します。 プロジェクト名も指定するようにしてください。 たとえば、 |
| IDE のオートコンプリートやエラーの波線に使用される IntelliSense データの生成をスキップします。 |
| すべての言語に対応したエンジンのドキュメントが含まれています。 デフォルトでは、英語のファイルのみがプロジェクトに含まれています。 |
| 指定すると、Engine モジュール用に生成されたプロジェクトには、パブリック ヘッダー ファイルのみが含まれます。 Engine モジュールには、デフォルトですべてのソース ファイルが含まれています。 これによりプロジェクトのロード時間は短縮できますが、エンジン コードのナビゲーションが難しくなる場合があります。 |
| 生成されたプロジェクトから |
| ビルド可能なプロジェクトを生成するためのデフォルトのプラットフォーム セットをオーバーライドし、指定したプラットフォーム用のプロジェクトを生成します。 「+」記号で区切ることで、複数のプラットフォームを指定できます。 これにより、生成されたソリューション ファイルにプラットフォーム名を含むサフィックスが付いた名前になります。 |
追加情報
「」enerateProjectFiles.bat」 スクリプトは、Unreal ビルド ツール のシンプルなラッパーです。プログラム実行ファイルをビルドするのではなく、プロジェクト ファイルをビルドする特別なモードで起動されます。 -ProjectFiles コマンドライン オプションを使用して Unreal ビルドツールを呼び出します。
UE のビルド システムは、コードのコンパイルのために実際にはプロジェクト ファイルを必要としません。 Unreal ビルドツールは、常にモジュール ビルド ファイルとターゲット ビルド ファイルを使用してソース ファイルを検索します。 このため、新しいソース ファイルを追加してコンパイルをトリガーすると、プロジェクト ファイルがまだリフレッシュされていなくても、新しいソース ファイルがビルドに含まれることがあります。
VS プロジェクトの場合、生成されたソリューション ファイルは 「UE5.sln」 で、UE ルート ディレクトリに保存されます。 ただし、プロジェクト ファイルは 「UNREAL_ENGINE_ROOT/Engine/Intermediate/ProjectFiles/」 ディレクトリに保存されます。 これらのファイルはいつでも削除してプロジェクトを再生成できますが、これらのファイルを削除すると、コマンドライン引数の文字列など、特定のプロジェクト固有の設定が失われる可能性があります。
プロジェクト ファイルを生成することのメリット
もちろん長所と短所はありますが、UE のプロジェクト ファイルを生成することに決めた重要な理由を以下に示します。
UE は多数のプラットフォームで動作するように設計されていますが、チームによっては常時、一部のプラットフォームのみで動作する場合があります。 プロジェクト ファイルを生成することで、プラットフォーム固有のファイルを省略し、不要なビルド構成を避けられます。
UE のプログラミング手法には多くのサブモジュールが組み込まれています。そのため、プログラマーが新しいモジュールをできるだけ簡単に追加できるようにすることが非常に重要でした。
プロジェクト ジェネレータは非常に正確な定義を出力し、UE コードでの作業中に VS IntelliSense によって使用されるパスを含んでいます。
プロジェクトファイルが自動的に生成されるため、新規プロジェクトの設定がはるかに簡単になります。
Epic では、複数のプラットフォームおよび開発環境 (VS や Xcode など) をサポートしたいと考えています。 複数のプロジェクト ファイルのセットを手動で維持するのは、エラーが発生しやすく、面倒です。
私たちは、プログラマーが高度にカスタマイズされたプロジェクト ファイルを生成できるようにしたいと考えています。
ソース ファイルのディレクトリ構造は、プロジェクト ファイルのソリューション階層内で自動的にミラーリングされます。 これはソース ファイルをブラウズするときに非常に便利ですが、手動で作成したプロジェクトで維持するのは困難でした。
UE のビルド構成は非常に複雑で、手動で維持するのは困難です。 このプロジェクト ジェネレーターにより、開発者はほとんど意識せずに利用できます。
[Generate Project Files (プロジェクト ファイルの生成)] で追加されたその他のファイル
C++ モジュールのソース コードに加えて、生成されたプロジェクトには、他の複数のファイルが自動的に追加されます。 これにより、検索時にこれらのファイルが見つけやすくなります。 生成されたプロジェクトに追加されるその他ファイルの例を次に示します。
シェーダ ソース コード (
*.usfファイル)エンジン ドキュメント ファイル (
*.udnファイル)プログラム構成ファイル (
*.iniファイル)ローカライゼーション ファイル (
*.intファイル)プログラム リソース ファイルおよびマニフェスト (
*.rc、.manifest)特定の外部 (未生成) プロジェクト ファイル (UnrealBuildTool や Clean など)
プロジェクト ファイルとソース コントロール
プロジェクト ファイルはソース コントロールにチェックインされていません。 ソース コントロールの競合をプロジェクト ファイルにマージすることは、面倒な作業であり、エラーが発生しやすくなります。 この新しいシステムでは、プロジェクト ファイルを純粋な中間ファイルとして扱うことで、この問題を完全に回避します。 さらに、ソリューション ファイルは、異なるゲーム プロジェクトに取り組んでいるチームごとに異なります。 多くの場合、Epic で使用しているプロジェクト ファイルが、変更しないと他のチームでは使い物にならないことがあります。
プロジェクト ジェネレーター コードのデバッグ
ここでは、プロジェクト ジェネレータ コードに加えた変更をデバッグする際に役立つヒントを次に示します。
スタートアップ プロジェクトを UnrealBuildTool に変更します。
デバッグのためのコマンドライン パラメータを
-ProjectFilesに設定します。作業ディレクトリを
UNREAL_ENGINE_ROOT/Engine/Source/のローカル パスに設定します。通常どおりコンパイルおよびデバッグします。
作業中に、VS で使用しているプロジェクト ファイルがプロジェクト ジェネレーターによって削除される場合があることに注意してください。 このため、通常の UE ソリューション ファイルを使ってデバッグする代わりに、Unreal Build Tool プロジェクトを直接 VS にロードすると便利な場合があります。
複数の構成をビルドする
VS で Batch Build 機能を使用できます。 これは Build (ビルド) メニューにあります コンパイルするすべてのコンフィギュレーションを選択して、Build (ビルド) をクリックします。
UnrealVS 拡張との統合
VS 用の UnrealVS 拡張機能には、現在ロードされているソリューション用のプロジェクト ファイルを再生成するためのツールバー ボタンがあります。
この機能にショートカット キーをバインドすることもできます。 VS で、[Tools (ツール)] > [Options (環境)] > [Keyboard (キーボード)] を開いて、[UnrealVS.RefreshProjects]を検索します。
この機能は、ソリューションをロードした後にのみ有効になることに注意してください (ツールがどのコード ブランチにプロジェクトを生成するかを認識する必要があるため)。 UE5.sln ファイルがまだ生成されていない場合は、まず GenerateProjectFiles.bat スクリプトを直接実行する必要があります。