Language:
Page Info
Engine Version:
The translation of this page is out of date. Please see the English version for the latest version of the page.

プロジェクトファイルの自動生成

最新のアンリアル・エンジン 4 (UE4) のコードを既にダウンロードされたユーザーは、コンパイルやエンジンおよびサンプルゲームの実行に、Visual Studio (VS) や Xcode プロジェクト ファイルが同梱されていないことにお気づきかもしれません。プロジェクトファイルはスクリプトを実行して生成する必要があります。

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

    スクリプトはどのフォルダからも実行できます。(必要に応じてデスクトップ上にショートカットを作成してください)

  • プロジェクト ジェネレータがモジュールとビルド対象のファイルを分析し、プロジェクトファイルを新規に生成します。ファイルの生成は最長で 15 秒間ほどかかります。

VS 開発者のために、同ディレクトリに「UE4.sln」ファイルが生成されます。UE 4 を使用したゲームやプログラムのビルドおよび実行にこのソリューションファイルを使用します。(初回コンパイルは、Win64 プラットフォームを Development コンフィギュレーションに設定したビルドを推奨しています!)

デフォルトで、コンソールだけでなくモバイルのプラットフォームもビルドおよびデバッグできるように、SDK が検出されたすべての利用可能なプラットフォームを対象にビルド可能なプロジェクトを生成します。実行している現在のプラットフォーム (Windows など) に対してのみプロジェクトを生成したい場合は、-CurrentPlatform 引数で GenerateProjectFiles.bat を実行します。プロジェクト ファイルは若干負荷が軽くなります。

重要:ソースコントロール システムから新しいコードの変更を同期した後は必ず GenerateProjectFiles.bat ファイルを再実行してください。ファイルの実行を忘れると、コンパイル時やゲームの実行時に問題が発生する恐れがあります。

ソースファイルの追加や削除など、モジュール内でローカルに変更を加えた場合も GenerateProjectFiles.bat ファイルを再実行してください。 手作業でプロジェクトファイルに変更を加えることは推奨しません。

UnrealVS 拡張との統合

VS 用の UnrealVS 拡張 にあるツールバーボタンをクリックすると、現在読み込んでいるソリューションに対しプロジェクトファイルが再度生成されます。

この機能へショートカットキーを割り当てることもできます。VS で [Tools] -> [Options] -> [Environment] -> [Keyboard] を開きUnrealVS.RefreshProjects を検索します。

この機能はソリューションが読み込まれた後に有効となります (プロジェクトを生成するコードブランチをツールで理解しなくてはいけないため)。UE4.sln ファイルがまだ生成されていない場合、最初に GenerateProjectFiles.bat スクリプトを直接実行してください。

コマンドライン オプション (上級編)

プロジェクトジェネレータには任意のコマンドライン引数がいくつかあります。ユーザーのニーズにより近い生成ファイルにカスタマイズすることができます。一般的にこのオプションは必須ではありませんし推奨していません。

オプション 説明
-CurrentPlatform 検出されたすべての利用可能な対象プラットフォームではなく、現在のデスクトップ プラットフォーム (Windows または Mac) に対してのみビルド可能なプロジェクトを生成します。
-2012 VS 2012 のネイティブなフォーマットでプロジェクトを生成します。デフォルトで、VS 2013 ファイルを生成します。
-2013 VS 2013 のネイティブなフォーマットでプロジェクトを生成します。これはデフォルトです。
-2015 VS 2015 のネイティブなフォーマットでプロジェクトを生成します。このオプションが設定されると Visual C++ 2015 コンパイラを使用してコンパイルします。
-ThirdParty サードパーティ ライブラリからヘッダとその他のファイルをプロジェクトに追加します。PhysX、Steamworks、Bink などに対応する Visual Assist でシンボルやファイルを見る場合に便利です。ただし、プロジェクトファイルの読み込みに時間が長くかかります!
Game GameName 指定したプロジェクト名に対するコードとコンテンツのみを含むプロジェクトの生成をプロジェクト ジェネレータに指示します。その他のプロジェクトは除外します。プロジェクト名も必ず指定してください。例えば、GenerateProjectFiles.bat ShooterGame.uproject -Game は ShooterGame のソースとターゲットのみを含むプロジェクトを生成します。単一のゲームプロジェクトと一緒にエンジン ソースコードとプログラムを含みたい場合、 -Engine パラメータを渡してください。
Engine -Game と併用した場合、エンジンコード、コンテンツ、そしてプログラムが生成ソリューションに一緒に含まれます。エンジン ソースコードを扱う作業がたくさんあるゲームプロジェクトの開発に便利なオプションです。
-NoIntelliSense オートコンプリートとエラー squiggles で使用される IntelliSense データの生成をスキップします。
-AllLanguages すべての言語のエンジン ドキュメンテーションが含まれます。デフォルトでは、プロジェクトには英語のファイルのみが含まれます。
-OnlyPublic 指定すると、パブリック ヘッダファイルのみが Engine モジュール用に作成されたプロジェクトにインクルードされます。デフォルトでは、すべてのソースファイルが Engine モジュールにインクルードされています。そのため、プロジェクトのロード時間は短くなりますが、エンジンコードの移行が難しくなる場合があります。
-NoShippingConfigs 生成したプロジェクトから ShippingTest のビルド設定を除外します。これによって処理する設定対象数が減ります。
-Platforms=PlatformName ビルド可能なプロジェクトを生成するデフォルトのプラットフォーム セットをオーバーライドし、代わりに指定したプラットフォームに対してプロジェクトを生成します。'+' 記号で区切ることで複数のプラットフォームを指定できます。この操作によって、生成されたソリューション ファイルには指定したプラットフォーム名を含む接尾辞がついた名前も付けられます。

よくある質問 (FAQ)

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

UE 4 のビルドシステムでは、プロジェクトファイルが実際にコードをコンパイルする必要はありません。アンリアル ビルド ツールは、モジュールと対象のビルドファイルを使用してソースファイルを常に検索します。よって、新しいソースファイルが追加されてコンパイルが開始すると、プロジェクトファイルが再読み込みされていなくてもソースファイルがビルドに含まれます。覚えておいてください。

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

VS プロジェクトの場合、生成ソリューションは UE4.sln として UE4 のルートディレクトリに保存されます。ただし、プロジェクト ファイルは「/UE4/Engine/Intermediate/ProjectFiles/」ディレクトリに保存されます。これらのファイルの削除やプロジェクトを再生成は好きな時に行えます。ただし、ファイルの削除時にコマンドライン引数などプロジェクト固有の設定が消去されます。

プロジェクトファイルを生成するメリットはなんですか?

メリット、デメリットは確実に両方ありますが、UE4 でプロジェクトファイルを生成する決断に至った主な理由はいくつかあります。

  • UE 4 はマルチプラットフォームに対応していますが、あるチームは常に特定のプラットフォームのみで開発を行っています。プロジェクトファイルを生成することにより、関連のないプラットフォーム固有のファイルやビルドコンフィギュレーションを省略することができます。

*UE4 のプログラミング手法はたくさんのサブモジュールを使用しているので、プログラマーが新たにモジュールを追加する作業を可能な限り容易にすることはとても重要でした。

  • プロジェクト ジェネレータは、正確性の高い定義を排出し、ユーザーが UE4 コードの作業中に Visual Studio IntelliSense が使用するパスを含みます。

  • プロジェクトファイルの自動生成時に新プロジェクトの設定がより簡単になります。

  • 当社はマルチプラットフォームと開発環境のサポートを目指しています (例えば VS や Xcode など)。手作業で複数のプロジェクトファイルを維持することはエラーを誘発する上に、単調でつまらない作業です。

  • よって、プログラマーが大々的にカスタマイズ可能なプロジェクトファイルを生成したいと考えました。プロジェクトファイルの生成は、将来的により重要となってくると考えています。

  • ソースファイルのディレクトリ構造は、プロジェクトファイル ソリューションの階層に自動的に反映されます。ソースファイルのブラウズが大変便利になりますが、手作業で作成するプロジェクトの維持はとても困難です。

  • アンリアルエンジンのビルドコンフィギュレーションは非常に複雑で、手作業による維持は困難です。プロジェクトジェネレータは、透明性を持つビルドコンフィギュレーションを開発者に提供します。

プロジェクトには他にどんなファイルが含まれますか?

C++ モジュールのソースコードと一緒に、生成されるプロジェクトにはその他のファイルが自動的に追加されます。これらのファイルの簡単な検索が目的です。以下は生成プロジェクトへ自動的に追加されるファイルをいくつか挙げた例です。

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

  • エンジン ドキュメンテーション ファイル (*.udn ファイル)

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

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

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

  • 特定の外部 (非生成) プロジェクトファイル (例えば UnrealbuildTool や Clean)

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

ソース コントロールのマージは、プロジェクト ファイルとのコンフリクトが生じ、面倒な作業であるうえ大変間違いが起こりやすい作業です。新しいシステムは、プロジェクトファイルを純粋な中間ファイルとして捉えるためこの作業を完全に回避することができます。加えて、異なるゲームプロジェクトに従事している各チームはそれぞれのソリューション ファイルが必要です。エピックで使用するプロジェクトファイルに修正を加えない限り、他のチームには実用性がないファイルとなる可能性が高くなります。

GenerateProjectFiles.bat は実際に何を実行するのですか?

スクリプトは、アンリアル ビルド ツールまわりの簡易なラッパーです。プログラム実行ファイルの代わりに、プロジェクト ファイルをビルドする特別なモードで起動されます。-ProjectFiles コマンドライン オプションでアンリアル ビルド ツールを呼び出します。

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

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

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

  • 作業ディレクトリをローカルパスへ設定します: [Your UE4 Directory]/Engine/Source/

  • 法線ごとにコンパイルおよびデバッグ作業を行います。

VS で使用しているプロジェクト ファイルの作業中に、ファイルがプロジェクト ジェネレータによって上書きされる恐れがあります。 このため通常の UE4 ソリューションファイルでデバッグ作業をする代わりに、VS へ UnrealBuildTool プロジェクトを直接読み込むと便利な場合もあります。

複数のコンフィギュレーションの一斉ビルドはをどうやってできますか?

Visual Studio の Batch Build 機能を使用します。この機能は [Build] メニューにあります。コンパイル作業を行う全てのコンフィギュレーションを選択してビルドをクリックします。将来的により簡単な作業を可能とするインターフェースの作成に取り組んでいます。