[マウス]クリックとセンサーの入力遅延を測定してみる

マウス

マウスの応答速度はFPSゲームにおいて大事な要素です。

簡単で手早く行える方法でゲーミングマウスのセンサーとクリックの測定をしてみました。

はじめ

遅延があるないと表現していますが、相対的に少ない、多いという意味ですのであしからず

マウスの遅延

マウスの遅延を測定している人たちは調べれば出てきます。そこで結果は公開されていますが、実際に試してみて納得したいところです。

クリック遅延でよく知られているデータはここらへんでしょうか。

また検証をせずとも、入力遅延はエイムゲームでの感覚やスコア比較のみで十分どれが優秀なのか判別できてしまうモノではあると感じます。

そのため熱意を向けていないのであれば、簡単でかつ時間もかからない雑測定で検証しなければ割に合わないとです。

当記事では簡単にできるマウスの入力遅延比較方法を紹介します。ぜひ手元のマウスで比較し発信してみてください。

測定方法としてはマウステスターが簡単にマウスからの入力データを得ることができるため採用します。

無線マウスの遅延

わざわざ言うことではないかもしれませんがデバイスに興味がない人は無線マウスは有線と差がないと思い込んでいる人が割と多いです。

無線接続は単純にドングルをpcに有線接続して行います。よって無線は無線+有線でPCに接続されていることから有線と全く差がないあるいは有利であるなんてことはあり得ないとシンプルに考えればわかることです。

ドングルを直接刺したときケーブルを信号が伝搬する時間分得すると思う人もいるかもしれませんが、電気長はせいぜいμsのオーダーであると思います。

マウステスター

マウステスターの解説についてはpiaknowさんがまとめていますのでご一読されてはいかがでしょうか。投げます。

MouseTesterの使い方をまとめてみた – 🥕🥕 (hatenablog.com)

計測に使用する項目について簡単に説明しておきます。

  • dual devices

2つのマウスについてぞれぞれ別に入力を計測し表示することができます。青が1個目、緑が2個目のマウスの波形になります。

  • interval

マウスのポーリングのスパンを表示します。ポーリングレート1000Hzだとしたら1msがインターバルになります。インターバルは単位がmsですから周波数Hzよりもこの場合向いているといえます。

当記事ではmousetesterが絶対的に正しいと仮定し検証を行うものです。

例として以下に2つのマウスを適当に動かしたときのintervalを示します。

ポーリングレート1000Hz設定なためおよそ1msごとにデータが入力されていることが分かります。

また上では青(gpro)が0.2ms程先行して入力されていますが、下ではs1cが先行して入力されていることが分かります。

2つのマウスは同時にポーリングされるのではなくどちらかが先行するものであり、またUSBを再接続するまでこの順序は不変であります。

今回の測定において1ms単位での遅延を対象としていますので、結果への影響は小さいと判断し考慮しません。

  • xcount

マウスがポーリングごとにpcに送信したマウスの移動距離になります。つまり左右に振った時の波形の振幅が0の時にマウスは静止しているということです。積分していくとマウスが実際に動いている軌跡となります(xsum)

クリック遅延

マウスの遅延について言及されるとき一般的にはセンサー遅延でなくクリック遅延を指すことが多というか99%そうです。最近の無線マウスの潮流でセンサー遅延意識する人も少しづつ増えてきてはいるでしょうか。

まずクリックタイミング系のエイムゲームをプレイすることでクリック応答の良さはかなりはっきりと差を体感できてしまうと感じます。(測定するまでもない!)

当然ですがフルオート射撃中はMBおしっぱなので、クリック遅延がパフォーマンスに影響を与えることはありません。

またクリック応答自体、明らかに遅いのでなければクリックタイミングに慣れてしまう部分があるとも感じます。

何よりクリック遅延!という割にはクリック遅延の大きなマウスが当たり前に人気であることから実際大して気にされていないように感じます。

数値としてはデバウンスタイム0~10ms程度の応答速度の幅を持ちマウスが流通していますがクリック遅延がやばいという話はあまり耳にしません。がセンサー遅延が10msもあったらやばいと皆さん感じるに違いありません。

また応答速度を速めた結果チャタリングが頻発しデバウンスタイムを大きくするという話はよく聞きます。クリック遅延=デバウンスといっても過言ではなく、いかにチャタリングを起こさずにデバウンスを0に近づけるかあるいは0にするかであります。

その一つの答えがまずクリックされた時点でpcに信号を送り、その後デバウンスタイムを設けることです。下記参照のこと

チャタリングをソフト的に解消しよう – 25KEYS

2つ目にみなさんご存じ光学式スイッチ等、機械式マイクロスイッチでない機構の導入です。光学式マイクロスイッチに関しては機構的にもカチッと接点が当たった瞬間でなく、カチッとばねが落ちていく途中でクリックされますので、感覚としては機械式マイクロスイッチよりもわずかに速いと感じることかと思います。

個人的にはデバウンス0の時点でそこから早くしようがありませんので、機構的な工夫とクリック感の両立がなされていくとよいなと感じます。(クリック感という点において機械式マイクロスイッチにまだまだ分がある)。

クリック遅延にこだわるのであればデバウンスタイムが0のマウスを使用しましょう、それだけです。(実際にはikari等の例外がありますが)

センサー遅延

体感としてセンサー遅延があるものは明らかにパフォーマンスが落ちます。通常の有線と比べ1ms以上遅れるものはFPSに適切でなく、2ms以上遅れるものは論外であると私は感じます。

センサー遅延はエイムゲームで有線無線切り替えながらスコアを比較してみれば1msの違いでも差が出てくると思います。それで無線の方がスコア高いんだがというのならば無線を使用すればよいと思います。遅延があろうと強いほうが正義です。

センサー遅延があるとモニター上で視点が遅れます。1msの遅延がどの程度かモニターの許容遅延を例にしてみます。1/240Hz=4.2ms、1/360Hz=2.8ms 差はおよそ1msです。

つまり360Hzモニターを使用し1msセンサー遅延があるマウスを使用している人と、240Hzモニターを使用しセンサー遅延がないマウスを使用している人は同じということです。高価な360Hzモニターを買ったにもかかわらず遅いマウスを使用することでアドバンテージがなくなってしまっています。

実際にどうかではなく一つのものの例え、イメージでしかありませんが1msというのはそれくらいの時間です。

視覚的に遅延が生じるセンサー遅延に関してクリック遅延よりも私は重要と考えています。

多くのまともな有線マウスはそもそもセンサー遅延の差がほぼ0です。なのでそもそもセンサー遅延を問題視する必要は本来ないわけです。しかしちらほらとセンサー遅延があるマウスは存在し、それらが割と普及しているわけです(fmやdm、glorious等)。

なので有線マウスにおいてはセンサー遅延が小さなものを、ではなくセンサー遅延のないまともなものを使用しましょうというだけです。

無線マウスにおいてはより小さな遅延のものを、という話になりますが現状Logi一択であります。今後に期待です。

マウスの初動遅れ

初動における測定ではこの遅延分がプラスされるため考慮する必要があります。

マウスが動いている状態(常時pcと通信している)と、マウスを動かし始めあるいは止まった状態でクリックするとき(入力時点でpcと通信していない)とで入力速度に差があるモノがあります。

特に無線マウスで顕著です。いくつか手元にその手のがあった気がしますがどのマウスか忘れました。

初動遅れによる悪影響としてはエイムを置いているときなどでしょうか。基本的には考慮する必要がないといえます。

また見方によっては低ポーリングレートや低DPIも初動が遅いということができるかもしれません。

また無線マウスにおいては作業使用時等、スリープからの復帰が瞬時でなければストレスが溜まります。無線マウスは多く所有していないためわかりませんが、とりあえずLogi使っとけばいいのではないでしょうか。

クリック遅延の測定

測定系

多くのマウスではマイクロスイッチの中心ピンがHOTで5V、先頭のバネにつながっているピンがGND、手前のスイッチオフ状態でバネと短絡しているピンがGNDもしくははんだ付けされていません。

スイッチを押し込みHOTがGNDにshortするとクリックが押される仕組みです。

例外としてはSSのikari、egg、logi等で、HOTをGNDに落とすだけの方式ではないです。

クリック遅延を比較するには同時にクリックしてやればいいわけです。そこで、外部に同時クリックするためのスイッチを設け、そこにHOTとGNDをそれぞれ同時にクリックされるようにつなげてやればいいですよね。

押しやすくブレッドボードとマイクロスイッチ用意していますが、最低限必要なものはリード線だけです。

実際に同時クリックしmousetesterで記録したものがこちらになります。dual devicesモードでintervalの波形です。

青がgpro、緑がs1c

x軸左の17050付近がpress、右の17120付近がrelease

y軸75msの点がクリック入力されたhold時間です。

このようにintervalでマウスの信号を受け取った地点をプロットすることで、送信されたクリックのpress、release地点を知ることができます。

この結果を見るとs1cの方がx軸時間が早いタイミングでプロットされているため、gproよりs1cの方がクリックがpress、releaseともに早いという結果とみることができます。(結果が正しいかは別として)


先ほどはわかりやすくマウスを繋げましたが、HOTがGNDに落ちればよいので、GNDは共通でよいです。

promicro(数百円で買えるマイコンボード)からGNDを取ってみました。これで各デバイスには線を1本だけつなげばよいです。

slam click fixを考慮する

gproやxm1のクリック応答が遅い結果となり??となっていたところ、Piaknowさんにアドバイスをいただきました。

logi、razer、egg、一部のcorsairおよびroccatのマウスはデバウンス減らしながらマウスを置きなおすときの誤爆(eggがslamclickと呼んでます)を減らすためにマウスが設置している時としていない時でデバウンスの方法を変えているのでそれが原因だという可能性があると思います

@Tw1tterIsGood

The slamclick fix by endgame gear

センサー部分に蓋をして再度計測してみると結果が大きく変わりクリック応答が速くなりました。

デバウンスタイムを測定する

デバウンスについてはググって下さい。

クリックの誤作動(例えばチャタリング)を防ぐためにクリックされてから一定時間待機する、つまりデバウンスタイム分だけ余計に遅延するということです。


一つ一つマウス間で比較してもいいですが、promicroでqmkを用いた自作キーボードとして左クリックを入力するようにし、測定してみます。これによりvs promicroですべてのマウスをpromicroを基準として遅延時間を測定することができます。

このときqmkによってdirect pinでキー入力されるように指定されており、マウス同様HOTがGNDに落ちることでクリックが入力されます。

デバイス同士つながるの良くないかなと思ってダイオード挟んだりしてみましたがまあ別に変らんからいいかという感じ

この時デバウンスタイムを増やすとどうなるのか見てみます。

qmk、自作キーボードの方をデバウンス0と10に設定し比較してみます

debounce time:0
debounce time:10

デバウンス0を見てみるとqmkの方が左側つまり早く入力しており、gproよりpressは9ms、releaseは13ms程度早いことが分かります。

デバウンス10を見てみます。pressはgproの方が早く、releaseは差が縮まっています。

デバウンスを0から10にすることで青のqmkが緑のgproに対し、x軸の右に移動つまり入力が10ms遅くなっていることが分かります。

デバウンスタイムによって入力が遅れていくことを確認することができました。

デバウンス=遅延が増える ということを確かめました。


また以降qmkはデバウンス0で使用し、qmkを基準として測定を行います。

またこの結果から、1keyデバイスではありますが、キーボードの方がマウスより入力が速いということが分かります。実際はキー数が増えるごとに遅くなっていきますがそれでも左手デバイスの規模であればマウスより早いです。

このことから、キーボードの応答速度の速さにこだわる人はそれ以上にマウスのクリック遅延にこだわっていなくてはおかしいです。

そうでなければ射撃ボタンをキーボードに割り振ることが必要ですよね。

キーボードだけ早さをこだわっても、デバウンスでクリックが遅いマウスを使っていてはちぐはぐで主張が矛盾するということです。


また、マウスのように常にセンサーで読み取った位置情報を更新し続ける必要はなく、スイッチが押された・離された時だけ信号を送ることから、キーボードのポーリングレートを高くしたところでマウスと比べ受けられる恩恵は少ないと言えます。1000hzにしたところで1ms周期で連続してデータを送ることがないからです。

逆に言えばポーリングレートを高く設定してもpc負荷は低いため設定上限にしてもパフォ-マンスへの影響は少なそうです。つまり、ポーリングレートが高いというのはキーボードの売り文句にはなりえないということです。

そう思うのですがどうなのでしょう。感覚的に高ポーリングレートの強い理屈がよくわかりません……無知です。

デバウンスと最低HOLD時間

同じくqmk vs gproです。今度はスイッチを素早くクリックするとどうなるのか見てみます。

こちらは普通にクリックしたときの結果です

gproの方がpress9ms、release13ms程度遅れていることが分かります。これがgproのqmkを基準とするクリック遅延性能とします。(slam clickはここでは考慮しません)

この時クリック時間(押してから離すまで)は20ms程度です。


次に素早く、15ms程度のクリック時間の図を示します。releaseが先ほどと異なり大きく遅れていることが分かります。

gproはクリック時間が短かった際の最低HOLD時間として44ms程度が設定されていることが分かります。

他マウスは20-30ms程度のものが多かったため、比較的長く設定されていることが分かります。Logiはチャタリング報告が多発し、スイッチをomron G1に置き換えたことは有名ですが、ファームウェアもチャタリング対策としてこのように最低HOLD時間が長く設定されたのではないかと憶測ですが思いました。


次によりクリック時間をさらに短くクリックしてみます。

上図はプロットが青のみつまりqmkはクリックを行いましたが、gproはクリックを行わなかったということです。

下図ではgproもクリックを行い、pressの部分が見えています。

gproは(センサーがマウスパッドから離れているslam clickオンの状態)ではクリック時間7ms以下の場合、クリックしたことにはならないようです。

素直にみるとこれがデバウンスタイムであると考えることができます。

デバウンスタイム間押し続けなければ入力されなかったことになるのがデバウンスの考え方です。

Zowie C のデバウンスタイム変更

Zowie Cシリーズはデバウンスタイムを変更できるようになりました。実際どうなのか見てみます。

まずs1cのクリック遅延ですがpress、releaseともに4ms程度という結果でした

このようにs1cのデバウンスタイム小設定では4msが設定されているようです。

4msのHold時間ではクリックが入力されていません。

4ms
5ms

デバウンスタイム大では7msに設定されているようです

またクリック遅延自体も3ms長くなっており、デバウンスが伸びた分入力も遅くなっていることが分かります。

7ms
8ms

また旧世代であるS2も測定してみましたが、デバウンスタイムは5ms、クリック遅延は2-15msの間で大きくばらつくという結果となりました。安定性という面でCシリーズの方が優秀であると感じます。

ここでデバウンスは5msであるのに、クリック遅延が2msの場合があるというのはおかしな気がします。これはこの認識しないクリック時間の短さがデバウンス由来でないか、この測定方法では正しく測れていないのか、OS側の処理としてそのぐらいの遅延時間を含んでいるのかもしれません。わかりませんが。

またこの時g pro heroが最低44msの間クリックすると押し続けられることと比較して、S1-Cはpress、releaseともに4msの遅延時間です。

このことからg pro heroのような仕様のマウスではpressが速いこととトレードオフでreleaseタイミングが連打時に限り遅くなるデメリットがあります。

高速連打した際につながらないことがあるかもしれません。

デバウンスを入力後に設けるマウス

zowie-cの結果(他のマウスでも測定済み)から、デバウンスタイムがクリックの応答速度を決める割合を大きく占めていることが分かります。デバウンス=qmk比遅れ時間

マウスでなくキーボードについての記事ですが、こちらが参考になると思います。

チャタリングをソフト的に解消しよう – 25KEYS

gproとxm1についてクリック応答が速く、デバウンスによって遅延していないと考えられます。

先述したslam click fixについてセンサー部に覆いをしたしてないで比較してみます。

覆いをしたとき、つまりマウスパッドに設置した状態であるときは+1msの低遅延な結果となりました。

覆いなし
覆いあり

xm1も同様でマウスパッドに設置したとき速い応答速度が得られました。

logi等々はクリック応答が根本的に優れていることが分かります。

マイクロスイッチの動作時間

測定系をちょっと変えて、qmkのHOTをスイッチオフの時に入力されるようにしてみます。

こうすることによって、マイクロスイッチをpressした際マイクロスイッチのばね動作分マウスが遅れ、

マイクロスイッチをreleaseした際ばね動作分qmkが遅れることになります。

これを先ほどまでの基準とした測定系と比較することでバネがどれくらいの時間でオンオフしているのか動作時間が分かります。

結果としては2msばねが動作する際にかかっていることが分かりました。スイッチによって変わるかもしれませんが

よって、単にHOTがGNDに落ちた地点でなく、バネが離れる地点でクリックするように設計してやればpress、releaseともに2ms程度クリック遅延を減少させることができそうです。

測定結果

複数マウスqmk比で測定結果を示します。ばらつくものは大体この辺かなという感じ。大量にサンプルとるのがよいのでしょうが暇があったらまた。

logiやegg等々はかなり早い入力となっています。zowie-cシリーズも及びませんがだいぶ優秀なのではないでしょうか。

同マウスの有線無線で比較するとLogi無線はクリック応答に差はなさそうです。

kinzuはどうしようもなく遅く許容できないと体感できるマウスですがminが20msを超えてきています。

クリック速度といえばikariという感じですが、qmkより速いという結果になりました速い。通信自体が異なっていそうですね

mousepressrelease
gpro(センサー接地)19
gpro(センサー浮かせ)913
xm1(センサー接地)27
xm1(センサー浮かせ)1414
s1c(debounce low)45
s1c(debounce high)78
vipermini(サイドボタン)88
katana1313
prowl(無線)(センサー浮かせ)914
prowl(有線)(センサー浮かせ)814
303sh(有線無線)(センサー浮かせ)812
kinzu v320-3020-30
g30244
ikari-1-1

実際にやってみてください。複数マウスとリード線あれば比較できます

光学式マイクロスイッチの遅延比較

光学式マイクロスイッチを分解しバネとばねの底打ち部分に銅箔テープを貼り付け、

光学式スイッチのdav3 vs 機械式スイッチのマイコンボードで測定を行った。

ばらつきはあるのだが結果としてpressがdav3のほうが1~2ms早く、releaseがdav3の方が~1ms遅かった。

press, releaseで逆転しているのは、接点が底打ちする(機械式)よりもシャッターが光を遮る(光学式)位置のほうが高いためと考えている。

そのためこの手の光学式マイクロスイッチは物理的に入力検知地点が機械式マイクロスイッチより早いため応答速度が速い部分があると思っている。(その分releaseは機械式に比べ物理的に遅い)

またその物理的差異を加味してもdav3のほうが早く、実装の面でも既存マウスよりdav3はクリック遅延が少ないことがわかる。(手元のマウスでマイコンボードより早いマウスはsteelseries ikariのみである)

またsynapseでのポーリングレート設定にかかわらずクリックは8kHzで動作するそうです。

Razer Viper 8k Delay Analysis

センサー遅延の測定

マウスのセンサー遅延をマウス間で比較してみます。

どうすればセンサー遅延が測定できるか考えるとマウスを同時に動かして、時間シフト量、ズレをみればそれがそのままセンサー遅延でなはずです。

よってmousetesterのdual devicesモードでマウスを2つ一緒に持って早く左右に振りx countを見ることでわかると単純に考えることができます。

実際にはxcountではそこまで精度が出ないのですが今回は1ms単位の遅延を観測するためこれで事足ります。

どこで見るかというと、振った切り返しの地点では同時に静止しているです。です。よってxcountが0になるタイミングは同じはず、です。そこを比較することで大雑把にセンサー遅延とします。

マウスの角度や振っている方向で変わってしまうので、y countも見ながら考慮します。が1ms以上の遅れがあると明らかに遅れてくるため、1ms以上の明らかな遅延を見る上ではそこまで気にせずともよいと思います。

性質上多分に誤差を含み、1ms以下はブレブレです。

ここで一例としてgproとgprowirelessの有線無線を振り比べてみたいと思います。

上の無線接続では1ms程度明らかに波形がシフトしていることが見て取れます。

下の有線接続ではちょっと早かったり遅かったり重なったりで、無線接続と比較しセンサー遅延が1ms程度改善することが分かります。

またこの結果には初動遅れは含まれておらず純粋なセンサー間の差異とみることができます。

logiのxsl以降の無線マウスは有線との差が1msあるいは未満に抑えられています。(所有している)他メーカーは軒並み1ms以上センサー遅延があります。

有線でも例えばdm1fpsなどはセンサー遅延がかなりあり使えたものではなくdm1fpsを使ってる時だけパフォーマンスが著しくひどいと体感できるほどでした。

glorious等のソフトウェア共用の3360マウスも1ms遅延があります。共用ソフトのものは避けた方がよさそうです。


またmotion delayについてよりよく検証されている投稿がありますのでよりぜひ参照してください。

まとめ

  • クリック遅延は基本的にデバウンス時間に依存している。よって入力後にデバウンスを設けているタイプのlogi等々が優秀である。zowie-cなどはそれに劣るが健闘している。
  • センサー遅延は有線でも割と1ms遅れているものは多いためマウス変えてなんか調子悪いときはそういうこともあるかもしれん。まともなマウスを使おう
  • クリックとセンサーで比較するとセンサーの方が先行して送信されている。logi等々の入力が速いマウスはほぼ同時であり、クリックとセンサーの感覚が合うと言えるかもしれない。
  • logiの無線マウスを見たときクリック遅延にほぼ差はないがセンサー遅延には差が見られた。

おわり

マウステスターを用いたマウスのクリック・センサー遅延の測定についてまとめてみました。相対値で測定できるとサンプル数も必要なくどちらが速いか?を知るだけなら楽でいいです。

一緒に振ったりマイクロスイッチ同士をつなげたりで簡単に測れるので気に入れば各自測定してみて共有してください。

そもそも1msとかわからんやろという人はぜひエイムゲでスコアや感覚のサンプル取って比較してみてください。何か違いを感じられれば良いほうを採用し、変わらないのならば好きなほうを使えばよいのではないでしょうか。

自分の中で線引きを作りましょう。1msがわからなくても2msは?3msは?となるとここからはわかるというラインがあるはずです。

低遅延が正義ではなくゲームパフォーマンスが出るほうが正義ですからね。

 

いくらかの助言をいただきました。また多くの刺激を受けています。Special thanks to @Tw1tterIsGood

ご存じだとは思いますが測定装置を作成してセンサー遅延等検証されているpiaknow氏を追うと当記事のような大雑把さではなく、詳しいことが知れてよいと思います。

関連記事:FPSに適したマウスのDPI・自分好みなDPIの探し方


コメント

タイトルとURLをコピーしました