テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

【Unity】Profilerの表示フレーム数を300から2000に増やす

f:id:tsubaki_t1:20191105000141j:plain

プロファイラーでキャプチャーするには、5秒以内に問題を捉える力が必要…

 UnityのProfilerが保存できるフレーム数は300に限定されていました。これは60FPSで動作するゲームでは約5秒に相当します。つまりProfilerで問題を確認する場合、フレームの問題が起こっている所の5秒をピンポイントでレコードする必要があるという事です。これは中々に難易度が高いです。

 さらにVRのように120FPSで動作する場合、なんと驚きの2.5秒。この状態で処理落ちの瞬間をプロファイラーにキャプチャーするには、ザ・ワールドのようなスタンド能力者が一人必要です。

f:id:tsubaki_t1:20191104235501j:plain
プロファイラーを使うには、問題発見の5秒以内にプロファイラーを止める作業が必要

プロファイラのキャプチャーする範囲を2000フレームに伸ばす

 Unity 2019.3でプロファイラーがキャプチャー出来る時間を2000フレームに伸ばすことが出来るようになりました。60FPSで言えば33.3秒。これなら余裕でしょう。

 やり方は簡単、PreferenceのAnalyticsの項目でフレーム数を300から2000に伸ばすだけです。

f:id:tsubaki_t1:20191105000249j:plain
プロファイラーのフレーム数

 この値を大きくすると「Profiler overhead and memory usage can increase significantly the more frame are kept in the profiler window through the ”Frame Count” setting.(”フレーム数”の設定を高く設定すると、プロファイラーのオーバーヘッドとメモリ使用量が大幅に増加する可能性があります)」という警告が出ますが、エディターのメモリ使用量とかそこまで気にするものかな?というのが個人的な印象。

 実際どの程度大きくなるのかは把握していませんが、エディターが落ちるとか無ければ5秒でキャプチャーする作業より遥かに楽じゃないかな。

Unity 2019.3未満の場合

 プロファイラの結果を300フレームごとに書き出していけば、300フレームの限界は突破出来ます。

 例えばProfilerBinarylogSplitがそれを実現していたはずです。

github.com