ProjectLauncherの設定をチーム内で共有したい

お世話になっております。

表題の通り、ProjectLauncherの設定をチーム内で共有したいのですが、UE5.8でも調べた限りできませんでした(FLauncherProfile::GetProfileFolder()を確認しました)。​

ProjectLauncherはUnrealFrontendの設定としてプロジェクトを横断的に起動できる機能だからだとは思いますが、プロジェクト内でも起動手順を共有したいです。

他に起動する設定を共有する方法などあったりするのでしょうか?また、将来的に共有できるようにする予定などございますか?

よろしくお願いいたします。​

[Attachment Removed]

お世話になっております。

「プロジェクト毎にProfileを共有できない」というご理解は正しいです。まさに記載頂いた GetProfileFolder がその場所を示しており、出来る方法としては、Programs/UnrealFrontend/Profiles に.lp2ファイルを置いて頂く方法になります。

static FString GetProfileFolder(bool bNotForLicensees)
{
	if (bNotForLicensees)
	{
		return FPaths::EngineDir() / TEXT("Restricted/NotForLicensees/Programs/UnrealFrontend/Profiles");
	}
	return FPaths::EngineDir() / TEXT("Programs/UnrealFrontend/Profiles");
}

もしくは近しい方法として、 Custom Builds を使用する方法があります。手順は以下の通りです。

1. Editor Preferences → Experimental で Enable tools in Packaging Settings -> Additional builds for this project(bProjectCustomBuildTools)をオンにする

[Image Removed]2. Project Settings → Packaging の Custom Builds に出る Import From Project Launcher から、共有したいプロファイルを選ぶ

[Image Removed]3. Platforms -> Custom Builds から登録したコマンドを実行

[Image Removed]ここで登録した設定は DefaultGame.ini に設定されるため、プロジェクトの設定側で対処が可能となります。現状で出来るのはここまでです。

Project Folder 内に Profile を置ければご指摘の件は解決するかと思いますが、Project Launcher が Project Folder のサーチに対応していないため、現状これはできません。ただし、対応のためのタスクとして「UE-278514:[ProjectLauncher2] Add support for launcher profiles stored in the project’s folder」という非公開チケットがデータベースに将来のタスクとして登録されており、現在6.0にて対応予定となっております。こちらに関して追加対応が入りましたらお知らせしたいと思います。

どうぞ、よろしくお願いします。

[Attachment Removed]

お世話になっております。

Custom Buildsの情報ありがとうございます!

使ってみたところ確かに希望に近い機能でした。

ただ、いくつか問題があったのと、自分なりの解決方法を見つけられたので共有しておきます。

問題点

  • Project LauncherのAdditional Cooker OptionsでCook時の引数を追加しているのですが、これをBuildCookRunの引数で使用すると解釈が正しく行えないようです
    • 昔この引数は-additionalcookeroptions="-execcmds=‘r.Hoge 1’"とシングルクォーテーションで回避する手法があったのですが、この方法も最新では\"に置換されて解釈ミスにつながってしまうようです(この問題回避のためにいつもAdditional Cooker Optionsだけ別のメニューになっています)
  • またCustom Buildsではコマンドラインを直接記載できるので-platform=Win64+Linux -clientconfig=Development+Testと複数同時に実行できると思ったのですが、-platform複数は動作したのですが、-clientconfig複数は-overrideconfigurationによってメニューの設定が上書きされ動かないようでした
    • これはそもそもプラットフォームもメニューで単一のものを選択しているので、コマンド内に複数記載して動くのはたまたまな状態かなと思います

他の手法を試しました

Custom BuildsにはUATのコマンドを直接記載できるので、コマンドラインをバッチ化してBuildGraphを経由してバッチファイルを呼び出してみようと思ったのですが、

BuildGraph -Script=MyGraph.xml -Target=MyNodeと記載するとBuildGraphの実行ノードを指定する-TargetがのTurnkeyの-Targetと解釈されてしまい正しく動きませんでした。

ここまで行くとCustom Builds > BuildGraph > BatchFileと仕組みが複雑になりすぎるのでいったん諦めて単純にulp2を共有することにしました。

Project Launcherの方がメニューが分かれており、ユーザーが単一のログとして結果を確認しやすかったのが主な理由です。

ulp2の共有方法ですが、ulp2をプロジェクト側に入れて、UGSのPostSyncStepでエンジン側のフォルダにコピーすることにしました。

[Sync]
+Step=(FileName="C:\\Windows\\System32\\Robocopy.exe", Arguments="$(ProjectDir)\\Build\\UFEProfiles $(BranchDir)\\Engine\\Programs\\UnrealFrontend\\Profiles /MIR")

※ /MIRだとユーザーが作ったものが消えてしまうので、最終的にはコピースクリプトで処理するようにしないといけないです(そもそもrobocpyはexit 1が正常終了なのでUGSのSyncが異常終了します)

※ Project Launcherでは同時に複数プラットフォーム複数ビルドはできないのでこちらはあきらめて-skipcook等を使用して単純にジョブを積む形しました

これでやりたいことはできそうなので、いったんこの形で運用しておきます。

相談に乗っていただきありがとうございました、ProjectLauncher2にも期待しています!

[Attachment Removed]