UE4 UnrealBuildTool VisualStudio の選択を行う

UE4 で C++ プロジェクトを作ると VisualStudio 用のプロジェクトファイル *.vcxproj や *.sln も自動的に作られます。ただしこれらのファイルは UE4 のビルドシステムにとっては必ずしも必要ではなく、IDE を使うための中間ファイルとみなされています。そのため IDE プロジェクトファイルは Git や Perforce には登録されず、必要になったタイミングで作り直します。

VisualStudio プロジェクトファイルを作るには *.uproject ファイルの関連付けを利用するのが最も簡単です。*.uproject ファイルの上で右クリックして “Generate Visual Studio Project files” を選択します。

このとき呼ばれているツールは UnrealVersionSelector.exe です。内部で UnrealBuildTool を呼び出しているのですが、UnrealVersionSelector 経由だとあまり細かいオプション指定ができないようです。

オプション指定を行う場合は、直接 UnrealBuildTool を呼び出すか、またはソースコード版 Engine の GeneratedProjectFiles.bat を使うことができます。

●任意の VisualStudio のバージョンを指定して Project File を作る

UnrealBuildTool や GeneratedProjectFiles.bat を使うと、使用する VisualStudio のバージョンを指定することができます。*.uproject への関連付けも不要ですし、複数のバージョンの VisualStudio をインストールしている場合に便利です。

例えば UE4 4.21 で VisualStudio 2015 を使う場合下記のように “-2015” オプションを指定します。

set ENGINE_PATH=c:\Program Files\Epic Games\UE_4.21

"%ENGINE_PATH%\Engine\Binaries\DotNET\UnrealBuildTool.exe" -projectfiles -project=c:/ue/MyProject421/MyProject421.uproject -game -engine -progress -2015

*.uproject ファイルはフルパスで指定する必要があるので注意。

GitHub のソースコード版を使っている場合は GeneratedProjectFiles.bat を使って同じことができます。

set ENGINE_PATH=c:\ue\4.21.0

%ENGINE_PATH%\GeneratedProjectFiles.bat -project=c:/ue/MyProject421/MyProject421.uproject -game -engine -progress -2015

同様に -2017 や -2019 (4.22 以降) もあります。↓ 4.22 で 2019 を使う場合の例。

c:\ue\4.22.0\Engine\GeneratedProjectFiles.bat -project=c:/ue/MyProject422/MyProject422.uproject -game -engine -progress -2019

ソースコード版エンジンそのものをビルドする場合は GeneratedProjectFiles.bat に -2017 や -2019 などのオプションをつけるだけで OK です。

c:\ue\4.22.0\GeneratedProjectFiles.bat -2019

●プロジェクトファイルの Platform 数を制限する

プロジェクトファイルを作るときに、-platforms オプションを与えておくと不要な Platform を除外してくれます。例えば Win64 と Android だけ含めたい場合は “-platforms=Win64+Android” になります。プロジェクトファイルが小さくなるので、VisualStudio での読み込みが若干速くなります。

set ENGINE_PATH=c:\ue\4.21.0

%ENGINE_PATH%\Engine\Binaries\DotNET\UnrealBuildTool.exe -projectfiles -project=c:/ue/MyProject421/MyProject421.uproject -game -engine -progress -2015 -platforms=Win64

●ビルド時に直接コンパイラのバージョンを指定する

UE4 のビルドは UnrealBuildTool が行います。IDE も UnrealBuildTool を呼び出しているだけなので、直接ビルドすることもできます。この場合も -2015 や -2017 等のオプション指定ができます。

set ENGINE_PATH=c:\ue\4.21.0

%ENGINE_PATH%\Engine\Build\BatchFiles\Build.bat MyProject421Editor Win64 Development -project=c:/ue/MyProject421/MyProject421.uproject -2015

最初の引数 “MyProject421Editor” は、ビルド対象の *.Target.cs を意味しています。”MyProject421Editor” は MyProject421Editor.Target.cs を選択します。Editor なしでビルドしたい場合は MyProject421 です。

4.21 と 4.22 では若干引数が変わっているので、直接 UnrealBuildTool.exe を呼び出すよりは Build.bat や Rebuild.bat を使った方がおそらく安全でしょう。

どのようなコマンドライン引数でビルドが行われているのか VisualStudio のプロパティからも確認できるので、うまくビルドできない場合は確認してみることをおすすめします。

関連エントリ
UE4 UnrealBuildTool *.Build.cs のコードを共有する