NICOLA(親指シフト)は、「シフト残り」を防ぐために、「同期非連続シフト」を採用した……って、「シフト残り」は和英共用できるロジックでも防げるってばorz。
(関連:NICOLA(親指シフト)の配列を作った元データは、「300万かな級」なのかも。 - 雑記/えもじならべあそび)
(関連:(memo)やまぶきについて、こーゆー要望を出していいのだろうか?と迷ってる。 - 雑記/えもじならべあそび)
(関連:「やまぶきの考え方」が普及してくれると、僕としてはとてもうれしい。 - 雑記/えもじならべあそび)
(関連:タイムシフトと同時打鍵、どっちが先に乗るべきなのか。 - 雑記/えもじならべあそび)
(関連:(titleonly)NICOLAに「連続ではない、打ちきりの」シフトロジックは「必要」なのだろうか?ってのを、今年は突き詰めて考えないと……。 - 雑記/えもじならべあそび)
NICOLAの同時打鍵ロジックは「神聖にして侵すべからず、ではない」*1。
シフトキーは1回の打鍵だけ有効とし、押え続けを無効とした。こうしないと、親指を離すタイミングが遅れ、誤打鍵が生じることが多い。
(from http://www.ykanda.jp/oasgif/oya-1.jpg 、 http://www.ykanda.jp/oasgif/oya-2.jpg )
神田さんとこでは、親指シフトにおける「Up-OyaShift」の遅れ補償に「同期非連続シフト」を採用した……って、これは「タイムシフト」で解決するほうが、ほかのアクセシビリティ対策とも共有できてシンプルな実装になる*2と思う。
そうすれば、「小指シフトと親指シフトに対して、和英モードのどっちであっても関係なく常時」タイムシフトをかけることができるし、同じ概念で操作できる……んだけどなぁ。
「シフト残り」については、飛鳥カナ配列での「連続シフトのままシフト残り対策を!」ってゆー絡みで、あーでもないこーでもないと意見を出し合って、最終的に「姫踊子草/繭姫」実装してもらった&「やまぶき」を作ってもらったあたりが、すごく懐かしい話で。
……で、肝心の「タイムシフト」は、新JISかなで採用されてなかった……けど、こんな感じの効果を上げてる。
ついでに、読み始めたばかりの59年度版では、もっと興味深い点が。
- 小指シフトの操作が、文字キーの操作よりも若干遅れる被験者が居た。文字キー側を押下後若干(数十ms)遅延して出力させることで、この誤りは激減した。
(from http://d.hatena.ne.jp/maple_magician/20060531/1149008046 )
*3
渡辺さんとこでは、「Down-Shift」の遅れ補償に「タイムシフト」を採用した。
ここでは「Up-Shift」の遅れ補償については何も言ってないけど、タイムシフトである以上は自動的に「Up-Shift」も補償されちゃう。
あと、「Down-OyaShift」と「Up-OyaShift」について、テスト中には問題が出てなかったみたいなのだけれど、親指シフト(NICOLA)で問題が出たってことは、遅かれ早かれ新JISかなでも「OyaShiftでの補償」も必要になったと思う。
……つーか、1980前後にお二方が、【シフト残り】ってゆー同一の問題で悩む可能性があった、ってのは、いまさらになって驚いているのだけれど。
しかも、実際に【シフト残り】にぶつかった親指シフトで「非タイムシフト」が採用されて、【シフト残り】にぶつかってない新JISかなで「タイムシフト」が規格外にされちゃった……ってゆーのは、なんと言うか虚しすぎる気も。
歴史は巻き戻せない、けど、今からでも、何とかならないのだろうか……。
2010年1月1日14:50:15追記。
「タイムシフト」に直接対応してるエミュレータは、現在まだない……けど、同じように振舞ってくれるソフトはあります。
ってゆーか、【飛鳥カナ配列】対応で【シフト残り現象への対策済み】なものは、この振る舞いをサポートするはず。
とくに「やまぶき」はデフォルト値のままで、「タイムシフト」を高度化したタイミング制御になっています。
たとえば、やまぶきの「連続シフトモード」を使っても、基本「NICOLA」のシフト残りは起きないように、勝手に制御してくれます……というか正しく言うと、「やまぶきの連続シフトモード」で誤判定が発生するような打ち方をしている場合、親指ひゅんQを使っていると「やまぶきよりも不安定な誤判定が発生する(≒神田さんが想定していない打鍵ミスの補正を、親指シフトエミュレータが行っていることになる)」と思います。
こういう【危うい打ち方】をしていると、たぶん「エミュレータやOSの癖、あるいはPCの処理能力に左右されて」打鍵時の判定ミス率が、大きく変わってしまうのではないでしょうか?こういう不安定な打ち方は、快適入力を妨げるきっかけになると思います。
「やまぶきの連続シフトモード」で誤打なく打てるようになると、「親指ひゅんQ」での打鍵ミスも自動的に減っているはず……なので、エミュレータの癖に左右されていると感じた方は、いちど「やまぶきの連続シフトモード」でNICOLAの扱い方を練習しなおすほうがよいかもしれません(それでたぶん、他の親指エミュでの誤判定も減ります)。
ちなみにこれは、「やまぶきが特別、親指シフトの判定に対して厳密だ……というわけではない」点に注意。
あくまでも「親指シフトの設計者が意図していない入力タイミング」になっていないかどうか……が、誤判定として「見える」ようになるだけの話です。
2010年1月1日23:19:34追記。
ややこしいことに「やまぶきでは直らないけど、タイムシフト化するとたぶん直ってしまう」類のものもある……ので注意。
たとえば、こーゆーの。
- 再生をs/ずく/する/g
- s/ごき/この/gインプリメント
これが起こる理由は「親指シフトキーボードの、親指キーだけ背が高い」ことと、「文字キー2個の間に打たれる親指キーDownのタイミング」にあります。
ここは「同時打鍵ロジック」と「やまぶき」の間で似た制御になる(同時打鍵ロジックでは50%固定、やまぶきは設定値に従う)ので、基本的に「親指シフトキーボードを使っている限りは」解消できないと考えるほうが自然でしょう。
……ただ、親指シフトキーボードの「親指キーが高いせいで起きる、タイミングズレ」について、実は「やまぶき」で逆補正できてしまいます。
やまぶきの親指シフト設定において、数値を「小さく」すると、親指シフトキーの補正タイミングが「未来方向に」ずれます。
これは、逆に言うと「文字キーの補正タイミングが、過去方向に」ずれることを意味しています。
これによって「物理的なキートップの高さの差を補正」することができ、結果として誤判定を減らすことが出来ます。
……って、ここまでするなら「FMV-KB232や、あるいはフツウのJISキーボードのように、親指キーがムダに高くない、フラットに近いキーボードを使う」ほうが、よほど正しいと思いますけど。
*1:……っていう一言を言いたいがために、www.ykanda.jpのドキュメントを全部再読しました……疲れた。肯定資料があって、否定資料がなかったので、ようやく書くことができるわけです。
*2:NICOLAの「同期非連続シフト」ロジックは、英文入力とかJIS系入力法のように「シフトは連続することを期待されている」システムと混在させることが出来ず「切り替えて使う」しかない。一方、「タイムシフト」は単に文字キー領域の打鍵を「ディレイによって、数十ミリ秒未来にずらす」だけであって、かならず「連続的なシフトになる」から、アクセシビリティの一種として和英を区別することなく導入しても、副作用がほとんどない……しかも親指シフトの誤打削減に必要な「親指を離すタイミングの遅れ(=シフト残り)対策」も、タイムシフトだけでほぼ解決できる。
*3:この図は、2010年3月21日2時47分に挿入。