以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての同一部分については、その詳細な説明は繰り返さない。
<A.外観>
まず、本実施の形態に従う情報処理装置1の外観について説明する。
図1は、本実施の形態に従う情報処理装置1の外観を示す模式図である。以下の説明では、情報処理装置1が携帯端末である場合について説明する。但し、本発明に係る情報処理装置1は、表示部へのユーザによるタッチ入力された位置を検出可能な装置であれば、種類を問わず任意の装置として実装可能である。例えば、情報処理装置1は、携帯電話、タブレット端末、PDA(Personal Digital Assistance)などとして実装することもできる。
図1を参照して、情報処理装置1は、表示部としてのディスプレイ134と、ディスプレイ134へのユーザによるタッチ入力された位置を検出可能な位置検出部としてのタッチパネル130と、各種の操作を行なうためのボタン150とを含む。ディスプレイ134には、アプリケーションのコンテンツやデータなどが表示される。ディスプレイ134は、例えば、液晶ディスプレイあるいは有機ELディスプレイである。また、ディスプレイ134には透明なタッチパネル130が取り付けられており、ユーザからのタッチ操作に伴う各種の指示を受け付けることが可能である。
情報処理装置1は、基本的に、ユーザが片手または両手で把持して使用することが想定される。また、ユーザが情報処理装置1の長手方向および短手方向のいずれを把持した場合であっても、その把持方向に適した方向に画面表示を切替えるようにしてもよい。本願明細書において、画面の「上下方向」および「左右方向」という表現をする場合には、原則として、ユーザが情報処理装置1を把持した状態におけるユーザから見たそれぞれの方向を意味するものとする。言い換えれば、ディスプレイ134に表示される画像を基準として、「上下方向」および「左右方向」が決定される。
情報処理装置1のディスプレイ134には、ユーザによる直感的な操作が可能となるように1つまたは複数のオブジェクトが表示される。本願明細書において、「オブジェクト」は、ユーザの操作を受け付けるため、ユーザへ何らかの情報を提示するため、あるいは両者を併せた機能を発揮するための、ディスプレイ134に表示される各種の画像を意味する。「オブジェクト」の一例としては、アイコンやウィジェットなどが挙げられる。以下の説明においては、主としてユーザの操作を受け付けるための「オブジェクト」を適切に配置するための処理例について説明するが、配置される「オブジェクト」として、単にユーザへ何らかの情報を通知する機能のみを有するものが含まれていてもよい。
<B.ハードウェア構成>
次に、本実施の形態に従う情報処理装置1のハードウェア構成について説明する。
図2は、本実施の形態に従う情報処理装置1のハードウェア構成を示すブロック図である。
図2を参照して、情報処理装置1は、主たる構成要素として、CPU(Central Processing Unit)110と、メモリ120と、タッチパネル130と、ディスプレイ134と、スピーカ140と、ボタン150と、メモリインターフェイス(I/F)160と、通信インターフェイス(I/F)170と無線通信部180と通信アンテナ182と加速度センサ190とを含む。
CPU110は、メモリ120に記憶されたプログラムを読み出して実行することで、情報処理装置1の全体処理を実現する。より詳細にはCPU110は、当該プログラムを実行することによって、後述する情報処理装置1の処理(ステップ)の各々を実現する。なお、CPU110は、マイクロプロセッサ(Microprocessor)、FPGA(Field Programmable Gate Array)、ASIC(Application Specific Integrated Circuit)、DSP(Digital Signal Processor)およびその他の演算機能を有する回路のいずれであってもよい。
メモリ120は、RAM(Random Access Memory)、ROM(Read-Only Memory)、ハードディスクなどによって実現される。メモリ120は、CPU110によって実行されるプログラム、データなどを記憶する。
タッチパネル130は、表示部としての機能を有するディスプレイ134上に設けられており、抵抗膜方式、表面弾性波方式、赤外線方式、電磁誘導方式、静電容量方式などのいずれのタイプであってもよい。タッチパネル130は、光センサ液晶を含んでもよい。タッチパネル130は、所定時間毎に外部の物体によるタッチパネル130へのタッチ操作を検知して、タッチ座標(タッチ位置)をCPU110に入力する。すなわち、CPU110は、タッチパネル130から順次タッチ座標を取得する。
後述するようにユーザが、ディスプレイ134に表示された初期画面(例えば、起動画面)において所定のタッチ操作を行なうことで、メニュー画面に表示されるオブジェクトがユーザのタッチ操作時の利き手や情報処理装置1の把持状態などを反映した態様で配置される。なお、メニュー画面には、オブジェクトが複数表示され、ユーザは、メニュー画面のオブジェクトを選択することによって、当該オブジェクトに対応する処理を行なうことができる。
スピーカ140は、CPU110からの命令に基づいて、音声を出力する。例えば、CPU110は、音声データに基づいて、スピーカ140に音声を出力させる。
ボタン150は、情報処理装置1の表面に配置されており、ユーザからの命令を受け付けて、CPU110に入力する。ボタン150は、例えば、表示画面を遷移させる画面遷移ボタン、所定の指示に対する確定ボタン、キャンセルボタンなどを含む。
メモリインターフェイス(I/F)160は、外部の記憶媒体162からデータを読み出す。すなわち、CPU110は、メモリインターフェイス160を介して外部の記憶媒体162に格納されているデータを読み出して、当該データをメモリ120に格納する。逆に、CPU110は、メモリ120からデータを読み出して、メモリインターフェイス160を介して当該データを外部の記憶媒体162に格納する。
なお、記憶媒体162としては、CD(Compact Disc)、DVD(Digital Versatile Disk)、BD(Blu-ray Disc)、USB(Universal Serial Bus)メモリ、メモリカード、FD(Flexible Disk)、ハードディスク、磁気テープ、カセットテープ、MO(Magnetic Optical Disc)、MD(Mini Disc)、IC(Integrated Circuit)カード(メモリカードを除く)、光カード、EPROM、EEPROM(Electronically Erasable Programmable Read-Only Memory)などの、不揮発的にプログラムを格納する媒体が挙げられる。
通信インターフェイス(I/F)170は、情報処理装置1と外部装置との間で各種データを遣り取りするための通信インターフェイスであり、アダプタやコネクタなどによって実現される。なお、通信方式としては、Bluetooth(登録商標)、無線LAN(Local Area Network)、WiFi(wireless fidelity)による無線通信であってもよいし、USB(Universal Serial Bus)バスを利用した有線通信であってもよい。
無線通信部180は、通信アンテナ182を介して通信のための信号の送受信を行なう。すなわち、無線通信部180は、CPU110からの通信データを通信信号に変換し、その通信信号を通信アンテナ182を介して送信したり、通信アンテナ182を介して受信した通信信号を通信データに変換し、その通信データをCPU110に入力したりする。これにより、情報処理装置1は、たとえば、第3世代移動通信システム(3G)、LTE(Long Term Evolution)、WiMAX(Worldwide Interoperability for Microwave Access)などの無線通信網を介してインターネットなどに接続することが可能となる。
加速度センサ190は、たとえば、MEMS(Micro-Electro-Mechanical Systems)の3軸加速度センサによって実現され、情報処理装置1の動きを検知するものである。加速度センサ190は、情報処理装置1自体の移動方向や加速度などを検知する。たとえば、CPU110は、加速度センサ190からのセンサ信号に基づいて情報処理装置1の姿勢を特定し、それによってディスプレイ134の表示される画面の表示方向を決定する。具体的には、CPU110は、情報処理装置1が縦向きである場合(ユーザが情報処理装置1を縦向きで把持している場合)にはディスプレイ134に表示画面を同じ縦向きに表示するよう表示方向を決定し、横向きである場合には横向きに表示するよう決定する。
<C.オブジェクト配置設定の操作例>
まず、本実施の形態に従う情報処理装置1におけるオブジェクト配置設定の操作例(ユーザインターフェイス)について説明する。
ユーザが情報処理装置1を立ち上げると、ディスプレイ134には、起動画面が表示される。
図3は、本実施の形態に従う情報処理装置1のディスプレイ134に表示される起動画面の一例を示す図である。
図3を参照して、ユーザインターフェイス画面1000は、メニュー画面を起動させるための起動アイコンを示すオブジェクト1002と矢印1004と「起動アイコンを矢印方向に移動させて下さい。」といったタッチ操作を促すメッセージ1006とを含む。すなわち、ユーザは、オブジェクト1002を矢印1004の方向に移動させることで、メニュー画面を起動することができる。
このユーザインターフェイス画面1000に応答して、ユーザが行なうタッチ操作態様に基づくオブジェクト配置設定について、以下の図4〜9を参照しながら説明する。
(c1.操作例(その1))
ここでは、ユーザが情報処理装置1を片手で把持しており、その手の親指でユーザインターフェイス画面1000におけるオブジェクト1002(以下、単に「起動アイコン」とも称す)を矢印1004の方向に移動させるような場合を考える。
まず、ユーザが情報処理装置1を左手で把持しており、左手の親指でタッチ操作をする場合について説明する。この場合には、ユーザは片手で情報処理装置1を使用し、利き手である左手でタッチ操作をする癖があることが想定される。
図4は、本実施の形態に従うオブジェクト配置設定を行なう場合の操作例を示す図である。図4(a)は、ユーザが左手で情報処理装置1を把持し、左手の親指で起動アイコンを移動させる場合のイメージ図である。これは、片手で情報処理装置1を把持した場合には、その手の親指でタッチ操作をすることが想定されるためである。図4(b)は、図4(a)のタッチ操作により起動アイコンが移動した移動軌跡を示す図である。図4(c)は、図4(a)のタッチ操作に基づいて設定されたメニュー画面のオブジェクト配置を示す図である。
図4を参照して、ユーザが左手で情報処理装置1を把持し、左手の親指で起動アイコンを移動させる場合(図4(a)参照)には、タッチ操作可能な範囲は親指の可動範囲に限定されるため、ユーザが起動アイコンを移動させることができる範囲は小さい範囲となる。したがって、ユーザが移動させた起動アイコンの移動軌跡が描く円弧の中心(推定支点位置)と当該移動軌跡の終点(あるいは起点)との長さを示す曲率半径Rは小さい値(例えば、5cm以下)となる。また、ユーザが左手の親指でタッチ操作していることから、当該移動軌跡の移動方向は、画面左上方向となる(図4(b)参照)。ユーザのタッチ操作が終了すると(ユーザがディスプレイ134から手を離すと)、メニュー画面に遷移するとともに、上記のタッチ操作を反映した形態でメニュー画面の複数のオブジェクトが配置される(図4(c)参照)。このとき、各オブジェクトは、移動軌跡の移動方向に沿って、画面上下方向に小さい間隔で各オブジェクトが配置される。換言すると、各オブジェクトは、ユーザの左手の親指が届く範囲に配置される。
また、情報処理装置1がマルチタッチが可能な端末装置である場合には、持ち手の手のひらなどが画面に触れることでユーザが意図しない動作となる可能性がある。したがって、この場合には、例えば、ディスプレイ134の左下の所定の表示領域(誤入力が想定される範囲)と関連付けられた、タッチパネル130の検出感度を低下させてもよい。
次に、ユーザが情報処理装置1を右手で把持しており、右手の親指でタッチ操作をする場合について説明する。この場合には、ユーザは片手で情報処理装置1を使用し、利き手である右手でタッチ操作をする癖があることが想定される。基本的には、図4の場合の左手が右手に置き換わったものと同様である。
図5は、本実施の形態に従うオブジェクト配置設定を行なう場合の別の操作例を示す図である。図5(a)は、ユーザが右手で情報処理装置1を把持し、右手の親指で起動アイコンを移動させる場合のイメージ図である。図5(b)は、図5(a)のタッチ操作により起動アイコンが移動した移動軌跡を示す図である。図5(c)は、図5(a)のタッチ操作に基づくメニュー画面のオブジェクト配置設定を示す図である。
図5を参照して、ユーザが右手で情報処理装置1を把持し、左手の親指で起動アイコンを移動させる場合(図5(a)参照)には、起動アイコンの移動軌跡の曲率半径Rは小さく(例えば、5cm以下)、移動軌跡の移動方向は、画面右上方向となる(図5(b)参照)。そして、ユーザのタッチ操作が終了すると、メニュー画面に遷移するとともに、メニュー画面の各オブジェクトが、移動軌跡の移動方向(右方向)に沿って、画面上下方向に小さい間隔で配置される(図5(c)参照)。換言すると、各オブジェクトは、ユーザの右手の親指が届く範囲に配置される。また、この場合には、例えば、ディスプレイ134の右下の所定の表示領域と関連付けられた、タッチパネル130の検出感度を低下させてもよい。
上記のように、ユーザが情報処理装置1を左手で把持した際に、その左手で容易に操作できる位置にオブジェクトが配置され、ユーザが情報処理装置1を右手で把持した際に、その右手で容易に操作できる位置にオブジェクトが配置される。
(c2.操作例(その2))
ここでは、ユーザが情報処理装置1を一方の手で把持しており、例えば手首を支点として他方の手の人差し指でユーザインターフェイス画面1000における起動アイコンを矢印1004の方向に移動させるような場合を考える。
まず、ユーザが情報処理装置1を右手で把持しており、左手の人差し指で左手首を支点としてタッチ操作をする場合について説明する。このとき、ユーザは情報処理装置1を両手で使用し、利き手である左手で左手首を支点としてタッチ操作をする癖があることが想定される。
図6は、本実施の形態に従うオブジェクト配置設定を行なう場合の別の操作例を示す図である。図6(a)は、ユーザが右手で情報処理装置1を把持し、左手の人差し指で起動アイコンを移動させる場合のイメージ図である。これは、一方の手で情報処理装置1を把持した場合には、他方の手の可動範囲の大きい人差し指でタッチ操作をすることが通常であるためである。図6(b)は、図6(a)のタッチ操作により起動アイコンが移動した移動軌跡を示す図である。図6(c)は、図6(a)のタッチ操作に基づいて設定されたメニュー画面のオブジェクト配置を示す図である。
図6を参照して、ユーザが右手で情報処理装置1を把持し、左手の人差し指で起動アイコンを移動させる場合(図6(a)参照)には、ユーザが起動アイコンを移動させることができる範囲は比較的大きい。したがって、ユーザが移動させた起動アイコンの移動軌跡の曲率半径Rは比較的大きい(中程度の)値(例えば、10cm程度)となる。また、ユーザは左手でタッチ操作していることから、当該移動軌跡の移動方向は、画面左上方向となる(図6(b)参照)。そして、ユーザのタッチ操作が終了すると、メニュー画面に遷移するとともに、上記のタッチ操作を反映した形態でメニュー画面のオブジェクトが配置される(図6(c)参照)。すなわち、当該オブジェクトは、移動軌跡の移動方向に沿って、画面上下方向に比較的大きい間隔で各オブジェクトが配置される(図6(c)参照)。換言すると、各オブジェクトは、ユーザの左手の人差し指が届く範囲に配置される。この場合には、例えば、ディスプレイ134の右下の所定の表示領域と関連付けられた、タッチパネル130の検出感度を低下させてもよい。
次に、ユーザが情報処理装置1を左手で把持しており、例えば、右手首を支点として右手の人差し指でタッチ操作をする場合について説明する。このとき、ユーザは情報処理装置1を両手で使用し、右手首を支点として利き手である右手でタッチ操作をする癖があることが想定される。この場合は、基本的には、図6の場合の左手が右手に、右手が左手に置き換わったものと同様である。
図7は、本実施の形態に従うオブジェクト配置設定を行なう場合の別の操作例を示す図である。図7(a)は、ユーザが左手で情報処理装置1を把持し、右手の人差し指で起動アイコンを移動させる場合のイメージ図である。図7(b)は、図7(a)のタッチ操作により起動アイコンが移動した移動軌跡を示す図である。図7(c)は、図7(a)のタッチ操作に基づいて設定されたメニュー画面のオブジェクト配置を示す図である。
図7を参照して、ユーザが左手で情報処理装置1を把持し、右手の人差し指で起動アイコンを移動させる場合(図7(a)参照)には、起動アイコンの移動軌跡の曲率半径Rは比較的大きい(中程度)の値(例えば、10cm程度)となり、移動軌跡の移動方向は、画面右上方向となる(図7(b)参照)。そして、ユーザのタッチ操作が終了すると、メニュー画面に遷移するとともに、メニュー画面の各オブジェクトが、移動軌跡の移動方向(右上方向)に沿って、画面上下方向に比較的大きい間隔で配置される(図7(c)参照)。換言すると、各オブジェクトは、ユーザの右手の人差し指が届く範囲に配置される。この場合には、例えば、ディスプレイ134の左下の所定の表示領域と関連付けられた、タッチパネル130の検出感度を低下させてもよい。
上記のように、ユーザが情報処理装置1を右手で把持した際に、左手で容易に操作できる位置にオブジェクトが配置され、ユーザが情報処理装置1を左手で把持した際に、右手で容易に操作できる位置にオブジェクトが配置される。
(c3.操作例(その3))
ここでは、ユーザが情報処理装置1を一方の手で把持しており、例えば肘を支点として他方の手の人差し指でタッチ操作することにより、ユーザインターフェイス画面1000における起動アイコンを矢印1004の方向に移動させるような場合を考える。これは、操作例(その2)と比較して、ユーザが情報処理装置1を両手で使用する点については同様だが、タッチ操作する側の手を肘を支点として動かすことから、タッチ操作の可動範囲が大きくなる点において異なる。
まず、ユーザが情報処理装置1を右手で把持しており、左肘を支点として左手の人差し指でタッチ操作をする場合について説明する。このとき、ユーザは情報処理装置1を両手で使用し、左肘を支点として利き手である左手でタッチ操作をする癖があることが想定される。
図8は、本実施の形態に従うオブジェクト配置設定を行なう場合の別の操作例を示す図である。図8(a)は、ユーザが右手で情報処理装置1を把持し、左肘を支点として左手の人差し指で起動アイコンを移動させる場合のイメージ図である。図8(b)は、図8(a)のタッチ操作により起動アイコンが移動した移動軌跡を示す図である。図8(c)は、図8(a)のタッチ操作に基づいて設定されたメニュー画面のオブジェクト配置を示す図である。
図8を参照して、ユーザが右手で情報処理装置1を把持し、左肘を支点として左手の人差し指で起動アイコンを移動させる場合(図8(a)参照)には、ユーザが起動アイコンを移動させることができる範囲は、上記の操作例(その2)の場合よりもさらに大きい。したがって、ユーザが移動させた起動アイコンの移動軌跡の曲率半径Rは操作例(その2)の場合よりもさらに大きい値(例えば、30cm程度)となる。このとき、ユーザは左手でタッチ操作しているものの、曲率半径Rが大きいため当該移動軌跡の移動方向は、ほぼ画面垂直(上下)方向となる(図8(b)参照)。そして、ユーザのタッチ操作が終了すると、メニュー画面に遷移するとともに、上記のタッチ操作を反映した形態でメニュー画面のオブジェクトが配置される(図8(c)参照)。このとき、各オブジェクトは、優先度の高いオブジェクトから順に利き手(左手)側である画面左端から右端に向かって左右一列に配置される。これは、ユーザが肘を支点として人差し指でタッチ操作をする場合には、画面のほぼ全領域においてタッチ操作が可能であることから、上下方向に配置する必要性が低いためである。優先度の高いとは、例えば、利用頻度が高い、あるいは予め設定された重要度が高いことを示す。
また、この場合には、例えば、ディスプレイ134の右下の所定の表示領域と関連付けられた、タッチパネル130の検出感度を低下させてもよい。
次に、ユーザが情報処理装置1を左手で把持しており、右肘を支点として右手の人差し指でタッチ操作をする場合について説明する。このとき、ユーザは情報処理装置1を両手で使用し、右肘を支点として利き手である右手でタッチ操作をする癖があることが想定される。この場合は、基本的には、図7の場合の左手が右手に、右手が左手に置き換わったものと同様である。
図9は、本実施の形態に従うオブジェクト配置設定を行なう場合の別の操作例を示す図である。図9(a)は、ユーザが左手で情報処理装置1を把持し、右肘を支点として右手の人差し指で起動アイコンを移動させる場合のイメージ図である。図9(b)は、図9(a)のタッチ操作により起動アイコンが移動した移動軌跡を示す図である。図9(c)は、図9(a)のタッチ操作に基づいて設定されたメニュー画面のオブジェクト配置を示す図である。
図9を参照して、ユーザが左手で情報処理装置1を把持し、右肘を支点として右手の人差し指で起動アイコンを移動させる場合(図9(a)参照)には、起動アイコンの移動軌跡の曲率半径Rは大きく(例えば、30cm程度)、移動軌跡の移動方向は、ほぼ画面垂直向となる(図9(b)参照)。そして、ユーザのタッチ操作が終了すると、メニュー画面に遷移するとともに、メニュー画面の各オブジェクトが、優先度の高いオブジェクトから順に利き手(右手)側である画面右端から左端に向かって左右一列に配置される。
また、この場合には、例えば、ディスプレイ134の左下の所定の表示領域と関連付けられた、タッチパネル130の検出感度を低下させてもよい。
<D.機能構成>
次に、上述のような本実施の形態に従う情報処理装置1が提供する複数のオブジェクト配置設定を実現するための機能構成について説明する。
図10は、本実施の形態に従う情報処理装置1の機能ブロック図である。
図10を参照して、情報処理装置1は、その機能構成として、位置検出部210と、解析部220と、補正部230と、表示制御部240と、記憶部250と、感度変更部260とを含む。解析部220と、補正部230と、表示制御部240と、感度変更部260とは、基本的には、情報処理装置1のCPU110がメモリ120に格納されたプログラムを実行し、情報処理装置1の構成要素へ指令を与えることなどによって実現される。すなわち、CPU110は情報処理装置1の動作全体を制御する制御部としての機能を有する。なお、これらの機能構成の一部または全部はハードウェアで実現されていてもよい。
位置検出部210は、ユーザからのタッチ入力を受け付けると、タッチされたタッチ位置の検出結果を順次、解析部220に出力する。具体的には、位置検出部210は、ユーザによるタッチ操作の起点となるタッチ位置(検出されたタッチ位置の初期位置)を示すタッチ座標(X0,Y0)から、当該タッチ操作の終点となるタッチ座標(Xn,Yn)までのタッチ座標を順次出力する。また、位置検出部210は、同時に複数点タッチされていることを検出した場合には、これらのタッチ座標を出力する。位置検出部210は、主として、タッチパネル130によって実現される機能である。
解析部220は、位置検出部210の検出結果に応答して、タッチ位置の起点から終点までの移動により描かれる移動軌跡を解析する。具体的には、解析部220は、位置検出部210から取得した移動軌跡のタッチ座標を解析することで当該移動軌跡の曲率半径を算出する。また、解析部220は、当該移動軌跡の起点となるタッチ座標と終点となるタッチ座標とを比較することで、移動軌跡の移動方向を算出する。そして、解析部220は、上記の解析結果を補正部230および感度変更部260に出力する。
補正部230は、解析部220の解析結果に応答して、メニュー画面に表示されるオブジェクトの予め定められた基準位置を示す基準位置情報を補正する。具体的には、補正部230は、解析部220から取得した移動軌跡の曲率半径の値が第1の値であるときに画面上下方向に第1の間隔でオブジェクトが配置されるように、記憶部250から取得した基準位置情報を補正する。補正部230は、当該曲率半径の値が第1の値より大きい第2の値のときに画面上下方向に第1の間隔より大きい第2の間隔でオブジェクトが配置されるように当該基準位置情報を補正する。補正部230は、当該曲率半径の値が第2の値より大きい第3の値のときに、画面上下方向に第1の間隔より小さい間隔でオブジェクトが配置されるように当該基準位置情報を補正する。さらに、補正部230は、当該移動軌跡の移動方向に沿ってオブジェクトが配置されるように当該基準位置情報を補正する。そして、補正部230は、補正した基準位置情報(補正位置情報)を表示制御部240に出力する。
表示制御部240は、補正部230から取得した補正位置情報に基づいて、ディスプレイ134の表示を制御する。具体的には、表示制御部240は、補正位置情報に基づいてメニュー画面のオブジェクトを配置するようにディスプレイ134の表示を制御する。別の局面において、表示制御部240は、起動画面における、情報処理装置1を起動するための起動オブジェクトを情報処理装置1を把持するユーザ側に配置するようにディスプレイ134の表示を制御する。
記憶部250は、各種情報を格納する。記憶部250は、例えば、メニュー画面におけるオブジェクトの基準位置情報を格納する。また、記憶部250は、補正位置情報を格納してもよい。記憶部250は、主として、メモリ120によって実現される機能である。
感度変更部260は、解析部220の解析結果に応答して、ディスプレイ134の所定の表示領域と関連付けられた、位置検出部210の検出感度を低下させる。換言すると、感度変更部260は、移動軌跡の曲率半径および移動方向に基づいて、位置検出部の検出感度を低下させるディスプレイ134の表示領域を特定する。
<E.フローチャート>
次に、図5〜9に示す複数のオブジェクト配置設定を実現するための処理手順を示すフローチャートについて説明する。
図11は、本実施の形態に従う情報処理装置1において実行されるオブジェクト配置設定の処理手順を示すフローチャートである。
概略として、まず、CPU110は、ディスプレイ134上に起動画面を表示する。上述したように、ユーザが所定のタッチ操作を行なうと、CPU110は、当該タッチ操作の移動軌跡を解析して、曲率半径および移動方向を算出する。この解析結果に応じて、CPU110は、メニュー画面のオブジェクト配置設定を行なうとともに、ディスプレイ134の対応する表示領域におけるタッチパネル130の検出感度を低下させる。図11に示す各ステップは、基本的には、CPU110がプログラムを実行することで実現される。
図11を参照して、CPU110(表示制御部240)は、ディスプレイ134の起動画面を表示する(ステップS102)。ディスプレイ134には、図3に示したユーザインターフェイス画面1000が表示される。なお、CPU110(表示制御部240)は、このとき、起動画面における、起動アイコン(オブジェクト1002)を情報処理装置1を把持するユーザ側に配置するようにディスプレイ134の表示を制御する。
次に、CPU110は、タッチパネル130(位置検出部210)を介してユーザからタッチ操作による入力を受け付けたか否かを判断する(ステップS104)。CPU110が、タッチ操作による入力を受け付けていない場合(ステップS104においてNOの場合)には、処理は、ステップS104を繰り返す。
これに対して、CPU110が、タッチ操作による入力を受け付けた場合(ステップS104においてYESの場合)には、CPU110(解析部220)は、タッチ操作の移動軌跡を取得する。具体的には、CPU110(解析部220)は、タッチパネル130(位置検出部210)からタッチ操作の起点から終点までのタッチ位置を示すタッチ座標を順次取得する。続いて、CPU110(解析部220)は、取得した移動軌跡を解析して、当該移動軌跡の曲率半径Rおよび移動方向を取得する(ステップS107)。具体的には、CPU110(解析部220)は、移動軌跡(円弧)の起点と終点に基づいて、円弧の長さと、円の中心(推定支点位置)、起点および終点からなる中心角とを算出することで曲率半径Rを取得する。また、CPU110(解析部220)は、移動軌跡の起点および終点のタッチ座標から移動方向を取得する。なお、移動軌跡の起点を原点として、終点が原点(起点)よりも画面の左側のとき、移動方向は負方向であり、終点が原点(起点)よりも右側のとき、移動方向は正方向であるとする。
次に、CPU110(補正部230)は、移動方向が左方向か否かを判断する(ステップS108)。このステップS108は、ユーザの利き手(右利きであるか左利きであるか)を特定するための処理である。具体的には、CPU110(補正部230)は、取得した移動方向が負方向か否かを判断する。移動方向が左方向でない(右方向である)場合(ステップS108においてNOの場合)には、処理は、ステップS124に進む。
これに対して、移動方向が左方向である場合(ステップS108においてYESの場合)には、CPU110(補正部230)は、曲率半径Rが第1の閾値以下か否かを判断する(ステップS110)。具体的には、CPU110(補正部230)は、取得した曲率半径Rと予め定められた第1の閾値(例えば、5cm)とを比較することにより、曲率半径Rが第1の閾値以下か否かを判断する。曲率半径Rが第1の閾値以下ではない(第1の閾値より大きい)場合(ステップS110においてNOの場合)には、処理は、ステップS116に進む。
これに対して、曲率半径Rが第1の閾値以下である場合(ステップS110においてYESの場合)には、CPU110は、ユーザが左手で情報処理装置1を把持し、左手(例えば、左手の親指)でタッチ操作を行なうような場合を想定したメニュー画面を表示する(ステップS112)。具体的には、まず、CPU110(補正部230)は、メニュー画面に表示されるオブジェクトが、画面上下方向に第1の間隔で、移動方向に沿って配置されるように、メモリ120(記憶部250)から取得した基準位置情報を補正する。そして、CPU110(表示制御部240)は、補正された基準位置情報(補正位置情報)に基づいて、ディスプレイ134の表示を制御する。すなわち、このとき、ディスプレイ134には、図4(c)のようなメニュー画面が表示される。
次に、CPU110(感度変更部260)は、ディスプレイ134の左下の表示領域と関連付けられた、タッチパネル130(位置検出部210)の検出感度を低下させる(ステップS114)。例えば、CPU110(感度変更部260)は、ディスプレイ134の左下端から1cm以内の表示領域における検出感度を低下させる。そして、処理は、終了する。
ステップS110に戻って、曲率半径Rが第1の閾値以下ではない場合(ステップS110においてNOの場合)には、CPU110(補正部230)は、曲率半径Rが第2の閾値以下か否かを判断する(ステップS116)。具体的には、CPU110(補正部230)は、取得した曲率半径Rと予め定められた第2の閾値(例えば、10cm)とを比較することにより、曲率半径Rが第2の閾値以下か否かを判断する。
ここで、曲率半径Rが第2の閾値以下である場合(ステップS116においてYESの場合)には、ユーザが右手で情報処理装置1を把持し、左手で比較的大きいタッチ操作(例えば、左手首を支点としたタッチ操作)を行なうような場合を想定したメニュー画面を表示する(ステップS118)。具体的には、まず、CPU110(補正部230)は、メニュー画面に表示されるオブジェクトが、画面上下方向に第2の間隔で、移動方向に沿って配置されるように、メモリ120(記憶部250)から取得した基準位置情報を補正する。そして、CPU110(表示制御部240)は、補正された基準位置情報(補正位置情報)に基づいて、ディスプレイ134の表示を制御する。すなわち、このとき、ディスプレイ134には、図6(c)のようなメニュー画面が表示される。
これに対して、曲率半径Rが第2の閾値以下ではない(第2の閾値よりも大きい)場合(ステップS116においてNOの場合)には、ユーザが右手で情報処理装置1を把持し、左手でかなり大きいタッチ操作(例えば、左肘を支点としたタッチ操作)を行なうような場合を想定したメニュー画面を表示する(ステップS120)。具体的には、まず、CPU110(補正部230)は、メニュー画面に表示されるオブジェクトが、優先度の高いオブジェクトから順に利き手(左手)側である画面左端から右端に向かって左右一列に配置されるように、基準位置情報を補正(補正位置情報)する。換言すると、CPU(補正部230)は、画面上下方向に第1の間隔より小さい間隔でオブジェクトが配置されるように当該基準位置情報を補正する。そして、CPU110(表示制御部240)は、当該補正位置情報に基づいて、ディスプレイ134の表示を制御する。すなわち、このとき、ディスプレイ134には、図8(c)のようなメニュー画面が表示される。
次に、ステップS118またはステップS120に対応するメニュー画面が表示されると、CPU110(感度変更部260)は、ディスプレイ134の右下の表示領域と関連付けられた、タッチパネル130(位置検出部210)の検出感度を低下させる(ステップS122)。例えば、CPU110(感度変更部260)は、ディスプレイ134の右下端から1cm以内の表示領域における検出感度を低下させる。そして、処理は、終了する。
上述のステップS110およびS116は、ユーザの把持状態(タッチ操作を行っている態様)を特定するための処理である。
次に、ステップS108に戻って、移動方向が右方向である場合(ステップS108においてNOの場合)について説明する。以下の処理内容は、基本的には、上記のステップS110〜S122において、左右を逆にした場合に相当する。したがって、以下のステップS124〜ステップS136の処理内容については、詳細な説明は繰り返さず、簡単に説明する。
ステップS124において、CPU110(補正部230)は、曲率半径Rが第1の閾値以下か否かを判断する。曲率半径Rが第1の閾値以下である場合(ステップS124においてYESの場合)には、CPU110(補正部230、表示制御部240)は、ユーザが右手で情報処理装置1を把持し、右手(例えば、右手の親指)でタッチ操作を行なうような場合を想定したメニュー画面を表示する(ステップS126)。すなわち、このとき、ディスプレイ134には、図5(c)のようなメニュー画面が表示される。
次に、CPU110(感度変更部260)は、ディスプレイ134の右下の表示領域と関連付けられた、タッチパネル130(位置検出部210)の検出感度を低下させる(ステップS128)。そして、処理は、終了する。
ステップS124に戻って、曲率半径Rが第1の閾値以下ではない場合(ステップS124においてNOの場合)には、CPU110(補正部230)は、曲率半径Rが第2の閾値以下か否かを判断する(ステップS130)。曲率半径Rが第2の閾値以下である場合(ステップS130においてYESの場合)には、CPU110(補正部230、表示制御部240)は、ユーザが左手で情報処理装置1を把持し、右手で比較的大きいタッチ操作(例えば、右手首を支点としたタッチ操作)を行なうような場合を想定したメニュー画面を表示する(ステップS132)。すなわち、このとき、ディスプレイ134には、図7(c)のようなメニュー画面が表示される。
これに対して、曲率半径Rが第2の閾値以下ではない場合(ステップS130においてNOの場合)には、ユーザが左手で情報処理装置1を把持し、右手でかなり大きいタッチ操作(例えば、右肘を支点としたタッチ操作)を行なうような場合を想定したメニュー画面を表示する(ステップS134)。すなわち、このとき、ディスプレイ134には、図9(c)のようなメニュー画面が表示される。
次に、ステップS132またはステップS134に対応するメニュー画面が表示されると、CPU110(感度変更部260)は、ディスプレイ134の左下の表示領域と関連付けられた、タッチパネル130(位置検出部210)の検出感度を低下させる(ステップS136)。そして、処理は、終了する。
上述のステップS124およびS130は、ユーザの把持状態(タッチ操作を行っている態様)を特定するための処理である。
なお、上記において、タッチ操作を反映した形態でオブジェクト配置設定がなされたメニュー画面を表示するステップ(例えば、ステップS112)と検出感度を低下させるステップ(例えば、ステップS114)とは、逆の順に処理が行なわれてもよい。
このように、本実施の形態に従う情報処理装置1は、ユーザがタッチ操作の移動軌跡の移動方向からユーザのタッチ操作の利き手(左手または右手)を特定し、これと移動軌跡の曲率半径の値からユーザの把持状態を特定する。そして、情報処理装置1は、利き手と把持状態とを反映した形態でメニュー画面のオブジェクトを配置する。
また、別の局面として、表現すると、CPU110は、表示部(ディスプレイ134)の表示制御を行なうとともに、タッチパネル130の検出結果に応答して処理を実行し、ディスプレイ134へのユーザによるタッチ操作の移動軌跡に基づいて、ユーザの利き手と情報処理装置1の把持状態とを特定し、特定された結果に基づいてオブジェクトを並び替える。
<F.その他の実施の形態>
上記では、第1の閾値と第2の閾値を使用して、曲率半径の値が3つに区分される場合について説明したが、閾値をさらに設けることで曲率半径の値を3つ以上に区分してもよい。このとき、曲率半径の増加した区分数に対応するようにオブジェクトの配置設定のパターンを増加させてもよい。
また、上記では、複数のオブジェクト配置設定パターンにおいて、左右に並べられるオブジェクトの数が固定数の場合(6つ)について説明したが、これに限らない。例えば、ディスプレイ134が大きい場合などにおいて、片手でタッチ操作するときには、画面の一端から他端まで届かない可能性がある。したがって、このような場合には、指の届く範囲に収まるように左右方向に表示されるオブジェクトの数を減らしてもよい。なお、ユーザは左右にスライド操作することで、表示されなかったオブジェクトを確認できるようにしてもよい。
なお、コンピュータを機能させて、上述のフローで説明したような制御を実行させるプログラムを提供することもできる。このようなプログラムは、コンピュータに付属するフレキシブルディスク、CD−ROM(Compact Disk-Read Only Memory)、ROM、RAMおよびメモリカードなどの一時的でないコンピュータ読取り可能な記録媒体にて記録させて、プログラム製品として提供することもできる。あるいは、コンピュータに内蔵するハードディスクなどの記録媒体にて記録させて、プログラムを提供することもできる。また、ネットワークを介したダウンロードによって、プログラムを提供することもできる。
なお、プログラムは、コンピュータのオペレーティングシステム(OS)の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずOSと協働して処理が実行される。このようなモジュールを含まないプログラムも、本発明にかかるプログラムに含まれ得る。
また、本発明にかかるプログラムは他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して処理が実行される。このような他のプログラムに組込まれたプログラムも、本発明にかかるプログラムに含まれ得る。
<G.利点>
本実施の形態とすることで、ユーザが情報処理装置を使用する際の把持状態や利き手、指使いが起動時に判定されるため、これらを考慮した位置にオブジェクトが配置されるため、複数ユーザが使用する場合にも最適な環境を提供できる。
また、ユーザが情報処理装置を片手で使用するのか、両手で使用するのか、両手使用の場合には、手首を支点として手を動かすのか、肘を支点として手を動かすのかといったタッチ操作の癖を特定することができるため、画面へ表示されるオブジェクトにバリエーションを加えることができる。
また、画面をタッチ操作する場合には誤って手のひらが触れる場合があるが、使用する際の把持状態や利き手を特定することで、手のひらが触れる可能性がある位置について検出感度を低下させておけば、誤入力を防ぐこともできる。このことは、画面の大きいタブレット端末において特に効果的である。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。