見出し画像

遅延測定器でBrook UFB、Pico Fighting Board、ポーリングレート変更したRAP.Nを比較する@鉄拳7


はじめに

「リフレッシュレートを細かく変更して違いを見ていく」という予定を何度も書いてきましたが、その前にBrook UFBなどの実際の数値を見ておきたいと思います。

今回はUFBだけでなく、UFBよりさらに低遅延と評判のPico Fighting Board、さらにポーリングレートを変更したRAP.Nも一緒に比較していきます。
また併せて垂直同期ONで遅延がどう変わるのかもチェックしました(UFB使用時のみ)。

注意事項

あくまで自分の手元環境での結果なので、機材・PCスペック、ソフトウェアのバージョンなどによって結果が変わるかもしれません。また気をつけてはいますが、何らかのミスがあったりする可能性も否定できません。

関連記事

ユニバーサル遅延測定器の使い方や仕組み等は下記を参照してください。

計測対象

  • Steam版 鉄拳7 240Hz(ASUS ROG PG258Q)

  • PS4版 鉄拳7

  • Brook UFB

  • Pico Fighting Board

  • RAP.N

結果

最初に結果を書いておきます。

Steam版所感

ちょっと予想外の結果です。最速は極小差でPico Fighting Boardですが、ポーリングレートを変更したRAP.Nも同等という結果となりました。Brook UFBが2msほど負けています。ポーリングレート設定については後述します。

また遅延に差が出るとは言っても、フレーム帯域で見ると、これまでの測定より微妙な差にはなってきています。全体にツメの部分という感じでしょうか。

とはいえRAP.Nのポーリングレート1000Hzは約-7msと、インパクトの大きい数値

60fpsで言うと1F未満のところでの差であることも多いので、ここからはms(1/1000秒)の単位で比較するようにした方が良いかもしれません。

PS4版所感

これは想像通りの結果でした。Pico Fighting Boardの速さが際立ちます。
ただし後述しますが、Pico Fighting BoardをPS4に繋ぐ際は、ファームウェアの仕様によりレガシーコントローラ扱いとなります。このためゲームタイトルによってはそもそも使えない/遅延が大きい可能性があります。

ポーリングレート設定とは

ポーリングレートですが、ここではPCの本体がデバイスに向けて「何か入力あります?」と問い合わせる回数/秒のことです。

PCゲーマーであればマウスやキーボードのポーリングレートを上げている人もいるかもしれません。ゲーミングマウスを使っていれば、設定ソフトで選べることが多いでしょう。ポーリングレートを高くしておけば、その分、マウスカーソルの動きがなめらかになります。

以下、ちょっと複雑な話になりますが、いちおう解説しておきます。
※設定だけ済ませたいという方は読み飛ばして、下の方に貼ってある別ブログの記事へ飛んでください

「ポーリング」は英語で"Polling"と言います。"Poll"というのは選挙の際によく使われる言葉で、投票そのもののことや票を投じることなどを示します。しかし、ここではもう一つの意味の「世論調査をする」「聞き取り調査を行う」というニュアンスの方が近いでしょう。「ご町内でゴミ捨て場の設備を新調するかどうか、聞き取り調査をした」というような時に使います。一軒一軒回って聞き取るイメージですね。それがPCでは各個のデバイスに「問い合わせる」の意味となるわけです。

デバイスの側に「うおおお俺の入力を通せ!」とはやらせず、PCの側が聞き回るようにしている、というのは必要なことで、各デバイスが好き勝手なタイミングで通信しようとすると処理などが競合して不具合に繋がる可能性があるためです。PC側から「何か要求はないですか?」と問い合わせがあった時だけ「あ、これ入力してください」とすることで平和が保たれているわけですね。

さて、アケコン等のゲームコントローラはUSBデバイスとして認識されますが、たとえばPS4デュアルショックやPS4用のアケコンの場合、ポーリングレートはデフォルトで250Hzとなっています。秒間250回ほど入力があったかどうかチェックしているのですが、これで十分かと言われると、実はまだ詰める余地があります。

PCゲームの場合、60fpsのゲームが秒間60回処理をしているのに対して、入力の方は250Hzなら秒間250回チェックしますが、これらは示し合わせて開始タイミングを揃えたり(同期)してはいないので、かみ合わせによってどうしても端数が生じます。

60fpsのゲーム …… 16.68msに1回処理が走る
ポーリングレート250HzのUSBデバイス …… 4msに1回入力をチェックする
 ↓
開始から16msまではかみ合うのですが、最後の0.68msに入力が来た場合はポーリングが間に合いません。結果、本来は1/60秒に間に合っているのに次のフレームで処理されることになります。ポーリングのタイミングが1Fごとに0.68msずつ遅れていくと言っても良いでしょう。

1F、2F、3F……とゲームが進行し、1Fごとの遅延が溜まっていくと、いずれは4msを超えます。その瞬間、ポーリングしていたPCは遅れに気付き、「あれ? 16msの間に4回ポーリングしたけど、遅延の合計が4msを超えてるから、16+4=20msあるじゃん。もう1回ポーリングできるドン!」となって、このフレームに限り20msの間、入力受付をすることでズレをごまかそうとします。

そんな対応をしたところで、60fpsゲームにとっての1Fが16.68msであるという現実は変わりませんから、「このフレームだけ1F=20msで入力を受け付けます。テヘペロ」とか言われても、「おいィ? 入力が遅れるじゃねーか!」となるわけですね。

しかしもし、1秒間に聞き取りをする回数、つまりポーリングレートを秒間1000回(1000Hz)に増やしたらどうでしょうか? そうすると、PCがズレに気付くのが速くなります。20ms経つまで気付かなかったアホの子が、なんと17ms目で気付いて修正してくれるようになるのです。気が利きますね。

そこでポーリングレートを変更できるソフトを使い、アケコンのポーリングレートを1000Hzにしよう……という話になるわけです。

実際の設定は下記ブログの記事などを参考に。エラーが出る場合には後述の動画を参考にしてください。その際、セキュアブートはONのまま設定を変えた方が良いと思います。レジストリをいじったりといった危険なことも必要となるので、ある程度PCの知識がある人が行ってください。またポーリングレートを上げると、その分CPUに負荷が掛かる、ということも承知しておきましょう。

hidusbfを使って設定を変更する

また下記がポーリングレートによる遅延について、一番詳しく書かれているブログ記事だと思います。

hidusbfでの設定方法

その他

なお、Brook UFBやPico Fighting Boardはデフォルトでポーリングレート1000Hzになっているそうです。今回、いちおうソフトで1000Hzに設定しての計測もしてみましたが、Brook UFBに関しては「何も変わらない」という想定通りの結果が出ました。しかしPico Fighting Boardについては1.25ms程度ですが数値が良くなっており、これはどういうことなのか、首をかしげています……。

もし今後、「ポーリングレート8000Hzじゃ!」とかできるようになれば、理論上、より遅延が改善することになりますが、低減するフレーム数で言うとそこまで大きくはならないのかなという気もしますね。実際、ゲーミングマウスでは8000Hzのポーリングレートが出せる製品もありますが、ゲーム側が対応していなかったりすることもあり、多くのFPSゲーマーが負荷とのバランスなども考えて1000Hzくらいに設定しているのではないでしょうか。
※自分もゲーミングマウスは1000Hzにしてます

またこの問題はPS4などのコンソールでは起きません。逆を言えばPS4などはこういった設定変更ができない≒基板の能力がそのまま出ることになり、今回のような結果となった、とも言えるでしょう。

Pico Fighting Boardとは

Raspberry Pi Picoというマイコン搭載の開発基板に、ゲームコントローラーを制御できるファームウェアを入れて、アケコン用基板として使おう、というものです。詳しくは下記を参照してください。

開発基板自体は非常にお安く手に入りますし、それを元にBrook UFB風の基板に装着したものを自作し、販売している人もいます。こういったアケコンに搭載しやすくした基板を俗にPico Fighting Boardと呼んでいます。

Pico Fighting Boardはともかく低遅延がウリで、「Brook UFBよりも速い」という話はよく聞かれます。

注意点として、ファームウェアの仕様で対応機種がBrook UFBよりも少ないことには気をつけましょう。一般的なゲーム機で言うと、PC、Nintendo Switch、PS3、PS4(ただしレガシーコントローラ扱い)……に限られます。ファームウェアのドキュメントからFAQを読むと、PS4や PS5、Xbox OneやXbox Seriesは、認証されていない入力デバイスを弾くようセキュリティ上の制約を設定しているようで、この点が解決しない限り、今後の対応も予定していないとのことです。

垂直同期について

垂直同期OFF時は3.74Fのところ、ON時には5.10Fですから、明確に遅延が増えることが分かります。

また平均的に数値が増えるのではなく、垂直同期OFF時と数値的にあまり変わらない時もあれば、一気に遅延が増える時もあるなどバラつきが激しかったです。これは目視していても明白で、処理落ちした時とはやや違った感じで画面がガクッとなります。

通説通り垂直同期はOFFでプレイした方が良いでしょう。

結局何が良いのか

総括するにはすこし早いのですが、遅延を減らしたい時に結局どうするのよ、という話をするとしたら、あくまで鉄拳7に関してはですが、以下のようなことが言えると思います。

  • Steam環境でしかプレイしない → RAP.Nでポーリングレート変更

  • PS4環境でプレイすること(必要)がある → Pico Fighting Board

  • 色々なハードで使い回したい → Brook UFB

RAP.N以外のアケコンについても、ポーリングレートを変更すれば十分な速さになりそうな気はしますが、まだ正確なところは分かりません。今後調査予定。

PS4環境でプレイする「必要」がある、というのは、大規模大会(EVO)や公式大会(TWT)で、レギュレーションによりPS4が採用されている場合のことです。プロやプロに近いプレイヤー以外はあまり関係ないかもしれないですが、EVOなどは一般参加者も多いでしょう。ただし現地で機材トラブルがあった際、一般的でない改造をしたアケコンではリカバリがしづらいと思うので、そこは注意したいです。

ハードの使い回しに関してはBrook UFBがベストで、「Switch移植されたSTGもやるけど、『虫姫さまふたり』はXbox360版しか出てないんじゃ!」といった場合に重宝します(してます)。

次回の予定

ちょっと面倒なことになりました。

下記はデフォルト設定の各種アケコンと、Brook UFBの遅延を比較したデータで、これを見た時点では「Brook UFBが最速だから、各種遅延もこれで測って比較すればOKだな」という目算を立てていました。

しかし、ポーリングレート変更後のRAP.NがBrook UFB超え、しかもここまで良い数字を叩き出したとなると「じゃあ他のアケコンはどうなのか? Qanbaは? Pantheraは? Fighting Edgeは??」ということに当然なってきます。アケコンごとの比較もやろうとは思っていたのですが、手持ちのものだけで済ませる予定でした。メジャーどころでも所持していない製品は多いので、どうしたものか……。Fighting Edgeなどはすでに換装してしまったので、元基板を引っ張り出してきてなんとか使えるようにする必要がありそうです。

いずれにせよ「次はリフレッシュレートごとの~」とか言っていた話はいったん保留で、まずはアケコンごとの差を調べ、その上でリフレッシュレートごとの計測に使うモノを選定してから先に進みたいと思います。

一方で、とりあえずSteam版の鉄拳7に関してだけ言えば、4Fを切ってきたというのはなかなか嬉しいことです。これが3F未満になってくれれば非常に快適だとは思いますが、そのあたりは次回作以降に期待でしょうか……。

PS4版については、Pico Fighting Boardが「PS4に関してはレガシーコントーラ扱い」ということを知ってから薄々気付いてはいたのですが、ゲームタイトルによって挙動が異なる可能性があるため、残念ながら手放しでPico Fighting Boardを勧める訳にはいきません。各タイトルごとに使えるのか、使えたとして遅延はどれくらいなのかを調べる必要もあり、これまた面倒です。この点についてはあまり広く調べる予定はありませんが、メジャーなものや、一部、自分の触る可能性があるタイトルは調べるかもしれません。

今回は以上となります。お疲れ様でした。


いいなと思ったら応援しよう!