特定条件下でShallowWaterSubsystemの水紋が発生しなくなる

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

ShallowWaterで生成される水紋について、以下の条件で正しく生成されなくなることを確認しました。

  • WaterBodyのサイズが十分に大きい
  • WaterBodyが属するWaterZoneの「ローカルのみのテッセレーション」が有効
  • 同一のWaterBody内を長距離移動する

同一WaterBody内を移動し続けることで、水紋の形状が崩れたりRiverの流れが正しく反映されなくなる症状が発生し、さらに移動することで水紋が発生しなくなります。

この症状発生後、別のWaterBodyに接触することで解消されます。

原因としては恐らく、ShallowWaterSubsystem の UpdateGridMovement において、BestWaterBody に変更がない限り WaterZone が持つ WaterInfoTexture からの更新が行われないからではないかと思われます。

こちらについて、現状での回避策や想定される修正方法などございますでしょうか?

[Attachment Removed]

再現手順
UE5.8環境で作成した再現プロジェクトを添付します。

再現手順は以下になります。

  • 「WaterTestLevel」にてPlayerStart地点から開始
  • 近くにあるRiverに入る
    • 水紋が発生することを確認
  • River内を上流に向かって移動する
  • 途中で不自然な水紋が発生したり、Riverの流れが反映されないような挙動が発生する
  • さらに進むと水紋が発生しなくなる
  • 隣にあるLakeに接触すると症状が解消される
    [Attachment Removed]

再現プロジェクトになります

[Attachment Removed]

再現プロジェクトのご用意ありがとうございます。UE5.8でプロジェクトを開くことで問題を再現できました。

念のため確認させていただきたいのですが、質問のメタ情報にはエンジンバージョンに5.7とご入力いただいたようですが、5.7では開くことが出来ないプロジェクトでした。

UE5.8で検証いただいているということで間違いないかご確認ください。

確認がとれましたらバグとして登録したいと思います。

さて修正方法ですが、ご調査いただいた通り「ローカルのみのテッセレーション」を無効化するか、

エンジンに手を入れることになりますが、UpdateGridMovement関数内のTryGetOrWaitForWaterInfoTextureFromWaterBody呼び出し周辺を分岐ブロックの外に出して、毎フレームまたは定期的に更新を行うことになると思います。

[Attachment Removed]

ご確認ありがとうございます。

プロジェクト側での利用はUE5.7ではありますが、本症状が最新環境でも発生するかの確認もかねてUE5.8​でのサンプルを用意させていただきました。

混乱させてしまい申し訳ございません。

修正方法についても承知いたしました。

​更新の負荷には注視しつつ、適切にTryGetOrWaitForWaterInfoTextureFromWaterBodyが呼び出せるよう対応したいと思います。

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

[Attachment Removed]

UE5.8で検証された件承知しました。弊社がただいま夏季休暇中のため、休暇明けが次第バグDBに登録させていただこうと思います。少々お待ちください。

[Attachment Removed]

お待たせしました。本件を UE-387913 Water ripples stop occurring during long-distance movement in WaterBody with bEnableLocalOnlyTessellation enabled としてバグ登録させていただきました。

それではクローズさせていただきます。

[Attachment Removed]