2021年07月16日

【薙刀式】シフト方式と運動神経

運動神経って、
一回出来るようになったら加速度的に出来るようになり、
そしてそれの応用もできるようになり、
出来ないやつは一生出来ない、という性質があると思う。


さらにいうと、
苦手なやつがある場合、
得意なやつで代替してしまい、
苦手なやつを駆逐して、
得意なやつだけを使うようになる性質も。

排他性というべきか。


これが、
カナ配列における、シフト方式の得意不得意、
採用不採用と関係している気がする、
という話。


親指同時打鍵は、すぐ出来る人と苦手な人がいる。
親指同時に慣れた人は、他のシフト方式に手を出さない。

中指同時と中指前置は、排他的に存在する。

文字領域同時打鍵は、得意な人はバンバン出来るし、
苦手な人は一生手を出さない。

連続シフトも似た傾向にある気がする。
同時打鍵、逐次打鍵、通常シフトは、排他的に存在しそう。

観察してるとこんな傾向があると思った。


僕の場合を振り返ると、
SandSに最初に感動してから、
「親指通常連続シフト」という神経回路が最初にできたように思う。

これは同時打鍵に比べて、
先に押さなければならず、しかも押しっぱなしにしなければならない、
しかも離しのタイミングも考えなければならない、
というデメリットがある。
そのかわり簡単で「新しい打法」を学ぶ必要がない。
連続でかけられるのもわかりやすいし。

同時打鍵に慣れた人は咄嗟に難しいかもだが、
僕はこれが最初からいけた。

逆に、
親指の同時打鍵かつ逐次打鍵が困難であり、
通常シフト版の飛鳥はすぐ使えるようになった。

親指の左右の交差がある親指シフトは出来ず、
交差的でない清濁別置の飛鳥は問題なかった。


文字領域でいうと、
中指同時はすぐ出来たが、
薬指同時は困難だった。
小指同時は全然ダメだった。

(小指通常シフトなんていまだに出来ない。
英語とかだと、中指か人差し指か、中指人差し指の2本で、
サイトメソッドで取るくらい。
DvorakJでSandSしてるから、
これを思い出すのはインストール禁止の会社のPCのみで、
そしてしばらく在宅なのでこの感覚は忘れつつある)


前置は全然ダメだった。
後置は濁点ならギリギリ行けるが、
後置でBSして変化するタイプは直感的に無理。


これらは、神経回路網的に、
排他的な感じがするんだよね。

薙刀式は、
文字領域同時押しから出発したものの、
最終形では文字領域も「通常連続シフト」を用いている。
左右同時に打つのはやはり僕の運動神経的には毎回は無理で、
考えながら打つときは、
「どちらかを押さえながら、よっこいしょともう一方を打つ」
が性に合うようだ。
「で、」とか一拍置くときはとくにそういう傾向があるっぽい。

最初に覚えたSandSの、
「先に押しっぱなしにして待って、
もうひとつを押す」が、
僕の運動神経的に行けるもので、
他のやり方を駆逐する傾向にあるっぽい。

一方eswaiさんは最初に親指同時の親指シフトを覚えたから、
QMK薙刀式では、そっちも実装できるようになっている。
僕もそれを試してみたが、
「文字のあとに変換をロールオーバーすると、
シフトに化ける」ことが直感に反した。
つまり、通常先押し前提が僕を支配していることに気づいた。


細かくいうと、
同時打鍵の判定ロジックでも、
こうした運動神経の排他性があるように思う。
やまぶき-紅皿形式の、重なりパーセントでの同時判定と、
DvorakJ形式の、押した時間の差だけ読み取る判定だと、
ロールオーバー時の微妙な指の動きが違うからね。


三子の魂百まで、ってことだろうか。
一回登った山を降りて、
別の山に登るような困難さがあるのかもしれない。

紅皿版薙刀式の、
やまぶき形式判定ロジックは素晴らしいのだが、
たまにDvorakJの相互シフト的に打ちたくなる現象があり、
なんだかDvorakJに戻りつつある。
(QMK薙刀式に別マップを入れ込もうと思って、
放置したままだ…)


この問題は結構根深いかも知れない。

格闘ゲームではアケコン、つまりレバーとボタンの、
ゲーセンにある操作系から、
ヒットボックス、つまりレバーレスと言われる、
ボタンのみの簡易キーボードへと操作系がシフトしつつある。

これは「どうしても勝ちたい」というモチベがあるから、
はじめてコンバート出来るわけで、
そのモチベがないと、
「山を降りて別の知らない山に登る」ことは、
とても難しいことを示唆していると言えないだろうか。

僕も直感的にアケコンでいいだろ、と思ってしまったが、
ダッシュがレバー2回倒すより二連打で行けるとわかり、
その為ならやってもいいと思ったし。


そもそも109キーボード+qwertyローマ字に慣れた人ほど、
そこから動かない問題も、
同根であると考えられる。

僕が配列道に入ったのは、
109キーボードにもqwertyローマ字にも慣れていなかったから、
つまり山に登る前で、
登りかけたけどすぐ下山するべきと判断したからだと思う。

もしそれなりに使えていたら、
「わざわざその労力を払う価値がある?」と、
懐疑側に回っていたかもしれない。



単純に、
慣れた方が安心で、
知らないのに慣れるのは怖い、
という心理もあるだろうが、
それ以上に運動神経の排他性があるように思う。
(心理も神経の支配ではあるが)


ということは。

エミュレータにおいて、
各配列の本来の設計ではなく、
別のシフト方式を選択できるようになると、
可能性は広がるのかも知れない。

親指シフトも、
通常連続シフト版があったり、
新JISも同時打鍵版があったりと、
仕様上別シフト方式版があったんだよね。

そうした版を試せるようになると、面白いかも。


各指のシフトごとに、
同時/前置/後置/先押し通常/相互、逐次/連続シフト
のオプションが各配列で選べるようになると、
最高だろうか?
(通常、相互のシフトは自動的に連続シフトだろうが、
逐次にする変態がいる?)
デフォルトに戻すボタンがあれば簡単だろうし。

たとえば月配列でも、
同時連続シフトになったら、
がらりと性格が変わりそう。
(そうすると自分なりに改造したくもなるだろうが…)


これは実装を考えるとややこしくて、
実装する側の苦労を考えると計り知れないが、
最終的な配列沼の夢のような気がする。

いまのところ、
特定のものならばQMKで実装できるけど、
誰もが、というレベルじゃない。
仕様変更したら多大なる工事が発生する。
アスファルト剥がして道路を掘り返し、水道管を埋め直すレベルだ。

でも配列というのは、
誰もが使えるものになり、
手軽に変更できるのが理想だろう。
(いま自作キーボードでは、
QMKを直接触らなくてもよい、
remapというWebブラウザでのキーマップ変更アプリがつくられている。
キー交換の簡単なレベルならGUIで行けるレベル)



で、
運動神経のふつうについて、
最近よく考える。

僕は運動神経が悪いほうなので、
それに合わせりゃ大体大丈夫だろ、
となんとなく思っている。

僕は書きたいことが人並以上に沢山あるが、
運動神経が人並以下な、大変なるキーボード難民なのだろう。



一度登った山を降りる勇気は、
ほとんどの人にはない。

けれど、こっちの山はいいぞと、
別の山から呼びかけて、
橋をかけることはできると思う。

ある目的のために、その大変な山に登る必要はなかったと、
あとで分かることもあるだろう。

往来が活発になれば、別の山も見つかるかも知れない。


人類の大きな歴史から見ると、
デファクトスタンダードキーボードは間違っていた、
と後世で語られることは確実だ。
それは、21世紀で崩していくのだ。
自作キーボードとエルゴノミクスと論理配列の研究は、
その突端だ。
posted by おおおかとしひこ at 12:46| Comment(13) | カタナ式 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
>同時打鍵の判定ロジックでも、

>やまぶき-紅皿形式の、重なりパーセントでの同時判定と、
>DvorakJ形式の、押した時間の差だけ読み取る判定だと、

DvorakJ版って、スペースキーを押しているときは押していないときと違い、相互シフトにならないことは使い勝手がいいと思います。

紅皿でも配列定義を工夫すればそういう仕様になるんですけど。

>ロールオーバー時の微妙な指の動きが違うからね。

はじめてHHKBを使ったときには、ロールオーバー気味に押さないと反応しなくて苦労しました。

ちなみに現在の紅皿薙刀式では後置シフトができないようです。開発の初期は同時連続シフトだったと記憶しています。
Posted by なかやさとる at 2021年07月16日 22:22
>なかやさとるさん

その辺の細かいロジックでも打ち加減が違うのが、
配列の難しいところですね。
打ち手によっても好みが変わってくるだろうし。

DvorakJ版のスペースありなしは苦肉の策でそうしたんですが、
結果的にいい時もあるのは偶然の賜物というか。
今の僕はその寄与はあまり受けてないですが。


僕はパンタグラフ出身なのもあり、
いまだに4mmのストロークが苦手と思ってるので、
HHKBの独特の感覚も、慣れない人には慣れないこともあるでしょう。

最速で最楽なものは一つ決めて
(自作物理から自家版ロジックまでふくめて)、
他のものを使うときはある程度妥協していく、
というのが現実的な着地点かなあ。
Posted by おおおかとしひこ at 2021年07月16日 23:44
色々な打鍵方式があるのですね。

私の場合は実質的に親指シフトの同時打鍵しか知らず、
薙刀式のDvorkJ版で通常連続シフトによる文字入力を初めて試し、
余りの感覚の違いに戸惑いました。

その経験と自分の『指が喋った体験』を照合して、

・親指シフトで言われる『指が喋る感覚』は、
 同時打鍵方式に依拠する部分が大きいのではないか?

・親指シフト配列に『指が喋る感覚』の秘密は無いのではないか?

・親指シフト配列は同時打鍵方式のポテンシャルを引き出せていないのではないか?

などの仮説を立てて、投稿文を書いていたのですが、
どうやら素人の頓珍漢な主張で終わりそうですね。
打鍵方式にこれだけの種類があることも知らなかったくらいですし。

いずれ投稿すると言っていましたが、すみませんが中止ということで。
達人の会話に素人が首を突っ込むのは無理っぽいです。
Posted by ヨシアキ at 2021年07月17日 14:54
>たまにDvorakJの相互シフト的に打ちたくなる現象があり、
>なんだかDvorakJに戻りつつある。

すみません、「DvorakJの相互シフト的」とはどういう打鍵に対する、
どのような動作なのか、お教えいただけませんでしょうか。
DvorakJのマニュアル等には掲載されていなかったので。

>この問題は結構根深いかも知れない。

これは、やまぶきをお使いの方が紅皿に乗り換えたときにも発生しました。
打鍵感覚については、なかなか文書化できないものがあるのかもしれません。

なお、紅皿の仕様は、NICOLA規格書に記載の仕様に、やまぶきの仕様の一部を入れて拡張したものです。
やまぶきの仕様は明文化されておらず、ソースコードは開示されていないので、
作者のYamaさんのブログを読み込んで、仕様を推定しています。
Posted by Ken'ichiro Ayaki at 2021年07月17日 16:11
>ヨシアキさん

「指が喋る」感覚については、
いまだ僕もよく分かってないのです。
薙刀式を使ってると、
指が喋ると言うよりも、脳から勝手に字が出て行く感覚になり、
指も喋るも存在しなくなるので。
(言葉通りのものなのか、単なるキャッチフレーズレベルなのかも不明)

親指同時打鍵が「指が喋る」感覚の源という仮説はわりと納得しやすそうです。喋るリズムと関係しそうなので。
そもそも素人考えで素人が使うものが配列だと思うので、
自分の思うことを書いていただくとよいと思います。
「そういう感覚の人がいる」という主観の証拠になると思います。
Posted by おおおかとしひこ at 2021年07月17日 16:18
>Ken'ichiro Ayakiさん

「相互シフト」は僕の造語です。
「Aを押しながらBでも、Bを押しながらAでも、
AB同時とみなす」タイプのものです。

相互に通常シフトのロジックを持つもので、
実装はDvorakJの、+記号の同時打鍵にて。
(と逆順の実装も一応。逆順を定義をしなくてもいい説もあるが、
なぜか逆順で動かないキーもある模様。
おそらくDvorakJのバグで、
どの組み合わせに不具合があるか、僕は突き詰めてないです)

3キー同時打鍵も、どの順でシフトを押してもよく、
同時に押されている瞬間さえあればOKなので、
ゆっくり押してもよいし、タイム的なものを気にしなくてもいいのがメリットですね。考えながらのときに重宝します。

ただ「ロールオーバーすると同時打鍵と認識されるため、
シフトに化ないためには一旦離す必要がある」という欠点があります。
紅皿のロジックだとパーセンテージ以上に離して打てばよいから、
ロールオーバーできるメリットがありますね。

薙刀式の設計上は、
「同時打鍵」と日本語で定義してるだけで、
そのロジックについてはとくに決めていません。
色んなバージョンがありえてよいと思っています。
(DvorakJ版ではSandSと文字領域相互シフトで定義しています)

紅皿でそのロジックが搭載されたら面白いなあ、
と希望的観測で書いてみました。笑
Posted by おおおかとしひこ at 2021年07月17日 16:30
相互シフトが上記の意味ならば、紅皿および同梱の薙刀式の配列ファイルには
その機能が入っております。

例えば、"j"キーを押しながら "s"キーを打鍵しても 
"s"キーを押しながら"j"キーを押しても 「げ」が入力されます。

>たまにDvorakJの相互シフト的に打ちたくなる現象があり、

このように感じられる場合のログファイルを取ることは可能でしょうか。
そして、ログファイル取得時の本来の出力したかった文字を教えていただければ、
原因がわかるかと思います。


推定ですが、DvorakJと紅皿の同時打鍵のロジックの違いによるものとおもいます。

DvorakJのレファレンスマニュアルには以下の記載があります。
https://blechmusik.xii.jp/dvorakj/wiliki.cgi?DvorakJ%3A%E3%83%AC%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9%E3%83%9E%E3%83%8B%E3%83%A5%E3%82%A2%E3%83%AB%3A%E3%82%AD%E3%83%BC%E9%85%8D%E5%88%97%3A%E7%9B%B4%E6%8E%A5%E5%85%A5%E5%8A%9B%E7%94%A8%E9%85%8D%E5%88%97

>同時に打鍵するとはどういうことでしょう。
>DvorakJ において、これはほぼ同時にキーを押し下げるということです。
>より正確には、一定時間内にキー複数個を打鍵したことを意味します。
>同時にキーを実際に押し下げているかどうか、キーを押し上げる最中か、キーを押し上げ終えたかどうか、といったことはソフトウェアの側で問題としません。

つまり、DvorakJ はキーオンのタイミングが近接しているときに、同時打鍵と
判定しています。
上記記載によるとキーオンは判定していますが、
キーオフは判定に使用していないようです。

これに対して紅皿では、実際にキーを同時に押し下げているか否かで判定しています。
つまり、キーオンとキーオフの両方を判定に用いています。

>紅皿でそのロジックが搭載されたら面白いなあ、
>と希望的観測で書いてみました。笑

例えば、「DvorakJモード」などでしょうか。
Posted by Ken'ichiro Ayaki at 2021年07月17日 21:07
> そもそも素人考えで素人が使うものが配列だと思うので、
> 自分の思うことを書いていただくとよいと思います。
> 「そういう感覚の人がいる」という主観の証拠になると思います。

なるほど。大岡さんの思考の邪魔にならず、
「情報を増やす」という形で貢献できるなら投稿してみますか。
数日ほどお待ち下さい。
Posted by ヨシアキ at 2021年07月17日 21:48
>Ken'ichiro Ayakiさん

その引用部分は-記号の同時押し、
タイマーによるものですね。
最初はこれいいなと思ってたけど、
「体調や思考の速度」によって、
適切なミリ秒が一定していないことに気付きました。
一日のはじめと終わりでも適切なミリ秒が違うんですよね。

ためしにもうひとつのロジック、+記号の同時押し
(DvorakJで「真の同時押し」とよばれるもの)
でやってみると、
「タイマーを気にする必要がなく、
同時に押された瞬間のありなしだけで打ち分けられる」
のが、「自分のミスした理由」が自分でわかるのでよかったです。
極論すると10秒Jを押してからSを追加で押してもいいわけで。
(実際にはキーリピートが発生しますが)

紅皿版でもひょっとして相互シフトが機能してるのかしら。
たまに自分の同時が遅れてしまうことがあり、
相互シフトではないから、と思い込んでいたかもしれません。
(自分の設定のせいなのか、打鍵の失敗なのかの切り分けができない)
たまに、なのでログが取れたら送ります。
Posted by おおおかとしひこ at 2021年07月18日 03:10
+記号の同時押しとは、
例えば、以下のようなものでしょうか。

紅皿にて最初、js同時打鍵して「げ」を出力したのち、
sキーをオフして2秒後にsキーをオンすることで
「げ」を出力したときのログです。

___256_j_down
___248_s_down
____72_s_up
_____0________MM__m___{g_down}
_____1________MM__m___{g_up}
_____0________MM__m___{e_down}
__1999_s_down
_____1________M___M___{g_down}
_____2________M___M___{g_up}
_____0________M___M___{e_down}
____61_s_up
_____0____________m___{e_up}
___740_j_up
_____0____________m___{e_up}

Posted by Ken'ichiro Ayaki at 2021年07月18日 22:42
>Ken'ichiro Ayakiさん

そのとおりです。
押している間だけシフトキーの役目を果たしているものです。

薙刀式ではとくに連続シフトは気にしていないことが多いですが。

誤打したときに理由が推測しやすいので、
どんどん指の感覚を詰めていける利点があるなあと今気づきました。
Posted by おおおかとしひこ at 2021年07月18日 23:08
大岡さんの仰っている「+記号の同時押し」の仕様は以下に定義されていました。
https://blechmusik.xii.jp/dvorakj/wiliki.cgi?DvorakJ%3A%E3%83%AC%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9%E3%83%9E%E3%83%8B%E3%83%A5%E3%82%A2%E3%83%AB%3A%E8%A9%B3%E8%AA%AC%3A%E5%90%8C%E6%99%82%E6%89%93%E9%8D%B5%E3%81%AE%E5%88%A4%E5%AE%9A%E5%87%A6%E7%90%86
>キー配列の設定ファイル中、-1E のような記述を +1E と書き換えると、
>そのキーの押し上げを監視するようにします。

また、大岡さんにご提供いただいたログを解析したところ、
「で」を入力するため、ej を順次同時打鍵しているとき、
eからjまでの時間間隔が空くと、タイムアウトしています。

_TIME_INPUT_MD_TG_SEND
__254_e_down
___50_______M__TO_{t_down}
____4_______M__TO_{t_up}
____4_______M__TO_{e_down}
___35_j_down
___68_______M__TO_{d_down}
____1_______M__TO_{d_up}
____2_______M__TO_{e_down}
___95_j_up
____1__________m__{e_up}
___35_e_up

おそらくDvorakJは、+記号の同時押しが定義されると、タイムアウトせず、
キーオフ(キーアップ)で文字を出力するのだとおもいます。
つまり、紅皿に、「+記号の同時押し」相当の機能を入れることで、
この問題に対処可能とおもいます。
少々お待ちください。
Posted by Ken'ichiro Ayaki at 2021年07月19日 00:06
>Ken'ichiro Ayakiさん

タイムアウトだろうな、と予測して、
わざと遅く打ってみました。
EJなので「てあ」と、
ロールオーバーした単打が出ることが予測されましたが、
「てで」と、E単打→EJ同時なのが不可解だな、
と思ったので。
Posted by おおおかとしひこ at 2021年07月19日 03:38
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

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