JP2017163560A - 表示装置、システムおよび表示方法 - Google Patents

表示装置、システムおよび表示方法 Download PDF

Info

Publication number
JP2017163560A
JP2017163560A JP2017075791A JP2017075791A JP2017163560A JP 2017163560 A JP2017163560 A JP 2017163560A JP 2017075791 A JP2017075791 A JP 2017075791A JP 2017075791 A JP2017075791 A JP 2017075791A JP 2017163560 A JP2017163560 A JP 2017163560A
Authority
JP
Japan
Prior art keywords
dimensional object
display device
user
control unit
image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2017075791A
Other languages
English (en)
Inventor
上野 泰弘
Yasuhiro Ueno
泰弘 上野
茂輝 田辺
Shigeki Tanabe
茂輝 田辺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kyocera Corp
Original Assignee
Kyocera Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kyocera Corp filed Critical Kyocera Corp
Priority to JP2017075791A priority Critical patent/JP2017163560A/ja
Publication of JP2017163560A publication Critical patent/JP2017163560A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】利用者に対して利便性の高い操作方法を提供すること。【解決手段】1つの態様に係る表示装置は、ユーザの両目のそれぞれに対応した画像を表示することで、対応するオブジェクトを表示する表示部と、オブジェクトの現実の空間における使用態様に応じて、該現実の空間における明るさが変化したように、前記表示部の明るさを制御する制御部とを備える。【選択図】図6

Description

本発明は、表示装置、システムおよび表示方法に関する。
表示部を備える表示装置には、画像等を立体表示することができるものがある(例えば、特許文献1参照)。立体表示は、両眼の視差を利用して実現される。
特開2011−95547号公報
立体表示は利用者にとって親しみやすい表示形式であるにも関わらず、従来の表示装置では、立体表示は視聴目的でしか利用されず、操作の利便性を向上させるためには利用されてこなかった。本発明は、利用者に対して利便性の高い操作方法を提供することができる表示装置、システムおよび表示方法を提供することを目的とする。
1つの態様に係る表示装置は、ユーザの両目のそれぞれに対応した画像を表示することで、対応するオブジェクトを表示する表示部と、前記オブジェクトの現実の空間における使用態様に応じて、該現実の空間における明るさが変化したように、前記表示部の明るさを制御する制御部と、を備える。
1つの態様に係るシステムは、ユーザの両目のそれぞれに対応した画像を表示することで、対応するオブジェクトを表示する表示部と、前記オブジェクトの現実の空間における使用態様に応じて、該現実の空間における明るさが変化したように、前記表示部の明るさを制御する制御部と、情報を送受信するサーバ装置とを備える。
1つの態様に係る表示方法は、ユーザの両目のそれぞれに対応した画像を表示することで、対応するオブジェクトを表示する表示装置の表示方法であって、前記オブジェクトの現実の空間における使用態様に応じて、該現実の空間における明るさが変化したように、前記表示装置の明るさを制御する。
本発明は、利用者に対して利便性の高い操作方法を提供することができるという効果を奏する。
図1は、第1の実施例に係る表示装置の斜視図である。 図2は、利用者によって装着された表示装置を正面から見た図である。 図3は、表示装置の変形例を示す図である。 図4は、表示装置の他の変形例を示す図である。 図5は、表示装置の他の変形例を示す図である。 図6は、第1の実施例に係る表示装置のブロック図である。 図7は、制御プログラムが提供する機能に基づく制御の例を示す図である。 図8は、位置の変化に連動して3次元オブジェクトを変化させる例を示す図である。 図9は、利用者の周囲に配置された操作画面を概念的に示す図である。 図10は、方向の変化に連動して3次元オブジェクトを変化させる例を示す図である。 図11は、位置および方向の変化と連動して3次元オブジェクトを変化させる制御の処理手順を示すフローチャートである。 図12は、オブジェクトデータに格納される情報の一例を示す図である。 図13は、作用データに格納される情報の一例を示す図である。 図14は、作用データに格納される情報の一例を示す図である。 図15は、作用データに格納される情報の一例を示す図である。 図16は、作用データに格納される情報の一例を示す図である。 図17は、作用データに格納される情報の一例を示す図である。 図18は、作用データに格納される情報の一例を示す図である。 図19は、3次元オブジェクトを押す操作の検出と、検出された操作に応じた3次元オブジェクトの変化の第1の例について説明するための図である。 図20は、3次元オブジェクトを押す操作の検出と、検出された操作に応じた3次元オブジェクトの変化の第1の例について説明するための図である。 図21は、第1の例における接触検出処理の処理手順を示すフローチャートである。 図22は、第1の例における操作検出処理の処理手順を示すフローチャートである。 図23は、3次元オブジェクトを押す操作の検出と、検出された操作に応じた3次元オブジェクトの変化の第2の例について説明するための図である。 図24は、第2の例における操作検出処理の処理手順を示すフローチャートである。 図25は、3次元オブジェクトを押す操作の検出と、検出された操作に応じた3次元オブジェクトの変化の第3の例について説明するための図である。 図26は、3次元オブジェクトを押す操作の検出と、検出された操作に応じた3次元オブジェクトの変化の第3の例について説明するための図である。 図27は、第3の例における操作検出処理の処理手順を示すフローチャートである。 図28は、3次元オブジェクトを摘んで行う操作の検出の第1の例について説明するための図である。 図29は、第1の例における選択検出処理の処理手順を示すフローチャートである。 図30は、第1の例における操作検出処理の処理手順を示すフローチャートである。 図31は、3次元オブジェクトを摘んで行う操作の検出の第1の例の変形例について説明するための図である。 図32は、3次元オブジェクトを摘んで行う操作の検出の第2の例について説明するための図である。 図33は、第2の例における選択検出処理の処理手順を示すフローチャートである。 図34は、3次元オブジェクトを摘んで行う操作の検出の第2の例の変形例について説明するための図である。 図35は、3次元オブジェクトを摘んで行う操作の検出の第3の例について説明するための図である。 図36は、3次元オブジェクトを摘んで行う操作の検出の第3の例について説明するための図である。 図37は、第3の例における選択検出処理の処理手順を示すフローチャートである。 図38は、第3の例における操作検出処理の処理手順を示すフローチャートである。 図39は、3次元オブジェクトを摘んで行う操作の検出の第3の例の変形例について説明するための図である。 図40は、購入する商品を設置する部屋の中で電子的なカタログを表示する例を示す図である。 図41は、カタログから商品を選択する場面について説明するための図である。 図42は、テレビの大きさと設置場所を検討する場面について説明するための図である。 図43は、テレビ台を選択する場面について説明するための図である。 図44は、現実の物体を移動させる場面について説明するための図である。 図45は、発注処理の処理手順を示すフローチャートである。
以下、本発明につき図面を参照しつつ詳細に説明する。なお、以下の説明により本発明が限定されるものではない。また、以下の説明における構成要素には、当業者が容易に想定できるもの、実質的に同一のもの、いわゆる均等の範囲のものが含まれる。
まず、図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次元オブジェクトを表示することができる。さらに、3次元オブジェクトを見ることができる者を表示装置1の利用者に限定できるため、高いセキュリティを確保することができる。
図1および図2では、表示装置1が、眼鏡(ゴーグル)のような形状を有する例を示したが、表示装置1の形状はこれに限定されない。例えば、表示装置1は、図3に示す表示装置2のように、利用者の頭部のほぼ上半分を覆うようなヘルメットタイプの形状を有していてもよい。あるいは、表示装置1は、図4に示す表示装置3のように、利用者の顔面のほぼ全体を覆うようなマスクタイプの形状を有していてもよい。表示装置1は、図5に示す表示装置4のように、情報処理装置、バッテリ装置等の外部装置4dと有線または無線で接続される構成であってもよい。
次に、図6を参照しながら、表示装置1の機能的な構成について説明する。図6は、表示装置1のブロック図である。図6に示すように、表示装置1は、操作部13と、制御部22と、記憶部24と、通信部16と、表示部32aおよび32bと、撮影部40および42と、検出部44と、測距部46と、動きセンサ48とを有する。操作部13は、表示装置1の起動、停止、動作モードの変更等の基本的な操作を受け付ける。
通信部16は、他の装置との間で通信を行う。通信部16は、無線LANまたはBluetooth(登録商標)のように比較的狭い範囲で無線通信を行う通信方式をサポートしてもよいし、通信キャリア向けの3G通信方式または4G通信方式のように比較的広い範囲で無線通信を行う通信方式をサポートしてもよい。通信部16は、イーサネット(登録商標)のような有線による通信方式をサポートしてもよい。通信部16は、複数の通信方式をサポートしてもよい。
表示部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を兼ねることができるセンサを備えてもよい。
動きセンサ48は、表示装置1の位置の変化および方向(姿勢)の変化を検出する。位置の変化および方向の変化は、3次元的に検出される。すなわち、動きセンサ48は、水平方向だけでなく、垂直方向での位置の変化および方向の変化を検出する。動きセンサ48は、表示装置1の位置の変化および方向の変化を検出するために、例えば、3軸加速度センサを備える。動きセンサ48は、表示装置1の位置の変化を検出するために、GPS(Global Positioning System)レシーバまたは気圧センサを備えてもよい。動きセンサ48は、表示装置1の位置の変化を検出するために、測距部46による距離の測定結果を利用してもよい。動きセンサ48は、複数の方式を組み合わせて、表示装置1の位置の変化を検出してもよい。動きセンサ48は、表示装置1の方向の変化を検出するために、ジャイロセンサまたは方位センサを備えてもよい。動きセンサ48は、複数の方式を組み合わせて、表示装置1の方向の変化を検出してもよい。
制御部22は、演算手段であるCPU(Central Processing Unit)と、記憶手段であるメモリとを備え、これらのハードウェア資源を用いてプログラムを実行することによって各種の機能を実現する。具体的には、制御部22は、記憶部24に記憶されているプログラムやデータを読み出してメモリに展開し、メモリに展開されたプログラムに含まれる命令をCPUに実行させる。そして、制御部22は、CPUによる命令の実行結果に応じて、メモリおよび記憶部24に対してデータの読み書きを行ったり、表示部32a等の動作を制御したりする。CPUが命令を実行するに際しては、メモリに展開されているデータや検出部44を介して検出される操作がパラメータや判定条件の一部として利用される。
記憶部24は、フラッシュメモリ等の不揮発性を有する記憶装置からなり、各種のプログラムやデータを記憶する。記憶部24に記憶されるプログラムには、制御プログラム24aが含まれる。記憶部24に記憶されるデータには、オブジェクトデータ24bと、作用データ24cと、仮想空間データ24dと、カタログデータ24eとが含まれる。記憶部24は、メモリカード等の可搬の記憶媒体と、記憶媒体に対して読み書きを行う読み書き装置との組み合わせによって構成されてもよい。この場合、制御プログラム24a、オブジェクトデータ24b、作用データ24c、仮想空間データ24d、カタログデータ24eは、記憶媒体に記憶されていてもよい。また、制御プログラム24a、オブジェクトデータ24b、作用データ24c、仮想空間データ24d、カタログデータ24eは、通信部16による通信によってサーバ装置等の他の装置から取得されてもよい。
制御プログラム24aは、表示装置1を稼働させるための各種制御に関する機能を提供する。制御プログラム24aが提供する機能には、撮影部40および42が取得する画像に3次元オブジェクトを重ねて表示部32aおよび32bに表示する機能、3次元オブジェクトに対する操作を検出する機能、検出した操作に応じて3次元オブジェクトを変化させる機能等が含まれる。
制御プログラム24aは、検出処理部25と、表示オブジェクト制御部26と、視点制御部27と、画像合成部28と、発注処理部29とを含む。検出処理部25は、撮影部40および42の撮影範囲に存在する現実の物体を検出するための機能を提供する。検出処理部25が提供する機能には、検出したそれぞれの物体までの距離を測定する機能が含まれる。
表示オブジェクト制御部26は、仮想空間にどのような3次元オブジェクトが配置され、それぞれの3次元オブジェクトがどのような状態にあるかを管理するための機能を提供する。表示オブジェクト制御部26が提供する機能には、検出処理部25の機能によって検出される現実の物体の動きに基づいて3次元オブジェクトに対する操作を検出し、検出した操作に基づいて3次元オブジェクトを変化させる機能が含まれる。
視点制御部27は、仮想空間における利用者の視点の位置および方向を管理するための機能を提供する。視点制御部27が提供する機能には、動きセンサ48が検出する表示装置1の位置の変化および方向の変化に応じて、仮想空間における利用者の視点の位置および方向を変化させる機能が含まれる。例えば、動きセンサ48によって表示装置1が前方移動したことが検出された場合、視点制御部27は、仮想空間における利用者の視点を前方へ移動させる。例えば、動きセンサ48によって表示装置1が右向きに回転したことが検出された場合、視点制御部27は、仮想空間における利用者の視点を右向きに回転させる。このように、表示装置1の位置および方向の変化に合わせて仮想空間における利用者の視点の位置および方向を変化させることにより、現実の空間の画像に重ねて表示される仮想空間の画像の変化を現実の空間の画像の変化と一致させることができる。
画像合成部28は、現実の空間の画像と仮想空間の画像とを合成することにより、表示部32aに表示する画像と表示部32bに表示する画像とを生成するための機能を提供する。画像合成部28が提供する機能には、検出処理部25の機能によって測定される現実の物体までの距離と、仮想空間における視点から3次元オブジェクトまでの距離とに基づいて、現実の物体と3次元オブジェクトの前後関係を判定し、重なりを調整する機能が含まれる。
発注処理部29は、3次元オブジェクトを利用して商品を発注する機能を提供する。発注処理部29の機能の詳細については後述する。
オブジェクトデータ24bは、3次元オブジェクトの形状および性質に関する情報を含む。オブジェクトデータ24bは、3次元オブジェクトを表示するために用いられる。作用データ24cは、表示されている3次元オブジェクトに対する操作が3次元オブジェクトにどのように作用するかに関する情報を含む。作用データ24cは、表示されている3次元オブジェクトに対する操作が検出された場合に、3次元オブジェクトをどのように変化させるかを判定するために用いられる。ここでいう変化には、移動、回転、変形、消失、置換等が含まれる。仮想空間データ24dは、仮想空間に配置される3次元オブジェクトの状態に関する情報を保持する。3次元オブジェクトの状態には、例えば、位置、姿勢、変形の状況等が含まれる。カタログデータ24eは、商品の仕様、価格等の商品を販売するための情報を含む。
次に、図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から図11を参照しながら、制御プログラム24aが提供する機能に基づく制御の他の例について説明する。図8は、位置の変化に連動して3次元オブジェクトを変化させる例を示す図である。図8に示すステップS3において、画像P1cは、撮影部40によって得られる画像、すなわち、現実の空間を右目で見た光景に相当する画像である。画像P1cには、利用者の前方のジョギングコースが写っている。表示装置1は、同じ場面を撮影部42によって撮影した画像、すなわち、現実の空間を左目で見た光景に相当する画像も取得する。
画像P2cは、仮想空間データ24dおよびオブジェクトデータ24bに基づいて生成される右目用の画像である。この例において、仮想空間データ24dは、ジョギングコースの脇に対応する位置に配置された標識の3次元オブジェクトの状態に関する情報を保持し、オブジェクトデータ24bは、標識の3次元オブジェクトの形状および性質に関する情報を保持する。それぞれの3次元オブジェクトは、スタート地点からの距離を示す数字を記載され、記載された数値が示す距離だけジョギングコースに沿ってスタート地点から離れた位置に対応する位置に配置される。表示装置1は、同様に、仮想空間を左目の視点で見た画像も生成する。
表示装置1は、図8に示すステップS3において、画像P1cおよび画像P2cを合成して、画像P3cを生成する。画像P3cは、右目用の画像として表示部32aに表示される画像である。画像P3cでは、標識の3次元オブジェクトが、実際に存在しているかのように、ジョギングコースの光景に付加されている。
表示装置1は、利用者がジョギングコースを前方へ進むと、位置の変化を検出し、検出した位置の変化に応じて、仮想空間における視点の位置を前方へ移動させる。例えば、表示装置1の位置が1m前方へ移動すると、表示装置1は、仮想空間における利用者の視点を1mに相当する距離だけ前方へ移動させる。このような変化を繰り返すことにより、利用者の前方の3次元オブジェクトは、コース脇の木と同様に、利用者が進むにつれて段々と利用者に近付いていき、利用者が通り過ぎると視界から消える。図8に示すステップS4では、ステップS3の段階では遠くに見えていた「600m」の標識の3次元オブジェクトが、利用者のすぐ前に表示されている。
このように、利用者は、表示装置1の位置を変化させることにより、手で操作を行わなくても、表示装置1に表示される3次元オブジェクトを変化させることができる。すなわち、表示装置1は、利用者による表示装置1の位置の変化を、3次元オブジェクトを変化させるための操作として受け付ける。このような位置の変化によって3次元オブジェクトを変化させる操作は、利用者が実際の空間で経験する現象に則した操作であるため、利用者にとって直感的で分かりやすい。さらに、位置の変化による操作は、手を使う操作等と組み合わせて行うことができるので、3次元オブジェクトの多様な変化を実現でき、利便性が高い。
また、図8に示した例では、実際には存在しない標識がジョギングコースの脇に表示される。このため、表示装置1は、利用者にとって有用な情報を、ジョギングコース上の位置と対応付けて表示することができる。さらに、表示装置1が表示する情報を利用者毎に異ならせることができるので、現実の標識と異なり、それぞれの利用者に都合のよい情報を標識に記載することができる。
位置の変化と連動して変化させる3次元オブジェクトは、標識に限定されない。例えば、3次元的な仮想商店街を構築し、利用者が部屋の中等を歩くのと連動して、利用者が見ることができる店舗が切り替わるようにしてもよい。表示装置1は、その場での足踏みの回数と連動して、3次元オブジェクトを変化させてもよい。
表示装置1は、検出した位置の変化よりも、3次元オブジェクトの変化の程度を大きくしてもよいし、小さくしてもよい。例えば、現実の空間での位置の変化の大きさの10倍の変化を仮想空間の3次元オブジェクトに与えてもよい。例えば、図8に示した例において、標識の3次元オブジェクトが配置される間隔を、標識の記載が示す間隔よりも大きくしてもよいし、小さくしてもよい。このように標識の間隔を調整することにより、体調に応じて走る距離を調整することができる。表示装置1は、現実の空間での10mの移動に対して、仮想空間での100mの移動を対応付けてもよいし、仮想空間での1mの移動を対応付けてもよい。白い壁しかない室内のような場所で複数のアトラクション施設を3次元オブジェクトで表示する場合、検出した位置の変化よりも、3次元オブジェクトの変化の程度を大きくすることにより、離れた施設間を容易に移動することができる。例えば、3次元オブジェクトを精密に制御したい場合、検出した位置の変化よりも3次元オブジェクトの変化の程度を小さくしてもよい。
表示装置1は、上下方向の位置の変化と連動して、3次元オブジェクトを変化させてもよい。例えば、利用者がジャンプした場合に、表示する光景を、利用者が現在いる場所の建物等の3次元オブジェクトをジャンプの高さに対応付けられた高さから見た光景に変更してもよい。この場合、利用者が精一杯ジャンプしたときに、利用者が現在いる場所の建物等の3次元オブジェクトを上から見下ろす光景を表示してもよい。
表示装置1は、位置の変化量、すなわち、移動量を積算し、積算値に応じて3次元オブジェクトを変化させてもよい。例えば、移動量の積算値を、東京から京都まで歩く場合の到達地点に換算し、到達地点の特徴的な建物または風景を3次元オブジェクトとして、現実の空間の光景と重ねて表示してもよい。例えば、到達地点が横浜に相当する場合には、現実の光景の一部に中華街の門の3次元オブジェクトを重ねて表示してもよい。例えば、到達地点が静岡に相当する場合には、現実の光景の背後に、到達地点から見える富士山の3次元オブジェクトを重ねて表示してもよい。
図9は、利用者の周囲に配置された操作画面を概念的に示す図である。図10は、方向の変化に連動して3次元オブジェクトを変化させる例を示す図である。図9および図10に示す例において、仮想空間データ24dは、操作画面S1〜S3の3次元オブジェクトの状態に関する情報を保持し、オブジェクトデータ24bは、操作画面S1〜S3の3次元オブジェクトの形状および性質に関する情報を保持する。
操作画面S1は、仮想空間において、利用者の正面に対応する位置に配置されている。操作画面S2は、仮想空間において、利用者の右側面に対応する位置に配置されている。操作画面S3は、仮想空間において、利用者の左側面に対応する位置に配置されている。操作画面S1〜S3には、複数のアイコンが配列されている。
表示装置1を装着した利用者が正面を向いているときに、画像P3eのように、表示装置1は、操作画面S1を表示する。この状態で、利用者が手H1の指で操作画面S1上のアイコンを押すような動作を行うと、表示装置1は、アイコンに対応付けられた処理を実行する。
表示装置1は、利用者が右を向くと、検出した方向の変化に応じて、仮想空間における視点の方向を右へ変化させる。例えば、表示装置1を装着した利用者の頭部が右へ90度回転すると、表示装置1は、仮想空間における利用者の視点の方向を90度右へ変化させる。その結果、表示装置1は、画像P3fのように、仮想空間において利用者の右側面に配置されている操作画面S2を表示する。この状態で、利用者が手H1の指で操作画面S2上のアイコンを押すような動作を行うと、表示装置1は、アイコンに対応付けられた処理を実行する。
表示装置1は、利用者が左を向くと、検出した方向の変化に応じて、仮想空間における視点の方向を左へ変化させる。例えば、表示装置1を装着した利用者の頭部が左へ90度回転すると、表示装置1は、仮想空間における利用者の視点の方向を90度左へ変化させる。その結果、表示装置1は、画像P3gのように、仮想空間において利用者の左側面に配置されている操作画面S3を表示する。この状態で、利用者が手H1の指で操作画面S3上のアイコンを押すような動作を行うと、表示装置1は、アイコンに対応付けられた処理を実行する。
このように、利用者は、表示装置1の方向を変化させることにより、手で操作を行わなくても、表示装置1に表示される3次元オブジェクトを変化させることができる。すなわち、表示装置1は、利用者による表示装置1の方向の変化を、3次元オブジェクトを変化させるための操作として受け付ける。このような方向の変化によって3次元オブジェクトを変化させる操作は、利用者が実際の空間で経験する現象に則した操作であるため、利用者にとって直感的で分かりやすい。さらに、方向の変化による操作は、手を使う操作等と組み合わせて行うことができるので、3次元オブジェクトの多様な変化を実現でき、利便性が高い。
また、図9および図10に示した例では、利用者の周囲に複数の操作画面が表示される。このため、利用者は、顔を向ける方向を変えるだけで、操作する操作画面を容易に切り替えることができる。
図9および図10では、利用者の周囲の3面に操作画面を表示する例を示したが、表示装置1は、利用者の背面側を含む周囲の4面に操作画面を表示してもよい。あるいは、利用者を囲む円筒の内面のような連続した面を操作画面としてもよい。あるいは、利用者の頭上の面、すなわち、視点の方向を上へ向けた場合に見える面に操作画面を設けてもよい。
操作画面が、利用者を囲む複数の平坦な面に設けられている場合、表示装置1は、操作画面が設けられている面のうち利用者が向いている方向に存在し、利用者の視線との角度が90度に最も近い面が利用者の視線と直交するように仮想空間における視点または3次元オブジェクトの方向を調整してもよい。このように視点または3次元オブジェクトの方向を調整することにより、操作画面の視認性を向上させることができる。
方向の変化と連動して変化させる3次元オブジェクトは、操作画面に限定されない。例えば、利用者の周囲の棚に商品の3次元オブジェクトを陳列し、表示装置1を装着した利用者が頭部の方向を変更するのと連動して、利用者が見て、手に取ることができる商品が変更されるように構成してもよい。利用者の周囲に建物の3次元オブジェクトを含む3次元的な地図を配置し、表示装置1を装着した利用者が頭部の方向を変更するのと連動して、表示される地図を利用者が向いている方向の地図へ変化させてもよい。表示装置1は、表示装置1を装着した利用者が頭部の方向を変更するのと連動して、利用者の視線が向いている地域の天気、行事、主要な施設等を3次元オブジェクトとして表示してもよい。
表示装置1は、利用者が首を振る方向を、何からの処理と対応付けてもよい。例えば、表示装置1は、利用者が右方向に首を振った場合には、表示している本の3次元オブジェクトのページを送り、利用者が左方向に首を振った場合には、本の3次元オブジェクトのページを戻す。この場合、振った首を元に戻すための方向の変化については、処理を連動させない。
図11は、位置および方向の変化と連動して3次元オブジェクトを変化させる制御の処理手順を示すフローチャートである。図11に示す処理手順は、制御部22が制御プログラム24aを実行することによって実現される。制御部22は、まず、ステップS101として、仮想空間データ24dおよびオブジェクトデータ24bに基づいて、仮想空間を生成する。そして、制御部22は、ステップS102として、仮想空間における視点の位置と方向とを初期設定する。仮想空間における視点の位置と方向の初期設定は、例えば、予め定められている現実の空間と仮想空間との対応付けのルールに基づいて行われる。
続いて、制御部22は、ステップS103として、動きセンサ48の検出結果を取得する。そして、制御部22は、ステップS104として、仮想空間における視点の位置を表示装置1の位置の変化に応じて変化させ、ステップS105として、仮想空間における視点の方向を表示装置1の方向の変化に応じて変化させる。
そして、制御部22は、ステップS106として、3次元オブジェクトの表示が終了であるかを判定する。3次元オブジェクトの表示が終了でない場合(ステップS106,No)、制御部22は、ステップS103に戻る。3次元オブジェクトの表示が終了の場合(ステップS106,Yes)、制御部22は、図11に示す処理手順を終了する。
次に、図12から図18を参照しながら、図6に示したオブジェクトデータ24bおよび作用データ24cについてさらに詳しく説明する。図12は、オブジェクトデータ24bに格納される情報の一例を示す図である。図13から図18は、作用データ24cに格納される情報の一例を示す図である。
図12に示すように、オブジェクトデータ24bには、種別、形状情報、色、透明度等を含む情報が3次元オブジェクト毎に格納される。種別は、3次元オブジェクトの物理的な性質を示す。種別は、例えば、「剛体」、「弾性体」等の値をとる。形状情報は、3次元オブジェクトの形状を示す情報である。形状情報は、例えば、3次元オブジェクトを構成する面の頂点座標の集合である。色は、3次元オブジェクトの表面の色である。透明度は、3次元オブジェクトが光を透過させる度合いである。オブジェクトデータ24bは、複数の3次元オブジェクトに関する情報を保持することができる。
図13から図18に示す例では、押す操作が検出された場合の変化に関する情報が3次元オブジェクトの種別毎に作用データ24cに格納されている。図13に示すように、3次元オブジェクトの種別が「剛体」の場合、支点の有無、押された方向における障害物の有無、押される速度に応じて、押す操作が検出された場合の変化が異なる。ここでいう障害物とは、他の3次元オブジェクトであってもよいし、現実の物体であってもよい。また、押される速度が速いか遅いかは閾値に基づいて判定される。
3次元オブジェクトに支点がなく、押された方向に障害物がない場合、3次元オブジェクトは、押された方向に押された量に応じて移動するように表示される。このように表示される3次元オブジェクトは、例えば、積み木、ペン、本である。移動の仕方については、滑るのか回転するのかを3次元オブジェクトの形状に基づいて決定してよい。また、押す物体と一緒に移動するのか、押す物体にはじかれるように物体と離れて移動するのかについては、押される速度に基づいて決定してよいし、3次元オブジェクトと底面の摩擦抵抗の算出値または設定値に基づいて決定してもよい。
3次元オブジェクトに支点がなく、押された方向に固定された障害物がある場合、3次元オブジェクトは、押された方向に押された量に応じて移動し、障害物と接触した時点で移動が停止するように表示される。このように表示される3次元オブジェクトは、例えば、積み木、ペン、本である。押された速度が速い場合は、3次元オブジェクトが障害物を破壊して移動を継続することとしてもよい。また、3次元オブジェクトが押す物体にはじかれるように物体と離れて移動している間に障害物と接触した場合は、跳ね返ったように3次元オブジェクトを逆方向に移動させてもよい。
3次元オブジェクトに支点がなく、押された方向に固定されていない他の剛体があり、押される速度が遅い場合、3次元オブジェクトは、押された方向に押された量に応じて移動し、他の剛体と接触した後は、他の剛体もともに移動するように表示される。また、3次元オブジェクトに支点がなく、押された方向に固定されていない他の剛体があり、押される速度が速い場合、3次元オブジェクトは、押された方向に押された量に応じて移動するように表示される。そして、3次元オブジェクトが他の剛体と接触した後は、他の剛体がはじかれて移動するように表示される。他の剛体と接触した後、3次元オブジェクトは、その場で停止してもよいし、速度を落として移動を継続してもよい。このように表示される3次元オブジェクトと他の剛体の組み合わせは、例えば、ボーリングの球とピンの組み合わせや、ビー玉同士の組み合わせである。
3次元オブジェクトに支点がなく、押された方向に固定されていない他の剛体があるが、他の剛体はすり抜け可能である場合、3次元オブジェクトは、押された方向に押された量に応じて移動し、他の剛体と接触した後も、他の剛体をすり抜けてそのまま移動し続けるように表示される。現実には、剛体が剛体をすり抜けることはないが、このようなすり抜けを可能にすることにより、利用者に斬新な体験を提供することができる。このように表示される3次元オブジェクトと他の剛体の組み合わせは、例えば、ボーリングの球とピンの組み合わせや、ビー玉同士の組み合わせである。押される速度に閾値を設け、押される速度が閾値以下の場合は、3次元オブジェクトが他の剛体をすり抜けないこととしてもよい。
3次元オブジェクトに支点がある場合、3次元オブジェクトは、押された方向および量に応じて、支点を中心に回転するように表示される。ここでいう回転とは、360度ぐるぐると回る回転であってもよいし、所定の回転範囲内を往復する回動であってもよい。このように表示される3次元オブジェクトは、例えば、振り子、ボクシングのサンドバック、風車である。
また、図14に示すように、3次元オブジェクトの種別が「弾性体」の場合、素材、変化量の制限の有無、押される速度に応じて、押す操作が検出された場合の変化が異なる。ここでいう素材は、3次元オブジェクトの想定上の素材であり、オブジェクトデータ24bにおいて定義される。
3次元オブジェクトの素材がゴム系であり、変化量に制限がなく、押される速度が遅い場合、3次元オブジェクトは、押された方向に押された量に応じて変形し、押される状態から解放されると元の形状に戻るように表示される。また、3次元オブジェクトの素材がゴム系であり、変化量に制限がなく、押される速度が速い場合、3次元オブジェクトは、押された方向に押された量に応じて変形し、その後、はじかれて、元の形状に戻りながら押された方向へ移動するように表示される。このように表示される3次元オブジェクトは、例えば、ゴムボール、消しゴムである。
3次元オブジェクトの素材がゴム系であり、変化量に制限がある場合、3次元オブジェクトは、押された方向に押された量に応じて変形可能範囲まで変形し、その後も押す操作が検出されると、元の形状に戻りながら押された方向へ移動するように表示される。このように表示される3次元オブジェクトは、例えば、ゴムボール、消しゴムである。
3次元オブジェクトの素材が金属系の場合、3次元オブジェクトは、押された方向に押された量に応じて変形可能範囲まで変形し、押される状態から解放されると元の形状に戻ったり変形したりを繰り返す(振動する)ように表示される。変形可能方向以外の方向に押された場合、3次元オブジェクトは、剛体と同様に移動する。このように表示される3次元オブジェクトは、例えば、板ばね、弦巻ばねである。
また、図15に示すように、3次元オブジェクトの種別が「塑性体」の場合、3次元オブジェクトは、押された箇所がへこんで全体形状が変化するように表示される。このように表示される3次元オブジェクトは、例えば、粘土である。
また、図16に示すように、3次元オブジェクトの種別が「液体」の場合、押される速度に応じて、押す操作が検出された場合の変化が異なる。押される速度が遅い場合、押す物体が3次元オブジェクト、すなわち、液体につかるように表示される。押される速度が中程度の場合、押す物体が液体につかり、液体に波紋が拡がるように表示される。押される速度が速い場合、押す物体が液体につかり、液体から水しぶきがあがるように表示される。このように表示される3次元オブジェクトは、例えば、コップに入った水である。
また、図17に示すように、3次元オブジェクトの種別が「気体」の場合、押される速度に応じて、押す操作が検出された場合の変化が異なる。押される速度が遅い場合、3次元オブジェクト、すなわち、気体が押す物体によってさえぎられてその周囲を漂うように表示される。押される速度が中程度の場合、気体が押す物体によって散乱されるように表示される。押される速度が速い場合、押す物体の移動方向の後ろ側で乱流により気体に渦が生まれるように表示される。このように表示される3次元オブジェクトは、例えば、煙である。
また、図18に示すように、3次元オブジェクトの種別が「集合体」の場合、集合体の要素の結合状況に応じて、押す操作が検出された場合の変化が異なる。集合体の要素の結合がない場合、3次元オブジェクトは、押された箇所がへこんで集合体としての全体形状が変化するように表示される。このように表示される3次元オブジェクトは、例えば、砂、砂糖である。
集合体の要素の結合がある場合、3次元オブジェクトは、押された箇所がへこんで集合体としての全体形状が変化するように表示される。さらに、押された箇所以外の要素が、押された箇所の要素に引っ張られて移動するように表示される。このように表示される3次元オブジェクトは、例えば、鎖である。
集合体の要素の結合はないが押す物体との間に引力または斥力が働く場合、3次元オブジェクトは、押す物体と接しなくても移動するように表示される。押す物体との間に引力が働く場合、3次元オブジェクトは、押す物体と接しなくても、押す物体と所定距離以内に入ると押す物体に引き寄せられる。また、押す物体との間に斥力が働く場合、3次元オブジェクトは、押す物体と接しなくても、押す物体と所定距離以内に入ると押す物体から遠ざかる。このように表示される3次元オブジェクトと押す物体の組み合わせは、例えば、鉄粉と磁石の組み合わせである。
このように、オブジェクトデータ24bに格納された情報と作用データ24cに格納された情報とに基づいて3次元オブジェクトを変化させることにより、押す操作に応じて、3次元オブジェクトを多様に変化させることができる。オブジェクトデータ24bおよび作用データ24cに格納される情報は、上記の例に限定されず、用途等に応じて適宜変更してよい。例えば、押す物体の種別および大きさや押す物体と3次元オブジェクトの接触面積の大きさに応じて、3次元オブジェクトの変化の仕方が切り替わるように設定してもよい。
次に、図19および図20を参照しながら、3次元オブジェクトを押す操作の検出と、検出された操作に応じた3次元オブジェクトの変化について説明する。以下の説明では、表示装置1を装着した利用者が見る空間を、表示空間と呼ぶことがある。表示装置1は、利用者の右目および左目にそれぞれの目に対応する画像を提供することにより、表示空間内に現実の物体および3次元オブジェクトを3次元的(立体的)に表示することができる。表示装置1は、仮想空間データ24dに基づいて再現した仮想空間と、撮影部40および42によって撮影される現実の空間とを所定の規則に基づいて対応付け、これらの空間が重なった空間を表示空間として表示する。
図19および図20は、3次元オブジェクトを押す操作の検出と、検出された操作に応じた3次元オブジェクトの変化について説明するための図である。図19に示すステップS11では、表示装置1は、表示空間50中に、3次元オブジェクトOB1を立体的に表示している。3次元オブジェクトOB1は、例えば、ボールを模したオブジェクトである。また、ステップS11では、3次元オブジェクトOB1を支持する底面B1が表示されている。
ステップS12では、利用者が指F1を3次元オブジェクトOB1と接触する位置に置き、そのまま静止させている。表示装置1は、表示空間内で現実の物体が検出され、かつ、その物体が3次元オブジェクトOB1と接触する状態が所定時間以上継続した場合、3次元オブジェクトOB1が操作対象として選択されたと判定する。そして、表示装置1は、3次元オブジェクトOB1の表示態様を変更する等して、3次元オブジェクトOB1が操作対象として選択されたことを利用者に通知する。
物体が3次元オブジェクトOB1と接触しているかの判定は、現実の空間における物体の位置と、3次元オブジェクトOB1の形状、姿勢、仮想空間における位置等に基づいて行われる。現実の空間での位置と仮想空間における位置との比較は、一方の空間の位置を上記の所定の規則に基づいて他方の空間の位置へ換算することによって行ってもよいし、両方の空間の位置を比較用の空間の位置へ換算することによって行ってもよい。現実の物体として指が検出された場合、指のつま先の位置を物体の位置として処理してもよい。人は、何かを操作するときに指のつま先を用いることが多いため、指のつま先の位置を物体の位置として処理することにより、より自然な操作感を利用者に提供することができる。
また、操作対象として選択されたことの通知は、例えば、3次元オブジェクトOB1の全体の色を変更することや、3次元オブジェクトOB1の表面のうち、物体と接触している位置の近傍の色を変更することによって実現される。表示装置1は、このような視覚的な通知に代えて、あるいは、このような視覚的な通知に加えて、音や振動による通知を行ってもよい。
このように、表示装置1は、指等の現実の物体が3次元オブジェクトOB1と接触する状態が所定時間以上継続して検出された場合に、3次元オブジェクトOB1が操作対象として選択されたと判定する。接触状態が所定時間以上継続して検出されることを条件として付加することにより、例えば、他の3次元オブジェクトを操作するために指を移動させる過程で、意図しない3次元オブジェクトが操作対象として選択される可能性を低くすることができる。
3次元オブジェクトOB1が操作対象として選択された後、ステップS13に示すように、利用者が、3次元オブジェクトOB1を押すように、指F1を3次元オブジェクトOB1の内側に侵入させたものとする。表示装置1は、操作対象として選択された3次元オブジェクト内に物体を侵入させる操作が検出された場合、操作に応じて3次元オブジェクトを変化させる。3次元オブジェクトをどのように変化させるかは、オブジェクトデータ24bにおいて定義されている3次元オブジェクトの種別と、作用データ24cにおいてその種別と対応付けて定義されている変化のルールとによって決定される。
例えば、オブジェクトデータ24bにおいて3次元オブジェクトOB1が弾性体であると定義され、作用データ24cにおいて弾性体は押された場合に押された量に応じて押された方向に変形することが定義されていたものとする。この場合、表示装置1は、ステップS14に示すように、指F1が侵入した部分が押されて凹んだように3次元オブジェクトOB1を変化させる。
また、オブジェクトデータ24bにおいて3次元オブジェクトOB1が剛体であると定義され、作用データ24cにおいて剛体は押された場合に押された量に応じて押された方向に移動することが定義されていたものとする。この場合、表示装置1は、図20のステップS15に示すように、指F1に押されたように3次元オブジェクトOB1を指F1の進行方向へ移動させる。図20のステップS15では、3次元オブジェクトOB1は、底面B1に支持されているため、剛体によって印加される力の底面B1と水平方向の成分に従って移動している。
このように、3次元オブジェクトを押す操作が検出された場合に、オブジェクトデータ24bおよび作用データ24cに基づいて3次元オブジェクトOB1を変化させることにより、3次元オブジェクトを操作に応じて様々に変化させることができる。押すという操作は、現実の世界の様々な場面で利用されている操作であり、3次元オブジェクトOB1を押す操作を検出して対応する処理を実行することにより、直感的で利便性の高い操作性を実現することができる。
3次元オブジェクトを操作するために用いられる物体は、指に限定されず、手、足、棒、器具等であってもよい。押す操作に応じて3次元オブジェクトを変化させる態様は、現実の物理法則に則していてもよいし、現実ではあり得ないものであってもよい。
表示装置1は、3次元オブジェクトに対する操作を検出する空間を操作可能範囲51に限定してもよい。操作可能範囲51は、例えば、表示装置1を装着している利用者の手が届く範囲である。このように、3次元オブジェクトに対する操作を検出する空間を限定することにより、表示装置1が操作を検出するために実行する演算処理の負荷を軽減することができる。
次に、図21および図22を参照しながら、3次元オブジェクトを押す操作に関して表示装置1が実行する処理手順の第1の例について説明する。図21は、3次元オブジェクトの接触検出処理の処理手順を示すフローチャートである。図21に示す処理手順は、制御部22が制御プログラム24aを実行することによって実現される。
図21に示すように、制御部22は、まず、ステップSA01として、3次元オブジェクトを含む仮想空間の画像と現実の空間の画像とを合成して表示する。
続いて、制御部22は、ステップSA02として、検出部44、すなわち、撮影部40および42によって所定の物体が検出されたかを判定する。所定の物体は、例えば、利用者の指である。所定の物体が検出されない場合(ステップSA02,No)、制御部22は、ステップSA08として、操作終了が検出されたかを判定する。
操作終了は、例えば、操作部13に対する所定の操作が行われた場合に検出される。操作終了が検出された場合(ステップSA08,Yes)、制御部22は、接触検出処理を終了させる。操作終了が検出されない場合(ステップSA08,No)、制御部22は、ステップSA02以降を再実行する。
所定の物体が検出された場合(ステップSA02,Yes)、制御部22は、ステップSA03として、所定の物体の種別を判定する。所定の物体の種別は、例えば、撮影部40および42によって撮影された画像中の物体の大きさ、形状、色等に基づいて判定される。続いて、制御部22は、ステップSA04として、所定の物体に接触している3次元オブジェクトを探す。所定の物体に接触している3次元オブジェクトがない場合(ステップSA05,No)、制御部22は、ステップSA08へ進む。
所定の物体に接触している3次元オブジェクトがみつかった場合(ステップSA05,Yes)、制御部22は、ステップSA06として、オブジェクトデータ24bに基づいて、所定の物体に接触している3次元オブジェクトの種別を判定する。そして、制御部22は、ステップSA07として、後述する操作検出処理を実行する。その後、制御部22は、ステップSA08へ進む。
図22は、操作検出処理の処理手順を示すフローチャートである。図22に示す処理手順は、制御部22が制御プログラム24aを実行することによって実現される。
図22に示すように、制御部22は、まず、ステップSB01として、所定の物体と3次元オブジェクトの接触時間を取得する。そして、制御部22は、ステップSB02として、所定の物体が3次元オブジェクトの内部に移動したかを判定する。所定の物体が3次元オブジェクトの内部に移動していない場合(ステップSB02,No)、制御部22は、ステップSB01以降を再実行する。
所定の物体が3次元オブジェクトの内部に移動している場合(ステップSB02,Yes)、制御部22は、ステップSB03として、接触時間が所定時間以上であるかを判定する。接触時間が所定時間よりも短い場合(ステップSB03,No)、その3次元オブジェクトは操作対象ではないと判断されるため、制御部22は、操作検出処理を終了させる。
接触時間が所定時間以上の場合(ステップSB03,Yes)、制御部22は、ステップSB04として、所定の物体の速度を算出する。そして、制御部22は、ステップSB05として、所定の物体の種別、位置および速度と、3次元オブジェクトの種別等に基づいて3次元オブジェクトを変化させる。具体的な変化のさせ方は、作用データ24cに従って決定される。
続いて、制御部22は、ステップSB06として、所定の物体が3次元オブジェクトの外部に移動したかを判定する。所定の物体が3次元オブジェクトの外部に移動していない場合、すなわち、押す操作が継続している場合(ステップSB06,No)、制御部22は、ステップSB04以降を再実行する。
所定の物体が3次元オブジェクトの外部に移動した場合、すなわち、3次元オブジェクトが解放された場合(ステップSB06,Yes)、制御部22は、ステップSB07として、3次元オブジェクトの変化が継続するかを判定する。例えば、作用データ24cにおいて解放後も振動が所定時間継続することが定義されている場合に、3次元オブジェクトの変化が継続すると判定される。
3次元オブジェクトの変化が継続する場合(ステップSB07,Yes)、制御部22は、ステップSB08として、3次元オブジェクトを変化させ、その後、ステップSB07以降を再実行する。3次元オブジェクトの変化が継続しない場合(ステップSB07,No)、制御部22は、操作検出処理を終了させる。
上述してきたように、第1の例では、押す操作に応じて3次元オブジェクトを多様に変化させ、それにより、利用者に対して利便性の高い操作方法を提供することができる。
3次元オブジェクトを押す操作に関する処理手順の第2の例について説明する。第2の例における接触検出処理は、第1の例における接触検出処理と同一である。そこで、第2の例については、第1の例と重複する説明は省略し、主として、操作検出処理について説明する。
まず、図23を参照しながら、3次元オブジェクトを押す操作の検出と、検出された操作に応じた3次元オブジェクトの変化について説明する。図23は、3次元オブジェクトを押す操作の検出と、検出された操作に応じた3次元オブジェクトの変化について説明するための図である。図23に示すステップS21では、利用者が指F1を3次元オブジェクトOB1と接触させ、ステップS22では、利用者が指F1を3次元オブジェクトOB1の内側に侵入させている。
表示装置1は、表示空間内で現実の物体が検出され、かつ、その物体が3次元オブジェクトOB1と接触した後に3次元オブジェクトOB1の内部へ移動する状態が所定時間以上継続した場合、3次元オブジェクトOB1が操作対象として選択されたと判定する。そして、表示装置1は、3次元オブジェクトOB1の表示態様を変更する等して、3次元オブジェクトOB1が操作対象として選択されたことを利用者に通知する。さらに、表示装置1は、ステップS23に示すように、3次元オブジェクトOB1を、あたかもステップS21の段階で既に押す操作の対象として選択されていたかのように、接触検出以降の指F1による操作に応じて変化させる。
このように、物体と3次元オブジェクトの接触を検出した後は、物体がその場に留まらなくても押す操作を検出可能にすることにより、利用者は、3次元オブジェクトを押す操作を迅速に開始することができる。また、接触後に物体が3次元オブジェクトOB1の内部へ移動する状態が所定時間以上継続することを条件として付加することにより、例えば、他の3次元オブジェクトを操作するために指を移動させる過程で、意図しない3次元オブジェクトが操作対象として選択される可能性を低くすることができる。
次に、図24を参照しながら、第2の例における操作検出処理の処理手順について説明する。図24は、操作検出処理の処理手順を示すフローチャートである。図24に示す処理手順は、制御部22が制御プログラム24aを実行することによって実現される。接触検出処理の処理手順は、図21に示した手順と同様である。
図24に示すように、制御部22は、まず、ステップSC01として、所定の物体が3次元オブジェクトの内部に移動しているかを判定する。所定の物体が3次元オブジェクトの内部に移動していない場合(ステップSC01,No)、その3次元オブジェクトは操作対象ではないと判断されるため、制御部22は、操作検出処理を終了させる。
所定の物体が3次元オブジェクトの内部に移動している場合(ステップSC01,Yes)、制御部22は、ステップSC02として、接触検出からの経過時間が所定時間以上であるかを判定する。経過時間が所定時間よりも短い場合(ステップSC02,No)、制御部22は、ステップSC01以降を再実行する。
接触時間が所定時間以上の場合(ステップSC02,Yes)、制御部22は、ステップSC03として、所定の物体の速度を算出する。そして、制御部22は、ステップSC04として、所定の物体の種別、位置および速度と、3次元オブジェクトの種別等に基づいて3次元オブジェクトを変化させる。具体的な変化のさせ方は、作用データ24cに従って決定される。
続いて、制御部22は、ステップSC05として、所定の物体が3次元オブジェクトの外部に移動したかを判定する。所定の物体が3次元オブジェクトの外部に移動していない場合、すなわち、押す操作が継続している場合(ステップSC05,No)、制御部22は、ステップSC03以降を再実行する。
所定の物体が3次元オブジェクトの外部に移動した場合、すなわち、3次元オブジェクトが解放された場合(ステップSC05,Yes)、制御部22は、ステップSC06として、3次元オブジェクトの変化が継続するかを判定する。例えば、作用データ24cにおいて解放後も振動が所定時間継続することが定義されている場合に、3次元オブジェクトの変化が継続すると判定される。
3次元オブジェクトの変化が継続する場合(ステップSC06,Yes)、制御部22は、ステップSC07として、3次元オブジェクトを変化させ、その後、ステップSC06以降を再実行する。3次元オブジェクトの変化が継続しない場合(ステップSC06,No)、制御部22は、操作検出処理を終了させる。
上述してきたように、第2の例では、指等の物体が3次元オブジェクトに接触する状態が所定時間以上継続しなくても押す操作が認識されることとしたので、利用者は、3次元オブジェクトを押す操作を迅速に開始することができる。
3次元オブジェクトを押す操作に関する処理手順の第3の例について説明する。第3の例における接触検出処理は、第1の例における接触検出処理と同一である。そこで、第3の例では、第1の例と重複する説明は省略し、主として、操作検出処理について説明する。
まず、図25および図26を参照しながら、3次元オブジェクトを押す操作の検出と、検出された操作に応じた3次元オブジェクトの変化について説明する。図25および図26は、3次元オブジェクトを押す操作の検出と、検出された操作に応じた3次元オブジェクトの変化について説明するための図である。図25に示すステップS31では、表示空間中に、3次元オブジェクトOB1が立体的に表示されている。また、利用者は、指F1を3次元オブジェクトOB1と接触させている。
ここで、利用者が指F1を3次元オブジェクトOB1の内側に侵入させたものとする。表示装置1は、3次元オブジェクトOB1に接触した物体が3次元オブジェクトOB1の内側に移動したことを検出すると、ステップS32に示すように、その時点から、3次元オブジェクトOB1を指F1による操作に応じて変化させる。図25に示す例では、ステップS32において、3次元オブジェクトOB1は、指F1の移動に合わせて移動を開始している。
そして、表示装置1は、ステップS33に示すように、指F1が3次元オブジェクトOB1の内側へ向けて移動することが所定時間以上継続した段階で、3次元オブジェクトOB1を操作対象として確定する。そして、表示装置1は、3次元オブジェクトOB1の表示態様を変更する等して、3次元オブジェクトOB1が操作対象として確定したことを利用者に通知する。その後も、指F1の3次元オブジェクトOB1の内側への移動が検出される間、表示装置1は、3次元オブジェクトOB1を変化させ続ける。
図26のステップS34に示すように、所定時間が経過する前に指F1の3次元オブジェクトOB1の内側への移動が検出されなくなった場合、表示装置1は、それまでに加えた変化と逆の変化を3次元オブジェクトOB1に加える。その結果、3次元オブジェクトOB1は、ステップS31の段階と同じ位置に同じ状態で表示される。逆の変化を3次元オブジェクトOB1に加える速度は、それまでに3次元オブジェクトOB1に変化が加えられた速度よりも速くてもよい。すなわち、高速に逆再生しているかのように3次元オブジェクトOB1を逆変化させてもよい。
このように、3次元オブジェクトの内側への物体の侵入が検出された段階から3次元オブジェクトに変化を加え始めることにより、利用者は、3次元オブジェクトが選択されつつあることを選択が確定する前から認識することができる。その結果、利用者は、意図した3次元オブジェクトが選択されたか否かを早期に知ることができる。意図しない3次元オブジェクトが選択された場合、利用者は、所定時間が経過する前に操作を中止することにより、意図せずに選択された3次元オブジェクトを元の状態に戻すことができる。
指F1の3次元オブジェクトOB1の内側への移動が所定時間以上継続するまでは、変化を加えられている3次元オブジェクトを通常時とも操作対象としての選択が確定した状態とも異なる態様(例えば、半透明)で表示してもよい。このように表示態様を変更することにより、利用者が3次元オブジェクトの状態を判別しやすくなる。
次に、図27を参照しながら、第3の例における操作検出処理の処理手順について説明する。図27は、操作検出処理の処理手順を示すフローチャートである。図27に示す処理手順は、制御部22が制御プログラム24aを実行することによって実現される。接触検出処理の処理手順は、図21に示した手順と同様である。
図27に示すように、制御部22は、まず、ステップSD01として、所定の物体が3次元オブジェクトの内部に移動しているかを判定する。所定の物体が3次元オブジェクトの内部に移動していない場合(ステップSD01,No)、その3次元オブジェクトは操作対象ではないと判断されるため、制御部22は、操作検出処理を終了させる。
所定の物体が3次元オブジェクトの内部に移動している場合(ステップSD01,Yes)、制御部22は、ステップSD02として、所定の物体の速度を算出する。そして、制御部22は、ステップSD03として、所定の物体の種別、位置および速度と、3次元オブジェクトの種別等に基づいて3次元オブジェクトを変化させる。具体的な変化のさせ方は、作用データ24cに従って決定される。
続いて、制御部22は、ステップSD04として、接触検出からの経過時間が所定時間以上であるかを判定する。経過時間が所定時間よりも短い場合、すなわち、3次元オブジェクトが押す操作の対象として確定していない場合(ステップSD04,No)、制御部22は、ステップSD05として、所定の物体の3次元オブジェクトの内部方向への移動が継続しているかを判定する。
3次元オブジェクトの内部方向への移動が継続している場合(ステップSD05,Yes)、制御部22は、ステップSD02以降を再実行する。3次元オブジェクトの内部方向への移動が継続していない場合(ステップSD05,No)、制御部22は、ステップSD06として、3次元オブジェクトを逆変化させて元の状態に戻す。そして、制御部22は、操作検出処理を終了させる。
接触検出からの経過時間が所定時間以上である場合(ステップSD04,Yes)、制御部22は、ステップSD07として、所定の物体が3次元オブジェクトの外部に移動したかを判定する。所定の物体が3次元オブジェクトの外部に移動していない場合、すなわち、押す操作が継続している場合(ステップSD07,No)、制御部22は、ステップSD02以降を再実行する。
所定の物体が3次元オブジェクトの外部に移動した場合、すなわち、3次元オブジェクトが解放された場合(ステップSD07,Yes)、制御部22は、ステップSD08として、3次元オブジェクトの変化が継続するかを判定する。例えば、作用データ24cにおいて解放後も振動が所定時間継続することが定義されている場合に、3次元オブジェクトの変化が継続すると判定される。
3次元オブジェクトの変化が継続する場合(ステップSD08,Yes)、制御部22は、ステップSD09として、3次元オブジェクトを変化させ、その後、ステップSD08以降を再実行する。3次元オブジェクトの変化が継続しない場合(ステップSD08,No)、制御部22は、操作検出処理を終了させる。
上述してきたように、第3の例では、押す操作が検出された時点から、操作に応じて3次元オブジェクトを変化させることとしたので、利用者が、押す操作の対象となっている3次元オブジェクトを認識しやすい。
3次元オブジェクトに関する操作として、3次元オブジェクトを押す操作について説明したが、表示装置1が3次元オブジェクトに関して検出する操作は、押す操作に限定されない。表示装置1は、利用者が3次元オブジェクトを摘んで行う操作も検出することができる。以下に3次元オブジェクトを摘んで行う操作について説明する。
図28を参照しながら、3次元オブジェクトを摘んで行う操作の検出について説明する。図28は、3次元オブジェクトを摘んで行う操作の検出について説明するための図である。図28に示すステップS41では、表示空間50中に、3次元オブジェクトOB1が立体的に表示されている。
ここで、利用者が3次元オブジェクトOB1を摘んで何らかの操作を行いたいものとする。3次元オブジェクトOB1を摘んで何らかの操作を行うには、まず、操作の対象として3次元オブジェクトOB1を選択する必要がある。3次元オブジェクトOB1を選択するために、利用者は、ステップS42に示すように、指F1と指F2の間に3次元オブジェクトOB1が位置するように指F1および指F2を移動させ、その状態を所定時間以上維持する。
表示装置1は、表示空間内で2つの現実の物体が検出され、かつ、それらの2つの物体の間に3次元オブジェクトOB1が位置する状態が所定時間以上継続した場合、3次元オブジェクトOB1が選択されたと判定し、3次元オブジェクトOB1を選択状態にする。そして、表示装置1は、3次元オブジェクトOB1の表示態様を変更する等して、3次元オブジェクトOB1が選択状態になったことを利用者に通知する。
2つの物体の間に3次元オブジェクトOB1が位置しているかの判定は、現実の空間における2つの物体の位置と、3次元オブジェクトOB1の形状、姿勢、仮想空間における位置等に基づいて行われる。現実の空間での位置と仮想空間における位置との比較は、一方の空間の位置を上記の所定の規則に基づいて他方の空間の位置へ換算することによって行ってもよいし、両方の空間の位置を比較用の空間の位置へ換算することによって行ってもよい。現実の物体として指が検出された場合、指のつま先の位置を物体の位置として処理してもよい。
このように、表示装置1は、指等の現実の物体の間に3次元オブジェクトOB1が位置する状態が所定時間以上継続して検出された場合に、3次元オブジェクトOB1が選択されたと判定する。指の間に3次元オブジェクトOB1を挟むように指を配置するという操作は、人間が現実の空間の何かを選択するために何かを摘む操作と類似している。そのため、かかる操作は、3次元オブジェクトを選択するための操作として、直感的で分かりやすい。また、状態が所定時間以上継続して検出されることを条件として付加することにより、例えば、他の3次元オブジェクトを選択するために指を移動させる過程で、意図しない3次元オブジェクトが選択される可能性を低くすることができる。
表示装置1は、3次元オブジェクトOB1が選択状態になったと判定した後、指F1および指F2の動きに応じて、3次元オブジェクトOB1に移動、変形、消失、置換等の変化を加える。
次に、図29および図30を参照しながら、3次元オブジェクトを摘んで行う操作に関して表示装置1が実行する処理手順の第1の例について説明する。図29は、3次元オブジェクトの選択検出処理の処理手順を示すフローチャートである。図29に示す処理手順は、制御部22が制御プログラム24aを実行することによって実現される。
図29に示すように、制御部22は、まず、ステップSE01として、3次元オブジェクトを含む仮想空間の画像と現実の空間の画像とを合成して表示する。
続いて、制御部22は、ステップSE02として、検出部44、すなわち、撮影部40および42によって第1の物体および第2の物体が検出されたかを判定する。第1の物体および第2の物体は、現実の物体、例えば、利用者の指である。第1の物体および第2の物体が検出されない場合(ステップSE02,No)、制御部22は、ステップSE10として、操作終了が検出されたかを判定する。
操作終了は、例えば、操作部13に対する所定の操作が行われた場合に検出される。操作終了が検出された場合(ステップSE10,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップSE10,No)、制御部22は、ステップSE02以降を再実行する。
第1の物体および第2の物体が検出された場合(ステップSE02,Yes)、制御部22は、ステップSE03として、表示されている3次元オブジェクトの中から第1の物体と第2の物体との間に表示されている3次元オブジェクトを探す。該当する3次元オブジェクトがない場合(ステップSE04,No)、制御部22は、ステップSE10へ進む。
第1の物体と第2の物体との間に表示されている3次元オブジェクトがみつかった場合(ステップSE04,Yes)、制御部22は、ステップSE05として、第1の物体と第2の物体との間に3次元オブジェクトが位置している時間を取得する。取得した時間が所定時間未満の場合(ステップSE06,No)、制御部22は、ステップSE10へ進む。
取得した時間が所定時間以上の場合(ステップSE06,Yes)、制御部22は、ステップSE07として、第1の物体と第2の物体の距離を算出する。また、制御部22は、ステップSE08として、第1の物体と第2の物体との間に表示されている3次元オブジェクトを選択状態にする。そして、制御部22は、ステップSE09として、後述する操作検出処理を実行し、その中で、選択状態にある3次元オブジェクトを検出された操作に応じて変化させる。操作検出処理が終了した後、制御部22は、ステップSE10へ進む。
図30は、操作検出処理の処理手順を示すフローチャートである。図30に示す処理手順は、制御部22が制御プログラム24aを実行することによって実現される。
図30に示すように、制御部22は、まず、ステップSF01として、第1の物体と第2の物体の距離を算出する。そして、制御部22は、ステップSF02として、操作検出処理の開始時点以降の第1の物体と第2の物体の距離がほぼ一定であるかを判定する。距離がほぼ一定とは、例えば、現時点での第1の物体と第2の物体の距離の変化量が、操作検出処理の開始時点の距離と比較して、所定の範囲(第1の物体および第2の物体が通常の速度で移動した場合の距離の最大変化量の±10%等)以内に収まっていることを意味する。また、第1の物体と第2の物体の距離が操作検出処理の開始時点以降縮まり続けている場合(第1の物体および第2の物体が3次元オブジェクトを押しつぶす方向に移動している場合)に、距離がほぼ一定であると判定してもよい。また、手振れ等の範囲内でしか両者の距離が変化していない場合に、距離がほぼ一定であると判定してもよい。
第1の物体と第2の物体の距離がほぼ一定の場合(ステップSF02,Yes)、制御部22は、ステップSF03として、第1の物体および第2の物体の移動速度を算出する。続いて、制御部22は、ステップSF04として、算出した移動速度が閾値以下であるかを判定する。ここで用いられる閾値は、例えば、人がものを放り投げるときの指先の移動速度である。また、閾値と比較される移動速度は、第1の物体の移動速度と第2の物体の移動速度の平均であってもよいし、いずれか速い方であってもよいし、いずれか遅い方であってもよい。
移動速度が閾値以下の場合(ステップSF04,Yes)、制御部22は、ステップSF05として、検出された第1の物体および第2の物体の動きに応じて3次元オブジェクトに変化を加える。例えば、第1の物体および第2の物体の右方向への移動が検出された場合、制御部22は、第1の物体および第2の物体の移動に合わせて3次元オブジェクトを右方向へ移動させる。第1の物体および第2の物体の左回りでの回転が検出された場合、制御部22は、第1の物体および第2の物体の回転に合わせて3次元オブジェクトを左回りで回転させる。移動と回転が同時に検出された場合、移動と回転が同時に実行される。3次元オブジェクトの移動や回転に対する障害物がある場合、3次元オブジェクトが障害物に接触した時点で3次元オブジェクトの移動や回転を停止させてもよい。障害物は、現実の物体でもよいし、他の3次元オブジェクトでもよい。その後、制御部22は、ステップSF01以降を再実行する。
移動速度が閾値より速い場合(ステップSF04,No)、制御部22は、ステップSF06として、3次元オブジェクトを消去する。3次元オブジェクトを消去するに際して、3次元オブジェクトが第1の物体および第2の物体の移動方向へ向けて飛んでいくようにアニメーション表示してもよい。そして、制御部22は、操作検出処理を終了させる。このように、3次元オブジェクトを放り投げるように第1の物体および第2の物体が高速で移動した場合に3次元オブジェクトを消去することにより、直感的な操作によって3次元オブジェクトの消去を実現することができる。第1の物体および第2の物体を高速で移動させる操作ではなく、例えば、3次元オブジェクトを握りつぶす操作に3次元オブジェクトの消去を割り当ててもよい。また、3次元オブジェクトを消去する代わりに、3次元オブジェクトを当初の配置場所に戻すこととしてもよい。表示装置1は、ステップSF03、SF04およびステップSF06の処理を行わなくてもよい。すなわち、表示装置1は、ステップSF02で第1の物体と第2の物体の距離がほぼ一定と判定した場合には、2つの物体の移動速度にかかわらず、ステップSF05を実行してもよい。
第1の物体と第2の物体の距離がほぼ一定でない場合(ステップSF02,No)、制御部22は、ステップSF07として、距離が、3次元オブジェクトの選択時、すなわち、操作検出処理の開始時点よりも拡大しているかを判定する。距離が拡大している場合(ステップSF07,Yes)、制御部22は、ステップSF08として、3次元オブジェクトの選択状態を解除する。第1の物体と第2の物体の距離を拡大するという操作は、摘んでいる現実のオブジェクトを放す操作と類似している。そのため、かかる操作は、3次元オブジェクトの選択を解除するための操作として、直感的で分かりやすい。
続いて、制御部22は、ステップSF09として、選択状態を解除した3次元オブジェクトを重力等に従って移動させる。そして、制御部22は、操作検出処理を終了させる。ここでの移動は、例えば、3次元オブジェクトが重力に従って落下し、床やテーブルの上で停止するように表示される。3次元オブジェクトの動きを停止させる前に、3次元オブジェクトの弾性や床やテーブルの硬度に応じて3次元オブジェクトをバウンドさせてもよい。3次元オブジェクトが床やテーブルに衝突するときの衝撃の大きさを算出し、衝撃が所定の値よりも大きい場合には3次元オブジェクトを破損したように表示してもよい。また、実際の重力が働く場合よりも3次元オブジェクトをゆっくりと移動させてもよい。
第1の物体と第2の物体の距離が3次元オブジェクトの選択時よりも縮まっている場合(ステップSF07,No)、制御部22は、ステップSF10として、距離に応じて3次元オブジェクトを変形させる。そして、制御部22は、ステップSF01以降を再実行する。3次元オブジェクトを変形させる程度は、例えば、3次元オブジェクトに属性として設定されている弾性に応じて変更してもよい。制御部22は、ゴムボールを模した3次元オブジェクトのように属性として低い硬度を設定されているオブジェクトについては、第1の物体と第2の物体の距離が縮まるに応じて変形の度合いを高めてよい。また、制御部22は、積み木を模した3次元オブジェクトのように属性として高い硬度を設定されているオブジェクトについては、第1の物体と第2の物体の距離が縮まっても変形の度合いを小さく保ってよい。
第1の物体と第2の物体の距離が3次元オブジェクトの選択時よりも縮まっている場合に、表示装置1は、3次元オブジェクトを変形させるのではなく縮小させてもよい。第1の物体と第2の物体の距離が所定の値以下になった場合に、表示装置1は、3次元オブジェクトを破損したように表示してもよい。
上述してきたように、第1の例では、指等の物体の間に3次元オブジェクトが位置する状態が所定時間以上継続した場合に3次元オブジェクトが選択されることとしたので、3次元オブジェクトの選択を直感的で分かりやすい操作により実現することができる。
図31に示すように、表示装置1は、第1の物体と第2の物体のうち少なくとも一方が3次元オブジェクトに接触している状態が所定時間以上継続することを、3次元オブジェクトを選択する条件としてもよい。3次元オブジェクトへの接触を選択の条件とすることにより、複数の3次元オブジェクトが近接して表示されている場合に、利用者が所望の3次元オブジェクトを選択し易くなる。
3次元オブジェクトを摘んで行う操作に関する処理手順の第2の例について説明する。第2の例における操作検出処理は、第1の例における操作検出処理と同一である。そこで、第2の例については、第1の例と重複する説明は省略し、主として、選択検出処理について説明する。
まず、図32を参照しながら、3次元オブジェクトを摘んで行う操作の検出について説明する。図32は、3次元オブジェクトを摘んで行う操作の検出について説明するための図である。図32に示すステップS51では、表示空間中に、3次元オブジェクトOB1が立体的に表示されている。また、3次元オブジェクトOB1を選択するために、利用者は、指F1と指F2の間に3次元オブジェクトOB1が位置するように指F1および指F2を移動させている。
表示装置1は、表示空間内で2つの現実の物体が検出され、かつ、それらの2つの物体の間に3次元オブジェクトOB1が位置する場合、2つの物体の距離の変化を監視する。そして、距離が所定時間以上ほぼ一定であれば、3次元オブジェクトOB1が選択されたと判定し、3次元オブジェクトOB1を選択状態にする。そして、表示装置1は、3次元オブジェクトOB1の表示態様を変更する等して、3次元オブジェクトOB1が選択状態になったことを利用者に通知する。
表示装置1が2つの物体の距離の変化を監視している間、2つの物体は、3次元オブジェクトOB1を挟む位置に留まる必要はない。すなわち、利用者は、ステップS51に示したように指F1と指F2の間に3次元オブジェクトOB1が位置するように指F1および指F2を移動させた後、その状態を保つことなく、指F1および指F2を他の位置へ移動させて構わない。
ステップS51の状態から、ステップS52に示すように、利用者が、指F1と指F2の距離D1をほぼ一定に保ったまま移動させたものとする。この場合、表示装置1は、ステップS53に示すように、指F1と指F2の距離D1がほぼ一定に保たれた状態が所定時間以上継続した段階で、3次元オブジェクトOB1を選択状態にする。そして、表示装置1は、3次元オブジェクトOB1を、あたかもステップS51の段階で既に選択されていたかのように、指F1および指F2の間に移動させる。表示装置1は、ステップS51からステップS53までの指F1と指F2の動きを記憶しておき、記憶しておいた動きに合わせて3次元オブジェクトOB1を回転等させてもよい。その後、表示装置1は、指F1および指F2の動きに応じて、3次元オブジェクトOB1に移動、変形、消失、置換等の変化を加える。
このように、2つの物体が3次元オブジェクトを挟む位置に一旦移動した後は、物体がその場に留まらなくても3次元オブジェクトを選択可能にすることにより、利用者は、3次元オブジェクトを選択した後の操作を迅速に開始することができる。
次に、図33を参照しながら、第2の例における選択検出処理の処理手順について説明する。図33は、3次元オブジェクトの選択検出処理の処理手順を示すフローチャートである。図33に示す処理手順は、制御部22が制御プログラム24aを実行することによって実現される。
図33に示すように、制御部22は、まず、ステップSG01として、3次元オブジェクトを含む仮想空間の画像と現実の空間の画像とを合成して表示する。続いて、制御部22は、ステップSG02として、検出部44、すなわち、撮影部40および42によって第1の物体および第2の物体が検出されたかを判定する。第1の物体および第2の物体が検出されない場合(ステップSG02,No)、制御部22は、ステップSG14として、仮選択状態の3次元オブジェクトがあれば、その3次元オブジェクトの仮選択状態を解除する。仮選択状態とは、2つの物体の間に3次元オブジェクトが表示されている状態が検出された後、2つの物体の距離がほぼ一定に保たれているかが監視されている状態である。
そして、制御部22は、ステップSG15として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップSG15,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップSG15,No)、制御部22は、ステップSG02以降を再実行する。
第1の物体および第2の物体が検出された場合(ステップSG02,Yes)、制御部22は、ステップSG03として、仮選択状態の3次元オブジェクトがあるか否かを判定する。仮選択状態の3次元オブジェクトがない場合(ステップSG03,No)、制御部22は、ステップSG04として、表示されている3次元オブジェクトの中から第1の物体と第2の物体との間に表示されている3次元オブジェクトを探す。該当する3次元オブジェクトがない場合(ステップSG05,No)、制御部22は、ステップSG15へ進む。
第1の物体と第2の物体との間に表示されている3次元オブジェクトがみつかった場合(ステップSG05,Yes)、制御部22は、ステップSG06として、第1の物体と第2の物体との間に表示されている3次元オブジェクトを仮選択状態にする。また、制御部22は、ステップSG07として、第1の物体と第2の物体の距離を算出する。そして、制御部22は、ステップSG15へ進む。
第1の物体および第2の物体が検出され、かつ、仮選択状態の3次元オブジェクトがある場合(ステップSG03,Yes)、制御部22は、ステップSG08として、第1の物体と第2の物体の距離を算出する。そして、制御部22は、ステップSG09として、距離がほぼ一定であるかを判定する。距離がほぼ一定でない場合(ステップSG09,No)、制御部22は、ステップSG14として、仮選択状態の3次元オブジェクトの仮選択状態を解除する。そして、制御部22は、ステップSG15へ進む。
第1の物体と第2の物体の距離がほぼ一定の場合(ステップSG09,Yes)、制御部22は、ステップSG10として、距離がほぼ一定に保たれている期間が所定時間以上であるかを判定する。距離がほぼ一定に保たれている期間が所定時間未満の場合(ステップSG10,No)、制御部22は、ステップSG15へ進む。
距離がほぼ一定に保たれている期間が所定時間以上の場合(ステップSG10,Yes)、制御部22は、ステップSG11として、第1の物体と第2の物体との間に表示されている3次元オブジェクトを選択状態にする。また、制御部22は、ステップSG12として、第1の物体と第2の物体との間に3次元オブジェクトを移動させる。そして、制御部22は、ステップSG13として、図30に示した操作検出処理を実行し、その中で、選択状態にある3次元オブジェクトを検出された操作に応じて変化させる。操作検出処理が終了した後、制御部22は、ステップSG15へ進む。
上述してきたように、第2の例では、指等の物体の間に3次元オブジェクトが位置した後、物体の距離が所定時間以上ほぼ一定に保たれた場合に3次元オブジェクトが選択されることとしたので、利用者は、3次元オブジェクトの選択後の操作を迅速に開始することができる。
図34に示すステップS61からステップS63のように、表示装置1は、第1の物体と第2の物体のうち少なくとも一方が3次元オブジェクトに接触した後に第1の物体と第2の物体の距離が所定時間以上ほぼ一定に保たれることを、3次元オブジェクトを選択する条件としてもよい。3次元オブジェクトへの接触を選択の条件とすることにより、複数の3次元オブジェクトが近接して表示されている場合に、利用者が所望の3次元オブジェクトを選択し易くなる。
3次元オブジェクトを摘んで行う操作に関する処理手順の第3の例について説明する。第3の例については、第1の例と重複する説明は省略し、主として、選択検出処理および操作検出処理について説明する。
まず、図35および図36を参照しながら、3次元オブジェクトを摘んで行う操作の検出について説明する。図35および図36は、3次元オブジェクトを摘んで行う操作の検出について説明するための図である。図35に示すステップS71では、表示空間中に、3次元オブジェクトOB1が立体的に表示されている。また、3次元オブジェクトOB1を選択するために、利用者は、指F1と指F2の間に3次元オブジェクトOB1が位置するように指F1および指F2を移動させている。
表示装置1は、表示空間内で2つの現実の物体が検出され、かつ、それらの2つの物体の間に3次元オブジェクトOB1が位置する場合、2つの物体の距離の変化を監視する。そして、距離が所定時間以上ほぼ一定であれば、3次元オブジェクトOB1が選択されたと判定し、3次元オブジェクトOB1を選択状態にする。そして、表示装置1は、3次元オブジェクトOB1の表示態様を変更する等して、3次元オブジェクトOB1が選択状態になったことを利用者に通知する。
表示装置1が2つの物体の距離の変化を監視している間、2つの物体は、3次元オブジェクトOB1を挟む位置に留まる必要はない。すなわち、利用者は、ステップS71に示したように指F1と指F2の間に3次元オブジェクトOB1が位置するように指F1および指F2を移動させた後、その状態を保つことなく、指F1および指F2を他の位置へ移動させて構わない。
ステップS71の状態から、ステップS72に示すように、利用者が、指F1と指F2の距離D1をほぼ一定に保ったまま移動させたものとする。この場合、表示装置1は、指F1と指F2の間に3次元オブジェクトOB1が表示されていることが検出された段階、すなわち、ステップS71の段階から、指F1および指F2の動きに応じて、3次元オブジェクトOB1に移動、変形、消失、置換等の変化を加える。そして、表示装置1は、ステップS73に示すように、指F1と指F2の距離D1がほぼ一定に保たれた状態が所定時間以上継続した段階で、3次元オブジェクトOB1を選択状態にする。
図36のステップS74に示すように、所定時間が経過する前に指F1と指F2の距離D1が拡大した場合、すなわち、選択が行われなかった場合、表示装置1は、それまでに加えた変化と逆の変化を3次元オブジェクトOB1に加える。その結果、3次元オブジェクトOB1は、ステップS71の段階と同じ位置に同じ状態で表示される。逆の変化を3次元オブジェクトOB1に加える速度は、それまでに3次元オブジェクトOB1に変化が加えられた速度よりも速くてもよい。すなわち、高速に逆再生しているかのように3次元オブジェクトOB1を逆変化させてもよい。
このように、2つの物体の間に3次元オブジェクトが表示されていることが検出された段階から3次元オブジェクトに変化を加え始めることにより、利用者は、3次元オブジェクトが選択されつつあることを選択が確定する前から認識することができる。その結果、利用者は、意図した3次元オブジェクトが選択されたか否かを早期に知ることができる。表示装置1は、2つの物体の距離がほぼ一定に保たれた状態が所定時間以上継続するまでは、変化を加えられている3次元オブジェクトを通常時とも選択状態とも異なる態様(例えば、半透明)で表示することにより、利用者が3次元オブジェクトの状態を判別しやすくしてもよい。
次に、図37および図38を参照しながら、3次元オブジェクトを摘んで行う操作に関して表示装置1が実行する処理手順について説明する。図37は、3次元オブジェクトの選択検出処理の処理手順を示すフローチャートである。図37に示す処理手順は、制御部22が制御プログラム24aを実行することによって実現される。
図37に示すように、制御部22は、まず、ステップSH01として、3次元オブジェクトを含む仮想空間の画像と現実の空間の画像とを合成して表示する。続いて、制御部22は、ステップSH02として、検出部44、すなわち、撮影部40および42によって第1の物体および第2の物体が検出されたかを判定する。第1の物体および第2の物体が検出されない場合(ステップSH02,No)、制御部22は、ステップSH10として、仮選択状態の3次元オブジェクトがあれば、その3次元オブジェクトの仮選択状態を解除する。
そして、制御部22は、ステップSH11として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップSH11,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップSH11,No)、制御部22は、ステップSH02以降を再実行する。
第1の物体および第2の物体が検出された場合(ステップSH02,Yes)、制御部22は、ステップSH03として、仮選択状態の3次元オブジェクトがあるか否かを判定する。仮選択状態の3次元オブジェクトがない場合(ステップSH03,No)、制御部22は、ステップSH04として、表示されている3次元オブジェクトの中から第1の物体と第2の物体との間に表示されている3次元オブジェクトを探す。該当する3次元オブジェクトがない場合(ステップSH05,No)、制御部22は、ステップSH11へ進む。
第1の物体と第2の物体との間に表示されている3次元オブジェクトがみつかった場合(ステップSH05,Yes)、制御部22は、ステップSH06として、第1の物体と第2の物体との間に表示されている3次元オブジェクトを仮選択状態にする。また、制御部22は、ステップSH07として、第1の物体と第2の物体の距離を算出する。そして、制御部22は、ステップSH11へ進む。
第1の物体および第2の物体が検出され、かつ、仮選択状態の3次元オブジェクトがある場合(ステップSH03,Yes)、制御部22は、ステップSH08として、第1の物体と第2の物体の少なくとも一方が移動しているかを判定する。第1の物体と第2の物体のいずれも移動していない場合(ステップSH08,No)、制御部22は、ステップSH11へ進む。
第1の物体と第2の物体の少なくとも一方が移動している場合(ステップSH08,Yes)、制御部22は、ステップSH09として、図38に示す操作検出処理を実行し、その中で、選択状態にある3次元オブジェクトを検出された操作に応じて変化させる。操作検出処理が終了した後、制御部22は、ステップSH11へ進む。
図38は、操作検出処理の処理手順を示すフローチャートである。図38に示す処理手順は、制御部22が制御プログラム24aを実行することによって実現される。図38に示すように、制御部22は、まず、ステップSI01として、第1の物体と第2の物体の距離を算出する。そして、制御部22は、ステップSI02として、操作検出処理の開始時点以降の第1の物体と第2の物体の距離がほぼ一定であるかを判定する。
第1の物体と第2の物体の距離がほぼ一定の場合(ステップSI02,Yes)、制御部22は、ステップSI03として、操作検出処理が開始されてから所定時間が経過したかを判定する。所定時間が経過していた場合(ステップSI03,Yes)、制御部22は、ステップSI04として、仮選択状態の3次元オブジェクトがあれば、その3次元オブジェクトを選択状態にする。所定時間が経過していない場合(ステップSI03,No)、ステップSI04は実行されない。
続いて、制御部22は、ステップSI05として、第1の物体および第2の物体の移動速度を算出する。そして、制御部22は、ステップSI06として、算出した移動速度が閾値以下であるかを判定する。移動速度が閾値以下の場合(ステップSI06,Yes)、制御部22は、ステップSI07として、検出された第1の物体および第2の物体の動きに応じて3次元オブジェクトを移動させたり回転させたりする。そして、制御部22は、ステップSI01以降を再実行する。
移動速度が閾値より速い場合(ステップSI706,No)、制御部22は、ステップSI08として、3次元オブジェクトを消去する。3次元オブジェクトを消去するに際して、3次元オブジェクトが第1の物体および第2の物体の移動方向へ向けて飛んでいくようにアニメーション表示してもよい。そして、制御部22は、操作検出処理を終了させる。第1の物体および第2の物体を高速で移動させる操作ではなく、例えば、3次元オブジェクトを握りつぶす操作に3次元オブジェクトの消去を割り当ててもよい。3次元オブジェクトを消去する代わりに、3次元オブジェクトを当初の配置場所に戻すこととしてもよい。表示装置1は、ステップSI05、SI06およびステップSI08の処理を行わなくてもよい。すなわち、表示装置1は、ステップSI03でNoと判定した場合またはステップSI04を実行した後に、2つの物体の移動速度にかかわらず、ステップSI07を実行してもよい。
第1の物体と第2の物体の距離がほぼ一定でない場合(ステップSI02,No)、制御部22は、ステップSI09として、距離が、3次元オブジェクトの選択時、すなわち、操作検出処理の開始時点よりも拡大しているかを判定する。距離が拡大している場合(ステップSI09,Yes)、制御部22は、ステップSI10として、第1の物体と第2の物体の間に表示されていた3次元オブジェクトが仮選択状態であるかを判定する。
3次元オブジェクトが仮選択状態である場合(ステップSI10,Yes)、制御部22は、ステップSI11として、3次元オブジェクトの仮選択状態を解除する。また、制御部22は、ステップSI12として、3次元オブジェクトを逆変化させて元の状態に戻す。そして、制御部22は、操作検出処理を終了させる。
3次元オブジェクトが仮選択状態でない場合、すなわち、選択状態の場合(ステップSI10,No)、制御部22は、ステップSI13として、3次元オブジェクトの選択状態を解除する。また、制御部22は、ステップSI14として、選択状態を解除した3次元オブジェクトを重力等に従って移動させる。そして、制御部22は、操作検出処理を終了させる。ここでの移動は、例えば、3次元オブジェクトが重力に従って落下し、床やテーブルの上で停止するように表示される。3次元オブジェクトの動きを停止させる前に、3次元オブジェクトの弾性や床やテーブルの硬度に応じて3次元オブジェクトをバウンドさせてもよい。3次元オブジェクトが床やテーブルに衝突するときの衝撃の大きさを算出し、衝撃が所定の値よりも大きい場合には3次元オブジェクトを破損したように表示してもよい。また、実際の重力が働く場合よりも3次元オブジェクトをゆっくりと移動させてもよい。
第1の物体と第2の物体の距離が3次元オブジェクトの選択時よりも縮まっている場合(ステップSI09,No)、制御部22は、ステップSI15として、距離に応じて3次元オブジェクトを変形させる。そして、制御部22は、ステップSI01以降を再実行する。3次元オブジェクトを変形させる程度は、例えば、3次元オブジェクトに属性として設定されている硬度に応じて変更してもよい。
上述してきたように、第3の例では、指等の物体の間に3次元オブジェクトが位置していることが検出された時点から、操作に応じて3次元オブジェクトを変化させることとしたので、利用者が3次元オブジェクトの選択を認識しやすい。
図39に示すステップS81からステップS83のように、第1の物体と第2の物体のうち少なくとも一方が3次元オブジェクトに接触した後に第1の物体と第2の物体の距離が所定時間以上ほぼ一定に保たれることを、3次元オブジェクトを選択する条件としてもよい。3次元オブジェクトへの接触を選択の条件とすることにより、複数の3次元オブジェクトが近接して表示されている場合に、利用者が所望の3次元オブジェクトを選択し易くなる。
上記の実施例において説明した表示装置1は各種の用途に適用できる。操作の対象となる3次元オブジェクト(表示物)は、例えば、本、積み木、スプーン、箸、トランプ、粘土、楽器のように現実に存在するものを模したオブジェクトであってもよいし、仮想のアバター、ゲームのキャラクター、仮想現実のARタグのように実在はしないオブジェクトであってもよい。また、検出された操作に応じて3次元オブジェクトに加えられる変化は、上記の移動、変形、消失、置換等に限定されない。尚、置換とは、一の3次元オブジェクトを他の3次元オブジェクトに置換することをいう。また、押す操作に応じて3次元オブジェクトに加えられる変化は、上記の実施例に限定されず、3次元オブジェクトの種類に応じて変更してよい。
例えば、粘土を模した3次元オブジェクト(以下、単に「粘土」という)を操作対象とする場合、押す操作に応じて粘土を変形させて、利用者が粘土を任意の形に成形できるようにしてもよい。また、時間の経過にしたがって、あたかも粘土が乾いていくかのように、粘土の粘性を低下させていってもよい。また、水の3次元オブジェクトに浸けた指や手で粘土を押す操作が検出された場合に、粘土の粘性を向上させてもよい。
また、レコード盤を模した3次元オブジェクト(以下、単に「レコード盤」という)を操作対象とする場合、押す操作に応じてレコード盤が支点を中心として回転するとともに、音を再生するようにしてもよい。回転と音の再生を連動させることにより、ディスクジョッキーによるスクラッチ等の技法を仮想的に実現してもよい。
表示装置1を、電子的なカタログを利用した商品販売に適用する例について説明する。図40から図44は、表示装置1を、電子的なカタログを利用した家電製品および家具の販売に適用する例について説明するための図である。
図40は、購入する商品を設置する部屋の中で電子的なカタログを表示する例を示す図である。画像P1hは、部屋の中で電子的なカタログを持つために利用者が手H2を前方へ延ばしているときに撮影部40によって得られる画像、すなわち、現実の空間を右目で見た光景に相当する画像である。画像P1hには、部屋の壁際に置かれたソファ61と、向かい側の壁際の隅に置かれた台62と、利用者の手H2とが写っている。表示装置1は、同じ場面を撮影部42によって撮影した画像、すなわち、現実の空間を左目で見た光景に相当する画像も取得する。
画像P2hは、仮想空間データ24dおよびオブジェクトデータ24bに基づいて生成される右目用の画像である。この例において、仮想空間データ24dは、部屋の壁、床、および天井に対応する3次元オブジェクトの状態に関する情報と、利用者の手H2の位置に配置されたカタログ63の3次元オブジェクトの状態に関する情報とを保持し、オブジェクトデータ24bは、各3次元オブジェクトの形状および性質に関する情報を保持する。表示装置1は、同様に、仮想空間を左目の視点で見た画像も生成する。
表示装置1は、画像P1hおよび画像P2hを合成して、画像P3hを生成する。画像P3hにおいては、カタログ63の3次元オブジェクトが、手H2の上で広げられているように表示されている。また、壁、床、および天井に対応する3次元オブジェクトは、それぞれ、表面が、現実の壁、床、および天井の表面と一致するように仮想空間に配置される。さらに、壁、床、および天井に対応する3次元オブジェクトは、それぞれ、表面が、現実の壁、床、および天井の表面と同様の外観を有するように構成される。このため、画像P3hにおいては、部屋の壁、床、および天井については、現実の表面と3次元オブジェクトの表面のどちらが上に表示されていても利用者には見分けがつかない。
表示装置1は、同様に、撮影部42によって撮影した画像と仮想空間を左目の視点から見た画像とを合成し、左目用の画像として表示部32bに表示される画像を生成する。表示装置1は、こうして生成した合成画像を表示部32aおよび32bに表示する。その結果、利用者は、あたかも、部屋の中で、カタログ63の3次元オブジェクトを手H2の上で広げているかのような光景を見ることができる。
図41は、カタログから商品を選択する場面について説明するための図である。図41のステップS111として、利用者は、カタログ63の3次元オブジェクトを所望の商品が掲載されたページが開かれた状態で手H2の上に乗せている。カタログ63のそれぞれのページには、商品の3次元オブジェクトが、縮小され、平面状に押しつぶされた状態で配置されている。ステップS112では、利用者は、手H1の2本の指でページ上の所望の商品の3次元オブジェクトを摘んでいる。2本の指で摘むことにより、3次元オブジェクトは、選択され、手H1の移動に応じて移動する状態となる。
ステップS113において、利用者は、3次元オブジェクトを摘んだままで、手H1をカタログ63から離している。その結果、縮小されていた3次元オブジェクトは、カタログ63のページから引きはがされる。引きはがされた3次元オブジェクトは、実際の商品と同じ大きさに拡大し、テレビ64の3次元オブジェクトになる。カタログに掲載される商品の3次元オブジェクトは、重量が0であると定義されている。このため、利用者は、重力の影響を考慮せずに、テレビ64の3次元オブジェクトを扱うことができる。
図42は、テレビの大きさと設置場所を検討する場面について説明するための図である。テレビ64に対応する現実のテレビは、同一デザインでサイズ違いの複数の機種を含んでいる。テレビ64の3次元オブジェクトは、カタログ63のページから引きはがされた段階では、最も小型の機種と同じサイズとなっている。図42のステップS121として、利用者は、テレビ64の3次元オブジェクトの一方の端部を手H1の指で摘み、他方の端部を手H2の指で摘んでいる。
ステップS122では、利用者は、テレビ64の3次元オブジェクトを摘んだままで、手H1と手H2の距離を広げている。手H1と手H2の距離の変化に応じて、テレビ64の3次元オブジェクトのサイズが変更される。利用者は、テレビ64の3次元オブジェクトの大きさが所望の大きさになると、利用者が指の間隔を広げてテレビ64の3次元オブジェクトを解放する。表示装置1は、テレビ64の3次元オブジェクトを、対応するテレビの機種のうち、現在の3次元オブジェクトの大きさに最も近い機種のサイズにリサイズする。このように、利用者は、簡単な操作によって、商品のサイズを容易に選択することができる。
その後、利用者は、テレビ64の3次元オブジェクトを、所望の位置の所望の高さに移動させる。商品の3次元オブジェクトは、重量が0であると定義されているため、移動させた3次元オブジェクトは、ステップS123のように、利用者が手を離してもその場に留まる。ステップS124では、利用者は、ソファ61に腰掛けて、対向する壁際に浮いているテレビ64の3次元オブジェクトの位置および高さを確認している。テレビ64の3次元オブジェクトは、実際のテレビと同じ大きさを持ち、利用者の部屋と重ねて任意の位置に浮かせておくことができる。このため、利用者は、テレビをどのように設置するかを、テレビを購入する前に、実際に利用する環境で検討することができる。
図43は、テレビ台を選択する場面について説明するための図である。図43のステップS131として、利用者は、ソファ61に腰掛けたままで、カタログ63の3次元オブジェクトを手H2に持ち、テレビ台のページを開いている。
カタログデータ24eにおいては、テレビとテレビ台とが関連する商品であることが定義されている。さらに、カタログデータ24eには、それぞれのテレビ台の実際の寸法が登録されている。これらの情報に基づいて、表示装置1は、ステップS131のように、テレビ64の3次元オブジェクトが状況においては、カタログデータ24eに登録されているテレビ台のうち、高さが、床からテレビ64の3次元オブジェクトまでの距離と一致するものを抽出して、テレビ台のページに表示する。このため、利用者は、テレビを現在の3次元オブジェクトの高さに設置することができるテレビ台の中から好みのテレビ台を容易に選択することができる。
ステップS132では、利用者は、カタログ63の3次元オブジェクトを手H1の指で触れることによって所望のテレビ台を選択している。ステップS133では、選択されたテレビ台65の3次元オブジェクトが、テレビ64の3次元オブジェクトの下に表示されている。テレビとテレビ台とが関連する商品であることが定義されているため、表示装置1は、選択されたテレビ台65の3次元オブジェクトを、既に表示しているテレビ64の3次元オブジェクトと対応付けて表示することができる。
図44は、現実の物体を移動させる場面について説明するための図である。例えば、利用者が、台62を別の場所に移動するレイアウト変更を試してみたいものとする。表示装置1は、現実の物体を選択する操作を検出した場合、現実の物体に代えて、現実の物体を模した3次元オブジェクトを表示空間中に表示する。そして、表示装置1は、3次元オブジェクトを移動させる操作を検出すると、操作に従って3次元オブジェクトを移動させる。
利用者は、重力の影響を気にすることなく3次元オブジェクトを容易に移動させることができるとともに、3次元オブジェクトを邪魔にならないように空中に放置することもできる。さらに、現実の物体は、表示空間では見えなくなるものの、現実には元の場所にそのまま留まるため、レイアウト変更を試した後に現実の物体を元の場所に戻す手間も必要ない。
図44に示す画像P1iは、利用者が台62を摘もうとしているときに撮影部40によって得られる画像、すなわち、現実の空間を右目で見た光景に相当する画像である。画像P1iには、部屋の隅に置かれた台62と、利用者の手H1とが写っている。表示装置1は、同じ場面を撮影部42によって撮影した画像、すなわち、現実の空間を左目で見た光景に相当する画像も取得する。
画像P2iは、仮想空間データ24dおよびオブジェクトデータ24bに基づいて生成される右目用の画像である。この段階では、現実の空間において台62が置かれている場所に対応する仮想空間の場所には、壁と床の3次元オブジェクトのみが配置されている。表示装置1は、画像P1iおよび画像P2iを合成して、画像P3iを生成する。表示装置1は、同様に、撮影部42によって撮影した画像と仮想空間を左目の視点から見た画像とを合成し、左目用の画像として表示部32bに表示される画像を生成する。表示装置1は、こうして生成した合成画像を表示部32aおよび32bに表示する。その結果、利用者は、あたかも、部屋の中で、自分が台62を摘もうとしている光景を見ることができる。
図44に示す画像P1jは、利用者が台62を摘んで選択した後に、台62を持ち上げようとしているときに撮影部40によって得られる画像、すなわち、現実の空間を右目で見た光景に相当する画像である。このとき、台62は、実際には持ち上げられずに、当初の場所にそのまま留まっている。
画像P2jは、仮想空間データ24dおよびオブジェクトデータ24bに基づいて生成される右目用の画像である。この段階では、利用者が現実の物体である台62を摘んで選択する操作を行ったために、表示装置1は、台62を模した3次元オブジェクト66を生成している。3次元オブジェクト66を生成するためのオブジェクトデータ24cは、予め記憶部24に記憶されていてもよいし、撮影部40および42が撮影する画像に基づいて動的に生成されてもよい。画像P2jにおいて、3次元オブジェクト66は、利用者の持ち上げる操作応じて、床から離れた位置に配置されている。
表示装置1は、画像P1jおよび画像P2jを合成して、画像P3jを生成する。このとき、表示装置1は、代替となる3次元オブジェクト66が生成されている台62を表示しないための隠蔽処理を行う。例えば、表示装置1は、台62までの距離を無限遠として処理する。この結果、壁、床、天井等の3次元オブジェクトが台62よりも手前に表示され、台62は、それらの背後に隠される。
次に、図45を参照しながら、発注処理の処理手順について説明する。図45に示す発注処理は、制御部22が、制御プログラム24aを実行することによって実現される。
図45に示すように、制御部22は、まず、ステップS201として、カタログデータ24eを初期設定する。続いて、制御部22は、ステップS202として、カタログの3次元オブジェクトを含む仮想空間の画像と現実の空間の画像とを合成して表示する。
制御部22は、ステップS203として、3次元オブジェクトに対する操作を検出する。そして、制御部22は、ステップS204として、検出された操作が、発注を実行するための操作であるかを判定する。検出された操作が、発注を実行するための操作でない場合(ステップS204,No)、制御部22は、ステップS205へ進む。
ステップS205で、制御部22は、検出された操作の対象が3次元オブジェクトであるかを判定する。検出された操作の対象が3次元オブジェクトである場合(ステップS205,Yes)、制御部22は、ステップS206へ進む。検出された操作の対象が3次元オブジェクトでない場合(ステップS205,No)、制御部22は、ステップS208へ進む。
ステップS206で、制御部22は、操作に応じてカタログに表示する商品を変更する。さらに、制御部22は、ステップS207として、操作に応じて表示を更新する。その後、制御部22は、ステップS203へ戻る。
ステップS208で、制御部22は、操作の対象となった現実の物体を表示しないための隠蔽処理を行う。さらに、制御部22は、ステップS209として、操作の対象となった現実の物体の代替となる3次元オブジェクトを仮想空間に追加する。その後、制御部22は、ステップS203へ戻る。
ステップS203で検出された操作が、発注を実行するための操作である場合(ステップS204,Yes)、制御部22は、ステップS210へ進む。制御部22は、ステップS210で、商品を発注するための発注処理を行う。
カタログを用いて購入される商品は、テレビおよびテレビ台に限定されない。例えば、カレンダーや絵画も購入することができる。カレンダーや絵画の3次元オブジェクトは、部屋の壁の任意に位置にかけることができるように構成される。例えば、カーテンも購入できる。表示装置1は、実際のカーテンの遮光性を再現できるように、カーテンの3次元オブジェクトが窓に掛けられるときに、表示部32aおよび32bの明るさを落としてもよい。
表示装置1は、部屋のレイアウト変更を試す場合に、季節による外の景色の変化の影響を確認できるように、部屋の窓の外の景色を3次元オブジェクトによって変更してもよい。表示装置1は、部屋のレイアウト変更を試す場合に、季節および時刻による太陽の高さの変化の影響を確認できるように、表示部32aおよび32bのカラーバランスおよび明るさを利用者が任意に設定できるように構成されてもよい。
なお、上記の各実施例で示した本発明の態様は、本発明の要旨を逸脱しない範囲で任意に変更することができる。また、上記の各実施例を適宜組み合わせてもよい。例えば、上記の実施例で示した制御プログラムは、複数のモジュールに分割されていてもよいし、他のプログラムと統合されていてもよい。
また、上記の実施例では、表示装置が単独で3次元オブジェクトに対する操作を検出することとしたが、表示装置がサーバ装置と協業して3次元オブジェクトに対する操作を検出することとしてもよい。この場合、表示装置は、撮影部が撮影した画像または検出部の検出した情報をサーバ装置へ逐次送信し、サーバ装置が操作を検出して検出結果を表示装置へ通知する。このような構成とすることにより、表示装置の負荷を低減することができる。
1〜4 表示装置
1a 前面部
1b 側面部
1c 側面部
4d 外部装置
13 操作部
16 通信部
22 制御部
24 記憶部
24a 制御プログラム
24b オブジェクトデータ
24c 作用データ
24d 仮想空間データ
24e カタログデータ
25 検出処理部
26 表示オブジェクト制御部
27 視点制御部
28 画像合成部
29 発注処理部
32a、32b 表示部
40、42 撮影部
44 検出部
46 測距部
48 動きセンサ

Claims (6)

  1. ユーザの両目のそれぞれに対応した画像を表示することで、対応するオブジェクトを表示する表示部と、
    前記オブジェクトの現実の空間における使用態様に応じて、該現実の空間における明るさが変化したように、前記表示部の明るさを制御する制御部と
    を備える表示装置。
  2. 前記オブジェクトを操作する現実の物体を検出する検出部をさらに備える請求項1に記載の表示装置。
  3. 前記オブジェクトは遮光性を有するオブジェクトである請求項1または2に記載の表示装置。
  4. 前記現実の空間を撮影する撮影部を備える請求項1ないし3のいずれか1つに記載の表示装置。
  5. ユーザの両目のそれぞれに対応した画像を表示することで、対応するオブジェクトを表示する表示部と、
    前記オブジェクトの現実の空間における使用態様に応じて、該現実の空間における明るさが変化したように、前記表示部の明るさを制御する制御部と、
    情報を送受信するサーバ装置と
    を備えるシステム。
  6. ユーザの両目のそれぞれに対応した画像を表示することで、対応するオブジェクトを表示する表示装置の表示方法であって、
    前記オブジェクトの現実の空間における使用態様に応じて、該現実の空間における明るさが変化したように、前記表示装置の明るさを制御する表示方法。
JP2017075791A 2017-04-06 2017-04-06 表示装置、システムおよび表示方法 Pending JP2017163560A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017075791A JP2017163560A (ja) 2017-04-06 2017-04-06 表示装置、システムおよび表示方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017075791A JP2017163560A (ja) 2017-04-06 2017-04-06 表示装置、システムおよび表示方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2012214954A Division JP6125785B2 (ja) 2012-09-27 2012-09-27 表示装置および制御方法

Publications (1)

Publication Number Publication Date
JP2017163560A true JP2017163560A (ja) 2017-09-14

Family

ID=59857281

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017075791A Pending JP2017163560A (ja) 2017-04-06 2017-04-06 表示装置、システムおよび表示方法

Country Status (1)

Country Link
JP (1) JP2017163560A (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001154781A (ja) * 1999-11-29 2001-06-08 Nec Corp デスクトップ情報装置
JP2003296379A (ja) * 2002-04-05 2003-10-17 Fuontaajiyu:Kk シミュレーション方法
JP2012108842A (ja) * 2010-11-19 2012-06-07 Konica Minolta Holdings Inc 表示システム、表示処理装置、表示方法、および表示プログラム
WO2012105175A1 (ja) * 2011-02-01 2012-08-09 パナソニック株式会社 機能拡張装置、機能拡張方法、機能拡張プログラム、及び集積回路

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001154781A (ja) * 1999-11-29 2001-06-08 Nec Corp デスクトップ情報装置
JP2003296379A (ja) * 2002-04-05 2003-10-17 Fuontaajiyu:Kk シミュレーション方法
JP2012108842A (ja) * 2010-11-19 2012-06-07 Konica Minolta Holdings Inc 表示システム、表示処理装置、表示方法、および表示プログラム
WO2012105175A1 (ja) * 2011-02-01 2012-08-09 パナソニック株式会社 機能拡張装置、機能拡張方法、機能拡張プログラム、及び集積回路

Similar Documents

Publication Publication Date Title
WO2014050959A1 (ja) 表示装置および制御方法
WO2014050957A1 (ja) 表示装置、制御方法および制御プログラム
US8872854B1 (en) Methods for real-time navigation and display of virtual worlds
JP2014072576A (ja) 表示装置および制御方法
US20230093676A1 (en) Virtual reality system and method
US20170352188A1 (en) Support Based 3D Navigation
JP7361502B2 (ja) 立体視効果を調節するためのシステムおよび方法
JP6159069B2 (ja) 表示装置
EP2887322A1 (en) Mixed reality holographic object development
JP6125785B2 (ja) 表示装置および制御方法
WO2014051092A1 (ja) 表示装置、制御方法および制御プログラム
JP2017208820A (ja) 発注システム
JP2014072575A (ja) 表示装置および制御方法
JP6302506B2 (ja) 表示装置、制御方法および制御プログラム
JP2017163560A (ja) 表示装置、システムおよび表示方法
JP6125075B2 (ja) 表示装置、制御方法および制御プログラム
JP2016224959A (ja) 表示装置および制御方法
JP5931680B2 (ja) 表示装置、制御方法および制御プログラム
JP6125076B2 (ja) 表示装置、制御方法および制御プログラム
JP5931681B2 (ja) 表示装置、制御方法および制御プログラム
US20210008461A1 (en) Virtual Puppeteering Using a Portable Device
WO2016057997A1 (en) Support based 3d navigation
GB2605300A (en) Virtual reality system and method

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180329

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20180821