情報処理装置、プログラム及び表示制御方法
【課題】操作対象を隠すことなく画面上での多様なユーザインタフェースを実現することを可能とすること。
【解決手段】画面上での操作イベントを認識する認識部と、上記認識部により第1の操作イベントが認識された場合に、上記第1の操作イベントにおける操作検出位置との間にオフセットを有する位置である操作対象位置を囲む枠を有するカーソルを上記画面に表示する表示制御部と、を備える情報処理装置を提供する。
【解決手段】画面上での操作イベントを認識する認識部と、上記認識部により第1の操作イベントが認識された場合に、上記第1の操作イベントにおける操作検出位置との間にオフセットを有する位置である操作対象位置を囲む枠を有するカーソルを上記画面に表示する表示制御部と、を備える情報処理装置を提供する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、プログラム及び表示制御方法に関する。
【背景技術】
【0002】
近年、タッチ画面(touch screen)が設けられた様々な機器が広く利用されている。タッチ画面は、タッチパネルとも呼ばれ、1つの画面上で表示及び入力という2つの機能性を実現する。タッチ画面の性能は年々進化しており、近い将来、人間の視覚の解像度と同等の画質を表現し得るタッチ画面が製品化されることが予測されている。
【0003】
タッチ画面の表示解像度が高度化するにつれて、表示解像度とタッチ画面への入力の分解能との乖離が顕著となってきている。表示解像度と入力分解能との乖離が広がると、いわゆるファットフィンガ(fat finger)の問題がより深刻となり得る。ファットフィンガとは、機器を扱うユーザの指の太さを原因とする問題に関連して使用される用語である。例えば、タッチ画面に限らず、キーボード、キーパッド又はボタンを用いる場合の誤入力などの文脈においても、ファットフィンガという用語は使用され得る。しかし、1つの画面上で表示及び入力が行われるタッチ画面では、誤入力のみならず、指(又は指の代わりに使用されるスタイラスなど)により画面上のオブジェクト(例えばボタン、アイコン又はテキストなど)が隠されるという特有の問題が存在する。なお、このような問題は、タッチ画面と同じく1つの画面上で表示及び入力という2つの機能性を実現する近接検出画面に関しても同様である(近接検出画面とは、操作体が直接画面に接触することを必要とせず、操作体が画面に接近したことを検出してユーザ入力を認識する画面をいう)。
【0004】
ファットフィンガの問題を回避するために利用され得る1つの技術として、既存の製品のいくつかは、いわゆるルーペ(あるいは拡大鏡)と呼ばれる機能を提供する。ルーペ機能は、典型的には、ユーザにより指定される画面内の領域を拡大して表示する機能である。しかし、ルーペ機能を用いる場合にも、拡大された領域を操作する際に、指が少なくとも部分的にオブジェクトを覆い隠してしまうことは避けられない。また、領域の拡大表示に伴う視線の移動は、直感的なインタフェースを損なうと共に、ユーザにとっての負担となり得る。
【0005】
これらの問題に対し、下記特許文献1は、画面上の操作対象位置を先端で指し示す矢印状のカーソルの柄の部分に、カーソルの移動及びオブジェクトの選択のための専用の領域を設けることを提案している。それにより、操作対象位置とタッチ位置とが分離される。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特許第3744116号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、上記特許文献1に記載された手法では、操作のためにユーザがタッチし得る領域が専用の小さい領域に限られるため、ユーザインタフェースの汎用性が失われ、目的に応じた多様なユーザインタフェースを提供することが困難となる。
【0008】
そこで、本発明は、操作対象を隠すことなく画面上での多様なユーザインタフェースを実現することを可能とする、新規かつ改良された情報処理装置、プログラム及び表示制御方法を提供しようとするものである。
【課題を解決するための手段】
【0009】
本発明のある実施形態によれば、画面上での操作イベントを認識する認識部と、上記認識部により第1の操作イベントが認識された場合に、上記第1の操作イベントにおける操作検出位置との間にオフセットを有する位置である操作対象位置を囲む枠を有するカーソルを上記画面に表示する表示制御部と、を備える情報処理装置が提供される。
【0010】
かかる構成によれば、操作イベント(例えば、タッチイベント又は近接イベント)における操作検出位置(例えば、タッチ位置又は近接検出位置)と上記カーソルの枠との間の位置関係を利用する様々なユーザインタフェースをユーザに提供することができる。また、操作対象位置にあるオブジェクトは、上記カーソル又は上記カーソルを操作する操作体により覆い隠されない。
【0011】
また、上記表示制御部は、操作検出位置の移動と関連付けられる第2の操作イベントが上記認識部により認識された場合に、移動開始時の操作検出位置と上記操作対象位置との間の間隔に応じて変化する割合で、上記カーソルを移動させてもよい。
【0012】
また、上記間隔が所定の閾値を下回る場合には、操作検出位置の移動量と上記カーソルの移動量とは等しく、上記間隔が上記所定の閾値を上回る場合には、操作検出位置の移動量よりも上記カーソルの移動量は小さくてもよい。
【0013】
また、上記間隔が所定の閾値を下回る場合には、操作検出位置の移動量と上記カーソルの移動量とは等しく、上記間隔が上記所定の閾値を上回る場合には、操作検出位置の移動量よりも上記カーソルの移動量は大きくてもよい。
【0014】
また、上記表示制御部は、上記画面とは別の画面に上記カーソルを表示可能であってもよく、上記第2の操作イベントに応じて上記カーソルが上記別の画面に移動した場合に、上記カーソルをユーザにより操作可能とするための補助カーソルを上記画面にさらに表示してもよい。
【0015】
また、上記表示制御部は、上記第2の操作イベントに応じた上記カーソルの移動経路上に操作可能なオブジェクトが存在する場合に、上記カーソルを上記操作可能なオブジェクト上で停止させてもよい。
【0016】
また、上記表示制御部は、上記第2の操作イベントに応じて上記カーソルを移動させる際に、上記操作対象位置が上記画面に表示された移動可能なオブジェクトに重なっている場合には、上記移動可能なオブジェクトを上記カーソルと共に移動させるべきか否かを上記間隔に応じて判定してもよい。
【0017】
また、上記表示制御部は、操作検出位置の移動と関連付けられる第2の操作イベントが上記認識部により認識された場合に、移動開始時の操作検出位置が上記カーソルの枠の内側にあるか外側にあるかに応じて変化する割合で、上記カーソルを移動させてもよい。
【0018】
また、上記表示制御部は、上記認識部により第3の操作イベントが認識された場合に、上記オフセットに関わらず、上記第3の操作イベントにおける操作検出位置の近傍に上記カーソルを表示してもよい。
【0019】
また、上記表示制御部は、上記操作対象位置が上記画面に表示された操作可能なオブジェクトに重なっている場合に、上記カーソルの枠の色、形状又はサイズを変化させてもよい。
【0020】
また、上記表示制御部は、上記認識部により上記カーソルの枠の内側での第4の操作イベントが認識された場合に、上記カーソルの枠の内側の表示を拡大し又は縮小してもよい。
【0021】
また、上記カーソルの枠はリング状であり、上記操作対象位置は当該リングの中心であってもよい。
【0022】
また、上記表示制御部は、上記操作対象位置が操作可能な複数のオブジェクトに重なっている場合には、上記認識部により認識される上記カーソルの回転と関連付けられる第5の操作イベントに応じて、上記複数のオブジェクトのいずれかを選択してもよい。
【0023】
また、上記表示制御部は、上記カーソルの枠の内側へのタッチを伴う第6の操作イベントが上記認識部により認識された場合に、上記第6の操作イベントの前に設定された基準位置と上記操作対象位置とが共に上記画面に表示されるように、上記画面の表示を縮小してもよい。
【0024】
また、上記表示制御部は、上記第2の操作イベントに応じた上記カーソルの移動経路が上記カーソルの非表示領域に衝突する場合に、上記カーソルを移動させる代わりに上記カーソルの枠を変形させてもよい。
【0025】
また、上記表示制御部は、タッチの開始から所定の時間の間上記操作対象位置を補正することにより、ユーザの意図しない上記操作検出位置の変動を吸収してもよい。
【0026】
また、上記認識部により認識される操作イベントは、タッチイベント又は近接イベントであってもよい。
【0027】
また、本発明の別の実施形態によれば、画面を有する情報処理装置を制御するコンピュータを、上記画面上での操作イベントを認識する認識部と、上記認識部により第1の操作イベントが認識された場合に、上記第1の操作イベントにおける操作検出位置との間にオフセットを有する位置である操作対象位置を囲む枠を有するカーソルを上記画面に表示する表示制御部と、として機能させるためのプログラムが提供される。
【0028】
また、本発明の別の実施形態によれば、画面の表示を制御するための表示制御方法であって、上記画面上での操作イベントを認識するステップと、第1の操作イベントが認識された場合に、上記第1の操作イベントにおける操作検出位置との間にオフセットを有する位置である操作対象位置を囲む枠を有するカーソルを上記画面に表示するステップと、を含む表示制御方法が提供される。
【発明の効果】
【0029】
以上説明したように、本発明に係る情報処理装置、プログラム及び表示制御方法によれば、操作対象を隠すことなく画面上での多様なユーザインタフェースを実現することが可能となる。
【図面の簡単な説明】
【0030】
【図1】一実施形態に係る情報処理装置のハードウェア構成の一例を示すブロック図である。
【図2】一実施形態に係る情報処理装置の論理的な構成の一例を示すブロック図である。
【図3】一実施形態に係るカーソルの形状の一例を説明するための説明図である。
【図4】一実施形態に係るカーソルの形状の他の例を説明するための説明図である。
【図5】カーソルのオフセットについて説明するための第1の説明図である。
【図6】カーソルのオフセットについて説明するための第2の説明図である。
【図7】一実施形態に係るGUIの第1の例について説明するための説明図である。
【図8A】一実施形態に係るGUIの第2の例について説明するための第1の説明図である。
【図8B】一実施形態に係るGUIの第2の例について説明するための第2の説明図である。
【図8C】一実施形態に係るGUIの第2の例について説明するための第3の説明図である。
【図9A】一実施形態に係るGUIの第3の例について説明するための第1の説明図である。
【図9B】一実施形態に係るGUIの第3の例について説明するための第2の説明図である。
【図10】一実施形態に係るGUIの第4の例について説明するための説明図である。
【図11A】一実施形態に係るGUIの第5の例について説明するための第1の説明図である。
【図11B】一実施形態に係るGUIの第5の例について説明するための第2の説明図である。
【図12】一実施形態に係るGUIの第6の例について説明するための説明図である。
【図13】一実施形態に係るGUIの第7の例について説明するための説明図である。
【図14】操作対象位置の補正について説明するための説明図である。
【図15A】一変形例に係る情報処理装置のハードウェア構成について説明するための概略図である。
【図15B】一変形例に係る情報処理装置のハードウェア構成の他の例について説明するための概略図である。
【図16】一変形例に係る情報処理装置の論理的な構成の一例を示すブロック図である。
【図17A】一変形例に係るGUIの一例について説明するための第1の説明図である。
【図17B】一変形例に係るGUIの一例について説明するための第2の説明図である。
【図18】上述した実施形態に係る表示制御処理の概略的な流れの一例を示すフローチャートである。
【図19】タッチ移動関連イベントが認識された場合の表示制御処理の詳細な流れの一例を示すフローチャートである。
【発明を実施するための形態】
【0031】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付すことにより重複説明を省略する。
【0032】
また、以下の順序にしたがって当該「発明を実施するための形態」を説明する。
1.一実施形態の構成例
1−1.装置の構成
1−2.カーソルの形状
1−3.カーソル表示位置
2.多様なGUIの例
2−1.カーソル位置の微調整
2−2.絶対的位置へのカーソル移動
2−3.オブジェクトのロック
2−4.カーソル内の表示拡大
2−5.奥行き方向の操作
2−6.選択範囲のズーム
2−7.カーソルの変形
2−8.操作対象位置の補正
3.変形例の説明
3−1.装置の構成
3−2.GUIの例
4.処理の流れの例
5.まとめ
【0033】
<1.一実施形態の構成例>
本明細書において説明する情報処理装置は、典型的には、タッチ画面又は近接検出画面を有する装置である。情報処理装置は、例えば、PC(Personal Computer)、スマートフォン、携帯情報端末(Personal Digital Assistant)、音楽プレーヤ、ゲーム端末又はデジタル家電機器などであってよい。また、情報処理装置は、これら装置と接続される周辺機器であってもよい。
【0034】
[1−1.装置の構成]
まず、図1及び図2を用いて、本発明の一実施形態に係る情報処理装置100の構成について説明する。なお、本実施形態では、情報処理装置100がタッチ画面を有する例について主に説明する。しかしながら、後の説明から明らかであるように、情報処理装置100がタッチ画面の代わりに近接検出画面を有する場合にも、本実施形態の多くの特徴は同等に適用可能である。
【0035】
(1)ハードウェア構成
図1は、本実施形態に係る情報処理装置100のハードウェア構成の一例を示すブロック図である。図1を参照すると、情報処理装置100は、タッチ画面20、バス30、CPU(Central Processing Unit)32、ROM(Read Only Memory)34及びRAM(Random Access Memory)36を備える。
【0036】
タッチ画面20は、タッチ検出面22及び表示面24を含む。タッチ検出面22は、タッチ画面20上へのユーザによるタッチを感知し、操作検出位置(即ち、タッチ位置)に応じた電気信号を生成する。タッチ検出面22は、例えば、抵抗膜方式、表面弾性波方式又は静電容量方式などの任意のタッチ検出方式に従って形成され得る。また、タッチ検出面22は、タッチの押圧力をさらに感知してもよい。なお、タッチ画面20の代わりに近接検出画面が利用される場合には、近接検出画面は、例えば、光学式又は静電容量式の近接センサを用いて、画面に接近する操作体を感知する。この場合にも、近接検出画面は、操作検出位置(近接検出位置)に応じた電気信号を生成する。表示面24は、情報処理装置100からの出力画像を表示する。表示面24は、例えば、液晶、有機EL(Organic Light-Emitting Diode:OLED)又はCRT(Cathode Ray Tube)などを用いて実現され得る。
【0037】
バス30は、タッチ検出面22、表示面24、CPU32、ROM34及びRAM36を相互に接続する。
【0038】
CPU32は、情報処理装置100の動作全般を制御する。ROM34は、CPU32により実行されるソフトウェアを構成するプログラム及びデータを記憶する。RAM36は、CPU32による処理の実行時に、プログラム及びデータを一時的に記憶する。
【0039】
なお、ここでは説明の簡明さの観点から説明を省略するが、情報処理装置100は、図1に示した構成要素以外の構成要素を含んでもよい。
【0040】
(2)論理的な構成
図2は、本実施形態に係る情報処理装置100の論理的な構成の一例を示すブロック図である。図2を参照すると、情報処理装置100は、タッチ検出部110、表示部120、認識部140、表示制御部150、記憶部160及びアプリケーション部170を備える。
【0041】
タッチ検出部110は、タッチ画面20のタッチ検出面22により感知されるタッチを検出する。そして、タッチ検出部110は、検出される操作検出位置(本実施形態では、タッチ位置に等しい。他の実施形態においては、近接検出位置であってもよい)を含む情報を、認識部140へ時系列で出力する。また、タッチ検出部110は、押圧力などの追加的な情報をさらに認識部140へ出力してもよい。
【0042】
表示部120は、表示制御部150による制御に応じ、タッチ画面20の表示面24を用いて、情報処理装置100からの出力画像を表示する。例えば、表示部120により表示される出力画像は、後述するアプリケーション部170により生成されるアプリケーション画面を含み得る。また、表示部120により表示される出力画像は、情報処理装置100のオペレーティングシステム(図示せず)の画面を含み得る。さらに、これら出力画像には、表示制御部150により制御されるカーソルの画像が重畳され得る。
【0043】
認識部140は、タッチ検出部110から入力されるタッチ位置などの情報に基づいて、タッチ画面20上でのユーザによるタッチに応じた様々な操作イベント(本実施形態では、タッチイベントに相当する。他の実施形態においては、近接イベントであってもよい)を認識する。本実施形態において、認識部140により認識されるタッチイベントは、例えば、タッチ開始、タッチ移動及びタッチ終了という3種類の原始的なイベントを含み得る。これらイベントには、タッチ位置がそれぞれ関連付けられる。タッチ画面20がマルチタッチ検出機能を有する場合には、各イベントに複数のタッチ位置がそれぞれ関連付けられ得る。さらに、認識部140は、原始的なタッチイベントの組み合わせ又はタッチ位置の軌跡などに基づいて、より抽象化されたタッチイベントを認識し得る。例えば、認識部140により認識される抽象化されたタッチイベントは、タップ、ドラッグ、ツイスト、マルチタップ、ピンチイン及びピンチアウトなどを含み得る。さらに、タッチ検出面22がタッチの押圧力を感知する場合には、認識部140は、所定の押圧力の変化を1つのタッチイベントとして認識してもよい。認識部140は、このように認識されるタッチイベントを表示制御部150へ出力する。
【0044】
表示制御部150は、表示部120により表示される出力画像の内容を制御する。例えば、表示制御部150は、アプリケーション部170により生成されるアプリケーション画面又はオペレーティングシステムの画面を表示部120に表示させる。また、本実施形態において、表示制御部150は、後に説明する特有のカーソルを表示部120に表示させる。そして、表示制御部150は、認識部140により認識されるタッチイベントに応じて、当該カーソル及び関連するオブジェクトの表示を制御する。
【0045】
記憶部160は、表示制御部150による表示制御のために使用されるデータを記憶する。例えば、記憶部160は、表示制御部150により表示されるカーソルの形状及びサイズを定義するカーソル定義データを記憶する。また、例えば、記憶部160は、カーソルを介する操作の対象となる位置である操作対象位置とタッチ位置との間のオフセットの初期値及び現在値を記憶する。また、例えば、記憶部160は、タッチ位置の移動と関連付けられるタッチイベント(例えばドラッグなど)に応じてカーソルが移動する際の移動量に関する設定値を記憶する。これらデータを用いて実現されるユーザインタフェースの例については、後により詳細に説明する。
【0046】
アプリケーション部170は、情報処理装置100のユーザにアプリケーション機能を提供する。例えば、アプリケーション部170は、Webブラウザ、デジタルアルバム、文書エディタ、電子メールクライアント、コンテンツプレーヤ及びゲームアプリケーションのうちの1つ以上を含んでよい。ユーザは、後に説明する特有のカーソルを用いたユーザインタフェースを介して、これらアプリケーション機能を利用することができる。
【0047】
[1−2.カーソルの形状]
次に、本実施形態に係る情報処理装置100が提供するユーザインタフェースのために用いられるカーソルの基本的な構成を説明する。
【0048】
図3は、カーソルの形状の一例を説明するための説明図である。図3の左には、情報処理装置100のタッチ画面20が示されている。タッチ画面20には、一例としてのカーソル10が表示されている。カーソル10は、操作対象位置を囲む枠を有するリング状の形状をしている。
【0049】
図3の右には、拡大されたカーソル10の枠14が示されている。枠14は、共に操作対象位置15を中心とする、半径D1の内周及び半径D2の外周により形成される。これら枠14の内周及び外周の半径の値は、例えば、記憶部160により記憶される定義データにより定義され得る。半径D1の値は、例えば、ユーザの平均的な指先の幅が枠14の内部に十分に入る程度の値から選択されてよい。枠14は、例えば、枠14と重なる画面上のオブジェクトが視認可能となるように、半透明に表示され得る。
【0050】
カーソル10に対する操作は、例えば、操作対象位置15を中心とする矩形領域18の内部へのタッチにより行われ得る。即ち、表示制御部150は、認識部140によりタッチイベントが認識された場合に、例えばそのタッチイベントにおけるタッチ位置が矩形領域18の内部であれば、当該タッチイベントに応じて、カーソル10を用いたユーザインタフェースの制御を実行する。
【0051】
図3の右に示したように、矩形領域18の内部の領域は、カーソル10の枠14との位置関係に応じて、3つの領域に分類され得る。第1の領域は、枠内(リング内)の領域である。例えば、タッチ検出部110により検出されたタッチ位置と操作対象位置15との間の間隔(gap)が半径D1よりも小さい場合には、枠内へのタッチが行われたことが認識され得る。第2の領域は、枠上の領域である。例えば、タッチ位置と操作対象位置15との間の間隔が半径D1以上かつ半径D2以下である場合には、枠上へのタッチが行われたことが認識され得る。第3の領域は、枠外(リング外)の領域である。例えば、タッチ位置と操作対象位置15との間の間隔が半径D2よりも大きい場合には、枠外へのタッチが行われたことが認識され得る。
【0052】
図4は、カーソルの形状の他の例を説明するための説明図である。図4の左には、操作対象位置15aを囲む枠14aを有するカーソル10aが示されている。カーソル10aの枠14aは、ボックス状の形状をしている。一方、図4の右には、操作対象位置15bを囲む枠14bを有するカーソル10bが示されている。カーソル10bの枠14bは、上下左右において部分的に間隙を有するリング状の形状をしている。このように、情報処理装置100のタッチ画面20に表示されるカーソルの枠は、操作対象位置を囲む様々な形状をとり得る。そして、カーソルの枠は、必ずしも操作対象位置を完全に囲んでいなくてもよい。これらの場合においても、表示制御部150は、タッチ位置と操作対象位置との間隔に応じて、タッチ位置を枠内、枠上及び枠外の3つに分類することができる。
【0053】
本実施形態に関する以下の説明では、図3に例示したリング状のカーソル10がタッチ画面20に表示されるものとする。
【0054】
[1−3.カーソル表示位置]
表示制御部150は、任意のタッチイベントが認識された場合に、上述したカーソルをタッチ画面20に表示してよい。
【0055】
例えば、表示制御部150は、認識部140により何らかのタッチイベント(イベントEv1)が認識された場合に、当該タッチイベントのタッチ位置との間で所定のオフセットを有する操作対象位置を決定する。そして、表示制御部150は、決定した操作対象位置がカーソル表示対象のオブジェクト上にある場合には、当該操作対象位置を囲むカーソル10を表示し得る。
【0056】
図5及び図6は、上述したカーソルのオフセットについて説明するための説明図である。
【0057】
図5の左のタッチ画面20において、タッチ位置16の上方に操作対象位置15が示されている。この場合、タッチ位置16と操作対象位置15との間のオフセットは、垂直方向の距離Lにより与えられる。図5の中央のタッチ画面20においては、タッチ位置16の上方の操作対象位置15は、カーソル表示対象オブジェクトであるテキスト上に位置している。そこで、表示制御部150は、この操作対象位置15を囲むカーソル10を表示する。このように表示されたカーソル10は、ユーザがタッチ画面20から指(又はスタイラスなどのその他の操作体)を離した後も、画面上に残ってよい。図5の右には、指が離れた状態でタッチ画面20にカーソル10が表示されている様子が示されている。
【0058】
なお、図5の例に限定されず、表示制御部150は、所定の閾値を超える押圧力を伴うタッチ、特定のメニューの選択又はボタンの押下などの他のイベントをきっかけとして、カーソル10を表示してもよい。
【0059】
図5の例におけるオフセットは、非表示であったカーソル10が表示される際の初期値のオフセットである。一方、カーソル10が表示された後、ユーザが再度カーソル10の周囲をタッチした場合には、新たなタッチ開始位置と操作対象位置との間のオフセットが保存される。
【0060】
例えば、図6の上段中央のタッチ画面20では、操作対象位置15の下方の枠上をユーザがタッチしている。そして、ユーザが指を右方向にドラッグすると、ドラッグ開始時のオフセットが維持され、指の移動に沿ってカーソル10も移動している。図6の上段右のタッチ画面20においても、ドラッグ終了時のタッチ位置16の上方を操作対象位置15とするカーソル10が表示されている。
【0061】
また、例えば、図6の下段中央のタッチ画面20では、操作対象位置15の右方の枠上をユーザがタッチしている。そして、ユーザが指を左方向にドラッグすると、ドラッグ開始時のオフセットが維持され、指の移動に沿ってカーソル10も移動している。図6の下段右のタッチ画面20においても、ドラッグ終了時のタッチ位置16の左方を操作対象位置15とするカーソル10が表示されている。
【0062】
情報処理装置100は、このようなカーソル10を用いることにより、次節で説明するような多様なグラフィカルユーザインタフェース(GUI)を実現する。
【0063】
<2.多様なGUIの例>
[2−1.カーソル位置の微調整]
図7は、本実施形態に係るGUIの第1の例について説明するための説明図である。図7のシナリオにおいて、表示制御部150は、タッチ位置の移動と関連付けられる第2のタッチイベント(イベントEv2)が認識部140により認識された場合に、移動開始時のタッチ位置と操作対象位置との間の間隔に応じて変化する割合で、カーソルを移動させる。イベントEv2は、例えば、ドラッグ又はフリックなどであってよい。
【0064】
以下の説明において、タッチ位置の移動量に対するカーソルの移動量の割合を移動レートという。一般的なGUIにおいては、タッチ位置の移動量とカーソルの移動量とは等しく、即ち、移動レートは100%である。本実施形態では、移動レートは、記憶部160に記憶される設定値として、移動開始時のタッチ位置と操作対象位置との間の間隔に応じて定義され得る。例えば、移動レートは、上記間隔と比較される閾値を用いて、閾値よりも大きい場合にはX1%、閾値よりも小さい場合にはX2%などと定義されてもよい。このとき、閾値をカーソル10の内周の枠14の半径D1(又は外周の半径D2)と等しい値とすれば、タッチ位置が枠内か否か(又は枠外か否か)に応じて異なる移動レートを定義することができる。また、移動レートは、例えば、上記間隔を引数とする関数によって定義されてもよい。また、移動レートは、例えば、タッチ位置が枠内である場合にはY1%、枠上である場合にはY2%、枠外である場合にはY3%などのように定義されてもよい。
【0065】
図7のシナリオでは、上記間隔がカーソル10の枠14の外周の半径D2に等しい閾値以下である場合には移動レートは100%であり、上記間隔が当該閾値を上回る場合には移動レートは50%であるものとする。このような移動レートの定義は、例えば、カーソル位置の微調整が求められるような状況において有益である。
【0066】
図7の上段を参照すると、ユーザがカーソル10の枠内をタッチしてドラッグした場合には、タッチ位置16の移動量とカーソル10の移動量とは等しく、即ち移動レートは100%である。一方、図7の下段を参照すると、ユーザがカーソル10の枠外をタッチしてドラッグした場合には、カーソル10の移動量はタッチ位置16の移動量の半分であり、即ち移動レートは50%である。
【0067】
このようなカーソル位置の微調整は、例えば、表示解像度の高い画面に表示された文字の小さいテキストの選択、スクロールバー若しくはスライダを用いた画面のスクロール、又は多数表示された写真のサムネイルの中からの写真の選択など、様々な場面で活用され得る。
【0068】
[2−2.絶対的位置へのカーソル移動]
図8A〜図8Cは、本実施形態に係るGUIの第2の例について説明するための説明図である。ここでのシナリオにおいて、表示制御部150は、認識部140により第3のタッチイベント(イベントEv3)が認識された場合に、上述したオフセットに関わらず、イベントEv3におけるタッチ位置の近傍にカーソル10を表示する。イベントEv3は、例えば、上述したイベントEv2が継続している最中のマルチタップ、押圧力の変化、又は直交フリックなどであってよい。直交フリックとは、例えば、イベントEv2におけるタッチ位置の移動方向と凡そ直交する方向に向けた敏速な方向転換を意味する。本シナリオにおけるユーザインタフェースは、例えば、100%ではない移動レートを理由として指先から離れたカーソルをユーザが即座に指先の近くに引き寄せたいと望むような状況において有益である。即ち、上述したイベントEv3は、絶対的なタッチ位置へのカーソル移動のトリガとなるイベントである。
【0069】
例えば、図8Aの例において、まず、ユーザがカーソル10の枠外にタッチしてドラッグした結果、カーソル10は、移動レート50%で移動し、ユーザの指先から離れている(図8A左及び中央参照)。次に、マルチタップ、押圧力の変化又は直交フリックなどのイベントEv3が認識された結果、カーソル10は、移動レートに関わらず、タッチ位置16の近傍に移動している(図8A右参照)。マルチタップ、押圧力の変化又は直交フリックなどのための動作は、ユーザにとって、ドラッグなどの動作から連続的に行い易い動作である。従って、このようなイベントEv3をカーソル位置を引き寄せるトリガとして用いることは、ユーザインタフェースの操作性の向上に寄与し得る。
【0070】
なお、ドラッグなどの動作により移動中のカーソルだけでなく、静止しているカーソルを指先に即座に引き寄せたいとユーザが望むことも考えられる。この場合、例えば、ダブルタップ(短時間内のタップの繰り返し)などをそのトリガイベントとして用いてもよい。
【0071】
図8Bは、イベントEv3が利用され得る他の場面の例を示している。図8Bの例では、タッチ画面20に表示内容のスクロールのためのスライダ41が表示されている(図8B左参照)。ユーザは、例えば、このスライダ41のつまみにカーソル10の操作対象位置を合わせ、カーソル10の枠外をタッチして右方向へドラッグする。それにより、つまみはカーソル10と共に移動レート50%で右方向へ移動し、それに応じてタッチ画面20の表示内容がスクロールする(図8B中央参照)。さらに、イベントEv3が認識された結果、つまみ及びカーソル10は、移動レートに関わらず、タッチ位置16の近傍に移動している(図8B右参照)。
【0072】
図8Cは、イベントEv3が利用され得るまた別の場面の例を示している。図8Cの例では、タッチ画面20にカーソル10及びテキストが表示されている。そして、ユーザは、カーソル10をドラッグすることにより、テキストの一部を選択することができる。図8Cの中央には、ドラッグにより選択された選択範囲42が示されている。しかし、上述したように、操作対象位置とタッチ位置との間のオフセットが維持されることから、例えば移動レートが100%の場合には、ユーザはタッチ画面20の端部を選択できない可能性がある。そのような場合、ユーザがイベントEv3を入力することにより、移動レートに関わらずカーソル10はタッチ位置16の近傍に移動し、タッチ画面20の端部に表示されたテキストの選択が可能となる(図8C右参照)。
【0073】
[2−3.オブジェクトのロック]
図9A及び図9Bは、本実施形態に係るGUIの第3の例について説明するための説明図である。ここでのシナリオにおいて、表示制御部150は、操作対象位置がタッチ画面20に表示された操作可能なオブジェクトに重なっている場合に、当該オブジェクトをロックし、カーソル10の枠の色、形状又はサイズを変化させる。操作可能なオブジェクトとは、例えば、Webブラウザにおけるハイパーリンク、デジタルアルバムにおけるサムネイル、デスクトップ画面における機能アイコン、又はアプリケーション画面におけるボタンなどであってよい。表示制御部150は、操作可能なオブジェクトを一度ロックした後、カーソル位置が移動した場合にも、何らかの条件(例えば、ロック解除のための所定のイベントの発生、又は所定の距離を超えるカーソルの移動など)が満たされるまで、当該オブジェクトを操作対象として維持し得る。
【0074】
例えば、図9Aの例において、タッチ画面20に表示されたテキストは、二重下線で示した3つのハイパーリンクを含む(図9A左参照)。ここで、ユーザがカーソル10をドラッグして操作対象位置をハイパーリンク43に合わせることにより、表示制御部150は、ハイパーリンク43をロックする(図9A中央参照)。そして、例えば、ユーザがカーソル10の枠をタップ(又はダブルタップなど)することにより(図9A右参照)、ハイパーリンクが実行され、表示内容はリンク先に遷移する。
【0075】
このようなオブジェクトのロックは、特に表示解像度の高いタッチ画面20に表示される小さいオブジェクトを操作する際に有益である。例えば、指によるタップ動作は、タッチ位置のぶれを伴うことが少なくない。そのため、オブジェクトを操作しようとしてユーザがタッチ画面20をタップした場合にも、操作対象位置がずれてしまうことで、目的のオブジェクトを操作できない可能性がある。しかし、本シナリオでは、上述したようにオブジェクトがロックされるため、ユーザは、操作対象のオブジェクトを確実に操作することができる。この場合、リング状のカーソル10は、オブジェクトをロックするための照準としての役割をも有する。
【0076】
また、ロックされたオブジェクトは、カーソル10と共に移動可能であってもよい。表示制御部150は、ドラッグ又はフリックなどのタッチイベントに付随してオブジェクトを移動させるべきか否かを、例えばタッチ位置と操作対象位置との間の間隔に応じて判定し得る。
【0077】
例えば、図9Bの例において、タッチ画面20には、移動可能な3つのアイコンが表示されている。このうち、アイコン44にカーソル10の操作対象位置が重なっており、アイコン44がロックされている(図9B左参照)。そして、例えば、ユーザがカーソル10の枠内をタッチしてドラッグすると、カーソル10がアイコン44から離れて単独で移動する(図9B上段参照)。一方、例えば、ユーザがカーソル10の枠上をタッチしてドラッグすると、カーソル10がアイコン44と共に移動する(図9B下段参照)。
【0078】
[2−4.カーソル内の表示拡大]
図10は、本実施形態に係るGUIの第4の例について説明するための説明図である。図10のシナリオにおいて、表示制御部150は、認識部140によりカーソル10の枠内での第4のタッチイベント(イベントEv4)が認識された場合に、カーソル10の枠内の表示を拡大(ズームイン)又は縮小(ズームアウト)する。イベントEv4は、例えば、ピンチアウト及びピンチインなどであってよい。この場合、ピンチアウトが表示の拡大に対応し、ピンチインが表示の縮小に対応し得る。なお、ピンチアウトとは、タッチした2本の指の間の間隔を広げる動作を指し、ピンチインとは、タッチした2本の指の間の間隔を狭める動作を指す。
【0079】
図10の例では、タッチ画面20に4つのサムネイルが示されている。このうち、サムネイル45aにカーソル10の操作対象位置が重なっている。そして、例えば、ユーザがカーソル10の枠内でピンチアウトすることにより、カーソル10の枠内の表示が拡大される。なお、図示していないものの、ユーザがカーソル10の枠内でさらにピンチインすることにより、カーソル10の枠内の表示は縮小され又は元通りに復元され得る。
【0080】
このように、操作対象位置を囲む枠を有するカーソルは、より直感的な動作でルーペ機能と同等の機能を実現することができる。
【0081】
[2−5.奥行き方向の操作]
図11A及び図11Bは、本実施形態に係るGUIの第5の例について説明するための説明図である。ここでのシナリオにおいて、表示制御部150は、操作対象位置が操作可能な複数のオブジェクトに重なっている場合に、認識部140により認識されるカーソルの回転と関連付けられる第5のタッチイベント(イベントEv5)に応じて、当該複数のオブジェクトのいずれかを操作対象として選択する。イベントEv5は、例えば、ツイスト(指を同じ位置にタッチした状態でひねる動作)又はツインローテート(マルチタッチの状態において第1の指の位置を固定したまま第2の指で弧を描く動作)などであってよい。
【0082】
例えば、図11Aの例において、タッチ画面20には互いに重なり合う3つのサムネイル45a、45b及び45cが表示されている。そして、カーソル10は、これら3つのサムネイル45a、45b及び45cに重なっている。このうち、図11Aの左の時点では、サムネイル45cがフォーカスされている(即ち、サムネイル45cが操作対象である)。この状態において、例えばユーザがカーソル10内でツイスト又はツインローテートの動作を行うと、上述したイベントEv5が認識される。その結果、表示制御部150は、フォーカスをZ方向(タッチ画面20の奥行き方向)に遷移させる。例えば、図11Aの右上の例では、フォーカスがサムネイル45bに移っている。また、図11Aの右下の例では、フォーカスがサムネイル45aに移っている。
【0083】
また、図11Bを参照すると、タッチ画面20においてカーソル10の枠にハンドル46が付加されている。ハンドル46は、カーソル10を回転させるためにユーザにより操作されるユーザインタフェースである。このようなハンドル46のドラッグもまた、上述したイベントEv5として扱われ得る。図11Bの例では、ユーザがカーソル10のハンドル46をドラッグすることにより、フォーカスがサムネイル45aに移っている。
【0084】
このような奥行き方向の操作(例えばフォーカスの遷移)は、例えば、表示解像度の高い画面に表示されたオブジェクトが互いに重なり合っており、個々のオブジェクトを選択することが難しい状況において有益である。
【0085】
[2−6.選択範囲のズーム]
図12は、本実施形態に係るGUIの第6の例について説明するための説明図である。図12のシナリオにおいて、表示制御部150は、カーソル10の枠内へのタッチを伴う第6のタッチイベント(イベントEv6)が認識部140により認識された場合に、第6のタッチイベントの前に設定された基準位置と操作対象位置とが共にタッチ画面20に表示されるように、タッチ画面20の表示を縮小する。ここで、事前に設定される基準位置とは、例えば、領域選択における選択範囲の開始位置、又は長文のテキスト内に設定されるブックマークの位置などであってよい。また、第6のタッチイベントは、例えば、基準位置が設定されている状況下におけるカーソルの枠上でのピンチインなどであってよい。
【0086】
例えば、図12の左を参照すると、タッチ画面20が下方にスクロールした結果、選択範囲42の開始位置は画面外に外れている。この状態において、例えばユーザがカーソル10の枠を抑えながらピンチインの動作を行うと、基準位置と最新のカーソル10の操作対象位置とが共に表示されるように、タッチ画面20の表示が縮小される(図12右参照)。その結果、ユーザは、簡単に選択範囲42の全体をタッチ画面20上で見ることができる。また、図12の右に示した状態において、例えばユーザがカーソル10の枠を抑えながらピンチアウトの動作を行うと、タッチ画面20の表示内容は図12の左に示したような元の状態に復元され得る。
【0087】
[2−7.カーソルの変形]
図13は、本実施形態に係るGUIの第7の例について説明するための説明図である。図13のシナリオにおいて、表示制御部150は、上述した第2のタッチイベントEv2に応じたカーソルの移動経路がカーソルの非表示領域に衝突する場合に、カーソル10を移動させる代わりに、カーソル10の枠を変形させる。カーソルの非表示領域とは、例えば、より先へ画面をスクロールさせられない場合のタッチ画面20の端部、又はその他の画面内の領域であってよい。
【0088】
例えば、図13の左を参照すると、タッチ画面20には、あるページ内に記述されたテキストが示されている。カーソル10は、このページの最上部に位置している。この状態において、例えばユーザがカーソル10をさらに上方へドラッグすると、カーソル10が移動する代わりに、カーソル10の枠がつぶれるように変形する(図12右参照)。また、カーソル10の枠がつぶれる方向は、ドラッグ方向に一致している。それにより、ユーザは、これ以上カーソル10を移動させられないことを直感的に理解することができる。
【0089】
[2−8.操作対象位置の補正]
上述しように、例えば操作体が指である場合において、ユーザがタッチ画面20をタッチした際、目的のタッチ位置と実際にタッチされる位置との間にわずかなずれが生じることが少なくない。また、タッチした直後の短い時間の間にタッチ位置がぶれてしまう可能性もある。そこで、表示制御部150は、カーソル10の操作対象位置を常に厳密に枠の中心とするのではなく、ヒステリシスを考慮して操作対象位置を補正することにより、ユーザが意図しないタッチ位置の小さな変動を吸収してもよい。
【0090】
図14は、そのような操作対象位置の補正について説明するための説明図である。図14の左には、画面に表示されるテキストを構成する文字列中の隣接する2つの文字“e”及び“c”、並びにカーソル10が示されている。カーソル10の操作対象位置15は、文字“e”に重なっている。ここで、ユーザがカーソル10を操作しようとしてタッチした瞬間に、タッチ位置がわずかに右方へぶれたことを想定する。このとき、操作対象位置が補正されない場合には、操作対象位置15が右方へわずかに移動することにより、操作対象が文字“e”ではなく“c”に変化し得る(図14上段参照)。しかし、これはユーザの意図する操作ではない。そこで、表示制御部150は、例えば、タッチ開始から所定の時間(例えば十分の数秒)の間、操作対象位置15をヒステリシスが生じるように補正する。図14の下段を参照すると、カーソル10の操作対象位置が位置15aから位置15bへ補正されることにより、操作対象が文字“c”に移ることなく文字“e”に残っている。なお、操作対象位置15の補正量は、例えば、タッチ開始時からのタッチ位置の移動量から決定されてもよい。その代わりに、操作対象位置15の補正量は、例えば、タッチ開始時の操作対象位置15と操作対象の中心(例えば、図14の文字“e”の中心19)との差分から決定されてもよい。
【0091】
<3.変形例の説明>
ここまで、主に情報処理装置100が1つの画面のみを有する例について説明した。しかしながら、本実施形態は、複数の画面を扱う装置においても特有の効果を発揮し得る。そこで、本節では、本実施形態の一変形例として、複数の画面を扱う装置において上述したカーソルを利用する例を説明する。
【0092】
[3−1.装置の構成]
(1)ハードウェア構成の概要
図15A及び図15Bは、本変形例に係る情報処理装置200のハードウェア構成について説明するための概略図である。
【0093】
図15Aを参照すると、ユーザにより把持された情報処理装置200a及び表示装置50が示されている。情報処理装置200aは、図1に例示した情報処理装置100と同等のハードウェア構成を含み得る。さらに、情報処理装置200aは、表示装置50と通信可能である。表示装置50は、例えば、デジタルテレビ若しくはコンテンツプレーヤなどのデジタル家電機器であってもよく、又は情報処理装置200a自体のための追加的なモニタなどであってもよい。情報処理装置200aは、タッチ画面220を備える。一方、表示装置50は、画面222を備える。
【0094】
図15Bを参照すると、情報処理装置200bが示されている。情報処理装置200bは、図1に例示した情報処理装置100と同等のハードウェア構成を含み得る。さらに、情報処理装置200bは、タッチ画面220及び画面222を備える。画面222は、タッチ画面であってもよく、表示機能のみを有する画面であってもよい。
【0095】
図15Aに例示した情報処理装置200aは、例えば、情報処理装置200a自体が有するアプリケーション機能に加えて、表示装置50により表示されるコンテンツをユーザが間接的に(又は遠隔的に)操作するためのGUIをユーザに提供する。一方、図15Bに例示した情報処理装置200bは、例えば、画面222に表示されるコンテンツをタッチ画面220上で操作するためのGUIをユーザに提供する。これらGUIもまた、上述したカーソルを用いて実現される。なお、以下の説明において、情報処理装置200a及び200bを互いに区別する必要がない場合には、情報処理装置200a及び200bを情報処理装置200と総称する。
【0096】
(2)論理的な構成
図16は、本変形例に係る情報処理装置200の論理的な構成の一例を示すブロック図である。図16を参照すると、情報処理装置200は、タッチ検出部110、表示部120、通信部232、認識部140、表示制御部250、記憶部160及びアプリケーション部170を備える。また、通信部232は、副表示部230と接続される。
【0097】
副表示部230は、図15A及び図15Bに例示した画面222に対応する論理ブロックである。副表示部230は、表示制御部150による制御に応じ、画面222を用いて画像を表示する。
【0098】
通信部232は、例えば、表示制御部250が副表示部230と通信するための通信手段としての役割を有する。通信部232は、例えば、Bluetooth(登録商標)、UWB(Ultra Wide Band)又は無線LAN(Local Area Network)などの無線通信プロトコルに準拠した通信インタフェースを用いて実装されてよい。また、図15Bの例のように、画面222が物理的に情報処理装置200の一部である場合には、通信部232は、より単純な信号線を用いて実装されてもよい。
【0099】
表示制御部250は、表示部120及び副表示部230により表示される出力画像の内容を制御する。また、本変形例において、表示制御部250は、特有のカーソルを表示部120及び副表示部230に表示させる。そして、表示制御部250は、認識部140により認識されるタッチイベントに応じて当該カーソル及び関連するオブジェクトの表示を制御することにより、多様なユーザインタフェースを実現する。表示制御部250により表示されるカーソルの基本的な構成は、図3〜図6を用いて既に説明した構成と同様であってよい。
【0100】
[3−2.GUIの例]
本変形例においても、情報処理装置200は、ここまでに説明した多様なGUIをタッチ画面220を用いてユーザに提供し得る。さらに、情報処理装置200は、以下に説明するようなGUIを提供する。
【0101】
図17A及び図17Bは、本変形例に係るGUIの一例について説明するための説明図である。ここでのシナリオにおいて、表示制御部250は、タッチ位置の移動と関連付けられる上述した第2のタッチイベント(イベントEv2)が認識部140により認識された場合に、移動開始時のタッチ位置と操作対象位置との間の間隔に応じて変化する割合で、カーソルを移動させる。上述したように、イベントEv2は、例えば、ドラッグ又はフリックなどであってよい。即ち、本シナリオは、図7を用いて説明したシナリオに類似している。
【0102】
例えば、図17Aの例において、上記間隔がカーソル10の枠14の外周の半径D2に等しい閾値以下である場合には移動レートは100%であり、上記間隔が当該閾値を上回る場合には移動レートは300%であるものとする。このような移動レートの定義は、例えば、カーソル位置をタッチ画面220の外部へ移動させることが求められる状況において有益である。
【0103】
図17Aの上段を参照すると、ユーザがカーソル10の枠内をタッチしてドラッグした場合には、タッチ位置の移動量とカーソル10の移動量とは等しく、即ち移動レートは100%である。一方、図17Aの下段を参照すると、ユーザがカーソル10の枠外をタッチしてドラッグした場合には、カーソル10の移動量はタッチ位置の移動量の3倍となる。その結果、タッチ画面220内でのドラッグに応じて、カーソル10は、タッチ画面220から画面222へ移動する。
【0104】
また、本実施形態において、表示制御部250は、イベントEv2に応じてカーソル10が画面222に移動した場合に、カーソル10をユーザにより操作可能とするための補助カーソルをタッチ画面220にさらに表示する。例えば、図17Aの下段では、画面222に移動したカーソル10を操作するための補助カーソル12が、タッチ画面220に表示されている。ユーザは、この補助カーソル12を操作することにより、カーソル10を直接操作する際のユーザインタフェースと同様に、画面222の表示内容を間接的に制御することができる。
【0105】
図17Aの例のように、移動レートが100%を超える場合には、カーソル10の移動先がその時点で画面に表示されていない領域に到達する可能性がある。その場合、表示制御部250は、カーソル10を画面外に移動する代わりに、カーソルを画面の端部に留めると共に、画面を自動的にスクロールすることにより、カーソルを目的の移動先まで移動させる。このようなカーソルの移動及び画面の自動的なスクロールに際して、表示制御部250は、例えば、カーソルの移動経路上に操作可能なオブジェクトが存在する場合には、カーソルを当該操作可能なオブジェクト上で停止させてもよい。
【0106】
例えば、図17Bの例において、ユーザがカーソル10の枠外をドラッグしたことにより、移動レート500%でカーソル10がタッチ画面220から画面222へ移動している。さらに、ドラッグに応じたカーソル10の移動先が画面222の外部であることから、カーソル10は画面222の上端部に留まり、その代わりに画面222が自動的にスクロールしている(図17B中央参照)。そして、スクロールの最中に操作可能なオブジェクトであるアイコン44がカーソル10に重なった結果、自動的なスクロールが終了し、カーソル10がアイコン44上で停止している。さらに、アイコン44は、カーソル10によりロックされている(図17B右参照)。そして、この場合にも、タッチ画面220に補助カーソル12が表示されることで、ユーザは、ロックされたアイコン44を補助カーソル12を使用して即座に操作することができる。
【0107】
なお、例えば、操作可能なオブジェクトが多数存在するような状況下では、ユーザの意図しないオブジェクトがロックされることを防ぐために、図17Bに示したようなカーソル停止機能を無効化できることも有益である。そのため、表示制御部250は、何らかのタッチイベントに応じて、カーソル停止機能の有効/無効を切り替えてもよい。
【0108】
<4.処理の流れの例>
次に、図18及び図19を用いて、上述した実施形態に係る表示制御処理の流れについて説明する。図18は、表示制御処理の概略的な流れの一例を示すフローチャートである。なお、ここでは情報処理装置100の観点で説明を記述するが、情報処理装置200による処理も同様に構成され得る。
【0109】
図18を参照すると、まず、情報処理装置100のタッチ検出部110により、タッチが検出される(ステップS102)。すると、認識部140は、タッチ画面20にカーソルが既に表示されているか否かを判定する(ステップS104)。ここで、タッチ画面20にカーソルが既に表示されている場合には、処理はステップS106へ進む。一方、タッチ画面20にカーソルが表示されていない場合には、処理はステップS116へ進む。
【0110】
ステップS106において、認識部140は、タッチ検出部110により検出されたタッチ位置がカーソル10のカーソル操作領域内であるか否かを判定する(ステップS106)。カーソル操作領域内とは、例えば、図3に例示した操作対象位置15を中心とする矩形領域18の内部に相当する。ここで、タッチ位置がカーソル操作領域内である場合には、処理はステップS108へ進む。一方、タッチ位置がカーソル操作領域内でない場合には、処理はステップS112へ進む。
【0111】
ステップS108において、認識部140は、カーソル制御に関するタッチイベントを認識する(ステップS108)。ここで認識されるカーソル制御に関するタッチイベントは、例えば、上述したイベントEv2〜Ev6を含み得る。すると、認識されたタッチイベントに応じたカーソル10に関連する操作が、表示制御部150により実行される(ステップS110)。ここで実行される操作は、本明細書で説明した多様なGUIの操作を含み得る。
【0112】
一方、ステップS112では、認識部140は、既存の技術と同様の一般的なタッチイベントを認識する(ステップS112)。その後、生成されたタッチイベントに応じた処理が、表示制御部150又はアプリケーション部170により実行される(ステップS114)。
【0113】
また、ステップS116では、認識部140は、タッチ位置との間にオフセットを有する操作対象位置を決定し、決定した操作対象位置がカーソル表示対象オブジェクト上にあるか否かを判定する(ステップS116)。ここでのオフセットの値は、初期値である。ここで、操作対象位置がカーソル表示対象オブジェクト上にある場合には、当該操作対象位置を囲む枠を有するカーソル10が、表示制御部150によりタッチ画面20に新たに表示される(ステップS118)。一方、操作対象位置がカーソル表示対象オブジェクト上にない場合には、認識部140は、既存の技術と同様の一般的なタッチイベントを認識する(ステップS112)。その後、認識されたタッチイベントに応じた処理が、表示制御部150又はアプリケーション部170により実行される(ステップS114)。
【0114】
図19は、タッチ移動関連イベント(即ち上述したイベントEv2)が認識された場合の表示制御処理の詳細な流れの一例を示すフローチャートである。図19に示した処理は、例えば、図18のステップS110の一部として実行され得る。
【0115】
図19を参照すると、表示制御部150は、タッチ開始時の操作対象位置とタッチ位置との間隔に応じた移動レートで、カーソル10を移動する(ステップS202)。このとき、表示制御部150は、カーソル10の移動経路が操作可能なオブジェクト上を通過すると判定すると(ステップS204)、当該オブジェクト上でカーソル10を停止する(ステップS206)。また、表示制御部150は、カーソル10の移動中に認識部140によりイベントEv3が認識されると(ステップS208)、イベントEv3におけるタッチ位置の近傍にカーソル10を移動する(ステップS210)。
【0116】
次に、表示制御部150は、操作可能なオブジェクト上にカーソルが到達したか否かを判定する(ステップS212)。そして、表示制御部150は、操作可能なオブジェクト上にカーソルが到達した場合には、当該オブジェクトをロックする(ステップS214)。なお、タッチ開始時に既に操作可能なオブジェクトがロックされている場合には、カーソル10と共に当該オブジェクトもまた移動され得る。その後、タッチ移動関連イベントに応じた表示制御部150による表示制御処理は終了する。
【0117】
<5.まとめ>
ここまで、図1〜図19を用いて、本発明の一実施形態及びその変形例について説明した。上述した構成によれば、画面上での操作イベント(例えば、タッチイベント又は近接イベント)に応じて、操作対象位置を囲む枠を有するカーソルが情報処理装置の画面に表示される。このカーソルの操作対象位置は、操作イベントにおける操作検出位置(例えば、タッチ位置又は近接検出位置)との間にオフセットを有する位置である。従って、カーソルを表示した場合にも、操作対象位置にあるオブジェクトが指又はスタイラスなどの操作体により隠されることがない。また、操作対象位置を囲む枠を有するリング状のカーソルを用いることで、枠と操作検出位置との位置関係に応じた直感的かつ多様なユーザインタフェースをユーザに提供することが可能となる。
【0118】
例えば、ドラッグ又はフリックなど、操作検出位置の移動と関連付けられる操作イベントが認識された場合には、移動開始時の操作検出位置と操作対象位置との間の間隔に応じて変化する移動レートで、カーソルを移動させることができる。かかる移動レートは、例えば、目的に応じてアプリケーションごとに定義され得る。例えば、表示解像度の高いタッチ画面又は近接検出画面上での操作対象位置の微調整のために、上述したカーソルを利用することが可能である。また、これら画面とは別の画面にカーソルを移動させ、その別の画面に表示されたオブジェクトを上述したカーソルを利用して操作することも可能となる。
【0119】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【0120】
10 カーソル
12 補助カーソル
14 枠
15 操作対象位置
16 操作検出位置(タッチ位置)
20 画面(タッチ画面)
100,200 情報処理装置
140 認識部
150,250 表示制御部
【技術分野】
【0001】
本発明は、情報処理装置、プログラム及び表示制御方法に関する。
【背景技術】
【0002】
近年、タッチ画面(touch screen)が設けられた様々な機器が広く利用されている。タッチ画面は、タッチパネルとも呼ばれ、1つの画面上で表示及び入力という2つの機能性を実現する。タッチ画面の性能は年々進化しており、近い将来、人間の視覚の解像度と同等の画質を表現し得るタッチ画面が製品化されることが予測されている。
【0003】
タッチ画面の表示解像度が高度化するにつれて、表示解像度とタッチ画面への入力の分解能との乖離が顕著となってきている。表示解像度と入力分解能との乖離が広がると、いわゆるファットフィンガ(fat finger)の問題がより深刻となり得る。ファットフィンガとは、機器を扱うユーザの指の太さを原因とする問題に関連して使用される用語である。例えば、タッチ画面に限らず、キーボード、キーパッド又はボタンを用いる場合の誤入力などの文脈においても、ファットフィンガという用語は使用され得る。しかし、1つの画面上で表示及び入力が行われるタッチ画面では、誤入力のみならず、指(又は指の代わりに使用されるスタイラスなど)により画面上のオブジェクト(例えばボタン、アイコン又はテキストなど)が隠されるという特有の問題が存在する。なお、このような問題は、タッチ画面と同じく1つの画面上で表示及び入力という2つの機能性を実現する近接検出画面に関しても同様である(近接検出画面とは、操作体が直接画面に接触することを必要とせず、操作体が画面に接近したことを検出してユーザ入力を認識する画面をいう)。
【0004】
ファットフィンガの問題を回避するために利用され得る1つの技術として、既存の製品のいくつかは、いわゆるルーペ(あるいは拡大鏡)と呼ばれる機能を提供する。ルーペ機能は、典型的には、ユーザにより指定される画面内の領域を拡大して表示する機能である。しかし、ルーペ機能を用いる場合にも、拡大された領域を操作する際に、指が少なくとも部分的にオブジェクトを覆い隠してしまうことは避けられない。また、領域の拡大表示に伴う視線の移動は、直感的なインタフェースを損なうと共に、ユーザにとっての負担となり得る。
【0005】
これらの問題に対し、下記特許文献1は、画面上の操作対象位置を先端で指し示す矢印状のカーソルの柄の部分に、カーソルの移動及びオブジェクトの選択のための専用の領域を設けることを提案している。それにより、操作対象位置とタッチ位置とが分離される。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特許第3744116号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、上記特許文献1に記載された手法では、操作のためにユーザがタッチし得る領域が専用の小さい領域に限られるため、ユーザインタフェースの汎用性が失われ、目的に応じた多様なユーザインタフェースを提供することが困難となる。
【0008】
そこで、本発明は、操作対象を隠すことなく画面上での多様なユーザインタフェースを実現することを可能とする、新規かつ改良された情報処理装置、プログラム及び表示制御方法を提供しようとするものである。
【課題を解決するための手段】
【0009】
本発明のある実施形態によれば、画面上での操作イベントを認識する認識部と、上記認識部により第1の操作イベントが認識された場合に、上記第1の操作イベントにおける操作検出位置との間にオフセットを有する位置である操作対象位置を囲む枠を有するカーソルを上記画面に表示する表示制御部と、を備える情報処理装置が提供される。
【0010】
かかる構成によれば、操作イベント(例えば、タッチイベント又は近接イベント)における操作検出位置(例えば、タッチ位置又は近接検出位置)と上記カーソルの枠との間の位置関係を利用する様々なユーザインタフェースをユーザに提供することができる。また、操作対象位置にあるオブジェクトは、上記カーソル又は上記カーソルを操作する操作体により覆い隠されない。
【0011】
また、上記表示制御部は、操作検出位置の移動と関連付けられる第2の操作イベントが上記認識部により認識された場合に、移動開始時の操作検出位置と上記操作対象位置との間の間隔に応じて変化する割合で、上記カーソルを移動させてもよい。
【0012】
また、上記間隔が所定の閾値を下回る場合には、操作検出位置の移動量と上記カーソルの移動量とは等しく、上記間隔が上記所定の閾値を上回る場合には、操作検出位置の移動量よりも上記カーソルの移動量は小さくてもよい。
【0013】
また、上記間隔が所定の閾値を下回る場合には、操作検出位置の移動量と上記カーソルの移動量とは等しく、上記間隔が上記所定の閾値を上回る場合には、操作検出位置の移動量よりも上記カーソルの移動量は大きくてもよい。
【0014】
また、上記表示制御部は、上記画面とは別の画面に上記カーソルを表示可能であってもよく、上記第2の操作イベントに応じて上記カーソルが上記別の画面に移動した場合に、上記カーソルをユーザにより操作可能とするための補助カーソルを上記画面にさらに表示してもよい。
【0015】
また、上記表示制御部は、上記第2の操作イベントに応じた上記カーソルの移動経路上に操作可能なオブジェクトが存在する場合に、上記カーソルを上記操作可能なオブジェクト上で停止させてもよい。
【0016】
また、上記表示制御部は、上記第2の操作イベントに応じて上記カーソルを移動させる際に、上記操作対象位置が上記画面に表示された移動可能なオブジェクトに重なっている場合には、上記移動可能なオブジェクトを上記カーソルと共に移動させるべきか否かを上記間隔に応じて判定してもよい。
【0017】
また、上記表示制御部は、操作検出位置の移動と関連付けられる第2の操作イベントが上記認識部により認識された場合に、移動開始時の操作検出位置が上記カーソルの枠の内側にあるか外側にあるかに応じて変化する割合で、上記カーソルを移動させてもよい。
【0018】
また、上記表示制御部は、上記認識部により第3の操作イベントが認識された場合に、上記オフセットに関わらず、上記第3の操作イベントにおける操作検出位置の近傍に上記カーソルを表示してもよい。
【0019】
また、上記表示制御部は、上記操作対象位置が上記画面に表示された操作可能なオブジェクトに重なっている場合に、上記カーソルの枠の色、形状又はサイズを変化させてもよい。
【0020】
また、上記表示制御部は、上記認識部により上記カーソルの枠の内側での第4の操作イベントが認識された場合に、上記カーソルの枠の内側の表示を拡大し又は縮小してもよい。
【0021】
また、上記カーソルの枠はリング状であり、上記操作対象位置は当該リングの中心であってもよい。
【0022】
また、上記表示制御部は、上記操作対象位置が操作可能な複数のオブジェクトに重なっている場合には、上記認識部により認識される上記カーソルの回転と関連付けられる第5の操作イベントに応じて、上記複数のオブジェクトのいずれかを選択してもよい。
【0023】
また、上記表示制御部は、上記カーソルの枠の内側へのタッチを伴う第6の操作イベントが上記認識部により認識された場合に、上記第6の操作イベントの前に設定された基準位置と上記操作対象位置とが共に上記画面に表示されるように、上記画面の表示を縮小してもよい。
【0024】
また、上記表示制御部は、上記第2の操作イベントに応じた上記カーソルの移動経路が上記カーソルの非表示領域に衝突する場合に、上記カーソルを移動させる代わりに上記カーソルの枠を変形させてもよい。
【0025】
また、上記表示制御部は、タッチの開始から所定の時間の間上記操作対象位置を補正することにより、ユーザの意図しない上記操作検出位置の変動を吸収してもよい。
【0026】
また、上記認識部により認識される操作イベントは、タッチイベント又は近接イベントであってもよい。
【0027】
また、本発明の別の実施形態によれば、画面を有する情報処理装置を制御するコンピュータを、上記画面上での操作イベントを認識する認識部と、上記認識部により第1の操作イベントが認識された場合に、上記第1の操作イベントにおける操作検出位置との間にオフセットを有する位置である操作対象位置を囲む枠を有するカーソルを上記画面に表示する表示制御部と、として機能させるためのプログラムが提供される。
【0028】
また、本発明の別の実施形態によれば、画面の表示を制御するための表示制御方法であって、上記画面上での操作イベントを認識するステップと、第1の操作イベントが認識された場合に、上記第1の操作イベントにおける操作検出位置との間にオフセットを有する位置である操作対象位置を囲む枠を有するカーソルを上記画面に表示するステップと、を含む表示制御方法が提供される。
【発明の効果】
【0029】
以上説明したように、本発明に係る情報処理装置、プログラム及び表示制御方法によれば、操作対象を隠すことなく画面上での多様なユーザインタフェースを実現することが可能となる。
【図面の簡単な説明】
【0030】
【図1】一実施形態に係る情報処理装置のハードウェア構成の一例を示すブロック図である。
【図2】一実施形態に係る情報処理装置の論理的な構成の一例を示すブロック図である。
【図3】一実施形態に係るカーソルの形状の一例を説明するための説明図である。
【図4】一実施形態に係るカーソルの形状の他の例を説明するための説明図である。
【図5】カーソルのオフセットについて説明するための第1の説明図である。
【図6】カーソルのオフセットについて説明するための第2の説明図である。
【図7】一実施形態に係るGUIの第1の例について説明するための説明図である。
【図8A】一実施形態に係るGUIの第2の例について説明するための第1の説明図である。
【図8B】一実施形態に係るGUIの第2の例について説明するための第2の説明図である。
【図8C】一実施形態に係るGUIの第2の例について説明するための第3の説明図である。
【図9A】一実施形態に係るGUIの第3の例について説明するための第1の説明図である。
【図9B】一実施形態に係るGUIの第3の例について説明するための第2の説明図である。
【図10】一実施形態に係るGUIの第4の例について説明するための説明図である。
【図11A】一実施形態に係るGUIの第5の例について説明するための第1の説明図である。
【図11B】一実施形態に係るGUIの第5の例について説明するための第2の説明図である。
【図12】一実施形態に係るGUIの第6の例について説明するための説明図である。
【図13】一実施形態に係るGUIの第7の例について説明するための説明図である。
【図14】操作対象位置の補正について説明するための説明図である。
【図15A】一変形例に係る情報処理装置のハードウェア構成について説明するための概略図である。
【図15B】一変形例に係る情報処理装置のハードウェア構成の他の例について説明するための概略図である。
【図16】一変形例に係る情報処理装置の論理的な構成の一例を示すブロック図である。
【図17A】一変形例に係るGUIの一例について説明するための第1の説明図である。
【図17B】一変形例に係るGUIの一例について説明するための第2の説明図である。
【図18】上述した実施形態に係る表示制御処理の概略的な流れの一例を示すフローチャートである。
【図19】タッチ移動関連イベントが認識された場合の表示制御処理の詳細な流れの一例を示すフローチャートである。
【発明を実施するための形態】
【0031】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付すことにより重複説明を省略する。
【0032】
また、以下の順序にしたがって当該「発明を実施するための形態」を説明する。
1.一実施形態の構成例
1−1.装置の構成
1−2.カーソルの形状
1−3.カーソル表示位置
2.多様なGUIの例
2−1.カーソル位置の微調整
2−2.絶対的位置へのカーソル移動
2−3.オブジェクトのロック
2−4.カーソル内の表示拡大
2−5.奥行き方向の操作
2−6.選択範囲のズーム
2−7.カーソルの変形
2−8.操作対象位置の補正
3.変形例の説明
3−1.装置の構成
3−2.GUIの例
4.処理の流れの例
5.まとめ
【0033】
<1.一実施形態の構成例>
本明細書において説明する情報処理装置は、典型的には、タッチ画面又は近接検出画面を有する装置である。情報処理装置は、例えば、PC(Personal Computer)、スマートフォン、携帯情報端末(Personal Digital Assistant)、音楽プレーヤ、ゲーム端末又はデジタル家電機器などであってよい。また、情報処理装置は、これら装置と接続される周辺機器であってもよい。
【0034】
[1−1.装置の構成]
まず、図1及び図2を用いて、本発明の一実施形態に係る情報処理装置100の構成について説明する。なお、本実施形態では、情報処理装置100がタッチ画面を有する例について主に説明する。しかしながら、後の説明から明らかであるように、情報処理装置100がタッチ画面の代わりに近接検出画面を有する場合にも、本実施形態の多くの特徴は同等に適用可能である。
【0035】
(1)ハードウェア構成
図1は、本実施形態に係る情報処理装置100のハードウェア構成の一例を示すブロック図である。図1を参照すると、情報処理装置100は、タッチ画面20、バス30、CPU(Central Processing Unit)32、ROM(Read Only Memory)34及びRAM(Random Access Memory)36を備える。
【0036】
タッチ画面20は、タッチ検出面22及び表示面24を含む。タッチ検出面22は、タッチ画面20上へのユーザによるタッチを感知し、操作検出位置(即ち、タッチ位置)に応じた電気信号を生成する。タッチ検出面22は、例えば、抵抗膜方式、表面弾性波方式又は静電容量方式などの任意のタッチ検出方式に従って形成され得る。また、タッチ検出面22は、タッチの押圧力をさらに感知してもよい。なお、タッチ画面20の代わりに近接検出画面が利用される場合には、近接検出画面は、例えば、光学式又は静電容量式の近接センサを用いて、画面に接近する操作体を感知する。この場合にも、近接検出画面は、操作検出位置(近接検出位置)に応じた電気信号を生成する。表示面24は、情報処理装置100からの出力画像を表示する。表示面24は、例えば、液晶、有機EL(Organic Light-Emitting Diode:OLED)又はCRT(Cathode Ray Tube)などを用いて実現され得る。
【0037】
バス30は、タッチ検出面22、表示面24、CPU32、ROM34及びRAM36を相互に接続する。
【0038】
CPU32は、情報処理装置100の動作全般を制御する。ROM34は、CPU32により実行されるソフトウェアを構成するプログラム及びデータを記憶する。RAM36は、CPU32による処理の実行時に、プログラム及びデータを一時的に記憶する。
【0039】
なお、ここでは説明の簡明さの観点から説明を省略するが、情報処理装置100は、図1に示した構成要素以外の構成要素を含んでもよい。
【0040】
(2)論理的な構成
図2は、本実施形態に係る情報処理装置100の論理的な構成の一例を示すブロック図である。図2を参照すると、情報処理装置100は、タッチ検出部110、表示部120、認識部140、表示制御部150、記憶部160及びアプリケーション部170を備える。
【0041】
タッチ検出部110は、タッチ画面20のタッチ検出面22により感知されるタッチを検出する。そして、タッチ検出部110は、検出される操作検出位置(本実施形態では、タッチ位置に等しい。他の実施形態においては、近接検出位置であってもよい)を含む情報を、認識部140へ時系列で出力する。また、タッチ検出部110は、押圧力などの追加的な情報をさらに認識部140へ出力してもよい。
【0042】
表示部120は、表示制御部150による制御に応じ、タッチ画面20の表示面24を用いて、情報処理装置100からの出力画像を表示する。例えば、表示部120により表示される出力画像は、後述するアプリケーション部170により生成されるアプリケーション画面を含み得る。また、表示部120により表示される出力画像は、情報処理装置100のオペレーティングシステム(図示せず)の画面を含み得る。さらに、これら出力画像には、表示制御部150により制御されるカーソルの画像が重畳され得る。
【0043】
認識部140は、タッチ検出部110から入力されるタッチ位置などの情報に基づいて、タッチ画面20上でのユーザによるタッチに応じた様々な操作イベント(本実施形態では、タッチイベントに相当する。他の実施形態においては、近接イベントであってもよい)を認識する。本実施形態において、認識部140により認識されるタッチイベントは、例えば、タッチ開始、タッチ移動及びタッチ終了という3種類の原始的なイベントを含み得る。これらイベントには、タッチ位置がそれぞれ関連付けられる。タッチ画面20がマルチタッチ検出機能を有する場合には、各イベントに複数のタッチ位置がそれぞれ関連付けられ得る。さらに、認識部140は、原始的なタッチイベントの組み合わせ又はタッチ位置の軌跡などに基づいて、より抽象化されたタッチイベントを認識し得る。例えば、認識部140により認識される抽象化されたタッチイベントは、タップ、ドラッグ、ツイスト、マルチタップ、ピンチイン及びピンチアウトなどを含み得る。さらに、タッチ検出面22がタッチの押圧力を感知する場合には、認識部140は、所定の押圧力の変化を1つのタッチイベントとして認識してもよい。認識部140は、このように認識されるタッチイベントを表示制御部150へ出力する。
【0044】
表示制御部150は、表示部120により表示される出力画像の内容を制御する。例えば、表示制御部150は、アプリケーション部170により生成されるアプリケーション画面又はオペレーティングシステムの画面を表示部120に表示させる。また、本実施形態において、表示制御部150は、後に説明する特有のカーソルを表示部120に表示させる。そして、表示制御部150は、認識部140により認識されるタッチイベントに応じて、当該カーソル及び関連するオブジェクトの表示を制御する。
【0045】
記憶部160は、表示制御部150による表示制御のために使用されるデータを記憶する。例えば、記憶部160は、表示制御部150により表示されるカーソルの形状及びサイズを定義するカーソル定義データを記憶する。また、例えば、記憶部160は、カーソルを介する操作の対象となる位置である操作対象位置とタッチ位置との間のオフセットの初期値及び現在値を記憶する。また、例えば、記憶部160は、タッチ位置の移動と関連付けられるタッチイベント(例えばドラッグなど)に応じてカーソルが移動する際の移動量に関する設定値を記憶する。これらデータを用いて実現されるユーザインタフェースの例については、後により詳細に説明する。
【0046】
アプリケーション部170は、情報処理装置100のユーザにアプリケーション機能を提供する。例えば、アプリケーション部170は、Webブラウザ、デジタルアルバム、文書エディタ、電子メールクライアント、コンテンツプレーヤ及びゲームアプリケーションのうちの1つ以上を含んでよい。ユーザは、後に説明する特有のカーソルを用いたユーザインタフェースを介して、これらアプリケーション機能を利用することができる。
【0047】
[1−2.カーソルの形状]
次に、本実施形態に係る情報処理装置100が提供するユーザインタフェースのために用いられるカーソルの基本的な構成を説明する。
【0048】
図3は、カーソルの形状の一例を説明するための説明図である。図3の左には、情報処理装置100のタッチ画面20が示されている。タッチ画面20には、一例としてのカーソル10が表示されている。カーソル10は、操作対象位置を囲む枠を有するリング状の形状をしている。
【0049】
図3の右には、拡大されたカーソル10の枠14が示されている。枠14は、共に操作対象位置15を中心とする、半径D1の内周及び半径D2の外周により形成される。これら枠14の内周及び外周の半径の値は、例えば、記憶部160により記憶される定義データにより定義され得る。半径D1の値は、例えば、ユーザの平均的な指先の幅が枠14の内部に十分に入る程度の値から選択されてよい。枠14は、例えば、枠14と重なる画面上のオブジェクトが視認可能となるように、半透明に表示され得る。
【0050】
カーソル10に対する操作は、例えば、操作対象位置15を中心とする矩形領域18の内部へのタッチにより行われ得る。即ち、表示制御部150は、認識部140によりタッチイベントが認識された場合に、例えばそのタッチイベントにおけるタッチ位置が矩形領域18の内部であれば、当該タッチイベントに応じて、カーソル10を用いたユーザインタフェースの制御を実行する。
【0051】
図3の右に示したように、矩形領域18の内部の領域は、カーソル10の枠14との位置関係に応じて、3つの領域に分類され得る。第1の領域は、枠内(リング内)の領域である。例えば、タッチ検出部110により検出されたタッチ位置と操作対象位置15との間の間隔(gap)が半径D1よりも小さい場合には、枠内へのタッチが行われたことが認識され得る。第2の領域は、枠上の領域である。例えば、タッチ位置と操作対象位置15との間の間隔が半径D1以上かつ半径D2以下である場合には、枠上へのタッチが行われたことが認識され得る。第3の領域は、枠外(リング外)の領域である。例えば、タッチ位置と操作対象位置15との間の間隔が半径D2よりも大きい場合には、枠外へのタッチが行われたことが認識され得る。
【0052】
図4は、カーソルの形状の他の例を説明するための説明図である。図4の左には、操作対象位置15aを囲む枠14aを有するカーソル10aが示されている。カーソル10aの枠14aは、ボックス状の形状をしている。一方、図4の右には、操作対象位置15bを囲む枠14bを有するカーソル10bが示されている。カーソル10bの枠14bは、上下左右において部分的に間隙を有するリング状の形状をしている。このように、情報処理装置100のタッチ画面20に表示されるカーソルの枠は、操作対象位置を囲む様々な形状をとり得る。そして、カーソルの枠は、必ずしも操作対象位置を完全に囲んでいなくてもよい。これらの場合においても、表示制御部150は、タッチ位置と操作対象位置との間隔に応じて、タッチ位置を枠内、枠上及び枠外の3つに分類することができる。
【0053】
本実施形態に関する以下の説明では、図3に例示したリング状のカーソル10がタッチ画面20に表示されるものとする。
【0054】
[1−3.カーソル表示位置]
表示制御部150は、任意のタッチイベントが認識された場合に、上述したカーソルをタッチ画面20に表示してよい。
【0055】
例えば、表示制御部150は、認識部140により何らかのタッチイベント(イベントEv1)が認識された場合に、当該タッチイベントのタッチ位置との間で所定のオフセットを有する操作対象位置を決定する。そして、表示制御部150は、決定した操作対象位置がカーソル表示対象のオブジェクト上にある場合には、当該操作対象位置を囲むカーソル10を表示し得る。
【0056】
図5及び図6は、上述したカーソルのオフセットについて説明するための説明図である。
【0057】
図5の左のタッチ画面20において、タッチ位置16の上方に操作対象位置15が示されている。この場合、タッチ位置16と操作対象位置15との間のオフセットは、垂直方向の距離Lにより与えられる。図5の中央のタッチ画面20においては、タッチ位置16の上方の操作対象位置15は、カーソル表示対象オブジェクトであるテキスト上に位置している。そこで、表示制御部150は、この操作対象位置15を囲むカーソル10を表示する。このように表示されたカーソル10は、ユーザがタッチ画面20から指(又はスタイラスなどのその他の操作体)を離した後も、画面上に残ってよい。図5の右には、指が離れた状態でタッチ画面20にカーソル10が表示されている様子が示されている。
【0058】
なお、図5の例に限定されず、表示制御部150は、所定の閾値を超える押圧力を伴うタッチ、特定のメニューの選択又はボタンの押下などの他のイベントをきっかけとして、カーソル10を表示してもよい。
【0059】
図5の例におけるオフセットは、非表示であったカーソル10が表示される際の初期値のオフセットである。一方、カーソル10が表示された後、ユーザが再度カーソル10の周囲をタッチした場合には、新たなタッチ開始位置と操作対象位置との間のオフセットが保存される。
【0060】
例えば、図6の上段中央のタッチ画面20では、操作対象位置15の下方の枠上をユーザがタッチしている。そして、ユーザが指を右方向にドラッグすると、ドラッグ開始時のオフセットが維持され、指の移動に沿ってカーソル10も移動している。図6の上段右のタッチ画面20においても、ドラッグ終了時のタッチ位置16の上方を操作対象位置15とするカーソル10が表示されている。
【0061】
また、例えば、図6の下段中央のタッチ画面20では、操作対象位置15の右方の枠上をユーザがタッチしている。そして、ユーザが指を左方向にドラッグすると、ドラッグ開始時のオフセットが維持され、指の移動に沿ってカーソル10も移動している。図6の下段右のタッチ画面20においても、ドラッグ終了時のタッチ位置16の左方を操作対象位置15とするカーソル10が表示されている。
【0062】
情報処理装置100は、このようなカーソル10を用いることにより、次節で説明するような多様なグラフィカルユーザインタフェース(GUI)を実現する。
【0063】
<2.多様なGUIの例>
[2−1.カーソル位置の微調整]
図7は、本実施形態に係るGUIの第1の例について説明するための説明図である。図7のシナリオにおいて、表示制御部150は、タッチ位置の移動と関連付けられる第2のタッチイベント(イベントEv2)が認識部140により認識された場合に、移動開始時のタッチ位置と操作対象位置との間の間隔に応じて変化する割合で、カーソルを移動させる。イベントEv2は、例えば、ドラッグ又はフリックなどであってよい。
【0064】
以下の説明において、タッチ位置の移動量に対するカーソルの移動量の割合を移動レートという。一般的なGUIにおいては、タッチ位置の移動量とカーソルの移動量とは等しく、即ち、移動レートは100%である。本実施形態では、移動レートは、記憶部160に記憶される設定値として、移動開始時のタッチ位置と操作対象位置との間の間隔に応じて定義され得る。例えば、移動レートは、上記間隔と比較される閾値を用いて、閾値よりも大きい場合にはX1%、閾値よりも小さい場合にはX2%などと定義されてもよい。このとき、閾値をカーソル10の内周の枠14の半径D1(又は外周の半径D2)と等しい値とすれば、タッチ位置が枠内か否か(又は枠外か否か)に応じて異なる移動レートを定義することができる。また、移動レートは、例えば、上記間隔を引数とする関数によって定義されてもよい。また、移動レートは、例えば、タッチ位置が枠内である場合にはY1%、枠上である場合にはY2%、枠外である場合にはY3%などのように定義されてもよい。
【0065】
図7のシナリオでは、上記間隔がカーソル10の枠14の外周の半径D2に等しい閾値以下である場合には移動レートは100%であり、上記間隔が当該閾値を上回る場合には移動レートは50%であるものとする。このような移動レートの定義は、例えば、カーソル位置の微調整が求められるような状況において有益である。
【0066】
図7の上段を参照すると、ユーザがカーソル10の枠内をタッチしてドラッグした場合には、タッチ位置16の移動量とカーソル10の移動量とは等しく、即ち移動レートは100%である。一方、図7の下段を参照すると、ユーザがカーソル10の枠外をタッチしてドラッグした場合には、カーソル10の移動量はタッチ位置16の移動量の半分であり、即ち移動レートは50%である。
【0067】
このようなカーソル位置の微調整は、例えば、表示解像度の高い画面に表示された文字の小さいテキストの選択、スクロールバー若しくはスライダを用いた画面のスクロール、又は多数表示された写真のサムネイルの中からの写真の選択など、様々な場面で活用され得る。
【0068】
[2−2.絶対的位置へのカーソル移動]
図8A〜図8Cは、本実施形態に係るGUIの第2の例について説明するための説明図である。ここでのシナリオにおいて、表示制御部150は、認識部140により第3のタッチイベント(イベントEv3)が認識された場合に、上述したオフセットに関わらず、イベントEv3におけるタッチ位置の近傍にカーソル10を表示する。イベントEv3は、例えば、上述したイベントEv2が継続している最中のマルチタップ、押圧力の変化、又は直交フリックなどであってよい。直交フリックとは、例えば、イベントEv2におけるタッチ位置の移動方向と凡そ直交する方向に向けた敏速な方向転換を意味する。本シナリオにおけるユーザインタフェースは、例えば、100%ではない移動レートを理由として指先から離れたカーソルをユーザが即座に指先の近くに引き寄せたいと望むような状況において有益である。即ち、上述したイベントEv3は、絶対的なタッチ位置へのカーソル移動のトリガとなるイベントである。
【0069】
例えば、図8Aの例において、まず、ユーザがカーソル10の枠外にタッチしてドラッグした結果、カーソル10は、移動レート50%で移動し、ユーザの指先から離れている(図8A左及び中央参照)。次に、マルチタップ、押圧力の変化又は直交フリックなどのイベントEv3が認識された結果、カーソル10は、移動レートに関わらず、タッチ位置16の近傍に移動している(図8A右参照)。マルチタップ、押圧力の変化又は直交フリックなどのための動作は、ユーザにとって、ドラッグなどの動作から連続的に行い易い動作である。従って、このようなイベントEv3をカーソル位置を引き寄せるトリガとして用いることは、ユーザインタフェースの操作性の向上に寄与し得る。
【0070】
なお、ドラッグなどの動作により移動中のカーソルだけでなく、静止しているカーソルを指先に即座に引き寄せたいとユーザが望むことも考えられる。この場合、例えば、ダブルタップ(短時間内のタップの繰り返し)などをそのトリガイベントとして用いてもよい。
【0071】
図8Bは、イベントEv3が利用され得る他の場面の例を示している。図8Bの例では、タッチ画面20に表示内容のスクロールのためのスライダ41が表示されている(図8B左参照)。ユーザは、例えば、このスライダ41のつまみにカーソル10の操作対象位置を合わせ、カーソル10の枠外をタッチして右方向へドラッグする。それにより、つまみはカーソル10と共に移動レート50%で右方向へ移動し、それに応じてタッチ画面20の表示内容がスクロールする(図8B中央参照)。さらに、イベントEv3が認識された結果、つまみ及びカーソル10は、移動レートに関わらず、タッチ位置16の近傍に移動している(図8B右参照)。
【0072】
図8Cは、イベントEv3が利用され得るまた別の場面の例を示している。図8Cの例では、タッチ画面20にカーソル10及びテキストが表示されている。そして、ユーザは、カーソル10をドラッグすることにより、テキストの一部を選択することができる。図8Cの中央には、ドラッグにより選択された選択範囲42が示されている。しかし、上述したように、操作対象位置とタッチ位置との間のオフセットが維持されることから、例えば移動レートが100%の場合には、ユーザはタッチ画面20の端部を選択できない可能性がある。そのような場合、ユーザがイベントEv3を入力することにより、移動レートに関わらずカーソル10はタッチ位置16の近傍に移動し、タッチ画面20の端部に表示されたテキストの選択が可能となる(図8C右参照)。
【0073】
[2−3.オブジェクトのロック]
図9A及び図9Bは、本実施形態に係るGUIの第3の例について説明するための説明図である。ここでのシナリオにおいて、表示制御部150は、操作対象位置がタッチ画面20に表示された操作可能なオブジェクトに重なっている場合に、当該オブジェクトをロックし、カーソル10の枠の色、形状又はサイズを変化させる。操作可能なオブジェクトとは、例えば、Webブラウザにおけるハイパーリンク、デジタルアルバムにおけるサムネイル、デスクトップ画面における機能アイコン、又はアプリケーション画面におけるボタンなどであってよい。表示制御部150は、操作可能なオブジェクトを一度ロックした後、カーソル位置が移動した場合にも、何らかの条件(例えば、ロック解除のための所定のイベントの発生、又は所定の距離を超えるカーソルの移動など)が満たされるまで、当該オブジェクトを操作対象として維持し得る。
【0074】
例えば、図9Aの例において、タッチ画面20に表示されたテキストは、二重下線で示した3つのハイパーリンクを含む(図9A左参照)。ここで、ユーザがカーソル10をドラッグして操作対象位置をハイパーリンク43に合わせることにより、表示制御部150は、ハイパーリンク43をロックする(図9A中央参照)。そして、例えば、ユーザがカーソル10の枠をタップ(又はダブルタップなど)することにより(図9A右参照)、ハイパーリンクが実行され、表示内容はリンク先に遷移する。
【0075】
このようなオブジェクトのロックは、特に表示解像度の高いタッチ画面20に表示される小さいオブジェクトを操作する際に有益である。例えば、指によるタップ動作は、タッチ位置のぶれを伴うことが少なくない。そのため、オブジェクトを操作しようとしてユーザがタッチ画面20をタップした場合にも、操作対象位置がずれてしまうことで、目的のオブジェクトを操作できない可能性がある。しかし、本シナリオでは、上述したようにオブジェクトがロックされるため、ユーザは、操作対象のオブジェクトを確実に操作することができる。この場合、リング状のカーソル10は、オブジェクトをロックするための照準としての役割をも有する。
【0076】
また、ロックされたオブジェクトは、カーソル10と共に移動可能であってもよい。表示制御部150は、ドラッグ又はフリックなどのタッチイベントに付随してオブジェクトを移動させるべきか否かを、例えばタッチ位置と操作対象位置との間の間隔に応じて判定し得る。
【0077】
例えば、図9Bの例において、タッチ画面20には、移動可能な3つのアイコンが表示されている。このうち、アイコン44にカーソル10の操作対象位置が重なっており、アイコン44がロックされている(図9B左参照)。そして、例えば、ユーザがカーソル10の枠内をタッチしてドラッグすると、カーソル10がアイコン44から離れて単独で移動する(図9B上段参照)。一方、例えば、ユーザがカーソル10の枠上をタッチしてドラッグすると、カーソル10がアイコン44と共に移動する(図9B下段参照)。
【0078】
[2−4.カーソル内の表示拡大]
図10は、本実施形態に係るGUIの第4の例について説明するための説明図である。図10のシナリオにおいて、表示制御部150は、認識部140によりカーソル10の枠内での第4のタッチイベント(イベントEv4)が認識された場合に、カーソル10の枠内の表示を拡大(ズームイン)又は縮小(ズームアウト)する。イベントEv4は、例えば、ピンチアウト及びピンチインなどであってよい。この場合、ピンチアウトが表示の拡大に対応し、ピンチインが表示の縮小に対応し得る。なお、ピンチアウトとは、タッチした2本の指の間の間隔を広げる動作を指し、ピンチインとは、タッチした2本の指の間の間隔を狭める動作を指す。
【0079】
図10の例では、タッチ画面20に4つのサムネイルが示されている。このうち、サムネイル45aにカーソル10の操作対象位置が重なっている。そして、例えば、ユーザがカーソル10の枠内でピンチアウトすることにより、カーソル10の枠内の表示が拡大される。なお、図示していないものの、ユーザがカーソル10の枠内でさらにピンチインすることにより、カーソル10の枠内の表示は縮小され又は元通りに復元され得る。
【0080】
このように、操作対象位置を囲む枠を有するカーソルは、より直感的な動作でルーペ機能と同等の機能を実現することができる。
【0081】
[2−5.奥行き方向の操作]
図11A及び図11Bは、本実施形態に係るGUIの第5の例について説明するための説明図である。ここでのシナリオにおいて、表示制御部150は、操作対象位置が操作可能な複数のオブジェクトに重なっている場合に、認識部140により認識されるカーソルの回転と関連付けられる第5のタッチイベント(イベントEv5)に応じて、当該複数のオブジェクトのいずれかを操作対象として選択する。イベントEv5は、例えば、ツイスト(指を同じ位置にタッチした状態でひねる動作)又はツインローテート(マルチタッチの状態において第1の指の位置を固定したまま第2の指で弧を描く動作)などであってよい。
【0082】
例えば、図11Aの例において、タッチ画面20には互いに重なり合う3つのサムネイル45a、45b及び45cが表示されている。そして、カーソル10は、これら3つのサムネイル45a、45b及び45cに重なっている。このうち、図11Aの左の時点では、サムネイル45cがフォーカスされている(即ち、サムネイル45cが操作対象である)。この状態において、例えばユーザがカーソル10内でツイスト又はツインローテートの動作を行うと、上述したイベントEv5が認識される。その結果、表示制御部150は、フォーカスをZ方向(タッチ画面20の奥行き方向)に遷移させる。例えば、図11Aの右上の例では、フォーカスがサムネイル45bに移っている。また、図11Aの右下の例では、フォーカスがサムネイル45aに移っている。
【0083】
また、図11Bを参照すると、タッチ画面20においてカーソル10の枠にハンドル46が付加されている。ハンドル46は、カーソル10を回転させるためにユーザにより操作されるユーザインタフェースである。このようなハンドル46のドラッグもまた、上述したイベントEv5として扱われ得る。図11Bの例では、ユーザがカーソル10のハンドル46をドラッグすることにより、フォーカスがサムネイル45aに移っている。
【0084】
このような奥行き方向の操作(例えばフォーカスの遷移)は、例えば、表示解像度の高い画面に表示されたオブジェクトが互いに重なり合っており、個々のオブジェクトを選択することが難しい状況において有益である。
【0085】
[2−6.選択範囲のズーム]
図12は、本実施形態に係るGUIの第6の例について説明するための説明図である。図12のシナリオにおいて、表示制御部150は、カーソル10の枠内へのタッチを伴う第6のタッチイベント(イベントEv6)が認識部140により認識された場合に、第6のタッチイベントの前に設定された基準位置と操作対象位置とが共にタッチ画面20に表示されるように、タッチ画面20の表示を縮小する。ここで、事前に設定される基準位置とは、例えば、領域選択における選択範囲の開始位置、又は長文のテキスト内に設定されるブックマークの位置などであってよい。また、第6のタッチイベントは、例えば、基準位置が設定されている状況下におけるカーソルの枠上でのピンチインなどであってよい。
【0086】
例えば、図12の左を参照すると、タッチ画面20が下方にスクロールした結果、選択範囲42の開始位置は画面外に外れている。この状態において、例えばユーザがカーソル10の枠を抑えながらピンチインの動作を行うと、基準位置と最新のカーソル10の操作対象位置とが共に表示されるように、タッチ画面20の表示が縮小される(図12右参照)。その結果、ユーザは、簡単に選択範囲42の全体をタッチ画面20上で見ることができる。また、図12の右に示した状態において、例えばユーザがカーソル10の枠を抑えながらピンチアウトの動作を行うと、タッチ画面20の表示内容は図12の左に示したような元の状態に復元され得る。
【0087】
[2−7.カーソルの変形]
図13は、本実施形態に係るGUIの第7の例について説明するための説明図である。図13のシナリオにおいて、表示制御部150は、上述した第2のタッチイベントEv2に応じたカーソルの移動経路がカーソルの非表示領域に衝突する場合に、カーソル10を移動させる代わりに、カーソル10の枠を変形させる。カーソルの非表示領域とは、例えば、より先へ画面をスクロールさせられない場合のタッチ画面20の端部、又はその他の画面内の領域であってよい。
【0088】
例えば、図13の左を参照すると、タッチ画面20には、あるページ内に記述されたテキストが示されている。カーソル10は、このページの最上部に位置している。この状態において、例えばユーザがカーソル10をさらに上方へドラッグすると、カーソル10が移動する代わりに、カーソル10の枠がつぶれるように変形する(図12右参照)。また、カーソル10の枠がつぶれる方向は、ドラッグ方向に一致している。それにより、ユーザは、これ以上カーソル10を移動させられないことを直感的に理解することができる。
【0089】
[2−8.操作対象位置の補正]
上述しように、例えば操作体が指である場合において、ユーザがタッチ画面20をタッチした際、目的のタッチ位置と実際にタッチされる位置との間にわずかなずれが生じることが少なくない。また、タッチした直後の短い時間の間にタッチ位置がぶれてしまう可能性もある。そこで、表示制御部150は、カーソル10の操作対象位置を常に厳密に枠の中心とするのではなく、ヒステリシスを考慮して操作対象位置を補正することにより、ユーザが意図しないタッチ位置の小さな変動を吸収してもよい。
【0090】
図14は、そのような操作対象位置の補正について説明するための説明図である。図14の左には、画面に表示されるテキストを構成する文字列中の隣接する2つの文字“e”及び“c”、並びにカーソル10が示されている。カーソル10の操作対象位置15は、文字“e”に重なっている。ここで、ユーザがカーソル10を操作しようとしてタッチした瞬間に、タッチ位置がわずかに右方へぶれたことを想定する。このとき、操作対象位置が補正されない場合には、操作対象位置15が右方へわずかに移動することにより、操作対象が文字“e”ではなく“c”に変化し得る(図14上段参照)。しかし、これはユーザの意図する操作ではない。そこで、表示制御部150は、例えば、タッチ開始から所定の時間(例えば十分の数秒)の間、操作対象位置15をヒステリシスが生じるように補正する。図14の下段を参照すると、カーソル10の操作対象位置が位置15aから位置15bへ補正されることにより、操作対象が文字“c”に移ることなく文字“e”に残っている。なお、操作対象位置15の補正量は、例えば、タッチ開始時からのタッチ位置の移動量から決定されてもよい。その代わりに、操作対象位置15の補正量は、例えば、タッチ開始時の操作対象位置15と操作対象の中心(例えば、図14の文字“e”の中心19)との差分から決定されてもよい。
【0091】
<3.変形例の説明>
ここまで、主に情報処理装置100が1つの画面のみを有する例について説明した。しかしながら、本実施形態は、複数の画面を扱う装置においても特有の効果を発揮し得る。そこで、本節では、本実施形態の一変形例として、複数の画面を扱う装置において上述したカーソルを利用する例を説明する。
【0092】
[3−1.装置の構成]
(1)ハードウェア構成の概要
図15A及び図15Bは、本変形例に係る情報処理装置200のハードウェア構成について説明するための概略図である。
【0093】
図15Aを参照すると、ユーザにより把持された情報処理装置200a及び表示装置50が示されている。情報処理装置200aは、図1に例示した情報処理装置100と同等のハードウェア構成を含み得る。さらに、情報処理装置200aは、表示装置50と通信可能である。表示装置50は、例えば、デジタルテレビ若しくはコンテンツプレーヤなどのデジタル家電機器であってもよく、又は情報処理装置200a自体のための追加的なモニタなどであってもよい。情報処理装置200aは、タッチ画面220を備える。一方、表示装置50は、画面222を備える。
【0094】
図15Bを参照すると、情報処理装置200bが示されている。情報処理装置200bは、図1に例示した情報処理装置100と同等のハードウェア構成を含み得る。さらに、情報処理装置200bは、タッチ画面220及び画面222を備える。画面222は、タッチ画面であってもよく、表示機能のみを有する画面であってもよい。
【0095】
図15Aに例示した情報処理装置200aは、例えば、情報処理装置200a自体が有するアプリケーション機能に加えて、表示装置50により表示されるコンテンツをユーザが間接的に(又は遠隔的に)操作するためのGUIをユーザに提供する。一方、図15Bに例示した情報処理装置200bは、例えば、画面222に表示されるコンテンツをタッチ画面220上で操作するためのGUIをユーザに提供する。これらGUIもまた、上述したカーソルを用いて実現される。なお、以下の説明において、情報処理装置200a及び200bを互いに区別する必要がない場合には、情報処理装置200a及び200bを情報処理装置200と総称する。
【0096】
(2)論理的な構成
図16は、本変形例に係る情報処理装置200の論理的な構成の一例を示すブロック図である。図16を参照すると、情報処理装置200は、タッチ検出部110、表示部120、通信部232、認識部140、表示制御部250、記憶部160及びアプリケーション部170を備える。また、通信部232は、副表示部230と接続される。
【0097】
副表示部230は、図15A及び図15Bに例示した画面222に対応する論理ブロックである。副表示部230は、表示制御部150による制御に応じ、画面222を用いて画像を表示する。
【0098】
通信部232は、例えば、表示制御部250が副表示部230と通信するための通信手段としての役割を有する。通信部232は、例えば、Bluetooth(登録商標)、UWB(Ultra Wide Band)又は無線LAN(Local Area Network)などの無線通信プロトコルに準拠した通信インタフェースを用いて実装されてよい。また、図15Bの例のように、画面222が物理的に情報処理装置200の一部である場合には、通信部232は、より単純な信号線を用いて実装されてもよい。
【0099】
表示制御部250は、表示部120及び副表示部230により表示される出力画像の内容を制御する。また、本変形例において、表示制御部250は、特有のカーソルを表示部120及び副表示部230に表示させる。そして、表示制御部250は、認識部140により認識されるタッチイベントに応じて当該カーソル及び関連するオブジェクトの表示を制御することにより、多様なユーザインタフェースを実現する。表示制御部250により表示されるカーソルの基本的な構成は、図3〜図6を用いて既に説明した構成と同様であってよい。
【0100】
[3−2.GUIの例]
本変形例においても、情報処理装置200は、ここまでに説明した多様なGUIをタッチ画面220を用いてユーザに提供し得る。さらに、情報処理装置200は、以下に説明するようなGUIを提供する。
【0101】
図17A及び図17Bは、本変形例に係るGUIの一例について説明するための説明図である。ここでのシナリオにおいて、表示制御部250は、タッチ位置の移動と関連付けられる上述した第2のタッチイベント(イベントEv2)が認識部140により認識された場合に、移動開始時のタッチ位置と操作対象位置との間の間隔に応じて変化する割合で、カーソルを移動させる。上述したように、イベントEv2は、例えば、ドラッグ又はフリックなどであってよい。即ち、本シナリオは、図7を用いて説明したシナリオに類似している。
【0102】
例えば、図17Aの例において、上記間隔がカーソル10の枠14の外周の半径D2に等しい閾値以下である場合には移動レートは100%であり、上記間隔が当該閾値を上回る場合には移動レートは300%であるものとする。このような移動レートの定義は、例えば、カーソル位置をタッチ画面220の外部へ移動させることが求められる状況において有益である。
【0103】
図17Aの上段を参照すると、ユーザがカーソル10の枠内をタッチしてドラッグした場合には、タッチ位置の移動量とカーソル10の移動量とは等しく、即ち移動レートは100%である。一方、図17Aの下段を参照すると、ユーザがカーソル10の枠外をタッチしてドラッグした場合には、カーソル10の移動量はタッチ位置の移動量の3倍となる。その結果、タッチ画面220内でのドラッグに応じて、カーソル10は、タッチ画面220から画面222へ移動する。
【0104】
また、本実施形態において、表示制御部250は、イベントEv2に応じてカーソル10が画面222に移動した場合に、カーソル10をユーザにより操作可能とするための補助カーソルをタッチ画面220にさらに表示する。例えば、図17Aの下段では、画面222に移動したカーソル10を操作するための補助カーソル12が、タッチ画面220に表示されている。ユーザは、この補助カーソル12を操作することにより、カーソル10を直接操作する際のユーザインタフェースと同様に、画面222の表示内容を間接的に制御することができる。
【0105】
図17Aの例のように、移動レートが100%を超える場合には、カーソル10の移動先がその時点で画面に表示されていない領域に到達する可能性がある。その場合、表示制御部250は、カーソル10を画面外に移動する代わりに、カーソルを画面の端部に留めると共に、画面を自動的にスクロールすることにより、カーソルを目的の移動先まで移動させる。このようなカーソルの移動及び画面の自動的なスクロールに際して、表示制御部250は、例えば、カーソルの移動経路上に操作可能なオブジェクトが存在する場合には、カーソルを当該操作可能なオブジェクト上で停止させてもよい。
【0106】
例えば、図17Bの例において、ユーザがカーソル10の枠外をドラッグしたことにより、移動レート500%でカーソル10がタッチ画面220から画面222へ移動している。さらに、ドラッグに応じたカーソル10の移動先が画面222の外部であることから、カーソル10は画面222の上端部に留まり、その代わりに画面222が自動的にスクロールしている(図17B中央参照)。そして、スクロールの最中に操作可能なオブジェクトであるアイコン44がカーソル10に重なった結果、自動的なスクロールが終了し、カーソル10がアイコン44上で停止している。さらに、アイコン44は、カーソル10によりロックされている(図17B右参照)。そして、この場合にも、タッチ画面220に補助カーソル12が表示されることで、ユーザは、ロックされたアイコン44を補助カーソル12を使用して即座に操作することができる。
【0107】
なお、例えば、操作可能なオブジェクトが多数存在するような状況下では、ユーザの意図しないオブジェクトがロックされることを防ぐために、図17Bに示したようなカーソル停止機能を無効化できることも有益である。そのため、表示制御部250は、何らかのタッチイベントに応じて、カーソル停止機能の有効/無効を切り替えてもよい。
【0108】
<4.処理の流れの例>
次に、図18及び図19を用いて、上述した実施形態に係る表示制御処理の流れについて説明する。図18は、表示制御処理の概略的な流れの一例を示すフローチャートである。なお、ここでは情報処理装置100の観点で説明を記述するが、情報処理装置200による処理も同様に構成され得る。
【0109】
図18を参照すると、まず、情報処理装置100のタッチ検出部110により、タッチが検出される(ステップS102)。すると、認識部140は、タッチ画面20にカーソルが既に表示されているか否かを判定する(ステップS104)。ここで、タッチ画面20にカーソルが既に表示されている場合には、処理はステップS106へ進む。一方、タッチ画面20にカーソルが表示されていない場合には、処理はステップS116へ進む。
【0110】
ステップS106において、認識部140は、タッチ検出部110により検出されたタッチ位置がカーソル10のカーソル操作領域内であるか否かを判定する(ステップS106)。カーソル操作領域内とは、例えば、図3に例示した操作対象位置15を中心とする矩形領域18の内部に相当する。ここで、タッチ位置がカーソル操作領域内である場合には、処理はステップS108へ進む。一方、タッチ位置がカーソル操作領域内でない場合には、処理はステップS112へ進む。
【0111】
ステップS108において、認識部140は、カーソル制御に関するタッチイベントを認識する(ステップS108)。ここで認識されるカーソル制御に関するタッチイベントは、例えば、上述したイベントEv2〜Ev6を含み得る。すると、認識されたタッチイベントに応じたカーソル10に関連する操作が、表示制御部150により実行される(ステップS110)。ここで実行される操作は、本明細書で説明した多様なGUIの操作を含み得る。
【0112】
一方、ステップS112では、認識部140は、既存の技術と同様の一般的なタッチイベントを認識する(ステップS112)。その後、生成されたタッチイベントに応じた処理が、表示制御部150又はアプリケーション部170により実行される(ステップS114)。
【0113】
また、ステップS116では、認識部140は、タッチ位置との間にオフセットを有する操作対象位置を決定し、決定した操作対象位置がカーソル表示対象オブジェクト上にあるか否かを判定する(ステップS116)。ここでのオフセットの値は、初期値である。ここで、操作対象位置がカーソル表示対象オブジェクト上にある場合には、当該操作対象位置を囲む枠を有するカーソル10が、表示制御部150によりタッチ画面20に新たに表示される(ステップS118)。一方、操作対象位置がカーソル表示対象オブジェクト上にない場合には、認識部140は、既存の技術と同様の一般的なタッチイベントを認識する(ステップS112)。その後、認識されたタッチイベントに応じた処理が、表示制御部150又はアプリケーション部170により実行される(ステップS114)。
【0114】
図19は、タッチ移動関連イベント(即ち上述したイベントEv2)が認識された場合の表示制御処理の詳細な流れの一例を示すフローチャートである。図19に示した処理は、例えば、図18のステップS110の一部として実行され得る。
【0115】
図19を参照すると、表示制御部150は、タッチ開始時の操作対象位置とタッチ位置との間隔に応じた移動レートで、カーソル10を移動する(ステップS202)。このとき、表示制御部150は、カーソル10の移動経路が操作可能なオブジェクト上を通過すると判定すると(ステップS204)、当該オブジェクト上でカーソル10を停止する(ステップS206)。また、表示制御部150は、カーソル10の移動中に認識部140によりイベントEv3が認識されると(ステップS208)、イベントEv3におけるタッチ位置の近傍にカーソル10を移動する(ステップS210)。
【0116】
次に、表示制御部150は、操作可能なオブジェクト上にカーソルが到達したか否かを判定する(ステップS212)。そして、表示制御部150は、操作可能なオブジェクト上にカーソルが到達した場合には、当該オブジェクトをロックする(ステップS214)。なお、タッチ開始時に既に操作可能なオブジェクトがロックされている場合には、カーソル10と共に当該オブジェクトもまた移動され得る。その後、タッチ移動関連イベントに応じた表示制御部150による表示制御処理は終了する。
【0117】
<5.まとめ>
ここまで、図1〜図19を用いて、本発明の一実施形態及びその変形例について説明した。上述した構成によれば、画面上での操作イベント(例えば、タッチイベント又は近接イベント)に応じて、操作対象位置を囲む枠を有するカーソルが情報処理装置の画面に表示される。このカーソルの操作対象位置は、操作イベントにおける操作検出位置(例えば、タッチ位置又は近接検出位置)との間にオフセットを有する位置である。従って、カーソルを表示した場合にも、操作対象位置にあるオブジェクトが指又はスタイラスなどの操作体により隠されることがない。また、操作対象位置を囲む枠を有するリング状のカーソルを用いることで、枠と操作検出位置との位置関係に応じた直感的かつ多様なユーザインタフェースをユーザに提供することが可能となる。
【0118】
例えば、ドラッグ又はフリックなど、操作検出位置の移動と関連付けられる操作イベントが認識された場合には、移動開始時の操作検出位置と操作対象位置との間の間隔に応じて変化する移動レートで、カーソルを移動させることができる。かかる移動レートは、例えば、目的に応じてアプリケーションごとに定義され得る。例えば、表示解像度の高いタッチ画面又は近接検出画面上での操作対象位置の微調整のために、上述したカーソルを利用することが可能である。また、これら画面とは別の画面にカーソルを移動させ、その別の画面に表示されたオブジェクトを上述したカーソルを利用して操作することも可能となる。
【0119】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【0120】
10 カーソル
12 補助カーソル
14 枠
15 操作対象位置
16 操作検出位置(タッチ位置)
20 画面(タッチ画面)
100,200 情報処理装置
140 認識部
150,250 表示制御部
【特許請求の範囲】
【請求項1】
画面上での操作イベントを認識する認識部と、
前記認識部により第1の操作イベントが認識された場合に、前記第1の操作イベントにおける操作検出位置との間にオフセットを有する位置である操作対象位置を囲む枠を有するカーソルを前記画面に表示する表示制御部と、
を備える情報処理装置。
【請求項2】
前記表示制御部は、操作検出位置の移動と関連付けられる第2の操作イベントが前記認識部により認識された場合に、移動開始時の操作検出位置と前記操作対象位置との間の間隔に応じて変化する割合で、前記カーソルを移動させる、請求項1に記載の情報処理装置。
【請求項3】
前記間隔が所定の閾値を下回る場合には、操作検出位置の移動量と前記カーソルの移動量とは等しく、前記間隔が前記所定の閾値を上回る場合には、操作検出位置の移動量よりも前記カーソルの移動量は小さい、請求項2に記載の情報処理装置。
【請求項4】
前記間隔が所定の閾値を下回る場合には、操作検出位置の移動量と前記カーソルの移動量とは等しく、前記間隔が前記所定の閾値を上回る場合には、操作検出位置の移動量よりも前記カーソルの移動量は大きい、請求項2に記載の情報処理装置。
【請求項5】
前記表示制御部は、
前記画面とは別の画面に前記カーソルを表示可能であり、
前記第2の操作イベントに応じて前記カーソルが前記別の画面に移動した場合に、前記カーソルをユーザにより操作可能とするための補助カーソルを前記画面にさらに表示する、
請求項4に記載の情報処理装置。
【請求項6】
前記表示制御部は、前記第2の操作イベントに応じた前記カーソルの移動経路上に操作可能なオブジェクトが存在する場合に、前記カーソルを前記操作可能なオブジェクト上で停止させる、請求項2に記載の情報処理装置。
【請求項7】
前記表示制御部は、前記第2の操作イベントに応じて前記カーソルを移動させる際に、前記操作対象位置が前記画面に表示された移動可能なオブジェクトに重なっている場合には、前記移動可能なオブジェクトを前記カーソルと共に移動させるべきか否かを前記間隔に応じて判定する、請求項2に記載の情報処理装置。
【請求項8】
前記表示制御部は、操作検出位置の移動と関連付けられる第2の操作イベントが前記認識部により認識された場合に、移動開始時の操作検出位置が前記カーソルの枠の内側にあるか外側にあるかに応じて変化する割合で、前記カーソルを移動させる、請求項1に記載の情報処理装置。
【請求項9】
前記表示制御部は、前記認識部により第3の操作イベントが認識された場合に、前記オフセットに関わらず、前記第3の操作イベントにおける操作検出位置の近傍に前記カーソルを表示する、請求項1に記載の情報処理装置。
【請求項10】
前記表示制御部は、前記操作対象位置が前記画面に表示された操作可能なオブジェクトに重なっている場合に、前記カーソルの枠の色、形状又はサイズを変化させる、請求項1に記載の情報処理装置。
【請求項11】
前記表示制御部は、前記認識部により前記カーソルの枠の内側での第4の操作イベントが認識された場合に、前記カーソルの枠の内側の表示を拡大し又は縮小する、請求項1に記載の情報処理装置。
【請求項12】
前記カーソルの枠はリング状であり、前記操作対象位置は当該リングの中心である、請求項1に記載の情報処理装置。
【請求項13】
前記表示制御部は、前記操作対象位置が操作可能な複数のオブジェクトに重なっている場合には、前記認識部により認識される前記カーソルの回転と関連付けられる第5の操作イベントに応じて、前記複数のオブジェクトのいずれかを選択する、請求項12に記載の情報処理装置。
【請求項14】
前記表示制御部は、前記カーソルの枠の内側へのタッチを伴う第6の操作イベントが前記認識部により認識された場合に、前記第6の操作イベントの前に設定された基準位置と前記操作対象位置とが共に前記画面に表示されるように、前記画面の表示を縮小する、請求項1に記載の情報処理装置。
【請求項15】
前記表示制御部は、前記第2の操作イベントに応じた前記カーソルの移動経路が前記カーソルの非表示領域に衝突する場合に、前記カーソルを移動させる代わりに前記カーソルの枠を変形させる、請求項2に記載の情報処理装置。
【請求項16】
前記表示制御部は、タッチの開始から所定の時間の間前記操作対象位置を補正することにより、ユーザの意図しない前記操作検出位置の変動を吸収する、請求項1に記載の情報処理装置。
【請求項17】
前記認識部により認識される操作イベントは、タッチイベント又は近接イベントである、請求項1〜16のいずれか1項に記載の情報処理装置。
【請求項18】
画面を有する情報処理装置を制御するコンピュータを、
前記画面上での操作イベントを認識する認識部と、
前記認識部により第1の操作イベントが認識された場合に、前記第1の操作イベントにおける操作検出位置との間にオフセットを有する位置である操作対象位置を囲む枠を有するカーソルを前記画面に表示する表示制御部と、
として機能させるためのプログラム。
【請求項19】
画面の表示を制御するための表示制御方法であって、
前記画面上での操作イベントを認識するステップと、
第1の操作イベントが認識された場合に、前記第1の操作イベントにおける操作検出位置との間にオフセットを有する位置である操作対象位置を囲む枠を有するカーソルを前記画面に表示するステップと、
を含む表示制御方法。
【請求項1】
画面上での操作イベントを認識する認識部と、
前記認識部により第1の操作イベントが認識された場合に、前記第1の操作イベントにおける操作検出位置との間にオフセットを有する位置である操作対象位置を囲む枠を有するカーソルを前記画面に表示する表示制御部と、
を備える情報処理装置。
【請求項2】
前記表示制御部は、操作検出位置の移動と関連付けられる第2の操作イベントが前記認識部により認識された場合に、移動開始時の操作検出位置と前記操作対象位置との間の間隔に応じて変化する割合で、前記カーソルを移動させる、請求項1に記載の情報処理装置。
【請求項3】
前記間隔が所定の閾値を下回る場合には、操作検出位置の移動量と前記カーソルの移動量とは等しく、前記間隔が前記所定の閾値を上回る場合には、操作検出位置の移動量よりも前記カーソルの移動量は小さい、請求項2に記載の情報処理装置。
【請求項4】
前記間隔が所定の閾値を下回る場合には、操作検出位置の移動量と前記カーソルの移動量とは等しく、前記間隔が前記所定の閾値を上回る場合には、操作検出位置の移動量よりも前記カーソルの移動量は大きい、請求項2に記載の情報処理装置。
【請求項5】
前記表示制御部は、
前記画面とは別の画面に前記カーソルを表示可能であり、
前記第2の操作イベントに応じて前記カーソルが前記別の画面に移動した場合に、前記カーソルをユーザにより操作可能とするための補助カーソルを前記画面にさらに表示する、
請求項4に記載の情報処理装置。
【請求項6】
前記表示制御部は、前記第2の操作イベントに応じた前記カーソルの移動経路上に操作可能なオブジェクトが存在する場合に、前記カーソルを前記操作可能なオブジェクト上で停止させる、請求項2に記載の情報処理装置。
【請求項7】
前記表示制御部は、前記第2の操作イベントに応じて前記カーソルを移動させる際に、前記操作対象位置が前記画面に表示された移動可能なオブジェクトに重なっている場合には、前記移動可能なオブジェクトを前記カーソルと共に移動させるべきか否かを前記間隔に応じて判定する、請求項2に記載の情報処理装置。
【請求項8】
前記表示制御部は、操作検出位置の移動と関連付けられる第2の操作イベントが前記認識部により認識された場合に、移動開始時の操作検出位置が前記カーソルの枠の内側にあるか外側にあるかに応じて変化する割合で、前記カーソルを移動させる、請求項1に記載の情報処理装置。
【請求項9】
前記表示制御部は、前記認識部により第3の操作イベントが認識された場合に、前記オフセットに関わらず、前記第3の操作イベントにおける操作検出位置の近傍に前記カーソルを表示する、請求項1に記載の情報処理装置。
【請求項10】
前記表示制御部は、前記操作対象位置が前記画面に表示された操作可能なオブジェクトに重なっている場合に、前記カーソルの枠の色、形状又はサイズを変化させる、請求項1に記載の情報処理装置。
【請求項11】
前記表示制御部は、前記認識部により前記カーソルの枠の内側での第4の操作イベントが認識された場合に、前記カーソルの枠の内側の表示を拡大し又は縮小する、請求項1に記載の情報処理装置。
【請求項12】
前記カーソルの枠はリング状であり、前記操作対象位置は当該リングの中心である、請求項1に記載の情報処理装置。
【請求項13】
前記表示制御部は、前記操作対象位置が操作可能な複数のオブジェクトに重なっている場合には、前記認識部により認識される前記カーソルの回転と関連付けられる第5の操作イベントに応じて、前記複数のオブジェクトのいずれかを選択する、請求項12に記載の情報処理装置。
【請求項14】
前記表示制御部は、前記カーソルの枠の内側へのタッチを伴う第6の操作イベントが前記認識部により認識された場合に、前記第6の操作イベントの前に設定された基準位置と前記操作対象位置とが共に前記画面に表示されるように、前記画面の表示を縮小する、請求項1に記載の情報処理装置。
【請求項15】
前記表示制御部は、前記第2の操作イベントに応じた前記カーソルの移動経路が前記カーソルの非表示領域に衝突する場合に、前記カーソルを移動させる代わりに前記カーソルの枠を変形させる、請求項2に記載の情報処理装置。
【請求項16】
前記表示制御部は、タッチの開始から所定の時間の間前記操作対象位置を補正することにより、ユーザの意図しない前記操作検出位置の変動を吸収する、請求項1に記載の情報処理装置。
【請求項17】
前記認識部により認識される操作イベントは、タッチイベント又は近接イベントである、請求項1〜16のいずれか1項に記載の情報処理装置。
【請求項18】
画面を有する情報処理装置を制御するコンピュータを、
前記画面上での操作イベントを認識する認識部と、
前記認識部により第1の操作イベントが認識された場合に、前記第1の操作イベントにおける操作検出位置との間にオフセットを有する位置である操作対象位置を囲む枠を有するカーソルを前記画面に表示する表示制御部と、
として機能させるためのプログラム。
【請求項19】
画面の表示を制御するための表示制御方法であって、
前記画面上での操作イベントを認識するステップと、
第1の操作イベントが認識された場合に、前記第1の操作イベントにおける操作検出位置との間にオフセットを有する位置である操作対象位置を囲む枠を有するカーソルを前記画面に表示するステップと、
を含む表示制御方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8A】
【図8B】
【図8C】
【図9A】
【図9B】
【図10】
【図11A】
【図11B】
【図12】
【図13】
【図14】
【図15A】
【図15B】
【図16】
【図17A】
【図17B】
【図18】
【図19】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8A】
【図8B】
【図8C】
【図9A】
【図9B】
【図10】
【図11A】
【図11B】
【図12】
【図13】
【図14】
【図15A】
【図15B】
【図16】
【図17A】
【図17B】
【図18】
【図19】
【公開番号】特開2012−43266(P2012−43266A)
【公開日】平成24年3月1日(2012.3.1)
【国際特許分類】
【出願番号】特願2010−185070(P2010−185070)
【出願日】平成22年8月20日(2010.8.20)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】
【公開日】平成24年3月1日(2012.3.1)
【国際特許分類】
【出願日】平成22年8月20日(2010.8.20)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】
[ Back to top ]