IME の状態遷移に関する考察

前のエントリから続く
IME の操作で一番めんどくさいのは候補選択でも文節区切り直しでもなく、on/off の切り替えだ。特に和英交じり文を書いてると on/off 切り替えミスが多発してげんなりする。なぜこんな簡単そうな操作がうまくいかないのか。
多くの IME はいろいろな状態を行ったり来たりしながら漢字かな交じり文を作っていく。たとえば ATOK 2009 は次の状態を持つ (他にもあるがここでは触れない)。
http://mobitan.org/kb/atok/imestats.png
このうち (1) (2) は、そのままアプリや OS に対する操作ができる (たとえば [Enter] を押せばダイアログが閉じる) という意味で、IME の外側にある定常的な状態といえる。これらの状態を本稿では「モード」と呼ぶことにしよう。
一方 (3) (4) (5) (6) は、IME に対する操作しかできない (たとえば [Enter] を押しても入力中の文字が確定するだけでダイアログは閉じない) という意味で、IME の内側にある一時的な状態といえる。これらの状態を本稿では「モード」とは呼ばないことにしよう。
(3) (4) (5) (6) 相互間の状態遷移はほぼ自明 *1 なので、以下の議論では (4) (5) (6) を (3) に含めて考える。
それでは、これまでに私が使ってきた状態遷移方式をまとめてみよう。以下、図中の [ A ] は任意の文字キーを表す。また、[RShift] [RAlt] はそのキーを単独で押して離すことを示す。実際には [RShift] や [RAlt] は右親指で押せる場所 ([変換] や [ひらがな] の位置) に配置されている。

Phase12

http://mobitan.org/kb/keymap/phase12-ime.png
(1) と (2) を 1 つのキーで交互に切り替える方式。Windows 標準の [半角/全角] で切り替える方式と本質的に同じである。ユーザが望むモードへ切り替えるには「現在のモードを把握 → 切り替えの要否を判断 → キーを押す」という手順を踏まなければならず、思考コストが高いのが難点だ。現在のモードを把握しやすくするために画面の色やキャレットの点滅速度を変えるなどさまざまなアイディアがあるが、どれも本質的な解決にはならない。

Phase15

http://mobitan.org/kb/keymap/phase15-ime.png
切り替え先のモードごとに別個のキーを割り当てる方式。Macintosh 標準の [英数] [かな] で切り替える方式と同じである。ユーザーは望むモードへ切り替えるキーをただ押せばよく、現在のモードを把握して判断する必要がないため思考コストを節約できる。Windows でも IME のキーカスタマイズによってこの方式を実装している人は多いようだ *2。欠点は、モード切り替え用に単打キーが 2 つ必要となるため、親指周辺のキー配置の自由度が減ることである。

Phase16

http://mobitan.org/kb/keymap/phase16-ime.png
IME on へ切り替えるキーを単打ではなくモディファイヤとする方式。[変換] を Mod2 とし、Mod2 を押しながら文字キーを押すと IME が on になった上で文字が入力される。つまり (1) から (3) へ直接遷移する。単打キーを節約するために思いついた苦肉の策だが、よく考えたら IME を on にするのは和文を入力したいときだけ。ということは IME on の操作は必ず文字入力を伴うはず *3 なので、これをモディファイヤ化するのは合理的である。ただし、依然として (1) と (2) がモードとして存在するため、「upper」と書くつもりが「うっぺr」になってしまうといったミスは防げない。

根本的な問題は、IME の外側にある定常的な状態 = モードが 2 つあることである。ならば、いっそのことモードを 1 つにしちゃったら?
次のエントリに続く

*1:いろいろ言いたいこともあるが、それはまたの機会に。

*2:http://blog.tofu-kun.org/070315102250.php

*3:例外はある。単語登録とか文字パレットを使うときとか。