Lyraサンプルの
FrameRateLimit_InMenu = 144.0f;
FrameRateLimit_WhenBackgrounded = 30.0f;
FrameRateLimit_OnBattery = 60.0f;
ULyraSettingsLocal::GetEffectiveFrameRateLimit()
等を使用した、SetMaxFPSの処理と
UMovieSceneSequencePlayer で EMovieSceneEvaluationType::FrameLocked を利用する場合で
void UMovieSceneSequencePlayer::StartTimeControllerAndBroadcastPlayState()
で、現在のMaxFPSを保存して、
UMovieSceneSequencePlayer::~UMovieSceneSequencePlayer()
void UMovieSceneSequencePlayer::StopInternal(FFrameTime TimeToResetTo)
で保存した値を用いてSetMaxFPSして復帰する処理がありますが
バッググラウンドで動かしていて、レベルシーケンスなどの再生を開始し、ゲームウインドウをクリックするなどしてフォアグラウンド(アクティブウインドウ)にしてから、
レベルシーケンスの再生が終わると、バックグラウンド処理で設定された30FPSになってしまうという問題があります。
なるべくエンジン改造は避けたいのですが、
UMovieSceneSequencePlayer 側では
GEngine->bUseFixedFrameRate
GEngine->FixedFrameRate
を利用することで、
ULyraSettingsLocal 側の設定と齟齬が起きないことはわかっています。
UMovieSceneSequencePlayer の 実装と外からのSetMaxFPSの競合の問題を
今後解決する予定は有りますでしょうか?解決予定でない場合、
今回の対応方法で問題ないでしょうか?
よろしくお願いします。
[Attachment Removed]