キーロールオーバーとは、コンピューターのキーボードが複数のキーの同時入力を正しく処理できる機能のことで、ゲームだけでなく、高速キー入力や反応時間のテストにおいても重要です。nキーロールオーバー(NKRO )(フルキーロールオーバーとも呼ばれる)を備えたキーボードは、他のキーがいくつ押されていても、キーボード上のすべてのキーからの入力を同時に正しく検出できます。フルロールオーバー機能のないキーボードでは、特定のキーの組み合わせが同時に押されると、誤ったキー入力として認識されます。ロールオーバーは、速記、電子音楽キーボード、ゲーム、そして一般的なタッチタイピングなど、幅広い用途で活用されています。

通常のコンピューターキーボードでのタイピングでは、通常、一度に押されるキーは1つだけで、次のキーを押す前にキーを離します。しかし、常にそうとは限りません。ShiftキーやControlキーなどの修飾キーを使用する場合、ユーザーは別のキーを押したり離したりする際に、意図的に修飾キーを押し続けます。また、高速タイピストは、前のキーを離す前に意図せず次のキーを押してしまうこともあります。
特殊なキーボード操作では、複数のキーを同時に押したり押し続けたりする必要がある場合があります。 例えば、
一部のハイエンドキーボードには、nキーロールオーバー(NKRO)機能があります。これは、各キーがキーボードハードウェアによって完全に独立してスキャンされるため、同時に押されている、または保持されている他のキーの数に関係なく、各キーの押下が正しく検出されることを意味します。[ 3 ]完全なnキーロールオーバーは、従来のタイピング方法よりもはるかに速くテキストを入力するためにコードを使用する速記には必要であり、人間の話し言葉の速度に追いつくことができます。
ほとんどの音楽キーボードは、キーボードマトリックスにアイソレーションダイオードを使用して完全なnキーロールオーバーを実現し、キーゴーストとキージャミングの両方から保護します。[ 4 ]
ユーザーが完全なnキーロールオーバーの恩恵を受けるには、キー押下状態全体をコンピュータに送信する必要があります。USB プロトコルを介してデータが送信される場合、動作モードは 2 つあります。ヒューマン インターフェース デバイス(HID) の「レポート プロトコル」と「ブート プロトコル」です。(オプション) ブート プロトコルは、BIOS などのごく限られた USB ホスト実装でのみ使用され、8 つの修飾キー (Ctrl、Shift、Alt、Win の左右バージョン) と最大 6 つのキー コードに制限されています。これにより、同時に報告できるキー押下数が制限されます。(必須) HID レポート プロトコルは、オペレーティングシステムで使用され、制限がなく、完全なnキーロールオーバーをサポートします。ただし、HID 仕様ではロールオーバーに関する要件は規定されておらず、ローエンドのキーボードでは、ブート プロトコルまたは HID レポート プロトコルのどちらが使用されているかに関わらず、同じ制限が課される場合があります。
コストと設計の複雑さを軽減するため、ほとんどのコンピューターキーボードはすべてのキーを分離していません。代わりに、絶縁ダイオードを使用せずにキースイッチのマトリックスを使用し、一度に押されるキーの数が限られていることを前提としています。これらのキーボードでは、わずか3つのキーを押すだけでもゴースト効果が発生することがありますが、[ 4 ]一般的な修飾キーの組み合わせでこれが発生しないようにマトリックスの配置には注意が払われています。
「2キーロールオーバー」機能を備えたキーボードは、同時に押された2つのキーのみを確実に検出できます。つまり、ユーザーはキーボード上の任意のキーを押しながら別のキーを押すことができ、そのキー入力がコンピュータによって正しく検出されることを確信できます。しかし、ユーザーが2つのキーを押したまま3つ目のキーを押そうとすると、スイッチマトリックスがショートして「幻のキー」が発生する可能性があります。Ctrl +Alt+Deleteのように2つ以上のキーを同時に押す必要がある場合や、高速タイピング(2つ以上のキーを同時に押す)によって2つ以上のキーが押されるケースが多数あるため、これは高品質のキーボードでは許容できません。
「マルチキーロールオーバー」機能を備えたキーボードは、同時に押された2つ以上のキーを確実に検出できます。これは、高品質なキーボードや英語のタッチタイピングに不可欠な機能と考えられています。この機能は、最も一般的なキーシーケンスを研究し、同じシーケンスのキーを電気スイッチマトリックスに配置することで実現されています。これにより、3つのキーを同時に押しても、マトリックスがショートして4つ目の「仮想」キーが生成されることがなくなります。これを実現する最も簡単な方法は、同じシーケンスのすべてのキーをスイッチマトリックスの同じXまたはYラインに配置することです。電子回路が異なるXラインとYラインに2つ以上のキーを検出しない限り(仮想キーが生成されるため)、次に押されたキーの処理が継続されます。これにより、最も一般的なキーシーケンスに対して、通常4~5キーのロールオーバーが実現されます。

マトリックスキーボードでは、特定の3つのキーの組み合わせでキーゴースト現象が発生します。右の画像はこの問題を示しています。
この例では、茶色、青、緑の 3 つのキーが押されたことを示しています。信号経路は、端子 1 から茶色のスイッチを経由して端子 6 まで正確に検出され、キー 1/6 が押されたことを示しています。しかし、信号は青と緑のスイッチも経由して端子 4 に伝わり、キー 1/4 が押されたと誤って示します。このエラーは、ゴーストキー (1/4) が検出されたため、ゴーストと呼ばれます。これは、長方形のスイッチセットの 3 つの角が閉じている場合にのみ発生し、4 番目の角が「ゴースト」となります。これら 3 つのキーが同時に押されると、この 4 番目のキーの押下がキーボード コントローラによって誤って記録されます。
必要に応じて、図 B に示すように、各キー スイッチにダイオードを直列に接続することで、これらのエラーを解消できます。この例では、青色のスイッチに直列に接続されたダイオードによって、誤った信号経路が遮断されます。[ 4 ]
最新のキーボードはゴースティングを検知し、4つ目のキーが押された際に、3つ目のキーを無視します。この動作は、最初の2つのキーが3つ目のキーを詰まらせることから「ジャミング」と呼ばれます。どのキーが同時に押されたときにジャミングするかは、キーボードのメーカーやモデルによって異なります。
ほとんどの音楽キーボードと一部のハイエンドコンピュータキーボードは、マトリックス内の各キースイッチに絶縁ダイオードを使用しており、任意の順序で押されて任意の順序で離されたキーの任意の組み合わせ(コード)を正しく読み取ることができ、キーゴーストとキージャミングの両方の影響を受けません。 [ 4 ]一部の「ゲーミングキーボード」はマトリックスを使用していますが、WASDや矢印キーなど、ゲームで最も頻繁に使用されるキーにのみ個別のダイオードを割り当てています。
キーの誤作動は、キーボードを使ってコンピュータゲームをプレイする際によく発生します。ゲームでは、テキスト入力ではなく、移動ベクトルやその他の同時操作に多くのキー入力が組み合わされるためです。オリジナルのStar Controlゲームには、キーの誤作動をテストし、プレイヤーがキーボードに最適なキーマッピングを決定するのに役立つユーティリティが含まれていました。これは、ゲームプレイ中に2人のプレイヤーが同時に3つか4つのキーを押すことがよくあったためです。
多くのコンピュータゲームやコンソールエミュレータは、デフォルトでコントロールキー、オルトキー、シフトキーを使用します。コンピュータのキーボードは通常、文字マトリックス内の他のキーに加えてこれらのキーがアクティブになったことを検出するように設計されており、これによりキーの誤作動を防ぐことができます。