DvorakJ、「ごく最近」シフトの非打ち切りに対応したはずなのに、「すでに」連続シフト操作自体は結構安定してる。

(過去:DvorakJ用の「かえで****あすか」定義。 - 雑記/えもじならべあそび)


 同時打鍵がうまくいかない……って悩んでたのだけれど、単純に「同時打鍵判定時間がゼロだった」だけらしい。
 私の中では「下駄配列用のソフト」っていう印象が強かったのだけれど、名前通りに「Dvorak用のソフト」ってことを考えると、それは「ゼロがデフォルトなのは当然」だなよな……と。




 いまだに「かえでレフティあすか」だと、まともな速度になってない……ので、「かえでライティあすか」に一時戻して打ってみた。
 ロールオーバー癖の抜けてない人が、交差判定系のソフト(em1keypcとか)で飛鳥を使った経験のあれば、「あー、交差判定なら、そうなりそうだよね」ってゆー感じで解る判定ミスだと思う。
 #ってゆーか、そういう人が俺以外にいるのか?という疑問はあるけど……。
 

わたしが「DvorakJ」で打った場合。

 明らかな打鍵ミスをした行は、省いています。

どうしてもいいかんじにだけんできうつったりしかす。
ど してもいいかんじにだけんできなかったりしかす。
どうしてもいいかんじにだ んできなかったりしかす。
どうしてもいいかんじにだけんできなかったりしま 。
ど してもいいかんじにだけんできなかったりしかす。
どうしてもいいかんじにだけんできなかったりしま 。
ど してもいいかんじにだけんできなかったりしま  
 ↑          ↑   ↑↑    ↑↑↑「。」抜け……「無変換+K」の後の「無変換+.」が欠けてる。
 ↑          ↑   ↑↑    ↑↑「す」抜け……「無変換+L」の後の「無変換+K」が欠けてる。
 ↑          ↑   ↑↑    ↑「ま」が「か」に化ける(シフトが欠けてる)
 ↑          ↑   ↑↑「か」が「つ」に化ける(前の文字のシフトがこっちにくっつく)
 ↑          ↑   ↑「な」が「う」に化ける(シフトが1文字後に掛かる)
 ↑          ↑「け」抜け……「無変換+A」の後の「;」が欠けてる。
 ↑「う」抜け……「変換+,」の後の「D」が欠けてる。

 文字の抜けとか、シフトの欠けに関しては、うちのPCが「DvorakJを動かすには非力だから」ってのが原因*1だと考えてます。
 いくらSSD化&2GBメモリー搭載、とはいえ、さすがにもう「7年選手」だからねぇ……。

わたしが「やまぶき」で打った場合。

 明らかな打鍵ミスをした行は、省いています。

どうしてもいいかんじにだけんできなかったりします。
どうしてもいいかんじにだけんできなかったりします。
どうしてもいいかんじにだけんできなかったりします。
どうしてもいいかんじにだけんできなかったりします。
どうしてもいいかんじにだけんできなかったりします。
どうしてもいいかんじにだけんできなかったりします。
どうしてもいいかんじにだけんできなかったりします。

 やまぶきの場合は「割合」で制御するから、速く打たれがちなところもシフトミスになったりしないです。
 都度シフト方式だと「シフトは1文字修飾で打ち切り、次の文字をシフトしたいならもう一回シフトを押せ」ってゆー話になるんですけど、連続シフト方式では「ユーザーが【もう一回のシフト】を端折るので、エミュレータ側で何とかするしかない」わけで……やまぶきはそのあたりに対応してるので、シフトが連続してもシフト絡みの判定ミスが起きにくいんですね。
 このあたりの挙動は、「繭姫/姫踊子草」も(原理は違うけれども、ユーザーから見た挙動は)とてもよく似ていて、結果としてはシフト判定ミスを防ぐことができています。

「DvorakJとしては」どうするべきか、となると……

 そのままでもよいのではないか、と、わたしはそう考えてます。
 今の状態でも、「DvorakJのユーザーさんから寄せられた要望」は達成できているはずなので、ここから「シフト残り対策」を載せる必要に迫られることは、たぶんないと思います。
 原理的には、(かつてyamaさんが、窓使いの憂鬱で実装テストしていたようにして)載せることができる……のですが、交差判定系の同時打鍵ロジックを「シフト残り対策付きの」連続シフトロジックへともっていくのは、かなりの工数を要するはずです。
 そして、交差判定を元にして「シフト残り対策」を付けようとすると、さらにスクリプトの動作が重くなってしまう……ので、そういう方向の調節を、あえて行うのも、ちょっと違うような気がするかも、と。
 ……DvorakJにおける連続シフトの適用先が、「主に機能キーとしての利用」であることを考えると、「シフト残り対策の実装」よりは「スクリプトを重くしないこと」のほうがメリットがあるはずなので、結果としては「そのままがよい」のでは、と。

*1:DvorakJの名誉のために書くと、うちの場合Pentium-Mの非力なマシンでたくさんのスレッドが走ってます……「これが日常」っていう状況が、要因としては大きいと思う。ユーザースイッチも使うし。