お世話になっております。
UE5.8.0/5.8.1にてInstalled Engine Buildを作成しようとすると
Compile UnrealGame Linuxなどで添付したようなエラーとなってしまいます。
Horde Server 5.8.0上のジョブでビルドを実行しており、AutoSDKを活用しています。
◆ Job Argument
-Target=Installed Engine Build
-Script=Engine/Build/InstalledEngineBuild.xml
-set:GameConfigurations=Shipping;Test;Development;DebugGame;Debug
-set:WithClient=false
-set:WithServer=false
-set:WithTVOS=false
-set:WithMac=false
-set:WithIOS=false
-set:WithAndroid=false
-set:WithFullDebugInfo=true
-set:ExtraCompileArgs=-UTF8Output -NoUBA
-UTF8Output -NoUBA
-set:WithInstalledWin64=true
-set:WithInstalledMac=false
-set:WithInstalledLinux=false
-set:WithWin64=true
-set:WithPS4=true
-set:WithPS5=true
-set:WithGDK=true
-set:WithSwitch=true
-set:WithSwitch2=true
-set:WithLinux=true
-set:WithLinuxArm64=true
オプション不足・環境依存問題の場合は教えていただけないでしょうか。
また、エンジン側の不具合であれば、取り込むべき修正があれば教えていただけますと助かります。
[Attachment Removed]
お世話になっております。
ご報告ありがとうございます。ログを拝見しての現時点での見立てをお送りします。
まず、ジョブ引数の指定には特におかしなところは見当たりませんでした。オプション不足というより、環境側の要因ではないかと思っています。
気になったのは、エラーが Module.*.cpp のブロブではなく個別の .cpp に出ている点です。中間ディレクトリも UnrealGame\Test で NU のサフィックスが付いていないため、bUseUnityBuild 自体は true のまま、adaptive unity が個々のファイルを unity から外している可能性が高そうです。read-only でない .cpp は編集中とみなされて unity から除外される仕様のため、ワークスペースが書き込み可能な状態で sync されていると、Engine 全体が実質 non-unity になり、潜在していた IWYU 違反が表に出てくることがあります。
切り分けとして、下記のどちらかをお試しいただけますでしょうか。
- エージェントの BuildConfiguration.xml で bUseAdaptiveUnityBuild を false にする
- ワークスペースを read-only で sync する
これで症状が変わるようでしたら、上記の見立てで合っていそうです。変わらない場合は他の要因も考えられますので、UBT のログ全体をお送りいただければ改めて確認いたします。
あわせて、Release-5.8 のソースを確認したところ、エンジン側にも気になる点が 2 つありました。
- MassAIBehavior の MassLookAtSubsystem.cpp と Tasks/MassClaimSmartObjectTask.cpp が、FMassCommandBuffer を使っているのにヘッダをインクルードしていないように見えます。両ファイルに include “MassCommandBuffer.h” を追加していただければ、ひとまず回避できるかと思います。こちらは弊社側でも起票を検討します。
- AlignmentTemplates.h / DataSizeOf のエラーは UE-370885 と近い系統に見えますが、その修正は 5.8 に入っているため、別物の可能性もあります。unity に戻しても再現するようでしたら、改めて調査してチケット化いたします。
なお GameConfigurations の既定値は Shipping;Development;DebugGame で、Test と Debug は Installed Build 向けには検証しておりません。今回の直接の原因ではないと思いますが、一度既定値でお試しいただくと切り分けしやすく、ビルド時間もかなり短くなるかと思います。
Merci ! 引き続きよろしくお願いします!
[Attachment Removed]
Axelさん、詳細にご確認・回答いただきありがとうございます!
BuildConfigrationでの確認、試してみます!
因みにHordeAgentのワークスペースをread-onlyでSyncする方法については、stream.configのWorkspaceTypesで指定可能なオプションがあれば教えていただけますでしょうか。
[Attachment Removed]
- エージェントの BuildConfiguration.xml で bUseAdaptiveUnityBuild を false にする
- (Option) GameConfigurations を Shipping; Development; DebugGame にする
上記で報告させていただいたエラーは回避できました!ありがとうございます。
ただし、以下エラーが別途でていたようで、この点確認中です
```
LogAssetRegistry: Display: AssetDataGatherer spent 0.000s loading caches from ../../../../../Templates/TP_ME_CineBP/Intermediate/CachedAssetRegistry.
LogCsvProfiler: Display: Metadata set : largeworldcoordinates=“1”
LogCsvProfiler: Display: Metadata set : raytracing=“0”
LogAvidDNxMedia: Error: Failed to load required library DNxMXF-dynamic.dll. Plug-in will not be functional.
```
同じ内容の報告として以下がありました。(が、解決には至らず)
[Content removed]
[Attachment Removed]
DNxMXF-dynamic.dllをインクルードすることで回避できると回答がありましたが
該当ファイルが存在しないため対応できず
(ジョブ実行後だからと思われますが)
error出ているのがTemplateなのもあるので、ビルドから除外することで一旦逃れようかなと
Engine/Build/InstalledEngineFilters.xml の <Property Name=“ProjectsToBuildDDC”> から Templates/TP_ME_CineBP/TP_ME_CineBP.uproject を削除して再度トライしております
[Attachment Removed]
> Engine/Build/InstalledEngineFilters.xml の <Property Name=“ProjectsToBuildDDC”> から Templates/TP_ME_CineBP/TP_ME_CineBP.uproject を削除して再度トライしております
これでビルド成功まで行けました。
InstalledBuildの動作確認はまた後日となりそうですが、現状SDK認識状況などを見る限り問題なさそうに思います。
ご確認・ご対応いただきありがとうございました。
[Attachment Removed]
お世話になっております。
ビルドが通ったとのこと、よかったです。ご報告ありがとうございます。
WorkspaceTypes のご質問ですが、確認したところ read-only で sync するためのオプションは用意されていないようです。指定できるのは cluster、serverAndPort、userName、identifier、stream、view、incremental、useAutoSdk、autoSdkView、method、minScratchSpace、conformDiskFreeSpace のみで、ファイル属性まわりの項目はありません。今回のように BuildConfiguration.xml 側で対応していただくのが現時点では一番素直かと思います。
Templates を ProjectsToBuildDDC から外す回避策自体は問題ないと思います。動作確認で何か出てきましたら、いつでもご連絡ください。
引き続きよろしくお願いします!
[Attachment Removed]