「アクセシビリティ適応性を付加した」連続シフト系配列用の共用ロジックである「タイムシフト+プレフィックスシフト」を用いて、「アクセシビリティ対応のかえでライティあすか」を表現してみるテスト。
(未来:プレフィックスシフト付きの「かえで****あすか」に、致命的欠陥が見つかった……ので修正。 - 雑記/えもじならべあそび)
(未来:【かえで****あすか】に「アクセシビリティ対策」を付加できるか?と聞かれたら……。 - 雑記/えもじならべあそび)
(過去:「飛鳥カナ配列」と「新JISかな(JIS X 6004)」に関するメモ。 - 雑記/えもじならべあそび)
(過去:「タイムシフト」にもKISSの原則を適用してみた。 - 雑記/えもじならべあそび)
(過去:「親指シフト系配列」は、まとめてNICOLAの「アクセシビリティ対応」によって実装されるべき!? - 雑記/えもじならべあそび)
(過去:とりあえず親指シフト「エミュレータ」と親指シフト「ソフトウエアロジック」だけをJIS化してみよう! - 雑記/えもじならべあそび)
(過去:今日の「仮名漢字変換システム用同時打けん型入力法 X 9xxx-200x」は【一本指でも親指シフト!】。 - 雑記/えもじならべあそび)
(過去:タイムシフト方法、簡易的まとめ。 - 雑記/えもじならべあそび)
……まー、「JIS化するッ!」とかいう話でもない限りは、普通はアクセシビリティ対応をしても仕方がない配列(だって私用配列ですから^^;)という状況なのですが、とりあえず「かえでライティあすかをアクセシビリティ対応とすると、どういう風になるか」ということを頭の中で整理してみたかったので、ひとまず作ってみました。
ちなみにこの「シフトロジックを共用できる」という考え方、【tomoemonさんによる「打鍵のtomo2」プラグイン関連コメント。 - 雑記/えもじならべあそび】を書いていなければ、思い出すことは永遠になかった……のかも?
以前にばらばらに書いていたことなどはあったのかもしれませんが、今回は「はじめからロジック共用を目指して」定義を書いています。
繭姫の定義記述法について理解してさえいれば、他の配列にも応用はできると思います。
StrokeModeの理解ができるかどうかが鍵なので、いまいち自信がない……という方は、【繭姫におけるStrokeModeの記述理論 - 雑記/えもじならべあそび】あたりをご覧ください。
繭姫を使えば「タイムシフト」+「プレフィックスシフト」の環境は実現できます……が、できればもう少し単純に「タイムシフト」+「プレフィックスシフト」な環境があるとよいのかもしれないですね。
ちなみに、タイムシフトロジックは「シフトキーではない文字キーが、数十ミリ秒遅れて押されているかのようにエミュレーションするだけ」という単純仕様なので、同時打鍵ロジックは必要としません……というか、同時打鍵ロジックのような細かい時刻処理は行いませんし、原理上できません(また、そういうややこしさを必要としません)。
このロジックは「親指シフト(NICOLA)」および、親指シフト用の同時打鍵ロジックをそのまま使うけん盤配列への応用はできません。この制限は「親指シフト用同時打鍵ロジックが、親指シフトキーの連続的な押下が行われたときに、その付近の一つのキーに対してしかシフト修飾を行わない」という挙動を必要としているのに対して、タイムシフトではそういった点を一切考慮しないことを前提にシフトタイミングを決めようとしている(=からこそ、シフト方式名が「タイムシフト」である)ためです。
逆に、新JISかなでは役に立った……ということは、このロジックは「JISかな」にとっても役立つ可能性があります。というか、「親指シフトが採用しているような、一文字打ち切りのシフト修飾方式ではなく、かつシフトキーを専用に持っているけん盤配列」に対してであれば、どんなものに対してでも同じように適用できる可能性があります。
同じロジックで再現できる配列が、多ければ多いほど良い……のかどうかはわかりませんが、「システムを単純に済ませる」ことと「たくさんの配列を実装する」ことを両立するためには、こういったところも一つの鍵になるのかもしれません。
では、とりあえず定義を貼っておきます。
新JISかな/JISかな版については、ご要望があれば作成しますー。
visible=1←この行は常に先頭に置き、かつ削除しないでください。 ' ' Prefix shift and time-shift support for kaede-righty-asuka layout.hmo_kana ' 【かえであすか・プレフィックスシフト付き.hmo_kana】 ' プレフィックスシフトを許容したタイムシフト方式の「かえでライティあすか」定義 ' ' ※このロジックは、新JISかなと、飛鳥カナ配列族で同一のものを使用します。 ' このロジック自体は、「新JISかな配列(JIS X 6004)」で実際に採用されたものと、 ' 「新JISかな配列(JIS X 6004)」設計時資料に明示されていた方法に準拠しています。 ' '────────────────────────────────────── ' 【ご案内】繭姫を使って「タイムシフト」をエミュレーションする方法について。 ' 「タイムシフト」ではないロジックを用いる繭姫で「タイムシフト」を実現する ' ためには、以下のように設定を行う必要があります。 ' ' まず、繭姫のアイコンで右クリックをして「設定」をクリックし「設定窓口/繭姫」 ' を出します。 ' ' つぎにタブ「時間」を出してから、以下の2ポイントを設定します。 ' 《同時打鍵として認める押下開始の最大ずれ時間》──0.040秒に設定。 ' 《SandS/飛鳥などの二打目(三鍵目)以降の要重複押下時間》──0.040秒に設定。 ' ' タイムシフトは「同時打鍵開始と同時打鍵終了のタイミングを同じだけずらす」 ' ロジックとなるため、繭姫に装備されている調整部分を以上のように調整すると、 ' 一般的にソフトウェアで再現可能なタイムシフトロジックと、同等の挙動となります。 '────────────────────────────────────── TypeModeDefault=8 StrokeMode=2 MultiDownHold=LR '親指用の左シフト2打鍵で「無変換(NonConvert)」キーコードを送出。 =L L X '親指用の右シフト2打鍵で「変換(Convert)」キーコードを送出。 =R R Y '【以下の配列定義を読む上での注意点について】 'シフト面の定義では、「={?}」は同時打鍵部、「=?」は逐次打鍵部をそれぞれ「同じ配列で」定義しています。 'シフト無し = WantThemselves=1 'ロマかな変換が余計なことをしやがるので、それを防ぐために直接投入。 y_ ──$…… [] [$] WantThemselves=0 '数字段はすべて、スルーして英字アンシフト側で出す。 qwertuiop@ 「$ー$じ$ぶ$%$・$と$は$ば$」 asdfghjkl;: き$し$う$て$ぎ$ゆ$ん$い$か$た$け zxcvbnm,./ ぴ$ち$み$に$ぢ$ゃ$っ$ょ$ゅ$め '親指用の左シフト……数字段は【+】付きの小指シフトモード。 '「={?}」は同時打鍵部、「=?」は逐次打鍵部 ={L} + 1234567890-^\ !$”$#$$$%$&$’$($)$+$=$〜$| qwertyuiop@[ ぜ$せ$え$ぁ$ぅ$ぇ$ぃ$よ$ふ$!$)${ asdfghjkl;:] だ$さ$あ$り$ぉ$ず$る$す$ま$で$げ$} zxcvbnm,./ ざ$ひ$ね$び$ヴ$や$が$、$。$? =L + 1234567890-^\ !$”$#$$$%$&$’$($)$+$=$〜$| qwertyuiop@[ ぜ$せ$え$ぁ$ぅ$ぇ$ぃ$よ$ふ$!$)${ asdfghjkl;:] だ$さ$あ$り$ぉ$ず$る$す$ま$で$げ$} zxcvbnm,./ ざ$ひ$ね$び$ヴ$や$が$、$。$? '親指用の右シフト……数字段は【&】重複の右手飛鳥モード。 '「={?}」は同時打鍵部、「=?」は逐次打鍵部 ={R} * WantThemselves=1 'ロマかな変換が余計なことをしやがるので、それを防ぐために直接投入。 [] 「$」 WantThemselves=0 1234567890-^\ !$”$#$$$%$&$゛$<$>$゜$却$却$却 qwertyuiop@ ($ぷ$れ$ぱ$&$〜$ぞ$そ$こ$ご$ぽ asdfghjkl;: わ$お$な$ら$づ$ぬ$く$の$つ$ほ$ろ zxcvbnm,./ ぺ$べ$へ$ぐ$*$む$を$ど$も$ぼ =R * WantThemselves=1 'ロマかな変換が余計なことをしやがるので、それを防ぐために直接投入。 [] 「$」 WantThemselves=0 1234567890-^\ !$”$#$$$%$&$゛$<$>$゜$却$却$却 qwertyuiop@ ($ぷ$れ$ぱ$&$〜$ぞ$そ$こ$ご$ぽ asdfghjkl;: わ$お$な$ら$づ$ぬ$く$の$つ$ほ$ろ zxcvbnm,./ ぺ$べ$へ$ぐ$*$む$を$ど$も$ぼ '小指シフト入力……スラッシュ【/】はこの面で。 '「={?}」は同時打鍵部、「=?」は逐次打鍵部 ={H} WantThemselves=1 'ロマかな変換が余計なことをしやがるので、それを防ぐために直接投入。 / / WantThemselves=0 @;:,. F;M@$F;M;$F;M:$F;M,$F;M. 'ほかのキーはすべて、スルーして英字シフト側で出す。 =H WantThemselves=1 'ロマかな変換が余計なことをしやがるので、それを防ぐために直接投入。 / / WantThemselves=0 @;:,. F;M@$F;M;$F;M:$F;M,$F;M. 'ほかのキーはすべて、スルーして英字シフト側で出す。 'LessonQのための定義 = 空