ぴろりのくせになまいきだ。

世間に平和はおとずれなぁい

キーボードにおける物理配列に関する考察

はじめに

キーボードは、ヒューマンインターフェースデバイスとして、現代における万年筆といってもよいポジションに位置しているといえます。一日中キーボードを使用している、という方も少なくないはずです。
長時間キーボードを使用していると、肩こり、腱鞘炎等の種々の身体症状が現れる場合もあります。
そこで、エルゴノミックを謳うキーボードも多く販売されています。
そのようなエルゴノミックを謳うキーボードの中には、特殊な物理配列をしたものもあり、市販されていないキーボード(自作キーボードキット等)では、一見するとキーボードにすら見えない攻めた配列のキーボードもあります。

私は、昨年から自作キーボードを作り始め、ついには設計までするようになってしまいましたが、設計する際に物理配列について考察したことについて、備忘録的にまとめておきたいと考えました*1

なお、手の大きさや指の長さ、各指の可動範囲および動かしやすさ等は個人差がありますので、あくまでも私の手においては、という意味の考察であることは予めご了承ください。
一応、全く自作キーボードに触れたことがない方でも(興味があるかどうかは別として)、読めるように記載したつもりですので、ぜひ皆さんお読みください。

親指と小指の位置関係

カラムスタッガード系配列

まず、カラムスタッガード系配列における位置関係についてみてみましょう。
カラムスタッガードとは、列方向(縦方向)にキーがずれて配置されている配列を指します。例えば、以下のようなキーボードがカラムスタッガードのキーボードに該当します。
Corne Cherry V3shop.yushakobo.jp
Lily58 Proshop.yushakobo.jp

今回、数字行は手を浮かさないと届かないものとして、あまり考えないことにします。
こういったカラムスタッガード配列のキーボードにおいては、普段遊びがちな親指を積極的に使おうという思想のものが多く、親指キーに2~4キーほど振ってある設計が大半です。
以下、カラムスタッガード配列のキーボードの配列を真上からみた図を示します(私がKLE*2で適当に作りました。)。

カラムスタッガード配列の例
カラムスタッガード配列の例2

さて、まずご自身の手をご覧になってください。一番短い指は何指でしょうか? もちろん親指ですね。次に短いのは通常小指ではないでしょうか。
そうすると、こういった配列においてすべてのキーを無理なく打てるようにするには、短い親指と小指に合わせて手を置くことになるでしょう。
では、実際にこれらのキーボードに手を乗せるとどうなるでしょうか。
実際には指の曲がり具合もあり、図示することが困難であるため、ご自身の手を眺めながらお読みください。
おそらく、最も内側に置いた親指キーに指が届くようにしつつ、小指を伸ばしてぎりぎりTabキー、Qキーに届くように手を置くと思います。薬指、中指、人差し指はその手の角度なりに置かれることになるでしょう*3

そのうえで、小指の位置を上下するように手の置き方を変え、親指の動く方向を観察してみてください。
小指の位置を下げれば、親指がより内側まで届くようになりませんか? 逆に、小指の位置を上げると親指がより下方向に動くようになりませんか?
言われてみれば当たり前のことなのですが、小指が担当するキーと、親指が担当するキーとの位置関係によって、キーボードに対する手の置き方が変わる、ということになります。
換言すると、小指列が下がるとより親指が遠くまで伸び、小指列が上がると親指の移動方向が上下方向に近づく、ということになります。さらに、親指を曲げ伸ばしした際の軌跡の方向が変化するので、親指が担当するキーの配置をそれに合わせて調整してやる必要があるといえます。

このことが非常にわかりやすい例は、Claw44であるといっていいでしょう。
docs.dailycraft.jp
見ていただくとわかるように、Claw44は、かなり極端に小指列が下がっており、親指キーが非常に遠くまで配置されています。
私も実物を触るまで、「絶対親指遠いでしょ」と思っていたのですが、実物を触ると、上記の現象が体感できると思います。
また、キーボードの外形の上辺と手が垂直になるように手を置くと、ちょうど小指が打ちやすく、親指キーも届きやすい、という角度になるように調整されています*4
打ちやすい配列を試行錯誤の中で発見したふくさんには感服しました。

もし、ご自身でカラムスタッガード配列のキーボードを設計しようとされている方は、上記の小指と親指の位置関係について調整してみるとよいかもしれません。
なお、私の手においての話ではありますが、上の例2の配列における最も内側の親指キーは、おそらくやや遠いと思います。もう少し小指列を下げると、届くようになる気がしています。

ロウスタッガード系配列

もしかしたら、「いやそんな変な配列のキーボード使わないし」と思われた方もいらっしゃるかもしれません。
ところが、上記の小指と親指の位置関係については、ロウスタッガード配列(普通のキーボードの配列)においても大いに関係のある話なのです。

先ほど、小指と親指が担当するキーの位置によって手を置く角度が変わる、と書きました。
ロウスタッガード配列では、親指はスペースキー(と無変換キー、変換キーあたり)を押すことがメインの仕事になるかと思います。
では、この親指が担当するキーがより外側に来るようにするとどうなるでしょうか。すなわち、親指の横方向のホームポジションをより外側にするとどうなるでしょうか。
皆さんもうお分かりかと思いますが、小指が上に持ち上がります。そうすると、右手の小指で取るPキー(またはさらにその上のハイフンキー等)が届きやすくなります。

したがって、例えばスペースバーを長くすると、小指キーがとりやすくなる、ということになります。
また、自作キーボードでは、スペースバーを分割する場合もありますが、それをどこに配置するか(すなわち親指のホームポジションの位置をどこにするか)、ということが他の指の打ちやすさに影響することになります。

この観点から、いわゆるGRIN配列は、まんべんなくキーが打ちやすい配列であると思います。
grin-keebs.stores.jp
実際に触らせていただいたことがありますが、親指側が下がって角度が自然につくので、小指キーがとりやすく、かつ、移行コストが低い、といういいとこどりの配列であると感じました。

また、直交格子配列(オルソリニア配列)においても、上記の親指と小指との関係は存在するといってよいと思います。例えば、親指キーを横長にすれば、小指キーの取りやすさが変わる、ということになるといってよいでしょう。

人差し指と小指の位置関係

カラムスタッガード系配列

ここでまた、皆さんの手を眺めてみてください。
小指の次に短い指は残りのどの指でしょうか。一説には男性と女性で違う傾向にあるらしいのですが[要出典]、人差し指か薬指になると思います。私は人差し指が小指の次に短いです。
仮に、人差し指が薬指よりも長いとしても、人差し指が担当する列は2列(左手だとR列とT列)あり、横方向に遠い列も打つ必要があり、重要度としては、人差し指のほうが高いといって差し支えないと思います。
そうすると、どこまで届くかという観点からは、次に人差し指によって制限がかかるといってもよいでしょう。

先ほど、小指と親指の関係について論じましたが、仮にその手の角度で指を置いたときに、人差し指が届かないのでは意味がありません。
あまり小指が下がっていない配列の場合は、小指側が高くなるように手を置くことになるため、結果として人差し指側が下がります。逆に、小指側が大きく下がっている配列の場合は、人差し指側が高めでも十分届くことになると思います。

このようにして、小指と人差し指との位置関係を決めて手を置くと、いったん親指のことを忘れるとして、中指列(左手はE列)と薬指列(左手はW列)を取る際の各指の曲がり具合が決まります。
もし、中指と薬指の曲がり具合が大きすぎると、下段のキーを取るには大きく指を曲げる必要があり、窮屈でやや取りにくい形になってしまいます。したがって、小指と人差し指の位置関係によって、中指と薬指のキーの打ちやすさが変化する、といえます。
さらには、小指と人差し指の位置を決めると、手の角度が決まりますので、この位置関係によって親指列の打ちやすさが変化する、といえます。

総合的には、短い親指と小指、さらには次に短いか重要であるといえる人差し指の位置関係を調整することが、カラムスタッガード配列の物理配列の調整において重要であると考えます。

そういうお前の設計は?

さて、ここで、「そこまで理解していながら、お前の設計したカラムスタッガードのキーボードの配列、なんかちょっとおかしくない?」と思われた方がいらっしゃるかもしれません。
CygSUS*5の配列を考えていた際のスケッチを示します。

CygSUS配列スケッチ

見ていただいた通り、小指がかなり下がった配置になっている一方、人差し指列もまあまあな下げ幅になっています。そして親指列が結構下向きに配置されています。

前者は何を狙っているかというと、最上段の行に関しては、ほぼ指を伸ばした状態でキーを押下することを前提としており、私の各指の長さに応じた下げ幅になっています。

後者に関しては、よく考えると、親指の指先の軌跡上にキーの中心がありません。ロータリーエンコーダ側(スケッチでは左側)のキーは、指先の軌跡より下に置かれているし、一番内側(右側)のキーは、指先の軌跡からはかなり下がった位置に置かれています。
これに関して、キー部5%でも質問を受けたのですが、左側のキーは、第一関節のみを曲げて指先で取ることを念頭に置いております。真ん中は比較的ニュートラルな状態(だいたい親指の爪の側面あたり)で押し、そして右側のキーは、指の腹(親指の第一関節の側面あたり)で取る狙いにしています。このような配置は、今まで特に説明していませんでしたが、指のどこでキーに触れるかによって、今どの位置に指があるかを見ずに判別しよう、という意図があります*6

したがって、最近設計したカラムスタッガード配列のキーボードにおいては、私の指の長さと押し方を考慮すると、かなり最適化された配列になっています。

ロウスタッガード系配列

ロウスタッガードにおいても、人差し指の位置が重要になるのは、もはや説明しなくてもご理解いただけると思います。
仮に、親指のホームポジションを外側寄りにすると、小指は上がり、上段のキーまで届くようになるといえますが、人差し指が下がるので、TキーやYキーが遠くなり、また、数字キーの5~7あたりも押しにくくなりやすいといえます。
とはいえ、ロウスタッガード配列の場合は、小指できちんと上段の列を打てるように手を置こうとすると、薬指、中指、人差し指を丸めた状態で置くことになると思いますので、親指と小指の位置関係のほうが重要であると思います。

一方、人差し指と小指と親指の位置関係を調整するという観点から見ても、上記のGRIN配列はよくできていると思います。
内側(T列、Y列)が下がっていますから、小指と親指の位置を優先して手を置いたとしても、違和感なく人差し指で上段のキーを取ることができるといえます。
GRIN配列のキーボードを触った際に、考案者のpoliciumさんのすごさを思い知りました。

おわりに

この物理配列に関する考察においては、実は、手の甲が置かれる位置および角度については何ら触れていません。
3Dのキーボードを作った際に思い知ったのですが、パームレストを使うなどして手の甲と指との位置関係を調整すると、それだけで打ちやすさが変化します。また、手全体をどれくらい内向きに構えるのか、という意味の角度(ロール方向の角度)によっても打ちやすさが変化するといえます。
したがって、今回の考察は、あくまで平面の配置を考えた際の一要素である、と捉えていただくのがよいかと思います。

キーボードを設計した人は、少なくとも自分では打ちやすいと思って作っているはずですので、他の人のキーボードを触る際には、なぜこの配置で打ちやすいと思ったのか、という点について思いを馳せてみると面白いかもしれません。

一方、ロウスタッガード派の方も、自分の親指のホームポジションがどこであるか、という点は見直してみると面白いかもしれません。

この記事は、ロウスタッガードなのかカラムスタッガードなのかよくわからないQuokka*7で書きました。

*1:なお、この記事を書こうと思ったきっかけは、オタヒーのサメさんのツイートがきっかけです。オタヒーのサメさんも同様のことに気づかれていたと思いますので、私が最初に提唱したわけではなく、キーボード界隈の皆さんも感覚的には気づかれていたけど、文章になっていなかった、という類の話と認識しています。

*2:Keyboard Layout Editor

*3:ここで、かなり無理しないと指が届かないようであれば、他のキットにするか、ご自身で設計中の場合は配列の設計を見直した方が良いでしょう。

*4:なので、実は適当にこの配列をマネしても、直感的に打ちやすくなるわけではない、という点が面白いところです。

*5:積層ケースのキーボードを基板から作ってみた - ぴろりのくせになまいきだ。

*6:特に許可なくサムクラスタの配置をまねていただいて構いません。ただし、やや場所を取り、筐体が大きくなりがちです。

*7:一体型のキーボードを設計してみた - ぴろりのくせになまいきだ。