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

マウス

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

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

スポンサーリンク

はじめ

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

マウスの遅延

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

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

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

そのため簡単でかつ時間もかからない雑測定で検証しなければ割に合わないと思っています。当記事では簡単にできるマウスの入力遅延の比較方法を紹介します。

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

無線マウスの遅延

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

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

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

マウステスター

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

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

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

  • dual devices

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

  • interval

マウスのポーリングのスパンを表示します。ポーリングレート1000Hzだとしたら1msがインターバルになります。

当記事ではマウスへの入力を受け取った時点で点がプロットされていくものとして使用しています。

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

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

また上では青(gpro)が0.2ms程先行して入力されていますが、下ではs1cが先行して入力されていることが分かります。USBの刺した順番などでどちらが先に入力されるかが決まったりしてそう。

このように2つのマウスを同時に使用すると当然ですが同時ではなくどちらかが先に入力されます。この順番は今回の測定において結果への影響はないため特に考慮しません。

  • xcount

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

クリック遅延

マウスの遅延について言及されるときクリック遅延を指すことが多いようです。

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

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

よりクリックが速いマウスに交換しすると慣れればより良いパフォーマンスを発揮できますが、最初はパフォーマンス向上するどころかタイミングがずれむしろ違和感を覚えます。

またトラッキング中はクリック遅延がパフォーマンスに影響を与えることはありません。

センサー遅延は視覚的に遅延が減りますがクリック遅延はタイミングです。また速いと体感できる光学式スイッチは現時点でその恩恵以上にクリック感の悪さが目立ちます。よって個人的にはクリック遅延の優先度は一番ではないように思います。速いに越したことはありませんが。

センサー遅延

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

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

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

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

実際にどうかではなく一つのものの例えですがそういう雰囲気だと思っています。

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

マウスの初動遅れ

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

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

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

初動遅れによる悪影響としてはエイムを置いているときなどでしょうか。

当記事ではmousetesterのポーリングよりクリック遅延を読み取っているため初動遅れ分を差し引いて補正してやる必要がありますが基本的には考慮しなくてよいです。考慮する必要がある時点で没マウスです。

クリック遅延の測定

測定系

多くのマウスではマイクロスイッチの中心ピンが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のクリック応答が遅い結果となり??となっていたところ、🥕🥕さんにアドバイスをいただきました。

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

ニンジン@Tw1tterIsGood

The slamclick fix by endgame gear

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

デバウンスを観測する

デバウンスについてはググって下しあ


一つ一つマウス間で比較してもいいですが、promicroでqmkを用いたキーボードとして左クリックを入力するようにし、測定してみます。

このときqmkによってdirectpinでキー入力されるように指定されており、マウス同様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負荷は低いため設定上限にしてもパフォ-マンスへの影響は少なそうです。つまり、ポーリングレートが高いというのはキーボードの売り文句にはなりえないということです。5

デバウンスと最低HOLD時間

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

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

gproの方がpress9ms、release13ms程度遅れていることが分かります。これがgproのqmkを基準とするクリック遅延性能とします。

この時クリック時間は20ms程度です。


こちらは15ms程度のクリック時間ですが、releaseが先ほどと異なり大きく遅れていることが分かります。

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

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


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

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

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

gproはクリック時間7ms以下の場合クリックしたことにはならないようです。

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

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

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

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

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

4ms
5ms

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

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

7ms
8ms

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

ここでデバウンスは5msであるのに、クリック遅延が2msの場合があるというのはおかしな気がします。これはこの認識しないクリック時間の短さがデバウンス由来でないか、この測定方法では正しく測れていないのか、何かがよろしくない感じがします。

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

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

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

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

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

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

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

覆いなし
覆いあり

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

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

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

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

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

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

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

結果としては2msばねが動作する際にかかっていることが分かりました。

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

測定結果

複数マウスqmk比で測定結果を示します。ばらつくものは大体この辺かなという感じ

結果見てわかるように、ほかの方の測定結果と大きく異なる結果となります。USBの中身とか解析してる人が正しくないわけないしなあ。

🥕さんからアドバイスいただきよい感じになりました

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

サンプル数は少ない感じ。各自やってみてください。余裕あるときに追加していきます。

センサー遅延の測定と解説

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

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

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

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

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

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

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

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

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

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

logiのxsl以降の無線マウスは有線との差が1msあるいは未満に抑えられています。(所有している)他メーカーは軒並み1ms以上センサー遅延があります。遅延があることが分かっていてわざわざ買うこともないかなと思っているのでそこまでサンプルは多くありませんが。

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

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


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

Measured motion delay of some wireless mice I own : MouseReview (reddit.com)

マウスぶつけるやつ

無線マウスの無線による初動遅れは最初の方で載せましたpiaknowさんの記事で紹介されているマウスをぶつける方法によりぶつけられる側は初動遅れ込みでの遅延が測定できますから、初動遅れなしの結果と比較することで算出することができます。

また、ぶつけられる側をクリック遅延測定で用いたqmkデバイスあるいは他マウスのマイクロスイッチにキースイッチを取り付けぶつけることで、クリックとセンサー遅延を比較することもできそうです。

qmk vs gproでやってみました。

青点(qmkクリック)がプロットされた次のポーリングで緑(gproセンサー)が多きく波形がぶれています。

qmkが0-1ms程度早い結果と読み取ることができます。

多くのマウスはqmkより1ms以上遅れてクリックされていますので、マウスはクリックより先にセンサー情報を送信していることが分かります。

またgproはクリック遅延がqmk比1msでしたので、センサーとクリックの感覚が合うといってよいのではないでしょうか。

すると無線でクリック遅延は大差ないがセンサー遅延は発生するというのは不思議な現象に思います。センサーによるデータの送信コストがクリックよりも高いのだろうかと想像したりします。

まとめ

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

おわり

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

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

なんか誰かの役に立ったらいいねという感じです。

そもそも1msとかわからんやろという人はぜひエイムゲでサンプル取ってスコア比較してみてください。

 

Special thanks to @Tw1tterIsGood


コメント

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