コメントで教えてもらった、Google Play上で配信されているAndroid向けのFPS表示アプリ”FPS Monitor”こと「TakoStats-FPS&Perf overlay」を試しました。
「TakoStats-FPS&Perf overlay」について
「TakoStats-FPS&Perf overlay」は、アプリのフレームレート、CPU使用率などをオーバレイ表示可能なアプリ。
私がテスト・把握している限りですが…現状、Google Play上で配信されている”FPSメーター”や”FPS表示”を謳うAndroidアプリの中で数少ない、マトモな精度で計測可能なアプリです。
更にTakoStats-FPS&Perf overlayは、Shizukuというroot/非rootデバイスで機能するアプリ(API)を用いることで、adbによる手動での起動が必要になりますが、root権限不要でもFPSを表示することが可能となっています。
5分間の表示・計測が可能な”free plan”と無制限の”Lifetime plan”の2つがあり、5分以上の計測を行う場合は430円課金することで無制限に使用可能になります。
Shizuku及びTakoStats-FPS&Perf overlayは、Xingchen&Rikka氏によって提供されており、Shizuku APIはGifHubでも公開されています。
現在も機能追加や更新が行われており、以前は”FPS Monitor”として配信されていました。今後も機能が追加されるようです。
ダウンロードリンク
【Shizuku】
【TakoStats-FPS&Perf overlay】
導入
ShizukuとTakoStats-FPS&Perf overlayをダウンロード。
Shizukuでの設定
Shizukuを起動し、非rootデバイスの場合は「コンピュータに接続して開始する」からadbコマンドを表示し、コマンドを入力してShizukuを実行させます。Android 11以降ならワイヤレスデバックでも開始できます。
Windowsターミナル(コマンドプロンプト)に、以下のコマンドを入力します。
adb shell sh /storage/emulated/0/Android/data/moe.shizuku.privileged.api/start.sh
ちなみにShizukuは、前述の通り非rootデバイスではadbでの実行のため、adbを介した他のアプリやツールが先にある場合は排他動作になる可能性があります。(例:scrcpyでのミラーリング等)
root化済みのデバイスであれば、Shizukuにスーパーユーザー権限を許可すればデバイス単体で実行できます。
再起動後も自動で起動してくれるので、手動でShizukuを起動する必要がなくなります。(MagiskモジュールのSuiでも可)
何れかの方法で開始させ”Shizukuは実行中”となっていればOKです。そのまま「承認されたアプリケーション」から”アプリケーション管理”へ進み、TakoStats-FPS&Perf overlay(FPS Monitor)を有効化します。
TakoStats-FPS&Perf overlay(FPS Monitor)での設定
TakoStats-FPS&Perf overlay(FPS Monitor)を起動し”Service is not running”のstartをタップして開始させます。
多分、この辺りの前後で”他のアプリの上に重ねて表示”を求められるので、許可しておきます。
何やかんやするとグレーアウトしていた”Overlay”と”Records”が有効になり、右上にFPSのカウンターが表示されるようになります。
TakoStats-FPS&Perf overlay(FPS Monitor)
Overlay
オーバーレイ表示時の内容などに関する項目。
”Compatibility mode overlay”は所謂互換モードで、動作が不安定だったり上手く行かない場合に使用。
項目 | 内容 |
Layer name | FPSを表示しているレイヤーのアプリ名を表示 |
CPU utilization | CPU使用率を表示/非表示 |
CPU temperature | CPU温度を表示/非表示 |
GPU temperature | GPU温度を表示/非表示 |
Battery temperature | バッテリー温度を表示/非表示 |
Device skin temperature | デバイス表面の温度(?)を表示/非表示 |
Text size | オーバーレイ表示している内容のテキストサイズを変更 |
Horizontal offset | 水平方向の位置調整 |
Vertcal offset | 垂直方向の位置調整 |
temperature(温度)系の機能は何故か、使用したXiaomi Mi 11i(Redmi K40 Pro+)だとセンサー類のエラーっぽい挙動になり、一瞬だけ有効化されましたが…ほぼ使い物にならない状態でした。
まぁ…別にSoC内のCPU・GPU温度はTakoStats-FPS&Perf overlay以外でも簡単に確認できますからね。どちらかといえばリアルタイムのGPUクロックを見れるアプリが少数なので、そっちの方が実用的な気がします。
TakoStats-FPS&Perf overlay(FPS Monitor)実行中は通知バーにも常駐し、通知から表示のON/OFFが可能。
”Show overlay”でオーバーレイを表示、”Hide overlay”でオーバレイ表示を隠せます。
Records
パフォーマンスの記録に関する項目。
項目 | 内容 |
Choose apps to record | 記録したいアプリを一覧から選択 |
View records | 記録した内容を確認 |
記録は選択したアプリを起動した時点で開始され、アプリを終了した段階で取得も終了します。
普通にやるとロード画面などを挟むことになるので注意が必要です。予め計測するアプリを起動しておき、Recordsのリストが”No records”の状態で計測を開始することで、ロードやタイトル画面を飛ばした部分だけ計測できます。
記録したデータは”View records”から確認可能。
計測範囲の平均FPS値を自動で出してくれる他、チャートデータのグラフ表示まで出してくれます。計測データが不要になった場合は右上のゴミ箱で消去可。
Purchase/My Purchase
課金前は”Purchase”、課金後は購入した自分のプランの確認的な”My Purchase”に変わります。
無制限に使えるフルバージョンのLifetime planは前述の通り430円です。
TakoStats-FPS&Perf overlay(FPS Monitor)はリリースから日が浅いのか、Store上や個人ブログでのレビューは私がこの記事を書いている時点では”0”で、430円とはいえ実用性を確認するためだけに人柱購入しました。
まぁ…結果オーライでしたが。
フレームレート計測の実用性をテスト
テスト環境
TakoStats-FPS&Perf overlay(FPS Monitor)が、何となく使えそうな雰囲気は出ていますが…実際にゲームプレイ時のFPS表示・計測が実用足り得るのかテストします。
何しろマトモに見せかけておいて、蓋を開けたら表示していたのはリフレッシュレートでした!だったら笑えませんし、課金までしたのに計測値が実動作と乖離していたら話になりません。
ゲームテストにはレビュー等と同じくプロセカと原神を使用、端末にはカスタムROM「Project Elixir」を焼いたMagisk導入済みのXiaomi Mi 11i(Redmi K40 Pro+)を用います。
FPS計測の比較対象には、XiaomiやmiHoYoなどの大手企業も採用しているプロ向けの「WeTest PerfDog」を用いて、TakoStats-FPS&Perf overlay(FPS Monitor)が実用域の値を計測できるか比較します。
その他、備考含めた環境は以下の通りです。
デバイス | Xiaomi Mi 11i(Redmi K40 Pro+) |
OS | Android 13(Project Elixir) |
SoC | Snapdragon 888 |
動作クロック | ・Cortex-X1(2.15GHz) ・Cortex-A78(2.11GHz) ・Cortex-A55(1.8GHz@固定) ・Adreno 660(350/700~740MHz) |
RAM | 8GB(LPDDR5) |
ストレージ | 128GB(UFS 3.1) |
備考 | PC:Windows 11 Pro 64bit(22H2) 比較ソフト:WeTest PerfDog(iv7.4) ミラーリング:scrsndcpy(v1.3) プロセカ(Ver 2.3.5) 原神(Ver 3.2) |
プロジェクトセカイ カラフルステージ! feat.初音ミク「アイディスマイル」
プロセカの「アイディスマイル」を3DMV高品質+120fps、ノーツ速度12にてAUTO LIVEで動作させました。
バグってAdreno 660の周波数が350MHz固定、GPU使用率が見えなくなっていて100fps前後でブレてますが、本来ならこの後の「悔やむと書いてミライ」同様に110fps前後はSnapdragon 888なら出せます。
ロードやリザルトを含めた12分弱の計測で、WeTest PerfDogでは平均89.4fpsでした。
TakoStats-FPS&Perf overlay(FPS Monitor)では平均88.223fpsでした。取得できたグラフの形はほぼ同じで計測値も1fpsしか差異がないため、誤差程度だと言っていいです。
シーン別に確認すると、WeTest PerfDog(97fps)・TakoStats-FPS&Perf overlay(95.2fps)。
WeTest PerfDog(99fps)・TakoStats-FPS&Perf overlay(99.2fps)。
WeTest PerfDog(99fps)・TakoStats-FPS&Perf overlay(99.3fps)。
といった感じで、計測の開始タイミングがWeTest PerfDogとTakoStats-FPS&Perf overlayでズレているため誤差が生じていますが、乖離した値ではないことが確認できました。
プロジェクトセカイ カラフルステージ! feat.初音ミク「悔やむと書いてミライ」
プロセカの「悔やむと書いてミライ」を3DMV高品質+120fps、ノーツ速度12にてAUTO LIVEで動作させました。
ロードやリザルトを含めた10分弱の計測で、WeTest PerfDogでは平均96.5fpsでした。
TakoStats-FPS&Perf overlay(FPS Monitor)では平均96.698fpsでした。今度はこちらの方がPerfDogより平均値が高く測定されました。取得グラフは1回目の「アイディスマイル」と同様にぱっと見、差異はないです。
シーン別に確認すると、WeTest PerfDog(111fps)・TakoStats-FPS&Perf overlay(110.1fps)。
WeTest PerfDog(110fps)・TakoStats-FPS&Perf overlay(110.1fps)。
WeTest PerfDog(109.1fps)・TakoStats-FPS&Perf overlay(109.1fps)。
といった具合でした。
2回目の測定は1回目より上手く行き、WeTest PerfDogとTakoStats-FPS&Perf overlayで殆ど同じ値を測定できました。結果、平均値も限りなく両者で近い値になったようです。
原神(Genshin Impact)@秘境挑戦
原神を最高画質60fpsで、秘境:征討領域の「七葉寂照秘密主」「禍津御建鳴神命」「若陀龍王」の順に挑戦して動作を確認しました。
移動やロードを含めた10分弱の計測で、WeTest PerfDogでは平均51.4fpsでした。
TakoStats-FPS&Perf overlay(FPS Monitor)では平均49.759fpsでした。
グラフは同じようなデータですが、ロードと通常動作で頻繁にFPSが上下し、常に安定したフレームレートが出る訳ではない原神だと2fpsほどブレました。2fpsのブレで済んだとも言えますが。
シーン別に確認すると、WeTest PerfDog(59fps)・TakoStats-FPS&Perf overlay(59.5fps)。
WeTest PerfDog(57fps)・TakoStats-FPS&Perf overlay(56.5fps)。
WeTest PerfDog(49fps)・TakoStats-FPS&Perf overlay(49.2fps)。
ロード画面以外でも、TakoStats-FPS&Perf overlayはしっかりと下がるところは下がった値が計測できてます。
余談ですが、やはり秘境挑戦で原神の実動作を計測するのは論外ですね。フレームレートが出やすいが故に参考値にすらならない。
今回は、TakoStats-FPS&Perf overlayの値を確かめるのでやってますが…若陀龍王の第3形態時以外は、定格よりも動作クロックの低いSnapdragon 888ですらほぼ60fpsに張り付くのでやるだけ無意味です。
Snapdragon 865相当の時点で、テイワットから隔離された秘境挑戦の60fps安定は実現できていましたし。
原神(Genshin Impact)@テイワット
原神を最高画質60fpsにて、オープンワールドのテイワット(動作の軽いモンド)でデイリー等やヒルチャールと軽く戦闘するだけの、カジェット系のYouTuber等がよく行っている無意味な動作検証を真似て動作を確認しました。
移動やロードを含めた10分の計測で、WeTest PerfDogでは平均54.7fpsでした。
TakoStats-FPS&Perf overlay(FPS Monitor)では平均54.563fpsでした。
シーン別に確認すると、WeTest PerfDog(59fps)・TakoStats-FPS&Perf overlay(59fps)。
WeTest PerfDog(53fps)・TakoStats-FPS&Perf overlay(54.9fps)。
WeTest PerfDog(49fps)・TakoStats-FPS&Perf overlay(44.2fps)。
傾向は今までと同じです。タイミングが別々なのでズレや多少の誤差はありますが、TakoStats-FPS&Perf overlayは十分にマトモなFPSが表示・計測可能なアプリだと見て良さそうです。
あと、丁度良い機会だったので実測しましたが…モンド軽すぎ。平原ばかりなので当然と言えば当然ですが。
Xiaomi Mi 11i(Redmi K40 Pro+)のテイワットでの動作はスメールだと平均44.6fps、MIUI+ゲームターボありで稲妻だと平均37.5fpsなのに、11月で端末も熱くなりにくいとはいえモンドだと平均54.7fps。
あのままデイリーだけで、スメールに移動せずドレイクをシバかなかったら平均55~56fpsくらいだったかもです。
何処で計測したか記載しない or モンドでスマホ版原神の動作を計測した情報は、頭ヒルチャールだと改めて実感です。モンドでは快適に遊べるけど、スメールでは遊べないスマホとか沢山ありそう(小並)。
4つのテストデータをまとめると…
WeTest PerfDog (基準値) | TakoStats-FPS&Perf overlay (実測値) | 誤差率 | |
プロセカ(1回目) | 89.4fps | 88.2fps | 1.3% |
プロセカ(2回目) | 96.5fps | 96.6fps | 0.1% |
原神(1回目) | 51.4fps | 49.7fps | 3.4% |
原神(2回目) | 54.7fps | 54.5fps | 0.3% |
WeTest PerfDogを基準とした場合、TakoStats-FPS&Perf overlayのWeTest PerfDogに対する、平均的な誤差率は約1.3%です。
1.3%程度の誤差なら、得られたデータのグラフがWeTest PerfDogとTakoStats-FPS&Perf overlayで、殆ど同じで偶然ではないことにも合点が行きます。
私のガバガバな測定方法でも、プロ向けかつ月額の場合は安くても$9.90前後するPerfDogに対してたった1.3%程度の誤差率しかない値を”430円で無制限”に計測可能です。
もっと言えば、使い方をある程度把握した2回目の測定はどちらも0.5%以下なので、もうほぼWeTest PerfDogと遜色ないと言っても過言ではないです。
あとがき
はっきり言って430円ならこれは破格です。しかもWeTest PerfDogを導入する敷居の高さを考えたらお釣りが来るレベルです。
adb環境のPCがあればroot権限不要で使えますし、Magisk導入済みのデバイスであれば制約もほぼないので「GLTools」みたいに、使える代わりにコイン獲得などの面倒な手順を踏む必要もなし。
使い勝手や機能面は、流石にプロ向けのWeTest PerfDogにはやや及ばない部分もありますが、430円でこれなら一般ユーザーには十分だと思います。FPS表示だけでなく、平均値やデータグラフまで出してくれますし。
多分、そのうち各所に広まった場合は導入のお手軽さから、WeTest PerfDogやGameBenchといった導入が面倒くさいツールを食って、Androidでゲーム時にFPSを表示・計測する際の定番となりそうな予感がしてます。
改悪されず、今後も機能追加と改善が進む限り”は”「TakoStats-FPS&Perf overlay」は隠れた優秀なツールだと言えます。
個人的には当たりな部類で、とっつきやすくて得られるデータが出鱈目じゃない、それでいてちゃんと使えるAndroid向けのFPS表示・計測アプリを探してる人に、普通におすすめできるアプリだと思いました。
ここまでマトモに使えるFPS表示アプリの登場をどれ程待っていたことか…。
コメント