スマホゲームのFPSを表示&計測する方法

Android

スマホゲームをしていると、ふと思いました。

「パソコンのベンチマーク動画でフレームレート表示しているのを見るけど、スマホではできないのか…?」と。

ネット上で「スマホ フレームレート 表示」などでGoogle先生に質問しても具体的な情報は出てきませんでした。

例外的に「Androidプログラミングの館」というサイトがヒットしましたが、あれは正直私のような素人では実践出来ませんし、目的は「PCのようにゲーム中のフレームレートを表示する」なので解決策とは言えません。

そして私が試行錯誤した中で、ようやく「PCのようにゲーム中のフレームレートを表示する」方法が分かりました。

PC上にミラーリングした「Android画面」をPCのFPS表示ソフトを使って計測する方法です。

※あくまで、こういうやり方もあるよってだけなので参考程度でお願いします。

測定方法と必要なもの

  1. Windows10のパソコン
  2. Android画面ミラーリングソフト「scrcpy」
  3. FPS計測ツール「msiアフターバーナー」など
  4. Android 5.0以降の端末
  5. ある程度のPCやAndroidの知識

やり方としては、Windows10上に「Android画面」を「scrcpy」を使ってミラーリングし、FPS計測ツール「msiアフターバーナー」を使ってFPS表示と計測をする方法になります。

ソフトのダウンロードリンク

手順

ソフトのインストールなどが出来ている状態で話を進めます。

【作業の流れ】

  1. Windows10に「msiアフターバーナー」「Rival tuner statistic server」「scrcpy」をインストール
  2. 「msiアフターバーナー」と「Rival tuner statistic server」の設定
  3. Android端末側でUSBデバックを可能な状態に(開発者向けオプションの有効化)
  4. PCとAndroid端末をケーブルで接続し、「msiアフターバーナー」と「scrcpy」を起動
  5. Android画面のミラーリングと、ミラーリング時のフレームレートが表示される

Android画面ミラーリングの「scrcpy」については、別で記事にしているのでそちらを参考にして下さい。

ここでは割愛します。

msiアフターバーナーの設定

msiアフターバーナーの設定から行います。

msiアフターバーナーを開き「設定モニタリングの項目」まで進みます。

モニタリングの項目から、表示したい項目の設定をします。

今回はフレームレートの表示なので「フレームレート」「Min」「Avg」「Max」を有効化します。

「オンスクリーンディスプレイでの表示」にチェックを入れます。

どれを有効にして表示させるかについては、それぞれお好みで変更して下さい。

「Min」「Avg」「Max」「1%Low」「0.1%Low」は有効化しただけでは、ゲーム上(ミラーリング時)に表示されないので、そちらの設定をします。

「Min」などの設定下側の「オーバーライドグループネーム」にチェックを入れ、表示時の名前を入れます。

今回は”FPS Avg”にしました。

オーバーライドグループネームの設定が終わったら「Benchmark」に移動します。

ベンチマーク開始時と終了時のコマンドを設定します。
私は「Ctrl+Z or X」にしていますが、お好みで変更して下さい。

最後に「Rival tuner statistic server」の設定をします。

msiアフターバーナーをインストールすると一緒にインストールされるソフトです。

Rival tuner statistic serverを開き「Setup」をクリック。

Enable benchmark modeにチェックを入れ、有効化します。

これで、msiアフターバーナーの設定は完了です。

Android側の設定

Android端末側の設定をします。

予め、開発者向けオプションを有効化しておいて下さい。

開発者向けオプションの「USBデバック」と「スリープモードにしない」を有効化します。

フレームレート計測中に画面が勝手に消えないように有効化しておくと便利です。

あくまで起動中に端末の放置状態で自動的に消灯しないだけなので、電源を押せばスリープ状態になります。

Android側の設定は以上です。

実際に表示してみる

それぞれの設定が終わったらPCとAndroid端末をケーブルで接続し、「msiアフターバーナー」と「scrcpy」を起動します。

こんな感じで、Androidのミラーリング画面とフレームレートが表示されます。

ゲーム中の動作

【テスト環境】

・HUAWEI P30 Pro

・SoC:Kirin980(メモリ:6GB)

・Android 9(EMUI9)

・録画ソフト:OBS(FHD60FPS)

テストプレイ:3DMARK SLING SHOT

3Dグラフィック性能をテストする、国際的なベンチマークの「3DMARK SLING SHOT」を実行しました。

結果は画像の通りです。

「3DMARK」はベンチマーク実行中にFPSが表示されますが、「3DMARK」に表示される数値と「msiアフターバーナー」「scrcpy」でのFPS表示が一致していることが分かると思います。

テストプレイ:アズールレーン

30・60FPSに対応したアズールレーンでは、しっかり30FPS固定時は30FPS台でフレームレートが表示され、60まで上限を引き上げた場合も60FPS台を計測出来ています。

テストプレイ:原神

アズールレーンは動作要件が軽く、基本60張り付きなので激重で有名な原神もテストしました。

画像だと伝わりにくいと思ったので、PC側で録画した動画を載せておきます。

処理落ちによるフレームレート低下時、20FPS前後のガックガクでモッサモサ具合もしっかり確認出来ました。

正確とまでは行かないかもしれませんが、FPS表示が無い時よりもどのくらいで動作しているのかが、可視化出来たと思います。

まとめ

自分でも気になった、スマホゲームのフレームレート表示方法についてやってみました。

ネット上に全然情報がなく、恐らく皆さんが知りたいであろう「スマホ単体でFPSを表示する」などからは、かけ離れてしまいましたが、概ね目標の「PCのようにゲーム中のフレームレートを表示すること」は実現出来たと思います。

最大FPSが33・63と多少前後しますが、記事の内容を確認して頂ければ分かると思いますが、誤差レベルまでの精度でスマホゲームのフレームレート計測が可能なことが分かると思います。

少なくとも「スマホ フレームレート 表示」などで検索すると出てくる「FPSメーター」なるアプリよりは高い精度だと思います。