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 のプロパティからも確認できるので、うまくビルドできない場合は確認してみることをおすすめします。