Dime3.0バージョンアップ説明

日本語入力の総合支援ツールとしてDimeを完成させるために、ART(AZIK+ローマ字単打)を組み込みました。
ARTを組み込むにあたって、ホームポジションキーパーで実装したARTを見直して、更に使いやすく機能を拡張しました。Vectorに登録申請しましたので、まもなく公開されると思います。
以下、その内容について説明します。

1.日本語入力の総合支援ツール

日本語入力について、標準の設定のままだと使いにくいところがあるので、世の中には、さまざまな支援ツールがあります。以下のような問題を解決しようとしています。

(1)IMEの状態が分かりにくい。

この問題が一番ニーズが高いようです。入力中に日本語入力がオンだと思って入力し始めるとアルファベットが入力されるので、削除してまた入力しなおす。または、その逆で困っている人が多いようです。タッチタイピングをしていれば、入力の誤りには比較的早く気が付きますが、それでも入力し始めの数文字は入力しなおす手間がかかることがあります。

(2)IMEの切り換えにくさ

多くの方はIMEの切り換えをJISキーボードの「半角/全角」キーで切り換えていますが、このキーは数字の「1」の更に左という、かなり打鍵しにくい位置にあります。
頻繁に利用するキーなので、左手の小指がかなり疲れます。

(3)ローマ字入力の非効率

ローマ字入力は、習得しやすく打鍵するキーもすべてホームポジションにあるので、入力しやすいという利点があります。一方、ローマ字入力は、打鍵数が多いと言われており、さまざまな入力拡張が存在します。

これらの問題を一つのツールで解決する日本語入力総合支援ツールとしてDimeを改善することが今回の狙いです。

2.Dimeの狙い

元々、DimeはIMEの状態が分かりにくいという問題を解決するために作成しました。Dime以外のIME状態表示ツールは、アプリによっては表示ができなかったり、そもそも見逃しやすいといった問題がありました。また、分かりやすくすると、逆に入力時にじゃまになるという問題もあり、Dimeでそれらの問題を解決できたと思います。

その後、IMEの切り換えのしにくさについて、どうにかしようと考えてましたが「CapsLock」キーで簡単に切り替えられるかとを知りました。
しかし「CapsLock」キーでの切り換えは、JIS配列のキーボードとUS配列のキーボードで動作が異なり、このために苦労しているユーザーがいることも分かり、Dimeではどちらのタイプのキーボードでも「CapsLock」で切り換えることができるようにしました。

これで一応当初のDimeの狙いは達成できたのですが、以前拙作のホームポジションキーパーに組み込んだART(AZIK+ローマ字単打)にバグがあること、日本語入力関連の機能なのでDimeにまとめたいと考え、今回DimeにARTの機能を組み込みました。

3.ARTの改善

(1)AZIKの拡張の考え方

AZIKは、ローマ字入力が子音+母音または、母音の連続であることに着目し、子音+子音が使われていないことを利用して、撥音(あん、いん、うん、えん、おん)や二重母音(あい、えい、おう、うう)に割り当てるという素晴らしい発想のローマ字入力の拡張です。

ローマ字入力を拡張しているので学習コストも低く、たとえAZIKの入力に移行しても、通常のローマ字入力と併用するのは、それほど難しくありません。

ただ、ローマ字入力と互換性が高いといっても、子音+子音が通常のローマ字入力で全く使われていないというわけではありません。特に促音(っ)は、同じ子音の連続という方法なので、すべての子音を使ってしまいます。したがって、AZIKでは「っ」の入力のために特別に「;」(セミコロン)を割り当てているのです。

(2)子音の利用について

AZIKで利用する子音は以下の通りです。

①撥音

あん:Z  いん:K  うん:J  えん:D  おん:P
これらの子音を選んだ理由は、どれも関連する母音が近いので覚えやすいという理由のようです。
たとえば「あん」の「Z」は「A」の近くにある子音です。
ただ、この撥音は非常によく使うので、1週間もすれば指が覚えてくれるので、もう少し合理的な子音キーを選択することをARTでは考慮しました。

具体的には
いん:V  えん:F
としました。その理由はVもFも使用頻度は少ないのですが、非常に入力しやすい位置にあることです。またK、Dは後に説明するローマ字単打では非常によく使う子音なので撥音に割り当てるのはもったいないという理由もあります。

②二重母音

あい:Q  えい:W  おう:P  うう:H
これらの子音を選んだ理由も撥音と同じく、関連する母音が近いので覚えやすいということです。
こちらも非常によく使うので、覚えやすいという利点よりも、ローマ字単打のことを考えて「うう」はCに割り当てました。Hはローマ字単打で「は」になるので、非常によく使うことになります。また、二重母音の「うう」は他の二重母音に比べて使用頻度が少ないので、多少入力しにくいCであっても良いと考えました。また、別の理由としてヘボン式で入力している人は、反射的に「しゃ」を「sha」と入力するので「H」を二重母音の拡張に使うと非常に混乱します。

③「っ」と「ー」について

これらについては、AZIKでは「;」と「:」に割り当てられています。これはJIS配列であれば右手小指で並んでいるので、あまり問題はないのですが、US配列になると「:」はシフトキーを押しながら入力することになります。
ARTでは、キーボード配列に影響を受けないように「X」と「V」に割り当てました。両者ともに通常のローマ字入力では、ほとんど使わないので、利用頻度の高い「っ」と「ー」に割り当てました。
また「;」と「:」を使うとUMPCのような特殊な配列のキーボードの場合は、非常に使いにくくなるという欠点もあります。
さて「X」や「V」というキーはローマ字入力では、ほとんど使わないといっても、どうしても入力したいときは、どうすればいいかという問題があります。「V」は「ヴァイオリン」とか「ヴィーナス」のように、たまに入力する必要があります。「X」は全角小文字の「x」をどうしても入力したい場合ぐらいでしょうが、やはり入力可能にしておくことに越したことは無いです。これはAZIKでも同様で「;」や「:」を入力するには、多少の工夫が必要と解説されています。

この問題はARTでは「L」を活用することで解決しています。つまり「V」を入力するときは「LV」とし、「X」を入力するときは「LX」とします。この方式を思いついて、アルファベットキーのみで全てのローマ字入力が可能になりました。

④Lの活用

子音の中で「L」は特別で、ローマ字入力では小文字の母音「ぁぃぅぇぉ」を入力するときに使います。逆に言うと、他では利用していないということで、比較的打鍵しやすい位置にある「L」はもっと活用すべきです。
その一つが③の「っ」と「ー」で説明した「X」や「V」を入力するときの拡張です。しかし、小文字の母音、「X」「V」以外は使わないので、ARTではここに単語を登録できるようにしました。「L」+子音の2打鍵で単語が入力できるので、使用頻度の高く比較的長い単語を登録すると入力効率がさらにアップします。

(3)ローマ字単打

ローマ字単打とは、子音+子音の組み合わせの場合、最初の子音に母音を自動的に追加するものです。たとえば「しかし、」の場合「SKS、」と入力すれば「SIKASI、」と入力したことになります。これは打鍵数を減らすにはかなり強力で「しかし、」の場合、7打鍵が4打鍵になります。

子音+子音の組み合わせで、1番目の子音は「Q」「X」「V」「F」「J」を除くすべての子音が対象となります。2番目の子音は撥音や二重母音で使用しないものになります。その子音と自動追加される母音は以下の通りです。

1番目子音 B C D G H K M N P R S T V W Y Z
追加母音 a a e a a a a a a u i a a a a i

ほとんどの子音は「a」(あ)が追加されますが、De(で)、る(Ru)、し(Si)、じ(Zi)は使用頻度を考慮して設定しました。

「F」と「J」は、ローマ字単打に追加しても「ふぁ」や「じゃ」となるので、それほど使用機会はありません。そこで例外的に「と」と「の」に割り当てました。つまり「F」の次に子音がくると「と」になるのですが、いまのところ覚えにくくてほとんど使えていません。

さて、ローマ字単打は、AZIKの特殊拡張とよく似ています。たとえば
ST(した)WT(わた)NR(なる)MT(また)
は、AZIKとローマ字単打では全く同じキーを使います。

母音を抜くということでは、AZIKの特殊拡張とローマ字単打は同じ考え方ですが、ローマ字単打は規則性があること、自分でよく使うパターンをだんだん増やしていける点が異なります。ローマ字単打 は、使えば使うほど利用パターンが増えてきます。この「利用パターン」が重要で、考えながら使うのではなく、頻繁に入力するパターンを覚えて指が勝手に動くようにするのがコツです。

ローマ字単打で、例外として「Y」と「H」の扱いがあります。「Y」は、前に子音が来た場合の多くは「ぎゃ」(GYA)などのように入力する必要があるので、子音+子音でもローマ字単打の対象外になります。
また、「しゃ」は「sha」としますし、「ちゃ」は「cha」と入力する人が多いと思いますので、これも子音+子音でもローマ字単打の対象外になります。

(4)ARTの実装

一般的にAZIKの実装はIMEのローマ字設定を変更することで行ないますが、Dimeの場合は、キー入力を監視して自動的に撥音や二重母音、ローマ字単打などを行ないます。したがってDimeを起動して常駐させるだけですぐに利用することができます。
また、USBメモリーに入れておけば、どのパソコンでもすぐに利用できるという利点があります。

4.その他

今回、Dimeをバージョンアップした直後に、Windows10に「テキストカーソルインジケータ」という機能が追加されていることに気が付きました。
これは、テキストカーソルに色を指定することができるもので、もしかすると?と思いDimeの中でIMEの状態に応じて色をコントロールしてみました。
Dimeを開発するときに色々な方式の中でキャレットの表示を変更するのが一番良いと思いましたが、特定のアプリでは機能しないという欠点があり実装をあきらめましたが、このテキストカーソルインジケータは多くのアプリやブラウザの中でも動作することが分かりました。
今回、テスト的に実装したのですが、その結果については次の記事で紹介します。

10件のコメント

  1. 公開ありがとうございます。早速ダウンロードして使ってみました。
    まだ常用するにはいたっていませんが、使ってみての感想・希望をまとめてここに書き込みたいと思います。

  2. ARTの機能について少し触ってみた範囲ですが、
    子音を打つと本来の子音の前に「あ」(まれに「え」)が入力されるケースが度々あります。
    ローマ字の2打目のモード(前に打った子音を確定する)が解除されていないようで、BSキーでそれらを消してもう一度入力しても「あ」+打った子音が繰り返されます。
    推定ですが、2打目の状態を解除する条件が網羅されていないのではないかと。
    BSキーによる削除の他、カーソル移動、Shiftキー単独でも解除(1打目を確定)して欲しいです。
    他にもいくつか感想がありますのでまた明日以降にこの欄に書いてゆこうと思います。
    よろしくお願いします。

    1. Dimeの評価、ありがとうございます。
      確かにバックスペースやカーソルキーに対する処理が不十分でした。
      バックスペース、削除、カーソルキー、シフトキー、ホーム、エンド、ページアップ、ページダウン
      について、余計な母音が追加されないように修正しました。

      もう少し、お待ちして他に改善・修正事項がないかどうか確認してからバージョンアップしたいと思います。

  3. 早速のご対応ありがとうございます。
    あとは改善というより希望になりますが、
    このようなツールに手を出す人は皆それなりに自己流の設定を試して来た人だと思うので、それぞれの機能毎にon/off可能にして馴染みやすいものから選んで使えるとありがたいです。

    (1)IMEの状態についてはiniファイルで設定できますが、
    (2)IMEの切り換え(CapsLockキー) についてはOff設定が分かりませんでした。
    (ちなみに、私は変換・無変換をそれぞれIME On/Offに割り当てています。Macと同じで今のモードを気にしなくて良いのが合理的で気に入ってます。テキストカーソルインジケータはここで初めて知りましたが良い機能ですね。これにDimeで色を変えられるとかなり分かりやすくなりそうです。)

    (3)ARTについては、AZIKと切り離してローマ字単打で慣れるまで使ってみたいです。と言っても「っ」と「ん」の単独キーは必要ですが。
    2打目に使われない子音を活用するという発想はAZIKと重なるのでキーの取り合いになり、ARTでの実装では拡張キーを変更して元のAZIKからは変わった設定になっていると見ています。私はAZIKに慣れてきた頃なので「っ」は;で入力できるとうれしいです。他にもcでちゃ行、xでしゃ行が入力できるのも気に入っていてこれも惜しい、といっていたら切りがなくなりそうですが。
    「L」+子音で任意の入力ができる機能があるので、同様にAZIK拡張の(ローマ字→ローマ字?)変換テーブルもユーザーで編集できるとかなり重宝しそうです。

    長々と失礼しました。他にも少しあるのですが、また後日にします。

    1. ご要望などありがとうございます。
      まずCapsLockがIMEの切り替えになっている件ですが、これはWindows10の標準機能なのでOffにはできないです。
      それにUS配列だとShift+CapsLockにしないとIMEの切り替えができないで困っている人がいることが分かったので、どちらの配列でもCpasLockキーでIMEを切り替えることができるようにしたというものです。
      おそらく、他のツールを使えばCpasLockの機能を無効にしたり他の機能に割り当てることもできると思いますが、JIS配列の場合はレジストリをいじらないとCpasLockの機能を変更できないです。

      次にIMEの切り替えを2つのキーに設定することですが、私も他のツールでそのようにしたことがあります。
      Dimeの場合は状態が必ず分かるので今は実装していませんが、任意のキーにIMEの切り替え機能を割り当てるようにしたいと思います。

      最後にAZIKとの互換性ですが、やはり長年使い続けて慣れたキー操作を変更するのは大変だと思いますので、次期バージョンではカスタマイズ可能にしてAZIKと互換性を持たせることができるようにしようと思います。
      私が知る限りAZIKの実装はローマ字テーブルのカスタマイズが多いので、Dimeのように実行ファイルだけで利用できるAZIKも意味があるのではと考えています。

      「X」は中国では「Sh」に割り当てているので覚えやすくもなっていますね。

      バグもあるこですので、できるだけ早く次のバージョンを公開します。

  4. 開発方針、大変ありがとうございます。楽しみにしています。

    ARTの修正希望について一つだけ補足すると、Shiftキーを押したときは母音を入力しないのではなく、デフォルトの母音を入力してかなを確定する動作の方が分かりやすいかと思います。Shiftキーを押すのはだいたい別の文字種(記号など)を続けて入力するためなので、入力は続いているという考えです。またShift空打ちならEnterやスペースを押す場合と違って、変換前の状態に影響を与えずにかなを確定する方法としても使えます。

    CapsLockの件も了解しました。標準機能を指しているのですね。

    ちなみに変換・無変換で IMEのそれぞれOn/Offは、ツールを使わなくてもMS-IME標準の機能で設定可能です。
    英語キーボードでは、左右のAltキー単打で同じ事が出来る(Alt+他キーの組み合わせは通常通り使える)というツールををAutoHotKeyを使ってで作っている人がいてなるほどと思ったことがあります。

    1. Shiftキーの件ですが、記号入力のためにShiftを押した場合は、今のバージョンでも母音を入力して確定する動作になっています。

      Shiftの空打ちについて、かな確定できるか試みましたがMS-IMEとGoogleIMEで同じ動作にすることができないので、こちらは見送ろうと思います。

      変換・無変換また、US配列でのAltキーについては、同様の仕様にするつもりです。
      これを、OS側で設定せずとも、Dimeを起動するだけでよいという狙いで開発します。
      とくに、複数の人で共有するパソコンでは、設定を変えると迷惑になる場合があるので意味があると考えています。

      少し実装に時間がかかるかも知れませんが、がんばってみます。

    2. Dimeの改善は概ねできました。
      動作確認とマニュアルを書いて、来週ぐらいにバージョンアップします。

      1.AZIK互換モード
      二重母音、撥音をAZIKと同じキーにする。
      「;」で「っ」、「:」で「ー」にする。
      「x」は「sh」
      「c」は「ch」
      可能な限りAZIKに合わせるモードを用意しました。

      2.IMEのON/OFF
      変換、無変換、右Alt、左Altに割り当てられるようにした。
      Altは他のキーと同時に押すとAltを押しながらの入力とした。
      どのキーにIMEのON/OFFを割り当てるかは設定ファイルで指定できる。

      公開までしばらくお待ちください。

  5. 大規模な機能追加でしたが、目覚ましい開発スピードですね!

    MS-IMEは元々制約が多くてローマ字テーブルだけではフル機能のAZIKを実装できないので、最新版のDIMEがあると便利なユーザー層は増えるかもしれませんね。特に最新バージョンではカスタマイズの幅がかなり減らされているのでこれからさらに有用性は伸びるかも。

    左右Altでの切り替えも採用されるとは思いませんでした。今は日本語キーボードですが、英語キーボードだとこれは便利そうだと思っていたのでいずれ試してみたいです。

    1. MS-IMEのローマ字テーブルでは、AZIKはフル装備できないんですね。
      そうであれば、DimeでのAZIK実装は意味があるように思います。
      左右Altキーは私も以前どこかでアイデアを見た覚えがありました。
      単に、IMEのON/OFFを割り当てるだけなら簡単なんですが、そこに他のキーと同時押しなら、本来のAltキーの機能を持たせるのは少し面倒でした。

      マニュアル作成して来週にはベクターに登録申請します。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です