お世話になっております。
ZenStreaming を使用したデバッグ実行時に、特定の条件下で Assertion failed になってしまいます。
プロジェクトを保存するドライブによって、問題が起こる場合があります。
Dドライブに保存した場合は問題なく実行できるのですが、Cドライブ等の他のドライブに保存した場合はデバッグ実行時に Asserton failed となってしまいます。エンジンは Dドライブに保存しているので、それが関係していそうな気がしています。
使用しているエンジンはソースビルドの UE5.5.0 で、プロジェクトはテンプレートの ThirdPerson です。
クック時の UAT の実行コマンドは以下の通りです。
RunUAT.bat BuildCookRun -project=<PROJECT> -platform=Win64 -cook -cookall -iostore -nop4 -utf8output -nocompileeditor -compressed -unversioned -unattended
実行は Visual Studio から Development 構成でデバッグ実行しています。
実行すると、真っ暗な画面の後に BufferReader.h の Serialize で check(ReaderPos + Num <= ReaderSize); に引っかかってしまいます。
ZenStoreを使用せずにクックした場合は問題なく実行できます。
クックログ、実行ログ、コールスタックを添付しております。
ご確認のほどよろしくお願いいたします。
まずバグデータベースへの登録を確認しましたが check(ReaderPos + Num <= ReaderSize) でクラッシュするバグ自体はいくつかあるのですが、ZenServerを利用した時に発生するものはございませんでした。
コメント頂いたクックのオプションに-zenserverが付いていないように思えますがが、一度エディターのメニューにある Platforms > Windows > CookContentでクックを行っていただき動作が改善するか確認いただいてもよろしいでしょうか。
またデバッグ実行時にZenStreamingが正しく動いているか確認するために、Dドライブにサーバーを配置しデバッグ実行が正常に行えている状態で、画面に "ZenServer streaming from … " というメッセージが表示されているかご確認頂いてもよろしいでしょうか?
クックオプションに関しては、コンフィグファイルで bUseZenStore を true にしているため、-zenstore オプションはつけなくてもいい認識でした。-zenstore オプションをつけて確認してみたところ、同じように check(ReaderPos + Num <= ReaderSize) に引っかかりました。エディターからクックしてみても同様でした。
Dドライブに保存したプロジェクトのデバッグ実行では、以下のように “ZenServer streaming from …” というメッセージが表示されているため、ZenStreaming は正しく動作していると思われます。
[Image Removed]
ご確認ありがとうございます。ZenStreamingは正しく動作しているようです。
手元では問題が再現できないため再現ステップに差があるようです。再現のために影響がありそうな部分を列挙します。
・エンジンとしてはue5.5.4を用いています。(特に意図が無ければ可能な限り最新のマイナーバージョンをご利用ください)
・ZenServerのバージョンは5.5.7 (ue5.5ではこのバージョンが使われているはずです)
・こちらでは環境変数UE-ZenDataPathを用いてデータストアの位置を変更していますが、ドライブの変更方法についてはどのように行われていますか?
https://dev.epicgames.com/documentation/ja-jp/unreal-engine/using-zen-storage-server-as-cooked-output-store-for-unreal-engine
ue5.5.4を用いている手元のバージョンでは問題が再現できないので
改めてZenLoaderに限らずロード周りのバグフィックスを確認いたしましたが
ue5.5.4の修正で、パッケージビルドでのZenLoaderの動作修正がCL-39221941で適用されていました。
もしかすると改善がみられる可能性があるためこちらをおためしいただけますでしょうか?
CL-39221941 を適用したところ、Dドライブ以外に保存したプロジェクトでも Assertion failed となることなくデバッグ実行できるようになりました。
ご対応いただきありがとうございました。