Unity2018でFixedTimestepのデフォルト値が変わったのね

Unity2018でFixedTimestepのデフォルト値が変わったのね

2018年の4月末にリリースされたUnity 2018.1をいじって遊んでいるのですが、Rigidbodyを使った物理挙動を見ていて気付いたのが「なんか滑らかになってる?」ってこと。

何となくFixedUpdate()のFPSも取得してみたら60FPSに近い値になっていたので、「おや?」と。

確認してみたら、FixedUpdate()を呼ぶ間隔を決める値であるFixed Timestepのデフォルト値が『0.0167』になっていました。やっぱり60FPSだこれ!

2017.4まではFixed Timestepが『0.02』で、1秒間にFixedUpdate()が50回呼ばれていました。画面の描画と同期してなくてビミョー……というみんなの願いが通じて60FPSがデフォルトになったのかな。

Unity 2018になって色々と変わった部分がありますが、結構衝撃的でした。

チュートリアルでもFixedUpdate()はデフォルトだと50回呼ばれるんだぜ!! なんて言ってましたが、2018からさっそく変わりました。

追記

2018.2.xだとFixed Timestepが『0.02』に戻ってました。

 

環境

macOS 10.13 High Sierra

Unity2018.1.0f2

4月末にUnity2018が出てたので早速使ってみました。

背景

最近はRigidbodyの挙動について、初心者の方に分かりやすいようにGIFと共に動きを紹介しているのですが(宣伝)、その中でInterpolateのことをまとめていました。

Rigidbodyの描画がカクツク問題を軽減するための設定としてInterpolateがありますが、その検証中、FixedUpdateのFPSを取得してみたんです。

これまでのUnityでは、FixedUpdate()が呼ばれる回数は1秒間に50回がデフォルトでした。なので、60FPSが努力目標のUpdate()のFPSと比較することで、「こんなにもずれてるから、補間が必要なんだぜ〜」なんて論調で記事をまとめていると、FexedUpdateの方もほぼ60FPSになってました。

「いやいや、そんな訳ないっしょ!」

とTimeマネージャーを開くと、Fixed Timestepの値が『0.0167』になっていました。綺麗に60FPSになってますね。

これ、ぜひあなたにも一緒に確認してもらいたいんです。うちのUnityだけじゃないよね?

メニューバーの[Edit] -> [Project Settings] -> [Time]から時間設定を行うTimeマネージャーを開くことができます。

Timeマネージャーを確認するのだポッター
Timeマネージャーを確認するのだポッター

 

確認してもらいたいのは一番上のFixed Timestepの項目。自分で設定した記憶がないので、多分デフォルト。新規プロジェクトを作って確認しても同じでした。

か……変わってる!
か……変わってる!

 

ゲーム実行中のFPSを取得してみると綺麗に59.88を維持していました。固定フレームレートすごい。あ、Updateさんは若干揺れます。

綺麗に59.88を維持
綺麗に59.88を維持

 

念のためUnity2017.4で確認してみたら、Fixed Timestepの値は『0.02』でした。こっちは50FPSです。

なので境目はUnity2018.1っぽい。

デフォルト値の変更の影響

影響は特に無いかな。

Unity2018.1で新規にプロジェクトを作成した場合にはFixed Timestepが『0.0167』になりますが、過去バージョンで作成したプロジェクトをインポートした場合は、そのプロジェクトのFixed Timestepが維持されていました。

なので、新規にプロジェクトを作成した時にビビるくらいでしょうか。FixedUpdate()の中で、呼び出し回数に応じた処理を使うことに慣れていれば、そこで地雷を踏むかも、くらい。

あとリリースノートを確認してみましたが、それらしい記述は見つからずでした。どなたかこの変更に関するドキュメントをご存知でしょうか。

ここまで細かい話だとリリースノートに載らないんですかね?(無知)

検索が下手とか、目grepのせいで見逃した可能性もあるので、目が疲れてない時間に再確認してみます。

まとめ

Unity2018になって最初にビビった変更はFixed Timestepのデフォルト値が変わったことでした。

FixedUpdate()のFPSをカウントするなんてなかなか無いですけど、気付いてよかった。

モバイル端末とかも性能が上がってきてるし、デフォルト値にしてるってことはFixedUpdate()が60FPSでも安定するのかも。

アプリ公開までの攻略チャートを作りました!

CTA-IMAGE

「スマホ向けのアプリを作ってみたいけど、何から手を付けていいか分からない!」


そんなお悩みをお持ちの方向けに、todoがアプリをリリースした経験から手順や考慮すべき点をまとめたe-bookを作成しました。ゲーム作りはそれ自体がゲームのように楽しいプロセスなので、「攻略チャート」と名付けています。


アプリをリリースする観点から書いているので各アプリストア向けの作業が入っていますが、企画、設計、開発、テスト部分については他のプラットフォームでも使える知識が満載です。


無料で入手できるのでぜひお早めにゲットして、開発をブーストさせてください!