#モリトーク

第36話

Windows 8にまつわるIMEの裏事情

 Windows 8の“Windows ストアアプリ(以下、ストアアプリ)”では共通の操作性を提供するために、さまざまなルール・制限が設けられており、その対象のひとつがIMEである。これまでWindows上にIMEを実装する場合、“Input Method Manager(以下、IMM32)”または“Text Service Framework(以下、TSF)”と呼ばれる2種類のAPIを利用することができたが、ストアアプリ上では後者のTSFしか利用できない仕様になっている。

 TSFはWindows Vistaで本格的に導入されたIMM32の後継版であり、手書き入力や音声認識などの新機能が追加されている。ストアアプリはタッチ操作を前提としているため、それに向かないIMM32が必然的に排除されたというわけだ。また、IMEを呼び出したストアアプリがそれ自身のインターネット通信を許可していない場合、そのIMEもインターネット通信を利用できないといった制限もある。そのため、「Social IME」のように随時インターネット通信を行うようなアプローチは事実上、ストアアプリ上で機能しないと言える。

 IMM32はとても古いAPIであるため、ほとんどのIMEがすでにTSFへ移行しており、APIの使用制限はそれほど大きな障害ではない。たとえば、TSFを採用する「Baidu IME」の場合、そのベータ版がサードパーティ製の日本語IMEとして最速でストアアプリに対応した。もちろん、TSFを採用していれば自動的にストアアプリへ対応できるわけではなく、同じくTSFを採用する「ATOK 2011」や「ATOK 2012」はアップデートによってWindows 8に対応したものの、ストアアプリには対応していない。

 一方、主要な日本語IMEのなかで唯一IMM32を採用し続けている「Google 日本語入力」は、ストアアプリへ対応させるために、開発版にてIMM32からTSFへの設計変更をテストしているところだ。「Google 日本語入力」の開発履歴によると、11月22日に公開されたv1.7.1275.100ではIMM32からTSFへの切り替えが実施され、続く同29日公開のv1.7.1283.100ではIMM32への互換性を向上させていることがわかる。ただし、大きな仕様変更を強いられたため、既知の不具合がまだ残っているようだ。また、IMM32からTSFへの変更はWindows 8上で利用した場合に限ったことであり、Windows 8以外のOSで利用したときには引き続きIMM32で動作するとのこと。

“Windows ストアアプリ”上で動作する「Google 日本語入力」

 実は、「Google 日本語入力」はもともとTSFを採用するIMEとして、そのベータ版が2009年12月に登場し、その約1年後に、Windows XPへの対応を強化すべくTSFからIMM32へ変更した上で正式版となっている。ちょうど同じ時期、「ATOK」はIMM32からTSFへの切り替えをプレビュー版でテストしており、両者の方針は正反対であった。なぜこのようにIME用のAPIが一本化しないのかというと、IMEにはアプリケーションとの相性問題がつきまとっているからだ。

 とくによく知られているのがDirectXを使ったゲームとの相性問題で、TSFのIMEでは正常に文字を入力できないゲームでも、IMM32のIMEでは入力可能な場合があり、またその逆もある。現状、IMM32を採用する無料かつ高性能なIMEは「Google 日本語入力」だけであり、TSFのIMEで相性問題が発生した場合の解決手段としてもぴったりなのだ。もし「Google 日本語入力」がTSFへ完全移行すると、それも絶たれてしまうことになるので、相性問題が発生したときの選択肢としてIMM32のIMEが残っていることもそれなりの意味があるだろう。

(中井 浩晶)