UnrealEngineのソリューション構成にC#プロジェクトの表示を増やす方法

UnrealHeaderTool周りのコードを書くときに使ったので備忘録

 

対応方法

この記事は主に、配布版(InstalledBuild)向けの内容になります。

一応、公式ドキュメントに表示を増やす方法が記述されています。

docs.unrealengine.com

ProjectFileGeneratorの項目がプロジェクトを生成する時のオプションになります。
この記述に従って、BuildConfiguration.xmlを記述すれば生成されると思いましたが…

 

UE_5.1\Engine\Source\Programs\UnrealBuildTool\ProjectFiles\ProjectFileGenerator.cs:1293行目

生成時のコマンドライン引数によって、BuildConfiguration.xml で記述した内容が上書きされてしまいます。

逆に言うと、生成時のオプションによってソリューション構成を変える事が出来ます。

 

Running C:/Program Files/Epic Games/UE_5.1/Engine/Build/BatchFiles/Build.bat  -projectfiles -project="プロジェクトディレクトリ/プロジェクト名.uproject" -game -rocket -progress -log="XXXX/Logs/UnrealVersionSelector-2023.01.14-23.19.45.log"

↑は右クリック時のコンテキストメニューの際のログです。

引数に"-game"が含まれている為C#関連のコードは生成されなくなります。

但し、配布ビルド(InstalledBuild)の場合には、強制的に、BuildConfiguration.xmlのパラメーターを上書きされているケースもあるので注意してください。

結論!

つまり、自分の表示したいソリューションの範囲を広げたい場合には専用のbatファイルを用意するなどの対応が必要になります。


UE5.1時点での対応している引数一覧

BuildConfiguration.xmlのパラメーターを記述していない場合+"-ALLPLATFORMS"の場合


プロジェクトファイル生成時に下記のパラメーターを指定出来ます。

コチラと、BuildConfiguration.xmlのパラメーターを組み合わせてソリューションを作れるようです

"-ALLPLATFORMS":
"-CURRENTPLATFORM":
"-THIRDPARTY":
"-NOPROGRAMS":
"-GAME":
"-ENGINE":
"-NOCPP":
"-NOINTELLISENSE":
"-INTELLISENSE":
"-SHIPPINGCONFIGS":
"-NOSHIPPINGCONFIGS":
"-DEBUGCONFIGS":
"-NODEBUGCONFIGS":
"-DEVELOPMENTCONFIGS":
"-NODEVELOPMENTCONFIGS":
"-DOTNET":
"-NODOTNET":
"-ALLLANGUAGES":
"-USEPRECOMPILED":
"-INCLUDETEMPTARGETS":