キーボードの同時押しとゴースト現象、Nキーロールオーバーを解説

キーボードのゴースト現象(ゴースティング)とは、ほかのキーを押したままの状態で押したキーが認識されないことです。ゲームでは、斜めに走りながら同時にジャンプできないといった形で現れます。このガイドでは、キーボードの同時押しで入力が抜ける理由、Nキーロールオーバーと6キーロールオーバーの意味、キーボードの同時押しテストを自分で行う方法、そしてパッケージに書かれた「アンチゴースト」が実際に何を約束しているのかを説明します。

キーボードのゴースト現象とは

Microsoftは自社のSideWinder X4キーボードを設計する際にこの問題を研究し、ゴースト現象を「複数のキーを同時に押すと一部のキーが機能しない問題」と説明しています。その例はゲーマーにはおなじみでしょう。A、W、Gを一緒に押すなどして、斜めに走りながら同時に撃つことができない状態です。

これらの用語はあいまいに使われています。厳密には、次の2つの異なる不具合があります。

不具合起きること
ゴースト押していないキーが入力される
ジャミング(ブロッキング)押したキーが無視される

Wikipediaによると、最近のキーボードは幽霊キーが発生する条件を検出し、それを送信する代わりに3つ目のキーを無視します。これはジャミングですが、ほとんどの人も、ほとんどのキーボードのパッケージも、これをゴーストと呼んでいます。

キーボードでゴーストが起きる理由

ほとんどのキーボードは、キーを1つずつ個別に配線していません。Microsoftは一般的な構造を説明しています。キーの下に行と列の配線を格子状に印刷したシートがあり、キーを押すと1本の行と1本の列がつながります。キーボードはその接続から、どのキーが押されたかを判断します。

2つのキーを押している場合は混乱は起きません。格子の中で長方形の3つの角にあたる3つのキーを押すと、4つ目の角にも電気が流れてしまい、キーボードはその4つ目のキーが押されているかどうかを判別できません。Microsoftによると、一般的なキーボードはそこで「誤ったキーを送信しないように、新しいキー入力の送信を止めます」。

解決策は、電流が一方向にしか流れないように各キーにダイオードを付けることです。Microsoftは、これには100個を超えるダイオードを載せた基板が必要で、「比較的高価」だと述べています。安価なキーボードは、よく使われるゲームの組み合わせが動くように配線を並べ替えていますが、Microsoftの言葉を借りれば、それは問題を「ユーザーが気づきにくい別のキーの組み合わせ」へ移しているだけです。

3つの原因

Microsoftは、同時に押したキーが失われる可能性のある場所を3つ挙げています。

  1. キーボードの電子回路が、どのキーが押されているかを判別できない。
  2. キーボードとパソコンの間の接続によって、送信できるキーの数が制限される。
  3. キーボードが正しく送信していても、パソコン側のソフトウェアが多数の同時入力を処理できない。

Nキーロールオーバーと6キーロールオーバー

ロールオーバーとは、キーボードが同時に認識できるキーの数を表すものです。

  • 2キーロールオーバー: 任意の2つのキーは同時に使えますが、3つ目は認識されないことがあります。
  • 6キーロールオーバー(6KRO): 通常のキー最大6つと、修飾キーを同時に認識します。
  • Nキーロールオーバー(NKRO): Wikipediaでは、「ほかにいくつのキーが同時に押されていても、キーボード上のすべてのキーの入力を同時に正しく検出できる」キーボードと定義されています。

6キーの制限はどこから来るのか

USBキーボードがパソコンと通信する方法は2つあります。Wikipediaによると、パソコンのBIOSなどが使うシンプルなブートプロトコルでは、8つの修飾キーと最大6つのキーコードまでに制限されます。OSはより高機能なレポートプロトコルを使い、こちらは「制限がなく、完全なnキーロールオーバーに対応しています」。ただし、仕様はキーボードにそれ以上の対応を義務づけていないため、一部の低価格キーボードはそれでも6キーの制限を残しています。

今もUSBキーボードに6キーの制限を明記しているメーカーもあるので、お使いのモデルの仕様を確認してください。Microsoftはまた、独自の送信方式で6キーを超える入力に対応するキーボードは、OSが読み込まれる前、たとえばBIOSでは完全には動作しない場合があると指摘しています。

「アンチゴースト」はNKROと同じ?

必ずしも同じではありません。Microsoftは、アンチゴーストとして販売されているキーボードについて、「キーボード上の特定のキーの組み合わせがうまく連動するという意味にすぎない場合がある」と注意を促しています。また、「最大」何キーといった表記の裏に、失敗する3キーの組み合わせが多数隠れていることもあるとしています。Wikipediaによると、一部のゲーミングキーボードは、WASDや矢印キーなど最もよく使うゲーム用のキーにだけ専用のダイオードを付けています。

スイッチの種類だけで決まるわけでもありません。Cherryは、メカニカルキーボードの独立したスイッチがゴーストを防ぐとしていますが、ロールオーバーはキーボードの配線と、コントローラーがキーをどう送信するかによって決まります。思い込みで判断せず、そのモデルのロールオーバー仕様を確認しましょう。そのほかの違いはメカニカルキーボードとメンブレンキーボードの比較で解説しています。

キーボードの同時押しテストのやり方

問題のある組み合わせを見つけるための、Microsoft自身のアドバイスです。

  1. ゲームでよく使う移動キーである A、S、D、W を押したままにします。
  2. それらを押したまま、ほかのキーを1つずつ順番に押します。
  3. 認識されないキーがあれば、4つのキーのうちいくつかを離してもう一度試します。多くの場合、失敗する3キーの組み合わせが見つかります。

Microsoftは、うまく動く6キーの組み合わせが1つ見つかっても「すべての6キーの組み合わせが動くとは限らない」とも指摘しています。移動とジャンプ、しゃがみ、リロードの組み合わせなど、実際に使う組み合わせをテストしましょう。

ブラウザでのテストでわかること、わからないこと

Microsoftのオンラインのゴースト現象デモを含め、キー入力を表示するページならどこでも、キーが認識される様子を確認できます。ただしブラウザが受け取るのは、キーボードが送信し、OSが渡した情報だけなので、Webページに届かないキーもあります。

  • Windowsでは、ブラウザは通常Print Screenキーを検出できません。
  • Windowsキーを押すと、フォーカスがスタートメニューに移ります。
  • MDNによると、macOSではCaps Lockはkeydownイベントしか送信せず、macOSはNum Lockに対応していません。
  • スクリーンリーダーがキー入力を横取りすることがあるため、Microsoftはテスト中はオフにするよう勧めています。
  • Fnなどのキーはキーボード内部で処理されることが多く、まったく表示されない場合があります。

組み合わせではなく速さを確かめたい場合は、KPSテストで1秒あたりに押せるキーの数を測れます。

ゴースト現象への対処法

  • キー割り当てを変更する。 認識されない操作を、問題のある組み合わせの外にあるキーに移します。
  • NKROモードやゲーミングモードを確認する。 一部のゲーミングキーボードは、専用ソフトやキーの組み合わせで6KROとNKROを切り替えられます。お使いのモデルの取扱説明書を確認してください。
  • 別のUSBポートやケーブルを試す。 NKRO対応のはずのキーボードが6KROのように動作する場合に試し、キーボードのファームウェアやソフトウェアも更新します。
  • 仕様を見て購入する。 多くのキーを同時に使うゲームをするなら、「アンチゴースト」だけでなく、そのモデルで完全なNKROが明記されているものを選びましょう。

よくある質問

キーボードのゴースト現象とは何ですか?

複数のキーを同時に押しているために、押したキーが認識されなかったり、押していないキーが入力されたりすることです。ほとんどのキーボードが、キーを共通の格子状に配線していることが原因です。

ゴーストとジャミングの違いは何ですか?

厳密には、ゴーストは余計な幽霊キーが入力されること、ジャミングは実際に押したキーが無視されることです。最近のキーボードは通常ゴーストではなくジャミングを起こしますが、どちらも一般的にゴーストと呼ばれています。

Nキーロールオーバーとはどういう意味ですか?

NKROは、いくつ押しても、キーボードがすべてのキーを同時に認識できることを意味します。6キーロールオーバーは、通常のキー最大6つと修飾キーを認識できるという意味です。

アンチゴーストはNKROという意味ですか?

いつもそうとは限りません。Microsoftは、アンチゴーストがうまく連動する一部のキーだけを対象にしている場合があると注意を促しています。そのモデルについて、NKROなどロールオーバーの数値が明記されているか確認しましょう。

キーボードのゴースト現象はどうやってテストしますか?

W、A、S、Dを押したまま、ほかのキーを1つずつ順番に押し、キー表示ツールでどのキーが認識されないかを確認します。そのあと、ゲームで実際に使う組み合わせをそのままテストしましょう。

メカニカルキーボードはすべてNKROですか?

いいえ。ロールオーバーはスイッチだけでなく、キーボードの配線とコントローラーによって決まります。そのモデルの仕様を確認してください。

参考資料