Nキーロールオーバー

Nキーロールオーバーとは、N個のキーが同時あるいは逐次に押下されたとき、それをONだと認識できることです。一時に N個のキーまでを ON と認識でかきるかです。N の部分には同時認識の上限値が入るか、N のままで「全キー同時押し」ができることを示す用語です。

この用語は、PS/2 ポートが標準の時代には、純粋に同時押下認識数を示していました。同時押し認識できる キースイッチ配線はコストがかかる一方で、高速タイピングをする場合などで同時認識は有用であったため、スペック上の差異として強調される項目の一つでありました。Nキーロールオーバーは高級キーボードの証でもありました。

しかしUSBポートのキーボードが登場してから、少々面倒な事になります。というのも、USB の電文書式上の制約により、修飾キー以外のキーは6キーまでしか押せません。せっかくスイッチの配線を奢って任意数の同時押しを認識できるようにしても、電文上はどうしたって 6キーまでしか詰め込めませんから、PS/2 版では Nキーロールオーバーでも USB版では 6キーロールオーバーにしかならないのです。

メーカーはこの件について 「Nキーロールオーバー対応!※USB版はUSBの制約上、6キーまでしか同時押しできません」みたいな、歯切れの悪い表記をしていた・・・というのが2000年代前半くらいまでのお話。


* * *


が、2012年現在の Nキーロールオーバーの解釈は、わたしの認識とは違うようです。

先日のエントリーで、たまたま目にしたPC Watch の記事 にあった

Nキーロールオーバーは、1から6までを同時に押している間に7を入力すると、新たに7が認識される機能だ。
しかしながら先述の通り、USBはパケットでデータをひとまとめにして送信しているため、1〜6がまだ押下されていたとしても、どれか1つデータを捨てなければならない(基本的には先に入力したものが破棄されるようである)。結果として全キーどころか、7キーすら同時押しが認識されないわけである。

【PCゲームグッズLab.】USB接続で全キー同時押し対応キーボード「Quick Fire Pro」 - PC Watch

つまりゲームにおいてのキーボードは、Nキーロールオーバー以上に、同時押しへの対応が必須だった。

【PCゲームグッズLab.】USB接続で全キー同時押し対応キーボード「Quick Fire Pro」 - PC Watch

に「えーーーっ!? Nキーロールオーバー≠Nキー同時押し なんて解釈聞いたことないよ。ライターさんの独自解釈じゃないの?」というエントリを書いた所、たろう さんより 「4Gamers でも Wikipedia でも 『同時押し』と『ロールオーバー』は別のものだと説明してるよ」とのコメントを頂きました。(ありがとうございます)

早速ご紹介された拝見しましたところ、

つまり「ロールオーバー」というのは,複数個のキーを押したとき,「押下された」ことを確実に検出できるのが何個までかを示すものなのだ。

 さらに,マトリックスの最適化や,逆流防止ダイオードの搭載によって,キーボード上に搭載されるすべてのキーを押しても問題なく入力を検出できるようになっていることを,「Nキーロールオーバー」もしくは「全キーロールオーバー」と呼ぶ。

「4Gamer Keyboard Checker」公開。キーボードのロールオーバーや同時押し対応をチェックしてみよう - 4Gamer.net

キーボードの製品検証を難しくしているのは,ロールオーバーとは別に,「同時押し」という概念が存在していることだ。これは,「一度に複数のキーを同時に押下したとき,それが同時にPCへ転送されるか」という意味で,「同時押し対応は6キーまで」といった表現で使われることが多い。

なぜ同時押しなどという概念があるのか。これは,PS/2とUSBという,キーボードとPCとの2大接続インタフェースの間にある仕様の違いが原因となっている

なるほど、確かに。PC Watch のライターさんの独自解釈というわけじゃなかったのですね。


* * *


しかし、わたしが知る Nキーロールオーバーはそう言うものじゃありません。自分を過信するのは良くないのですが、けれど わたしも 猫のキーボードルーム なんてサイトを作っちゃうほどのキーボードオタクであったわけで、少なくとも現役オタクだった 2000年代中頃くらいまでは、そんな解釈じゃなかった筈なんだけどなー。

なら、一体何時からそう言う解釈になったのかしら、と、いろいろ見て回った所、Wikipedia の Nキーロールオーバーのノートに面白い記述を見つけました。

以上より、下記の点について皆様のご意見を伺いたいと思います。
「Nキーロールオーバー」とは「全キーが押下状態にあることを同時認識可能」という場合のみを指すのか、それとも「キーが押下状態にあることを同時認識可能なキー数には制限があるが、全キーの同時押下による入力には対応」という場合も含むものなのか
仮に、後者の場合も含むならば、USB接続時には、「Nキーロールオーバーだが、6キーまでしか『同時に』押下状態にあることを認識できない」というケースが存在することになります。 なお、東プレには、以前問い合わせフォームから質問をしたことがありますが、回答はありませんでした。--Hakuchuumu 2007年12月5日 (水) 11:57 (UTC)

後者の考え方でいいと思います。「現に押されていることがスキャンできる」という意味は、rollover(転覆)という言葉には含まれないと考えるべきかと。「押された状態」に対してではなく、「押すという行為」に対して用いる単語であると思います。ここ読んで逆にびっくりしました(笑)。本来、高速な打鍵ができるタイピストのための機能ですし。従って、キーボード (コンピュータ)#ロールオーバーのUSBキーボードの説明に問題点はないと思います。「キー自体は入力されるが、6キーより先は最初に押したキーから順に指を離した扱いとなる」=「押されたキーのコードは全て順次ホストに送信され、最後に送信した6個だけが同時に押されている状態になる」と読めます。--Peachberry 2008年3月13日 (木) 14:46 (UTC)

ありがとうございます。実は最近になってキーボード (コンピュータ)#ロールオーバーの説明が変更され、後者の考え方に切り替わりました。それ以前は、「USBキーボードはUSB HID規格で定義されているboot protocolがほとんどの場合使われるが、その場合そのフォーマットの構造からくる制約により最高でも6キーロールオーバーまでとなる。」と記載されていたので、前述の疑問を持った次第です。確かに、rolloverの原義からすれば、後者に解するのが自然ですね。この分では、いずれキーボード (コンピュータ)#ロールオーバーとの項目としての競合関係の整理が必要になるかも知れませんが、本項も後者の意味を前提に整えていければと思います。--Hakuchuumu 2008年3月15日 (土) 12:06 (UTC)

ノート:Nキーロールオーバー - Wikipedia

ふうむ。少なくとも この日本語のWikipedia のノートを見るかぎり、2008年頃に Nキーロールオーバーの解釈が変わるターニングポイントがあったようです。

ただ、Peachberryさんの「"rollover"という言葉は"押されている"ではなく"押す"に掛かる」から「逐次6キー同時押し認識 ⊂ N Key Rollover)」 という判断は、少々乱暴に過ぎる気がします。この文脈で rollover に「転覆」という訳を与えているのも不安を誘います。Wikipedia(ja)の記述は個人的には眉唾かな。

というわけで、英語版の Wikipedia を確認してみました。

Normal typing

During normal typing on a conventional computer keyboard, only one key is typically being pressed by the user at any given time; each key is released before the next key is struck. However, this is not always the case. When using modifier keys such as Shift or Control, the user will intentionally hold down the modifier key(s) while striking and releasing another key. Rapid typists may sometimes inadvertently press a key before releasing the previous one. Certain unusual forms of keyboarding require multiple keys to be struck or held down simultaneously- for example, Braille2000 keying requires that as many as six keys be struck at once.[1] Some computer games have interfaces requiring holding down keys (other than the usual modifier keys) while pressing and releasing other keys.[2]

普通のコンピューターキーボードでの通常のタイピングでは、ユーザーは一時に一つのキーしか押下しません。次のキーが打たれる前にキーを離します。とはいえ、常にそうだとは限りません。Shift や Control のような修飾キーを使うときは、ユーザーは意図的に修飾キーを押しっぱなしにします。高速打鍵者はしばしばうっかり前のキーを離す前にキーを押してしまいます。また、キーボーディングの特殊な用法では、複数のキーの打鍵したり押しっぱなしにしたりすることが要求されます。例えば、Braille2000 キーイングでは 6つまでのキーを一度に押すことを要求します。いくつかのコンピューターゲームでは、(通常の修飾キー以外を)押しっぱなしにしたまま、他のキーを押したり離したりできる必要があります。

n-key rollover

Certain high-end keyboards have "n-key rollover". This means that each key is scanned completely independently by the keyboard hardware, so that each keypress is correctly detected regardless of how many other keys are being pressed or held down at the time.[3]
Most music keyboards use isolation diodes in their keyboard matrix to implement full n-key rollover (sometimes abbreviated NKRO), making them immune to both key ghosting and key blocking.[4]
However, to reduce cost and design complexity, most keyboards do not isolate all keys in this way. Instead, they use a matrix of key switches, without any isolation diodes, that assumes that only a limited number of keys will be held down at any given time.

特定のハイエンドキーボードは 「N-Key rollover」機能を持っています。その意味は、キーボードのハードウェアによって各キーが完全に独立してスキャンされることで、何個のキーと同時に押したりとか、既に何個のキーが押したままにされていたりとかと関係なく、正しくキー押下を検出できます。
ほとんどの音楽キーボードはフルN-Key rollover(略称NKRO) を実現するために、キーボードマトリックス中に分離ダイオードを使い、キーゴーストやキーブロックを防いでいます。
しかし、ほとんどのキーボードでは、コストや設計の複雑さを軽減するためにこの方法での全キーの分離を行っていません。これらは分離ダイオードを使わないマトリックスキースイッチを使っていて、一時に限られた数のキーしか押し続けないことを前提に作られています。

Rollover (key) - Wikipedia

Some low-quality keyboards also suffer problems with rollover (that is, when multiple keys pressed at the same time, or when keys are pressed so fast that multiple keys are down within the same milliseconds).

いくつかの低品質キーボードでは、ロールオーバーの問題(=複数キーの同時押しや、ミリセコンド単位の複数キー連弾)に悩んでいます。

Early "solid-state" keyswitch keyboards did not have this problem because the keyswitches are electrically isolated from each other, and early "direct-contact" keyswitch keyboards avoided this problem by having isolation diodes for every keyswitch. These early keyboards had "n-key" rollover, which means any number of keys can be depressed and the keyboard will still recognize the next key depressed.


初期の「ソリッドステート」キースイッチキーボードにはこの問題はありませんでした。なぜならこれらのキースイッチは他のスイッチと電気的に絶縁されており、初期の「ダイレクトコネクト」キースイッチキーボードはキースイッチに分離ダイオードを持つことでこの問題に対処していました。これらの初期型キーボードは、「N-Key」ロールオーバーを持っていました。その意味は、好きなだけのキーを押すことが出来、さらに次のキーを押してもまだキーボードが認識できることです。

But when three keys are pressed (electrically closed) at the same time in a "direct contact" keyswitch matrix that doesn't have isolation diodes, the keyboard electronics can see a fourth "phantom" key which is the intersection of the X and Y lines of the three keys. Some types of keyboard circuitry will register a maximum number of keys at one time. "Three-key" rollover, also called "phantom key blocking" or "phantom key lockout", will only register three keys and ignore all others until one of the three keys is lifted.

しかし、分離ダイオードを持たない「ダイレクトコネクト」キースイッチマトリクスでは、一度に 3キーが押下(=電気的に閉じ)されると、キーボードエレクトロニクスは3キーのX・Y線の交点に「ファントム」キーを見ることになります。なので、いくつかのキーボード回路では最大同時押下キーを設定します。「3-Key」ロールオーバーはしばしば「ファントムキー抑止機能」とか「ファントムキー無視機能」とか呼ばれ、たった3キーのみを登録し、他のキーはその3キーが離されるまで無視します。

This is undesirable, especially for fast typing (hitting new keys before the fingers can release previous keys), and games (designed for multiple key presses).

これは、特に高速タイピング(前のキーを指が離せる前に 次のキーが打たれる)やゲーム(複数キー同時押しするようデザインされている)にとって望ましくありません。

Computer keyboard - Wikipedia

ズバッと正解が書いてあって、そこだけピンポイントにズバッと引用、ズバっと解決!・・・出来ればよかったのですが、なんとも微妙な感じだったので、延々と引用してしまいました。

N-Key rollover は 「任意数のキーが同時にonにされる」or 「任意数のキーが既にonである状態のまま、新たなキーが ON にされる」の両方のケースにおいて、ON である全てのキーを識別できること、と説明されます。

「"N-Key rollover" は "N-Key同時押し" を含む概念」と解釈するのが自然ですし、N-Key rollover が必要とされるシーンとして「同時押しを要求するゲーム」とか「音楽のキーボード」が例示されているのを勘案すれば、「いくつ同時に押されていても6キー分のonしか認識できない状態」は N-Key rollover とはいえないと解釈するのが自然に思えます。

一方で、N-Key rollover が キー配線構造と対でしか説明されていないのも事実です。

この用語の生まれた背景には まず、キースイッチ配線上の制約があったからですので、このような説明になってしまうのは自然です。しかしそれを拡張して新たな制約である USB の電文書式 による制約ををコンテキストに含めるべき(あるいは含めないべき)と解釈して良いかは明言がありませんので、「『キースイッチの認識の話』というレイヤーでは確かに N-Key rollover だけれども『最終的なコンピュータ上での認識の話』というレイヤーでは 6-Key までしか同時認識できない」というキーボードをなんと呼ぶべきかは、厳密には宙ぶらりんと言えます。

ここにNキーロールオーバーの日本解釈が入り込む余地があるわけなので、白黒はっきりしたかったのですが....。

他の英語サイトはどうじゃろか、といろいろブラウズしてみたのですが、今のところ日本的解釈の N-Key Rollover は見つけられていません。ざっとブラウズしてみた限りでは、USBの制約も含めてNKRO判定してるんじゃないかな、というのが感触です。例えばこんなのとか。

I'm pretty sure the kinesis has NKRO over PS2 (Not counting those function keys it's got.) Most keyborads that have 6KRO over USB (Limitation of USB 1) will have NKRO over PS/2, with a passive adapter. I don't know for sure, but it's a reasonably good bet that the TE will be compatible with this.

Why do you want NKRO?

Ergonomic mechanical keyboards with N-key rollover?

まあ、たかが掲示板の書き込みが 用語の正しい解釈についてどれほどの根拠になるかは疑問ですが...(^^;

というわけで個人的にこの件は、日本のゲーム愛好家界隈が発祥の 日本固有の方言ということなんじゃないかなぁと思ってますが、ちと根拠薄弱ですね。誰か追跡調査プリーズ。


* * *


キーボード関連の用語の混乱は今に始まった話ではなくって、いろんな用語が無茶苦茶な状態になっています。正直わたしも他人事の様には言えません。たとえば以前まとめた

では、「シリンドリガル・ステップスカルプチャー」について、コメント欄で突っ込まれまくってます。(・・・って、これを書いたの2007年ですか。月日がたつのは早いですにゃ〜)

ステップスカルプチャー は、横から見たとき 階段状になるようキーが並べられる構造を差しますが、その中に「カーブ状になるよう段差がつくられたもの」「単純な等差の段になるもの」があって、それを区別して呼びたいという欲求からが、語意を歪めてしまったケースと思われます。

「区別した呼び名が欲しい」という欲求が、もともとキートープ形状を指す「シリンドリガル」と併せた「シリンドリガル・ステップ・スカルプチャー」という記述を、前者の「ステップスカルプチャー」を指す用語として、乗っ取らせてしまった(と疑われる)例です。

参考/多分正しい(=もともとの)例:

ステップスカルプチャーとは、キーボードの構造を示す言葉で、キーが段ごとに階段状の段差を持ち、キートップの傾斜確度によって上下の段が緩やかな凹型を描いてるような構造のことである。

キーに段差を傾斜の違いを持たせることで、段を誤らない正確な位置把握と、ホームポジションから移動の少ない打鍵が行いやすくなっている。このため、タッチタイピングが行いやすく、身体的負担も少ないとされる。

また、個々のキーのキートップが指先に沿うような凹型になっている構造をシンドリカルと呼び、キートップがシンドリカル形状になっているステップスカルプチャー構造をシリンドリカルステップスカルプチャーと呼ぶ場合もある。

ステップスカルプチャーとは 「ステップスカルプチャ」: - IT用語辞典バイナリ

乗っ取ってしまった例:

 キーの形状は「ステップスカルプチャー」(Step Sculpture)と呼ばれる階段状。最近は,横から見たときに中央部の凹んだ格好で湾曲している「シリンドリカル・ステップスカルプチャー」(Cylindrical Step Sculpture)が流行だが,G15では“シリンドリカルでない”ステップスカルプチャー仕様だ。シリンドリカル・ステップスカルプチャーに慣れている筆者は打鍵しづらさを若干感じたが,ノートPCなど,傾斜の少ないキーボードに慣れている人なら,違和感はないだろう。

キーボード −「G15 Gaming Keyboard」− レビュー

このような前例から、今回の Nキーロールオーバーの意味変化も、新たなUSBキーボード特有の制約により生まれた差異をうまく表現できないかな、という欲求から用語の語意の乗っ取りが生じたんじゃないかなぁ、と疑ってしまうわけでして。

もし私の解釈が正しいとするならば。

元を正せば USBになっても未練たらしく仕様表に「Nキーロールオーバー※(ry」と書きつづけたメーカーが良くなかったのだと思いますが、キースイッチ構造としては奢っているのに USBのせいで 6キーロールオーバーと書かざるを得ないのが無念で理不尽という気持ちも分かります。高速タイピング用途には Nキーロールオーバーとほとんど同じ使い勝手ですしね。

なので、せめて「トコロテン式 6-Key Rollover」に高級そうで格好良い名前がつけられていれば、みんな幸せになったのかな、と思います。