以下、本発明の実施形態の例について図面に基づき詳細に説明する。
図1は、本発明の実施形態に係る情報処理装置のハードウェア構成の一例を示し、図2は、本発明の実施形態に係る情報処理装置の外観の一例を示す。本実施形態に係る情報処理装置10は、例えば携帯情報端末(例えばタブレット型コンピュータ又はラップトップ型コンピュータ等)、携帯電話機(例えばスマートフォン等)、又は携帯ゲーム機等である。なお図1及び図2では、本実施形態に係る情報処理装置10が携帯情報端末(タブレット型コンピュータ)である場合を想定している。
図1に示すように、情報処理装置10は制御部11、記憶部12、通信部13、タッチパネル14、及び姿勢検出センサ部15を含む。制御部11は例えば1又は複数のマイクロプロセッサを含み、記憶部12に記憶されたオペレーティングシステム又はプログラムに従って情報処理を実行する。記憶部12は主記憶部(例えばRAM等)及び補助記憶部(例えばハードディスク又はソリッドステートドライブ等)を含む。
通信部13は他の装置にデータを送信したり、他の装置から送信されたデータを受信したりする。プログラム又はデータは通信部13を介して記憶部12に供給される。すなわち、他の装置から送信されたプログラム又はデータが通信部13によって受信され、記憶部12に記憶される。なお、情報処理装置10は、情報記憶媒体(例えば光ディスク又はメモリカード等)に記憶されたプログラム又はデータを読み取るための構成要素を含むようにしてもよい。そして、情報記憶媒体から読み出されたプログラム又はデータが記憶部12に記憶されるようにしてもよい。
タッチパネル14は、例えば液晶パネル又は有機ELパネルのような表示部14Aと、ユーザにより入力された入力位置を取得する入力位置取得部14Bとを組み合わせたデバイスである。表示部14Aには制御部11からの指示に従って各種画面が表示される。入力位置取得部14Bは、ユーザによって接触されている位置(入力位置)を取得し、当該位置を示す情報を制御部11に供給する。タッチパネル14から供給される情報に基づいて、制御部11はユーザがタッチパネル14に接触しているか否かを判定したり、ユーザによって接触されている位置を把握したり、ユーザによって行われる各種操作を検出したりする。一般的に、ユーザは非利き手で情報処理装置10を把持し、利き手の指をタッチパネル14に接触させることによって各種操作を行う。
姿勢検出センサ部15は、情報処理装置10の姿勢(傾き)を検出するための一又は複数のセンサを含む。例えば、姿勢検出センサ部15は加速度センサ及びジャイロセンサの少なくとも一方を含む。姿勢検出センサ部15の検出結果を示す情報が制御部11に供給される。姿勢検出センサ部15の検出結果に基づいて、制御部11は情報処理装置10の姿勢(傾き)を判断する。情報処理装置10は、タッチパネル14に表示される画面の向きを情報処理装置10の姿勢(傾き)に合わせて変える機能(画面の自動回転機能)を備えるようにしてもよい。
上記の情報処理装置10において、画面(タッチパネル14)に表示され、かつ、ユーザの操作に応じて変化する対象の態様(状態)を、比較的簡易な操作によって、過去のある時点における態様(状態)に戻せるようにするための技術について説明する。以下では、電子書籍を画面に表示するためのプログラム(以下「電子書籍ビューア」と記載する。)が情報処理装置10で実行される場合を想定して、上記技術について説明する。
電子書籍ビューアが実行されている場合には、例えば、電子書籍が1ページずつ画面に表示される。なお、見開き2ページが画面に表示されるようにしてもよい。ユーザは予め定められた操作を行うことによって、画面に表示されるページを変えていきながら、電子書籍を読み進めていく。
電子書籍を読むためにユーザが行う操作について説明する。図3〜図6はユーザが行う操作について説明するための図である。
電子書籍ビューアは二つのモードを備えている。一つ目のモードは、ユーザが予め定められたジェスチャをタッチパネル14を介して入力することによって、画面に表示されるページをめくることが可能なモードである。例えば横書きの電子書籍の場合、ユーザから見て左方向へのフリック操作が行われると、画面に表示されるページが現在のページよりも一つ後のページに進み、ユーザから見て右方向へのフリック操作が行われると、画面に表示されるページが現在のページよりの一つ前のページに戻る。なお、「フリック操作」とは、タッチパネル14に接触した指をはじくようにスライドさせてタッチパネル14からはなす操作である。以下では、便宜上、上記モードのことを「ジェスチャモード」と記載する。
二つ目のモードは、ユーザが画面に表示されるページの文章を指でタッチしてなぞりながら読むことが可能なモードである。例えば横書きの電子書籍の場合、ユーザが文章を指でなぞりながら読むと、左方向又は右方向へのフリック操作に類似する操作が行われることになるが、このモードでは、このような操作が行われた場合であってもページめくりの実行が制限(抑止)される。以下では、便宜上、このモードのことを「タッチモード」と記載する。
電子書籍ビューアが起動された時点ではモードがタッチモードに設定される。予め定められた検知領域内に入力された入力位置(接触位置)が連続的に変化する操作である連続操作(例えば後述の図6に示す軌跡30を入力する操作)がユーザによって入力された場合に電子書籍ビューアのモードがタッチモードからジェスチャモードに切り替わる。
図3は検知領域について説明するための図である。図3に示すように、検知領域20はタッチパネル14の左端又は右端の一方に設定される。具体的には、ユーザが情報処理装置10を把持している手(一般的に非利き手)側に設定される。図3はユーザが情報処理装置10を左手で把持する場合を想定している。このため、ユーザから見てタッチパネル14の左端14Lに検知領域20が設定されている。具体的には、左端14Lから予め定められた距離以内の領域が検知領域20として設定されている。
先述したように、情報処理装置10では画面の自動回転機能によって画面の向きが変わる場合があるが、画面の向きが変わった場合には、画面の向きの変化に合わせて、検知領域20が再設定される。すなわち、画面の向きが変化した場合には、ユーザから見てタッチパネル14の左端14Lに検知領域20が設定されるように、検知領域20の再設定が行われることになる。
なお、情報処理装置10の左端又は右端のどちらに検知領域20を設定するのかはユーザが指定できるようにしてもよい。例えば、どちらの手で情報処理装置10を把持するのかをユーザに問い合わせるようにし、その回答結果に基づいて検知領域20を設定するようにしてもよい。
図4及び図5に示すように、検知領域20に入力された入力位置(接触位置)が連続的に変化する操作である連続操作がユーザによって入力された場合に、電子書籍ビューアのモードがタッチモードからジェスチャモードに切り替わる。例えば、本実施形態では、図4及び図5に示すように、ユーザが情報処理装置10を把持している左手の親指Tで検知領域20に接触し、かつ、検知領域20に接触している親指Tを上方かつ左外側に向かって弧を描くようにしてスライドさせることによって、図6に示すような軌跡30が検知領域20内で入力された場合に、電子書籍ビューアのモードがタッチモードからジェスチャモードに切り替わる。
なおここでは、親指Tで検知領域20を接触することとして説明するが、検知領域20に接触する指は親指T以外の指であってもよい。また、電子書籍ビューアのモードを切り替える軌跡30としては、入力位置が連続的に変化する操作に基づく軌跡であれば特に限定はされないが、タッチモードやジェスチャモードで受け付けることが可能な他の操作(フリック、スライド等)とは異なる移動速度や方向等の条件で規定される軌跡であることが好ましい。
上記のような連続操作(軌跡30)が入力された後でユーザが親指Tを検知領域20内に接触し続けている間、電子書籍ビューアのモードはジェスチャモードであり続ける。一方、ユーザが検知領域20内に接触している親指Tをタッチパネル14からはなすと、電子書籍ビューアのモードがジェスチャモードからタッチモードに切り替わる。
先述の通り、ジェスチャモードでは、ユーザから見て左方向又は右方向へのフリック操作を行うことによって、電子書籍のページをめくることができる。
またジェスチャモードでは、上記のような連続操作(軌跡30)が入力された時点で画面に表示されていたページの番号が記憶部12に記憶される。すなわち、その時点で画面に表示されていたページが一時的にブックマークされ、目印が付けられた状態となる。以下では、便宜上、このページのことを「目印ページ」と記載する。
そしてジェスチャモードでは、ユーザは親指Tを軌跡30に沿って終了位置30Bから開始位置30Aに向けてスライドさせることによって、現在のページと目印ページとの間の任意のページに戻ることができる。
例えば、親指Tが軌跡30に沿って終了位置30Bから開始位置30Aまで移動した場合、目印ページとして登録されたページが画面に表示される。この場合、ユーザは容易に目印ページに戻れる。
また例えば、親指Tが軌跡30に沿って終了位置30Bから開始位置30Aまで移動する途中で停止した場合、親指Tの停止位置に基づいて、現在のページと目印ページとの間のページのいずれかが画面に表示される。例えば、現在のページが第10ページであり、目印ページが第15ページである場合、親指Tが軌跡30に沿って終了位置30Bから開始位置30Aまで移動する途中で停止した場合には、親指Tの停止位置に応じて、第11ページ〜第14ページのいずれかが表示される。なお、画面に表示されるページがフリック操作によって目印ページから現在のページまで変化した間に画面に表示されたページ(より詳しくは、予め定められた基準時間以上画面に表示されたページ)の表示順序を記録しておき、当該表示順序に基づいて、それらのページのいずれかが表示されるようにしてもよい。例えば、画面に表示されたページ(画面に基準時間以上表示されたページ)が第15ページ、第13ページ、第12ページ、第11ページ、第10ページ、第14ページの順で変わった場合、第14ページが現在のページとなり、第15ページが目印ページとなる。このような場合、親指Tが軌跡30に沿って終了位置30Bから開始位置30Aまで移動する途中で停止した場合には、記録された表示順序と、親指Tの停止位置とに応じて、第10ページ〜第13ページのいずれかが「現在のページと目印ページとの間のページ」として表示されるようにしてもよい。
上記場合のページ表示制御方法について説明する。本実施形態では、親指Tの移動速度に基づいてページ表示制御方法が切り替わるようになっている。具体的には、親指Tの移動速度が基準速度以上である場合と、親指Tの移動速度が基準速度未満である場合とでページ表示制御方法が切り替わるようになっている。
まず、親指Tの移動速度が基準速度以上である場合のページ表示制御方法(以下「第1のページ表示制御方法」と記載する。)について説明する。図7は第1のページ表示制御方法について説明するための図である。なおここでは、目印ページが第15ページであり、親指Tが軌跡30の終了位置30Bから開始位置30Aに向けてスライドし始めた時点に画面に表示されていたページが第10ページであると仮定する。
第1のページ表示制御方法では、図7に示すように、第10ページから第15ページまでの6ページに対応して、6つの区間32A,32B,32C,32D,32E,32Fが軌跡30上に設定される。すなわち、軌跡30の終了位置30Bから開始位置30Aに向かって、これら6つの区間32A,32B,32C,32D,32E,32Fが順番に設定される。
またこの場合、軌跡30の終了位置30Bから開始位置30Aに向かう区間32A〜32Fの順序と、第10ページから15ページ(目印ページ)へのページの順序とが対応するようにして、各区間に対して1ページずつ順番に関連付けられる。
親指Tが停止した場合(より詳しくは、親指Tが停止してから予め定められた基準時間が経過した場合)には、親指Tの停止位置に最も近い軌跡30上の位置が算出され、その位置を含む区間に関連付けられたページが画面に表示される。例えば、親指Tが区間32C上で停止した場合には、区間32Cに関連付けられた第12ページが画面に表示される。
このように、親指Tが基準速度以上で移動して停止した場合には、親指Tの停止位置に基づいて、画面に表示されるページが決定される。言い換えれば、軌跡30の終了位置30Bから親指Tの停止位置までの距離に基づいて、画面に表示されるページが決定される。さらに言い換えれば、親指Tの停止位置から軌跡30の開始位置30Aまでの距離に基づいて、画面に表示されるページが決定される。
次に、親指Tの移動速度が基準速度未満である場合のページ表示制御方法(以下「第2のページ表示制御方法」と記載する。)について説明する。
第2のページ表示制御方法では、親指Tが予め定められた単位距離移動するごとに(又は予め定められた単位時間が経過するごとに)、目印ページに1ページずつ近づくようにして、画面に表示されるページが変わる。なお、上記の単位距離は、画面の表示されるページを1ページ変えるために必要な親指Tの移動量が第1のページ表示制御方法に比べて小さくなるようにして設定される。第2のページ表示制御方法が設けられていることにより、ユーザは親指Tをゆっくりスライドさせることによって1ページずつ順番に確認を行えるようになっている。
なお、親指Tの移動速度が基準速度以上の状態から基準速度未満の状態へと変化した場合には、ページ表示制御方法が第1のページ表示制御方法から第2のページ表示制御方法へと切り替わる。同様に、親指Tの移動速度が基準速度未満の状態から基準速度以上の状態へと変化した場合、ページ表示制御方法が第2のページ表示制御方法から第1のページ表示制御方法へと切り替わる。
図8は第2のページ表示制御方法から第1のページ表示制御方法への切り替えについて説明するための図である。なお図8では、親指Tの移動速度が基準速度未満の状態から基準速度以上の状態へと変化した時点で親指Tが軌跡30上の途中位置30Cに位置しており、その時点で画面に表示されていたページが第12ページであった場合を想定している。
この場合、軌跡30上の途中位置30Cから開始位置30Aまでの部分において、第12ページから第15ページまでの4ページに対応して、4つの区間32G,32H,32I,32Jが設定される。すなわち、途中位置30Cから開始位置30Aに向かって、それら4つの区間32G,32H,32I,32Jが順番に設定される。
またこの場合、途中位置30Cから開始位置30Aに向かう区間32G〜32Jの順序と、第12ページから15ページ(目印ページ)へのページの順序とが対応するようにして、各区間に対して1ページずつ順番に関連付けられる。
親指Tが停止した場合(より詳しくは、親指Tが停止してから予め定められた時間が経過した場合)には、親指Tの停止位置に最も近い軌跡30上の位置が算出され、その位置を含む区間に関連付けられたページが画面に表示される。例えば、親指Tが区間32I上で停止した場合には、区間32Iに関連付けられた第14ページが画面に表示される。
以上のように、情報処理装置10では、ユーザが情報処理装置10を把持している手の指を図6に示す軌跡30を描くようにしてスライドさせた場合に、その時点で画面に表示されているページが目印ページとして記憶される。この登録が行われた後、フリック操作が行われることによって、画面に表示されるページが他のページに変化した場合であっても、ユーザが指を軌跡30に沿って終了位置30Bから開始位置30Aに向けてスライドさせることによって、画面に表示されるページが目印ページに近づいたり、目印ページ自体に戻ったりする。すなわち、ユーザは、画面に表示されるページを目印ページに戻したり、目印ページに近づけたりすることを、情報処理装置10を把持している手の指をスライドさせるという簡易な操作で行えるようになっている。また、ユーザは、画面に表示されるページを目印ページにどこまで近づけるのかの指定を上記操作の量(すなわち指の移動量)によって行えるようになっている。
要するに、情報処理装置10では、ユーザが情報処理装置10を把持している手の指を軌跡30を描くようにしてスライドさせた場合、その時点で画面に表示されている対象の態様(状態)が記憶される。この登録が行われた後、さらなる操作が行われることによって、画面に表示される対象の態様(状態)が変化した場合であっても、ユーザが指を軌跡30に沿って終了位置30Bから開始位置30Aに向けてスライドさせることによって、画面に表示される対象の態様(状態)が、登録された態様(状態)に近づいたり、登録された態様(状態)に戻ったりする。すなわち、ユーザは、ある態様(状態)から他の態様(状態)に変化した対象を元の態様(状態)に戻したり、元の態様(状態)に近づけたりすることを、情報処理装置10を把持している手の指をスライドさせるという簡易な操作で行えるようになっている。また、ユーザは、対象の態様(状態)を元の態様(状態)にどこまで近づけるのかの指定を上記操作の量(すなわち指の移動量)によって行えるようになっている。
以下、上記機能を実現するための構成について説明する。図9は情報処理装置10の機能ブロック図である。図9は、情報処理装置10で実現される機能ブロックのうち、上記機能に関連する機能ブロックを示している。図9に示すように、情報処理装置10は入力位置取得部14B(取得手段)と検出部40と更新部42と表示制御部44(制御手段)とを含む。なお、入力位置取得部14Bは図1の入力位置取得部14Bと同じである。検出部40と更新部42と表示制御部44とは制御部11によって実現される。すなわち、制御部11がプログラムに従って処理を実行することによって、制御部11が検出部40と更新部42と表示制御部44として機能するようになる。
検出部40は、入力位置取得部14Bによって取得される入力位置が連続的に変化する操作である連続操作を検出する。
例えば、「連続操作」は、入力位置取得部14Bの検知領域20内を入力位置が上方へ連続的に変化する操作である。また例えば、「連続操作」は、入力位置取得部14Bの検知領域20内を入力位置が外側へ連続的に変化する操作であってもよい。また例えば、「連続操作」は、入力位置取得部14Bの検知領域20内で弧を描くように入力位置が変化する操作であってもよい。また例えば、「連続操作」は、入力位置が変化する速度が予め定められた速度より大きい操作であってもよい。
例えば、先述した電子書籍ビューアの場合、親指Tの接触位置が「入力位置」の一例に相当している。また、図6に示す軌跡30を描くようにして親指Tを検知領域20内でスライドさせる操作が「連続操作」の一例に相当している。すなわち、タッチモードからジェスチャモードに切り替えるための操作が「連続操作」の一例に相当している。
更新部42は、上記連続操作の後に入力位置取得部14Bに入力された1または複数の操作を取得し、当該1または複数の操作のそれぞれに応じて表示部14Aに表示される対象を更新する。
例えば、上記連続操作の後に入力位置が静止している場合に、更新部42はユーザから入力された1または複数の操作を取得し、当該1または複数の操作のそれぞれに応じて表示部14Aに表示される対象を更新する。一方、更新部42は、上記連続操作の前に入力位置取得部14Bに入力された1または複数の操作を取得しない。言い換えれば、更新部42は、上記連続操作の前に入力位置取得部14Bに入力された1または複数の操作を無視し、「当該1または複数の操作のそれぞれに応じて表示部14Aに表示される対象を更新する」ことを行わない。
先述した電子書籍ビューアの場合では、タッチモードからジェスチャモードに切り替わった後で行われるページめくり操作(例えば、ユーザから見て左方向又は右方向へのフリック操作)が「ユーザから入力された1または複数の操作」の一例に相当する。また、画面に表示される電子書籍が「表示部14Aに表示される対象」の一例に相当し、画面に表示される電子書籍のページを他のページに変えることが「表示部14Aに表示される対象を更新する」ことの一例に相当する。
表示制御部44は、上記連続操作の終了時に入力された入力位置から上記連続操作の開始時に入力された入力位置に向けて戻る操作が入力された場合に、上記連続操作により入力された複数の入力位置と戻る操作により入力された入力位置とに基づいて、表示部14A(タッチパネル14)に表示される対象を連続操作が入力された時点の態様に近づけるよう表示部14Aを制御する。
例えば、表示制御部44は、更新部42によって1または複数の操作が取得された後に、上記連続操作の終了時に入力された入力位置から上記連続操作の開始時に入力された入力位置に向けて戻る操作が入力された場合の入力量に応じて、表示部14Aに表示される対象を上記連続操作が入力された時点の態様に近づけるよう表示部14Aを制御する。
先述した電子書籍ビューアの場合では、図6に示す軌跡30の開始位置30Aが「連続操作の開始時に入力された入力位置」の一例に相当し、軌跡30の終了位置30Bが「連続操作の終了時に入力された入力位置」の一例に相当する。また、親指Tを検知領域20内で図6に示す軌跡30に沿って終了位置30Bから開始位置30Aに向けてスライドさせる操作が「戻る操作」の一例に相当する。さらに、画面に表示される電子書籍のページを目印ページに向かって変更するように制御することが「表示部14Aに表示される対象を連続操作が入力された時点の態様に近づけるよう表示部14Aを制御する」の一例に相当する。
先述した電子書籍ビューアの場合、表示制御部44は、上記スライド操作(戻る操作)の開始時点で画面に表示されていたページから目印ページまでのページ数に対応する数の区間を軌跡30上に設定する。例えば、上記スライド操作の開始時点で画面に表示されていたページが第10ページであり、目印ページが第15ページである場合、表示制御部44は、第10ページから第15ページまでの6ページにそれぞれ関連付けて6つの区間を軌跡30上に設定する(例えば図7に示す32A〜32F)。また、表示制御部44は親指Tの接触位置に最も近い軌跡30上の位置を取得し、当該位置が複数の区間のいずれに属するかを判定することによって入力量を取得する。すなわち、表示制御部44は、画面に表示されるページをどれだけ目印ページに近づけるのか(言い換えれば、画面に表示されるページをどのページまで戻すか)を判断する。そして、表示制御部44は、上記入力量(戻り量)に応じて、画面に表示される電子書籍のページを目印ページに近づける。すなわち、表示制御部44は、複数の区間のうちの、上記位置が属する区間に関連付けられたページを画面に表示する。
なお、表示制御部44は、親指Tの接触位置に最も近い軌跡30上の位置を取得する代わりに、親指Tの接触位置が軌跡30の開始位置30Aと終了位置30Bとを結ぶ線分へ射影し、その射影位置を取得するようにしてもよい。
この場合、表示制御部44は、上記スライド操作の開始時点で画面に表示されていたページから目印ページまでのページ数に対応する数の区間を上記線分上に設定する。例えば、上記スライド操作の開始時点で画面に表示されていたページが第10ページであり、目印ページが第15ページである場合、表示制御部44は、第10ページから第15ページまでの6ページにそれぞれ関連付けて6つの区間を上記線分上に設定する。また、表示制御部44は上記射影位置が複数の区間のいずれに属するかを判定することによって入力量を取得する。すなわち、表示制御部44は、画面に表示されるページをどれだけ目印ページに近づけるのかを判断する。そして、表示制御部44は、上記入力量に応じて、画面に表示されるページを目印ページに近づける。すなわち、表示制御部44は、複数の区間のうちの、上記射影位置が属する区間に関連付けられたページを画面に表示する。
あるいは、表示制御部44は、親指Tの接触位置と軌跡30の終了位置30B(又は開始位置30A)との間の距離に基づいて入力量を取得するようにしてもよい。そして、表示制御部44は、当該入力量に応じて、画面に表示される電子書籍のページを目印ページに近づけるようにしてもよい。具体的には、表示制御部44は、上記スライド操作の開始時点で画面に表示されていたページから目印ページまでのページのうちの、当該入力量に対応するページを画面に表示するようにしてもよい。
例えば、軌跡30の終了位置30Bから開始位置30Aまでの距離(軌跡30に沿った距離)を「D」とし、親指Tの接触位置から開始位置30Aまでの距離(軌跡30に沿った距離)を「d」とし、目印ページのページ番号を「PA」とすると、上記スライド操作の開始時点で画面に表示されていたページのページ番号を「PB」とすると、画面に表示するページ(P)を下記の式によって算出するようにしてもよい。なお、下記の式の左辺中の(((PA−PB+1)/D)×d)及び(((PB−PA+1)/D)×d)の値の小数点以下は切り捨てるようにしてもよいし、四捨五入するようにしてもよいし、切り上げるようにしてもよい。
P=PB+(((PA−PB+1)/D)×d) : (PA>PBの場合)
P=PB−(((PB−PA+1)/D)×d) : (PA<PBの場合)
なお例えば、表示制御部44は、上記スライド操作(戻る操作)が入力された場合、当該スライド操作における親指Tの接触位置(入力位置)の変化の速度が第1の速度である場合に、当該スライド操作における親指Tの接触位置の変化の速度が第1の速度より大きい第2の速度である場合よりも、親指Tの接触位置の変化に対する入力量の変化量を大きくするよう入力量を算出するようにしてもよい。
先述した電子書籍ビューアの場合、表示制御部44は、上記スライド操作(戻る操作)における親指Tの接触位置の移動速度が基準速度未満である場合(すなわち、ページ表示制御方法が第2のページ表示制御方法である場合)に、上記スライド操作(戻る操作)における親指Tの接触位置の移動速度が基準速度以上である場合(すなわち、ページ表示制御方法が第1のページ表示制御方法である場合)より親指Tの接触位置の移動距離に対する入力量の変化量を大きくして、当該入力量に応じて、画面に表示されるページを目印ページに近づける。
次に、上記に説明した機能ブロックを実現するために情報処理装置10(制御部11)によって実行される処理について説明する。
図10はタッチモードの処理の一例を示すフロー図である。図10に示すように、まず制御部11は、ユーザの指が検知領域20内に接触され、かつ、予め定められた態様の軌跡30が入力されたか否かを判定する(S100)。例えば、制御部11は、図6に示すような、上方かつ左外側方向に向かって弧を描くような軌跡30が入力されたか否かを判定する。すなわち、制御部11は、検知領域20内に接触している指の位置(接触位置)が上方かつ左外側方向に向かって弧を描くように変化したか否かを判定する。
ユーザの指が検知領域20内に接触され、かつ、予め定められた態様の軌跡30が入力されたと判定された場合、制御部11は画面に表示されているページを目印ページとして登録する(S101)。そして、制御部11は電子書籍ビューアのモードをジェスチャモードに切り替える(S102)。この場合、制御部11はジェスチャモードの処理の実行を開始する(図11A〜図11C参照)。
図11A〜図11Cはジェスチャモードの処理の一例を示すフロー図である。図11Aに示すように、まず制御部11は、ユーザの指が検知領域20内に接触し続けているか否かを判定する(S200)。
ユーザの指が検知領域20内に接触し続けていないと判定された場合、すなわち、検知領域20内への接触が終了した場合、制御部11は電子書籍ビューアのモードをタッチモードに切り替える(S201)。この場合、制御部11はタッチモードの処理の実行を開始する(図10参照)。
一方、ユーザの指が検知領域20内に接触し続けていると判定された場合、制御部11は、ユーザから見て左方向又は右方向へのフリック操作が行われたか否かを判定する(S202)。また、フリック操作が行われたと判定された場合、制御部11は画面に表示されるページを変更する(S203)。例えば、横書きの電子書籍の場合、制御部11は、左方向へのフリック操作に応じて、画面に表示されるページを現在のページよりも一つ後のページに変更し、右方向へのフリック操作に応じて、画面に表示されるページを現在のページよりの一つ前のページに変更する。一方、縦書きの電子書籍の場合、制御部11は、右方向へのフリック操作に応じて、画面に表示されるページを現在のページよりも一つ後のページに変更し、左方向へのフリック操作に応じて、画面に表示されるページを現在のページよりの一つ前のページに変更する。
ステップS203の実行後、制御部11は画面に表示されているページから目印ページまでのページ数(N)を算出する(S204)。さらに、制御部11は軌跡30をN個の区間に分割する(S205)。
例えば、画面に表示されているページが第10ページであり、かつ、目印ページが第15ページである場合、制御部11はページ数(N)として「6」を取得し、軌跡30を6個の区間に分割する(図7参照)。また制御部11は、画面に表示されているページ(第10ページ)から目印ページ(第15ページ)までの6ページをそれぞれ6個の各区間に1ページずつ順番に関連付ける。
ステップS205の実行後、又は、ステップS202においてフリック操作が行われなかったと判定された場合、制御部11は、検知領域20に接触している指(接触位置)の移動が開始したか否かを判定する(S206)。すなわち、制御部11が、指(接触位置)が軌跡30の開始位置30Aに向けての移動を開始したか否かを判定する。
検知領域20に接触している指(接触位置)の移動が開始したと判定された場合、図11Bに示すように、制御部11は、当該指(接触位置)の移動速度が基準速度以上であるか否かを判定する(S207)。上記移動速度が基準速度以上であると判定された場合、制御部11は当該指(接触位置)が停止したか否かを監視する(S208)。例えば、指(接触位置)が停止してから基準時間以上が経過した場合に制御部11は指(接触位置)が停止したと判定する。
指(接触位置)が停止していないと判定された場合、制御部11はユーザの指が検知領域20から離れたか否かを判定する(S209)。ユーザの指が検知領域20から離れたと判定された場合(すなわち、検知領域20内への接触が終了した場合)、制御部11は電子書籍ビューアのモードをタッチモードに切り替える(S201)。この場合、制御部11はタッチモードの処理の実行を開始する(図10参照)。一方、ユーザの指が検知領域20から離れていないと判定された場合、制御部11はステップS207を実行する。
一方、ステップS208において指(接触位置)が停止したと判定された場合、制御部11は、軌跡30上に設定された複数の区間のうちの、検知領域20に接触している指の位置(接触位置)が属する区間を特定する(S210)。例えば、制御部11は指の位置(接触位置)に最も近い軌跡30上の位置を取得し、当該位置が複数の区間のうちのいずれに属するかを判定する。
ステップS210の実行後、制御部11は、ステップS210で特定された区間に関連付けられたページを画面に表示する(S211)。ステップS211の実行後、制御部11は指(接触位置)の移動が再開したか否かを判定する(S212)。移動が再開したと判定された場合、制御部11はステップS207を実行し、移動が再開していないと判定された場合、制御部11はユーザの指が検知領域20から離れたか否かを判定する(S213)。ユーザの指が検知領域20から離れたと判定された場合(すなわち、検知領域20内への接触が終了した場合)、制御部11は電子書籍ビューアのモードをタッチモードに切り替える(S201)。この場合、制御部11はタッチモードの処理の実行を開始する(図10参照)。
ステップS207において上記移動速度が基準速度以上でないと判定された場合、すなわち、上記移動速度が基準速度未満である場合、図11Cに示すように、制御部11は、検知領域20に接触している指(接触位置)が予め定められた単位距離移動したか否かを判定する(S214)。
指(接触位置)が単位距離移動したと判定された場合、制御部11は画面に表示されているページを1ページ変更する(S215)。例えば、目印ページが画面に表示されているページよりも後のページであれば、制御部11は画面に表示されているページを現在のページよりも1つ後のページに変更し、目印ページが画面に表示されているページよりも前のページであれば、制御部11は画面に表示されているページを現在のページよりも1つ前のページに変更する。
ステップS215の実行後、制御部11は画面に表示されているページから目印ページまでのページ数(N)を算出する(S216)。さらに、制御部11は、検知領域20に接触している指の位置(接触位置)から軌跡30の開始位置30Aまでの軌跡部分をN個の区間に分割する(S217)。
例えば、画面に表示されているページが第12ページであり、かつ、目印ページが第15ページである場合、制御部11はページ数(N)として「4」を取得し、上記軌跡部分を4個の区間に分割する(図8参照)。また制御部11は、画面に表示されているページ(第12ページ)から目印ページ(第15ページ)までの4ページをそれぞれ4個の各区間に順番に関連付ける。
ステップS217の実行後、又は、ステップS214において指(接触位置)が単位距離移動していないと判定された場合、制御部11はユーザの指が検知領域20から離れたか否かを判定する(S218)。ユーザの指が検知領域20から離れたと判定された場合(すなわち、検知領域20内への接触が終了した場合)、制御部11は電子書籍ビューアのモードをタッチモードに切り替える(S201)。この場合、制御部11はタッチモードの処理の実行を開始する(図10参照)。一方、ユーザの指が検知領域20から離れていないと判定された場合、制御部11はステップS207を実行する。
以上説明した情報処理装置10では、情報処理装置10を把持している手の指を予め定められた態様の軌跡30(例えば図6に示す軌跡30)を描くようにしてスライドさせるという簡易な操作によって、タッチモードからジェスチャモードに切り替わり、その時点で画面に表示されているページが目印ページとして登録される。また情報処理装置10のジェスチャモードでは、情報処理装置10を把持している手の指を軌跡30に沿って終了位置30Bから開始位置30Aに向かってスライドさせるという簡易な操作によって、画面に表示されるページを目印ページにどれだけ近づけるのかが入力され、画面に表示されるページが目印ページに近づいたり、目印ページに戻ったりする。すなわち、画面に表示されるページを目印ページにどこまで近づけるのかが上記操作の量(すなわち指の移動量)に基づいて設定される。
また情報処理装置10では、タッチモードからジェスチャモードに切り替える上記操作が、図6に示す軌跡30(上方かつ左外側に向かって弧を描くような軌跡)に沿って指をスライドさせる操作になっており、かつ、当該操作を行う領域が検知領域20に限定されている。このため、他の操作が、タッチモードからジェスチャモードに切り替える上記操作として誤って検出されにくくなっている。例えばタッチモードではユーザは画面に表示されるページの文章を指でなぞりながら読むことが可能であるが、画面に表示されるページの文章を指でなぞる操作が、タッチモードからジェスチャモードに切り替える上記操作として検出されにくくなっている。
なお、本発明は以上に説明した実施形態に限定されるものではない。
[1]例えば、図6に示す軌跡30が入力された後(すなわちジェスチャモード)では、軌跡30の開始位置30A(すなわち連続操作の開始時に入力された入力位置)を画面に表示するようにしてもよい。このようにすることによって、ユーザが左手の親指Tをどの位置に向けて戻すべきかを把握できるようにしてもよい。
同様に、図6に示す軌跡30が入力された後(すなわちジェスチャモード)では、軌跡30(すなわち連続操作の軌跡)を画面に表示するようにしてもよい。このようにすることによって、ユーザが左手の親指Tをどの軌跡に沿って戻すべきかを把握できるようにしてもよい。
また、図6に示す軌跡30が入力された後(すなわちジェスチャモード)では、軌跡30の終了位置30B(すなわち連続操作の終了時に入力された入力位置)を画面に表示するようにしてもよい。このようにすることによって、例えば左手の親指Tを軌跡30の終了位置30Bから開始位置30Aに向けて移動した後で親指Tを終了位置30Bに戻すような場合に、ユーザが親指Tをどの位置に向けて移動すべきかを把握できるようにしてもよい。
[2]例えば、図6に示す軌跡30が入力された後(すなわちジェスチャモード)では、目印ページに関する情報を画面に表示するようにしてもよい。例えば、目印ページの全体又は一部を検知領域20に接触している親指Tの位置に関連付けて表示するようにしてもよい。具体的には、例えば、目印ページのサムネイル画像を親指Tの位置に関連付けて表示するようにしてもよい。または、目印ページのページ番号を親指Tの位置に関連付けて表示するようにしてもよい。
[3]例えば、電子書籍の各ページが画面に表示されていた際にユーザが接触した位置を記憶しておくようにしてもよい。そして、図11BのステップS211や図11CのステップS215においてページを画面に表示する際には、ユーザが過去の時点で接触していた位置を表示するようにしてもよい。この際、ユーザが過去の時点で接触していた位置を示すオブジェクトを表示し、オブジェクトの表示態様(例えば色、大きさ、又は形状等)を、ユーザが当該位置に接触した時刻と現在時刻との差に基づいて設定するようにしてもよい。例えば、ユーザが当該位置に接触した時刻が現在時刻と近いほど、オブジェクトの色が濃くなるようにしたり、オブジェクトの大きさが大きくなるようにしたりするようにしてもよい。
[4]例えば、図5に示す状態でユーザが親指Tをタッチパネル14外の部分(ベゼル部分)にスライドした場合、目印ページとして登録されたページ(すなわち、一時的にブックマークされたページ)を半永続的にブックマークするようにしてもよい。
[5]例えば、図5に示す状態でユーザが軌跡30の入力に用いた左手の親指Tではなく、他の指を軌跡30に沿って終了位置30Bから開始位置30Aに向けてスライドさせた場合にも、左手の親指Tを軌跡30に沿って終了位置30Bから開始位置30Aに向けてスライドさせた場合と同様の処理を実行するようにしてもよい。
[6]例えば、以上に説明したジェスチャモードでは、ユーザから見て左方向又は右方向へのフリック操作に応じて、画面に表示されるページが変わる(ページがめくられる)ようになっていたが、例えば、画面に表示されるスクロールバーを用いたスクロール操作等に応じて、画面に表示されるページが変わるようにしてもよい。
[7]例えば、以上では、本発明を電子書籍のページの移動に適用した例について説明したが、例はこれに限られない。
[7−1]例えば、本発明は、ユーザが電子書籍のページ中のいずれかの単語を選択して当該単語の意味を確認するような場合に適用するようにしてもよい。
例えば、図6に示す軌跡30が検知領域20内で入力された場合に、その時点で画面に表示されているページを目印ページとして登録するとともに、ユーザがページ内のいずれかの単語を選択可能な状態にするようにしてもよい。また、ユーザがいずれかの単語を選択した場合、当該単語の意味を表示するようにしてもよい。そして、単語の意味が表示された状態でユーザが親指Tを軌跡30に沿って終了位置30Bから開始位置30Aまでスライドした場合に、目印ページとして登録されたページを画面に表示するようにしてもよい。
[7−2]また例えば、本発明は、ユーザが拡大又は縮小表示された電子書籍を元の表示サイズに戻すような場合に適用するようにしてもよい。
例えば、図6に示す軌跡30が検知領域20内で入力された場合に、その時点で画面に表示されているページをユーザが拡大又は縮小表示することが可能な状態にするようにしてもよい。その後、ユーザが予め定められた操作(例えばピンチイン操作又はピンチアウト操作)を行った場合に、画面に表示されているページを拡大又は縮小表示するようにしてもよい。そして、ページが拡大又は縮小表示された状態でユーザが親指Tを軌跡30に沿って終了位置30Bから開始位置30Aまでスライドした場合に、画面に表示されているページを元の表示サイズ(通常の表示サイズ)に戻すようにしてもよい。
[7−3]また例えば、本発明は、ユーザが電子書籍を読んでいる際に他の電子書籍を参照するような場合に適用するようにしてもよい。
例えば、図6に示す軌跡30が検知領域20内で入力された場合に、その時点で表示されている電子書籍(電子書籍A)の識別情報及び表示位置情報を記憶するとともに、ユーザが他の文書を選択可能な状態にするようにしてもよい。また、ユーザがいずれかの他の電子書籍(電子書籍B)を選択した場合、電子書籍Bを画面に表示するようにしてもよい。そして、電子書籍Bが表示された状態でユーザが親指Tを軌跡30に沿って終了位置30Bから開始位置30Aまでスライドした場合に、記憶された識別情報及び表示位置情報に基づいて電子書籍Aを画面に表示するようにしてもよい。
[7−4]例えば、本発明は、ユーザが電子書籍以外のウェブページ、文書、図、又は画像を見るような場合にも適用してもよい。
例えば、図6に示す軌跡30が検知領域20内で入力された場合に、その時点で表示されているウェブページを目印ウェブページとして登録するようにしてもよい。すなわち、その時点で表示されているウェブページを一時的にブックマークするようにしてもよい。また、その後の期間において、画面に表示されるウェブページがユーザの操作に応じて変わった場合、画面に表示されたウェブページの履歴を記録しておくようにしてもよい。そして、ユーザが親指Tを軌跡30に沿って終了位置30Bから開始位置30Aに向かってスライドした場合に、親指Tの位置(移動量)に基づいて上記履歴を遡るようにして、画面に表示されるウェブページを目印ウェブページに近づけたり、目印ウェブページ自体に戻したりするようにしてもよい。
なお、この場合、上記期間において画面に表示されたウェブページの数に対応する数の区間を軌跡30上に設定するようにすればよい。あるいは、上記期間を単位時間で除することによって得られる数に対応する数の区間を軌跡30上に設定するようにしてもよい。そして、親指Tの位置(接触位置)がいずれかの区間で位置している場合に、当該区間に対応する時点において画面に表示されていたウェブページを画面に表示するようにしてもよい。
[7−5]例えば、本発明は、ユーザが画面に表示される対象(文書、図、又は画像)に対して加えられた変更を戻すような場合にも適用するようにしてもよい。
例えば、図6に示す軌跡30が検知領域20内で入力された場合に、その時点における上記対象の状態(第1状態)を記憶するようにしてもよい。その後の期間において、ユーザの操作に応じて上記対象に変更が加えられることによって、上記対象の状態が第1状態から他の状態(第2状態)に変更された場合、上記対象に加えられた変更(ユーザの操作)の履歴を記録するようにしてもよい。そして、ユーザが親指Tを軌跡30に沿って終了位置30Bから開始位置30Aに向かってスライドした場合に、親指Tの位置(移動量)に基づいて上記履歴を遡るようにして、画面に表示される上記対象の状態を第1状態に近づけたり、第1状態自体に戻したりするようにしてもよい。
なお、この場合、上記期間において画面に表示された上記対象に行われた操作(言い換えれば上記対象に施された変更)のステップ数に対応する数の区間を軌跡30上に設定するようにすればよい。あるいは、上記期間を単位時間で除することによって得られる数に対応する数の区間を軌跡30上に設定するようにしてもよい。そして、例えば、親指Tの位置(接触位置)がいずれかの区間で位置している場合に、画面に表示される上記対象の状態(態様)を、当該区間に対応する時点における上記対象の状態(態様)に設定するようにしてもよい。
以上のようにすることによって、いわゆるUndo機能を実現するようにしてもよい。なお、Undo機能とは、ユーザが対象に対して行った操作を取り消すことによって対象の状態を元の状態に戻す機能である。
また例えば、ユーザが親指Tを軌跡30に沿って終了位置30Bから開始位置30Aに向けてスライドすることによって、上記対象の状態を第2状態から他の状態に戻した後で、再度、ユーザが親指Tを軌跡30に沿って終了位置30Bに向けてスライドさせた場合には、上記対象の状態を第2状態に近づけたり、第2状態自体に再度戻したりするようにしてもよい。このようにすることによって、いわゆるRedo機能を実現するようにしてもよい。なお、Redo機能とは、Undo機能によって取り消された操作を再度行う機能である。
[8]例えば、以上に説明した実施形態では、ユーザによって入力された入力位置を取得するためにタッチパネルを用いていたが、情報処理装置が備えている他のデバイス(例えばジョグダイヤル等)を用いるようにしてもよい。