2023年06月29日

【薙刀式】先押し後離しロジック

が漢直WSに実装された模様。
へえ、おもしろい。
https://twitter.com/kanchokker/status/1674034006046945281?s=20


AB同時押しとAB順押しを区別することは、
同時打鍵配列には宿命的につきまとう問題だ。

タイマーロジックだと、
ABを素早く押せば同時、ゆっくり順押しすれば順押し
(離しは気にしなくて良い)

というパターンが多いが、
「素早く」と「ゆっくり」が、
文章を書いてるリズムで変わってくることを、
経験的に僕は知ってるので、
○msとか、○%重なりとかの機械的判定が、
僕には合わなかった。
そのバラツキすらも、個人差があり得るから、
一様機械的判定でも大丈夫な人もいるかもね。

で、
僕はいっそ、
「徹底的に機械的判定にして、
人間の側で同時と順を明示的指定」
と考えて、
相互シフトにたどり着いた。

ABの押し順は関係なく、
ロールオーバーすれば同時、
しなければ順押し、
というイチゼロの考え方。

割り切れていてとてもわかりやすい。
しかしこれは、
高速打鍵時にロールオーバーしてしまうことを防げない。
2〜3カナならコントロールできるけど、
7カナを一気に打つときに、
数%くらいの確率でロールオーバーしちゃうことが、
稀に良くある。

高速打鍵すればするほど足枷になるので、
うーむ、とは思っている。

そこで今回の「先押し後離し」だ。
先に押したものを最後まで押し続けて離したときに、
何を押して離したかで、
同時打鍵判定する、
という変わったシステム。

これならロールオーバーは通して、
同時打鍵は明示的に打てるはず。


ただABとBAの相互シフトで判定すると、
両方の打鍵法をマスターしないといけないから、
たぶん先押しするべきキーはAのみにする、
のように設定した方がマスターが早そうだ。

例で挙げられているのは、
「し」先押し→「よ」押し離し→「し」離し
で「しょ」となる例だ。
「よ」を先押ししなさそうだから、
この例では楽だろうね。

薙刀式の濁音同時押しだと、
濁点を後付けするから、
清音先押しにしたほうが直感的なのかな。
それとも「俺は今から濁音を打つぞ」という風に構えた方がいいのかしら。


薙刀式は現在v15(未発表、試験中)であるが、
v14では「から」をロールオーバーすると「ぶ」に化ける、
という欠点があった。
「か」が濁音同時押しキーで、「ら」の裏に「ふ」がいるため、
相互シフトが意図しない所で発動する欠点だ。

これはv15に至る過程で、
「暴発しにくい場所へ『ふ』を移動させ、
『ら』の裏には濁音にならないカナを置く」
ことで回避した。

論理配列側でカバーすることは、
ある程度可能だけど、
原理的に0には出来ないので、
v15でも残る化け問題は存在する。
(「はな」→「ぱ」とか。
ただ頻度的には低めのものばかり)



これをエミュレータのロジックでコントロールする、
というのが発想の根本ではあると思う。

ただ同時押しの良いところとして、
「順番を気にしなくて良い」
「意図しない所で逆順になってるところは結構ある
(鈍い外側指と速い内側指の同時押しなどで)」
があるので、
実際の高速打鍵時にどういう影響があるかは、
なんとも言えないところ。

結局「好み」になりそうだな。
合う人と合わない人がいそうな気がするなあ。
まあエミュレータとして、
様々な好みに対応してるのは、
すごいと思う。

ただ編集モードの暴発
(M,を押しながらFが「なんか」のロールオーバーなのか、
編集モードなのかの区別がなかなかつかない)
は、この仕組みで抑えられるとは感じる。
Fを先に離せば編集モードになるからね。


オールロールオーバー可能だが、
先押しかつ後離しを徹底する必要のあるこの仕組みと、
薙刀式の現在の、
同時に押す瞬間があるかないかで決める仕組み。
一長一短だなあ。

逆に、先押し後離しがやりやすい論理配列を、
設計するという手があり、
それが「のにいると」になるのだと予測する。

先日見たT-codeの衝撃は凄かったので、
これにカナを組み合わせることが、
人類に可能かどうかを見てみたい…
やっぱカナ単打になるとすごいと思うんだよな…
posted by おおおかとしひこ at 12:09| Comment(9) | TrackBack(0) | カタナ式 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
タイムリーな話題。ちょっとくらいロールオーバーしても単打扱いにする、をやりたくて、QMK薙刀式の変換部分を書き直しています。まだ編集モードがないのですが、それ以外は動作します。
ロジックはblogにも書いたのですが、かな漢字変換のように変換候補を並べて、点数づけして、一番点数が高いものを採用する方式です。点数はキーの重なり時間をもとにしました。
うまくいきそうな感触です。

https://github.com/eswai/qmk_firmware/tree/master/users/naginata_v15x
Posted by eswai at 2023年06月29日 22:40
>eswaiさん

なるほどー。重みづけさえ上手くいけば便利かも。

…とはいえ文字部分では15A版でもうほぼ困ってなくて、
困ってるのはむしろ編集モードなんですよねえ。
そんな、こんな、なんか、なんと、なんとか、
あたりは単打で連接しやすいので、
この辺の化けは気をつけるしかないかなあ、
と諦めていて、
それらをロジックでカバーできると、
便利になるだろうと想像しています。
Posted by おおおかとしひこ at 2023年06月29日 23:53
QMK薙刀式の場合、M,を最初に押してからでないと編集モードに入らないので、そんな、こんな、が化けることはないのですが、なんか、なんと、なんとか、は編集モードに入ってしまいますね。
課題に入れておきます。
Posted by eswai at 2023年07月01日 12:05
>eswaiさん

なるほど。言葉を書いてる時はそんなこと考えないからなあ…
Posted by おおおかとしひこ at 2023年07月01日 13:15
QMK薙刀式の今度のやり方で「スペースキーの離し遅れ」の解消ができるかもしれませんね。
「ます」と書くつもりが「まえ」になりやすいので……

ただ、スペースキーだけ連続シフトするっていうのが薙刀式エミュレータ作りの鬼門らしいので、あくまで期待です。
Posted by とる at 2023年07月01日 21:28
>とるさん

ぜんぶ「同時連続かつ相互シフト」で実装の方が楽なら、
それもあり得るのではと思います。
Posted by おおおかとしひこ at 2023年07月01日 21:35
https://imgur.com/a/MTQsDdh

図のタイミングくらいで、「まえ」と「ます」が変わります。これくらいラップしててもまだ「す」に変換してますね。これは評価関数のチューニング次第で、そこが今後の改善余地で、面白そうなところです。
編集モードも載せて、実用的に使い始めたのですが、課題は実行時のメモリが足りなくてOLEDなどをオフにしないといけないことですね。

連続シフトは、スペースも濁点も、編集モードもしているのではと思います。
Posted by eswai at 2023年07月02日 07:42
なんか同じグラフになってましたので、データを撮り直しました。
https://imgur.com/a/LrNnZZ9
Posted by eswai at 2023年07月02日 08:23
>eswaiさん

にしても50msくらいの差で見分けてるのかー。
本人の癖の要素が大きくなるかもですね。
「自分は数値で言うとこうしている」
というのを理解するための測定器があると、
矯正の練習もしやすいのかしら。
Posted by おおおかとしひこ at 2023年07月02日 09:37
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック