以下、本発明につき図面を参照しつつ詳細に説明する。なお、以下の説明により本発明が限定されるものではない。また、以下の説明における構成要素には、当業者が容易に想定できるもの、実質的に同一のもの、いわゆる均等の範囲のものが含まれる。
まず、図1および図2を参照しながら、第1の実施例に係る表示装置1の全体的な構成について説明する。図1は、表示装置1の斜視図である。図2は、利用者によって装着された表示装置1を正面から見た図である。図1および図2に示すように、表示装置1は、利用者の頭部に装着されるヘッドマウントタイプの装置である。
表示装置1は、前面部1aと、側面部1bと、側面部1cとを有する。前面部1aは、装着時に、利用者の両目を覆うように利用者の正面に配置される。側面部1bは、前面部1aの一方の端部に接続され、側面部1cは、前面部1aの他方の端部に接続される。側面部1bおよび側面部1cは、装着時に、眼鏡の蔓のように利用者の耳によって支持され、表示装置1を安定させる。側面部1bおよび側面部1cは、装着時に、利用者の頭部の背面で接続されるように構成されてもよい。
前面部1aは、装着時に利用者の目と対向する面に表示部32aおよび表示部32bを備える。表示部32aは、装着時に利用者の右目と対向する位置に配設され、表示部32bは、装着時に利用者の左目と対向する位置に配設される。表示部32aは、右目用の画像を表示し、表示部32bは、左目用の画像を表示する。このように、装着時に利用者のそれぞれの目に対応した画像を表示する表示部32aおよび表示部32bを備えることにより、表示装置1は、両眼の視差を利用した3次元表示を実現することができる。
表示部32aおよび表示部32bは、利用者の右目と左目に異なる画像を独立して提供することができれば、1つの表示デバイスによって構成されてもよい。例えば、表示される画像が一方の目にしか見えないように遮蔽するシャッターを高速に切り替えることによって、1つの表示デバイスが右目と左目に異なる画像を独立して提供するように構成してもよい。前面部1aは、装着時に外光が利用者の目に入らないように、利用者の目を覆うように構成されてもよい。
前面部1aは、表示部32aおよび表示部32bが設けられている面とは反対側の面に撮影部40および撮影部42を備える。撮影部40は、前面部1aの一方の端部(装着時の右目側)の近傍に配設され、撮影部42は、前面部1aの他方の端部(装着時の左目側)の近傍に配設される。撮影部40は、利用者の右目の視界に相当する範囲の画像を取得する。撮影部42は、利用者の左目の視界に相当する範囲の画像を取得する。ここでいう視界とは、例えば、利用者が正面を見ているときの視界である。
表示装置1は、撮影部40によって撮影された画像を右目用の画像として表示部32aに表示し、撮影部42によって撮影された画像を左目用の画像として表示部32bに表示する。このため、表示装置1は、装着中の利用者に、前面部1aによって視界が遮られていても、表示装置1を装着していないときと同様の光景を提供することができる。
表示装置1は、このように現実の光景を利用者に提供する機能に加えて、仮想的な情報を3次元的に表示し、仮想的な情報を利用者が操作することを可能にする機能を有する。表示装置1によれば、仮想的な情報は、実際に存在しているかのように、現実の光景と重ねて表示される。そして、利用者は、例えば、手を使って仮想的な情報を実際に触っているかのように操作し、移動、回転、変形等の変化を仮想的な情報に施すことができる。このように、表示装置1は、仮想的な情報に関して、直感的で利便性の高い操作方法を提供する。以下の説明では、表示装置1によって3次元的に表示される仮想的な情報を「3次元オブジェクト」と呼ぶことがある。
表示装置1は、表示装置1を装着していない場合と同様の広い視界を利用者に提供する。そして、表示装置1は、この広い視界の中の任意の位置に任意の大きさで3次元オブジェクトを配置することができる。このように、表示装置1は、表示デバイスの大きさの制約を受けることなく、広い空間の様々な位置に様々な大きさの3次元オブジェクトを表示することができる。
図1および図2では、表示装置1が、眼鏡(ゴーグル)のような形状を有する例を示したが、表示装置1の形状はこれに限定されない。例えば、表示装置1は、図3に示す表示装置2のように、利用者の頭部のほぼ上半分を覆うようなヘルメットタイプの形状を有していてもよい。あるいは、表示装置1は、図4に示す表示装置3のように、利用者の顔面のほぼ全体を覆うようなマスクタイプの形状を有していてもよい。表示装置1は、図5に示す表示装置4のように、情報処理装置、バッテリ装置等の外部装置4dと有線または無線で接続される構成であってもよい。
次に、図6を参照しながら、表示装置1の機能的な構成について説明する。図6は、表示装置1のブロック図である。図6に示すように、表示装置1は、操作部13と、制御部22と、記憶部24と、表示部32aおよび32bと、撮影部40および42と、検出部44と、測距部46とを有する。操作部13は、表示装置1の起動、停止、動作モードの変更等の基本的な操作を受け付ける。
表示部32aおよび32bは、液晶ディスプレイ(Liquid Crystal Display)、有機EL(Organic Electro−Luminescence)パネル等の表示デバイスを備え、制御部22から入力される制御信号に従って各種の情報を表示する。表示部32aおよび32bは、レーザー光線等の光源を用いて利用者の網膜に画像を投影する投影装置であってもよい。
撮影部40および42は、CCD(Charge Coupled Device Image Sensor)、CMOS(Complementary Metal Oxide Semiconductor)等のイメージセンサを用いて電子的に画像を撮影する。そして、撮影部40および42は、撮影した画像を信号に変換して制御部22へ出力する。
検出部44は、撮影部40および42の撮影範囲に存在する現実の物体を検出する。検出部44は、例えば、撮影範囲に存在する現実の物体のうち、予め登録された形状(例えば、人間の手の形状)にマッチする物体を検出する。検出部44は、予め形状が登録されていない物体についても、画素の明度、彩度、色相のエッジ等に基づいて、画像中の現実の物体の範囲(形状および大きさ)を検出するように構成されてもよい。
測距部46は、撮影部40および42の撮影範囲に存在する現実の物体までの距離を測定する。現実の物体までの距離は、表示装置1を装着している利用者のそれぞれの目の位置を基準として目毎に測定される。このため、測距部46が距離を測定する基準位置がそれぞれの目の位置とずれている場合には、測距部46の測定値は、そのずれに応じて、目の位置までの距離を表すように補正される。
本実施例においては、撮影部40および42が、検出部44および測距部46を兼ねる。すなわち、本実施例においては、撮影部40および42によって撮影される画像を解析することによって、撮影範囲内の物体が検出される。さらに、撮影部40によって撮影される画像に含まれる物体と撮影部42によって撮影される画像に含まれる物体とを比較することにより、物体との距離が測定(算出)される。
表示装置1は、撮影部40および42とは別に、検出部44を備えてもよい。検出部44は、例えば、可視光、赤外線、紫外線、電波、音波、磁気、静電容量の少なくとも1つを用いて、撮影範囲に存在する現実の物体を検出するセンサであってもよい。表示装置1は、撮影部40および42とは別に、測距部46を備えてもよい。測距部46は、例えば、可視光、赤外線、紫外線、電波、音波、磁気、静電容量の少なくとも1つを用いて、撮影範囲に存在する現実の物体までの距離を検出するセンサであってもよい。表示装置1は、TOF(Time-of-Flight)法を用いたセンサのように、検出部44および測距部46を兼ねることができるセンサを備えてもよい。
制御部22は、演算手段であるCPU(Central Processing Unit)と、記憶手段であるメモリとを備え、これらのハードウェア資源を用いてプログラムを実行することによって各種の機能を実現する。具体的には、制御部22は、記憶部24に記憶されているプログラムやデータを読み出してメモリに展開し、メモリに展開されたプログラムに含まれる命令をCPUに実行させる。そして、制御部22は、CPUによる命令の実行結果に応じて、メモリおよび記憶部24に対してデータの読み書きを行ったり、表示部32a等の動作を制御したりする。CPUが命令を実行するに際しては、メモリに展開されているデータや検出部44を介して検出される操作がパラメータや判定条件の一部として利用される。
記憶部24は、フラッシュメモリ等の不揮発性を有する記憶装置からなり、各種のプログラムやデータを記憶する。記憶部24に記憶されるプログラムには、制御プログラム24aが含まれる。記憶部24に記憶されるデータには、オブジェクトデータ24bと、作用データ24cと、仮想空間データ24dとが含まれる。記憶部24は、メモリカード等の可搬の記憶媒体と、記憶媒体に対して読み書きを行う読み書き装置との組み合わせによって構成されてもよい。この場合、制御プログラム24a、オブジェクトデータ24b、作用データ24c、仮想空間データ24dは、記憶媒体に記憶されていてもよい。また、制御プログラム24a、オブジェクトデータ24b、作用データ24c、仮想空間データ24dは、無線通信または有線通信によってサーバ装置等の他の装置から取得されてもよい。
制御プログラム24aは、表示装置1を稼働させるための各種制御に関する機能を提供する。制御プログラム24aが提供する機能には、撮影部40および42が取得する画像に3次元オブジェクトを重ねて表示部32aおよび32bに表示する機能、3次元オブジェクトに対する操作を検出する機能、検出した操作に応じて3次元オブジェクトを変化させる機能等が含まれる。制御プログラム24aは、このように、3次元オブジェクトの表示を制御したり、3次元オブジェクトに対する操作を検出したりすることにより、後述するように、利用者が電子的な出版物を楽しむことを可能にする。
制御プログラム24aは、検出処理部25と、表示オブジェクト制御部26と、画像合成部27とを含む。検出処理部25は、撮影部40および42の撮影範囲に存在する現実の物体を検出するための機能を提供する。検出処理部25が提供する機能には、検出したそれぞれの物体までの距離を測定する機能が含まれる。
表示オブジェクト制御部26は、仮想空間にどのような3次元オブジェクトが配置され、それぞれの3次元オブジェクトがどのような状態にあるかを管理するための機能を提供する。表示オブジェクト制御部26が提供する機能には、検出処理部25の機能によって検出される現実の物体の動きに基づいて3次元オブジェクトに対する操作を検出し、検出した操作に基づいて3次元オブジェクトを変化させる機能が含まれる。
画像合成部27は、現実の空間の画像と仮想空間の画像とを合成することにより、表示部32aに表示する画像と表示部32bに表示する画像とを生成するための機能を提供する。画像合成部27が提供する機能には、検出処理部25の機能によって測定される現実の物体までの距離と、仮想空間における視点から3次元オブジェクトまでの距離とに基づいて、現実の物体と3次元オブジェクトの前後関係を判定し、重なりを調整する機能が含まれる。
オブジェクトデータ24bは、3次元オブジェクトの形状および性質に関する情報を含む。オブジェクトデータ24bは、3次元オブジェクトを表示するために用いられる。作用データ24cは、表示されている3次元オブジェクトに対する操作が3次元オブジェクトにどのように作用するかに関する情報を含む。作用データ24cは、表示されている3次元オブジェクトに対する操作が検出された場合に、3次元オブジェクトをどのように変化させるかを判定するために用いられる。ここでいう変化には、移動、回転、変形、消失等が含まれる。仮想空間データ24dは、仮想空間に配置される3次元オブジェクトの状態に関する情報を保持する。3次元オブジェクトの状態には、例えば、位置、姿勢、変形の状況等が含まれる。
次に、図7を参照しながら、制御プログラム24aが提供する機能に基づく制御の例について説明する。画像P1aは、撮影部40によって得られる画像、すなわち、現実の空間を右目で見た光景に相当する画像である。画像P1aには、テーブルT1と、利用者の手H1とが写っている。表示装置1は、同じ場面を撮影部42によって撮影した画像、すなわち、現実の空間を左目で見た光景に相当する画像も取得する。
画像P2aは、仮想空間データ24dおよびオブジェクトデータ24bに基づいて生成される右目用の画像である。この例において、仮想空間データ24dは、仮想空間中に存在するブロック状の3次元オブジェクトBL1の状態に関する情報を保持し、オブジェクトデータ24bは、3次元オブジェクトBL1の形状および性質に関する情報を保持する。表示装置1は、これらの情報に基づいて仮想空間を再現し、再現した仮想空間を右目の視点から見た画像P2aを生成する。仮想空間における右目(視点)の位置は、所定の規則に基づいて決定される。表示装置1は、同様に、再現した仮想空間を左目の視点で見た画像も生成する。すなわち、表示装置1は、画像P2aと組み合わせることによって3次元オブジェクトBL1が3次元的に表示される画像も生成する。
表示装置1は、図7に示すステップS1において、画像P1aおよび画像P2aを合成して、画像P3aを生成する。画像P3aは、右目用の画像として表示部32aに表示される画像である。このとき、表示装置1は、利用者の右目の位置を基準として、撮影部40の撮影範囲にある現実の物体と、仮想空間内に存在する3次元オブジェクトとの前後関係を判定する。そして、現実の物体と3次元オブジェクトとが重なっている場合には、利用者の右目により近いものが前面に見えるように重なりを調整する。
このような重なりの調整は、現実の物体と3次元オブジェクトとが重なる画像上の領域内の所定の大きさの範囲毎(例えば、1画素毎)に行われる。このため、現実の空間における視点から現実の物体までの距離は、画像上の所定の大きさの範囲毎に測定される。さらに、仮想空間における視点から3次元オブジェクトまでの距離は、3次元オブジェクトの位置、形状、姿勢等を考慮して、画像上の所定の大きさの範囲毎に算出される。
図7に示すステップS1の場面では、3次元オブジェクトBL1は、仮想空間において、テーブルT1が現実の空間で存在する位置のすぐ上に相当する位置に配置されている。さらに、図7に示すステップS1の場面では、利用者の手H1と3次元オブジェクトBL1が、利用者の右目の位置を基準として、ほぼ同じ方向に、ほぼ同じ距離で存在している。このため、所定の大きさの範囲毎に重なりを調整することにより、合成後の画像P3aでは、手H1と3次元オブジェクトBL1とが重なっている領域のうち、手H1の親指に相当する部分では手H1が前面に現れ、他の部分では3次元オブジェクトBL1が前面に現れている。さらに、テーブルT1と3次元オブジェクトBL1とが重なっている領域では、3次元オブジェクトBL1が前面に現れている。
このような重なりの調整により、図7に示すステップS1では、あたかもテーブルT1上に3次元オブジェクトBL1が置かれ、3次元オブジェクトBL1を利用者が手H1で摘んでいるかのような画像P3aが得られている。表示装置1は、同様の処理により、撮影部42によって撮影した画像と仮想空間を左目の視点から見た画像とを合成し、左目用の画像として表示部32bに表示される画像を生成する。左目用の画像を生成する場合、現実の物体と3次元オブジェクトとの重なりは、利用者の左目の位置を基準として調整される。
表示装置1は、こうして生成した合成画像を表示部32aおよび32bに表示する。その結果、利用者は、あたかも、3次元オブジェクトBL1がテーブルT1の上に置かれ、自分の手H1で3次元オブジェクトBL1を摘んでいるかのような光景を見ることができる。
図7に示すステップS2の場面では、利用者が手H1を矢印A1の方向に移動させている。この場合、撮影部40によって得られる画像は、手H1の位置が右へ移動した画像P1bに変化する。さらに、表示装置1は、手H1の動きを、3次元オブジェクトを摘んだままで右へ移動させる操作と判定し、操作に応じて、仮想空間における3次元オブジェクトの位置を右へ移動させる。仮想空間における3次元オブジェクトの移動は、仮想空間データ24dに反映される。その結果、仮想空間データ24dおよびオブジェクトデータ24bに基づいて生成される右目用の画像は、3次元オブジェクトBL1の位置が右へ移動した画像P2bに変化する。表示装置1による操作の検出の詳細については、後述する。
表示装置1は、画像P1bおよび画像P2bを合成して右目用の画像P3bを生成する。画像P3bは、画像P3aと比較して、テーブルT1上のより右側の位置で、3次元オブジェクトBL1を利用者が手H1で摘んでいるかのような画像となっている。表示装置1は、同様に左目用の合成画像を生成する。そして、表示装置1は、こうして生成した合成画像を表示部32aおよび32bに表示する。その結果、利用者は、あたかも、自分の手H1で3次元オブジェクトBL1を摘んで右へ移動させたかのような光景を見ることができる。
このような表示用の合成画像の更新は、一般的な動画のフレームレートと同等の頻度(例えば、毎秒30回)で実行される。その結果、利用者の操作に応じた3次元オブジェクトの変化は、表示装置1が表示する画像にほぼリアルタイムに反映され、利用者は、あたかも実際に存在しているかのように、違和感なく3次元オブジェクトを操作することができる。さらに、本実施例に係る構成では、3次元オブジェクトを操作する利用者の手が、利用者の目と表示部32aおよび32bの間に位置することがないため、利用者は、手によって3次元オブジェクトの表示が遮られることを気にすることなく操作を行うことができる。
次に、図8を参照しながら、図6に示したオブジェクトデータ24bおよび作用データ24cについてさらに詳しく説明する。図8は、オブジェクトデータ24bに格納される情報の一例を示す図である。図8に示す例は、本として表示される3次元オブジェクトに関する情報の例である。図8に示すように、本として表示される3次元オブジェクトは、表表紙、裏表紙、背表紙、および複数のページという複数の3次元オブジェクトを含む。すなわち、本として表示される3次元オブジェクトは、3次元オブジェクトの集合体である。なお、以下の説明では、説明の便宜のために、本として表示される3次元オブジェクトを単に「本」ということがある。同様に、表表紙、裏表紙、背表紙、およびページに相当する3次元オブジェクトを、それぞれ、単に「表表紙」、「裏表紙」、「背表紙」、および「ページ」ということがある。
表表紙、裏表紙、および背表紙には、厚み、幅、高さ、色といった外観および性質を特定するための情報が予め設定される。また、表表紙、裏表紙、および背表紙には、3次元オブジェクトの表面に表示すべき文字列および画像等が、所定の形式でコンテンツとして設定される。
複数のページには、厚み、幅、高さ、色といった外観および性質を特定するための情報が予め共通に設定される。また、複数のページには、それぞれのページに表示すべきテキストおよび画像等が、所定の形式でコンテンツとしてページ毎に設定される。ページには、「<折り返し />」、「<栞 />」といったそのページに特有な情報が付加されることがある。「<折り返し />」は、対応するページの一部が折り返されていることを示す。「<栞 />」は、対応するページに栞が挟まれていることを示す。
なお、図8では、オブジェクトデータ24bがXML(Extensible Markup Language)形式で記述されている例を示したが、オブジェクトデータ24bの形式はこれに限定されない。例えば、オブジェクトデータ24bの形式は、専用に設計された形式でもよい。また、本として表示される3次元オブジェクトの構成は、図8に示した例に限定されない。例えば、本として表示される3次元オブジェクトは、表表紙、裏表紙、および背表紙の形状および性質を特定するための情報を含まなくてもよい。この場合、全ての本の表表紙、裏表紙、および背表紙は、予め行われた設定に従って共通の形状および性質をもってもよい。
図9は、作用データ24cに格納される情報の一例を示す図である。図9に示す例は、本に含まれるページに対する操作がそれらのページにどのように作用するかを示している。なお、本実施例では、ページに対する操作は、たとえば、ページの一部を指等で掴んで行う操作であると想定されている。
図9に示すように、ページに対する操作の作用は、状況、移動方向、移動範囲、移動速度、および剛性等の条件に応じて変化する。状況は、解放時、すなわち、掴む操作が完了した時点、または、移動中、すなわち、掴む操作の最中のいずれであるかを示す。移動方向は、ページを掴む指等の移動する方向である。移動範囲は、ページを掴む指等の移動する範囲である。移動速度は、ページを掴む指等の移動する速度である。剛性は、ページの硬さを示す。剛性は、ページの厚さに基づいて判定される。
状況が解放時で、ページを掴む指等の直前の移動方向が本の開閉方向、すなわち、ページの連結部を回転軸として回動する方向であったものとする。この場合、指等の移動範囲がページの連結部を超えていれば、すなわち、指等がページの連結部をまたがって移動していれば、表示装置1は、掴まれていたページをめくられたように変化させる。また、指等の移動範囲がページの連結部を超えていなくても、移動速度が閾値よりも高く、かつ、剛性が閾値よりも高い場合には、表示装置1は、掴まれていたページをめくられたように変化させる。また、指等の移動範囲がページの連結部を超えていない場合、移動速度が閾値よりも低いか、または、剛性が閾値よりも低い場合には、表示装置1は、掴まれていたページを重力に従って変化させる。重力に従った変化は、例えば、重力方向への落下として表現される。
また、状況が移動中であり、ページを掴む指等の移動方向がページの連結部との距離が変化する方向であったものとする。この場合、ページの剛性が閾値より高ければ、表示装置1は、掴まれている位置を変更する。また、ページの剛性が閾値より低い場合、掴まれている部分とページの連結部との距離が当初の距離以下であれば、表示装置1は、掴まれているページを指等の動きに合わせて変化させる。また、ページの剛性が閾値より低く、掴まれている部分とページの連結部との距離が当初よりも大きい場合、表示装置1は、掴まれているページを切り離されたように変化させる。すなわち、表示装置1は、掴まれているページを本から独立させる。
また、ページを掴む指等の移動方向が本の開閉方向と直交する方向であり、ページの剛性が閾値より高い場合、表示装置1は、掴まれている位置を変更する。また、ページを掴む指等の移動方向が本の開閉方向と直交する方向であり、ページの剛性が閾値より低い場合、表示装置1は、掴まれているページを切り離されたように変化させる。また、ページを掴む指等の移動方向が本の開閉方向の場合、表示装置1は、掴まれているページを指等の動きに合わせて変化させる。
このように、作用データ24cには、ページが操作に応じて、現実の本のページと同様に変化するように情報が設定される。表表紙および裏表紙に関しても、ページと同様の設定が作用データ24cにおいてなされる。なお、作用データ24cの構成および内容は図9に示した例に限定されない。例えば、作用データ24cは、図9に示した以外の条件を含んでもよい。また、作用データ24cにおいて定義される作用は、図9に示した例と異なっていてもよい。
次に、図10から図14を参照しながら、本の閲覧機能を実現するために表示装置1が実行する動作について説明する。以下の説明では、表示装置1を装着した利用者が見る空間を、表示空間と呼ぶことがある。図10は、本の閲覧機能を実現するために表示装置1が実行する基本的な処理手順を示すフローチャートである。図11および図12は、3次元オブジェクトを掴んで行う操作の検出について説明するための図である。図13は、3次元オブジェクトの選択検出処理の処理手順を示すフローチャートである。図14は、掴む操作検出処理の処理手順を示すフローチャートである。
図10に示す処理手順は、制御部22が制御プログラム24aを実行することによって実現される。図10に示すように、本の閲覧機能を実現するため、制御部22は、まず、ステップS101として、表示部32aおよび32bに本を含む仮想空間の画像と現実の空間の画像とを合成して表示する。表示される本の外観および内容は、オブジェクトデータ24bに基づいて決定される。
続いて、制御部22は、ステップS102として、本に対する操作が検出されたかを判定する。本に対する操作は、撮影部40および42によって撮影される画像に基づいて検出される。本に対する操作が検出された場合(ステップS102,Yes)、制御部22は、ステップS103として、検出された操作に応じて表示中の本を変化させる。検出された操作に応じた本の変化のさせ方は、作用データ24cに基づいて決定される。本に対する操作が検出されない場合(ステップS102,No)、表示中の本はそのままに保たれる。
続いて、制御部22は、ステップS104として、処理を終了させるかを判定する。制御部22は、例えば、利用者が本の閲覧機能の終了を指示する所定の操作を行った場合に、処理を終了させると判定する。処理を終了させる場合(ステップS104,Yes)、制御部22は、図9に示す処理手順を完了させる。処理を終了させない場合(ステップS104,No)、制御部22は、ステップS102以降を再実行する。
上述したように、本実施例では、本に対する操作は、たとえば、ページを指等で掴んで行う操作であると想定される。すなわち、図10に示すステップS102では、ページを掴んで行う操作が検出され、ステップS103では、ページを掴んで行う操作に対応する処理が実行される。
以下、図11から図14を参照しながら、掴んで行う操作に関する制御の詳細について説明する。図11に示すステップSA1では、表示部32aおよび32bによって、表示空間中に、3次元オブジェクトOB1が立体的に表示されている。また、3次元オブジェクトOB1を選択するために、利用者は、指F1と指F2の間に3次元オブジェクトOB1が位置するように指F1および指F2を移動させている。
表示装置1は、表示空間内で2つの物体が検出され、かつ、それらの2つの物体の間に3次元オブジェクトOB1が位置する場合、2つの物体の距離D1の変化を監視する。そして、距離D1が所定時間以上ほぼ一定であれば、3次元オブジェクトOB1が選択されたと判定し、3次元オブジェクトOB1を選択状態にする。そして、表示装置1は、3次元オブジェクトOB1の表示態様を変更する等して、3次元オブジェクトOB1が選択状態になったことを利用者に通知する。
3次元オブジェクトOB1が選択状態になったことは、例えば、3次元オブジェクトOB1の表面のうち、検出された2つの物体を結ぶ直線と交差する部分の近傍の色または明るさを変更することによって利用者に通知される。なお、このような視覚による通知に代えて、または、視覚による通知に加えて、音または振動による通知を行ってもよい。
表示装置1が2つの物体の距離D1の変化を監視している間、2つの物体は、3次元オブジェクトOB1を挟む位置に留まる必要はない。すなわち、利用者は、ステップSA1に示したように指F1と指F2の間に3次元オブジェクトOB1が位置するように指F1および指F2を移動させた後、その状態を保つことなく、指F1および指F2を他の位置へ移動させて構わない。例えば、利用者は、掴みたいページを挟む位置に指F1および指F2を移動させた後、掴んだページが選択状態となったことが通知される前に、掴んだページをめくる動作を開始してもよい。
ステップSA1の状態から、ステップSA2に示すように、利用者が、指F1と指F2の距離D1をほぼ一定に保ったまま移動させたものとする。この場合、表示装置1は、指F1と指F2の間に3次元オブジェクトOB1が表示されていることが検出された段階、すなわち、ステップSA1の段階から、指F1および指F2の動きに応じて、3次元オブジェクトOB1に移動、回転等の変化を加える。そして、表示装置1は、ステップSA3に示すように、指F1と指F2の距離D1がほぼ一定に保たれた状態が所定時間以上継続した段階で、3次元オブジェクトOB1を選択状態にする。
なお、図12のステップSB1からステップSB3に示すように、所定時間が経過する前に指F1と指F2の距離D1が離れた場合、表示装置1は、それまでに加えた変化と逆の変化を3次元オブジェクトOB1に加える。すなわち、利用者が、3次元オブジェクトOB1を操作することを意図していなかった場合、3次元オブジェクトOB1は、元の状態に戻される。その結果、3次元オブジェクトOB1は、ステップSB1の段階と同じ位置に同じ状態で表示される。逆の変化を3次元オブジェクトOB1に加える速度は、それまでに3次元オブジェクトOB1に変化が加えられた速度よりも速くてもよい。すなわち、高速に逆再生しているかのように3次元オブジェクトOB1を逆変化させてもよい。
このように、2つの物体の間に3次元オブジェクトが表示されていることが検出された段階から3次元オブジェクトに変化を加え始めることにより、利用者は、3次元オブジェクトが選択されつつあることを選択が確定する前から認識することができる。その結果、利用者は、意図した3次元オブジェクトが選択されたか否かを早期に知ることができる。なお、2つの物体の距離がほぼ一定に保たれた状態が所定時間以上継続するまでは、変化を加えられている3次元オブジェクトを通常時とも選択状態とも異なる態様(例えば、半透明)で表示することにより、利用者が3次元オブジェクトの状態を判別し易くしてもよい。
なお、ステップSA1の段階から、指F1および指F2の動きに応じて3次元オブジェクトOB1を変化させるのではなく、3次元オブジェクトOB1が選択状態になった後に3次元オブジェクトOB1を変化させ始めてもよい。また、ステップSA1のように指F1と指F2の間に3次元オブジェクトOB1が位置する状態が所定時間以上継続した場合にのみ、3次元オブジェクトOB1を選択状態にすることとしてもよい。
また、図11では、2つの物体の間に表示されている1つの3次元オブジェクトが選択される例を示したが、選択される3次元オブジェクトの数は1つに限定されない。2つの物体の間に複数の3次元オブジェクトが表示されていることが検出された場合、表示装置1は、それらの3次元オブジェクトをまとめて選択する。すなわち、表示装置1は、利用者が複数のページをまとめて選択し、それらを操作することを許す。
図13は、3次元オブジェクトの選択検出処理の処理手順を示す。図13に示す処理手順は、制御部22が制御プログラム24aを実行することによって実現される。図13に示すように、制御部22は、ステップS201として、検出部、すなわち、撮影部40および42によって第1の物体および第2の物体が検出されたかを判定する。第1の物体および第2の物体は、例えば、利用者の指である。
第1の物体および第2の物体が検出された場合(ステップS201,Yes)、制御部22は、ステップS202として、表示されている3次元オブジェクトの中から第1の物体と第2の物体との間に表示されている3次元オブジェクトを探す。
第1の物体と第2の物体との間に表示されている3次元オブジェクトがみつかった場合(ステップS203,Yes)、制御部22は、ステップS204として、第1の物体と第2の物体との間に表示されている3次元オブジェクトを仮選択状態にする。第1の物体と第2の物体との間に複数の3次元オブジェクトが表示されている場合、制御部22は、それらの3次元オブジェクトを全て仮選択状態にする。また、制御部22は、ステップS205として、第1の物体と第2の物体の距離を算出する。そして、制御部22は、ステップS206として、図14に示す掴む操作検出処理を実行し、その中で、選択状態にある3次元オブジェクトを検出された操作に応じて変化させる。
第1の物体と第2の物体との間に表示されている3次元オブジェクトがみつからない場合(ステップS203,No)、ステップS204〜ステップS206は実行されない。
その後、制御部22は、ステップS207として、処理を終了させるかを判定する。処理を終了させる場合(ステップS207,Yes)、制御部22は、処理手順を完了させる。処理を終了させない場合(ステップS207,No)、制御部22は、ステップS201以降を再実行する。
第1の物体および第2の物体が検出されない場合(ステップS201,No)、制御部22は、ステップS207を実行する。
図14は、掴む操作検出処理の処理手順を示す。図14に示す処理手順は、制御部22が制御プログラム24aを実行することによって実現される。図14に示すように、制御部22は、まず、ステップS301として、第1の物体と第2の物体の距離を算出する。そして、制御部22は、ステップS302として、3次元オブジェクトの選択時、すなわち、掴む操作検出処理の開始時点における距離とステップS301で測定した距離との差が閾値より大きいかを判定する。ここで用いられる閾値は、第1の物体と第2の物体の距離が、3次元オブジェクトの選択時とほぼ同じであるかを判定するための値である。
距離の差が閾値よりも小さい場合(ステップS302,No)、制御部22は、ステップS303として、掴む操作検出処理が開始されてから所定時間が経過したかを判定する。所定時間が経過していた場合(ステップS303,Yes)、制御部22は、ステップS304として、仮選択状態の3次元オブジェクトがあれば、その3次元オブジェクトを選択状態にする。所定時間が経過していない場合(ステップS303,No)、ステップS304は実行されない。なお、所定時間は、例えば、0.1秒のように十分に短い時間でよい。
続いて、制御部22は、ステップS305として、検出された第1の物体および第2の物体の動きに応じて、選択状態または仮選択状態にある3次元オブジェクトを変化させる。3次元オブジェクトの変化させ方は、作用データ24cに基づいて決定される。例えば、制御部22は、選択状態または仮選択状態にある本のページを、第1の物体および第2の物体の動きに合わせて、持ち上げられたように変化させる。そして、制御部22は、ステップS301以降を再実行する。
距離の差が閾値よりも大きい場合(ステップS302,Yes)、制御部22は、ステップS306として、第1の物体と第2の物体の間に表示されていた3次元オブジェクトが仮選択状態であるかを判定する。
3次元オブジェクトが仮選択状態である場合(ステップS306,Yes)、制御部22は、ステップS307として、3次元オブジェクトの仮選択状態を解除する。また、制御部22は、ステップS308として、3次元オブジェクトを逆変化させて元の状態に戻す。そして、制御部22は、掴む操作検出処理を終了させる。
3次元オブジェクトが仮選択状態でない場合、すなわち、選択状態の場合(ステップS306,No)、制御部22は、ステップS309として、第1の物体と第2の物体の距離の変化に合わせて3次元オブジェクトの選択範囲の維持または変更が可能であるかを判定する。
第1の物体と第2の物体の距離が短くなった場合、3次元オブジェクトの選択範囲は、維持または縮小される。具体的には、選択状態となっている3次元オブジェクトが1つの場合、第1の物体と第2の物体の距離が短くなっても3次元オブジェクトは選択状態のままである。選択状態となっている3次元オブジェクトが複数の場合、第1の物体と第2の物体の距離が短くなるにつれて選択状態となっている3次元オブジェクトの数は減っていくが、少なくとも1つの3次元オブジェクトは選択状態のままとなる。例えば、本のページが指で掴まれている場合、制御部22は、指が近付くにつれて掴まれているページの枚数を減らしていくが、少なくとも1ページは掴まれた状態を維持する。
一方、第1の物体と第2の物体の距離が長くなった場合、3次元オブジェクトの選択範囲は、維持または変更が可能でない場合がある。具体的には、第1の物体と第2の物体の距離が長くなったことによって、第1の物体と第2の物体の間に選択状態にない3次元オブジェクトが位置することになった場合、選択範囲は拡張される。この場合、選択状態にない3次元オブジェクトが選択状態に変わる。距離が長くなった第1の物体と第2の物体の間に選択状態にない3次元オブジェクトがなく、第1の物体または第2の物体と選択状態にある3次元オブジェクトとの間の隙間が所定の大きさよりも大きくなった場合には、選択範囲の維持または変更は可能でない。選択範囲の維持または変更は可能でないと判定された場合、選択状態の3次元オブジェクトは解放される。
例えば、本のページが指で掴まれている場合、制御部22は、指が拡がるにつれて掴まれているページの枚数を増やしていく。そして、掴めるページがなくなり、掴まれているページといずれかの指の間の隙間が所定の大きさよりも大きくなった場合には、制御部22は、選択範囲の維持または変更は可能でないと判定する。
第1の物体と第2の物体の距離の変化に合わせて3次元オブジェクトの選択範囲の維持または変更が可能な場合(ステップS309,Yes)、制御部22は、ステップS310として、第1の物体と第2の物体の距離の変化に合わせて3次元オブジェクトの選択範囲を維持または変更する。そして、制御部22は、ステップS301以降を再実行する。
第1の物体と第2の物体の距離の変化に合わせて3次元オブジェクトの選択範囲の維持または変更が可能でない場合(ステップS309,No)、制御部22は、ステップS311として、3次元オブジェクトの選択状態を解除する。また、制御部22は、ステップS312として、解放時の状況に応じて3次元オブジェクトを変化させる。3次元オブジェクトの変化させ方は、作用データ24cに基づいて決定される。例えば、制御部22は、選択状態にある本のページを、重力に従ってめくれたように変化させる。そして、制御部22は、掴む操作検出処理を終了させる。
次に、図15から図29を参照しながら、本の閲覧機能における制御の具体例について説明する。なお、説明を簡単にするため、以下では仮選択状態についての説明を省略する。
図15は、閉じた本の一例を示す図である。図15において、表示装置1は、テーブルT1上に本50を立体的に表示させている。この例において、本50は、閉じている。本50の外観は、オブジェクトデータ24bに基づいて決定される。なお、オブジェクトデータ24bに忠実に本50を表示すると本50の厚みが所定の値よりも小さい場合、表示装置1は、本50の厚みが所定の値以上になるようにページの厚さを補正してもよい。本50の厚みを増すことにより、利用者が本50に対する操作を行い易くなる。
図16は、ページめくりの制御の一例を示す図である。図16に示すステップSC1では、利用者が、指F1と指F2の間に本50の表表紙およびページが位置するように、指F1および指F2を移動させている。表示装置1は、指F1と指F2の間に表表紙およびページが位置していることを検出すると、指F1と指F2の間に位置する表表紙およびページを選択状態にする。
その後、ステップSC2では、利用者が、指F1と指F2の間隔をほぼ一定に保ったまま、指F1と指F2をページの連結部を超えるまで本50の開閉方向に移動させている。表示装置1は、このような指F1および指F2の動作を検出すると、作用データ24cに移動に従って、選択状態にある表表紙およびページを変化させる。具体的には、表示装置1は、指F1および指F2の移動に合わせて、選択状態にある表表紙およびページの角度を変化させる。
その状態で利用者が指F1と指F2の間の距離を広げるか、指F1および指F2をページの連結部から遠ざけて指F1と指F2の間に表表紙およびページが位置しない状態にすると、選択状態にある表表紙およびページは解放される。その結果、表示装置1は、作用データ24cに移動に従って、本50を変化させる。具体的には、ステップSC3に示すように、選択状態にあったページのうち内側の端のページが一番上になるように、本50を変化させる。表示装置1は、本50の開いたページの表面に、それらのページに対応するテキストおよび画像等を表示する。
図17は、ページめくりの制御の他の例を示す図である。図17に示すステップSD1では、図16に示したような制御により、本50は既に開いた状態で表示されている。そして、利用者が、開いているページを含むページが指F1と指F2の間に位置するように、指F1および指F2を移動させている。表示装置1は、指F1と指F2の間にページが位置していることを検出すると、指F1と指F2の間に位置するページを選択状態にする。
その後、ステップSD2では、利用者が、指F1と指F2の間隔をほぼ一定に保ったまま、指F1と指F2をページの連結部を超えるまで本50の開閉方向に移動させている。表示装置1は、このような指F1および指F2の動作を検出すると、作用データ24cに移動に従って、選択状態にあるページを変化させる。具体的には、表示装置1は、指F1および指F2の移動に合わせて、選択状態にあるページの角度を変化させる。
このとき、表示装置1は、ページの厚み(剛性)に応じて選択状態にあるページの変化のさせ方を変えてもよい。例えば、ページが閾値よりも厚い場合(剛性が高い場合)、表示装置1は、ページをたわませずに角度を変化させてもよい。また、ページが閾値よりも厚い場合(剛性が高い場合)、表示装置1は、選択状態にあるページを掴む物体が、ページの連結部を回転軸として円弧を描くように移動しなければページの角度が変わらないように、ページの変化を制約してもよい。また、ページが閾値よりも薄い場合(剛性が低い場合)、表示装置1は、選択状態にあるページを掴む物体の動きと重力とに合わせてページをたわませてもよい。
ステップSD2の状態で利用者が指F1と指F2の間の距離を広げるか、指F1および指F2をページの連結部から遠ざけて指F1と指F2の間にページが位置しない状態にすると、選択状態にあるページは解放される。その結果、表示装置1は、作用データ24cに移動に従って、本50を変化させる。具体的には、ステップSD3に示すように、選択状態にあったページのうち内側の端のページが一番上になるように、本50を変化させる。表示装置1は、本50の開いたページの表面に、それらのページに対応するテキストおよび画像等を表示する。
図18は、ページめくりの制御のさらに他の例を示す図である。図18に示すステップSE1では、図17に示したような制御により、複数のページがめくられつつある。そして、利用者が、選択状態にあるページの一部が指F3と指F4の間に位置するように、指F3および指F4を移動させている。表示装置1は、指F3と指F4の間にページが位置していることを検出すると、指F3と指F4の間に位置するページを、指F3および指F4と対応付ける。
その後、ステップSE2では、利用者が、指F3と指F4の間隔をほぼ一定に保ったまま、指F3と指F4をページの連結部を超えるまで本50の開閉方向に移動させている。表示装置1は、このような指F3および指F4の動作を検出すると、作用データ24cに移動に従って、選択状態にあるページを変化させる。具体的には、表示装置1は、指F3および指F4の移動に合わせて、選択状態にあるページのうち、指F3および指F4と対応付けられているページの角度を変化させる。
ステップSE2の状態で利用者が指F1と指F2の間の距離を広げるか、指F1および指F2をページの連結部から遠ざけて指F1と指F2の間にページが位置しない状態にすると、指F1と指F2の間にあるページは解放される。また、ステップSE2の状態で利用者が指F3と指F4の間の距離を広げるか、指F3および指F4をページの連結部から遠ざけて指F3と指F4の間にページが位置しない状態にすると、指F3と指F4の間にあるページは解放される。その結果、表示装置1は、作用データ24cに移動に従って、本50を変化させる。具体的には、ステップSE3に示すように、指F1と指F2の間にあったページと指F3と指F4の間にあったページとの境のページが一番上になるように、本50を変化させる。表示装置1は、本50の開いたページの表面に、それらのページに対応するテキストおよび画像等を表示する。
図16から図18に示したように、表示装置1は、利用者がページを掴んで本を開くことを可能にする。その結果、利用者は、最初から1ページずつめくって本を読むだけでなく、現実の本に対する操作と同様の操作によって、電子的な出版物から所望の箇所を容易に見つけることができる。
めくられるページ数は、ページを選択する物体の距離に応じて決定される。図19は、めくられるページ数と物体間の距離の関係を示す図である。図19に示すように、ページを選択する指F1と指F2との間の距離D1が距離Dxよりも短い場合、めくられるページ数は、距離D1が距離Dxのときよりも少なくなる。一方、ページを選択する指F1と指F2との間の距離D1が距離Dxよりも長い場合、めくられるページ数は、距離D1が距離Dxのときよりも多くなる。このように、表示装置1は、本50との間に隙間ができない限り、距離D1が長くなるほどめくられるページ数を増やす。
このように、表示装置1が距離D1に応じてめくられるページ数を変更することにより、利用者は、任意のページ数をめくることができる。
表示装置1は、距離D1に応じた数のページを選択状態にした後、選択範囲を変更可能な範囲で距離D1が変化した場合には、選択状態にあるページ数を変化後の距離D1に応じて変更する。表示装置1は、ページが選択されている範囲を利用者に提示することが好ましい。
図20は、ページが選択されている範囲を利用者に提示する例を示す図である。図20に示すステップSF1では、利用者が、開いているページを含むページが指F1と指F2の間に位置するように、指F1および指F2を移動させている。表示装置1は、指F1と指F2の間にページが位置していることを検出すると、指F1と指F2の間に位置するページを選択状態にする。さらに、表示装置1は、選択状態になったページのうち、開いているページとは反対側の端のページのページ番号(87)を表示する。なお、図20に示した例では、開いているページにページ番号が表示されているが、ページ番号を表示する位置は、利用者に見える位置であればどこでもよい。
その後、ステップSF2では、利用者が、本50との隙間を作ることなく、指F1と指F2との間の距離を広げている。その結果、表示装置1は、選択状態にあるページ数を増やす。さらに、表示装置1は、選択状態にあるページの範囲を示すページ番号(125)を表示し直す。このように、表示装置1が、ページが選択されている範囲を利用者に提示することにより、利用者は、めくられるページの範囲を容易に調整することができる。
なお、図20では、ページが選択されている範囲を利用者に提示するためにページ番号を表示することとしたが、ページ番号に代えて、あるいは、ページ番号に加えて、選択状態にあるページ数またはページの内容を表示してもよい。図21は、ページが選択されている範囲を利用者に提示するためにページの内容を表示する例を示す図である。
図21に示すステップSG1では、本50の開いたページに、それらのページに対応するテキストおよび画像等が表示されている。そして、ステップSG2では、利用者が、開いているページを含むページが指F1と指F2の間に位置するように、指F1および指F2を移動させている。表示装置1は、指F1と指F2の間にページが位置していることを検出すると、指F1と指F2の間に位置するページを選択状態にする。さらに、表示装置1は、選択状態になったページがめくられたら表示されるページに対応するテキストおよび画像等を表示する。なお、図21に示した例では、開いているページの内容が置き換えられているが、ページの内容を表示する位置および大きさは、利用者に見える位置および大きさであればよい。
その後、ステップSG3では、利用者が、本50との隙間を作ることなく、指F1と指F2との間の距離を広げている。その結果、表示装置1は、選択状態にあるページ数を増やす。さらに、表示装置1は、選択状態になったページがめくられたら表示されるページに対応するテキストおよび画像等を表示し直す。このように、表示装置1が、ページの内容を利用者に提示することにより、利用者は、ページをめくることによってどのページが見られるかを容易に把握することができる。
なお、選択状態にあるページ数を調整するために、指F1と指F2との間の距離だけでなく、指F1と指F2の移動速度を用いてもよい。具体的には、指F1と指F2の移動速度が閾値よりも速い場合は、距離の変化量に対する選択状態にあるページ数の変化量を大きくする。一方、指F1と指F2の移動速度が閾値よりも遅い場合は、距離の変化量に対する選択状態にあるページ数の変化量を小さくする。このように、指F1と指F2の移動速度を用いることにより、利用者が、選択状態にあるページ数を意図する値に調整しやすくなる。ここでいう指F1と指F2の移動速度は、指F1の移動速度と指F2の移動速度のうち、いずれか速い方を用いることが好ましい。
以上、複数のページをまとめてめくる操作について説明してきたが、表示装置1は、ページを1枚ずつめくる操作も受け付けてよい。例えば、表示装置1は、開いているページの一方に触れた指等を他方のページへ向けて移動させる動作が検出された場合に、接触された方のページを1枚めくってもよい。この操作は、現実の薄い紙のページをめくる場合の動作を模している。
表示装置1は、ページに関する操作として、めくる操作以外の操作を受け付けてもよい。例えば、表示装置1は、ページに関する操作として、ページに目印を付ける操作を受け付けてもよい。図22は、ページに目印を付ける操作の一例を示す図である。図22に示すステップSH1では、利用者は、1枚のページの角を指F1および指F2で掴んでいる。そして、ステップSH2では、利用者は、掴んだ部分を折り返すように指F1および指F2を移動させている。
このように、ページの一部を折り返す動作が検出された場合、表示装置1は、その部分を折れ目50aとして、折り返されたままの状態に保つ。そして、表示装置1は、折れ目50aを設けたページをオブジェクトデータ24bに記録する。表示装置1は、図23に示すように、本50が閉じられた場合にも、利用者が折れ目50aの位置を把握できるように、折れ目50aを色または明るさを変える等して他の部分と異なる態様で表示することが好ましい。このように、表示装置1が利用者の操作に応じて折り返しを設定することにより、利用者は、後で見直したいページ等に目印を付けておくことができる。
なお、折れ目50aは、1つの本50において、複数設定可能である。また、表示装置1は、ページの厚みが閾値より厚い場合(剛性が高い場合)は、ページの一部を折り返す動作が検出されても折れ目を設けなくてもよい。
表示装置1は、折れ目50aが設定されたページを利用者が閲覧し易いように、ページが選択される範囲を調整することが好ましい。図24は、ページが選択される範囲を調整する処理手順の一例を示すフローチャートである。表示装置1の制御部22は、第1の物体と第2の物体の間にページが表示されていることを検出すると、ステップS401として、第1の物体と第2の物体の間の距離を算出する。そして、制御部22は、ステップS402として、算出した距離に基づいて、選択されるページ数を算出する。
続いて、制御部22は、ステップS403として、選択される最後のページの前後所定数内のページに折れ目があるか否かを判定する。折れ目がある場合(ステップS404,Yes)、制御部22は、ステップS405として、折れ目のあるページまでが選択されるように選択されるページ数を補正する。選択される最後のページの前後所定数内のページに折れ目があるページが複数ある場合、制御部22は、例えば、折れ目のあるページのうち、掴まれている最後のページに最も近いページまでが選択されるように選択されるページ数を補正する。
選択される最後のページの前後所定数内のページに折れ目がない場合(ステップS404,No)、制御部22は、ステップS402で算出されたページ数に基づいてページを選択する。
なお、図24に示したような選択範囲の調整は、図23に示す角50bのように折れ目50aが設けられている角の近傍でページを掴む操作が行われた場合にのみ実行することとしてもよい。すなわち、角50cのように折れ目50aが設けられていない角の近傍でページを掴む操作が行われた場合には、選択範囲を調整しなくてもよい。このように、表示装置1が、ページが選択される位置によって選択範囲の調整を抑制することにより、利用者は、折れ目50aが設けられているページの前後所定数内のページを参照しやすくなる。
表示装置1は、図25に示すように本に栞60を挟む操作、または、スピンを挟む操作が検出された場合も、折れ目が設けられた場合と同様に、ページが選択される範囲を調整することが好ましい。
また、表示装置1は、ページに関する操作として、ページを切り取る操作を受け付けてもよい。図26は、ページを切り取る操作の一例を示す図である。図26に示すステップSI1では、利用者は、ページ50dの端部を指F1および指F2で掴み、ページの連結部との距離が遠くなるように指F1および指F2を移動させている。表示装置1は、このような指F1および指F2の動作を検出すると、作用データ24cに移動に従って、ページ50dを変化させる。具体的には、表示装置1は、ステップSI2に示すように、ページ50dを破いて、本50から独立させる。
図27は、ページを切り取る操作の他の例を示す図である。図27に示すステップSJ1では、利用者は、ページ50dの角を指F1および指F2で掴んでいる。そして、ステップSJ2では、利用者は、指F1および指F2を本50の開閉方向と直交する方向へ移動させている。表示装置1は、このような指F1および指F2の動作を検出すると、作用データ24cに移動に従って、ページ50dを変化させる。具体的には、表示装置1は、ページ50dを指F1および指F2の移動に合わせて破いていく。その結果、利用者が指F1および指F2の移動を継続すると、ステップSJ3に示すように、ページ50dは、破けて本50から独立する。
図28は、ページの一部を切り取る操作の一例を示す図である。図28に示すステップSK1では、利用者は、ページ50eの角を指F1および指F2で掴み、もう一方の手の指F4および指F5をはさみの形にしている。そして、ステップSK2では、利用者は、ページ50eを横切るように指F4および指F5を移動させている。表示装置1は、このような指F4および指F5の動作を検出すると、指F4および指F5によって横切られた部分に切れ目を入れていく。その結果、ステップSK3に示すように、ページ50eの一部であるページ片50fが指F4および指F5の移動経路に合わせて切り取られて、本50から独立する。なお、ページの一部を切り取る操作は、このようにはさみの形にした指にページを横切らせる動作に限定されない。例えば、表示装置1は、ページを指でなぞる動作が検出された場合に、なぞられた経路に合わせてページ片を切り取ってもよい。
図26から図28に示したように、表示装置1が、ページの全体または一部を切り取ることにより、利用者は、興味があるテキスト等を含むページを本とは別に種々のファイル形式で管理することができる。なお、表示装置1は、ページの厚みが閾値より厚い場合(剛性が高い場合)は、ページを切り取ることができないようにしてもよい。また、表示装置1は、ページを切り取る操作を検出した場合に、ページを破かずに、ページの複製を本から独立させてもよい。このように、ページが破れないようになす対象は、たとえば、当該ページが著作権管理上、複製を禁止する対象物であってもよい。
表示装置1は、複数の本を立体的に表示することもできる。図29は、複数の本を立体的に表示する場合の制御の例を示す図である。図29に示すステップSL1では、表示装置1は、テーブルT1上に、本51〜53という3冊の本を立体的に表示させている。そして、ステップSL2では、利用者が、指F1および指F2を使って、本53を開くための操作を行っている。
表示装置1は、本53を開く操作を検出すると、検出した操作に従って本53を開かせる。このとき、表示装置1は、開いた本53をテーブルT1のほぼ全面に拡大表示させる。このように、開いた本53を拡大表示することにより、利用者は、本53のページを閲覧し易くなる。
表示装置1は、ページと対応付けて他のオブジェクトを表示してもよい。図30から図38を参照しながら、ページと対応付けた他のオブジェクトの表示について説明する。図30は、ページと対応付けて他のオブジェクトを表示する処理の処理手順を示すフローチャートである。
図30に示す処理手順は、制御部22が制御プログラム24aを実行することによって実現される。図30に示すように、制御部22は、まず、ステップS501として、表示部32aおよび32bに本を含む仮想空間の画像と現実の空間の画像とを合成して表示する。表示される本の外観および内容は、オブジェクトデータ24bに基づいて決定される。
続いて、制御部22は、ステップS502として、本に対する操作が検出されたかを判定する。本に対する操作は、撮影部40および42によって撮影される画像に基づいて検出される。本に対する操作が検出された場合(ステップS502,Yes)、制御部22は、ステップS503として、検出された操作に応じて表示中の本を変化させる。検出された操作に応じた本の変化のさせ方は、作用データ24cに基づいて決定される。
続いて、制御部22は、ステップS504として、内容が表示されるページが切り替わったかを判定する。ページが切り替わった場合(ステップS504,Yes)、制御部22は、ステップS505として、新たに内容が表示されるようになったページに対応付けられたオブジェクトをページに対応する態様で表示させる。
本に対する操作が検出されない場合(ステップS502,No)、表示中の本はそのままに保たれる。また、ページが切り替わっていない場合(ステップS504,No)、ステップS505は実行されない。
続いて、制御部22は、ステップS506として、処理を終了させるかを判定する。制御部22は、例えば、利用者が本の閲覧機能の終了を指示する所定の操作を行った場合に、処理を終了させると判定する。処理を終了させる場合(ステップS506,Yes)、制御部22は、図30に示す処理手順を完了させる。処理を終了させない場合(ステップS506,No)、制御部22は、ステップS502以降を再実行する。
このように、表示装置1は、ページと対応付けて他のオブジェクトを表示する場合、ページの切り替えに合わせてオブジェクトの表示を変更する。以下に、ページと対応付けて他のオブジェクトを表示する具体例について説明する。
図31から図34は、ページと対応付けて海洋生物を3次元表示する例を示している。図31に示す例では、本55のページ番号51のページにオルカの3次元オブジェクト55aが対応付けられ、ページ番号50のページに熱帯魚の3次元オブジェクト55bおよび55cが対応付けられている。3次元オブジェクト55a〜55cは、ページ番号50のページおよびページ番号51のページが表示されると、それらのページから飛び出したように表示される。このように、本のページと対応付けられた3次元オブジェクトを飛び出したように表示することにより、現実の本に挿入される画像やイラストよりも現実感のある情報を利用者に提供することができる。
ページと3次元オブジェクトの対応を利用者が任意に変更できるようにしてもよい。例えば、図32に示すように、利用者が3次元オブジェクト55aを指F3および指F4で掴んだまま、指F1および指F2を使ってページを1枚めくったものとする。表示装置1は、このように3次元オブジェクトが掴まれた状態でページがめくられたことを検出すると、掴まれている3次元オブジェクトを新たに表示されたページに対応付ける。
その結果、3次元オブジェクト55aは、図33に示すように、ページ番号53のページに対応付けられる。また、図34に示すように、利用者がページを戻してページ番号51のページを表示させると、ページとの対応付けが変更されたため、3次元オブジェクト55aは表示されない。
図31から図34では、他のオブジェクトをページの1つの面に対応付けることとしたが、他のオブジェクトをページの表および裏と対応付けてもよい。この場合、表示装置1は、ページの角度に応じてオブジェクトの表示させ方を変更する。
図35は、ページの表および裏と対応付けて海洋生物を3次元表示する例を示している。図35に示す例では、本56のページ56aの表および裏にオルカの3次元オブジェクト56bが対応付けられている。表示装置1は、ページ56aの一方の面が表示されている場合、オルカの上半身がページ56aから飛び出したように3次元オブジェクト56bを3次元表示させる。
そして、利用者がページ56aをめくる操作を始めると、表示装置1は、ページ56aの角度に合わせて、3次元オブジェクト56bの表示される部分を多くしていく。ページ56aが垂直になった時点では、3次元オブジェクト56bの全体が表示される。そして、利用者がページ56aをめくる操作を継続すると、表示装置1は、ページ56aの角度に合わせて、3次元オブジェクト56bの表示される部分を少なくしていく。ページ56aが完全にめくられると、表示装置1は、オルカの下半身がページ56aから飛び出したように3次元オブジェクト56bを3次元表示させる。
利用者がページ56aを逆方向にめくると、表示装置1は、3次元オブジェクト56bを上記の説明とは逆に変化させていく。
図36は、ページの表および裏と対応付けて海洋生物を3次元表示する他の例を示している。図36に示す例では、本57のページ57aの表および裏にオルカの3次元オブジェクト57bが対応付けられている。表示装置1は、ページ57aの一方の面が表示されている場合、オルカの背びれが上を向くように3次元オブジェクト57bを3次元表示させる。
そして、利用者がページ57aをめくる操作を始めると、表示装置1は、ページ57aの角度に合わせて、3次元オブジェクト57bを横方向に回転させていく。ページ57aが完全にめくられると、表示装置1は、オルカの腹部が上を向くように3次元オブジェクト57bを3次元表示させる。利用者がページ57aを逆方向にめくると、表示装置1は、3次元オブジェクト57bを上記の説明とは逆に変化させていく。
このように、表示装置1が、ページめくりと連動してオブジェクトを変化させることにより、利用者は、ページめくりという慣れ親しんだ操作によってオブジェクトを希望する通りに変化させることができる。すなわち、情報機器の操作が苦手な利用者であっても、ページをめくるだけで、3次元オブジェクトを回転させるといった複雑な処理を実現させることができる。
表示装置1は、複数のページにオブジェクトを対応付けてもよい。図37は、複数のページにオブジェクトを対応付けて海洋生物を3次元表示する例を示している。図37に示す例では、本58のページ面58a〜58dという4つの面に熱帯魚の3次元オブジェクト58eと、オルカの3次元オブジェクト58fとが対応付けられている。
表示装置1は、ページ面58aおよび58bが表示されている場合、3次元オブジェクト58eおよび3次元オブジェクト58fを同じ縮尺で表示する。熱帯魚とオルカの大きさの差は大きいため、ページ面58aおよび58bが表示されている場合、3次元オブジェクト58fは、オルカの尾の部分が視認領域からはみ出して全身が表示されない。3次元オブジェクト58fの視認領域からはみ出している部分は、ページをめくってページ面58cおよび58dを表示させることによって表示される。
このように、複数の生物を同じ縮尺で表示することにより、利用者は、生物の大きさの差を容易に把握することができる。また、利用者は、視認領域からはみ出して表示されない部分を、ページをめくるという慣れ親しんだ操作によって閲覧することができる。
図38に示す例では、本59のページ面59a〜59dという4つの面に住宅の3次元オブジェクト59eが対応付けられている。表示装置1は、ページ面59aおよび59bが表示されている場合、3次元オブジェクト59eの全体を表示する。表示装置1は、ページ面59cおよび59dが表示されている場合、住宅の1階のみが表示されるように3次元オブジェクト59eを表示する。
このように、表示装置1は、めくられたページ数に応じて断面を設定し、設定した断面で切断した状態のオブジェクトを表示することもできる。このような制御は、めくられたページ数に応じてビルのフロアマップを表示する用途や、めくられたページ数に応じて人体の断面図を表示する用途等に応用することができる。
なお、上記の実施例で示した本発明の態様は、本発明の要旨を逸脱しない範囲で任意に変更することができる。例えば、上記の実施例で示した制御プログラム24aは、複数のモジュールに分割されていてもよいし、他のプログラムと統合されていてもよい。また、上記の実施例では、3次元オブジェクトに対して指で操作を行うこととしたが、棒状の物等を指の代わりに用いてもよい。
また、上記の実施例では、ページに対応付けて表示されるオブジェクトの例として3次元オブジェクトを示した。しかしながら、ページに対応付けて表示されるオブジェクトは、3次元オブジェクトに限定されない。例えば、ページに対応付けて動画を表示してもよい。表示装置1は、ページに対応付けて動画を表示する場合、ページがめくられる毎に異なるチャプタを再生してもよい。
また、上記の実施例では、表示装置が単独で3次元オブジェクトに対する操作を検出することとしたが、表示装置がサーバ装置と協業して3次元オブジェクトに対する操作を検出することとしてもよい。この場合、表示装置は、検出部の検出した情報をサーバ装置へ逐次送信し、サーバ装置が操作を検出して検出結果を表示装置へ通知する。このような構成とすることにより、表示装置の負荷を低減することができる。
また、表示装置1は、3次元オブジェクトに対する操作を検出する空間を、表示装置1を装着している利用者の手が届く範囲に限定してもよい。このように、3次元オブジェクトに対する操作を検出する空間を限定することにより、表示装置1が操作を検出するために実行する演算処理の負荷を軽減することができる。
また、上記の実施例では、本発明を本の閲覧機能を実現するために利用する例について説明したが、本発明を用いて閲覧されるのは本に限定されない。本発明は、パンフレットおよび新聞等を含む各種の電子出版物の閲覧機能を実現するために利用することができる。
また、本発明によって実現可能な3次元オブジェクトに対する操作は、上記の実施例で示した操作に限定されない。本発明に係る制御により、例えば、本棚から本を選択して取り出す操作、新聞を折り畳む操作、および筆記具をもって本等に書き込みを行う操作等を実現することもできる。