前提・実現したいこと
Unityで2Dアクションゲームを制作していたところ、フレームレートに問題がないのに画面がややカクカクする現象が発生しました。
どうやらこちらの記事に載っていることが原因のようです。
原因はわかったのですが、どうも解決がうまくいきません。
どなたかお知恵をを貸してくださらないでしょうか。
試したこと
記事では問題の解決法として以下の3つが提案されています。
1.Rigidbody.interpolationを使う
2.処理をUpdateまたはFixedUpdateに統一する
3.Fixed TimeStepを短くしてFixedUpdateの実行周期を短くする
それぞれ検討を行いました。
###解決法1について
・自分のゲームは、カメラとプレイヤーが必ずしも追従しないため、この方法では多くのオブジェクトにinterpolationをアタッチする必要があり負荷が重くなるのではないか
・瞬間移動など速度によらない移動法を多々用いるため見た目のバグが発生するのではないか
という懸念から試していません。
###解決法2について
物理挙動を中心に扱っているので、処理はすべてFixedUpdateに統一しました。しかし、解決しません。Updateに統一した場合は解決するかもしれませんが、物理挙動はUpdateで処理すべきではないとのことなので試していません。
###解決法3について
記事b)にある通り、 Fixed TimeStepを1/60の倍数以外にした場合だと相当小さい数字にしないと痙攣が見受けられます
かといってあまり小さな数字にすると負荷がきつくなります
Fixed TimeStepを1/60の倍数にした場合、基本滑らかに動くが、不定期で1秒ほどカクカクして見える現象が発生します
おそらくですが、fixedUpdateとUpdateの処理がほぼ同時に行われたとき、それらの処理順が不規則に前後することでそのような現象が発生しているのだと思います
描画のタイミングをFixedUpdateに合わせて行うようなことができれば解決すると思うのですが…
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/26 07:28
2019/10/26 14:29
2019/10/26 15:27