以下、本発明につき図面を参照しつつ詳細に説明する。なお、以下の説明により本発明が限定されるものではない。また、以下の説明における構成要素には、当業者が容易に想定できるもの、実質的に同一のもの、いわゆる均等の範囲のものが含まれる。以下においては、文字入力装置として携帯電話端末を例として説明するが、本発明の適用対象は携帯電話端末に限定されるものではなく、タッチパネルを備える各種装置、例えば、PHS(Personal Handyphone System)、PDA、ポータブルナビゲーション装置、パーソナルコンピュータ、ゲーム機等に対しても本発明は適用できる。
(第1実施形態)
図1は、本発明の文字入力装置の一実施形態である携帯電話端末1の外観を示す正面図である。携帯電話端末1は、タッチパネル2と、ボタン3A、ボタン3Bおよびボタン3Cからなる入力部3を備える。タッチパネル2は、文字、図形、画像等を表示するとともに、指、スタイラス、ペン等(以下、単に「指」という)を用いてタッチパネル2に対して行われる各種動作を検出する。入力部3は、いずれかのボタンが押下された場合に、押下されたボタンに対応する機能を起動させる。
携帯電話端末1は、利用者から文字の入力を受け付けるために、図2に示すように、タッチパネル2上に仮想キーボード4を表示させる。仮想キーボード4は、物理的なキーボードのキーを模した複数の仮想的なボタンを含む。例えば、利用者が仮想キーボード4内の「Q」のボタンに指を置いて(接触して)離す動作をすると、その動作がタッチパネル2によって検出され、携帯電話端末1は、「Q」という文字を入力として受け付ける。
携帯電話端末1は、さらに、仮想キーボード4上での連続方式による文字の入力を受け付ける。連続方式とは、利用者が指をタッチパネル2に接触させたまま仮想キーボード4上を移動させることによって複数の文字を連続して入力することを可能にする方式である。連続方式では、利用者は、例えば、指をタッチパネル2に接触させたままで、「W」のボタン、「E」のボタン、「T」のボタンの順に滑るように移動させることで「WET」という文字列を入力することができる。
このように、連続方式では、ボタン毎に指を上げ下げする動作を行わずに、タッチパネル2上で指を滑るように移動させるだけで複数の文字を入力することができるため、非常に高速に文字を入力することができる。
ただし、連続方式では、利用者が指を移動させた軌跡上にある各ボタンについて、利用者がそのボタンに対応する文字を入力するために意図的に触れたのか、あるいは、利用者が他のボタン上へ指を移動させるために単にその上を通過させたに過ぎないのかを判定する必要がある。例えば、仮想キーボード4の配列がQWERTY配列であり、利用者が上記の「WET」という単語を入力したいものとする。この場合、利用者の指は「E」のボタンから「T」のボタンへ移動する際に、それらのボタンの間にある「R」のボタン上を通過することになる。このため、「R」のボタンについては意図的に触れたわけではないと判定できなかった場合には、利用者の意図に反して「WERT」という文字列が入力として受け付けられてしまう。
そこで、携帯電話端末1は、利用者が指を移動させた軌跡上にあるボタンのうち、特定の動作がタッチパネル2によって検出された位置に表示されているボタンを、利用者が文字を入力するために意図的に触れたものであると判定する。具体的には、携帯電話端末1は、指の接触を開始する動作がタッチパネル2によって検出された場合、接触の開始が検出された位置にボタンがあれば、そのボタンは意図的に触れられたと判定する。また、携帯電話端末1は、指の移動が終了しタッチパネル2から離れる動作がタッチパネル2によって検出された場合、接触の終了が検出された位置にボタンがあれば、そのボタンは意図的に触れられたと判定する。
また、携帯電話端末1は、指がタッチパネル2に触れたまま移動方向を変更する動作がタッチパネル2によって検出された場合、移動方向の変更が検出された位置にボタンがあれば、そのボタンは意図的に触れられたと判定する。具体的には、携帯電話端末1は、指がボタンに進入したときの移動方向と指がボタンから出るときの移動方向とを比較し、移動方向の角度差が閾値よりも大きければ、利用者が意図的にそのボタンに触れたと判定する。
これは、他のボタンへの移動中において、単に通過するに過ぎない場合、指はボタン上を一定方向へ移動し、図3に示すように進入時の移動方向(ベクトル)を示すV1と脱出時の移動方向を示すV2の角度差は小さくなると考えられるためである。また、図4に示すように進入時の移動方向を示すV3と脱出時の移動方向を示すV4の角度差の角度差が大きい場合、利用者が意図的にそのボタンに触れた後に他のボタンに触れるために移動方向を変更した可能性が高いためである。つまり、このボタンが目的ボタンの一つであったと判定できる。
また、携帯電話端末1は、図5に示すように、指がタッチパネル2に触れたままあるボタン領域内で回転する軌跡を描いて移動する動作がタッチパネル2によって検出された場合に、利用者が意図的にそのボタンに触れたと判定する。単に通過するに過ぎない場合に指がこのような軌跡を描いて移動することはないと考えられるためである。なお、回転する軌跡に限らずに、山型や波状等の特徴的な形状の軌跡が指によってボタン領域内で描かれた場合に、利用者が意図的にそのボタンに触れたと判定することとしてもよい。
このようにボタン領域内で特徴的な形状の軌跡を描く指の移動が検出された場合にそのボタンが意図的に触れられたと判定することにより、利用者は同じ文字を容易に連続して入力することが可能になる。例えば、「W」という文字を3回連続して入力したい場合、利用者は「W」のボタン領域内で円を3回描くように指を移動させればよい。ここで、例えば、ボタン領域内での指の移動ベクトルの角度の総計が360度を超える度に1回転とカウントすることにより、回転数をカウントすることができる。
利用者が携帯電話端末1に「エレクトロニクス(EREKUTORONIKUSU)」と入力する場合の操作例を図6に示す。St1では、「E」のボタン領域内に指が置かれた後、指がタッチパネル2に触れたまま、「R」、「E」、「H」、「J」、「K」の順にボタンの上を通過している。この場合、携帯電話端末1は、指が置かれた「E」のボタンと、進入方向と脱出方向の角度差が閾値よりも大きい「R」、「E」、「K」のボタンが意図的に触れられたと判断する。
St2では、指がタッチパネル2に触れたまま、「U」、「Y」、「T」、「Y」、「U」、「I」の順にボタンの上を通過している。この場合、携帯電話端末1は、進入方向と脱出方向の角度差が閾値よりも大きい「U」、「T」のボタンが意図的に触れられたと判断する。St3では、指がタッチパネル2に触れたまま、「O」、「I」、「U」、「Y」、「T」、「R」、「T」、「Y」、「U」、「I」の順にボタンの上を通過している。この場合、携帯電話端末1は、進入方向と脱出方向の角度差が閾値よりも大きい「O」、「R」のボタンが意図的に触れられたと判断する。
St4では、指がタッチパネル2に触れたまま、「O」、「K」、「N」、「J」の順にボタンの上を通過している。この場合、携帯電話端末1は、進入方向と脱出方向の角度差が閾値よりも大きい「O」、「N」のボタンが意図的に触れられたと判断する。St5では、指がタッチパネル2に触れたまま、「I」、「K」、「U」、「G」、「F」、「D」、「S」、「R」、「T」、「Y」の順にボタンの上を通過している。この場合、携帯電話端末1は、進入方向と脱出方向の角度差が閾値よりも大きい「I」、「K」、「U」、「S」のボタンが意図的に触れられたと判断する。
St6では、タッチパネル2に触れたまま「U」のボタンへ移動した指が、「U」のボタン領域内でタッチパネル2から離れている。この場合、携帯電話端末1は、指がタッチパネル2から離れた位置にある「U」のボタンが意図的に触れられたと判断する。
以上の操作により、携帯電話端末1は、「E」、「R」、「E」、「K」、「U」、「T」、「O」、「R」、「O」、「N」、「I」、「K」、「U」、「S」、「U」の順にボタンが意図的に触れられたと判定し、これらのボタンに対応する文字を時系列に連結した「エレクトロニクス(EREKUTORONIKUSU)」を入力された文字列として受け付ける。この文字列は、利用者が入力しようとした文字列と一致する。
図6の例が示すように、携帯電話端末1は、利用者の指がタッチパネル2に触れたまま移動した軌跡上の各ボタンについて、意図して触れられたのか、単にその上を通過したに過ぎないのかを、利用者が自然に行う動作に基づいて精度よく判定して文字の入力を受け付ける。このため、利用者は、携帯電話端末1に対して文字を高速かつ正確に入力することができる。
また、携帯電話端末1は、上述した連続方式等で入力を受け付けた文字列の削除を以下のようにして受け付ける。例えば、携帯電話端末1は、「カブト(KABUTO)」という文字列の入力を受け付けた後に、タッチパネル2に対してダブルタップを更に受け付けると、図7のSt7に示すように、利用者が「カブト」という文字列を入力するために指を移動させた軌跡Kをタッチパネル2に表示する。St7に示す例では、利用者が「カブト」と入力するために、「K」、「A」、「B」、「U」、「T」、「O」の順にボタンに触れながらタッチパネル2上で指を移動させた軌跡が表示されている。なお、ダブルタップとは、指をタッチパネル2に触れさせた後、即座に指をタッチパネル2から離す動作であるタップを、2回繰り返す動作のことである。
そして、携帯電話端末1は、利用者の指が入力時と逆方向に軌跡Kをたどるように移動する動作をタッチパネル2が検出すると、逆方向に辿られた部分に相当する文字を入力された文字から削除する。例えば、利用者が、図7のSt8に示すように、入力時における指の移動の軌跡を末端から逆方向にたどるように、「O」、「T」の順番で指がボタンに触れると、携帯電話端末1は、入力された文字列の末尾の「O」から「T」の部分、すなわち、末尾の「ト(TO)」の文字を削除する。そして、携帯電話端末1は、タッチパネル2に表示していた「カブト」の末尾の「ト」を消去する。
このように、携帯電話端末1は、文字列の入力時に指が辿った軌跡を逆方向にたどる動作に基づいて文字を削除していくように構成されているので、利用者は、削除したい部分を直感的な操作によって迅速に指定することができる。
次に、携帯電話端末1の機能と制御部との関係を説明する。図8は、図1に示す携帯電話端末1の機能の概略構成を示すブロック図である。図8に示すように携帯電話端末1は、タッチパネル2と、入力部3と、電源部5と、通信部6と、スピーカ7と、マイク8と、記憶部9と、主制御部10と、RAM(Random Access Memory)11とを有する。
タッチパネル2は、表示部2Bと、表示部2Bに重畳されたタッチセンサ2Aとを有する。タッチセンサ2Aは、指を用いてタッチパネル2に対して行われた各種動作を、動作が行われた場所のタッチパネル2上での位置とともに検出する。タッチセンサ2Aによって検出される動作には、指をタッチパネル2の表面に接触させる動作や、指をタッチパネル2の表面に接触させたまま移動させる動作や、指をタッチパネル2の表面から離す動作が含まれる。なお、タッチセンサ2Aは、感圧式、静電式等のいずれの検出方式を採用していてもよい。表示部2Bは、例えば、液晶ディスプレイ(LCD、Liquid Crystal Display)や、有機EL(Organic Electro−Luminescence)パネルなどで構成され、文字、図形、画像等を表示する。
入力部3は、物理的なボタン等を通じて利用者の操作を受け付け、受け付けた操作に対応する信号を主制御部10へ送信する。電源部5は、蓄電池または外部電源から得られる電力を、主制御部10を含む携帯電話端末1の各機能部へ供給する。通信部6は、基地局によって割り当てられるチャネルを介し、基地局との間でCDMA方式などによる無線信号回線を確立し、基地局との間で電話通信及び情報通信を行う。スピーカ7は、電話通信における相手側の音声や着信音等を出力する。マイク8は、利用者等の音声を電気的な信号へ変換する。
記憶部9は、例えば、不揮発性メモリや磁気記憶装置であり、主制御部10での処理に利用されるプログラムやデータを保存する。具体的には、記憶部9は、メールの送受信や閲覧のためのメールプログラム9Aや、WEBページの閲覧のためのブラウザプログラム9Bや、上述した連続方式での文字入力を受け付けるための文字編集プログラム9Cや、文字入力時にタッチパネル2に表示される仮想キーボード4に関する定義を含む仮想キーボードデータ9Dや、正当な文字列が登録された辞書データ9Eを記憶する。記憶部9には、携帯電話端末1の基本的な機能を実現するオペレーティングシステムプログラムや、氏名、電話番号、メールアドレス等が登録されたアドレス帳データ等の他のプログラムやデータも記憶される。
主制御部10は、例えば、CPU(Central Processing Unit)であり、携帯電話端末1の動作を統括的に制御する。具体的には、主制御部10は、記憶部9に記憶されているデータを必要に応じて参照しつつ、記憶部9に記憶されているプログラムを実行して、タッチパネル2、通信部6等を制御することによって各種処理を実行する。主制御部10は、記憶部9に記憶されているプログラムや、処理を実行することによって取得/生成/加工されたデータを、一時的な記憶領域を提供するRAM11に必要に応じて展開する。なお、主制御部10が実行するプログラムや参照するデータは、通信部6による無線通信でサーバ装置からダウンロードすることとしてもよい。
ここで、記憶部9が記憶する仮想キーボードデータ9Dの一例を図9に示す。図9の例に示すように、仮想キーボードデータ9Dには、仮想キーボード4に含まれるボタン毎に、ボタンに対応する文字、ボタンの位置(例えば、左上座標)、幅、高さ等が登録される。図9に示す例では、あるボタンに対応する文字が「Q」であり、そのボタンの左上座標がX=10、Y=10であり、そのボタンの幅と高さが20と40であること等が登録されている。
次に、携帯電話端末1が文字の入力を受け付ける場合の動作について説明する。図10は、携帯電話端末1による文字編集処理の処理手順を示すフロー図である。図10に示す文字編集処理は、主制御部10が記憶部9から文字編集プログラム9Cを読み出して実行することにより実現され、仮想キーボード4がタッチパネル2上に表示されている間、繰り返し実行される。なお、仮想キーボード4は、主制御部10が文字編集プログラム9Cまたは他のプログラムを実行することにより、タッチパネル2上に表示される。
まず、主制御部10は、ステップS11として、入力文字バッファ12をクリアする。入力文字バッファ12は、入力として受け付けられた文字列を構成する文字が格納される記憶領域であり、RAM11に設けられる。
入力文字バッファ12の一例を図11に示す。図11は、タッチパネル2に対して図7に示したSt7の時点での入力文字バッファ12を示している。図11の例において、入力文字バッファ12には、入力として受け付けられた文字列「カブト」を構成する「K」、「A」、「B」、「U」、「T」および「O」の文字が格納されている。図11の例が示すように、入力文字バッファ12には、指がタッチパネル2に接触したまま移動した軌跡上のボタンに対応する文字が時系列に格納される。
また、入力文字バッファ12に格納された文字は、入力として受け付けた文字列をタッチパネル2に表示するために主制御部10によって用いられる。例えば、入力文字バッファ12の内容が図11に示した通りである場合、主制御部10は、ローマ字表記に従って、「カブト」という文字列をタッチパネル2に表示する。仮名漢字変換が行われる場合、入力文字バッファ12に格納された文字は、対応する仮名に変換されて未確定文字として表示される。そして、その後、仮名漢字変換操作に応じて漢字等に適宜変換されて、確定文字となる。
入力文字バッファ12のクリアを終えると、主制御部10は、ステップS12として、RAM11に設けた入力完了フラグを0に設定する。入力完了フラグは、1回分の文字入力が完了したか否かを判定するために用いられる。ここでいう1回分の文字入力とは、指をタッチパネル2に接触させてから離すまでの間に行われる文字入力を意味する。
続いて、主制御部10は、ステップS13として、タッチパネル2の最新の検出結果を取得し、ステップS14として、文字入力判定処理を実行する。文字入力判定処理において、主制御部10は、特定の動作が検出された位置に表示されている各ボタンに対応する文字を入力文字バッファ12に格納していく。なお、文字入力判定処理の詳細については後述する。
次に、主制御部10は、ステップS15として、入力完了フラグが0であるかを確認する。そして、入力完了フラグが0であった場合、換言すれば1回分の文字入力が終了していない場合(ステップS15,Yes)、主制御部10は、ステップS13〜ステップS15の処理を繰り返す。
また、入力完了フラグが1であった場合、換言すれば1回分の文字入力が終了した場合(ステップS15,No)、主制御部10は、ステップS16として、タッチパネル2においてダブルタップ操作が検出されたかを判定する。ダブルタップ操作が検出された場合(ステップS16,Yes)、主制御部10は、ステップS17として、文字削除処理を実行する。文字削除処理とは、文字入力判定処理において入力文字バッファ12に格納された文字を削除する処理である。その後、主制御部10は、ステップS13以降を再び実行する。なお、文字削除処理の詳細については後述する。
一方、所定の時間を経過してもタッチパネル2に対してダブルタップ操作が検出されなかった場合、もしくは、タッチパネル2に対においてダブルタップ以外の操作が検出された場合(ステップS16,No)、主制御部10は、文字編集処理を終了する。
次に、図12に示したフロー図を参照しながら、図10のステップS14で実行される文字入力判定処理について説明する。主制御部10は、ステップS30として、タッチパネル2で検出された動作が、タッチパネル2への接触を開始する動作、すなわち、指をタッチパネル2の表面に接触させる動作であったかを、タッチパネル2の検出結果に基づいて判定する。
検出された動作がタッチパネル2への接触を開始する動作であった場合(ステップS30,Yes)、主制御部10は、ステップS31として、接触が開始された位置を仮想キーボードデータ9Dと照合して、接触が開始された位置がいずれかのボタン領域内であったかを判定する。接触が開始された位置がいずれかのボタン領域内であった場合(ステップS31,Yes)、ボタンは意図して触れられたと考えられるので、主制御部10は、ステップS32として、そのボタンに対応する文字を、入力文字バッファ12に追加する。なお、ボタンに対応する文字は、仮想キーボードデータ9Dから取得される。
そして、主制御部10は、ステップS33として、出力フラグを「1」に設定して文字入力判定処理を終了させる。出力フラグは、RAM11に設けられ、指が現在接触している位置に表示されているボタンに対応する文字を入力文字バッファ12に出力済みであるか否かを判定するために用いられる。出力フラグの値が「0」であることは、指が現在接触している位置に表示されているボタンに対応する文字を、入力文字バッファ12にまだ出力していないことを示す。出力フラグの値が「1」であることは、指が現在接触している位置に表示されているボタンに対応する文字を入力文字バッファ12に出力済みであることを示す。
ステップS31において、接触が開始された位置がボタン領域内でなかった場合(ステップS31,No)、主制御部10は、特に処理を行わずに文字入力判定処理を終了させる。
ステップS30において、タッチパネル2で検出された動作がタッチパネル2への接触を開始する動作でなかった場合(ステップS30,No)、主制御部10は、ステップS34として、タッチパネル2で検出された動作がタッチパネル2への接触を保ったまま指をボタン領域内に進入させる動作であったかを、タッチパネル2の検出結果に基づいて判定する。検出された動作がタッチパネル2への接触を保ったまま指をボタン領域内に進入させる動作であったか否かは、タッチパネル2の最新の検出結果が示す接触位置とその直前の検出結果が示す接触位置とを仮想キーボードデータ9Dと照合することによって判定される。
検出された動作がタッチパネル2への接触を保ったまま指をボタン領域内に進入させる動作であった場合(ステップS34,Yes)、主制御部10は、ステップS35として、移動方向履歴をクリアする。移動方向履歴は、ボタン領域内で指がどの方向へ移動したかを示す方向ベクトルが時系列に記録されるデータであり、RAM11に記憶される。
続いて、主制御部10は、ステップS36として、指がボタン領域内に進入した方向を示す方向ベクトルを取得して、取得した方向ベクトルを移動方向履歴に追加する。そして、主制御部10は、ステップS37として、出力フラグを「0」に設定して文字入力判定処理を終了させる。
なお、タッチパネル2の検出結果に指の移動方向を示す情報が含まれている場合、方向ベクトルは、タッチパネル2の検出結果から取得される。タッチパネル2の検出結果に指の移動方向を示す情報が含まれていない場合、方向ベクトルは、タッチパネル2の最新の検出結果が示す接触位置とその直前の検出結果が示す接触位置とから算出される。
ステップS34において、タッチパネル2で検出された動作がタッチパネル2への接触を保ったまま指をボタン領域内に進入させる動作でなかった場合(ステップS34,No)、主制御部10は、ステップS38として、タッチパネル2で検出された動作がタッチパネル2への接触を保ったまま指をボタンの外へ出す動作であったかを、タッチパネル2の検出結果に基づいて判定する。検出された動作がタッチパネル2への接触を保ったまま指をボタンの外へ出す動作であったか否かは、タッチパネル2の最新の検出結果が示す接触位置とその直前の検出結果が示す接触位置とを仮想キーボードデータ9Dと照合することによって判定される。
検出された動作がタッチパネル2への接触を保ったまま指をボタンの外へ出す動作であった場合(ステップS38,Yes)、主制御部10は、ステップS39として、出力フラグが「0」であるかを判定する。ここで、出力フラグが「0」でなかった場合、すなわち、指がそれまで内部に位置していたボタンに対応する文字を入力文字バッファ12に出力済みの場合(ステップS39,No)、主制御部10は、特に処理を行わずに文字入力判定処理を終了させる。
一方、出力フラグが「0」であった場合(ステップS39,Yes)、主制御部10は、ステップS40として、最新の移動ベクトル、すなわち、指がボタンの外へ出た方向を示す方向ベクトルを取得し、移動方向履歴の先頭の方向ベクトルとの角度差を算出する。ここで算出された角度差は、指がボタンに進入したときの方向と指がボタンから脱出したときの方向の相違の大きさを表す。
算出された角度差が所定の閾値以下の場合(ステップS41,No)、指は単にボタンを通過したに過ぎないと考えられるため、文字入力判定処理を終了させる。
一方、算出された角度差が所定の閾値より大きい場合(ステップS41,Yes)、ボタンは意図的に触れられたと考えられるため、主制御部10は、ステップS42として、そのボタンに対応する文字を入力文字バッファ12に追加する。
ステップS38において、タッチパネル2で検出された動作がタッチパネル2への接触を保ったまま指をボタンの外へ出す動作でなかった場合(ステップS38,No)、主制御部10は、ステップS43として、タッチパネル2で検出された動作がタッチパネル2への接触を終了させる動作、すなわち、指をタッチパネル2から離す動作であったかを、タッチパネル2の検出結果に基づいて判定する。
検出された動作がタッチパネル2への接触を終了させる動作であった場合(ステップS43,Yes)、主制御部10は、ステップS44として、接触が終了された位置を仮想キーボードデータ9Dと照合して、接触が終了された位置がいずれかのボタン領域内であったかを判定する。接触が終了された位置がいずれかのボタン領域内であった場合(ステップS44,Yes)、ステップS45として、主制御部10は、出力フラグが「0」であるかを判定する。ここで、出力フラグが「0」である場合、すなわち、意図して触れられたと考えられるボタンに対応する文字がまだ入力文字バッファ12に出力されていない場合(ステップS45,Yes)、主制御部10は、ステップS46として、ボタンに対応する文字を入力文字バッファ12に追加する。
そして、タッチパネル2への接触を終了するという動作が行われたということは、1回分の文字入力が完了したことを意味するので、主制御部10は、ステップS47として、入力完了フラグを「1」に設定して文字入力判定処理を終了させる。
接触が終了された位置がボタン領域内でなかった場合(ステップS44,No)、または、出力フラグが「0」でなかった場合(ステップS45,No)、主制御部10は、ステップS47として、入力完了フラグを「1」に設定する処理のみを行って文字入力判定処理を終了させる。
ステップS43において、タッチパネル2で検出された動作がタッチパネル2への接触を終了させる動作でなかった場合(ステップS43,No)、主制御部10は、ステップS48として、タッチパネル2で検出された動作がタッチパネル2への接触を保ったままボタン領域内で指を移動させる動作であったかを、タッチパネル2の検出結果に基づいて判定する。
検出された動作がタッチパネル2への接触を保ったままボタン領域内で指を移動させる動作であった場合(ステップS48,Yes)、主制御部10は、ステップS49として、指がボタン領域内で移動した方向を示す方向ベクトルを取得して、取得した方向ベクトルを移動方向履歴に追加する。そして、主制御部10は、ステップS50として、移動方向履歴に記録されている各方向ベクトルを参照して、指がタッチパネル2に触れたままボタン領域内で回転する軌跡を描いて移動したかを判定する。
ここで、指がタッチパネル2に触れたままボタン領域内で回転する軌跡を描いて移動していた場合(ステップS50,Yes)、ボタンは意図的に触れられたと考えられるため、主制御部10は、ステップS51として、ボタンに対応する文字を入力文字バッファ12に追加する。そして、主制御部10は、ステップS52として、出力フラグを「1」に設定し、ステップS53として、移動方向履歴をクリアして文字入力判定処理を終了させる。
なお、指がタッチパネル2に触れたままボタン領域内で回転する軌跡を描いて移動していなかった場合(ステップS50,No)、ボタンは意図的に触れられていないと考えられるため、主制御部10は、特に処理を行わずに文字入力判定処理を終了させる。
ステップS48において、タッチパネル2で検出された動作がタッチパネル2への接触を保ったままボタン領域内で指を移動させる動作でなかった場合、すなわち、指が仮想キーボード4上のボタン外を移動していた場合(ステップS48,No)、主制御部10は、特に処理を行わずに文字入力判定処理を終了させる。
次に、図13に示したフロー図を参照しながら、図10のステップS17で実行される文字削除処理について説明する。まず、主制御部10は、ステップS60として、入力文字バッファ12から格納されている文字を取得する。なお、上述したように、入力文字バッファ12に格納されている文字は、文字入力判定処理において入力文字バッファ12に格納された文字である。
続いて、主制御部10は、ステップS62として、入力文字バッファ12から取得した文字に対応するボタンを文字の格納されている順番につないだ軌跡をタッチパネル2上に表示する。具体的には、図11において示したように、入力文字バッファ12に「K」、「A」、「B」、「U」、「T」、「O」という順番で文字が格納されていた場合、図7のSt7に示すように、主制御部10は、「K」、「A」、「B」、「U」、「T」および「O」に対応するボタンをこの順序でつないだ軌跡をタッチパネル2上に表示する。
なお、軌跡の表示は、例えば、ボタン「K」の表示領域の中心とボタン「A」の表示領域の中心と直線で接続し、さらに、ボタン「A」の表示領域の中心とボタン「B」の表示領域の中心と直線で接続するというように、ボタンの表示領域を直線で接続するようにして行ってもよい。また、例えば、「K」、「A」、「B」、「U」、「T」および「O」に対応するボタンの表示領域の中心をこの順序で通過するスプライン曲線等の曲線を算出し、算出された曲線を軌跡として表示してもよい。
次に、主制御部10は、ステップS64として、いずれかのボタンの表示領域内での接触がタッチパネル2によって検出されたかを判定する。ステップS64において、いずれかのボタンの表示領域内での接触が検出された場合(ステップS64,Yes)、主制御部10は、ステップS66として、入力文字バッファ12の末尾に格納されている文字を取得する。換言すれば、主制御部10は、ステップS66として、入力文字バッファ12に最も新しく格納された文字を取得する。
そして、主制御部10は、ステップS68として、ステップS64において表示領域内での接触が検出されたボタンに対応する文字と、ステップS66において入力文字バッファ12から取得した文字とが同一か否かを判定する。そして、同一であると判定した場合(ステップS68,Yes)、主制御部10は、ステップS70として、入力文字バッファ12の末尾の文字を削除する。
そして、主制御部10は、ステップS72として、入力文字バッファ12の最新の状態に基づいてタッチパネル2の表示を更新する。以下、図14、図15および図16を用いて、主制御部10の入力文字バッファ12に基づくタッチパネル2の表示の更新について詳細に説明する。
図14に示すように、また、上述したように、入力文字バッファ12に例えば「KABUTO」という順番で文字が格納されている場合、主制御部10は、ローマ字表記に従って、「K」「A」という隣り合う2つの文字により指定される「カ」という文字をタッチパネル2に表示する。同様に、主制御部10は、「B」「U」という隣り合う2つの文字により指定される「ブ」という文字と、「T」「O」という隣り合う2つの文字により指定される「ト」という文字とをタッチパネル2に表示する。換言すれば、主制御部10は、入力文字バッファ12に格納されている文字により、ローマ字表示に従って変換した文字が追加されるごとに、追加された文字をタッチパネル2に表示する。
ここで、図14に示すように入力文字バッファ12に「KABUTO」と格納されていた状態において、ステップS70において末尾の「O」が削除されて、入力文字バッファ12の状態が図15に示すように「KABUT」となったものとする。この場合、末尾の「T」は、対応する母音がなくなり、ローマ字表示に従って変換することができないため、主制御部10は、「カブT」のように「T」を変換せずにそのままタッチパネル2に表示する。なお、「T」が対応する母音がない未確定な文字の一部であることを示すために、「T」に下線を付したり、色を変えたりして表示態様を他の文字と異ならせてもよい。
さらに末尾の文字が削除されて、入力文字バッファ12の状態が図16に示すように「KABU」となったものとする。この場合、「ト」に対応する「T」も「O」も既に入力文字バッファ12には格納されていないため、主制御部10は、「カブ」をタッチパネル2に表示する。
再び、図13の説明に戻る。タッチパネル2の表示を更新した後、主制御部10は、ステップS74として、入力文字バッファ12が空であるか否かを判定する。そして、入力文字バッファ12内に文字が格納されている場合(ステップS74,No)、主制御部10は、再びステップS64以降の処理を繰り返す。つまり、主制御部10は、入力文字バッファ12の末尾の文字を削除した後、新たに入力文字バッファ12の末尾の文字となった文字の削除を行うことが出来る。
また、ステップS68において、表示領域内での接触が検出されたボタンに対応する文字と、入力文字バッファ12の末尾の文字とが同一でない場合においても(ステップS68,No)、主制御部10は、再びステップS64以降の処理を繰り返す。
一方、ステップS74において、入力文字バッファ12が空である場合(ステップS74,Yes)、主制御部10は、ステップS78として、ステップS62においてタッチパネル2に表示した軌跡を消去し、文字削除処理を終了する。
また、ステップS64において、いずれかのボタンの表示領域内での接触がタッチパネル2によって検出されなかった場合(ステップS64,No)、主制御部10は、ステップS76として、タッチパネル2に対して文字削除処理の終了操作が行われたか否かを検出する。文字削除処理の終了操作とは、例えば、ダブルタップや、タッチパネル2の特定の領域のタップである。そして、文字削除処理の終了操作を検出した場合(ステップS76,Yes)、主制御部10は、ステップS78として、ステップS62においてタッチパネル2に表示した軌跡を削除し、文字削除処理を終了する。
また、ステップS76において、文字削除処理の終了操作が検出されなかった場合(ステップS76,No)、主制御部10は、ステップS64以降の処理を繰り返す。
上述してきたように、携帯電話端末1は、指をタッチパネル2から離さずに仮想キーボード4上を移動させて文字を入力することを可能にするため、高速な文字入力を実現することができる。
そして、主制御部10は、タッチパネル2に対して文字入力の操作が行われたことを検出した後に、その文字入力の操作における軌跡をたどるような接触を検出したとき、接触された位置に表示されているボタンに対応する文字を、文字入力の操作によって入力された文字列から削除するとともに、タッチパネル2において消去する。このため、携帯電話端末1の利用者は、従来のBSキー等の使用による文字削除よりも、直感的に且つ高速に、タッチパネル2上で文字を削除することができる。
また、主制御部10は、文字の削除のための操作を受け付ける場合に、タッチパネル2において接触が検出された位置を示す軌跡を表示する。このため、携帯電話端末1の利用者は、その軌跡を逆にたどるという直感的な操作によって、文字の削除を行うことができる。
また、主制御部10は、文字入力の操作において接触が検出された順番とは逆方向に、軌跡がなぞられたときに、そのなぞられた軌跡上に表示されているボタンに対応する文字をタッチパネル2から削除する。したがって、携帯電話端末1の利用者は、文字入力のときの操作とは逆向きに軌跡をたどる操作によって、文字の削除というやはり入力とは逆の操作を行えるために、直感的に文字の削除を行うことができる。
なお、図15を用いて上述したように、例えば入力文字バッファ12に「KABUTO」と入力されている場合において、入力文字バッファ12の末尾に格納された「O」が削除されたとき、主制御部10は、入力文字バッファ12の状態に合わせて、例えば「カブT」のように、かな文字に変換されていない「T」をタッチパネル2に表示する。
このように、文字削除処理において入力文字バッファ12からかな文字を形成する母音のみが削除された後に再び文字入力判定処理を行う場合における主制御部10の処理について、(換言すれば、図10のステップS17の文字削除処理を終了した後に再びステップS13以降の処理を繰り返す場合における主制御部10の処理について)、図17を用いて説明する。
上述したように、文字削除処理において入力文字バッファ12に入力された文字が「KABUT」となっている場合、主制御部10は、入力文字バッファ12に格納された文字列に基づいた「カブT」を、タッチパネル2に表示する。入力文字バッファ12に格納された文字列がこのような状態である場合において再び図10におけるステップS13以降の処理を行うとき、主制御部10は、ステップS13として、タッチパネル2に対して行われた操作の検出結果を取得する。
そして、主制御部10は、ステップS13の処理の後に、ステップS14として再び文字入力判定処理を行う。さらに、主制御部10は、図12を用いて上述したときと同様に、タッチパネル2に対する操作に基づいて、入力文字バッファ12の末尾に文字を追加してゆく。
そして、上述した文字入力判定処理において、例えば図17に示すように、入力文字バッファ12の末尾に「A」が格納された場合、換言すれば、入力文字バッファ12に「KABUTA」という順番で文字が格納されている場合、主制御部10は、当該入力文字バッファ12内に格納された文字列に基づいた「カブタ」を、タッチパネル2に表示する。
つまり、文字削除処理において入力文字バッファ12の末尾の文字を削除することによって、タッチパネル2に表示したかな文字に対応した母音が入力文字バッファ12の末尾から削除された場合、主制御部10は、もし新たな母音が入力文字バッファ12の末尾に格納されたときには、当該新たな母音と既に入力文字バッファ12に格納されていた子音とで新たなかな文字を生成し、そして当該生成した文字をタッチパネル2に表示する。
(第2実施形態)
次に、上述した第1実施形態とは一部異なる、携帯電話端末の第2実施形態について説明する。第2実施形態における携帯電話端末1は、文字の削除のための操作を受け付ける場合に、タッチパネル2の表示するボタン近傍に、当該ボタンに対応付けられた表示文字を表す文字識別子をタッチパネル2に表示する点において、第1実施形態における携帯電話端末1と異なる。以下、図18および図19を用いて、携帯電話端末1について説明する。
上述したように、入力文字バッファ12に「KABUTO(カブト)」という順番で文字が格納されてダブルタップ操作がなされると、第2実施形態における主制御部10は、「KABUTO」を繋げた軌跡を、タッチパネル2に表示する。そして、主制御部10は、仮想ボタン4として表示した複数のボタンのうち、入力文字バッファ12に格納された文字に対応付けられたボタンの近傍に文字識別子を表示する。
文字識別子とは、ボタン近傍に表示される、当該ボタンが示すアルファベットの文字に対応したかな文字を表す識別子である。
例えば、図18のSt9に示すように、主制御部10は、「カブト(KABUTO)」の「カ」に対応付けられたボタンである「K」ボタンおよび「A」ボタンのうち、「A」ボタン近傍に「カ」を円で囲った文字識別子を表示する。また同様に、主制御部10は、「ブ」に対応付けられたボタンである「B」ボタンおよび「U」ボタンのうち、「U」ボタン近傍に「ブ」を円で囲った文字識別子を表示し、「ト」に対応付けられたボタンである「T」ボタンおよび「O」ボタンのうち、「O」ボタン近傍に「ト」を円で囲った文字識別子を表示する。つまり、主制御部10は、タッチパネル2に表示している表示文字(図18におけるタッチパネル2の紙面上部に表示されているカブトという文字)の母音を表すボタンの近傍に、前記表示文字を示す文字識別子(図18におけるタッチパネル2のボタン近傍に表示される円で囲われた文字)を表示する。
そして、第2実施形態においては、主制御部10は、文字識別子が近傍に表示されているボタンに対応する文字に対して削除処理が行われる場合、入力文字バッファ12内に格納された前記文字識別子に対応した文字全てを、入力文字バッファ12から削除する。
例えば、主制御部10は、「カブト」と表示している場合において、「ト」の文字識別子が近傍に表示されているボタンである「O」上で指の接触を検出したとき、図19に示すように、入力文字バッファ12内の「KABUTO」という文字列から「T」と「O」の2つの文字を削除する。そして、主制御部10は、「T」と「O」の2つの文字が削除された入力文字バッファ12「KABU」に基づいて、タッチパネル2に「カブ」と表示する。
換言すれば、主制御部10は、文字識別子「ト」が近傍に表示されたボタンに対応した文字「O」に対する削除の操作が、タッチパネル2に対して行われたことを検出した場合、タッチパネル2における「カブト」とい表示から「ト」を消去するとともに、入力文字バッファ12から「T」と「O」という「ト」に対応する全ての文字を削除する。
つまり、第1実施形態においては、例えば「ト」という表示を削除する場合には、入力文字バッファ12から「T」と「O」の両方が削除されていなければならなかったものの、第2実施形態においては、例えば「ト」という表示を削除する場合には、利用者は「O」に対応するボタンに対してのみを削除操作を行うだけで、携帯電話端末1に対して入力が行われていた文字の消去を行うことが出来る。
従って、携帯電話端末1の利用者は、自身の指によってタッチパネル2に表示された文字(カタカナの「ト」)に対応付けられた複数のボタン(「T」ボタンおよび「O」ボタン)の全てに触れなくとも、当該表示された文字をタッチパネル2の表示から削除出来るため、より迅速に文字削除を行うことが出来る。
また、ボタン近傍に文字識別子を表示する携帯電話端末1を利用することにより、携帯電話端末1の利用者は、文字削除処理中において、ボタンが表示されている近傍のみを視認するだけで、削除可能な文字を認識出来る。換言すれば、携帯電話端末1の利用者は、タッチパネル2によってボタンを操作する自身の指の周辺のみを見るだけで文字の削除を行うことが出来るため、利便性がよい。
(第3実施形態)
さらに、上述した第2実施形態とは一部異なる、携帯電話端末の第3実施形態について説明する。第3実施形態における携帯電話端末1は、ボタンに対応付けられた表示文字を表す文字識別子を、当該ボタン近傍であって且つ図14のステップS62において表示した軌跡上である箇所に表示する点において、第2実施形態と異なる。
つまり、図20のSt10に示すように、軌跡上であって且つ母音を示すボタン近傍に文字識別子を表示することにより、携帯電話端末1の利用者は、文字識別子を目指して指を動かすという直感的な操作によって、文字の削除を行うことが出来る。
以上、上述したこれら実施形態は、以下に述べるような実施形態であってもよい。例えば、主制御部10は、ダブルタップのかわりに、文字入力判定処理の後に、ボタン3A、ボタン3Bまたはボタン3Cのいずれかが操作されたことや、又は携帯電話端末1の側面に配されるサイドキーに対する操作を契機として、文字削除処理を開始してもよい。
また、主制御部10は、軌跡上に表示されているボタンに対応する文字のうち、特定の動作が検出された位置に表示されているボタンに対応する文字の削除を受け付けるようにしてもよい。具体的には、上述した実施形態においては、入力文字バッファ12の末尾に格納されていた文字と比較される文字は、ただ単に指の接触検出が行われたボタンに対応する文字であった。しかしながら、実施形態はこれに限られず、例えば、一回転の接触操作などの特定の動作が行われたボタンに対応付けられた文字のみを、主制御部10は、入力文字バッファ12の末尾に格納されていた文字と比較してもよい。換言すれば、主制御部10は、文字入力判定処理において入力文字バッファ12に格納すべきと判定した場合における指の接触操作のような、特定の動作を検出したときのみ入力文字バッファ12の末尾に格納されていた文字と、接触を検出したボタンに対応した文字とを比較してもよい。このように構成することにより、利用者が削除の意志があることを明らかにしつつ、削除処理を実行することができる。
また、上述した実施形態では、主制御部10は、上述した実施形態の図13のステップS62においては、主制御部10は、入力文字バッファ12内に格納された全ての文字を繋ぐ軌跡をタッチパネル2に表示することとしている。しかしながら、実施形態はこれに限られず、格納されている全ての文字を繋ぐ軌跡を表示せずに、入力文字バッファ12の末尾から所定数さかのぼった文字までを繋ぐ軌跡のみを表示するようにしてもよい。例えば、末尾の文字から2文字目までを繋ぐ軌跡を表示する場合、主制御部10は、上述した図7のSt8においては「KABUTO」の全ての文字を順番に繋ぐ軌跡をタッチパネル2に表示しているところを、「T」と「O」とを結ぶ軌跡のみを表示するようにしてもよい。この場合、末尾の文字の「O」が削除されると、「U」と「T」とを結ぶ軌跡がタッチパネル2に表示される。このように軌跡を表示することによって、タッチパネル2の表示が煩雑になることを防ぐことが可能になり、その結果、利用者の利便性が向上する。
また、上述した実施形態では、文字の削除のための操作を受け付ける場合に、入力文字バッファ12内に格納された文字に基づいて、文字入力時の指の移動の軌跡を表示することとしている。しかしながら、連続方式での文字入力が行われている最中に指の移動の軌跡をベクトルデータの集合等として記録しておき、文字の削除のための操作を受け付ける場合に、記録していた軌跡をタッチパネル2に表示することとしてもよい。
また、上述した実施形態では、文字の削除のための操作を受け付ける場合に、入力文字バッファ12内に格納された全ての文字に基づいて、文字入力時の指の移動の軌跡を表示することとしている。しかしながら、文字の削除のための操作を受け付ける場合に、入力文字バッファ12内に格納されている子音または母音に対応するボタンのみを格納順に結んだ線を軌跡として表示することとしてもよい。子音に対応するボタンのみを格納順に結んだ線を軌跡として表示する場合、軌跡を逆順に辿って接触されたボタンに対応する最も後ろに位置する子音に加えて、その子音の後続の母音も入力文字バッファ12から削除される。また、母音に対応するボタンのみを格納順に結んだ線を軌跡として表示する場合、軌跡を逆順に辿って接触されたボタンに対応する最後尾の母音に加えて、その母音の直前の子音も入力文字バッファ12から削除される。このように制御することにより、少ない操作量で文字を削除することが可能になる。
また、上述した実施形態では、連続方式等で入力された文字列そのものを文字削除処理の対象としている。しかしながら、連続方式等で入力された文字列に対して補正/補完処理を施して得られた文字列を文字削除処理の対象としてもよい。ここで、補正/補完処理とは、入力された文字列と類似する単語を辞書データ9Eと照合する等して取得し、入力された文字列が正しい単語となるように誤っている文字を補正したり、不足している文字を補完したりする処理である。
また、上述した実施形態では、表示した軌跡を末尾から逆方向に辿る動作に従って文字を削除することとしたが、軌跡を辿る動作の開始位置や方向にかかわらずに、辿られた部分に対応する部分を削除することとしてもよい。例えば、軌跡の途中部分を順方向に辿る操作が検出された場合に、辿られた部分に対応する部分を削除することとしてもよい。