Sousu's ARENA

[ DIYに戻る ]
ゲーミングキーボードの応答時間考察
2022.02.01
新規作成
2023.03.06
Huntsman V2の改造記事リンクを追加
Abstract(概要)
ゲーミングキーボードの応答時間に関する考察です title
Discription

ゲーミングデバイスに求められる性能はいくつかありますが、 中でも体感しやすいのが、応答時間(Latency)です。 勝ち負けがはっきりするようなアクションゲームでは、1フレーム(1/60[sec]≒16.7[ms]未満の遅延の差が勝敗をわけるような場面もあり 少しでも低Latencyがなデバイスが求められます。

低Latency化の流れは、マウスやゲームパッドから始まり、 昨今(2022現在)では低遅延(低Latency)のキーボードが流行し始めました。

しかし、キーボードは最もLatencyを低減しにくいデバイスの一つです。 その低Latency化に対し、各社工夫が見られて面白いので、 最近の事情を少し考察してみることにします。



Latencyの測定やデータ自体に興味があれば、別記事も書いているので、下記リンク先を参照いただけると嬉しいです。

リンク:ゲーミングデバイスの応答速度が知りたい
測定風景
fig.1:測定風景



Discussion(考察)

1.USBのLatency(ポーリングレート)

USBのLatencyがデバイスの反応に対してどういう影響を及ぼすかを述べます。 例としてfig.2の波形を使います。ポーリングレート125[Hz]のUSB信号波形です。

fig.2:125[Hz]USBポーリング波形(JY-PSUAD11)
USB 125Hzの例


fig.1の黄色の波形がUSBのデータ波形で、A,Bでデータを読みだしており、間隔は1/125[sec]:8[ms]です。 この間隔をUSBのLatencyと呼びます。 1のタイミングでデバイス(キーボードのドライバIC)にキー変化が検知されている場合、 最速ではAのタイミングでUSBにデータが送信され、遅延はほぼ0[ms]です。 しかし、2のタイミングだと、1は過ぎていますから約8[ms]後のBのタイミングで送信です。

8[ms]といえば標準的なUSB Low SpeedのLatencyであり、60fps換算では約1/2フレームです。 このLatencyだと、実装によっては2回に1回、1描画フレーム分反応がスキップすることがあったりするわけです。

当然この遅延は注目されやすく、また、USBのポーリングレートは改善しやすい要素なので、 多くのデバイスがポーリングレート1000[Hz]に対応していたりします。 1000[Hz]だとLatencyは1[ms]であり、1フレーム(16.7ms)に対し十分小ですから、 「USBのLatency」はほとんど無視できると言っていいでしょう。

しかし、USBのポーリングレートが早くても、情報がUSB I/Fに乗る前で遅延していたら効果は薄くなってしまいます。(次項に続く)

2.キーの時分割スキャンによるLatency(スキャンレート)

キーボードの時分割スキャンによるLatencyがデバイスの反応に対してどういう影響を及ぼすか述べます。 例としてfig.3の波形を使います。スキャンレート8[kHz]のキースイッチのスキャン波形です。

fig.3:スキャン間隔125[us]のキースキャン波形(Huntsman V2)
Huntsman V2 SWスキャン間隔

キーボードの多くは数10個から100個前後のキーを備えており、 状態を検知するにもそんな数のpinを備えたドライバICは高価になるし、配線数も増えてしまいます。 そこで、キーマトリックスのスキャンなどで配線本数を削減した実装が一般的です。

キーマトリックス方式は入出力ピンを切り替えて走査するのですが、 キーを時分割で周期的にスキャンするというところがポイントです。これをキースキャンやスイッチスキャンなどと表現することがあります。

fig.3の例ではスキャンレートが8[kHz]で8分割のようです。 キーを検知するタイミングは125[us]ごとにやってきます。 波形で言うと、縦に長くなっている部分です。 このタイミングでしかキーを検知しないわけですから、Latencyは125[us] キースキャンによる遅延は0[us]~125[us]ということになります。

キースキャンの周期が短ければ全体の応答時間への影響は限定的です。 この例ではUSBのLatencyも125[us](8[kHz])だったので、 全体の応答時間も1[ms]未満と低遅延な部類になっています。(fig.4)

fig.5:Huntsman V2 Typing mode FET駆動 Latency
Huntsman V2 FET駆動Latency

しかし、多くのキーボードはキースキャンの間隔は数[ms]以上です。

たとえば、fig.4のようなキーボードは、キースキャン間隔17[ms]です。

fig.5:スキャンLatency 17[ms]キースキャン波形(Realforce R2)
Realforce R2 SWスキャン間隔

キースキャン17[ms]はそこそこ長い部類で、全体のLatencyに与える影響が大きいです。 この例ではUSBのポーリングレートは1[kHz]:1[ms]だったのですが、 キースキャンLatency:17[ms]が足を引っ張り、 全体のLatencyのばらつきも約17[ms]の幅を持っています。(fig.6)

fig.6:Realforce R2 R2SA-JP3-IV APC1.5mm Latency
Realforce R2 Latency

17[ms]以上応答タイミングが変わるということですから、 60fps(16.7ms周期)とすると、1フレーム以上応答タイミングが変わることが多い、ということになります。 タイミングがシビアなゲームですと、違和感を感じるかもしれません。

キーボードの場合、このキースキャンLatencyが足を引っ張っている場合が多く、 特にtopreのRealforceシリーズは顕著です。

Huntsman V2のように高速にスキャンしてほしいところですが、 静電容量キーボードは入力検知するために電極の充放電時間が必要だったりしますので、 1回のスキャン時間を極端に短くすることは難しいのかもしれません。

そんな静電容量キーボードでも、体感のLatencyを抑える工夫があったりします。(次項に続く)

3.「キーを押して反応するまでの深さ」の調整による、体感の応答時間低減

キーの反応位置が体感応答時間に及ぼす影響について述べます。 まず、fig.7は押し込むと反応するタイプです。

fig.7:タイプ1。押し込むと反応する一般的なキーボード
一般的なキーボード

このタイプ1は、メンブレンのキーボードなどが該当します。 押し込んだ位置で反応するので、違和感はないのです。 しかし、押し込むまでには数[ms]から数十[ms]かかりますから、 OFF→ONの時間はどうしても遅くなってしまいます。

キーボードは一般的にキーストロークが深いので、 どうしてもキーを押して反応するまでの深さによる体感の応答時間が問題になりがちです。

この問題に対し最近流行している機能が、ON,OFF反応位置調整機能です。 RealforceのAPC(アクチュエーションポイントチェンジャー)機能などが該当します。(fig.8)

fig.8:タイプ2.ON,OFF反応位置を調整ができる機種
一般的なキーボード

このタイプ2は、そこそこ体感できるほど応答時間が早くなったように感じられます。 指の動きは、前述のとおり結構遅いので、数[mm]の差は大きいんですね。

調べてみると、標準的なキー押下深さ約3[mm]に対し、ON,OFF反応位置を1[mm]前後の浅い位置に調整する機種が多いようです。 この設定では浅い位置で反応するわけですから、OFF→ONは素早く反応しますが、ON→OFFは遅くなってしまいます。

また、キー押下位置とON,OFF反応位置がずれていますから、 押しこんだタイミングとキー応答のタイミングがずれているような違和感を持つことがあります。

これは想像ですが、タイプ2のキーボードに押下圧が高めの機種が多いのは、上記違和感を軽減するためもあるのかなと思います。


さて、タイプ2の欠点をカバーするのが、キーストロークの調整までできる機種です。 2022年現在Realforceシリーズぐらいでしょうか。(fig.9)

fig.9:タイプ3。キーストロークの調整ができて、ON,OFF反応位置を調整できる機種
一般的なキーボード

このタイプ3の手法は簡単で効果的に見えるのですが、とてもシビアな設計が必要です。

例えば、fig.9の通り、ON,OFF反応位置と押下位置が一致するようなスペーサーにしてしまうと、 キーの傾きや設計誤差で、キーが押せないなどの反応が出てしまいます。 かといって、反応位置が深すぎても応答が悪くなり、本末転倒です。

この問題に対する対策なのか、Realforce R2のキースペーサーはクッション性のある素材を使用しており、 キーが傾いたりしてもある程度押し込めるような仕様になっています。

しかし、このクッションは独特の感触なので、各種レビューを見ると違和感を感じる人もいるようです。

さらに、Realforce R2は前述のとおりキースキャンの間隔が長く、 応答時間のばらつきが大です。いくらAPCで体感応答時間を縮めても、応答時間のばらつきは減りませんから、 タイミングにシビアなゲームでは違和感が残る結果になるかもしれません。


では、タイプ3のキースペーサーを、ほかの低Latencyなタイプ2のキーボードに適用したら、最強(最速)になると思うじゃないですか。 これが、そんなに甘くないんです。

実際にRazer Huntsman V2に3[mm]厚のシリコンのキースペーサーを挿入して実験してみました。

fig.10:Huntsman V2用自作キースペーサー
Huntsman V2用自作キースペーサー

まず最初に問題になったのは、反応位置でのチャタリングです。

反応位置に近い深さで止まるようスペーサーを設置していると、初速から動き始めたところでON→OFFに移行します。 そうすると、ON→OFF時は反応位置を比較的ゆっくり通過することになります。 Huntsman V2は、USBもキースキャンも8[kHz]と高頻度ですから、 センサー閾値付近の高さでモタモタしていると、高頻度でON,OFFを繰り返します。 つまり、チャタリングが発生しやすい環境が整ってしまうのです。

実は、Realforceはこの対策として、ON,OFF位置をずらしていて、いわゆるヒステリシスを持たせるような特性になっています。 このため、チャタリングを起こすことはないんですが、 Huntsman V2などの1点閾値の機種は、そりゃもう、実用にならないぐらい激しくチャタリングします。

キースイッチ最適化機能をタイピングモードにすることで、実用レベルに緩和できましたが、完全にチャタリング0にはできません。 また、前述のキー傾きによる無反応問題もありますから、キースペーサーの厚み調整もシビアです。

この欠点に対応しているっぽいのが、WOOTINGシリーズです。

参考リンク:WOOTING

WOOTINGシリーズにはRapid Triggerという機能があって、 キー押下した深さにかかわらず、押下してから何mm戻したかでOFFになるらしいです。 キー深さを値として読むことができるシステムならではの発明ですね。さわってみたい!

参考リンク:Wooting two Lekker Edition/HE - Rapid Trigger Demo video(youtube)

しかし、よく考えると、Latencyだけで見れば、ON,OFF反応位置が調整出来てヒステリシスがある機種(かつ低Latency)であればいいわけです。 そういった機種は Apex Pro | SteelSeriesRazer Huntsman V2 Analogになるんでしょうか。

しかしこのへん→Our Keyboard Typing Experience Tests Latency(RTINGS.COM)を見ると、いずれも数[ms]のLatencyだとか。公称値と違うけど、本当ですかね?? この辺、自分で測定してみたかったな。実は最速最強なんじゃないのかなー。(終)


2022.02.06追記

Apex PRO TKLも測定してみましたが、公称値(0.7[ms])より遅い(測定値≒5[ms])みたいです。今のところRazer Huntsman V2が最速かな?

参考リンク:Apex PRO TKL Latency

2023.03.06追記

最速と思われるHuntsman V2をベースにキー荷重30[g]ストローク1.5[mm]のキーボードを作ってみました。

参考リンク:Huntsman V2のキー荷重30[g]ストローク1.5[mm]化改造


[ DIYに戻る ]
inserted by FC2 system