キーボードの同時押しとゴースト現象、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つ挙げています。
- キーボードの電子回路が、どのキーが押されているかを判別できない。
- キーボードとパソコンの間の接続によって、送信できるキーの数が制限される。
- キーボードが正しく送信していても、パソコン側のソフトウェアが多数の同時入力を処理できない。
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自身のアドバイスです。
- ゲームでよく使う移動キーである A、S、D、W を押したままにします。
- それらを押したまま、ほかのキーを1つずつ順番に押します。
- 認識されないキーがあれば、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ですか?
いいえ。ロールオーバーはスイッチだけでなく、キーボードの配線とコントローラーによって決まります。そのモデルの仕様を確認してください。