(57)【特許請求の範囲】
【請求項１】
画面上での操作イベントを認識する認識部と、
前記認識部により第１の操作イベントが認識された場合に、前記第１の操作イベントにおける操作検出位置との間にオフセットを有する位置である操作対象位置を囲む枠を有するカーソルを前記画面に表示する表示制御部と、
を備え、
前記表示制御部は、操作検出位置の移動と関連付けられる第２の操作イベントが前記認識部により認識された場合に、移動開始時の操作検出位置と前記操作対象位置との間の間隔に応じて変化する割合で、前記カーソルを移動させる、
情報処理装置。
【請求項２】
前記間隔が所定の閾値を下回る場合には、操作検出位置の移動量と前記カーソルの移動量とは等しく、前記間隔が前記所定の閾値を上回る場合には、操作検出位置の移動量よりも前記カーソルの移動量は小さい、請求項１に記載の情報処理装置。
【請求項３】
前記間隔が所定の閾値を下回る場合には、操作検出位置の移動量と前記カーソルの移動量とは等しく、前記間隔が前記所定の閾値を上回る場合には、操作検出位置の移動量よりも前記カーソルの移動量は大きい、請求項１に記載の情報処理装置。
【請求項４】
前記表示制御部は、
前記画面とは別の画面に前記カーソルを表示可能であり、
前記第２の操作イベントに応じて前記カーソルが前記別の画面に移動した場合に、前記カーソルをユーザにより操作可能とするための補助カーソルを前記画面にさらに表示する、
請求項３に記載の情報処理装置。
【請求項５】
前記表示制御部は、前記第２の操作イベントに応じた前記カーソルの移動経路上に操作可能なオブジェクトが存在する場合に、前記カーソルを前記操作可能なオブジェクト上で停止させる、請求項１に記載の情報処理装置。
【請求項６】
前記表示制御部は、前記第２の操作イベントに応じて前記カーソルを移動させる際に、前記操作対象位置が前記画面に表示された移動可能なオブジェクトに重なっている場合には、前記移動可能なオブジェクトを前記カーソルと共に移動させるべきか否かを前記間隔に応じて判定する、請求項１に記載の情報処理装置。
【請求項７】
画面上での操作イベントを認識する認識部と、
前記認識部により第１の操作イベントが認識された場合に、前記第１の操作イベントにおける操作検出位置との間にオフセットを有する位置である操作対象位置を囲む枠を有するカーソルを前記画面に表示する表示制御部と、
を備え、
前記表示制御部は、操作検出位置の移動と関連付けられる第２の操作イベントが前記認識部により認識された場合に、移動開始時の操作検出位置が前記カーソルの枠の内側にあるか外側にあるかに応じて変化する割合で、前記カーソルを移動させる、
情報処理装置。
【請求項８】
前記表示制御部は、前記認識部により第３の操作イベントが認識された場合に、前記オフセットに関わらず、前記第３の操作イベントにおける操作検出位置の近傍に前記カーソルを表示する、請求項１に記載の情報処理装置。
【請求項９】
前記表示制御部は、前記操作対象位置が前記画面に表示された操作可能なオブジェクトに重なっている場合に、前記カーソルの枠の色、形状又はサイズを変化させる、請求項１に記載の情報処理装置。
【請求項１０】
前記表示制御部は、前記認識部により前記カーソルの枠の内側での第４の操作イベントが認識された場合に、前記カーソルの枠の内側の表示を拡大し又は縮小する、請求項１に記載の情報処理装置。
【請求項１１】
前記カーソルの枠はリング状であり、前記操作対象位置は当該リングの中心である、請求項１に記載の情報処理装置。
【請求項１２】
画面上での操作イベントを認識する認識部と、
前記認識部により第１の操作イベントが認識された場合に、前記第１の操作イベントにおける操作検出位置との間にオフセットを有する位置である操作対象位置を囲む枠を有するカーソルを前記画面に表示する表示制御部と、
を備え、
前記表示制御部は、前記操作対象位置が操作可能な複数のオブジェクトに重なっている場合には、前記認識部により認識される前記カーソルの回転と関連付けられる第５の操作イベントに応じて、前記複数のオブジェクトのいずれかを選択する、
情報処理装置。
【請求項１３】
画面上での操作イベントを認識する認識部と、
前記認識部により第１の操作イベントが認識された場合に、前記第１の操作イベントにおける操作検出位置との間にオフセットを有する位置である操作対象位置を囲む枠を有するカーソルを前記画面に表示する表示制御部と、
を備え、
前記表示制御部は、前記カーソルの枠の内側へのタッチを伴う第６の操作イベントが前記認識部により認識された場合に、前記第６の操作イベントの前に設定された基準位置と前記操作対象位置とが共に前記画面に表示されるように、前記画面の表示を縮小する、
情報処理装置。
【請求項１４】
前記表示制御部は、前記第２の操作イベントに応じた前記カーソルの移動経路が前記カーソルの非表示領域に衝突する場合に、前記カーソルを移動させる代わりに前記カーソルの枠を変形させる、請求項１に記載の情報処理装置。
【請求項１５】
前記表示制御部は、タッチの開始から所定の時間の間前記操作対象位置を補正することにより、ユーザの意図しない前記操作検出位置の変動を吸収する、請求項１に記載の情報処理装置。
【請求項１６】
前記認識部により認識される操作イベントは、タッチイベント又は近接イベントである、請求項１〜１５のいずれか１項に記載の情報処理装置。
【請求項１７】
画面を有する情報処理装置を制御するコンピュータを、
前記画面上での操作イベントを認識する認識部と、
前記認識部により第１の操作イベントが認識された場合に、前記第１の操作イベントにおける操作検出位置との間にオフセットを有する位置である操作対象位置を囲む枠を有するカーソルを前記画面に表示する表示制御部と、
として機能させ、
前記表示制御部は、操作検出位置の移動と関連付けられる第２の操作イベントが前記認識部により認識された場合に、移動開始時の操作検出位置と前記操作対象位置との間の間隔に応じて変化する割合で、前記カーソルを移動させる、
プログラム。
【請求項１８】
画面の表示を制御するための表示制御方法であって、
前記画面上での操作イベントを認識するステップと、
第１の操作イベントが認識された場合に、前記第１の操作イベントにおける操作検出位置との間にオフセットを有する位置である操作対象位置を囲む枠を有するカーソルを前記画面に表示するステップと、
操作検出位置の移動と関連付けられる第２の操作イベントが認識された場合に、移動開始時の操作検出位置と前記操作対象位置との間の間隔に応じて変化する割合で、前記カーソルを移動させるステップと、
を含む表示制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、プログラム及び表示制御方法に関する。
【背景技術】
【０００２】
近年、タッチ画面（touch  screen）が設けられた様々な機器が広く利用されている。タッチ画面は、タッチパネルとも呼ばれ、１つの画面上で表示及び入力という２つの機能性を実現する。タッチ画面の性能は年々進化しており、近い将来、人間の視覚の解像度と同等の画質を表現し得るタッチ画面が製品化されることが予測されている。
【０００３】
タッチ画面の表示解像度が高度化するにつれて、表示解像度とタッチ画面への入力の分解能との乖離が顕著となってきている。表示解像度と入力分解能との乖離が広がると、いわゆるファットフィンガ（fat  finger）の問題がより深刻となり得る。ファットフィンガとは、機器を扱うユーザの指の太さを原因とする問題に関連して使用される用語である。例えば、タッチ画面に限らず、キーボード、キーパッド又はボタンを用いる場合の誤入力などの文脈においても、ファットフィンガという用語は使用され得る。しかし、１つの画面上で表示及び入力が行われるタッチ画面では、誤入力のみならず、指（又は指の代わりに使用されるスタイラスなど）により画面上のオブジェクト（例えばボタン、アイコン又はテキストなど）が隠されるという特有の問題が存在する。なお、このような問題は、タッチ画面と同じく１つの画面上で表示及び入力という２つの機能性を実現する近接検出画面に関しても同様である（近接検出画面とは、操作体が直接画面に接触することを必要とせず、操作体が画面に接近したことを検出してユーザ入力を認識する画面をいう）。
【０００４】
ファットフィンガの問題を回避するために利用され得る１つの技術として、既存の製品のいくつかは、いわゆるルーペ（あるいは拡大鏡）と呼ばれる機能を提供する。ルーペ機能は、典型的には、ユーザにより指定される画面内の領域を拡大して表示する機能である。しかし、ルーペ機能を用いる場合にも、拡大された領域を操作する際に、指が少なくとも部分的にオブジェクトを覆い隠してしまうことは避けられない。また、領域の拡大表示に伴う視線の移動は、直感的なインタフェースを損なうと共に、ユーザにとっての負担となり得る。
【０００５】
これらの問題に対し、下記特許文献１は、画面上の操作対象位置を先端で指し示す矢印状のカーソルの柄の部分に、カーソルの移動及びオブジェクトの選択のための専用の領域を設けることを提案している。それにより、操作対象位置とタッチ位置とが分離される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第３７４４１１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記特許文献１に記載された手法では、操作のためにユーザがタッチし得る領域が専用の小さい領域に限られるため、ユーザインタフェースの汎用性が失われ、目的に応じた多様なユーザインタフェースを提供することが困難となる。
【０００８】
そこで、本発明は、操作対象を隠すことなく画面上での多様なユーザインタフェースを実現することを可能とする、新規かつ改良された情報処理装置、プログラム及び表示制御方法を提供しようとするものである。
【課題を解決するための手段】
【０００９】
本発明のある実施形態によれば、画面上での操作イベントを認識する認識部と、上記認識部により第１の操作イベントが認識された場合に、上記第１の操作イベントにおける操作検出位置との間にオフセットを有する位置である操作対象位置を囲む枠を有するカーソルを上記画面に表示する表示制御部と、を備える情報処理装置が提供される。
【００１０】
かかる構成によれば、操作イベント（例えば、タッチイベント又は近接イベント）における操作検出位置（例えば、タッチ位置又は近接検出位置）と上記カーソルの枠との間の位置関係を利用する様々なユーザインタフェースをユーザに提供することができる。また、操作対象位置にあるオブジェクトは、上記カーソル又は上記カーソルを操作する操作体により覆い隠されない。
【００１１】
また、上記表示制御部は、操作検出位置の移動と関連付けられる第２の操作イベントが上記認識部により認識された場合に、移動開始時の操作検出位置と上記操作対象位置との間の間隔に応じて変化する割合で、上記カーソルを移動させてもよい。
【００１２】
また、上記間隔が所定の閾値を下回る場合には、操作検出位置の移動量と上記カーソルの移動量とは等しく、上記間隔が上記所定の閾値を上回る場合には、操作検出位置の移動量よりも上記カーソルの移動量は小さくてもよい。
【００１３】
また、上記間隔が所定の閾値を下回る場合には、操作検出位置の移動量と上記カーソルの移動量とは等しく、上記間隔が上記所定の閾値を上回る場合には、操作検出位置の移動量よりも上記カーソルの移動量は大きくてもよい。
【００１４】
また、上記表示制御部は、上記画面とは別の画面に上記カーソルを表示可能であってもよく、上記第２の操作イベントに応じて上記カーソルが上記別の画面に移動した場合に、上記カーソルをユーザにより操作可能とするための補助カーソルを上記画面にさらに表示してもよい。
【００１５】
また、上記表示制御部は、上記第２の操作イベントに応じた上記カーソルの移動経路上に操作可能なオブジェクトが存在する場合に、上記カーソルを上記操作可能なオブジェクト上で停止させてもよい。
【００１６】
また、上記表示制御部は、上記第２の操作イベントに応じて上記カーソルを移動させる際に、上記操作対象位置が上記画面に表示された移動可能なオブジェクトに重なっている場合には、上記移動可能なオブジェクトを上記カーソルと共に移動させるべきか否かを上記間隔に応じて判定してもよい。
【００１７】
また、上記表示制御部は、操作検出位置の移動と関連付けられる第２の操作イベントが上記認識部により認識された場合に、移動開始時の操作検出位置が上記カーソルの枠の内側にあるか外側にあるかに応じて変化する割合で、上記カーソルを移動させてもよい。
【００１８】
また、上記表示制御部は、上記認識部により第３の操作イベントが認識された場合に、上記オフセットに関わらず、上記第３の操作イベントにおける操作検出位置の近傍に上記カーソルを表示してもよい。
【００１９】
また、上記表示制御部は、上記操作対象位置が上記画面に表示された操作可能なオブジェクトに重なっている場合に、上記カーソルの枠の色、形状又はサイズを変化させてもよい。
【００２０】
また、上記表示制御部は、上記認識部により上記カーソルの枠の内側での第４の操作イベントが認識された場合に、上記カーソルの枠の内側の表示を拡大し又は縮小してもよい。
【００２１】
また、上記カーソルの枠はリング状であり、上記操作対象位置は当該リングの中心であってもよい。
【００２２】
また、上記表示制御部は、上記操作対象位置が操作可能な複数のオブジェクトに重なっている場合には、上記認識部により認識される上記カーソルの回転と関連付けられる第５の操作イベントに応じて、上記複数のオブジェクトのいずれかを選択してもよい。
【００２３】
また、上記表示制御部は、上記カーソルの枠の内側へのタッチを伴う第６の操作イベントが上記認識部により認識された場合に、上記第６の操作イベントの前に設定された基準位置と上記操作対象位置とが共に上記画面に表示されるように、上記画面の表示を縮小してもよい。
【００２４】
また、上記表示制御部は、上記第２の操作イベントに応じた上記カーソルの移動経路が上記カーソルの非表示領域に衝突する場合に、上記カーソルを移動させる代わりに上記カーソルの枠を変形させてもよい。
【００２５】
また、上記表示制御部は、タッチの開始から所定の時間の間上記操作対象位置を補正することにより、ユーザの意図しない上記操作検出位置の変動を吸収してもよい。
【００２６】
また、上記認識部により認識される操作イベントは、タッチイベント又は近接イベントであってもよい。
【００２７】
また、本発明の別の実施形態によれば、画面を有する情報処理装置を制御するコンピュータを、上記画面上での操作イベントを認識する認識部と、上記認識部により第１の操作イベントが認識された場合に、上記第１の操作イベントにおける操作検出位置との間にオフセットを有する位置である操作対象位置を囲む枠を有するカーソルを上記画面に表示する表示制御部と、として機能させるためのプログラムが提供される。
【００２８】
また、本発明の別の実施形態によれば、画面の表示を制御するための表示制御方法であって、上記画面上での操作イベントを認識するステップと、第１の操作イベントが認識された場合に、上記第１の操作イベントにおける操作検出位置との間にオフセットを有する位置である操作対象位置を囲む枠を有するカーソルを上記画面に表示するステップと、を含む表示制御方法が提供される。
【発明の効果】
【００２９】
以上説明したように、本発明に係る情報処理装置、プログラム及び表示制御方法によれば、操作対象を隠すことなく画面上での多様なユーザインタフェースを実現することが可能となる。
【図面の簡単な説明】
【００３０】
【図１】一実施形態に係る情報処理装置のハードウェア構成の一例を示すブロック図である。
【図２】一実施形態に係る情報処理装置の論理的な構成の一例を示すブロック図である。
【図３】一実施形態に係るカーソルの形状の一例を説明するための説明図である。
【図４】一実施形態に係るカーソルの形状の他の例を説明するための説明図である。
【図５】カーソルのオフセットについて説明するための第１の説明図である。
【図６】カーソルのオフセットについて説明するための第２の説明図である。
【図７】一実施形態に係るＧＵＩの第１の例について説明するための説明図である。
【図８Ａ】一実施形態に係るＧＵＩの第２の例について説明するための第１の説明図である。
【図８Ｂ】一実施形態に係るＧＵＩの第２の例について説明するための第２の説明図である。
【図８Ｃ】一実施形態に係るＧＵＩの第２の例について説明するための第３の説明図である。
【図９Ａ】一実施形態に係るＧＵＩの第３の例について説明するための第１の説明図である。
【図９Ｂ】一実施形態に係るＧＵＩの第３の例について説明するための第２の説明図である。
【図１０】一実施形態に係るＧＵＩの第４の例について説明するための説明図である。
【図１１Ａ】一実施形態に係るＧＵＩの第５の例について説明するための第１の説明図である。
【図１１Ｂ】一実施形態に係るＧＵＩの第５の例について説明するための第２の説明図である。
【図１２】一実施形態に係るＧＵＩの第６の例について説明するための説明図である。
【図１３】一実施形態に係るＧＵＩの第７の例について説明するための説明図である。
【図１４】操作対象位置の補正について説明するための説明図である。
【図１５Ａ】一変形例に係る情報処理装置のハードウェア構成について説明するための概略図である。
【図１５Ｂ】一変形例に係る情報処理装置のハードウェア構成の他の例について説明するための概略図である。
【図１６】一変形例に係る情報処理装置の論理的な構成の一例を示すブロック図である。
【図１７Ａ】一変形例に係るＧＵＩの一例について説明するための第１の説明図である。
【図１７Ｂ】一変形例に係るＧＵＩの一例について説明するための第２の説明図である。
【図１８】上述した実施形態に係る表示制御処理の概略的な流れの一例を示すフローチャートである。
【図１９】タッチ移動関連イベントが認識された場合の表示制御処理の詳細な流れの一例を示すフローチャートである。
【発明を実施するための形態】
【００３１】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付すことにより重複説明を省略する。
【００３２】
また、以下の順序にしたがって当該「発明を実施するための形態」を説明する。
１．一実施形態の構成例
１−１．装置の構成
１−２．カーソルの形状
１−３．カーソル表示位置
２．多様なＧＵＩの例
２−１．カーソル位置の微調整
２−２．絶対的位置へのカーソル移動
２−３．オブジェクトのロック
２−４．カーソル内の表示拡大
２−５．奥行き方向の操作
２−６．選択範囲のズーム
２−７．カーソルの変形
２−８．操作対象位置の補正
３．変形例の説明
３−１．装置の構成
３−２．ＧＵＩの例
４．処理の流れの例
５．まとめ
【００３３】
＜１．一実施形態の構成例＞
本明細書において説明する情報処理装置は、典型的には、タッチ画面又は近接検出画面を有する装置である。情報処理装置は、例えば、ＰＣ（Personal  Computer）、スマートフォン、携帯情報端末（Personal  Digital  Assistant）、音楽プレーヤ、ゲーム端末又はデジタル家電機器などであってよい。また、情報処理装置は、これら装置と接続される周辺機器であってもよい。
【００３４】
［１−１．装置の構成］
まず、図１及び図２を用いて、本発明の一実施形態に係る情報処理装置１００の構成について説明する。なお、本実施形態では、情報処理装置１００がタッチ画面を有する例について主に説明する。しかしながら、後の説明から明らかであるように、情報処理装置１００がタッチ画面の代わりに近接検出画面を有する場合にも、本実施形態の多くの特徴は同等に適用可能である。
【００３５】
（１）ハードウェア構成
図１は、本実施形態に係る情報処理装置１００のハードウェア構成の一例を示すブロック図である。図１を参照すると、情報処理装置１００は、タッチ画面２０、バス３０、ＣＰＵ（Central  Processing  Unit）３２、ＲＯＭ（Read  Only  Memory）３４及びＲＡＭ（Random  Access  Memory）３６を備える。
【００３６】
タッチ画面２０は、タッチ検出面２２及び表示面２４を含む。タッチ検出面２２は、タッチ画面２０上へのユーザによるタッチを感知し、操作検出位置（即ち、タッチ位置）に応じた電気信号を生成する。タッチ検出面２２は、例えば、抵抗膜方式、表面弾性波方式又は静電容量方式などの任意のタッチ検出方式に従って形成され得る。また、タッチ検出面２２は、タッチの押圧力をさらに感知してもよい。なお、タッチ画面２０の代わりに近接検出画面が利用される場合には、近接検出画面は、例えば、光学式又は静電容量式の近接センサを用いて、画面に接近する操作体を感知する。この場合にも、近接検出画面は、操作検出位置（近接検出位置）に応じた電気信号を生成する。表示面２４は、情報処理装置１００からの出力画像を表示する。表示面２４は、例えば、液晶、有機ＥＬ（Organic  Light-Emitting  Diode：ＯＬＥＤ）又はＣＲＴ（Cathode  Ray  Tube）などを用いて実現され得る。
【００３７】
バス３０は、タッチ検出面２２、表示面２４、ＣＰＵ３２、ＲＯＭ３４及びＲＡＭ３６を相互に接続する。
【００３８】
ＣＰＵ３２は、情報処理装置１００の動作全般を制御する。ＲＯＭ３４は、ＣＰＵ３２により実行されるソフトウェアを構成するプログラム及びデータを記憶する。ＲＡＭ３６は、ＣＰＵ３２による処理の実行時に、プログラム及びデータを一時的に記憶する。
【００３９】
なお、ここでは説明の簡明さの観点から説明を省略するが、情報処理装置１００は、図１に示した構成要素以外の構成要素を含んでもよい。
【００４０】
（２）論理的な構成
図２は、本実施形態に係る情報処理装置１００の論理的な構成の一例を示すブロック図である。図２を参照すると、情報処理装置１００は、タッチ検出部１１０、表示部１２０、認識部１４０、表示制御部１５０、記憶部１６０及びアプリケーション部１７０を備える。
【００４１】
タッチ検出部１１０は、タッチ画面２０のタッチ検出面２２により感知されるタッチを検出する。そして、タッチ検出部１１０は、検出される操作検出位置（本実施形態では、タッチ位置に等しい。他の実施形態においては、近接検出位置であってもよい）を含む情報を、認識部１４０へ時系列で出力する。また、タッチ検出部１１０は、押圧力などの追加的な情報をさらに認識部１４０へ出力してもよい。
【００４２】
表示部１２０は、表示制御部１５０による制御に応じ、タッチ画面２０の表示面２４を用いて、情報処理装置１００からの出力画像を表示する。例えば、表示部１２０により表示される出力画像は、後述するアプリケーション部１７０により生成されるアプリケーション画面を含み得る。また、表示部１２０により表示される出力画像は、情報処理装置１００のオペレーティングシステム（図示せず）の画面を含み得る。さらに、これら出力画像には、表示制御部１５０により制御されるカーソルの画像が重畳され得る。
【００４３】
認識部１４０は、タッチ検出部１１０から入力されるタッチ位置などの情報に基づいて、タッチ画面２０上でのユーザによるタッチに応じた様々な操作イベント（本実施形態では、タッチイベントに相当する。他の実施形態においては、近接イベントであってもよい）を認識する。本実施形態において、認識部１４０により認識されるタッチイベントは、例えば、タッチ開始、タッチ移動及びタッチ終了という３種類の原始的なイベントを含み得る。これらイベントには、タッチ位置がそれぞれ関連付けられる。タッチ画面２０がマルチタッチ検出機能を有する場合には、各イベントに複数のタッチ位置がそれぞれ関連付けられ得る。さらに、認識部１４０は、原始的なタッチイベントの組み合わせ又はタッチ位置の軌跡などに基づいて、より抽象化されたタッチイベントを認識し得る。例えば、認識部１４０により認識される抽象化されたタッチイベントは、タップ、ドラッグ、ツイスト、マルチタップ、ピンチイン及びピンチアウトなどを含み得る。さらに、タッチ検出面２２がタッチの押圧力を感知する場合には、認識部１４０は、所定の押圧力の変化を１つのタッチイベントとして認識してもよい。認識部１４０は、このように認識されるタッチイベントを表示制御部１５０へ出力する。
【００４４】
表示制御部１５０は、表示部１２０により表示される出力画像の内容を制御する。例えば、表示制御部１５０は、アプリケーション部１７０により生成されるアプリケーション画面又はオペレーティングシステムの画面を表示部１２０に表示させる。また、本実施形態において、表示制御部１５０は、後に説明する特有のカーソルを表示部１２０に表示させる。そして、表示制御部１５０は、認識部１４０により認識されるタッチイベントに応じて、当該カーソル及び関連するオブジェクトの表示を制御する。
【００４５】
記憶部１６０は、表示制御部１５０による表示制御のために使用されるデータを記憶する。例えば、記憶部１６０は、表示制御部１５０により表示されるカーソルの形状及びサイズを定義するカーソル定義データを記憶する。また、例えば、記憶部１６０は、カーソルを介する操作の対象となる位置である操作対象位置とタッチ位置との間のオフセットの初期値及び現在値を記憶する。また、例えば、記憶部１６０は、タッチ位置の移動と関連付けられるタッチイベント（例えばドラッグなど）に応じてカーソルが移動する際の移動量に関する設定値を記憶する。これらデータを用いて実現されるユーザインタフェースの例については、後により詳細に説明する。
【００４６】
アプリケーション部１７０は、情報処理装置１００のユーザにアプリケーション機能を提供する。例えば、アプリケーション部１７０は、Ｗｅｂブラウザ、デジタルアルバム、文書エディタ、電子メールクライアント、コンテンツプレーヤ及びゲームアプリケーションのうちの１つ以上を含んでよい。ユーザは、後に説明する特有のカーソルを用いたユーザインタフェースを介して、これらアプリケーション機能を利用することができる。
【００４７】
［１−２．カーソルの形状］
次に、本実施形態に係る情報処理装置１００が提供するユーザインタフェースのために用いられるカーソルの基本的な構成を説明する。
【００４８】
図３は、カーソルの形状の一例を説明するための説明図である。図３の左には、情報処理装置１００のタッチ画面２０が示されている。タッチ画面２０には、一例としてのカーソル１０が表示されている。カーソル１０は、操作対象位置を囲む枠を有するリング状の形状をしている。
【００４９】
図３の右には、拡大されたカーソル１０の枠１４が示されている。枠１４は、共に操作対象位置１５を中心とする、半径Ｄ１の内周及び半径Ｄ２の外周により形成される。これら枠１４の内周及び外周の半径の値は、例えば、記憶部１６０により記憶される定義データにより定義され得る。半径Ｄ１の値は、例えば、ユーザの平均的な指先の幅が枠１４の内部に十分に入る程度の値から選択されてよい。枠１４は、例えば、枠１４と重なる画面上のオブジェクトが視認可能となるように、半透明に表示され得る。
【００５０】
カーソル１０に対する操作は、例えば、操作対象位置１５を中心とする矩形領域１８の内部へのタッチにより行われ得る。即ち、表示制御部１５０は、認識部１４０によりタッチイベントが認識された場合に、例えばそのタッチイベントにおけるタッチ位置が矩形領域１８の内部であれば、当該タッチイベントに応じて、カーソル１０を用いたユーザインタフェースの制御を実行する。
【００５１】
図３の右に示したように、矩形領域１８の内部の領域は、カーソル１０の枠１４との位置関係に応じて、３つの領域に分類され得る。第１の領域は、枠内（リング内）の領域である。例えば、タッチ検出部１１０により検出されたタッチ位置と操作対象位置１５との間の間隔（gap）が半径Ｄ１よりも小さい場合には、枠内へのタッチが行われたことが認識され得る。第２の領域は、枠上の領域である。例えば、タッチ位置と操作対象位置１５との間の間隔が半径Ｄ１以上かつ半径Ｄ２以下である場合には、枠上へのタッチが行われたことが認識され得る。第３の領域は、枠外（リング外）の領域である。例えば、タッチ位置と操作対象位置１５との間の間隔が半径Ｄ２よりも大きい場合には、枠外へのタッチが行われたことが認識され得る。
【００５２】
図４は、カーソルの形状の他の例を説明するための説明図である。図４の左には、操作対象位置１５ａを囲む枠１４ａを有するカーソル１０ａが示されている。カーソル１０ａの枠１４ａは、ボックス状の形状をしている。一方、図４の右には、操作対象位置１５ｂを囲む枠１４ｂを有するカーソル１０ｂが示されている。カーソル１０ｂの枠１４ｂは、上下左右において部分的に間隙を有するリング状の形状をしている。このように、情報処理装置１００のタッチ画面２０に表示されるカーソルの枠は、操作対象位置を囲む様々な形状をとり得る。そして、カーソルの枠は、必ずしも操作対象位置を完全に囲んでいなくてもよい。これらの場合においても、表示制御部１５０は、タッチ位置と操作対象位置との間隔に応じて、タッチ位置を枠内、枠上及び枠外の３つに分類することができる。
【００５３】
本実施形態に関する以下の説明では、図３に例示したリング状のカーソル１０がタッチ画面２０に表示されるものとする。
【００５４】
［１−３．カーソル表示位置］
表示制御部１５０は、任意のタッチイベントが認識された場合に、上述したカーソルをタッチ画面２０に表示してよい。
【００５５】
例えば、表示制御部１５０は、認識部１４０により何らかのタッチイベント（イベントＥｖ１）が認識された場合に、当該タッチイベントのタッチ位置との間で所定のオフセットを有する操作対象位置を決定する。そして、表示制御部１５０は、決定した操作対象位置がカーソル表示対象のオブジェクト上にある場合には、当該操作対象位置を囲むカーソル１０を表示し得る。
【００５６】
図５及び図６は、上述したカーソルのオフセットについて説明するための説明図である。
【００５７】
図５の左のタッチ画面２０において、タッチ位置１６の上方に操作対象位置１５が示されている。この場合、タッチ位置１６と操作対象位置１５との間のオフセットは、垂直方向の距離Ｌにより与えられる。図５の中央のタッチ画面２０においては、タッチ位置１６の上方の操作対象位置１５は、カーソル表示対象オブジェクトであるテキスト上に位置している。そこで、表示制御部１５０は、この操作対象位置１５を囲むカーソル１０を表示する。このように表示されたカーソル１０は、ユーザがタッチ画面２０から指（又はスタイラスなどのその他の操作体）を離した後も、画面上に残ってよい。図５の右には、指が離れた状態でタッチ画面２０にカーソル１０が表示されている様子が示されている。
【００５８】
なお、図５の例に限定されず、表示制御部１５０は、所定の閾値を超える押圧力を伴うタッチ、特定のメニューの選択又はボタンの押下などの他のイベントをきっかけとして、カーソル１０を表示してもよい。
【００５９】
図５の例におけるオフセットは、非表示であったカーソル１０が表示される際の初期値のオフセットである。一方、カーソル１０が表示された後、ユーザが再度カーソル１０の周囲をタッチした場合には、新たなタッチ開始位置と操作対象位置との間のオフセットが保存される。
【００６０】
例えば、図６の上段中央のタッチ画面２０では、操作対象位置１５の下方の枠上をユーザがタッチしている。そして、ユーザが指を右方向にドラッグすると、ドラッグ開始時のオフセットが維持され、指の移動に沿ってカーソル１０も移動している。図６の上段右のタッチ画面２０においても、ドラッグ終了時のタッチ位置１６の上方を操作対象位置１５とするカーソル１０が表示されている。
【００６１】
また、例えば、図６の下段中央のタッチ画面２０では、操作対象位置１５の右方の枠上をユーザがタッチしている。そして、ユーザが指を左方向にドラッグすると、ドラッグ開始時のオフセットが維持され、指の移動に沿ってカーソル１０も移動している。図６の下段右のタッチ画面２０においても、ドラッグ終了時のタッチ位置１６の左方を操作対象位置１５とするカーソル１０が表示されている。
【００６２】
情報処理装置１００は、このようなカーソル１０を用いることにより、次節で説明するような多様なグラフィカルユーザインタフェース（ＧＵＩ）を実現する。
【００６３】
＜２．多様なＧＵＩの例＞
［２−１．カーソル位置の微調整］
図７は、本実施形態に係るＧＵＩの第１の例について説明するための説明図である。図７のシナリオにおいて、表示制御部１５０は、タッチ位置の移動と関連付けられる第２のタッチイベント（イベントＥｖ２）が認識部１４０により認識された場合に、移動開始時のタッチ位置と操作対象位置との間の間隔に応じて変化する割合で、カーソルを移動させる。イベントＥｖ２は、例えば、ドラッグ又はフリックなどであってよい。
【００６４】
以下の説明において、タッチ位置の移動量に対するカーソルの移動量の割合を移動レートという。一般的なＧＵＩにおいては、タッチ位置の移動量とカーソルの移動量とは等しく、即ち、移動レートは１００％である。本実施形態では、移動レートは、記憶部１６０に記憶される設定値として、移動開始時のタッチ位置と操作対象位置との間の間隔に応じて定義され得る。例えば、移動レートは、上記間隔と比較される閾値を用いて、閾値よりも大きい場合にはＸ１％、閾値よりも小さい場合にはＸ２％などと定義されてもよい。このとき、閾値をカーソル１０の枠１４の内周の半径Ｄ１（又は外周の半径Ｄ２）と等しい値とすれば、タッチ位置が枠内か否か（又は枠外か否か）に応じて異なる移動レートを定義することができる。また、移動レートは、例えば、上記間隔を引数とする関数によって定義されてもよい。また、移動レートは、例えば、タッチ位置が枠内である場合にはＹ１％、枠上である場合にはＹ２％、枠外である場合にはＹ３％などのように定義されてもよい。
【００６５】
図７のシナリオでは、上記間隔がカーソル１０の枠１４の外周の半径Ｄ２に等しい閾値以下である場合には移動レートは１００％であり、上記間隔が当該閾値を上回る場合には移動レートは５０％であるものとする。このような移動レートの定義は、例えば、カーソル位置の微調整が求められるような状況において有益である。
【００６６】
図７の上段を参照すると、ユーザがカーソル１０の枠内をタッチしてドラッグした場合には、タッチ位置１６の移動量とカーソル１０の移動量とは等しく、即ち移動レートは１００％である。一方、図７の下段を参照すると、ユーザがカーソル１０の枠外をタッチしてドラッグした場合には、カーソル１０の移動量はタッチ位置１６の移動量の半分であり、即ち移動レートは５０％である。
【００６７】
このようなカーソル位置の微調整は、例えば、表示解像度の高い画面に表示された文字の小さいテキストの選択、スクロールバー若しくはスライダを用いた画面のスクロール、又は多数表示された写真のサムネイルの中からの写真の選択など、様々な場面で活用され得る。
【００６８】
［２−２．絶対的位置へのカーソル移動］
図８Ａ〜図８Ｃは、本実施形態に係るＧＵＩの第２の例について説明するための説明図である。ここでのシナリオにおいて、表示制御部１５０は、認識部１４０により第３のタッチイベント（イベントＥｖ３）が認識された場合に、上述したオフセットに関わらず、イベントＥｖ３におけるタッチ位置の近傍にカーソル１０を表示する。イベントＥｖ３は、例えば、上述したイベントＥｖ２が継続している最中のマルチタップ、押圧力の変化、又は直交フリックなどであってよい。直交フリックとは、例えば、イベントＥｖ２におけるタッチ位置の移動方向と凡そ直交する方向に向けた敏速な方向転換を意味する。本シナリオにおけるユーザインタフェースは、例えば、１００％ではない移動レートを理由として指先から離れたカーソルをユーザが即座に指先の近くに引き寄せたいと望むような状況において有益である。即ち、上述したイベントＥｖ３は、絶対的なタッチ位置へのカーソル移動のトリガとなるイベントである。
【００６９】
例えば、図８Ａの例において、まず、ユーザがカーソル１０の枠外にタッチしてドラッグした結果、カーソル１０は、移動レート５０％で移動し、ユーザの指先から離れている（図８Ａ左及び中央参照）。次に、マルチタップ、押圧力の変化又は直交フリックなどのイベントＥｖ３が認識された結果、カーソル１０は、移動レートに関わらず、タッチ位置１６の近傍に移動している（図８Ａ右参照）。マルチタップ、押圧力の変化又は直交フリックなどのための動作は、ユーザにとって、ドラッグなどの動作から連続的に行い易い動作である。従って、このようなイベントＥｖ３をカーソル位置を引き寄せるトリガとして用いることは、ユーザインタフェースの操作性の向上に寄与し得る。
【００７０】
なお、ドラッグなどの動作により移動中のカーソルだけでなく、静止しているカーソルを指先に即座に引き寄せたいとユーザが望むことも考えられる。この場合、例えば、ダブルタップ（短時間内のタップの繰り返し）などをそのトリガイベントとして用いてもよい。
【００７１】
図８Ｂは、イベントＥｖ３が利用され得る他の場面の例を示している。図８Ｂの例では、タッチ画面２０に表示内容のスクロールのためのスライダ４１が表示されている（図８Ｂ左参照）。ユーザは、例えば、このスライダ４１のつまみにカーソル１０の操作対象位置を合わせ、カーソル１０の枠外をタッチして右方向へドラッグする。それにより、つまみはカーソル１０と共に移動レート５０％で右方向へ移動し、それに応じてタッチ画面２０の表示内容がスクロールする（図８Ｂ中央参照）。さらに、イベントＥｖ３が認識された結果、つまみ及びカーソル１０は、移動レートに関わらず、タッチ位置１６の近傍に移動している（図８Ｂ右参照）。
【００７２】
図８Ｃは、イベントＥｖ３が利用され得るまた別の場面の例を示している。図８Ｃの例では、タッチ画面２０にカーソル１０及びテキストが表示されている。そして、ユーザは、カーソル１０をドラッグすることにより、テキストの一部を選択することができる。図８Ｃの中央には、ドラッグにより選択された選択範囲４２が示されている。しかし、上述したように、操作対象位置とタッチ位置との間のオフセットが維持されることから、例えば移動レートが１００％の場合には、ユーザはタッチ画面２０の端部を選択できない可能性がある。そのような場合、ユーザがイベントＥｖ３を入力することにより、移動レートに関わらずカーソル１０はタッチ位置１６の近傍に移動し、タッチ画面２０の端部に表示されたテキストの選択が可能となる（図８Ｃ右参照）。
【００７３】
［２−３．オブジェクトのロック］
図９Ａ及び図９Ｂは、本実施形態に係るＧＵＩの第３の例について説明するための説明図である。ここでのシナリオにおいて、表示制御部１５０は、操作対象位置がタッチ画面２０に表示された操作可能なオブジェクトに重なっている場合に、当該オブジェクトをロックし、カーソル１０の枠の色、形状又はサイズを変化させる。操作可能なオブジェクトとは、例えば、Ｗｅｂブラウザにおけるハイパーリンク、デジタルアルバムにおけるサムネイル、デスクトップ画面における機能アイコン、又はアプリケーション画面におけるボタンなどであってよい。表示制御部１５０は、操作可能なオブジェクトを一度ロックした後、カーソル位置が移動した場合にも、何らかの条件（例えば、ロック解除のための所定のイベントの発生、又は所定の距離を超えるカーソルの移動など）が満たされるまで、当該オブジェクトを操作対象として維持し得る。
【００７４】
例えば、図９Ａの例において、タッチ画面２０に表示されたテキストは、二重下線で示した３つのハイパーリンクを含む（図９Ａ左参照）。ここで、ユーザがカーソル１０をドラッグして操作対象位置をハイパーリンク４３に合わせることにより、表示制御部１５０は、ハイパーリンク４３をロックする（図９Ａ中央参照）。そして、例えば、ユーザがカーソル１０の枠をタップ（又はダブルタップなど）することにより（図９Ａ右参照）、ハイパーリンクが実行され、表示内容はリンク先に遷移する。
【００７５】
このようなオブジェクトのロックは、特に表示解像度の高いタッチ画面２０に表示される小さいオブジェクトを操作する際に有益である。例えば、指によるタップ動作は、タッチ位置のぶれを伴うことが少なくない。そのため、オブジェクトを操作しようとしてユーザがタッチ画面２０をタップした場合にも、操作対象位置がずれてしまうことで、目的のオブジェクトを操作できない可能性がある。しかし、本シナリオでは、上述したようにオブジェクトがロックされるため、ユーザは、操作対象のオブジェクトを確実に操作することができる。この場合、リング状のカーソル１０は、オブジェクトをロックするための照準としての役割をも有する。
【００７６】
また、ロックされたオブジェクトは、カーソル１０と共に移動可能であってもよい。表示制御部１５０は、ドラッグ又はフリックなどのタッチイベントに付随してオブジェクトを移動させるべきか否かを、例えばタッチ位置と操作対象位置との間の間隔に応じて判定し得る。
【００７７】
例えば、図９Ｂの例において、タッチ画面２０には、移動可能な３つのアイコンが表示されている。このうち、アイコン４４にカーソル１０の操作対象位置が重なっており、アイコン４４がロックされている（図９Ｂ左参照）。そして、例えば、ユーザがカーソル１０の枠内をタッチしてドラッグすると、カーソル１０がアイコン４４から離れて単独で移動する（図９Ｂ上段参照）。一方、例えば、ユーザがカーソル１０の枠上をタッチしてドラッグすると、カーソル１０がアイコン４４と共に移動する（図９Ｂ下段参照）。
【００７８】
［２−４．カーソル内の表示拡大］
図１０は、本実施形態に係るＧＵＩの第４の例について説明するための説明図である。図１０のシナリオにおいて、表示制御部１５０は、認識部１４０によりカーソル１０の枠内での第４のタッチイベント（イベントＥｖ４）が認識された場合に、カーソル１０の枠内の表示を拡大（ズームイン）又は縮小（ズームアウト）する。イベントＥｖ４は、例えば、ピンチアウト及びピンチインなどであってよい。この場合、ピンチアウトが表示の拡大に対応し、ピンチインが表示の縮小に対応し得る。なお、ピンチアウトとは、タッチした２本の指の間の間隔を広げる動作を指し、ピンチインとは、タッチした２本の指の間の間隔を狭める動作を指す。
【００７９】
図１０の例では、タッチ画面２０に４つのサムネイルが示されている。このうち、サムネイル４５ａにカーソル１０の操作対象位置が重なっている。そして、例えば、ユーザがカーソル１０の枠内でピンチアウトすることにより、カーソル１０の枠内の表示が拡大される。なお、図示していないものの、ユーザがカーソル１０の枠内でさらにピンチインすることにより、カーソル１０の枠内の表示は縮小され又は元通りに復元され得る。
【００８０】
このように、操作対象位置を囲む枠を有するカーソルは、より直感的な動作でルーペ機能と同等の機能を実現することができる。
【００８１】
［２−５．奥行き方向の操作］
図１１Ａ及び図１１Ｂは、本実施形態に係るＧＵＩの第５の例について説明するための説明図である。ここでのシナリオにおいて、表示制御部１５０は、操作対象位置が操作可能な複数のオブジェクトに重なっている場合に、認識部１４０により認識されるカーソルの回転と関連付けられる第５のタッチイベント（イベントＥｖ５）に応じて、当該複数のオブジェクトのいずれかを操作対象として選択する。イベントＥｖ５は、例えば、ツイスト（指を同じ位置にタッチした状態でひねる動作）又はツインローテート（マルチタッチの状態において第１の指の位置を固定したまま第２の指で弧を描く動作）などであってよい。
【００８２】
例えば、図１１Ａの例において、タッチ画面２０には互いに重なり合う３つのサムネイル４５ａ、４５ｂ及び４５ｃが表示されている。そして、カーソル１０は、これら３つのサムネイル４５ａ、４５ｂ及び４５ｃに重なっている。このうち、図１１Ａの左の時点では、サムネイル４５ｃがフォーカスされている（即ち、サムネイル４５ｃが操作対象である）。この状態において、例えばユーザがカーソル１０内でツイスト又はツインローテートの動作を行うと、上述したイベントＥｖ５が認識される。その結果、表示制御部１５０は、フォーカスをＺ方向（タッチ画面２０の奥行き方向）に遷移させる。例えば、図１１Ａの右上の例では、フォーカスがサムネイル４５ｂに移っている。また、図１１Ａの右下の例では、フォーカスがサムネイル４５ａに移っている。
【００８３】
また、図１１Ｂを参照すると、タッチ画面２０においてカーソル１０の枠にハンドル４６が付加されている。ハンドル４６は、カーソル１０を回転させるためにユーザにより操作されるユーザインタフェースである。このようなハンドル４６のドラッグもまた、上述したイベントＥｖ５として扱われ得る。図１１Ｂの例では、ユーザがカーソル１０のハンドル４６をドラッグすることにより、フォーカスがサムネイル４５ａに移っている。
【００８４】
このような奥行き方向の操作（例えばフォーカスの遷移）は、例えば、表示解像度の高い画面に表示されたオブジェクトが互いに重なり合っており、個々のオブジェクトを選択することが難しい状況において有益である。
【００８５】
［２−６．選択範囲のズーム］
図１２は、本実施形態に係るＧＵＩの第６の例について説明するための説明図である。図１２のシナリオにおいて、表示制御部１５０は、カーソル１０の枠内へのタッチを伴う第６のタッチイベント（イベントＥｖ６）が認識部１４０により認識された場合に、第６のタッチイベントの前に設定された基準位置と操作対象位置とが共にタッチ画面２０に表示されるように、タッチ画面２０の表示を縮小する。ここで、事前に設定される基準位置とは、例えば、領域選択における選択範囲の開始位置、又は長文のテキスト内に設定されるブックマークの位置などであってよい。また、第６のタッチイベントは、例えば、基準位置が設定されている状況下におけるカーソルの枠上でのピンチインなどであってよい。
【００８６】
例えば、図１２の左を参照すると、タッチ画面２０が下方にスクロールした結果、選択範囲４２の開始位置は画面外に外れている。この状態において、例えばユーザがカーソル１０の枠を抑えながらピンチインの動作を行うと、基準位置と最新のカーソル１０の操作対象位置とが共に表示されるように、タッチ画面２０の表示が縮小される（図１２右参照）。その結果、ユーザは、簡単に選択範囲４２の全体をタッチ画面２０上で見ることができる。また、図１２の右に示した状態において、例えばユーザがカーソル１０の枠を抑えながらピンチアウトの動作を行うと、タッチ画面２０の表示内容は図１２の左に示したような元の状態に復元され得る。
【００８７】
［２−７．カーソルの変形］
図１３は、本実施形態に係るＧＵＩの第７の例について説明するための説明図である。図１３のシナリオにおいて、表示制御部１５０は、上述した第２のタッチイベントＥｖ２に応じたカーソルの移動経路がカーソルの非表示領域に衝突する場合に、カーソル１０を移動させる代わりに、カーソル１０の枠を変形させる。カーソルの非表示領域とは、例えば、より先へ画面をスクロールさせられない場合のタッチ画面２０の端部、又はその他の画面内の領域であってよい。
【００８８】
例えば、図１３の左を参照すると、タッチ画面２０には、あるページ内に記述されたテキストが示されている。カーソル１０は、このページの最上部に位置している。この状態において、例えばユーザがカーソル１０をさらに上方へドラッグすると、カーソル１０が移動する代わりに、カーソル１０の枠がつぶれるように変形する（図１２右参照）。また、カーソル１０の枠がつぶれる方向は、ドラッグ方向に一致している。それにより、ユーザは、これ以上カーソル１０を移動させられないことを直感的に理解することができる。
【００８９】
［２−８．操作対象位置の補正］
上述しように、例えば操作体が指である場合において、ユーザがタッチ画面２０をタッチした際、目的のタッチ位置と実際にタッチされる位置との間にわずかなずれが生じることが少なくない。また、タッチした直後の短い時間の間にタッチ位置がぶれてしまう可能性もある。そこで、表示制御部１５０は、カーソル１０の操作対象位置を常に厳密に枠の中心とするのではなく、ヒステリシスを考慮して操作対象位置を補正することにより、ユーザが意図しないタッチ位置の小さな変動を吸収してもよい。
【００９０】
図１４は、そのような操作対象位置の補正について説明するための説明図である。図１４の左には、画面に表示されるテキストを構成する文字列中の隣接する２つの文字“ｅ”及び“ｃ”、並びにカーソル１０が示されている。カーソル１０の操作対象位置１５は、文字“ｅ”に重なっている。ここで、ユーザがカーソル１０を操作しようとしてタッチした瞬間に、タッチ位置がわずかに右方へぶれたことを想定する。このとき、操作対象位置が補正されない場合には、操作対象位置１５が右方へわずかに移動することにより、操作対象が文字“ｅ”ではなく“ｃ”に変化し得る（図１４上段参照）。しかし、これはユーザの意図する操作ではない。そこで、表示制御部１５０は、例えば、タッチ開始から所定の時間（例えば十分の数秒）の間、操作対象位置１５をヒステリシスが生じるように補正する。図１４の下段を参照すると、カーソル１０の操作対象位置が位置１５ａから位置１５ｂへ補正されることにより、操作対象が文字“ｃ”に移ることなく文字“ｅ”に残っている。なお、操作対象位置１５の補正量は、例えば、タッチ開始時からのタッチ位置の移動量から決定されてもよい。その代わりに、操作対象位置１５の補正量は、例えば、タッチ開始時の操作対象位置１５と操作対象の中心（例えば、図１４の文字“ｅ”の中心１９）との差分から決定されてもよい。
【００９１】
＜３．変形例の説明＞
ここまで、主に情報処理装置１００が１つの画面のみを有する例について説明した。しかしながら、本実施形態は、複数の画面を扱う装置においても特有の効果を発揮し得る。そこで、本節では、本実施形態の一変形例として、複数の画面を扱う装置において上述したカーソルを利用する例を説明する。
【００９２】
［３−１．装置の構成］
（１）ハードウェア構成の概要
図１５Ａ及び図１５Ｂは、本変形例に係る情報処理装置２００のハードウェア構成について説明するための概略図である。
【００９３】
図１５Ａを参照すると、ユーザにより把持された情報処理装置２００ａ及び表示装置５０が示されている。情報処理装置２００ａは、図１に例示した情報処理装置１００と同等のハードウェア構成を含み得る。さらに、情報処理装置２００ａは、表示装置５０と通信可能である。表示装置５０は、例えば、デジタルテレビ若しくはコンテンツプレーヤなどのデジタル家電機器であってもよく、又は情報処理装置２００ａ自体のための追加的なモニタなどであってもよい。情報処理装置２００ａは、タッチ画面２２０を備える。一方、表示装置５０は、画面２２２を備える。
【００９４】
図１５Ｂを参照すると、情報処理装置２００ｂが示されている。情報処理装置２００ｂは、図１に例示した情報処理装置１００と同等のハードウェア構成を含み得る。さらに、情報処理装置２００ｂは、タッチ画面２２０及び画面２２２を備える。画面２２２は、タッチ画面であってもよく、表示機能のみを有する画面であってもよい。
【００９５】
図１５Ａに例示した情報処理装置２００ａは、例えば、情報処理装置２００ａ自体が有するアプリケーション機能に加えて、表示装置５０により表示されるコンテンツをユーザが間接的に（又は遠隔的に）操作するためのＧＵＩをユーザに提供する。一方、図１５Ｂに例示した情報処理装置２００ｂは、例えば、画面２２２に表示されるコンテンツをタッチ画面２２０上で操作するためのＧＵＩをユーザに提供する。これらＧＵＩもまた、上述したカーソルを用いて実現される。なお、以下の説明において、情報処理装置２００ａ及び２００ｂを互いに区別する必要がない場合には、情報処理装置２００ａ及び２００ｂを情報処理装置２００と総称する。
【００９６】
（２）論理的な構成
図１６は、本変形例に係る情報処理装置２００の論理的な構成の一例を示すブロック図である。図１６を参照すると、情報処理装置２００は、タッチ検出部１１０、表示部１２０、通信部２３２、認識部１４０、表示制御部２５０、記憶部１６０及びアプリケーション部１７０を備える。また、通信部２３２は、副表示部２３０と接続される。
【００９７】
副表示部２３０は、図１５Ａ及び図１５Ｂに例示した画面２２２に対応する論理ブロックである。副表示部２３０は、表示制御部２５０による制御に応じ、画面２２２を用いて画像を表示する。
【００９８】
通信部２３２は、例えば、表示制御部２５０が副表示部２３０と通信するための通信手段としての役割を有する。通信部２３２は、例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＵＷＢ（Ultra  Wide  Band）又は無線ＬＡＮ（Local  Area  Network）などの無線通信プロトコルに準拠した通信インタフェースを用いて実装されてよい。また、図１５Ｂの例のように、画面２２２が物理的に情報処理装置２００の一部である場合には、通信部２３２は、より単純な信号線を用いて実装されてもよい。
【００９９】
表示制御部２５０は、表示部１２０及び副表示部２３０により表示される出力画像の内容を制御する。また、本変形例において、表示制御部２５０は、特有のカーソルを表示部１２０及び副表示部２３０に表示させる。そして、表示制御部２５０は、認識部１４０により認識されるタッチイベントに応じて当該カーソル及び関連するオブジェクトの表示を制御することにより、多様なユーザインタフェースを実現する。表示制御部２５０により表示されるカーソルの基本的な構成は、図３〜図６を用いて既に説明した構成と同様であってよい。
【０１００】
［３−２．ＧＵＩの例］
本変形例においても、情報処理装置２００は、ここまでに説明した多様なＧＵＩをタッチ画面２２０を用いてユーザに提供し得る。さらに、情報処理装置２００は、以下に説明するようなＧＵＩを提供する。
【０１０１】
図１７Ａ及び図１７Ｂは、本変形例に係るＧＵＩの一例について説明するための説明図である。ここでのシナリオにおいて、表示制御部２５０は、タッチ位置の移動と関連付けられる上述した第２のタッチイベント（イベントＥｖ２）が認識部１４０により認識された場合に、移動開始時のタッチ位置と操作対象位置との間の間隔に応じて変化する割合で、カーソルを移動させる。上述したように、イベントＥｖ２は、例えば、ドラッグ又はフリックなどであってよい。即ち、本シナリオは、図７を用いて説明したシナリオに類似している。
【０１０２】
例えば、図１７Ａの例において、上記間隔がカーソル１０の枠１４の外周の半径Ｄ２に等しい閾値以下である場合には移動レートは１００％であり、上記間隔が当該閾値を上回る場合には移動レートは３００％であるものとする。このような移動レートの定義は、例えば、カーソル位置をタッチ画面２２０の外部へ移動させることが求められる状況において有益である。
【０１０３】
図１７Ａの上段を参照すると、ユーザがカーソル１０の枠内をタッチしてドラッグした場合には、タッチ位置の移動量とカーソル１０の移動量とは等しく、即ち移動レートは１００％である。一方、図１７Ａの下段を参照すると、ユーザがカーソル１０の枠外をタッチしてドラッグした場合には、カーソル１０の移動量はタッチ位置の移動量の３倍となる。その結果、タッチ画面２２０内でのドラッグに応じて、カーソル１０は、タッチ画面２２０から画面２２２へ移動する。
【０１０４】
また、本実施形態において、表示制御部２５０は、イベントＥｖ２に応じてカーソル１０が画面２２２に移動した場合に、カーソル１０をユーザにより操作可能とするための補助カーソルをタッチ画面２２０にさらに表示する。例えば、図１７Ａの下段では、画面２２２に移動したカーソル１０を操作するための補助カーソル１２が、タッチ画面２２０に表示されている。ユーザは、この補助カーソル１２を操作することにより、カーソル１０を直接操作する際のユーザインタフェースと同様に、画面２２２の表示内容を間接的に制御することができる。
【０１０５】
図１７Ａの例のように、移動レートが１００％を超える場合には、カーソル１０の移動先がその時点で画面に表示されていない領域に到達する可能性がある。その場合、表示制御部２５０は、カーソル１０を画面外に移動する代わりに、カーソルを画面の端部に留めると共に、画面を自動的にスクロールすることにより、カーソルを目的の移動先まで移動させる。このようなカーソルの移動及び画面の自動的なスクロールに際して、表示制御部２５０は、例えば、カーソルの移動経路上に操作可能なオブジェクトが存在する場合には、カーソルを当該操作可能なオブジェクト上で停止させてもよい。
【０１０６】
例えば、図１７Ｂの例において、ユーザがカーソル１０の枠外をドラッグしたことにより、移動レート５００％でカーソル１０がタッチ画面２２０から画面２２２へ移動している。さらに、ドラッグに応じたカーソル１０の移動先が画面２２２の外部であることから、カーソル１０は画面２２２の上端部に留まり、その代わりに画面２２２が自動的にスクロールしている（図１７Ｂ中央参照）。そして、スクロールの最中に操作可能なオブジェクトであるアイコン４４がカーソル１０に重なった結果、自動的なスクロールが終了し、カーソル１０がアイコン４４上で停止している。さらに、アイコン４４は、カーソル１０によりロックされている（図１７Ｂ右参照）。そして、この場合にも、タッチ画面２２０に補助カーソル１２が表示されることで、ユーザは、ロックされたアイコン４４を補助カーソル１２を使用して即座に操作することができる。
【０１０７】
なお、例えば、操作可能なオブジェクトが多数存在するような状況下では、ユーザの意図しないオブジェクトがロックされることを防ぐために、図１７Ｂに示したようなカーソル停止機能を無効化できることも有益である。そのため、表示制御部２５０は、何らかのタッチイベントに応じて、カーソル停止機能の有効／無効を切り替えてもよい。
【０１０８】
＜４．処理の流れの例＞
次に、図１８及び図１９を用いて、上述した実施形態に係る表示制御処理の流れについて説明する。図１８は、表示制御処理の概略的な流れの一例を示すフローチャートである。なお、ここでは情報処理装置１００の観点で説明を記述するが、情報処理装置２００による処理も同様に構成され得る。
【０１０９】
図１８を参照すると、まず、情報処理装置１００のタッチ検出部１１０により、タッチが検出される（ステップＳ１０２）。すると、認識部１４０は、タッチ画面２０にカーソルが既に表示されているか否かを判定する（ステップＳ１０４）。ここで、タッチ画面２０にカーソルが既に表示されている場合には、処理はステップＳ１０６へ進む。一方、タッチ画面２０にカーソルが表示されていない場合には、処理はステップＳ１１６へ進む。
【０１１０】
ステップＳ１０６において、認識部１４０は、タッチ検出部１１０により検出されたタッチ位置がカーソル１０のカーソル操作領域内であるか否かを判定する（ステップＳ１０６）。カーソル操作領域内とは、例えば、図３に例示した操作対象位置１５を中心とする矩形領域１８の内部に相当する。ここで、タッチ位置がカーソル操作領域内である場合には、処理はステップＳ１０８へ進む。一方、タッチ位置がカーソル操作領域内でない場合には、処理はステップＳ１１２へ進む。
【０１１１】
ステップＳ１０８において、認識部１４０は、カーソル制御に関するタッチイベントを認識する（ステップＳ１０８）。ここで認識されるカーソル制御に関するタッチイベントは、例えば、上述したイベントＥｖ２〜Ｅｖ６を含み得る。すると、認識されたタッチイベントに応じたカーソル１０に関連する操作が、表示制御部１５０により実行される（ステップＳ１１０）。ここで実行される操作は、本明細書で説明した多様なＧＵＩの操作を含み得る。
【０１１２】
一方、ステップＳ１１２では、認識部１４０は、既存の技術と同様の一般的なタッチイベントを認識する（ステップＳ１１２）。その後、生成されたタッチイベントに応じた処理が、表示制御部１５０又はアプリケーション部１７０により実行される（ステップＳ１１４）。
【０１１３】
また、ステップＳ１１６では、認識部１４０は、タッチ位置との間にオフセットを有する操作対象位置を決定し、決定した操作対象位置がカーソル表示対象オブジェクト上にあるか否かを判定する（ステップＳ１１６）。ここでのオフセットの値は、初期値である。ここで、操作対象位置がカーソル表示対象オブジェクト上にある場合には、当該操作対象位置を囲む枠を有するカーソル１０が、表示制御部１５０によりタッチ画面２０に新たに表示される（ステップＳ１１８）。一方、操作対象位置がカーソル表示対象オブジェクト上にない場合には、認識部１４０は、既存の技術と同様の一般的なタッチイベントを認識する（ステップＳ１１２）。その後、認識されたタッチイベントに応じた処理が、表示制御部１５０又はアプリケーション部１７０により実行される（ステップＳ１１４）。
【０１１４】
図１９は、タッチ移動関連イベント（即ち上述したイベントＥｖ２）が認識された場合の表示制御処理の詳細な流れの一例を示すフローチャートである。図１９に示した処理は、例えば、図１８のステップＳ１１０の一部として実行され得る。
【０１１５】
図１９を参照すると、表示制御部１５０は、タッチ開始時の操作対象位置とタッチ位置との間隔に応じた移動レートで、カーソル１０を移動する（ステップＳ２０２）。このとき、表示制御部１５０は、カーソル１０の移動経路が操作可能なオブジェクト上を通過すると判定すると（ステップＳ２０４）、当該オブジェクト上でカーソル１０を停止する（ステップＳ２０６）。また、表示制御部１５０は、カーソル１０の移動中に認識部１４０によりイベントＥｖ３が認識されると（ステップＳ２０８）、イベントＥｖ３におけるタッチ位置の近傍にカーソル１０を移動する（ステップＳ２１０）。
【０１１６】
次に、表示制御部１５０は、操作可能なオブジェクト上にカーソルが到達したか否かを判定する（ステップＳ２１２）。そして、表示制御部１５０は、操作可能なオブジェクト上にカーソルが到達した場合には、当該オブジェクトをロックする（ステップＳ２１４）。なお、タッチ開始時に既に操作可能なオブジェクトがロックされている場合には、カーソル１０と共に当該オブジェクトもまた移動され得る。その後、タッチ移動関連イベントに応じた表示制御部１５０による表示制御処理は終了する。
【０１１７】
＜５．まとめ＞
ここまで、図１〜図１９を用いて、本発明の一実施形態及びその変形例について説明した。上述した構成によれば、画面上での操作イベント（例えば、タッチイベント又は近接イベント）に応じて、操作対象位置を囲む枠を有するカーソルが情報処理装置の画面に表示される。このカーソルの操作対象位置は、操作イベントにおける操作検出位置（例えば、タッチ位置又は近接検出位置）との間にオフセットを有する位置である。従って、カーソルを表示した場合にも、操作対象位置にあるオブジェクトが指又はスタイラスなどの操作体により隠されることがない。また、操作対象位置を囲む枠を有するリング状のカーソルを用いることで、枠と操作検出位置との位置関係に応じた直感的かつ多様なユーザインタフェースをユーザに提供することが可能となる。
【０１１８】
例えば、ドラッグ又はフリックなど、操作検出位置の移動と関連付けられる操作イベントが認識された場合には、移動開始時の操作検出位置と操作対象位置との間の間隔に応じて変化する移動レートで、カーソルを移動させることができる。かかる移動レートは、例えば、目的に応じてアプリケーションごとに定義され得る。例えば、表示解像度の高いタッチ画面又は近接検出画面上での操作対象位置の微調整のために、上述したカーソルを利用することが可能である。また、これら画面とは別の画面にカーソルを移動させ、その別の画面に表示されたオブジェクトを上述したカーソルを利用して操作することも可能となる。
【０１１９】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【０１２０】
１０              カーソル
１２              補助カーソル
１４              枠
１５              操作対象位置
１６              操作検出位置（タッチ位置）
２０              画面（タッチ画面）
１００，２００    情報処理装置
１４０            認識部
１５０，２５０    表示制御部
【図１】
0005510185.tif 000002
【図２】
0005510185.tif 000003
【図３】
0005510185.tif 000004
【図４】
0005510185.tif 000005
【図５】
0005510185.tif 000006
【図６】
0005510185.tif 000007
【図７】
0005510185.tif 000008
【図８Ａ】
0005510185.tif 000009
【図８Ｂ】
0005510185.tif 000010
【図８Ｃ】
0005510185.tif 000011
【図９Ａ】
0005510185.tif 000012
【図９Ｂ】
0005510185.tif 000013
【図１０】
0005510185.tif 000014
【図１１Ａ】
0005510185.tif 000015
【図１１Ｂ】
0005510185.tif 000016
【図１２】
0005510185.tif 000017
【図１３】
0005510185.tif 000018
【図１４】
0005510185.tif 000019
【図１５Ａ】
0005510185.tif 000020
【図１５Ｂ】
0005510185.tif 000021
【図１６】
0005510185.tif 000022
【図１７Ａ】
0005510185.tif 000023
【図１７Ｂ】
0005510185.tif 000024
【図１８】
0005510185.tif 000025
【図１９】
0005510185.tif 000026