お世話になっております。
ゲーム中の特定の場所で高確率で発生します。
WorldPartitionStreamingPolicy.cpp(107)
check(LocalStreamingSources.Num() == StreamingSources.Num());
に引っかかります。
原因等なにか手がかりがありましたらご教授頂けますと幸いです。
あるいは、回避方法でもかまいません。
例えば、ここに引っかかりそうな場合、
StreamingSources.Reset();
return;
で戻っても大丈夫でしょうか?
宜しくお願い申し上げます。
なにか特殊な操作を行ったタイミングでこの問題が発生していますか?
この部分はストリーミングソースから生成したハッシュ値が過去のハッシュ値と等しい場合に過去の配列を再利用して部分更新するコードです。このcheckのある部分に到達しているのであればハッシュが等しいのに関わらずストリーミングソースの状態に変化が加わってしまっています。
バグデータベースを調べたところ同様のチェックに関する内部チケットがあり、
同関数の
if (!WorldPartition->CanStream())条件分岐で分岐内を通るケースで問題が出る可能性があるようです。分岐内に入ってキャッシュ配列がクリアされた時に、ローカルのハッシュ値であるUpdateStreamingSourcesHashもクリアするようにする修正が CL-43116909 でコミットされています。
こちらを適用して改善されるかご確認いただけますでしょうか・
現状レベルシーケンス再生中に発生するということしかわかっておりません。
レベルシーケンス再生中の何が影響しているのかはまだ分かっておりません。
ひとまず、CL-43116909 を適用してみようと思います。
ありがとうございました。
CLを適用してのご確認よろしくお願いします。
もし改善しなければコメントいただけますでしょうか。