(57)【特許請求の範囲】
【請求項１】
文字の入力操作に用いる入力キーを含むキー領域を表示する情報処理装置であって、
画面に表示される前記キー領域の表示範囲を示す情報が格納される記憶部と、
前記画面をタッチしている指示体の位置を検出する検出部と、
前記検出部が検出した位置の情報及び前記キー領域の表示範囲を示す情報に基づいて、前記入力キーをタッチした前記指示体が前記画面にタッチした状態で前記キー領域の外部に移動したかを判定し、当該指示体が前記キー領域の外部に移動した場合には当該指示体の移動軌跡に応じて前記キー領域の表示範囲を変更する制御部と
を有し、
前記制御部は、前記移動軌跡が円弧であるかを判定し、前記移動軌跡が円弧である場合には、当該円弧の中心点に基づいて設定した基準点から最も遠い位置に表示される前記入力キーと前記円弧との距離に基づいて前記キー領域の表示範囲を変更する
情報処理装置。
【請求項２】
文字の入力操作に用いる入力キーを含むキー領域を表示する情報処理装置であって、
画面に表示される前記キー領域の表示範囲を示す情報が格納される記憶部と、
前記画面をタッチしている指示体の位置を検出する検出部と、
前記検出部が検出した位置の情報及び前記キー領域の表示範囲を示す情報に基づいて、前記入力キーをタッチした前記指示体が前記画面にタッチした状態で前記キー領域の外部に移動したかを判定し、当該指示体が前記キー領域の外部に移動した場合には当該指示体の移動軌跡に応じて前記キー領域の表示範囲を変更する制御部と
を有し、
前記制御部は、移動方向が鋭角に変化する折り返し点が前記移動軌跡に含まれるかを判定し、少なくとも２つの前記折り返し点が含まれる場合に当該指示体の前記移動軌跡に応じて前記キー領域の表示範囲を変更する
情報処理装置。
【請求項３】
文字の入力操作に用いる入力キーを含むキー領域を表示する情報処理装置であって、
画面に表示される前記キー領域の表示範囲を示す情報が格納される記憶部と、
前記画面をタッチしている指示体の位置を検出する検出部と、
前記検出部が検出した位置の情報及び前記キー領域の表示範囲を示す情報に基づいて、前記入力キーをタッチした前記指示体が前記画面にタッチした状態で前記キー領域の外部に移動したかを判定し、当該指示体が前記キー領域の外部に移動した場合には当該指示体の移動軌跡に応じて前記キー領域の表示範囲を変更する制御部と
を有し、
前記制御部は、前記キー領域の表示範囲を変更する場合に、前記指示体が前記画面から離れた後に変更後の表示範囲で前記キー領域を表示し、前記指示体が前記画面から離れる前は前記移動軌跡に応じた変更後の表示範囲を示す情報を前記画面に表示する
情報処理装置。
【請求項４】
前記制御部は、前記入力キーにタッチした前記指示体が前記キー領域の外部に移動せずに前記画面から離れた場合、当該指示体について前記検出部が検出した位置の情報に基づいて当該指示体による入力操作に対応する文字を特定する
請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
文字の入力操作に用いる入力キーを含むキー領域の表示を制御するコンピュータに、
記憶部から、画面に表示される前記キー領域の表示範囲を示す情報を取得し、
前記画面をタッチしている指示体の位置を検出し、
検出した位置の情報及び前記キー領域の表示範囲を示す情報に基づいて、前記入力キーをタッチした前記指示体が前記画面にタッチした状態で前記キー領域の外部に移動したかを判定し、当該指示体が前記キー領域の外部に移動した場合には当該指示体の移動軌跡に応じて前記キー領域の表示範囲を変更する
処理を実行させ、
前記キー領域の表示範囲の変更では、前記移動軌跡が円弧であるかを判定し、前記移動軌跡が円弧である場合には、当該円弧の中心点に基づいて設定した基準点から最も遠い位置に表示される前記入力キーと前記円弧との距離に基づいて前記キー領域の表示範囲を変更する
プログラム。
【請求項６】
文字の入力操作に用いる入力キーを含むキー領域の表示を制御するコンピュータに、
記憶部から、画面に表示される前記キー領域の表示範囲を示す情報を取得し、
前記画面をタッチしている指示体の位置を検出し、
検出した位置の情報及び前記キー領域の表示範囲を示す情報に基づいて、前記入力キーをタッチした前記指示体が前記画面にタッチした状態で前記キー領域の外部に移動したかを判定し、当該指示体が前記キー領域の外部に移動した場合には当該指示体の移動軌跡に応じて前記キー領域の表示範囲を変更する
処理を実行させ、
前記キー領域の表示範囲の変更では、移動方向が鋭角に変化する折り返し点が前記移動軌跡に含まれるかを判定し、少なくとも２つの前記折り返し点が含まれる場合に当該指示体の前記移動軌跡に応じて前記キー領域の表示範囲を変更する
プログラム。
【請求項７】
文字の入力操作に用いる入力キーを含むキー領域の表示を制御するコンピュータに、
記憶部から、画面に表示される前記キー領域の表示範囲を示す情報を取得し、
前記画面をタッチしている指示体の位置を検出し、
検出した位置の情報及び前記キー領域の表示範囲を示す情報に基づいて、前記入力キーをタッチした前記指示体が前記画面にタッチした状態で前記キー領域の外部に移動したかを判定し、当該指示体が前記キー領域の外部に移動した場合には当該指示体の移動軌跡に応じて前記キー領域の表示範囲を変更する
処理を実行させ、
前記キー領域の表示範囲の変更では、前記キー領域の表示範囲を変更する場合に、前記指示体が前記画面から離れた後に変更後の表示範囲で前記キー領域を表示し、前記指示体が前記画面から離れる前は前記移動軌跡に応じた変更後の表示範囲を示す情報を前記画面に表示する
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、及びプログラムに関する。
【背景技術】
【０００２】
タッチパネルを搭載したタブレット端末やスマートフォンなどの情報端末が広く普及している。こうした情報端末は、文字の入力に用いる物理キーボードを搭載していないことが多い。そのため、ユーザは、情報端末の画面上に表示される仮想キーボード（所謂ソフトウェアキーボード）を利用して情報端末に文字を入力する。
【０００３】
小型の情報端末を利用するユーザは、情報端末を把持する手で仮想キーボードの入力キー（以下、仮想キー）にタッチして入力操作を行うことがある。そのため、片手で効率良く文字入力を行えるように様々な入力方式が提案されている。このような入力方式として、例えば、トグル入力やフリック入力などがある。
【０００４】
トグル入力は、１つの仮想キーに複数の文字が割り当てられており、続けてタッチした回数に応じて入力される文字を変えることができる入力方式である。フリック入力は、仮想キーにタッチした指を上下左右のいずれかにスライドさせることで、スライド方向に対応する文字を入力することができる入力方式である。
【０００５】
上記の入力方式を適用すれば、通常のキー配列（例えば、QWERTY配列）を有する仮想キーボードを利用する場合に比べて入力操作が容易になることもある。但し、情報端末を片手で持って操作する場合、入力操作のしやすさは操作する手の位置や大きさに依存する。仮想キーボードの位置や大きさが適切でなければ、上記の入力方式を採用しても快適に入力操作を行えないことがある。
【０００６】
仮想キーボードの表示を調整する方法に関し、ユーザによるキャリブレーションの指示を受け付け、特定の操作方法を示すメッセージを画面に表示し、そのメッセージに従って行われた入力操作に応じて仮想キーの配列を調整する技術が提案されている。また、仮想キーの入力精度に応じて表示する仮想キーの大きさを変える技術が提案されている。なお、仮想キーではなく、画面上に表示されているアイコン群を、円弧状にスライドさせた指の移動軌跡内に収まるように再配置する技術が提案されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１４−１７９８７７号公報
【特許文献２】特開２０１４−０２７５６１号公報
【特許文献３】特開２０１３−２２３０４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
入力操作がしやすい仮想キーボードの表示範囲は、情報端末を把持する手の位置や手の大きさに依存する。そのため、ユーザが事前に仮想キーボードの表示範囲を調整しておいても、後に仮想キーボードを利用するときには適切な表示範囲でない可能性がある。また、上述した技術のように、仮想キーボードを調整する指示を情報端末に入力し、特定の操作方法に従って調整操作を行うのでは手間がかかる。
【０００９】
スライドさせた指の移動軌跡内に収まるようにアイコン群を再配置する上記の技術を仮想キーボードの調整に適用した場合、アイコンに対する操作と仮想キーに対する操作との違いから誤操作のリスクが生じうる。例えば、仮想キーボードの調整を意図してユーザがスライドさせる指の動きが、フリック入力などの入力操作と誤判定されるリスクがある。そして、このような誤判定が生じないように指をスライドさせるのは容易でない。
【００１０】
１つの側面によれば、本開示の目的は、仮想キーによる入力操作の際に容易に仮想キーの表示範囲を変更することができる情報処理装置、及びプログラムを提供することにある。
【課題を解決するための手段】
【００１１】
一態様によれば、文字の入力操作に用いる入力キーを含むキー領域を表示する情報処理装置が提供される。当該情報処理装置は、画面に表示されるキー領域の表示範囲を示す情報が格納される記憶部と、画面をタッチしている指示体の位置を検出する検出部と、検出部が検出した位置の情報及びキー領域の表示範囲を示す情報に基づいて、入力キーをタッチした指示体が画面にタッチした状態でキー領域の外部に移動したかを判定し、当該指示体がキー領域の外部に移動した場合には当該指示体の移動軌跡に応じてキー領域の表示範囲を変更する制御部とを有する。制御部は、移動軌跡が円弧であるかを判定し、移動軌跡が円弧である場合には、当該円弧の中心点に基づいて設定した基準点から最も遠い位置に表示される入力キーと円弧との距離に基づいてキー領域の表示範囲を変更する。
また、一態様によれば、文字の入力操作に用いる入力キーを含むキー領域を表示する情報処理装置が提供される。当該情報処理装置は、画面に表示されるキー領域の表示範囲を示す情報が格納される記憶部と、画面をタッチしている指示体の位置を検出する検出部と、検出部が検出した位置の情報及びキー領域の表示範囲を示す情報に基づいて、入力キーをタッチした指示体が画面にタッチした状態でキー領域の外部に移動したかを判定し、当該指示体がキー領域の外部に移動した場合には当該指示体の移動軌跡に応じてキー領域の表示範囲を変更する制御部とを有する。制御部は、移動方向が鋭角に変化する折り返し点が移動軌跡に含まれるかを判定し、少なくとも２つの折り返し点が含まれる場合に当該指示体の移動軌跡に応じてキー領域の表示範囲を変更する。
また、一態様によれば、文字の入力操作に用いる入力キーを含むキー領域を表示する情報処理装置が提供される。当該情報処理装置は、画面に表示されるキー領域の表示範囲を示す情報が格納される記憶部と、画面をタッチしている指示体の位置を検出する検出部と、検出部が検出した位置の情報及びキー領域の表示範囲を示す情報に基づいて、入力キーをタッチした指示体が画面にタッチした状態でキー領域の外部に移動したかを判定し、当該指示体がキー領域の外部に移動した場合には当該指示体の移動軌跡に応じてキー領域の表示範囲を変更する制御部とを有する。制御部は、キー領域の表示範囲を変更する場合に、指示体が画面から離れた後に変更後の表示範囲でキー領域を表示し、指示体が画面から離れる前は移動軌跡に応じた変更後の表示範囲を示す情報を画面に表示する。
【発明の効果】
【００１２】
仮想キーによる入力操作の際に容易に仮想キーの表示範囲を変更することができる。
【図面の簡単な説明】
【００１３】
【図１】第１実施形態に係る情報処理装置の一例を示した図である。
【図２】第２実施形態に係る情報処理装置のハードウェアの一例を示した図である。
【図３】第２実施形態に係る情報処理装置が有する機能の一例を示したブロック図である。
【図４】第２実施形態に係るキー領域情報の一例を示した図である。
【図５】第２実施形態に係る軌跡データの一例を示した図である。
【図６】第２実施形態に係る調整操作の検出、最遠点の特定、フィードバック表示、キー領域の再表示について説明するための図である。
【図７】第２実施形態に係る情報処理装置が実行する処理の流れを示した第１のフロー図である。
【図８】第２実施形態に係る情報処理装置が実行する処理の流れを示した第２のフロー図である。
【図９】文字入力用の表示の一例を示した図である。
【図１０】キー領域対応表の一例を示した図である。
【図１１】入力文字対応表の一例を示した図である。
【図１２】第２実施形態の一変形例（変形例＃１）に係る円弧スクラッチジェスチャーについて説明するための図である。
【図１３】円弧の判定方法及び曲率の計算方法について説明するための図である。
【図１４】折り返し点の検出方法について説明するための図である。
【図１５】第２実施形態の一変形例（変形例＃１）に係る情報処理装置が実行する処理の流れを示した第１のフロー図である。
【図１６】第２実施形態の一変形例（変形例＃１）に係る情報処理装置が実行する処理の流れを示した第２のフロー図である。
【図１７】第２実施形態の一変形例（変形例＃１）に係る情報処理装置が実行する処理の流れを示した第３のフロー図である。
【図１８】第２実施形態の一変形例（変形例＃２）に係る情報処理装置の処理について説明するための図である。
【図１９】第２実施形態の一変形例（変形例＃３）に係る情報処理装置の処理について説明するための図である。
【図２０】第２実施形態の一変形例（変形例＃４）に係る情報処理装置の処理について説明するための図である。
【発明を実施するための形態】
【００１４】
以下に添付図面を参照しながら、本発明の実施形態について説明する。なお、本明細書及び図面において実質的に同一の機能を有する要素については、同一の符号を付することにより重複説明を省略する場合がある。
【００１５】
＜１．第１実施形態＞
図１を参照しながら、第１実施形態について説明する。図１は、第１実施形態に係る情報処理装置の一例を示した図である。なお、図１に例示した情報処理装置１０は、第１実施形態に係る情報処理装置の一例である。
【００１６】
第１実施形態は、仮想キーボード（ソフトウェアキーボード）を利用して文字を入力する際に、仮想キーボードの表示範囲をユーザが容易に変更できるようにする仕組みを提供する。この仕組みは、例えば、タッチパネルを搭載したタブレット端末やスマートフォンなどの情報端末に適用可能である。なお、適用可能なタッチパネルの検知方式は任意であり、例えば、静電容量式、光学式、感圧式などが適用可能である。
【００１７】
図１に示すように、情報処理装置１０は、表示部１１、記憶部１２、及び制御部１３を有する。表示部１１は、画面１１ａ及び検出部１１ｂを有する。画面１１ａは、テキストや画像などの情報を表示可能なディスプレイパネルである。また、画面１１ａは、ユーザの指やスタイラスペンなどの指示体２２が画面１１ａをタッチした場合に、指示体２２がタッチしている画面１１ａ上の位置（タッチ位置）を検知するタッチパネルを有する。検出部１１ｂは、タッチパネルの出力信号に基づいてタッチ位置を検出する。
【００１８】
記憶部１２は、ＲＡＭ（Random Access Memory）などの揮発性記憶装置、或いは、ＨＤＤ（Hard Disk Drive）やフラッシュメモリなどの不揮発性記憶装置である。検出部１１ｂは、例えば、プロセッサとメモリ等を含むＩＣ（Integrated Circuit）チップである。また、これに限られず、検出部１１ｂは、ＣＰＵ（Central Processing Unit）のＩＣチップに内蔵されていてもよい。制御部１３は、ＣＰＵやＤＳＰ（Digital Signal Processor）などのプロセッサである。但し、検出部１１ｂ及び制御部１３は、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）などであってもよい。検出部１１ｂ及び制御部１３は、例えば、記憶部１２又は他のメモリに記憶されたプログラムを実行する。
【００１９】
表示部１１は、図１（Ａ）に示すように、文字の入力操作に用いる複数の入力キーを含むキー領域２１を表示する。なお、複数の入力キーには、入力キー２１ａ、２１ｂが含まれる。キー領域２１は、仮想キーボードの表示領域である。画面１１ａに表示されるキー領域２１の表示範囲を示す情報は、記憶部１２に格納されている。例えば、キー領域２１の表示範囲は、画面１１ａの左下を原点とする座標系を基準として、キー領域２１の左下座標と右上座標との組み合わせで表現される。
【００２０】
検出部１１ｂは、画面１１ａをタッチしている指示体２２の位置を検出する。指示体２２が画面１１ａにタッチ後、画面１１ａから離れるまでに検出部１１ｂにより連続して検出されるタッチ位置の集合（軌跡データ）は指示体２２の移動軌跡を表す。なお、静電容量式のタッチパネルを採用している場合、検出部１１ｂは、指示体２２と画面１１ａとの間の距離に応じて変化する静電容量に基づいて、指示体２２が画面１１ａにタッチしたか、画面１１ａから離れたかを判定することができる。
【００２１】
制御部１３は、検出部１１ｂが連続して検出した位置の情報（軌跡データ）に基づいて、入力キー２１ａをタッチした指示体２２が画面１１ａにタッチした状態でキー領域２１の外部に移動したかを判定する。指示体２２がキー領域２１の外部に移動した場合、制御部１３は、指示体２２の移動軌跡２３に応じてキー領域２１の表示範囲を変更する。
【００２２】
なお、制御部１３は、移動軌跡２３のうち、キー領域２１の外部に位置する部分（逸脱軌跡）の長さが所定長より長いかを判定し、逸脱軌跡が所定長より長い場合にキー領域２１の表示範囲を変更してもよい。逸脱軌跡の長さを考慮することで、表示範囲の変更操作を意図せず、たまたまキー領域２１の外に指示体２２が移動した場合に、意図に反して表示範囲が変更されるリスクを抑制することができる。
【００２３】
（持ち手の判別について）
図１（Ａ）に示すように、情報処理装置１０を片手で把持し、指の関節を延ばした状態で親指（指示体２２の一例）をスライドさせる場合、親指が描く移動軌跡２３は親指の付け根付近を中心とする円弧に近い曲線となることが多い。そのため、制御部１３は、移動軌跡２３を円弧とみなして円弧の中心位置を求め、その中心位置に基づいて右手による操作か、左手による操作かを判定することができる。例えば、移動軌跡２３の右側に中心が位置する場合、制御部１３は、持ち手が右手であると判定する。
【００２４】
なお、変形例として、制御部１３は、移動軌跡２３の軌跡データとして収集されたタッチ位置の集合についてタッチ位置の平均を求め、画面１１ａの水平方向に関するタッチ位置の平均座標から持ち手の左右を判別してもよい。
【００２５】
例えば、画面１１ａの水平方向をＸ軸として、制御部１３は、タッチ位置のＸ座標を取得し、取得したＸ座標の平均値と、画面１１ａを２等分する中心のＸ座標（分割座標）とを比較する。そして、制御部１３は、平均値が画面１１ａの左寄りの場合に右手と判定し、右寄りの場合に左手と判定する。この変形例によれば、任意の移動軌跡２３について持ち手を容易に判別できる。
【００２６】
（表示範囲の決定方法について）
移動軌跡２３の形状が円弧とみなせる場合、制御部１３は、円弧の中心位置に基づいて基準点を設定し、基準点から最も遠い位置にある入力キー２１ｂを特定する。例えば、制御部１３は、円弧の中心位置又は該中心位置に最も近い画面の角部（図１の例では右下）を基準点に設定する。そして、制御部１３は、例えば、入力キー２１ｂが移動軌跡２３に乗るか、少なくとも移動軌跡２３の内側（中心位置の側）に入るようにキー領域２１の表示範囲を変更する。
【００２７】
例えば、制御部１３は、キー領域２１の縦横比を維持し、入力キー２１ｂが移動軌跡２３に乗るようにすると共に、キー領域２１の表示範囲が最大面積となるように該表示範囲を変更する。キー領域２１の表示範囲を変更した制御部１３は、変更後の表示範囲を示す情報（図１（Ｃ）参照）を記憶部１２に格納する。
【００２８】
なお、変形例として、制御部１３は、全てのタッチ位置がキー領域２１の表示範囲に含まれ、できる限りキー領域２１が大きく表示されるようにキー領域２１の表示範囲を変更してもよい。
【００２９】
例えば、制御部１３は、持ち手が右手の場合、最も左側にあるタッチ位置のＸ座標（画面１１ａの水平位置を示す座標）と、最も上側にあるタッチ位置のＹ座標（画面１１ａの垂直位置を示す座標）とを特定する。そして、制御部１３は、特定したＸ座標、Ｙ座標を有する点を基準点に設定し、表示範囲の左上端が基準点に一致し、かつ、画面１１ａにキー領域２１が収まる最大の範囲をキー領域２１の表示範囲に決定する。
【００３０】
持ち手が左手の場合も同様であるが、最も右側にあるタッチ位置のＸ座標が利用され、基準点が表示範囲の右上端に一致するように表示範囲が決定される点が異なる。上記の変形例によれば、任意の移動軌跡２３について適切な表示範囲を設定することができる。
【００３１】
以上説明したように、情報処理装置１０は、入力キー２１ａをタッチした指示体２２がキー領域２１の外までスライドした場合にキー領域２１の表示範囲を調整する操作であると認識し、移動軌跡２３に基づいて該表示範囲の調整を実施する。
【００３２】
そのため、動作モードの切り替え操作などの手間がかからず、キー領域２１の外に指示体２２をスライドさせるという簡単な操作で、キー領域２１の表示範囲を指示体２２が届く範囲に調整することができる。また、キー領域２１の外まで指示体２２がスライドしてから表示範囲が調整されるため、キー領域２１の表示範囲内で指示体２２をスライドさせて行う通常の文字入力操作と表示範囲の調整操作とが誤認識されるリスクを抑圧できる。
【００３３】
結果として、ユーザは、快適な入力環境で文字入力を行うことが可能になる。
以上、第１実施形態について説明した。
＜２．第２実施形態＞
次に、第２実施形態について説明する。
【００３４】
第２実施形態は、仮想キーボード（ソフトウェアキーボード）を利用して文字を入力する際に、仮想キーボードの表示範囲をユーザが容易に変更できるようにする仕組みを提供する。この仕組みは、例えば、タッチパネルを搭載したタブレット端末やスマートフォンなどの情報処理装置に適用可能である。なお、適用可能なタッチパネルの検知方式は任意であり、例えば、静電容量式、光学式、感圧式などが適用可能である。
【００３５】
［２−１．ハードウェア］
まず、図２を参照しながら、情報処理装置１００のハードウェアについて述べる。図２は、第２実施形態に係る情報処理装置のハードウェアの一例を示した図である。なお、情報処理装置１００は、第２実施形態に係る情報処理装置の一例である。
【００３６】
情報処理装置１００が有する機能は、例えば、図２に示すハードウェア資源を用いて実現することが可能である。つまり、情報処理装置１００が有する機能は、コンピュータプログラムを用いて図２に示すハードウェアを制御することにより実現される。
【００３７】
図２に示すように、このハードウェアは、主に、ＣＰＵ９０２と、ＲＯＭ（Read Only Memory）９０４と、ＲＡＭ９０６と、ホストバス９０８と、ブリッジ９１０とを有する。さらに、このハードウェアは、外部バス９１２と、インターフェース９１４と、入力部９１６と、出力部９１８と、記憶部９２０と、ドライブ９２２と、接続ポート９２４と、通信部９２６とを有する。
【００３８】
ＣＰＵ９０２は、例えば、演算処理装置又は制御装置として機能し、ＲＯＭ９０４、ＲＡＭ９０６、記憶部９２０、又はリムーバブル記録媒体９２８に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。ＲＯＭ９０４は、ＣＰＵ９０２に読み込まれるプログラムや演算に用いるデータなどを格納する記憶装置の一例である。ＲＡＭ９０６には、例えば、ＣＰＵ９０２に読み込まれるプログラムや、そのプログラムを実行する際に変化する各種パラメータなどが一時的又は永続的に格納される。
【００３９】
これらの要素は、例えば、高速なデータ伝送が可能なホストバス９０８を介して相互に接続される。一方、ホストバス９０８は、例えば、ブリッジ９１０を介して比較的データ伝送速度が低速な外部バス９１２に接続される。また、入力部９１６としては、例えば、タッチパネルなどが用いられる。
【００４０】
出力部９１８としては、例えば、ＬＣＤ（Liquid Crystal Display）やＥＬＤ（Electro-Luminescence Display）などのディスプレイ装置が用いられる。また、出力部９１８として、スピーカやヘッドホンなどのオーディオ出力装置などが用いられることもある。つまり、出力部９１８は、情報を視覚的又は聴覚的に出力することが可能な装置である。
【００４１】
記憶部９２０は、各種のデータを格納するための装置である。記憶部９２０としては、例えば、ＨＤＤなどの磁気記憶デバイスが用いられる。また、記憶部９２０として、ＳＳＤ（Solid State Drive）やＲＡＭディスクなどの半導体記憶デバイス、光記憶デバイス、又は光磁気記憶デバイスなどが用いられてもよい。
【００４２】
ドライブ９２２は、着脱可能な記録媒体であるリムーバブル記録媒体９２８に記録された情報を読み出し、又はリムーバブル記録媒体９２８に情報を書き込む装置である。リムーバブル記録媒体９２８としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどが用いられる。
【００４３】
接続ポート９２４は、例えば、ＵＳＢ（Universal Serial Bus）ポート、ＩＥＥＥ１３９４ポート、ＳＣＳＩ（Small Computer System Interface）、又は光オーディオ端子など、外部接続機器９３０を接続するためのポートである。外部接続機器９３０としては、例えば、外付けバッテリー、外付けスピーカ、又はテレビチューナなどが用いられる。
【００４４】
通信部９２６は、ネットワーク９３２に接続するための通信デバイスである。通信部９２６としては、例えば、有線又は無線ＬＡＮ（Local Area Network）用の通信回路、ＷＵＳＢ（Wireless USB）用の通信回路、光通信用の通信回路やルータ、携帯電話ネットワーク用の通信回路などが用いられる。通信部９２６に接続されるネットワーク９３２は、有線又は無線により接続されたネットワークであり、例えば、インターネット、ＬＡＮ、放送網などを含む。
【００４５】
以上、情報処理装置１００のハードウェアについて説明した。
［２−２．機能］
次に、図３を参照しながら、情報処理装置１００の機能について説明する。図３は、第２実施形態に係る情報処理装置が有する機能の一例を示したブロック図である。
【００４６】
図３に示すように、情報処理装置１００は、記憶部１０１、タッチ位置検出部１０２、調整操作検出部１０３、文字特定部１０４、キー領域調整部１０５、及びフィードバック表示部１０６を有する。
【００４７】
なお、記憶部１０１の機能は、上述したＲＡＭ９０６や記憶部９２０などを用いて実現できる。タッチ位置検出部１０２、調整操作検出部１０３、文字特定部１０４、キー領域調整部１０５、及びフィードバック表示部１０６の機能は、上述したＣＰＵ９０２などを用いて実現できる。
【００４８】
記憶部１０１には、キー領域情報１０１ａ、及び軌跡データ１０１ｂなどの情報が格納される。
キー領域情報１０１ａは、図４に示すように、表示画面２０１に表示される仮想キーボードの領域（キー領域２０２）が表示される表示範囲を示す情報である。図４は、第２実施形態に係るキー領域情報の一例を示した図である。例えば、キー領域情報１０１ａは、表示範囲の左下座標及び右上座標を含む。
【００４９】
なお、以下では、説明の都合上、表示画面２０１の水平方向をＸ方向、垂直方向をＹ方向、水平方向の座標をＸ座標、垂直方向の座標をＹ座標と呼ぶ場合がある。
軌跡データ１０１ｂは、図５に示すように、指示体２０４（例えば、指やスタイラスなど）がタッチした表示画面２０１上の位置（タッチ位置）を示す時系列データである。図５は、第２実施形態に係る軌跡データの一例を示した図である。図５の例は、軌跡データ１０１ｂとして、指示体２０４が表示画面２０１の上で移動軌跡２０３を描いた場合に時刻ｔ（ｔ＝０，…，ｎ−１）で検出されたタッチ位置の座標Ｐｔ［０］、…、Ｐｔ［ｎ−１］を示している。
【００５０】
タッチ位置検出部１０２は、タッチパネルから出力される信号に基づいてタッチ位置を検出する。例えば、静電容量式のタッチパネルは、表面に指示体２０４が近づいた際に指示体２０４と導電膜との間で生じる静電容量の変化を検知し、変化が生じた電極の位置から指示体２０４のタッチ位置を示す信号を出力する。タッチ位置検出部１０２は、タッチパネルの出力信号からタッチ位置を表示画面２０１上の座標Ｐｔを示す軌跡データ１０１ｂを生成し、生成した軌跡データ１０１ｂを記憶部１０１に格納する。
【００５１】
調整操作検出部１０３は、キー領域情報１０１ａ及び軌跡データ１０１ｂに基づいて、指示体２０４による操作が、キー領域２０２の表示範囲（サイズ・位置）を調整するための操作（調整操作）であるかを判定する。調整操作であると判定した場合、調整操作検出部１０３は、キー領域調整部１０５にキー領域２０２の調整を依頼する。一方、調整操作ではなく、仮想キーボードによる文字入力の操作であると判定した場合、調整操作検出部１０３は、文字特定部１０４に文字の特定を依頼する。
【００５２】
文字特定部１０４は、軌跡データ１０１ｂに基づいて指示体２０４がタッチした仮想キーを特定し、特定した仮想キーと指示体２０４の移動軌跡２０３とに基づいて文字を特定する。キー領域調整部１０５は、軌跡データ１０１ｂに基づいて持ち手の左右を特定すると共に、指示体２０４の移動軌跡２０３から、表示画面２０１の中で指示体２０４が容易に届くと推定される範囲を決定する。そして、キー領域調整部１０５は、決定した範囲にキー領域２０２が表示されるように調整した調整後の表示範囲を決定する。
【００５３】
フィードバック表示部１０６は、調整操作が検出された後、指示体２０４が表示画面２０１から離れるまで（タッチ位置が検出されなくなるまで）、調整後の表示範囲を表示画面２０１に表示する。例えば、フィードバック表示部１０６は、キー領域２０２の表示を変更せず、調整後の表示範囲を枠線で表示する。指示体２０４が表示画面２０１から離れた場合、キー領域調整部１０５は、調整後の表示範囲にキー領域２０２を再表示する（元の表示の消去・調整後の表示範囲への新たな表示）。
【００５４】
図６の例は、表示画面２０１をスライドする指示体２０４の移動軌跡２０３からタッチ位置の座標Ｐｔ［０］、…、Ｐｔ［ｎ−１］が得られた場合における調整操作の判定からキー領域２０２の再配置までの処理を示している。この例では、調整操作を判定する方法として、キー領域２０２の外に指示体２０４の移動軌跡２０３が逸脱した場合に調整操作が行われたと判定する方法が採用されている。なお、以下では、移動軌跡２０３の中でキー領域２０２の外にある部分を逸脱軌跡と呼ぶ場合がある。
【００５５】
図６は、第２実施形態に係る調整操作の検出、最遠点の特定、フィードバック表示、キー領域の再表示について説明するための図である。図６（Ａ）のような移動軌跡２０３の軌跡データ１０１ｂ（Ｐｔ［０］、…、Ｐｔ［ｎ−１］）が得られた場合、調整操作検出部１０３は、逸脱軌跡の座標Ｐｔ［ｍ］、…、Ｐｔ［ｎ−１］を検出できる。そのため、調整操作検出部１０３は、指示体２０４による操作が調整操作であると判定する。
【００５６】
なお、誤操作で指示体２０４がキー領域２０２の外へ出ることもある。そのため、調整操作検出部１０３は、逸脱軌跡の長さが予め設定した閾値（ＴｈＯ）より大きいかを判定し、閾値ＴｈＯより大きい場合に調整操作であると判定してもよい。このように逸脱軌跡の長さを考慮することで、ユーザが意図せずに行った操作が調整操作と誤判定されるリスクを低減することができる。
【００５７】
調整操作と判定された場合、キー領域調整部１０５は、図６（Ｂ）に示すように、軌跡データ１０１ｂに基づいて持ち手の左右を判定する。
例えば、キー領域調整部１０５は、軌跡データ１０１ｂの全座標についてＸ座標の平均値（点ＰｔＡのＸ座標）を計算し、計算した平均値が表示画面２０１のＸ方向の中央より左寄りであれば、持ち手が右手であると判定する。逆に、計算した平均値が表示画面２０１のＸ方向の中央より右寄りの場合、キー領域調整部１０５は、持ち手が左手であると判定する。
【００５８】
持ち手が右手である場合、キー領域調整部１０５は、Ｘ座標が最も左側にある点ＰｔＬのＸ座標（ＸＬ）を特定し、Ｙ座標が最も上側にある点ＰｔＵのＹ座標（ＹＵ）を特定する。また、キー領域調整部１０５は、キー領域２０２の表示範囲を決めるための基準点ＰｔＢ（ＸＬ，ＹＵ）を設定する。そして、キー領域調整部１０５は、基準点ＰｔＢに基づいて調整後の表示範囲を決定する。
【００５９】
例えば、キー領域調整部１０５は、調整後の表示範囲の左上端が基準点に一致し、キー領域２０２の縦横比を維持し、かつ、表示範囲の面積が最大となるように調整後の表示範囲を決定する。
【００６０】
なお、調整後の表示範囲を決定する方法は、この例に限定されない。例えば、キー領域２０２の縦横比を無視し、表示範囲の面積が表示画面２０１内で最大化されるように調整後の表示範囲が決定されてもよい。
【００６１】
調整後の表示範囲が決定されると、フィードバック表示部１０６は、図６（Ｃ）に示すように、調整後の表示範囲を表示画面２０１に表示する（フィードバック表示）。
なお、説明の都合上、図中では調整前のキー領域２０２を枠線で記載しているが、調整前のキー領域２０２の表示を変えず、フィードバック表示を枠線などの簡易的な表示方法で表示してもよい。指示体２０４が表示画面２０１から離れると、調整操作検出部１０３は、図６（Ｄ）に示すように、調整後の表示範囲でキー領域２０２を表示画面２０１に再表示する。
【００６２】
以上、情報処理装置１００の機能について説明した。
［２−３．処理の流れ］
次に、図７及び図８を参照しながら、情報処理装置１００が実行する処理の流れについて説明する。図７は、第２実施形態に係る情報処理装置が実行する処理の流れを示した第１のフロー図である。図８は、第２実施形態に係る情報処理装置が実行する処理の流れを示した第２のフロー図である。
【００６３】
（Ｓ１０１）タッチ位置検出部１０２は、指示体２０４が表示画面２０１にタッチした場合に、そのタッチ位置がキー領域２０２内であるか否かを判定する。つまり、タッチ位置検出部１０２は、キー領域２０２へのタッチを検出する。キー領域２０２へのタッチが検出された場合、処理はＳ１０２へと進む。一方、キー領域２０２へのタッチが検出されていない場合、処理はＳ１０１へ戻る。
【００６４】
（Ｓ１０２）タッチ位置検出部１０２は、検出されたタッチ位置のデータを軌跡データ１０１ｂとして記憶部１０１に記録する。タッチ位置検出部１０２は、指示体２０４による表示画面２０１への最初のタッチを操作の開始（開始イベント）と判断し、連続的に検出されるタッチ位置のデータを時系列で軌跡データ１０１ｂに追加する。
【００６５】
（Ｓ１０３）調整操作検出部１０３は、軌跡データ１０１ｂを参照し、キー領域２０２外のタッチ位置があるか否かを判定する。つまり、調整操作検出部１０３は、軌跡データ１０１ｂに基づいて逸脱軌跡（図６参照）の存否を判定する。キー領域２０２外のタッチ位置がある場合、処理はＳ１１１へと進む。一方、キー領域２０２外のタッチ位置がない場合、処理はＳ１０４へと進む。
【００６６】
（Ｓ１０４）文字特定部１０４は、タッチ位置に応じた文字入力用の表示を表示画面２０１に表示する。例えば、情報処理装置１００がフリック操作による文字入力を受け付ける場合、図９に示すように、指示体２０４のタッチ位置及びスライド方向に応じて文字入力をサポートする表示が表示画面２０１に示される。図９は、文字入力用の表示の一例を示した図である。
【００６７】
図９の例は、文字「た」が割り当てられた入力キー２０５を指示体２０４がタッチし、指示体２０４が上下左右にスライドした場合に表示される候補キー２０５ａ、…、２０５ｄを示している。例えば、指示体２０４が上方向にスライドした場合、文字「つ」に対応する候補キー２０５ａが表示される。なお、候補キー２０５ａが表示された状態で指示体２０４が表示画面２０１から離れると文字「つ」が入力される。他の候補キー２０５ｂ、…、２０５ｄについても同様である。
【００６８】
（Ｓ１０５）文字特定部１０４は、指示体２０４が表示画面２０１から離れたか否かを判定する。指示体２０４が表示画面２０１から離れた場合、処理はＳ１０６へと進む。一方、指示体２０４が表示画面２０１から離れていない場合、処理はＳ１０２へと進む。
【００６９】
（Ｓ１０６）文字特定部１０４は、指示体２０４の移動軌跡２０３が予め設定された閾値ＴｈＦ１より短いか否かを判定する。閾値ＴｈＦ１は、例えば、入力キー２０５の幅と同じ長さ、或いは、その長さを基準に許容可能なマージンを考慮した長さに設定される。移動軌跡２０３が閾値ＴｈＦ１より短い場合、処理はＳ１０７へと進む。一方、移動軌跡２０３が閾値ＴｈＦ１より短くない場合、処理はＳ１０８へと進む。
【００７０】
（Ｓ１０７）文字特定部１０４は、指示体２０４による操作をプッシュ操作と判定する。プッシュ操作は、入力キー２０５を押下する操作である。なお、この操作はタップ操作と呼ばれることもある。ここで、文字特定部１０４は、フリック表番号（図１１参照）をプッシュ操作に対応する「０」に設定する。なお、フリック表番号は、入力キー２０５にタッチした指示体２０４のスライド方向（フリック方向）を特定するための番号である。但し、スライドしない操作（プッシュ操作）にもフリック表番号「０」が割り当てられている。Ｓ１０７の処理が完了すると、処理はＳ１１０へと進む。
【００７１】
（Ｓ１０８）文字特定部１０４は、指示体２０４の移動軌跡２０３が予め設定された閾値ＴｈＦ２より短いか否かを判定する。閾値ＴｈＦ２は、閾値ＴｈＦ１より大きい値に設定される。また、閾値ＴｈＦ２は、例えば、入力キー２０５の幅を２倍した長さ、或いは、その長さを基準に許容可能なマージンを考慮した長さに設定される。移動軌跡２０３が閾値ＴｈＦ２より短い場合、処理はＳ１０９へと進む。一方、移動軌跡２０３が閾値ＴｈＦ２より短くない場合、図７及び図８に示した一連の処理は終了する。
【００７２】
ここで、閾値ＴｈＦ１、ＴｈＦ２について説明を補足する。
フリック操作では、指示体２０４が入力キー２０５にタッチし、スライドさせずに表示画面２０１から離れた場合、入力キー２０５に割り当てられた文字が入力される。この操作が上記のプッシュ操作であり、図９の例では文字「た」が入力される。
【００７３】
ユーザが文字入力を行う際、入力キー２０５にタッチした指示体２０４を全く動かさずに表示画面２０１から離すことは現実的にはなく、僅かに指示体２０４の移動が検出される。そこで、このような微妙な指示体２０４の動きを許容するために閾値ＴｈＦ１を設定し、文字特定部１０４が上記のＳ１０７のようにしてプッシュ操作を判定する。
【００７４】
一方、フリック操作は入力キー２０５の周辺に指示体２０４をスライドさせて行う操作である（図９参照）。そのため、隣接する複数の入力キー２０５を超えて遠くに指示体２０４がスライドした場合には、フリック操作とは異なる操作、又はフリック操作のキャンセルなどをユーザが意図していると判断しうる。そのため、フリック操作であることを判断するために閾値ＴｈＦ２を設定し、文字特定部１０４は上記のＳ１０８のようにしてフリック操作を判定する。
【００７５】
（Ｓ１０９）文字特定部１０４は、フリック方向に応じてフリック表番号を特定する。例えば、左方向へのスライドにフリック表番号「１」、上方向へのスライドにフリック表番号「２」、右方向へのスライドにフリック表番号「３」、下方向へのスライドにフリック表番号「４」が予め割り当てられている。そのため、文字特定部１０４は、軌跡データ１０１ｂを参照してフリック方向を検出し、検出したフリック方向に対応するフリック表番号を特定することができる。
【００７６】
（Ｓ１１０）文字特定部１０４は、入力キー２０５の位置と、その入力キー２０５に割り当てられた文字を特定するために用いる子音番号とを対応付けるキー領域対応表（図１０参照）を参照し、最初のタッチ位置に対応する子音番号を特定する。図１０は、キー領域対応表の一例を示した図である。
【００７７】
キー領域対応表は、図１０に示すように、個々の入力キー２０５の表示範囲（左下座標、右上座標）と子音番号とを対応付ける。入力キー２０５の表示範囲は、キー領域２０２の左下端を原点とする座標系で、入力キー２０５の左下座標及び右上座標により表現できる。但し、キー領域２０２の表示範囲が変わる際に入力キー２０５のサイズも変更されるため、キー幅Ｗ及びキー高さＨを用いて入力キー２０５の表示範囲が表現されている。文字特定部１０４は、キー領域情報１０１ａとキー領域対応表とを組み合わせることで、タッチされた入力キー２０５の子音番号を特定することができる。
【００７８】
また、文字特定部１０４は、子音番号とフリック表番号との組み合わせと、入力文字とを対応付ける入力文字対応表（図１１参照）を参照し、フリック操作に対応する入力文字を決定する。図１１は、入力文字対応表の一例を示した図である。Ｓ１０７又はＳ１０９でフリック表番号を特定し、Ｓ１１０で子音番号を特定しているため、文字特定部１０４は、これら特定した番号の組み合わせに対応する文字を入力文字とする。Ｓ１１０の処理が完了すると、図７及び図８に示した一連の処理は終了する。
【００７９】
（Ｓ１１１）調整操作検出部１０３は、キー領域２０２外の移動軌跡２０３（逸脱軌跡）の長さを計算する。
（Ｓ１１２）調整操作検出部１０３は、逸脱軌跡が予め設定された閾値ＴｈＯより長いか否かを判定する。閾値ＴｈＯは任意に設定することができる。例えば、閾値ＴｈＯは、入力キー２０５の幅のＮ倍（Ｎは２以上の数）、或いは、入力キー２０５の中心から候補キー２０５ａ（図９参照）の上端までの長さより大きな値などに設定されうる。逸脱軌跡が閾値ＴｈＯより長い場合、処理はＳ１１３へと進む。一方、逸脱軌跡が閾値ＴｈＯより長くない場合、処理はＳ１０２へと進む。
【００８０】
（Ｓ１１３）キー領域調整部１０５は、軌跡データ１０１ｂのＸ座標平均から持ち手の左右を判定する。
例えば、キー領域調整部１０５は、図６（Ｂ）に示すように、軌跡データ１０１ｂの全座標についてＸ座標の平均値（Ｘ座標平均：点ＰｔＡのＸ座標）を計算し、Ｘ座標平均が表示画面２０１のＸ方向の中央より左寄りであれば、持ち手が右手であると判定する。一方、Ｘ座標平均が表示画面２０１のＸ方向の中央より右寄りの場合、キー領域調整部１０５は、持ち手が左手であると判定する。
【００８１】
（Ｓ１１４）持ち手が右手である場合、処理はＳ１１５へと進む。一方、持ち手が左手である場合、処理はＳ１１６へと進む。
（Ｓ１１５）キー領域調整部１０５は、移動軌跡の左端・上端の座標に基づいて基準点（キー領域２０２の左上端）を計算する。
【００８２】
例えば、キー領域調整部１０５は、軌跡データ１０１ｂのＸ座標を参照し、表示画面２０１の最も左側に位置するタッチ位置のＸ座標（ＸＬ）を検出する。また、キー領域調整部１０５は、軌跡データ１０１ｂのＹ座標を参照し、表示画面２０１の最も上側に位置するタッチ位置のＹ座標（ＹＵ）を検出する。そして、キー領域調整部１０５は、検出したＸ座標ＸＬ及びＹ座標ＹＵに対応する座標（ＸＬ，ＹＵ）を基準点とする。
【００８３】
Ｓ１１５の処理が完了すると、処理はＳ１１７へと進む。
（Ｓ１１６）キー領域調整部１０５は、移動軌跡の右端・上端の座標に基づいて基準点（キー領域２０２の右上端）を計算する。
【００８４】
例えば、キー領域調整部１０５は、軌跡データ１０１ｂのＸ座標を参照し、表示画面２０１の最も右側に位置するタッチ位置のＸ座標（ＸＲ）を検出する。また、キー領域調整部１０５は、軌跡データ１０１ｂのＹ座標を参照し、表示画面２０１の最も上側に位置するタッチ位置のＹ座標（ＹＵ）を検出する。そして、キー領域調整部１０５は、検出したＸ座標ＸＲ及びＹ座標ＹＵに対応する座標（ＸＲ，ＹＵ）を基準点とする。
【００８５】
（Ｓ１１７）キー領域調整部１０５は、基準点に基づいて調整後のキー領域２０２（表示領域）を計算する。
例えば、持ち手が右手の場合、キー領域調整部１０５は、調整後の表示範囲の左上端が基準点に一致し、キー領域２０２の縦横比を維持し、かつ、表示範囲の面積が最大となるように調整後の表示範囲を決定する。持ち手が左手の場合、キー領域調整部１０５は、調整後の表示範囲の右上端が基準点に一致し、キー領域２０２の縦横比を維持し、かつ、表示範囲の面積が最大となるように調整後の表示範囲を決定する。
【００８６】
なお、調整後の表示範囲を決定する方法は、上記の例に限定されない。例えば、キー領域２０２の縦横比を無視し、表示範囲の面積が表示画面２０１内で最大化されるように調整後の表示範囲が決定されてもよい。
【００８７】
フィードバック表示部１０６は、キー領域調整部１０５が計算した調整後の表示領域を表示画面２０１に表示する（フィードバック表示）。
（Ｓ１１８）キー領域調整部１０５は、指示体２０４が表示画面２０１から離れたか否かを判定する。指示体２０４が表示画面２０１から離れた場合、処理はＳ１１９へと進む。一方、指示体２０４が表示画面２０１から離れていない場合、処理はＳ１０２へと進む。
【００８８】
（Ｓ１１９）キー領域調整部１０５は、最後に計算したキー領域２０２の計算結果（調整後の表示範囲）に基づいてサイズ及び位置を調整したキー領域２０２を表示画面２０１に表示する。Ｓ１１９の処理が完了すると、図７及び図８に示した一連の処理は終了する。
【００８９】
以上、情報処理装置１００が実行する処理の流れについて説明した。
上記のように、逸脱軌跡に基づいて調整操作を判別することで、フリック操作などの文字入力操作が意図せず調整操作と判定されるリスクを回避することが可能になる。また、文字入力中にキー領域２０２の外に指示体２０４を移動させるだけで調整操作を行えるため、動作モードの切り替えなどの手間がかからず、ユーザは、容易にキー領域２０２の表示範囲を調整することができる。その結果、ユーザは、快適な環境で文字入力を行えるようになる。
【００９０】
［２−４．変形例：領域判定＆円弧スクラッチジェスチャー］
ここで、第２実施形態の変形例について述べる。以下で説明する変形例は、キー領域２０２を調整する際にユーザが行う操作を特定のジェスチャー（円弧スクラッチジェスチャー）に限定し、他の操作（通常の文字入力操作など）が調整操作と誤認識されるリスクを更に低減する仕組みを提供する。
【００９１】
（変形例＃１：円弧スクラッチジェスチャー）
まず、図１２を参照しながら、第２実施形態の一変形例（変形例＃１）に係る円弧スクラッチジェスチャーについて説明する。
【００９２】
図１２は、第２実施形態の一変形例（変形例＃１）に係る円弧スクラッチジェスチャーについて説明するための図である。
ユーザが情報処理装置１００を右手で把持し、親指を指示体２０４として情報処理装置１００を操作する場合、図１２に示すように、指示体２０４が届く範囲は、おおよそ指示体２０４が描く円弧の内側に限られる。キー領域２０２の表示範囲が大きく、指示体２０４が届く範囲の外にある入力キー２０５をタッチする場合、ユーザは、情報処理装置１００を把持する手の位置を移動させるか、情報処理装置１００を把持していない左手で入力キー２０５をタッチすることになる。
【００９３】
情報処理装置１００を把持している指示体２０４が描く円弧の内側にキー領域２０２が収まるようにキー領域２０２の表示範囲を調整すれば、ユーザは、情報処理装置１００を把持する手の位置を移動させずに片手で入力キー２０５をタッチできる。そこで、変形例＃１は、円弧を描くように指示体２０４をスライドさせるジェスチャーに応じて、指示体２０４が描く円弧を基準にキー領域２０２の表示範囲を調整する仕組みを提供する。
【００９４】
但し、フリック操作（図９参照）などの際に指示体２０４が描く移動軌跡も円弧となることがあるため、変形例＃１は、このような通常の入力操作が表示範囲の調整操作と誤判定されるリスクを低減できる円弧スクラッチジェスチャーを提案する。
【００９５】
円弧スクラッチジェスチャーは、図１２に示すように、指示体２０４の進行方向を変えて複数の円弧を描くようにスライドさせるジェスチャーである。言い換えると、円弧スクラッチジェスチャーは、複数の折り返し点３０２ａ、３０２ｂを含む移動軌跡３０１を描くように指示体２０４をスライドさせるジェスチャーである。
【００９６】
なお、指示体２０４が描く移動軌跡は正確な円弧とはならないため、情報処理装置１００（調整操作検出部１０３）は、図１３のような方法で、移動軌跡が円弧とみなせるか否かを判定する。図１３は、円弧の判定方法及び曲率の計算方法について説明するための図である。
【００９７】
例えば、移動軌跡３０１上のタッチ位置の座標Ｐｔ［ｋ］、…、Ｐｔ［ｋ＋４］が得られている場合、調整操作検出部１０３は、連続する３つの座標Ｐｔ［ｊ］、Ｐｔ［ｊ＋１］、Ｐｔ［ｊ＋２］（ｊ＝ｋ，…，ｋ＋２）を選択する。次いで、調整操作検出部１０３は、選択した３つの座標Ｐｔ［ｊ］、Ｐｔ［ｊ＋１］、Ｐｔ［ｊ＋２］を通る円弧の中心位置（Ｐｃ１、Ｐｃ２、Ｐｃ３）を計算する。
【００９８】
例えば、Ｐｔ［ｊ］の座標が（Ｘ１，Ｙ１）、Ｐｔ［ｊ＋１］の座標が（Ｘ２，Ｙ２）、Ｐｔ［ｊ＋２］の座標が（Ｘ３，Ｙ３）である場合、調整操作検出部１０３は、下記の式（１）に各座標を代入してａ、ｂ、ｃを未知数とする連立方程式を得る。そして、調整操作検出部１０３は、その連立方程式を解くことでａ、ｂ、ｃを求め、下記の式（２）に示す中心位置の座標（Ａ，Ｂ）を得る。なお、円弧の半径Ｒは下記の式（３）で与えられる。
【００９９】
【数１】
0006631329.tif 000002
【０１００】
そして、調整操作検出部１０３は、計算した中心位置（Ｐｃ１、Ｐｃ２、Ｐｃ３）の集合が許容範囲に収まるか否かを判定する。中心位置の集合が許容範囲に収まった場合、調整操作検出部１０３は、座標Ｐｔ［ｋ］、…、Ｐｔ［ｋ＋４］を通る移動軌跡が円弧であると判定する。なお、調整操作検出部１０３は、移動軌跡３０１（図１２参照）の始点と折り返し点３０２ａとを結ぶ移動軌跡、及び２つの折り返し点３０２ａ、３０２ｂを結ぶ移動軌跡が円弧であるか否かを判定する。
【０１０１】
折り返し点３０２ａ、３０２ｂの検出は、例えば、図１４に示すような方法で行うことができる。図１４は、折り返し点の検出方法について説明するための図である。例えば、移動軌跡３０１上のタッチ位置の座標Ｐｔ［ｎ−３］、…、Ｐｔ［ｎ＋２］が得られている場合、調整操作検出部１０３は、連続する３つの座標Ｐｔ［ｊ−１］、Ｐｔ［ｊ］、Ｐｔ［ｊ＋１］（ｊ＝ｎ−２，…，ｎ＋１）を選択する。
【０１０２】
次いで、調整操作検出部１０３は、座標Ｐｔ［ｊ−１］、Ｐｔ［ｊ］を結ぶ線分と、座標Ｐｔ［ｊ］、Ｐｔ［ｊ＋１］を結ぶ線分とがなす角の角度Δｐ［ｊ］を計算する。例えば、角度Δｐ［ｊ］は、下記の式（４）で与えられる。但し、ｖj,j-1は、Ｐｔ［ｊ−１］からＰｔ［ｊ］へ向かうベクトルを表す。ｖj+1,jは、Ｐｔ［ｊ］からＰｔ［ｊ＋１］へ向かうベクトルを表す。調整操作検出部１０３は、角度Δｐ［ｊ］がπ／２より小さい場合（鋭角の場合）、座標Ｐｔ［ｎ］が折り返し点であると判定する。図１４の例では、座標Ｐｔ［ｎ］が折り返し点３０２ａとなる。
【０１０３】
【数２】
0006631329.tif 000003
【０１０４】
調整操作検出部１０３は、移動軌跡３０１が複数の折り返し点を含み、始点と折り返し点とを結ぶ移動軌跡、及び折り返し点間を結ぶ移動軌跡のうち、複数の移動軌跡が円弧の場合に円弧スクラッチジェスチャーと判定する。
【０１０５】
但し、指示体２０４が小刻みに動いた場合などに円弧スクラッチジェスチャーと誤判定されるリスクを回避するため、調整操作検出部１０３は、逸脱軌跡（図６参照）の存在及び円弧の長さを判定に用いる。例えば、調整操作検出部１０３は、キー領域２０２をタッチした指示体２０４が描く移動軌跡３０１がキー領域２０２を逸脱し、折り返し点に接続する移動軌跡の長さが予め設定した閾値ＴｈＬより長い円弧を複数含む場合に円弧スクラッチジェスチャーと判定する。
【０１０６】
キー領域調整部１０５は、円弧スクラッチジェスチャーと判定された移動軌跡３０１に基づいてキー領域２０２の表示範囲を調整する。例えば、キー領域調整部１０５は、移動軌跡３０１に含まれる各円弧の中心点に基づいて持ち手の左右を判定する。次いで、キー領域調整部１０５は、中心点の平均位置（基準点）から最も遠い移動軌跡３０１上の点（最遠点）を特定し、基準点及び最遠点に基づいて調整後の表示範囲を設定する。
【０１０７】
上記のように、変形例＃１は、円弧スクラッチジェスチャーを利用してキー領域２０２の表示範囲を調整できるようにする仕組みを提供する。以下、図１５〜図１７を参照しながら、変形例＃１に係る情報処理装置１００が実行する処理の流れについて説明する。
【０１０８】
図１５は、第２実施形態の一変形例（変形例＃１）に係る情報処理装置が実行する処理の流れを示した第１のフロー図である。図１６は、第２実施形態の一変形例（変形例＃１）に係る情報処理装置が実行する処理の流れを示した第２のフロー図である。図１７は、第２実施形態の一変形例（変形例＃１）に係る情報処理装置が実行する処理の流れを示した第３のフロー図である。
【０１０９】
（Ｓ２０１）タッチ位置検出部１０２は、指示体２０４が表示画面２０１にタッチした場合に、そのタッチ位置がキー領域２０２内であるか否かを判定する。つまり、タッチ位置検出部１０２は、キー領域２０２へのタッチを検出する。キー領域２０２へのタッチが検出された場合、処理はＳ２０２へと進む。一方、キー領域２０２へのタッチが検出されていない場合、処理はＳ２０１へ戻る。
【０１１０】
（Ｓ２０２）タッチ位置検出部１０２は、検出されたタッチ位置のデータを軌跡データ１０１ｂとして記憶部１０１に記録する。タッチ位置検出部１０２は、指示体２０４による表示画面２０１への最初のタッチを操作の開始（開始イベント）と判断し、連続的に検出されるタッチ位置のデータを時系列で軌跡データ１０１ｂに追加する。
【０１１１】
（Ｓ２０３）調整操作検出部１０３は、軌跡データ１０１ｂを参照し、キー領域２０２外のタッチ位置があるか否かを判定する。つまり、調整操作検出部１０３は、軌跡データ１０１ｂに基づいて逸脱軌跡（図６参照）の存否を判定する。キー領域２０２外のタッチ位置がある場合、処理はＳ２０７へと進む。一方、キー領域２０２外のタッチ位置がない場合、処理はＳ２０４へと進む。
【０１１２】
（Ｓ２０４）文字特定部１０４は、タッチ位置に応じた文字入力用の表示を表示画面２０１に表示する。例えば、情報処理装置１００がフリック操作による文字入力を受け付ける場合、図９に示すように、指示体２０４のタッチ位置及びスライド方向に応じて文字入力をサポートする表示が表示画面２０１に示される。
【０１１３】
（Ｓ２０５）文字特定部１０４は、指示体２０４が表示画面２０１から離れたか否かを判定する。指示体２０４が表示画面２０１から離れた場合、処理はＳ２０６へと進む。一方、指示体２０４が表示画面２０１から離れていない場合、処理はＳ２０２へと進む。
【０１１４】
（Ｓ２０６）文字特定部１０４は、上述したＳ１０６〜Ｓ１１０と同じ方法を用い、タッチ位置に基づいて文字を特定する。つまり、文字特定部１０４は、プッシュ操作と、フリック操作と、その他の操作とを判別し、操作内容に応じたフリック表番号を特定し、キー領域対応表（図１０参照）及び入力文字対応表（図１１参照）に基づいて入力文字を特定する。Ｓ２０６の処理が完了すると、図１５〜図１７に示した一連の処理は終了する。
【０１１５】
（Ｓ２０７）調整操作検出部１０３は、軌跡データ１０１ｂを参照し、折り返し点を探索する。例えば、調整操作検出部１０３は、連続するタッチ位置の座標を３つ選択し、上記の式（１）に基づいて、連続する座標同士を結ぶ２つの線分がなす角の角度（図１４（Ｂ）参照）を計算する。そして、調整操作検出部１０３は、計算した角度がπ／２より小さい場合、角に位置する座標が折り返し点であると判定する。調整操作検出部１０３は、軌跡データ１０１ｂに含まれる各座標について判定を行い、折り返し点を探索する。
【０１１６】
（Ｓ２０８）調整操作検出部１０３は、折り返し点が検出されたか否かを判定する。折り返し点が検出された場合、処理はＳ２０９へと進む。一方、折り返し点が検出されていない場合、処理はＳ２０２へと進む。
【０１１７】
（Ｓ２０９）調整操作検出部１０３は、移動軌跡３０１の始点から折り返し点までの区間、及び折り返し点の間の区間を抽出する。図１２の例では、移動軌跡３０１の始点から折り返し点３０２ａまでの区間、及び折り返し点３０２ａ、３０２ｂの間の区間が抽出される。次いで、調整操作検出部１０３は、図１３に示した方法で、抽出した区間がそれぞれ円弧であるか否かを判定する。そして、調整操作検出部１０３は、円弧をなす区間（円弧とみなせる区間）を特定する。
【０１１８】
（Ｓ２１０）調整操作検出部１０３は、Ｓ２０９で特定した区間のうち、区間の長さが閾値ＴｈＬより大きい区間（円弧）を抽出する。閾値ＴｈＬは、例えば、フリック操作などの通常の入力操作で指示体２０４が移動しうる最大距離又は入力キー２０５の幅（入力キー２０５の幅の２倍など）に基づいて設定される。
【０１１９】
（Ｓ２１１）調整操作検出部１０３は、Ｓ２１０で抽出された円弧の数が閾値ＴｈＮより大きいか否かを判定する。閾値ＴｈＮは、２以上の数（例えば、３）に設定される。円弧の数が閾値ＴｈＮより大きい場合、処理はＳ２１２へと進む。一方、円弧の数が閾値ＴｈＮより大きくない場合、処理はＳ２０２へと進む。
【０１２０】
（Ｓ２１２）キー領域調整部１０５は、Ｓ２１０で抽出された各円弧の中央座標を計算する。中央座標は、個々の円弧をなす全てのタッチ位置の中央に位置する座標である。キー領域調整部１０５は、各円弧について計算した中央座標の平均（平均座標）を求め、平均座標の位置から持ち手の左右を判別する。例えば、キー領域調整部１０５は、平均座標が表示画面２０１の中央より左寄りの場合に持ち手が右手であると判断し、平均座標が表示画面２０１の中央より右寄りの場合に持ち手が左手であると判断する。
【０１２１】
（Ｓ２１３）キー領域調整部１０５は、Ｓ２１０で抽出された各円弧の中心点を計算する。例えば、キー領域調整部１０５は、個々の円弧をなすタッチ位置の座標を３つ選択し、選択した３つの座標を通る円の中心点を計算する。なお、キー領域調整部１０５は、図１３に示した方法で３つの座標点の集合毎に中心点を計算し、計算した中心点の平均座標を円弧の中心点としてもよい。中心点の座標は上記の式（１）及び式（２）に基づいて計算される。キー領域調整部１０５は、各円弧について計算した中心点の平均位置を求め、その平均位置を基準点に設定する。
【０１２２】
（Ｓ２１４）キー領域調整部１０５は、Ｓ２１３で設定した基準点から最も遠い円弧上の点（最遠点）を特定する。
（Ｓ２１５）キー領域調整部１０５は、基準点、最遠点に基づいて調整後のキー領域調整部１０５（表示範囲）を計算する。例えば、持ち手が右手の場合、キー領域調整部１０５は、基準点（基準点が表示画面２０１内の場合）又は基準点に最も近い表示画面２０１内の点（基準点が表示画面２０１外の場合）に表示範囲の右下端を設定する。そして、キー領域調整部１０５は、最遠点に表示範囲の左上端が合うように調整後の表示範囲を決定する。フィードバック表示部１０６は、キー領域調整部１０５による計算結果（調整後の表示領域）を表示画面２０１に表示する。
【０１２３】
（Ｓ２１６）キー領域調整部１０５は、指示体２０４が表示画面２０１から離れたか否かを判定する。指示体２０４が表示画面２０１から離れた場合、処理はＳ２１７へと進む。一方、指示体２０４が表示画面２０１から離れていない場合、処理はＳ２０２へと進む。
【０１２４】
（Ｓ２１７）キー領域調整部１０５は、最後に計算したキー領域２０２の計算結果（調整後の表示範囲）に基づいてサイズ及び位置を調整したキー領域２０２を表示画面２０１に表示する。Ｓ２１７の処理が完了すると、図１５〜図１７に示した一連の処理は終了する。
【０１２５】
以上、変形例＃１について説明した。
（変形例＃２：湾曲の向きに基づくジェスチャーの判定）
ここで、図１８を参照しながら、第２実施形態の更なる変形例（変形例＃２）について説明する。
【０１２６】
図１８は、第２実施形態の一変形例（変形例＃２）に係る情報処理装置の処理について説明するための図である。変形例＃２は、移動軌跡３０１に含まれる円弧の湾曲方向を考慮する仕組みを提供する。
【０１２７】
変形例＃２における処理の変更点は、図１８（Ａ）に示すように、上記のＳ２１１、Ｓ２１２（図１６参照）の間にＳ３０１の処理が挿入される点にある。
Ｓ３０１において、調整操作検出部１０３は、Ｓ２１０で抽出した全ての円弧の湾曲が同じ向きか否かを判定する。湾曲の向きは、例えば、図１８（Ｂ）に示すように、中心点（Ｐｃ１、Ｐｃ２、Ｐｃ３）の位置に基づいて特定することができる。
【０１２８】
図１８（Ｂ）の例において、点（ａ）（ｂ）を結ぶ円弧の中心点Ｐｃ１は円弧の右側に位置する。点（ａ）（ｂ）を結ぶ円弧の湾曲方向と、点（ｂ）（ｃ）を結ぶ円弧の湾曲方向とが同じ場合、点（ｂ）（ｃ）を結ぶ円弧の中心点Ｐｃ２は、点（ａ）（ｂ）を結ぶ円弧の右側（中心点Ｐｃ１と同じ位置関係）に位置する。つまり、調整操作検出部１０３は、円弧と中心点との位置関係に基づいて円弧の湾曲が同じ向きか否かを判定できる。
【０１２９】
全ての円弧の湾曲が同じ向きである場合、処理はＳ２１２へと進む。一方、湾曲の向きが異なる円弧を含む場合、一連の処理は終了する。このような判定処理を含めることで、図１８（Ｃ）のように、湾曲が異なる移動軌跡を描く通常の入力操作（例えば、フリック操作など）がある場合に、その入力操作をキー領域２０２の調整操作と誤判定するリスクを回避することが可能になる。
【０１３０】
以上、変形例＃２について説明した。
（変形例＃３：円弧までの平均距離に基づく領域調整）
次に、図１９を参照しながら、第２実施形態の更なる変形例（変形例＃３）について説明する。
【０１３１】
図１９は、第２実施形態の一変形例（変形例＃３）に係る情報処理装置の処理について説明するための図である。変形例＃３は、調整後の表示範囲をジェスチャーにより微調整できるようにする仕組みを提供する。
【０１３２】
変形例＃３における処理の変更点は、図１９（Ａ）に示すように、上記のＳ２１４、Ｓ２１５（図１７参照）をＳ３１１、Ｓ３１２に置き換えた点にある。
Ｓ３１１において、キー領域調整部１０５は、基準点から各円弧までの距離の平均値（平均距離）を計算する。Ｓ３１２において、キー領域調整部１０５は、基準点、平均距離に基づいて調整後のキー領域２０２（表示範囲）を計算する。
【０１３３】
例えば、持ち手が右手の場合、キー領域調整部１０５は、基準点（基準点が表示画面２０１内の場合）又は基準点に最も近い表示画面２０１内の点（基準点が表示画面２０１外の場合）に表示範囲の右下端を設定する。そして、キー領域調整部１０５は、表示範囲の縦横比を維持し、表示範囲の対角長さ（左上端から右下端までの長さ）が平均距離となるように調整後の表示範囲を決定する。フィードバック表示部１０６は、キー領域調整部１０５による計算結果（調整後の表示領域）を表示画面２０１に表示する。
【０１３４】
Ｓ２１４では、キー領域調整部１０５が最遠点を特定していた。最遠点を特定する方法では、指示体２０４が届く範囲で、できる限り調整後の表示範囲が大きくなるようにキー領域２０２が調整される。一方、図１９（Ｂ）（Ｃ）に示すように、円弧の中心方向（基準点に近づく方向）に移動軌跡３０１が描かれると平均距離は徐々に短くなる。そのため、ユーザは、フィードバック表示を見ながら、円弧が中心方向に寄るように円弧スクラッチジェスチャーを行うことで、調整後の表示範囲を微調整することが可能になる。
【０１３５】
なお、図１９（Ｃ）の例では（ａ）から（ｆ）の順に指示体２０４を移動させて円弧を中心方向に移動させたが、円弧の中心から離れる方向に円弧を描いていくと、平均距離が長くなり、調整後の表示範囲を拡大する方向に微調整することができる。また、平均距離を利用しているため、円弧の半径や描く円弧の数に応じて表示範囲の調整量が変化する。そのため、ユーザは、円弧の描き方を調整することによって、素早く表示範囲を拡大／縮小することもできるし、ゆっくり少しずつ表示範囲を調整することもできる。
【０１３６】
以上、変形例＃３について説明した。
（変形例＃４：ジェスチャーの進行方向に基づく領域調整）
次に、図２０を参照しながら、第２実施形態の更なる変形例（変形例＃４）について説明する。
【０１３７】
図２０は、第２実施形態の一変形例（変形例＃４）に係る情報処理装置の処理について説明するための図である。変形例＃４は、変形例＃３と同様に調整後の表示範囲をジェスチャーにより微調整できるようにする仕組みを提供する。但し、変形例＃３では平均距離を利用していたが、変形例＃４では最遠点及び最近点を利用する。
【０１３８】
変形例＃４における処理の変更点は、図２０（Ａ）に示すように、上記のＳ２１４、Ｓ２１５（図１７参照）をＳ３２１〜Ｓ３２４に置き換えた点にある。
Ｓ３２１において、キー領域調整部１０５は、時系列で円弧の描画位置を比較した場合に円弧が基準点から遠ざかっているか否かを判定する。
【０１３９】
例えば、図２０（Ｂ）の例において、点（ａ）を始点として点（ｅ）まで移動軌跡３０１が描かれた場合、点（ａ）（ｂ）を結ぶ円弧より点（ｂ）（ｃ）を結ぶ円弧の方が基準点に近い。同様に、点（ｂ）（ｃ）を結ぶ円弧より点（ｃ）（ｄ）を結ぶ円弧の方が基準点に近く、点（ｃ）（ｄ）を結ぶ円弧より点（ｄ）（ｅ）を結ぶ円弧の方が基準点に近い。この例の場合、キー領域調整部１０５は、円弧が基準点に近づいていると判定する。
【０１４０】
逆に、図２０（Ｃ）の例において、点（ａ）を始点として点（ｅ）まで移動軌跡３０１が描かれた場合、点（ａ）（ｂ）を結ぶ円弧より点（ｂ）（ｃ）を結ぶ円弧の方が基準点から遠い。同様に、点（ｂ）（ｃ）を結ぶ円弧より点（ｃ）（ｄ）を結ぶ円弧の方が基準点から遠く、点（ｃ）（ｄ）を結ぶ円弧より点（ｄ）（ｅ）を結ぶ円弧の方が基準点から遠い。この例の場合、キー領域調整部１０５は、円弧が基準点から遠ざかっていると判定する。
【０１４１】
円弧が基準点から遠ざかっていると判定された場合（図２０（Ｃ）参照）、処理はＳ３２２へと進む。一方、円弧が基準点に近づいていると判定された場合（図２０（Ｂ））、処理はＳ３２３へと進む。なお、円弧が基準点から遠ざかる部分と、近づく部分とが移動軌跡３０１に含まれる場合、キー領域調整部１０５は、変形例＃３の方法で調整後の表示範囲を決定する。
【０１４２】
Ｓ３２２において、キー領域調整部１０５は、基準点から最も遠い円弧状の点（目標点）を特定する。Ｓ３２２の処理が完了すると、処理はＳ３２４へと進む。
Ｓ３２３において、キー領域調整部１０５は、基準点から最も近い円弧状の点（目標点）を特定する。Ｓ３２３の処理が完了すると、処理はＳ３２４へと進む。
【０１４３】
Ｓ３２４において、キー領域調整部１０５は、基準点、目標点に基づいて調整後のキー領域調整部１０５（表示範囲）を計算する。
例えば、持ち手が右手の場合、キー領域調整部１０５は、基準点（基準点が表示画面２０１内の場合）又は基準点に最も近い表示画面２０１内の点（基準点が表示画面２０１外の場合）に表示範囲の右下端を設定する。そして、キー領域調整部１０５は、目標点に表示範囲の左上端が合うように調整後の表示範囲を決定する。フィードバック表示部１０６は、キー領域調整部１０５による計算結果（調整後の表示領域）を表示画面２０１に表示する。
【０１４４】
以上、変形例＃４について説明した。
（その他の変形例）
上記の説明においては、基準点などを利用して調整後の表示範囲を決定する方法が示されているが、第２実施形態に係る技術の適用範囲はこれに限定されない。
【０１４５】
例えば、持ち手が右手の場合、キー領域調整部１０５は、最遠点又は最近点を含む円弧に表示範囲の左上端が重なり、表示範囲の右下が表示画面２０１の右下端に一致するように調整後の表示範囲を決定してもよい。
【０１４６】
また、キー領域調整部１０５は、最遠点又は最近点を含む円弧に表示範囲の左上端が接し、キー領域２０２の縦横比が維持され、表示画面２０１の枠の少なくとも１つに表示範囲の一辺が接するように調整後の表示範囲を決定してもよい。このような変形例も第２実施形態の技術的範囲に属する。
【０１４７】
以上、第２実施形態について説明した。
【符号の説明】
【０１４８】
１０  情報処理装置
１１  表示部
１１ａ  画面
１１ｂ  検出部
１２  記憶部
１３  制御部
２１  キー領域
２１ａ、２１ｂ  入力キー
２２  指示体
２３  移動軌跡
【図１】
0006631329.tif 000004
【図２】
0006631329.tif 000005
【図３】
0006631329.tif 000006
【図４】
0006631329.tif 000007
【図５】
0006631329.tif 000008
【図６】
0006631329.tif 000009
【図７】
0006631329.tif 000010
【図８】
0006631329.tif 000011
【図９】
0006631329.tif 000012
【図１０】
0006631329.tif 000013
【図１１】
0006631329.tif 000014
【図１２】
0006631329.tif 000015
【図１３】
0006631329.tif 000016
【図１４】
0006631329.tif 000017
【図１５】
0006631329.tif 000018
【図１６】
0006631329.tif 000019
【図１７】
0006631329.tif 000020
【図１８】
0006631329.tif 000021
【図１９】
0006631329.tif 000022
【図２０】
0006631329.tif 000023