お世話になっております。
UnrealEngineを5.4.1から5.6.1へアップグレードした際に、下記の症状が発生するようになりました。
同様のコマンドでのInstalledBuildの成果物が、UE5.4とUE5.6の比較でUE5.6側に著しい不足が在る。
出力先(LocalBuilds\Engine\Windows\Engine)を比較してみましたが
容量が1/10ほどしかなく、ファイル(.exe等)やディレクトリも足りませんでした。(添付
InstalledBuild自体はどちらのUEバージョンも「BUILD SUCCESSFUL」で終了しています。
WithWin64NoPCHなどのオプションが追加されているのは確認しましたが
なにか追加で必要なオプションなどが有りましたでしょうか。
再現手順を追加させていただきます。
情報が有りましたら、よろしくお願い致します。
再現手順
1.PerforceからRelease-5.6.1を取得
2.CL45227533をマージ(DotNetの更新のため
3.Installed Buildを実行
RunUAT.bat BuildGraph^
-target=“Make Installed Build Win64”^
-script=“Engine\Build\InstalledEngineBuild.xml”^
-set:HostPlatformOnly=true^
-set:GameConfigurations=Development^
-set:WithWin64=true^
-set:WithDDC=false
追記として
D:¥hogehoge¥ue5.6.1_vanilla で実行していたものを
X:¥ 直下に配置して実行すると、結果が変化し
Source\Programsの一部が追加でコピーされましたが
解決には至りませんでした。
X:\直下に配置して実行したログを添付させていただきます。
お世話になっております。
Zenは利用していますか?
ご報告の件ですが、UnrealEngine5.6ではZen(ProjectStore)を使っている環境では、一部の成果物がローカルのInstalledBuildフォルダにコピーされず、Zen側に保存される場合があります。そのため、ローカルの出力がとても小さくなり、ContentやShadersフォルダが不足しているように見えることがあります。
いただいたログを確認したところ、.projectstoreへの参照がいくつもありました。これが原因となっている可能性があります。
そこでお伺いしたいのですが、御社のビルド環境ではZen(ProjectStore)を利用されていますか。もしue.projectstoreというファイルが存在する場合、自動的にZenを利用する動作になりますので、一度ご確認いただけますでしょうか。
また、切り分けのためにまずはコマンドラインからのローカルビルドが、InstalledBuildスクリプトを使った場合と同じ結果になるかを試していただけますでしょうか。
お世話になっております。
また、ご確認ありがとうございます。
機能オーナーに確認しましたが、5.6系でInstalledBuildの動作が変わった事実はありません。社内でも日常的に利用していますが、同じ問題は出ていません。原因は環境による可能性が高いです(パスの長さ、権限、など)。
まずBuildCookRunで通常ビルドした結果とInstalledBuildの結果を比べてください。
Engine\Build\BatchFiles\RunUAT.bat BuildCookRun -project=Samples\Games\test\test.uproject -noP4 -platform=Win64 -clientconfig=Development -serverconfig=Development -nocompileeditor -build -cook -stage -pak -archive -archivedirectory=D:\Test
このようなコマンドで作られる成果物がInstalledBuildより多いかどうかを確認してください。
そのあとBuildGraphを同じTemplate系のプロジェクト付きで実行してください。
例えば、
RunUAT.bat BuildGraph ^
-target=“Make Installed Build Win64” ^
-script=“Engine\Build\InstalledEngineBuild.xml” ^
-set:WithWin64=true ^
-set:WithDDC=false ^
まずBuildCookRunとInstalledBuildを比べてください。その後BuildGraphで実行し、それでも差が出る場合はログを確認してコピー時にスキップされていないかを調べてください。
お手数ですが、よろしくお願いします。
お世話になっております。
AutomationToolをデバッグ実行した所、原因が判明しました。
■原因
UE5.5で追加された、下記のディレクトリ以下のファイルが
ローカルの実行環境へ移行時に、此方の不手際でビルド成果物と判断されてコピーされていなかった。
・Engine\Plugins\Experimental\NNERuntimeIREE\Binaries
・Engine\Plugins\Experimental\NNERuntimeRDG\Binaries
■動作
AutomationToolのBuildGraphでInstalledBuildを実行時に
CopyTask.csにあるCopyTask::ExecuteAsync()おいて、"FilePattern.CreateMapping()"処理で例外が発生し、
その後実行されるハズの"ExecuteAsync()"が実行されず、必要物がコピーされない状況が起きていた。
"_parameters.ErrorIfNotFound=true"であれば例外を投げるが、デフォルトでfalseとなっており、
ログとして"Error"というメッセージは出力されるものの、停止はせずにBUILD_SUCCESSで終了していました。
ログにも下記が出力されていました。
Error while trying to create file pattern match for ‘X:\UE\…\*’, error Source file ‘X:\UE\Engine\Plugins\Experimental\NNERuntimeIREE\Binaries\ThirdParty\IREE\Windows\IREECompiler.dll’ does not exist
■要望
AutomationTool実行時に内部でErrorが発生しても
終了メッセージが↓で終了するため
BUILD SUCCESSFUL
AutomationTool executed for 0h 2m 17s
AutomationTool exiting with ExitCode=0 (Success)
Errorの発生カウント等を出力していただけると
問題に気づきやすくなると思われるので、ご検討いただければと思います。
今回の質問は、此方の環境の問題でした、対応ありがとうございます。
また何かありましたら、よろしくお願いします。
ちなみに、AutomationTool実行時に
CopyTask::_parameters.ErrorIfNotFound=trueへ変更する手段や
エラーチェックを強化するような引数等が有りましたら
教えていただければと思います。
以上、よろしくお願いします。
お世話になっております。
詳細な情報ありがとうございます。
おっしゃられている情報もとに、環境を構築して確認しますので、もう少々お時間をいただけますでしょうか。
お手数ですが、よろしくお願いします。
お世話になっております。
WithWin64NoPCHを有効にしておくことは問題ありません。プリコンパイルヘッダーを使わないため、ビルド時間は少し長くなりますが、これは正常な挙動であり、成果物の内容やサイズには影響しません。各ソースファイルを個別にコンパイルするため処理が増えるだけです。
NoPCHを有効のままにしておくことで、欠落しているインクルードなどの問題を検出しやすくなり、コードベースを健全に保つ効果があります。通常のInstalledBuildでも、この設定を維持して問題ありません。ビルド時間が業務上の支障にならない限り、そのままで大丈夫です。
調査のお時間をいただき、誠にありがとうございます。
現在、この件について開発チームと連携し、こちら側で修正が必要な点がないか確認を進めています。
ご協力に心から感謝いたします。
返答ありがとうございます。
>御社のビルド環境ではZen(ProjectStore)を利用されていますか。
未使用になります。
>もしue.projectstoreというファイルが存在する場合
PerforceのWorkspaceへ.projectstoreファイルを追加したか
という意味であれば、追加していません。
>切り分けのためにまずはコマンドラインからのローカルビルドが、InstalledBuildスクリプトを使った場合と同じ結果になるかを試していただけますでしょうか。
具体的なコマンドと、確認手段を提示していただいて宜しいでしょうか。
以上、よろしくお願いします。
返答ありがとうございます。
>機能オーナーに確認しましたが、5.6系でInstalledBuildの動作が変わった事実はありません。
了解しました。
今回UE5.4 → UE5.6へ移行したのですが、UE5.5系でも同様に
動作の変更は無いという認識で良いでしょうか。
>原因は環境による可能性が高いです(パスの長さ、権限、など)。
・パスはX:¥直下
・権限はUE5.4で問題が無い
・別PCでのテストも同様の結果
なので、心当たりがない感じです。
>まずBuildCookRunで通常ビルドした結果とInstalledBuildの結果を比べてください。
確認させていただきます。
一つ確認させていただきます。
此方の提示している再現手順を、そちらのローカルで実行した場合
成果物は正常な(こちらのUE5.4実行時の添付画像)出力がされていますでしょうか。
正常に出力されている場合比較のためにログを頂けるとありがたいです。
追記になります。
>まずBuildCookRunとInstalledBuildを比べてください。
付きで実行してください。
・BuildCookRun =Gameパッケージ作成
・BuildGraph(InstalledBuild)=ビルド済みのObjやDLLを含めたUEでプロジェクトを作成するための全データ
と認識していて、
上記で作成した内容は全く違うものだと思うのですが
何を比較すればよいのでしょうか。
此方としては、再現手順の例で
「Epi
cGameLuncherから落とすUEと同様の形式が作成される」
事を期待していて、UE5.4までは期待通りの出力をしていたのですが
UE5.6へ移行時に期待通りの出力がされなくなった。
という認識になります。
此方の認識に間違いがある場合は知らせていただければと思います。
追記になります。
>機能オーナーに確認しましたが、5.6系でInstalledBuildの動作が変わった事実はありません。
下記のUEバージョンでInstalledBuildのテストを行いました。
・UE5.4.1_Vanilla:正常
・UE5.5.0_Vanilla:不足
・UE5.6.0_Vanilla:不足
UE5.6系で変更は無いとの事でしたが
UE5.4 → UE5.5の間で何か変更は有りませんでしたでしょうか。
追記になります。
Engine\Saved\BuildGraph\Make Installed Build Win64\Tag-Installed Build Win64 Files.xml
上記へ、コピーされるファイルリスト?が出力されているようなので、情報として添付させていただきます。
UE5.4.1とUE5.5.0の物になります。
(UE5.5ではUnralEditor.exeもコピーリストに無く何も動かせない状態の物が作成されます。
返答ありがとうございます、よろしくお願いします。
InstalledBuildに関連したことで、一つ追加で確認させていただきます。
UE5.5時に、InstalledEngineBuild.xmlへWithWin64NoPCHが追加され
デフォルト=trueになっていると思いますが。
InstalledBuildにおいて上記のオプションのON/OFFは、ビルド時間や成果物のサイズ等にどのように影響しますでしょうか。
WithWin64NoPCH=trueの場合、Engineは問題無いのですが
Fab上のPluginをEngine側へ追加した場合InstalledBuild時にビルドエラーを起こすことが有り
Plugin側を修正するのと、WithWin64NoPCH=falseにするののどちらが良いかの判断を行うため
情報があればよろしくお願いします。
WithWin64NoPCHについての詳細な情報ありがとうございます。
大変参考になりました。
調査ありがとうございます。
その他に関しては、急ぎではありませんのでお気になさらず。