Horde/UGS 使用時のEngine配置について

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

プロジェクトの既存ワークフローをHordeに移行するため、Horde/Horde Agent環境を構築しています。

プロジェクト構成の互換性を維持するため、EngineをP4ワークスペース直下ではなく、P4ROOT/[path1]/Engineと一段フォルダを追加して配置したいと考えています。

RunUATの指定は下記の回答を参考にengineRootを指定することで実行できました。

[Content removed]

しかし、エンジン内サンプルのBuildGraph (BuildEditorAndTools.xml) を実行してみると、

[path1]が消去されたEngineパスでファイル(PS4TMAPI)を検索し、エラーになっているようでした

Hordeでワークフローを構築する場合には、EngineはP4ワークスペース直下に配置するといった制約はございますでしょうか?

もしなければ、下記エラーの回避策をご提示いただけると助かります。

以上、よろしくお願いします。

■.stream.jsonに"enginePath": “[path1]/Engine” を指定時のエラー

Parsing command line: BuildGraph -Script=[path1]/Engine/Build/Graph/Examples/BuildEditorAndTools.xml -HordeExport=D:\HordeAgent\Sandbox\Demo\Sync\[path1]\Engine\Saved\Horde\Exported.json -ListOnly -Target="Submit To Perforce" -set:UProjectPath=[path1]/[path2]/[path3]/[OurProject].uproject -set:EditorTarget=[OurProject]Editor -set:PreferredAgent=IncrementalWin64;CompileWin64;Win64 [00:01:05] Initializing script modules... [00:01:09] Building 44 projects (see Log 'Engine/Programs/AutomationTool/Saved/Logs/Log.txt' for more details) [00:01:09] Restore... [00:01:32] Build... [00:01:54] Build projects time: 45.23 s [00:01:54] Total script module initialization time: 48.96 s. [00:01:54] Using C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Current\Bin\MSBuild.exe [00:01:55] System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. [00:01:55] ---> System.IO.DirectoryNotFoundException: Could not find a part of the path 'D:\HordeAgent\Sandbox\Demo\Sync\Engine\Platforms\PS4\Binaries\ThirdParty\PS4TMAPI'. [00:01:55] at System.IO.Enumeration.FileSystemEnumerator1.Init()
[00:01:55] at System.IO.Enumeration.FileSystemEnumerableFactory.UserFiles(String directory, String expression, EnumerationOptions options)
[00:01:55] at System.IO.Directory.InternalEnumeratePaths(String path, String searchPattern, SearchTarget searchTarget, EnumerationOptions options)
[00:01:55] at EpicGames.Core.AssemblyUtils.RefreshAssemblyCache(String rootDirectory, String pattern) in D:\HordeAgent\Sandbox\Demo\Sync[path1]\Engine\Source\Programs\Shared\EpicGames.Core\AssemblyUtils.cs:line 82
[00:01:55] at EpicGames.Core.AssemblyUtils.InstallRecursiveAssemblyResolver(String rootDirectory) in D:\HordeAgent\Sandbox\Demo\Sync[path1]\Engine\Source\Programs\Shared\EpicGames.Core\AssemblyUtils.cs:line 61
[00:01:55] at PS4Platform..ctor() in D:\HordeAgent\Sandbox\Demo\Sync[path1]\Engine\Platforms\PS4\Source\Programs\AutomationTool\PS4Platform.Automation.cs:line 209
[00:01:55] at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean wrapExceptions)
[00:01:55] — End of inner exception stack trace —
[00:01:55] at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean wrapExceptions)
[00:01:55] at AutomationTool.Platform.CreatePlatformsFromAssembly(Assembly ScriptAssembly) in D:\HordeAgent\Sandbox\Demo\Sync[path1]\Engine\Source\Programs\AutomationTool\AutomationUtils\Platform.cs:line 169
[00:01:55] at AutomationTool.Platform.InitializePlatforms(HashSet1 AssembliesWithPlatforms) in D:\HordeAgent\Sandbox\Demo\Sync\[path1]\Engine\Source\Programs\AutomationTool\AutomationUtils\Platform.cs:line 117 [00:01:55] at AutomationTool.ScriptManager.LoadScriptAssemblies(IEnumerable1 AssemblyPaths, ILogger Logger) in D:\HordeAgent\Sandbox\Demo\Sync[path1]\Engine\Source\Programs\AutomationTool\AutomationUtils\ScriptManager.cs:line 131
[00:01:55] at AutomationTool.Automation.ProcessAsync(ParsedCommandLine AutomationToolCommandLine, StartupTraceListener StartupListener, HashSet1 ScriptModuleAssemblies) in D:\HordeAgent\Sandbox\Demo\Sync\[path1]\Engine\Source\Programs\AutomationTool\AutomationUtils\Automation.cs:line 138 [00:01:55] (see D:\HordeAgent\Sandbox\Demo\Sync\[path1]\Engine\Programs\AutomationTool\Saved\Logs\Log.txt for full exception trace) [00:01:55] AutomationTool executed for 0h 0m 49s [00:01:55] AutomationTool exiting with ExitCode=1 (Error_Unknown)

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

> Hordeでワークフローを構築する場合には、EngineはP4ワークスペース直下に配置するといった制約はございますでしょうか?

​はい、こちらは現状Hordeを利用する上での制約です。HordeはEngineがp4ルート (P4ROOT/Engine)にあることを想定しているため、このルールに沿わない構成においてはファイルパスの構成でエラーになることが想定されます。そのためワークスペースを構築する上では[path1]を付与しないことが想定される利用方法となります。

ご回答いただきありがとうございました。

EngineパスがP4ワークスペース直下になるよう、

プロジェクトの構成を見直すことから検討しようと思います。