親指シフト(2)やまぶきRについて

Windows親指シフトを使うためのソフトであるDvorakJにNICOLA拗音拡張というキーマップを入れて使っていたところ、キー入力が絡まるという話の続き。

前回検討したとおり、これはNICOLA拗音拡張をやめることでだいたいの解決をみた。ところが、やまぶきRというソフトに切り替えたことで、親指シフト入力環境が大きく改善したので、これについて書いておきたい。こうなったのは、やまぶきRの同時入力判定が優れているためである。

前回からの経緯としてはこうだ:

  • 拗音拡張は捨てがたかったのだが、Mac親指シフト環境を作るときの定番であるKarabiner-Elementsというソフトが文字キーの同時押しに対応していないため、覚えても使いようがないので断念、設定を外した。
  • 生のNICOLA配列にしてみると、おかしな挙動がなくなり、かなり快適になった。しかし同時押しは100msに戻してもMacより入力がシビアで、たまに思ったとおりに入力できない。

親指シフトを始めて1ヶ月ほどで、キーボードを見ないで打てるようにはなっていたのだが、拗音拡張配列を外してみて初めて気がついたことがある。思っていたのと違った文字が出たときに、押すキーを間違っていたのか、シフトが押せていなかったのか、拗音拡張を誤動作させたのか、これまで区別できてなかったのだ。漫然と消して当てずっぽうに別のキーを押してみたり、また同じキーで入力し直してみたりしていたことに気がついた。

この、漫然と直す動作が癖になっていると、日本語入力はストレスそのものだ。意識のある部分が常に入力違いに備えており、文章を考えることに割ける容量が大きく減る。

ところが拗音拡張を外し、「いう」を「ヴぉ」にしてしまうような間違いがなくなってみると、いま自分がミスした入力が、文字キーの押し間違いなのか、シフトキーの押し損ないなのか、はっきり区別できることに気がついた。

そうなってみると、今度はシフトキーの押し損ないが結構多いことに気付くわけです。高頻度ではっきり意識してる「の」や「あ」であれば、シフトが押せてなかったことに気がつくけど、「ぬ」とか「れ」みたいに、そもそもうろ覚えな感じの残ってるキーがうまく入力できてなかったとき、これまでは漫然と「間違った~」で修正していた。それが意識できるようになった。

わかるようになってみると、シフトキーの押し損ないは、案外なほど多い。同時押し判定時間は100msに戻したので元通りのはずが、けっこうイラッとくるほど多いことに気がついた。

それで、ほぼ出来心と言うか、ほとんど期待しないで「やまぶきR」を試したところ、これが非常に快適だった。指が迷うことがなくなって、入力ストレスが激減した。

億劫だったインストールは実は簡単で、親指シフトの環境を構築する方法というページに、インストーラパッケージへのリンクがあり、それですぐ使えた。このページは自分が親指シフトを始めるきっかけとなった、安価な親指シフトキーボードを製作したライフラボという会社のもの。(そもそも最初にDvorakJを使ったのは、このページのやまぶきRの紹介に「ストアアプリやEdgeブラウザーではうまく動かないようです」とあったからなのだが、いまのところ不具合には当たっていない。)

やまぶきRが快適なのは、速いからだ。DvorakJでは、どうかするとローマ字入力の英字が見えるような気分になることがあったのが、やまぶきRでは、そういうことはない。もたつきみたいなものが感じられず、ダイレクトな入力感がある。

これは動作が高速なんだろうと思ったのだが、ちょっと調べていたところ、そうではないかもしれない(そうであるかもしれないが)ということがわかった。やまぶきRでは、同時押し判定のロジックそのものが違っていたのだ。

やまぶきRの同時打鍵判定時間は、36msとか100msとかの具体的な時間では設定しない。0-100のスライダで設定するのだが、これの単位は実は「%」なのだ。つまり、先に押した文字キーの押し下げ時間に対する割合で設定する。

なんと、判定時間が伸び縮みするのである。

やまぶきRの配布ファイルのmanual/index.htmlには、「親指シフトが同時打鍵と判定される時間範囲」という項があり、こう書いてある:

この時間範囲の決め方にはいろいろな方法がありますが、やまぶきRでは、「文字キーを押した時点を0、その文字キーを放すか別のキーを押した時点を100として、どれくらいの時間範囲を同時打鍵と判定される時間範囲とするかユーザーに設定してもらう」という方法をとりました。


 たとえば、「親指シフトが同時打鍵と判定される時間範囲」を60に設定したとすると、文字キーが押されてからそのキーが放されるか別のキーが押されるまでの時間の前半60%以内で親指シフトキーが押されていれば、同時打鍵とみなされてその文字にシフトがかかります。

これは非常に優れたロジックだ。人間は「これを同時押しだと判定してほしい」ときは文字キーを長いこと押すし、判定してほしくなければ、軽くタッチしてさっさと離すのである。

こうした「念を押す」とか「軽く済ます」ようなタッチは、人間相手なら通用するが、ふつうはコンピュータ相手には通じるものではない。それでも人間はそのように振る舞ってしまうものだし、それを汲み取るロジックが思いつければ、確実な動作のインターフェイスになるのだ。

また、これはやまぶきRのダイレクト感にもつながっていると思う。同時入力判定の見切りが早く付けば、文字をすばやく送出できるのだ。動作自体も速いかもしれないのだが、動作が遅かったとしても、多少重いロジックでも、これならダイレクトな感覚を得られるわけで、とても頭がいいと思う。

また、前のエントリではこのように書いた:

やまぶきRがシフトキー同時打鍵と文字キー同時打鍵の遅延を分離して扱っているなら、同時打鍵をシビアにしなくても大丈夫かもしれない

これも分離されていた。シフトキーと文字キーの同時打鍵判定と、文字キーと文字キーの同時打鍵判定は、別々の値(%)に設定できる。拗音拡張は当面使わないつもりだが、かなり心強い。

そんなわけで、Windows親指シフト環境について、当面これで満足だ。もういじりまわす部分はない。これからはもっと高速に、なにも考えずに入力できるように精進するのみである。