FastGeoのストリーミング完了を判断する方法について

レベルのプレイ開始直後など、FastGeo変換されたメッシュが確実に存在する状態で行いたい処理があるため、FastGeoストリーミングの完了を判定したいと思っています。

判定方法としては「UFastGeoWorldSubsystem::AsyncRenderStateJobQueue が IsValid() == false」なら完了と判断で特に問題は無いでしょうか?

他に適切な判定方法があればご教示いただきたいです。

再現手順

Hi there,

Apologies, I hope that answering this question in English will not be too much trouble for you.

You are correct in that the status of that pointer will determine if the FastGeo streaming is complete. The potential issue with the method is that the UFastWorldGeoSubsystem class is private and inaccessable outside of the FastGeoStreaming plugin. If you have a source build of the engine this method may be viable.

With most of the GeoStreaming plugin being private/internal there aren’t a lot of options to access the job queue or any other properties/functions that would help us determine the status of FastGeo streaming. The most straightforward method that doesn’t involve modifying the engine is to use UWorldPartitionSubsystem::IsAllStreamingCompleted(). However This method has it’s own issue in that it is not specific to FastGeo streaming.

Please let me know if there is anything more I can assist you with on this topic.

Thank you

- Louis

Thank you for your response.

After further verification, it seems that using different approaches depending on the situation is necessary, but this could be used as one of the methods for determination.

1. Monitoring the state of AsyncRenderStateJobQueue

2. UFastGeoContainer::HasAnyPendingTasks()

I’ve obtained the necessary information, so I’ll consider this resolved. Thank you very much.

--------------------------------------------------------------------------------

ご回答ありがとうございます。

その後検証したところ、状況に応じて使い分けは必要ですが、判定方法の1つとしては使えそうでした。

① AsyncRenderStateJobQueue の状態監視

② UFastGeoContainer::HasAnyPendingTasks()

必要な情報が得られましたので、以上で解決とします。ありがとうございました。