WeatherTyping用月配列プラグインを作りました (v3.3, v3.4対応)

正確には作ったのは去年なんですが、バージョン3.3.0, 3.4.0で動作する形式に修正しました。
中指シフト系で最もメジャーと思われる月配列 2-263式用のkeymapも付属させておきます。

月配列プラグインと銘打っているものの、WTEditor.exe での配列作成に対応しているため 花配列中指NICOLA配列TWW配列 といった前置シフト系の配列であれば流用可能です。

バージョン3.2.1から公式にサポートされるようになった入力方式プラグインとして作られているため、 結果画面やロビーでもちゃんと配列名が表示されます。

f:id:permil:20181223221402p:plain f:id:permil:20181223221235p:plain

ただし、実装方針の都合上以下の制限があります。

  • シフトキーが2つまでしか使えない
    • そのため、薬指にもシフトを置くUx版や、多段シフトの必要な3-285改などには対応不可*1
  • D/K 以外にシフトを置く配列では、初回の配列選択時にシフトキーを設定する必要がある

使い方 (月2-263配列)

Windows デスクトップ版(WeatherTyping340.zip)をダウンロードします。解凍後WTを一度起動すると、本体と同じ階層に InputMethod ディレクトリができます。 f:id:permil:20181223181805p:plain:w320

次にプラグインページから WeatherTypingPluginTsuki.dll, Tsuki_2_263_v1.keymap の 2 つのファイルをダウンロードし、 InputMethod ディレクトリに両方とも配置してください。

問題なければこれだけで WT で 月配列 2-263 が選択できるようになっているはずです。

f:id:permil:20181223182335p:plain:w320

その他の配列での使い方

月2-263以外の配列で利用したい場合は WTEditor.exe で配列を作成してください。

f:id:permil:20181223190110p:plain

注意点は

  • 名前・著作者・バージョンを入力する
  • KeyFilter は permil:月配列 v1、InputFilter は Denasu System:かな v1 を選択する
  • 必要に応じてシフトキー1, シフトキー2 の双方に文字を割り当てる
  • 配列保存時にエラーが出る場合は、割り当て忘れている文字がないか確認する (特に、。・「」など)

あたりです。

保存に成功すれば、作成した配列が WT で選択可能になっているはずです。
ギャルメロンパン配列のような D/K 以外にシフトキーを置く配列の場合は、忘れずにシフトキーを変更しましょう。

f:id:permil:20181223191144p:plain

*1:WTEditorでの配列編集を諦めればコード側で対応は可能だと思います。コードは公開しておくので参考になれば。

タイパー多芸部に刺さりそうな競技の紹介

もとい、私がやりたいので誰か上手くなって教えてほしいものを挙げる会。

今まで流行ったのはこの辺りです。

これを見るとなんとなく以下の傾向が伺えます。

  • 指先を使うもの
  • 一人で部屋で練習できるもの
  • 上達の実感が小まめに得られるもの
  • 大がかりな道具を必要としないもの

要は中学校で一瞬流行って先生に没収される系のやつですね。

ということで、タイパー多芸部の各位はたぶん以下の競技も好きなので、誰か覚えて教えてください。
あと逆に私に刺さりそうなものも教えてください。

ペン回し

なんかそれなりにやってる人いそうなのに周りで一回も見なかったんですよね・・・
ずっとやりたいんだけど・・・

www.youtube.com

投げゴマ

けん玉と似た立ち位置なのにいまいち話題に上がらないコマ。巻きなおすのがめんどいからかな。
買ってみたものの部屋でやると床が凹むことに気付いたので積んでます。こまった。

www.youtube.com

パチカ (アサラト)

一人でやるというよりはセッションとかできると楽しそう。
なんだけどまじでやり方分からなくて引き出しの肥やしになってるので誰か教えて。

www.youtube.com

fingerboard (指スケ)

ちょっと興味あるんだけどググラビリティが低すぎてどこ見ればいいのか、
というかまずどれ買ったらいいのかすら分からない。

www.youtube.com

ヨーヨー

ド定番なので今さら?と感じだけど一応。

みんな花形のダブルループとかしか知らないと思うんですけど5部門あるんですよ実は。
私の一押しは3A(ツーハンドストリングトリックスタイル)です。

www.youtube.com

タイプウェルを10年ぶりに更新した話、または完全固定運指からの脱却の道程 (後編)

タイプウェルを10年ぶりに更新した話、または完全固定運指からの脱却の道程 (前編) - permilの日記

続きです。主に今年やった英文への最適化導入の話です。

2018 年 9 月中旬頃

去年の TWR 常用 ZH で完全に燃え尽きておりサミット中も特にモチベは上昇しなかったのですが、 なぜかサミット翌日から謎のモチベが生まれたため今年もタイピングをすることになりました。

RTC に向けてさらに和文の向上を目指すという選択肢もあったのですが、

  • 正直 TWR 常用があと 1 秒伸びたとしてもまだ今のトップ層とはまともに戦えない
  • 去年和文で好感触を得た最適化を、主戦場の英文でも試してみたかった

という理由で、今年は英文の最適化をメインで練習してみることにしました。

方針

去年の練習の中でいくつか実感したことがあります。それは

  • ワードを絞った練習は思いのほか効果が高い (たじさくそうまごウェル・TypeLighter)
  • 最適化の定着率は、該当文字列の出現頻度と強い相関がある
    • 頻度の高い最適化 (例: umu, oko) はあまり特別な練習をしなくても定着・派生が進む
    • 頻度の低い最適化は普通に練習をしているだけでは定着しない

ということです。

そのため今年の練習では、去年のように乱雑に最適化ワードを集めるのではなく

  • とにかく特定の連続打鍵を含んだワードをかき集め、TypeLighter でひたすら打ちこむ
  • その際「最適化の効果が実感しやすいもの」を意図的に集める
    • 最適化すると空間把握が難しくなるようなワードは抜いておき、慣れてきてから追加する
    • ただし、最終的にそのようなワードをどう処理するかはあらかじめ考えておく

といった方針で最適化の個別練習を始めました。

f:id:permil:20181111164721p:plain:w300

やったこと

去年の最適化導入後の私の運指がこんな感じです。 *1

f:id:permil:20181113023240p:plain:w350
私の運指 (2017 年終了時)

これを見ると、明らかに左手人差し指の担当範囲が広いことが気付きます。 幸い子音ばかりなので和文では頻度が低めかつ連続するケースもなくあまり問題にならないのですが、 英文では和文に比べると頻度が高く、さらに tr, rt, gr, fr, br など r 絡みの子音同士の連続が多いため、 標準運指では同指連続打鍵が多発することになります。
加えて私の場合 c も左手人差し指の担当のためさらに忙しく、 これらのキーを他の指で肩代わりする最適化は速度面でも疲労面でも効果が高そうにみえます。

そのため、まずは一番移動距離の長い br, ct について最適化を検討し、 次いで頻出である r 絡みと、その他いくつかの最適化を考えていくことにしました。

br74

b ⇔ r と c ⇔ t では後者の方がロスしている自覚があったのですが、 ct はどう最適化すべきか決めかねていたので先に br から取り掛かることにしました。

br の最適化としては br43 と br74 が考えられますが、

  • br43 としてしまうと bre432 の習得が必須である
    • 特に brew, break などでは小指まで導入する必要があり難易度が高そう
  • 去年和文では定着させられなかった b7 の感覚を習得したい

という理由から br74 を選択しました。

TypeLighter にはプリセットとして TypeWell のワード一覧が入っています。 そのため、基本英単語にあたる 1-基本英単語 (1500).tpl 内を br で検索し、それだけを詰め込んだファイルを作って最適化の練習をすることにしました。

f:id:permil:20181113050045p:plain:w300

当初 b7 以外は基本運指のままでよいと思っていたのですが、練習を始めてみるといきなり問題が発覚しました。 右手人差し指が b にある状態ではいくつかのキーの位置把握が思った以上に難しく、 その中でも致命的だったのは bro で、先述の通り私の基本運指は o8 なのですが、b7 からだと o8 が遠すぎて全く安定しなかったのです。

慣れるまでひたすら打ち込むという選択肢もありましたが、 私は「右手人差し指が b にある状態での運指を新たに覚え、b7 のときだけそちらにシフトする感覚で打つ」ことにしました。
具体的には以下のような運指です。

f:id:permil:20181114092026p:plain:w350
右手人差し指が b にあるときの運指

私の基本運指から比較すると、右手が一列弱左にずれているイメージです。*2
当初は新しい配列を覚えて切り替えるくらいの気持ちで臨んだのですが、実際はそこまで大げさではなく 1 週間程度で慣れ始めたと思います。*3

gr43, tr43, fr43

去年 doragu さんから

という助言をいただいていたので、r3 を練習することにしました。 が、語頭で頻出の gr に対し gra, gro には gr43 を適用するが gre には適用しないという打ち分けをするのはかなりの先読み力が必要と感じたため、 語頭 gr (, tr, fr) を見た時点で 43 を適用し、直後に e が来た場合は e2 で切り抜ける、という想定で練習することにしました。*4

練習にあたっては先述のように、「最適化の効果が実感しやすいもの」として gr の直後に e が来ないもの (group, angry, ...) のみで練習を行い、 後から gre が入る単語 (great, agree, ...) を追加するといった順序で練習を行いました。

hu78

和文では定着させられなかった hu78 ですが、 gr43 の練習中についでに hungry787437 を練習してところ徐々に thus, husband などでも適用できるようになってきました。

おそらくですが

  • 「ふ」は fu で表示しているため、fu → hu → 78 の二段階の思考が必要で定着しづらかった
    • 英文では hu で表示され、回避もできないため強制的に練習できた
  • br74 の練習の中で u8 の感覚が養われてきていた

などが影響していたのではないかと思われます。

pl98

私の基本運指は p9 であり pl は薬指の連打だったため、pl98 の導入はかなり効果がありました。

当初は単語中の pl をひとかたまりとして認識できず語末の ple でしか適用できませんでしたが、 徐々に pl を一つの子音であるかのように知覚できるようになり、player, complete といった語頭や語中の pl にも 98 を適用できるようになりました。

ny74, ny67, my74

y7, ny67 は和文で導入済でしたが、 直後に母音がくるケース(「ゆ」または「にゃにゅにょ」) でしか適用できていなかったため、 英文についても意識的に練習を行いました。

ct47

ct の最適化はかなり長いこと悩んでいました。 選択肢としては ct34, ct43, ct54, ct47 などがありえると思いますが、

  • ct34 は標準運指だが、私の基本運指 c3 とは相性が悪く、指の形も苦しく感じる
  • ct43 も流れの中ではありかもしれないが、基本的には指の形が苦しい
  • ct54 はスペースを 5 で押しているため親指がかなり忙しくなる
    • その付近だけスペースを 6 でフォローすることも考えたが、しっくり来ず断念
  • ct47 は t7 がかなり遠く、ction, ctor などと続く場合の空間把握が難しい

とどれも何かしら問題があります。 悩んだ末現状は語末の ct に限り ct47 で打つという部分的な導入を試みており、 将来的に ctor4704, ction47907 なども導入していこうと考えています。*5

おまけ: 和文

和文は今年は余り力を入れる予定はなかったのですが、 去年と比べると c/k の打ち分けが自然にできるようになってきていたため、 RTC 予選の e-typing 向けに申し訳程度の対策をしました。具体的には

  • 文末の「ん」を xn で打つ
  • 右手に偏った文字列中の j/z の打ち分け
  • 他のソフトに悪影響が出ない範囲での水増し
    • shi, tsu, chi など、ヘボン式で見慣れているものを、反応できた範囲でねじ込む
    • 文頭は文章の識別に必死なので諦める

ということをしました。

xn については以前 TypeWell で導入しようとして n の個数が分からなくなって断念したのですが、 文末は認識しやすく n もかならず 1 つのため、 文末の「ん」に nn が必要な e-typing や WeatherTyping に限って導入することにしました。

おまけ2: n4

munmun674674 と autumn174764 に限り n4 を導入しました。

~現在: 最近考えていること

最適化を導入し始めてから 1 年経ち、色々考え方も変わってきたので現状の考えをまとめておきます。 あくまで現状の考えであり、今後も変化していく可能性は高いですが、何かの参考になれば幸いです。

考え方の変化

最適化の導入当初は、最適化とは「普段はこう打つが特定の文字列が連続したときだけこう打つ」という例外パターンを増やしていくことだと思っていました。 つまり、「y は普段は y4 で打つ、但し直後に u が続いた時のみ yu47 で打つ、といった例外パターンを追加していく」ことが最適化だと思っていました。

が、実際には「nu67 と yu47 しか練習していないのに nyu647 が」「try437 しか練習していなかったのに tory4837 が」咄嗟に適用されるなど、 練習していないはずの文字列に最適化が勝手に適用されるケースが散見されました。 このことからすると、私にとっての最適化は

  1. 各指のポジションがずれた状態での固定運指を複数覚え、
  2. 打鍵中忙しい指をサポートする形で複数の固定運指を適宜切り替える

という感覚に近いのではないかと思い始めています。

また最適化適用のタイミングについても、当初は「最適化箇所には必ずその運指を適用しなければならない」と思い込んでいました。 おそらくこれはそれまでの固定運指の考え方を引きずっていたのだと思います(あくまで「一つの固定運指における例外適用」という感覚を持っていた)。

が、最近はそこまで厳格に考えておらず、

  • 同じ文字列であっても常に同じ運指で打つ必要はない (前後の文字列で最適な運指が異なる)
    • yu は直前の文字によって 47, 78 の両方があり得る
      • 最悪 77 でも良い fyu-4779 とか
    • oko878 はかなり速いが、「もこもこ」などでは oco とした方が速い
      • 逆に「ぼこぼこ」などでは oko の方が速い *6
  • また最適化可能な文字列についても「反応できたらラッキー」くらいに思っていて十分効果があり、ストレスも少ない
    • furahura47417841 とか中途半端になってもやらないより大分得
    • また cacuco などもローマ字読みのため、先読みが間に合わないこともある その時は諦める

くらいのユルい気持ちで、「あくまで基本運指をベースに、最適化可能箇所はボーナス」と考えるようになってきました。*7
感覚としては「自分の最適化無しでの理論値が常用26秒、そこから最適化1回ねじ込むごとに0.1秒、10ヶ所入れば1秒縮んで25秒」くらいのつもりで打っています。*8

最適化による影響

当初最適化による恩恵は、当初「該当文字の入力速度の向上」に留まると思っていました。 がそれはあくまで見た目上の効果であり、実際はそれだけでなく「同指連続打鍵の排除によって打鍵・先読みリズムが一定になることで得られる安定性への寄与が大きい」ということが分かりました。*9

また、最近日本語読みが以前よりできるようになったのですが、 これはどうやら単語認識速度が上がったことによる結果であり、 もしかしたら最適化の導入が関節的に影響したのではないかと思っています。
すなわち、これまでは打鍵速度に対して認識速度が十分であったためそれ以上鍛えられる機会がなかったのですが、 認識 → 打鍵 の間に「最適化により運指構築」というステップが加わったためこれまでの認識速度では足りず、 結果的に認識力が鍛えられたのではないかと思っています。

最適化によるデメリットですが、疲れているときには最適化の成功率が下がるため、脳への負担は明らかに増えていると思います。 しかし、今のところは「最適化を意図的に使わないで打つ」ということは問題なくできているため、 懸念していた「最適化導入前より遅くなる」ということは起きていないようです。

練習方法について

今年採った方法は、「特定の連続打鍵を含む練習ファイルを作ってひたすら打ち込む」でした。 が、実際にやってみると特定の連続打鍵であっても別の最適化を導入した方が打ちやすいケースもあり、*10 これらは「同じ最適化を使う文字列同士でまとめたファイルを作って」練習するのが効果的なのではないかと思い始めています。

また今回の方法は、「特定の指が特定の位置にある状態での他のキーの位置把握を定着させる」のには有効でしたが、 「基本運指からその状態にシフトする/戻す」という練習ができておらず、そのためたとえば 「既に右手人差し指が t の上にあれば t7 で最適化された打鍵ができるが、通常のタイピング中に t7 の場面が出てきても反応が遅れたり移動に失敗したりする」 ということが起きてしまっていたように思います。 ある程度頻度の高い最適化については日常の中で徐々に慣れていくことも可能だと思いますが、 頻度の少ない最適化については「該当の最適化ワードを 2~3 割だけ入れた練習ファイル」を使った練習を併用するのが良いのではないかと思い始めています。

n6, m6

去年あれほど有用と感じた右手親指 (n6, m6) の導入ですが、最近は去年ほど多用していません。 それは以下のような理由です。

  • かなり余裕を持った先読みが必要
    • 親指を n, m に持って行くのも戻すのも時間がかかる
  • 単発では効果的だが前後の文字列次第ではずっと親指で耐えることになり遅い
    • rizumuninorenuyatu などで rizum48176... と打ち始めてしまうと、以降の n, m のラッシュで親指を抜くタイミングが難しい
  • 練習している他の最適化とあまり相性がよくない
    • k7, b7, t7 など右手人差し指の可動範囲が増えてきたため、親指の空間把握が難しい
    • bu78, hu78 の習熟に伴って u8 の感覚が分かってきたため、nu78, mu78 の可能性が出てきた
  • 日常使いにあまり適さない
    • 腕ごと前に出すような感覚のため疲労が大きい
    • キーボードを選ぶ

n6, m6 自体は今も有用だとは感じていますが、 いつも適用するというよりは「他の最適化ができなかったときの緊急避難先」くらいに思っておくと良いのではないかと最近は思っています。

最後に

一応現状の運指を載せておきます。

f:id:permil:20181114013801p:plain:w350
2018 年現在の私の運指 (練習中のものも含む)

また今後導入する可能性のある最適化の候補としては以下のようなものを考えています。

  • 英文和文共通
    • nu78, mu78
    • ju78
  • 主に和文向け
    • nm78
    • za21
    • nki798, kin897
  • 主に英文向け
    • de32
    • sw32
    • cr43
    • hy78
    • I'm876

ただ、これはあくまで私の基本運指に対して優先度の高そうな最適化であることにご留意ください。 私は c4 や o8 ですが、これがもし標準運指の c3 や o9 だった場合、 英文の最適化としては上に挙げたものよりも ce43 や lo98 などを優先度高く検討すべきではないかと思います。

そのため、最適化の導入を検討する場合、一般的に知られる最適化をただ導入するのではなく、 自分の基本運指に対して優先度が高く相性の良いものを選択し、 また必要に応じて自分の基本運指に適切な最適化を考えていくことが重要なのではないかと思います。*11

*1:b7, h7 はそれぞれ特定の文字列で稀に使える程度だったため除いてあります。

*2:最終的にこの形になるまでは紆余曲折がありましたが、ざっくり書くと ①o8 は遠いので o9 ②和文と揃えたいので u8 ③brim7498 を考慮して i9 ④brilliant で指が足りなくなったので仕方なく l0、という流れでこのようになりました。

*3:音ゲーで例えると、IIDX で皿が多いときに別運指に切り替える感覚に近かったのではないかと思います。

*4:この判断が正しかったどうかはまだよく分かりません。というのは e の直後にさらに a や w が来るケースも多く(great, grew, ...)、小指の精密動作を要求されるからです。また e が連続した場合 (green, free, ...) の薬指の連打速度もさほど高くありません。そういった意味では gr74, tr74 あたりと併用できるのが理想かもしれません。

*5:後から気づいたことですが、和文では u, i, o, k あたりの頻度が高く右手が忙しい (だから c や z の導入が有効) のと比較すると、英文では k, u あたりの頻度はあまり高くなく、e, r, t, s, d, c あたりの頻度が高いためむしろ左手の方が忙しい印象があり、英文で右手の担当範囲を増やすのは妥当な判断であったように思います。

*6:この辺り、特に c/k の打ち分けについては練習の中で徐々に「この辺は右手忙しいから c に逃げよう」といった感覚が身についていった気がします。

*7:賛否あると思いますが、私の最適化精度は現状まだ理論値を目指せるような段階ではないため、最初から100%を目指すのではなく少しずつ精度を高めていこうと考えています。

*8:これは、ベースに固定運指が染みついていて、最適化に失敗したとしても基本運指で打てば良いという安心感があればこその考え方かもしれません。

*9:たとえば、最適化導入前は br を打つ際 b の後は先読みと他の指を一瞬緩めるということを無意識に行っていましたが、br74 導入によってこれが必要なくなり、たじさくそうまごウェルのように一定の速度で打鍵・先読みができるようになりました。

*10:同じ tr でも try では tr43 が有効だが attract では t7 が有効、同じ ny でも company では ny74 が有効だが anything では ny67 が有効といったように

*11:もちろん、一般的に有効とされる最適化を知ることは「どのような最適化があり得るのかを知る」という意味で重要です。たとえば ki98 などは私の発想にはない最適化でした。が、ki98 と ki89 のどちらが有効か (または両方か) というのは、個々人の基本運指や打鍵姿勢、指の長さなどに依るところも大きく、その辺りも最適化が「人による」と言われる所以なのではないかと思います。

タイプウェルを10年ぶりに更新した話、または完全固定運指からの脱却の道程 (前編)

タイプウェルを10年ぶりに更新した話、または完全固定運指からの脱却の道程 (導入編) - permilの日記

前の記事の続きです。

前置き: 前提知識

以下の文章中で、左手小指から右手小指までの指10本に 1~9, 0 の番号を割り当てる表記を使用します。

   小薬中人親 親人中薬小
左手 12345 67890 右手

ということです。

RTC2017 予選前にやったこと

正直この段階ではまだ予選通過できるとは思っておらず、賑やかしとして上位の争いを演出できたらいいなくらいのことを考えていました。 そのためまだ本格的に最適化には振っておらず、一般的な、出現頻度の高い最適化をいくつか試すに留めていました。

ca, cu, co の導入

予選課題の e-typing は初速の速い私に有利な種目ではあるものの、得意な種目ではありません。 主には私がローマ字、しかも小文字しかまともに認識ができないせいです。 そのため私が e-typing で高スコアを狙う場合、「全てのワードを暗記して、最初数文字を見て続きを全部思い出せる状態にする」というのが前提条件になります。

が、裏を返せばこれは「文字を見ずに入力をしている」ということでもあり、 文字列と一緒に最適化箇所も覚えてしまうことで前の記事の「見えている文字と違う文字を入力することへの抵抗」を気にせず cacuco などの文字単位での最適化を適用できる、と前向きにとらえることにしました。

結果的には、この期間に e-typing で「画面の文字ではなく脳内の音節から打鍵を組み立てる」という練習を続けたことで、

  • ローマ字の kakuko を見ながら cacuco を打つこともできるようになり、
  • また日本語読みの実力も向上 (TWR 常用 32秒 → 29秒)

するという副次的な効果も得られたような気がしています。 また懸念していた英文の文字認識時の混乱も、今のところは起きていません。*1

yu47, yu78

また y についてもこのタイミングで最適化を導入し始めました。

ちゃんと数えてないですが、慣用句などの実用文は「○ゅ」という文字列が頻出の印象があります。 そのため、普段 77 で連打している yu をばらすことは費用対効果が高いと判断しました。

yu の最適化については 47, 78 の両方が考えられますが、 「最適化部分を打ち終わった時点で指が勝手に元の位置に戻る方がその後をスムーズに打てる」と判断したため

  • 基本的には 47 で打つ
    • kyu, nyu, myu, pyu, oyu
    • hyu も 747 でいいはずだが、指が狭いせいか無意識に避けていた(る)ような気がする
    • syu, dyu なども 47 で良いはずだが、指を準備する期間が短いので無理しない
  • ryu, tyu, byu といった直前の文字も 4 で打つケースは、語末などの無理のない範囲で 78 を検討する
    • 語末、特に e-typing では、打ち終わったあとに指を戻す時間が十分にあるため積極的に導入する
    • また語末では syuu, tyuu といった u の連続で終わるものも yu の延長とみなし yuu788 で耐えきる

というところに落ち着きました。 これは意識してそうしたというよりは、導入しやすいところから yu47 を導入していった結果こうなったというのが正しい気がします。 おそらくこの先 hyu, syu, dyu などに yu47 を導入しようとした場合は、意識的にこれらを練習する必要があると思われます。

RTC2017 本選前にやったこと

予選課題の練習で 650 を越え始め、「あれこれもしかして予選通過あるんじゃね?」と思ったあたりから本格的に最適化を検討し始めました。 その時点ではまだ課題ワードが発表されておらず、また最適化の練習方法もよく分からなかったため、 典型的な最適化ワードを集めて TypeLighter の長文モードでひたすら打ち、 慣れてきたら少しワードを増やしてまた打ちこむということをやっていました。 実際のファイルがこれです。

f:id:permil:20181110211246p:plain:w300

この練習方法はたじさくそうまごウェルの影響を強く受けています。 元々、少ない種類のワードで練習してもそのワードに慣れるだけであまり意味がないと思い込んでいたのですが、 たじさくそうまごウェルは想像よりもタイプウェルのエッセンスが凝縮されていてトップスピードを取り戻すのにかなり有用であったため、 最適化でも似たような練習方法を採ることにしました。

練習期間中はこのファイルで指を起こし、ある程度指が温まったら TW や WT をしばらく打ち、 その特定のワードが出た時に自然にその最適化が使えたかどうか、 ダメだったら TypeLighter に戻ってまたしばらく打つ、ということを日課にしていました。

2, 3週間ほど練習した結果、

  • 期間中に使えるようになったもの
  • 特定のワードのときしか使えなかったもの
  • TypeLighter 以外ではまったく使えるようにならなかったもの

などさまざまでしたが、私の場合

  • mu67
  • ko78
  • io89

の三つが非常に効果的でした。

mu67

TypeLighter で本番課題を練習していた際、「この空の下、一人たたずむ」というワードが異常に遅かったため、 「たたずむ」の最適化をいくつか検討した結果

  • umu878 は空間把握が難しくてむり *2
  • umu787 はあり
    • が、本選課題に含まれていた「ゲーム」も遅かったので共通で使える最適化を導入したかった
  • umu767 ???

という流れで m6 を検討したところ、意外と打てたので本格的に練習を始めました。*3

練習し始めてまず驚いたのは、 TypeLighter で特定ワード (「たたずむ」 と 「ゲーム」) でしか練習していなかったのに、 TypeWell の「リズム」「フィルム」などでも勝手に m6 が出るようになっていったことです。*4

また、練習していく中で umu という特定文字列を含むワードの遭遇率が思った以上に高いということに気付きました。 正確には「なんか親指が出る頻度がやけに高いな?」という違和感が発端で、 体感としては「途中 ESC のトライアルも含めて 10 回くらい常用を打つと 2, 3 回程度親指が出てる」という感覚でした。*5

これを多いと捉えるか少ないと捉えるかは人によると思いますが、私は

  • m6 を覚えただけでこんなに使えるのか! お得!
  • これで 0.1 秒伸びるなら、10 個覚えたら 1 秒伸びるじゃん!
  • というかこれまで umu777 で打ってた私はどんだけ無駄してたの...

と思い、この辺りから俄然最適化のモチベが高まり始めます。

さらに驚くことに、練習を続けていくといつの間にか m だけでなく n についても勝手に親指が出てくるようになってきました。*6
n については unu は少ないものの

  • un で終わるワードはかなり多い
    • 語末なので認識しやすい & 多少崩れても戻しやすい
  • 後々 unyu7647 にも派生

と適用範囲が広く、右手親指の導入は総じてかなりお得感がありました。

ko78

これはあまり一般的でない最適化だと思います。 というのも、標準運指では ko89 なので最適化の必要性が薄いからです。 私の場合基本運指が o8 だったため、ko が 88 となり最適化の余地がありました。

f:id:permil:20181109230943p:plain:w350
再掲: 私の運指 (最適化前)

最適化初心者の私が自然にこれを思い付くはずもなく、元々は de43 を練習していて

と思い試しに「デコレーション」を追加してみたのがきっかけでした。 これもいくつか運指を検討した結果、

  • dec はむり、っていうか遅い
  • ko89 は (私の場合) 直後の - が 9 なので繋げづらい
  • ko78 かな...

という流れで deko(re-syon)4378 で練習していました。

するとしばらく経って、oko878 が自然に使えるようになっていることに気付きました。 当初は oko のときだけ最適化できていた*7のですが、 徐々に ko78 や ok87 でも使えるようになっていきました。

また k7 の感覚を覚えたことで、ki78 も導入してみようという気持ちになり、「できる」も追加しました。*8
こちらは指の形が辛く最初は慣れなかったものの、oko878 の感覚でまず iki878 が、追って ik87, ki78 も徐々に反応できるようになりました。

io89

標準運指にしか見えませんが、私の基本運指は o8 なのでこれは「私にとっては」最適化となります。

これについては特段個別の練習をした記憶はないのですが、umu, oko などと同様にまず ioi898 (nioi) で自然に指が出るようになり、 そこから徐々に io89, oi98 単体でも使えるようになっていったと記憶しています。

io, oi ともに語末に多く(sutajio, hitosio, hiroi, omoi など) 、また母音連続のためかこの部分をパターンとして認識しやすく、慣れるまでの時間は比較的短かったです。 また英文にも適用箇所が多く (station, national, coin など) これもかなり費用対効果が高かったです。

ただ、個別練習を行っていないためか一部の文字列中ではまだ最適化を適用できていません。たとえば

  • otioti (oti x 2 と認識してしまうため真ん中の io をかたまりとして認識できない)
  • iou (これまで使ってなかった指の形なので窮屈に感じる)
  • oil, lion (o ⇔ l の移動が狭く無意識に避けている)

あたりです。これらの最適化を習得するには y 同様個別の練習が必要になると思われます。

その他の最適化

deredere4343、burabura78417841、hurahura78417841 については、これら特定の文字列に対しては稀に適用できるようになったものの、 d4, bu78, hu78 の習得にはそれぞれ至りませんでした。*9

また tanjican41789417 については完全に TypeLighter でしか打てないままに終わりました。

おそらくこれらは um/mu, ok/ko などと異なり、普通に TypeWell などを打っているだけでは出現頻度が低く学習に至らなかったのだと思われます。

最終的に (2017 年終了時点)

これらの最適化導入の結果、2005 年が最終更新だった TWR 常用を何度か更新し 最終的に 26.857 ZI 05.02.19 → 25.914 ZH 17.10.29 と約 1 秒の更新につながりました。

また、ワーストスピードに関しては更新こそなかったものの平均的に向上したように思います。 逆にトップスピードについては特に変化を感じませんでした。 これは最適化が指の動きを速める技術ではなく「打ちづらい文字列を打ちやすくする技術」であることからも納得ができる結果です。

英文に関しては最適化は全く練習しなかったため最適化の影響はほぼありませんでした、が、 逆に言うと懸念していた悪影響もありませんでした。*10
io89, oi98 については和文英文ともに頻出なためたまに使えるようになったのと、 ook (book, cook, took...) に関しては中指の三連打を避けようという意識からか ook888 から ook887 に変化しました。

続きます

次回、2018 年編。

*1:推測ですが、文字列認識の単位がそもそも違うような気がします。和文ではローマ字読みでも脳内で音節ごとに分割しているが、英文は tri, any, ter, teen, ple みたいな頻出文字列を頼りに単語を分割して認識している気がする。

*2:当時は。後編で書く予定ですが、最近はありかなとも思い始めてます。

*3:親指とか昔は冗談だとしか思ってなかったんですが、どうやら打鍵姿勢が昔は両手首ベタっと派だったのが、10年の歳月の間にいつのまにか右手首浮かす派にシフトしていたことが功を奏したようです。また、スペースが左手なので右手親指が空いていたのも最適化に活用しやすかった一因であると思います。

*4:私がローマ字読みなので、umu という文字列の形がパターンとして認識しやすかったというのもあるかもしれません。他の最適化勢の人にも聞いてみたいところ。

*5:今真面目に調べたところ、TWR 常用の 2157 ワードの中に umu を含むワードが 15 ワード (約 0.7% ≒ 1/144) あるようです。1 トライアルがだいたい 55 ワード程度のようなので、3 トライアルに 1 回くらいは見る計算になります、えめっちゃ多いな。umu だけでこれなので、um, mu 単体で数えるともっと増えるはずです。

*6:munmun あたりで、mu67 のあと n を自然に打てる指が n6 だったのがきっかけで、そこから tuntun, runrun あたりに派生していった気がします。こうして考えると、常用特有の繰り返しワードは1ワードで2度おいしいため、最適化の例示として使われやすいのも分かる。ただ最近は munmun は親指による速度低下を防ぐため個別最適化で 674674 で打っています。

*7:推測ですが、ローマ字読みの場合 umu や oko のような行って戻る文字列は認識がしやすく、また umu で間に他の指をねじ込む感覚を練習していたため応用が利いたのではないかと思っています。

*8:これだけやっても結局 de43 は身についてません。未だ練習中。つらい...

*9:ただ burabura, hurahura に関しては練習の中で、1 文字目で反応し損ねても繰り返しの 2 回目は b7, h7 が間に合う、というケースは段々増えていきました。r ⇔ f, r ⇔ b の移動は意外と時間がかかっていたためこれだけでも一定の効果は実感できました。

*10:TWE 常用についても 26.362 ZG 06.11.27 → 26.303 ZG 17.09.06 と 0.059 秒の更新はあったのですが、これは最適化の影響というよりは、リハビリによるトップスピードの回復と、TWR で更新できたことによる自信の回復が主な要因だったと考えています。

タイプウェルを10年ぶりに更新した話、または完全固定運指からの脱却の道程 (導入編)

この手の事は、ガチってるうちはまとめてる暇があったら練習するし、 熱が冷めた人は特にモチベがなくて書かないのであまり情報がまとまってないのかな、 と思ったので書いてみることにしました。*1

前提として

記事の目的

この記事の目的は、「この文字列はこう打て!」という種々の最適化を紹介することではありません。 私は最適化に関しては語れるほど詳しくないですし、 そもそも私は完全固定運指ではあったもののいわゆる標準運指からは微妙に外れているため、 私にとって効果的だった最適化が他の方にも有用とは限りません。

典型的な最適化例については「タイピング 最適化」で検索すればいくつかの記事が引っかかるのでそちらにお任せするとして、*2
この記事では15年間無最適化で生きてきた人間が

  • なぜ最適化を導入しようと思い、
  • どのように考えどういう順序で最適化を導入し、
  • 最終的に10年以上前の記録を更新するという結果に至るまでの経過

と、その過程での心境の変化について書こうと思います。*3

最適化導入前の運指

f:id:permil:20181109230943p:plain:w400

右上が薬指の担当なこと以外は割と標準運指に近いんですが、

  • o が右手中指なこと
  • c が左手人差し指なこと

あたりが標準運指との大きな違いだと思います。*4

この差分によって、従来の最適化が不要になった部分もあり、逆に最適化が必要になった部分もありました。 とりあえず言えることは「普段の運指によって、覚える最適化の優先度も方法も変わり得る」ということです。

最近はこんな感じです。*5

本題 ...の導入

なぜ最適化を取り入れてこなかったのか

私は15年以上完全固定運指でタイピングを続けていました。 また文字単位の最適化についても、zi, hu, cacuco, xn のいずれも導入していませんでした。 理由はいくつかありますが、

  • 英文入力が主戦場であったこと
    • 良く最適化の筆頭としてあげられる hurahura, burabura などの繰り返し文字列は英文には存在せず、個別文字列への最適化は過剰に思えた
    • 英文では子音連続があるため和文と比べて文字の組み合わせのパターンが多く、最適化の効果は薄いように思えた
  • (cacucoなどについては) ローマ字読みだったため、見えている文字と違う文字を入力することに抵抗が大きかった
    • またそれによって英文の文字認識に影響が出てしまうことへの不安もあった
    • 加えて当時は cacuco や xn に対応していないソフトも多く、混乱を避けたかった (TOD美佳タイプなど)

あたりが主な理由でした。

じゃあなぜ今さら最適化を導入するに至ったのか

端的に言うとRTC2017出場にあたって素の自分では勝負にならないのが明らかだったからです。 予選の e-typing は初速の速い私に有利な種目だったため間違って通過してしまったものの、 TWR 総合 ZH↑ の猛者がゴロゴロしている中、全盛期の常用ですら ZH を達成していない私は明らかに場違いであり、 辞退せずに出場枠を一つ潰すからには鈍りきった実力のままで出るのは失礼である、 が純粋な指の速度では当時の記録を上回れるはずがない、 どうせ引退済の身なら再起不能になる覚悟で最適化を試してみよう、くらいの気持ちで導入を決意しました。

もう一つの理由は、予選で俺さんが使っているのを見て知った TypeLighter でワード別練習をしてみたところ、 体感ではそこまで遅いと感じていなかった文字列が話にならないほど遅かったことを認識したからです。*6 RTC2017 に向けての練習では時間が限られていたのもあり、それらのワードに絞って効果的に使えそうな最適化を集中的に練習することにしました。

結果的には付け焼刃の練習ではどの道勝負にならなかったのですが、 その過程で体力的な全盛期には達成できなかった25秒台を TWR 常用で、 1年遅れて TWE 常用でも達成できたことは感慨深く、十分な成果と言えるでしょう。

本題

...を書こうと思ったんですが、導入が思ったより長くなったので分けます... 次回、RTC2017編。

*1:というか去年もそう思ったんですが、RTC後は急速にモチベがなくなったので、今年は二の轍を踏まないようにこのタイミングで書き起こしておこうと思います。

*2:特にパソ活ラボさんの記事が異常に分かりやすくまとまっていると思います。

*3:テルさんの運指スタイルの分類を引用すると、A → D への転向を行った、ということになります。

*4:本格的にタイピングを始める際に標準運指で覚え直したはずなので何故こうなったのかよく分からないですが...

*5:t7 とか n4 とか l0 とかも導入し始めたので完全ではないです。というか最適化という概念が浸透した時点で表で色分けするのはもう無理があるんだと思います。

*6:具体的には、本選を本気で戦うには 30 ワードのアベレージで 950kpm くらいは欲しいところなのに、後半パートだけでも何回打っても 800kpm に届かないワードがある、くらいのレベルの話。