NKRO vs 6KRO 解説:キーボードゴースティング&ローバーガイド
激しいファーストパーソンシューターをプレイしていて、対角にスプリント中(W + D + Shift)に、スペースバーがジャンプをトリガーしなかったことはありませんか?そのフラストレーションの溜まるハードウェアの制限は、キーボードゴースティングまたはキージャミングとして知られています。
この技術ガイドでは、キーボードスイッチマトリックスの電気的アーキテクチャ、レガシーオフィスキーボードが複数キーゲーミングコンボでジャムする理由、最新の機械式キーボードが真の<strong class="text-neutral-900 dark:text-white">Nキーローバー(NKRO)</strong>を達成する方法、スイッチデバウンスアルゴリズムが全体的な入力レイテンシーに与える影響を解説します。
1. 電気グリッド:キーボードがキーをスキャンする仕組み
標準的なフルサイズキーボードには104個の個別キーがあります。すべてのスイッチがキーボードマイコンへの専用ワイヤートレースを必要とする場合、PCBには100以上のピンが必要となり、製造コストと複雑さが劇的に増加します。
この問題を解決するために、キーボードは行と列で構成される電気マトリックスにスイッチを組織します(通常16〜18列、6〜8行):
- マイコンは列1、次に列2、列3などと急速に電流をストローブします。
- 同時に、各行ラインの入力電圧を読み取ります。
- キーが押されると、特定の行と列の間の電気接点が閉じ、キーのマトリックス座標を特定します。
2. ゴースティングとジャミング:安価なキーボードがキーをブロックする理由
ダイードのない基本的なキーボード回路では、グリッド内で長方形を形成する3つのキーが同時に押されると問題が発生します:
Row 1: [Key A: PRESSED] ———— [Key B: PRESSED]
| |
Row 2: [Key C: PRESSED] ———— [Key D: OPEN/UNPRESSED]
電流が閉じた機械式スイッチを逆流できるため、行1からの電流がキーAを流れ、キーCに下がり、キーDの列に横断し、マイコンにキーDも押されていると誤認させます!この誤登録はゴーストキーと呼ばれます。
ランダムな意図しない文字が画面にスパムされるのを防ぐため、安価なメンブレンキーボードは<strong class="text-neutral-900 dark:text-white">マスキング/ジャミング</strong>を採用しています。コントローラーが曖昧な状態を検出すると、意図的に3番目のキー入力を無音にして無視します。
3. NKRO vs. 6KRO:ダイードによる救済
ゲーミング用機械式キーボードはどのようにしてゴースティングを完全に排除するのでしょうか?
高性能キーボードは、プリント基板上のすべての個別スイッチ接合部に整流ダイード(1N4148ダイードなど)を設置します。ダイードは一方通行の電気チェックバルブとして機能し、電流は一方方向にしか流れず、逆電流のフィードバックが不可能になります。
6KRO(6キーローバー)
標準的なUSBヒューマンインターフェースデバイス(HID)仕様パケットは、1レポートあたり6個のアルファベットキーコードと4個のモディファイアキー(Ctrl、Shift、Alt、GUI)を許可します。ほとんどのゲーミングには十分ですが、リズムゲーム(osu!、StepMania)やスプリットキーボードのマルチプレイヤーには制限がある場合があります。
NKRO(フルNキーローバー)
最新のゲーミングキーボードは、カスタムUSBレポートディスクリプターや複数の仮想HIDエンドポイントを使用して、すべてのキーを同時にレポートします。50個のキーを一度に手のひら全体で物理的に押しても、すべてのキーがクリーンに登録されます。
4. スイッチデバウンス、光学ビーム&マグネティックホール効果
キーボードの合計レイテンシーは、3つの順次パイプラインステージで構成されます:
- 機械的移動時間: 指がキーを作動ポイントまで押し下げる物理的な時間(通常1.2mm〜2.0mm)。
- デバウンスアルゴリズム時間: 従来の機械式スイッチ(Cherry MX、Gateron、Kailh)は金属リーフが衝突した際に物理的にバウンスします。キーボードコントローラーは、バウンスノイズが安定するまで2ms〜8ms待ってからキーをディスパッチします。
- USBスキャン&ポーリング時間: マトリックススキャンサイクル周波数(1,000Hz = 1.0ms)。
ホール効果革命:新しいマグネティックスイッチ(Wooting、Razer Analog、SteelSeries OmniPoint)は、ホール効果センサーを使用して物理的な金属接点ではなく永久磁石の近接を検出します。物理的にバウンスする金属リーフがないため、デバウンスレイテンシーはゼロになり、上方向の動きで即座にリセットされます(ラピッドトリガー)。
5. ブラウザDOMイベントでキーボードをテストする
キーボードがゴースティングに陥っているのか、6KROに制限されているのかをテストするにはどうすればよいでしょうか?
当社のキーボードテスターは、キーボードのキーマトリックスをリアルタイムで可視化します。解釈された文字ではなく、物理スキャン識別子(e.code)を使用してブラウザのkeydownおよびkeyupイベントをリッスンし、10個以上のキーを同時に押して、ボードが真のNKROを提供しているかを検証できます。
❓よくある質問
キーボードゴースティングとは何ですか?▼
キーボードゴースティングは、複数のキーが同時に押されているために、キーボードが1つ以上のキー入力を登録できないときに発生します。これはキーボードマトリックス回路の設計が原因です — 複数のキーが行と列のラインを共有している場合、コントローラーはどの物理キーが信号をトリガーしたかを区別できません。
NKROと6KROの違いは何ですか?▼
6KRO(6キーローバー)は、キーボードが最大6個の同時キー入力(モディファイアキーを除く)を登録できることを意味します。NKRO(Nキーローバー)は、キーボード上のすべてのキーを同時に押すことができ、そのすべてが独立して登録されることを意味します。NKROキーボードは、ゴースティングを防ぐために各キースイッチにダイオードを使用します。
機械式キーボードはメンブレンキーボードより入力レイテンシーが少ないですか?▼
機械式キーボードは、より短い作動行程とより速いスイッチ応答のため、通常はレイテンシーが低くなります。しかし、キーボードレイテンシーの主な原因はデバウンス時間(2–8ms)とUSBポーリング間隔(1000Hzで1ms)です。Hall Effectマグネティックスイッチはデバウンスレイテンシーを完全に排除し、現在利用可能な中で最速のものとなっています。
スイッチデバウンスとは何ですか?なぜ重要なのですか?▼
機械式キースイッチが押されると、金属接点は安定した接触を作る前に数ミリ秒間物理的にバウンスします。キーボードファームウェアは、これらのバウンスを無視して物理的な1回の押下につき1回のキー入力のみを登録するために、デバウンスアルゴリズム(通常2–8msの遅延)を使用します。デバウンスがなければ、1回の押下が複数の打鍵として登録される可能性があります。
キーボードにゴースティングやローバーの問題があるかどうかをテストするにはどうすればよいですか?▼
当社の無料キーボードテスター(spacebarclickeronline.com/keyboard-tester)を使って、キーボードのゴースティングとローバーをテストできます。これはブラウザのkeydownおよびkeyupイベントと物理スキャンコード(e.code)を使用して、同時キー入力を検出します。10個以上のキーを一度に押し続けて、キーボードが真のNKROを提供しているかを検証してください。
参考資料と関連文献
このガイドで説明する回路レベルおよびファームウェアの動作は、以下の技術的な参考資料および仕様に基づいています:
- キーボードマトリックスがキーをスキャンする仕組みと、ゴースティングやジャミングが発生する理由 — Dribin, D. Keyboard Matrix Help. dribin.org →
- USB HIDブートキーボードレポート:6キーロールオーバー(6KRO)の起源 — USB Implementers Forum. Device Class Definition for Human Interface Devices (HID), Version 1.11 — boot keyboard report descriptor (Appendix B). USB-IF (PDF) →
- 6KRO、NKRO、アンチゴースティングの用語 — Wikipedia. Key rollover. Wikipedia →
- 接点バウンスと、コントローラーがデバウンス遅延を追加する理由 — Ganssle, J. A Guide to Debouncing. ganssle.com →
注:ロールオーバーの上限、デバウンスウィンドウ、アクチュエーションポイントは、キーボードのモデル、スイッチの種類、ファームウェアによって異なります。ここで示すミリ秒の範囲は代表値であり、特定のボードを測定したものではありません。ご自身のキーボードのロールオーバーとスイッチチャターはキーボードテスターで確認してください。
キーボードのローバーとスイッチチャターをテスト
キーマトリックスローバーをテストし、ゴースティングを検出し、同時キー入力をカウントし、スイッチデバウンスの健全性を検証します。