(57)【要約】【課題】ユーザの姿勢などに制約があったとしても仮想空間上の所望の操作が実現しうる仮想オブジェクト出力装置及び仮想オブジェクト出力方法を提供する。【解決手段】仮想オブジェクト出力装置１は、ユーザの身体の動作を検知するセンサ１０３と、ユーザの身体の少なくとも一部を示す第１仮想オブジェクトと、第１仮想オブジェクトによって選択される複数の第２仮想オブジェクトと、を仮想空間上に生成する第１コントローラ１０４と、を備える。第１コントローラ１０４は、動作に応じて、複数の第２仮想オブジェクトから第１仮想オブジェクトによって選択される一つの第２仮想オブジェクトを推定し、所定時間、第１仮想オブジェクトが、推定された一つの第２仮想オブジェクトに接触しない場合、第１仮想オブジェクトが一つの第２仮想オブジェクトに接触するように第１仮想オブジェクトを伸ばす。【選択図】図１
2020144577.tif 000002
【特許請求の範囲】
【請求項１】
ユーザの身体の動作を検知するセンサと、
前記ユーザの身体の少なくとも一部を示す第１仮想オブジェクトと、前記第１仮想オブジェクトによって選択される複数の第２仮想オブジェクトと、を仮想空間上に生成するコントローラと、を備え、
前記第２仮想オブジェクトは、前記第１仮想オブジェクトとの接触により選択され、
前記コントローラは、
前記動作に応じて、前記複数の第２仮想オブジェクトから前記第１仮想オブジェクトによって選択される一つの第２仮想オブジェクトを推定し、
所定時間、前記第１仮想オブジェクトが、推定された前記一つの第２仮想オブジェクトに接触しない場合、前記第１仮想オブジェクトが前記一つの第２仮想オブジェクトに接触するように前記第１仮想オブジェクトを伸ばす
ことを特徴とする仮想オブジェクト出力装置。
【請求項２】
前記センサは、前記ユーザの視線を検知する光学センサを含み、
前記コントローラは、前記光学センサによって検知された前記視線の動きが所定範囲に収まる場合、前記所定範囲に位置する第２仮想オブジェクトを、前記一つの第２仮想オブジェクトとして推定する
ことを特徴とする請求項１に記載の仮想オブジェクト出力装置。
【請求項３】
前記コントローラは、
第１実空間上の物体の配置を取得し、
取得した前記第１実空間上の物体の配置が反映された前記仮想空間を生成し、
前記第１実空間とは異なる第２実空間において検知された前記ユーザの姿勢が、前記第１実空間上の配置に適するように前記第１仮想オブジェクトの姿勢を変換する
ことを特徴とする請求項１または２に記載の仮想オブジェクト出力装置。
【請求項４】
前記コントローラは、
前記複数の第２仮想オブジェクトから前記第１仮想オブジェクトまでの距離がもっとも短い第２仮想オブジェクトを、前記一つの第２仮想オブジェクトとして推定する
ことを特徴とする請求項１に記載の仮想オブジェクト出力装置。
【請求項５】
前記コントローラは、
前記第１仮想オブジェクトの指先の方向を検出し、検出した指先の方向に位置する第２仮想オブジェクトを、前記一つの第２仮想オブジェクトとして推定する
ことを特徴とする請求項１に記載の仮想オブジェクト出力装置。
【請求項６】
請求項１〜５のいずれか１項に記載の仮想オブジェクト出力装置は、ヘッドマウントディスプレイ、眼鏡型デバイスを含むウェアラブルデバイスである。
【請求項７】
ユーザの身体の動作を検知し、
前記ユーザの身体の少なくとも一部を示す第１仮想オブジェクトと、前記第１仮想オブジェクトによって選択される複数の第２仮想オブジェクトと、を仮想空間上に生成し、
前記動作に応じて、前記複数の第２仮想オブジェクトから前記第１仮想オブジェクトによって選択される一つの第２仮想オブジェクトを推定し、
所定時間、前記第１仮想オブジェクトが、推定された前記一つの第２仮想オブジェクトに接触しない場合、前記第１仮想オブジェクトが前記一つの第２仮想オブジェクトに接触するように前記第１仮想オブジェクトを伸ばし、
前記第２仮想オブジェクトは、前記第１仮想オブジェクトとの接触により選択される
ことを特徴とする仮想オブジェクト出力方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想オブジェクト出力装置及び仮想オブジェクト出力方法に関する。
【背景技術】
【０００２】
従来より、仮想環境内におけるユーザのアバタを制御する発明が知られている（特許文献１）。特許文献１に記載された発明は、携帯端末の仮想環境内において、テキスト情報をアバタの活動を制御する制御命令に変換し、変換した制御命令を用いてアバタを制御する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−２５９１９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載された発明は、アバタを制御する方法としてテキスト情報を用いているが、テキスト情報では、簡単な命令しか生成されない。よって、特許文献１に記載された発明は、実空間におけるユーザの複雑な動作を仮想空間に反映させることができない。また、実空間におけるユーザの複雑な動作が仮想空間に反映させたとしても、ユーザの姿勢などに制約がある場合は、ユーザは仮想空間上で所望の操作を行うことは難しい。
【０００５】
本発明は、上記問題に鑑みて成されたものであり、その目的は、ユーザの姿勢などに制約があったとしても仮想空間上の所望の操作が実現しうる仮想オブジェクト出力装置及び仮想オブジェクト出力方法を提供することである。
【課題を解決するための手段】
【０００６】
本発明の一態様に係る仮想オブジェクト出力装置は、ユーザの身体の動作を検知するセンサと、ユーザの身体の少なくとも一部を示す第１仮想オブジェクトと、第１仮想オブジェクトによって選択される複数の第２仮想オブジェクトと、を仮想空間上に生成するコントローラと、を備える。コントローラは、動作に応じて、複数の第２仮想オブジェクトから第１仮想オブジェクトによって選択される一つの第２仮想オブジェクトを推定し、所定時間、第１仮想オブジェクトが、推定された一つの第２仮想オブジェクトに接触しない場合、第１仮想オブジェクトが一つの第２仮想オブジェクトに接触するように第１仮想オブジェクトを伸ばす。
【発明の効果】
【０００７】
本発明によれば、ユーザの姿勢などに制約があったとしても仮想空間上の所望の操作が実現しうる。
【図面の簡単な説明】
【０００８】
【図１】図１は、本発明に係る仮想オブジェクト出力装置の構成の一例を示すブロック図である。
【図２】図２は、車両の構成の一例を示すブロック図である。
【図３】図３は、仮想空間の一例を示すブロック図である。
【図４】図４は、本発明に係る仮想オブジェクト出力装置の一動作例を説明するフローチャートである。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について、図面を参照して説明する。図面の記載において同一部分には同一符号を付して説明を省略する。
【００１０】
仮想オブジェクト出力装置１は、現実空間におけるユーザ１１０の手、指などの動きを検出し、手、指などの動きの情報を、表示デバイス１０６の画面に構築された仮想空間におけるオブジェクト（第１仮想オブジェクト２２０）の動きに反映させる。仮想オブジェクト出力装置１は、第１仮想オブジェクト２２０の動きを、仮想空間における他のオブジェクト（第２仮想オブジェクト２１０）に対する「押す」又は「触れる」などの基本的な物理操作として認識する。
【００１１】
仮想空間の一例として、本実施形態では、図２に示す車両３１０の車室内を用いる。仮想オブジェクト出力装置１は、車両３１０の車室内に設置されたカメラ３０８からカメラ映像（動画及び静止画を含む）を受信し、受信したカメラ映像を表示デバイス１０６に表示する。仮想オブジェクト出力装置１は、ユーザ１１０のアバタを示す第１仮想オブジェクト２２０と、車両３１０の車室内に設置された各種のスイッチ、ナビゲーション画面を仮想的に示す第２仮想オブジェクト２１０とを生成する。そして、仮想オブジェクト出力装置１は、生成した第１仮想オブジェクト２２０と、第２仮想オブジェクト２１０とをカメラ映像に重畳する。また、仮想オブジェクト出力装置１は、ユーザ１１０の動作の検出結果に基づき、仮想空間における第２仮想オブジェクト２１０に対して操作が行われたことを検出した場合に、第２仮想オブジェクト２１０に関連付けられた処理（例えば、車両３１０の窓を開ける）を行うための信号を車両３１０に送信する。
【００１２】
（仮想オブジェクト出力装置の構成例）
図１を参照して、本実施形態に係る仮想オブジェクト出力装置１の構成例について説明する。
【００１３】
図１に示すように、仮想オブジェクト出力装置１は、通信装置１０１と、ベース１０２と、センサ１０３と、第１コントローラ１０４と、動作検出デバイス１０５と、表示デバイス１０６と、を備える。これらは、ユーザ１１０が居るユーザ実空間１００に設置される。
【００１４】
通信装置１０１は、インターネットなどのネットワークに接続して車両３１０との間でデータを送受信するインターフェースである。
【００１５】
ベース１０２は、ユーザ１１０の動作範囲１０９を決定するために用いられる。ベース１０２は対象物の位置情報を検出するセンサを備えており、ベース１０２によって検出されたユーザ１１０の位置情報は、第１コントローラ１０４に送信される。
【００１６】
センサ１０３は、ユーザ実空間１００に居るユーザ１１０の身体の姿勢を検出するためのセンサであり、例えばＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）、ＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）等の撮像素子を有するカメラである。ユーザ１１０の姿勢検出方法の一例として、センサ１０３によって取得されたカラー画像とデプス情報（奥行き情報）に基づいて、ユーザ１１０のスケルトンの形状を推定して、ユーザ１１０の姿勢情報を検出する方法が挙げられる。センサ１０３は、検出したユーザ１１０の姿勢情報を第１コントローラ１０４に送信する。なお、センサ１０３は、表示デバイス１０６に組み込まれていてもよい。
【００１７】
動作検出デバイス１０５は、表示デバイス１０６の画面の仮想空間に配置された仮想物体であるオブジェクトに対して、例えば「押す」、「触れる」などの操作を目的としたユーザ１１０の手、指などの動きを検出し、検出情報を第１コントローラ１０４に送信する。
【００１８】
動作検出デバイス１０５は、筐体がユーザ１１０の手により把持されることで、ユーザ１１０に保持される。また、動作検出デバイス１０５は、加速度センサ、ジャイロセンサ（角速度センサ）等のような筐体の位置や向きの変化を検出するためのセンサを備えている。このような構成により、動作検出デバイス１０５は、筐体の位置や向きの変化の検出結果を、筐体を把持する手の位置や向きの変化を示す情報（すなわち、手の動きを認識するための情報）として取得することが可能となる。
【００１９】
動作検出デバイス１０５は、ユーザ１１０の手、指などの動きを検出することのできるものであればよく、例えば、モーションセンサを搭載したステッィク型のデバイスや、ユーザの手の甲、各指の関節の位置などを検出することのできるグローブ型のデバイスなどが挙げられる。あるいは、１以上のカメラでユーザ１１０の手、指などを撮像して画像認識によってユーザ１１０の手、指などの動きを検出してもよい。
【００２０】
表示デバイス１０６は、いわゆる頭部装着型のヘッドマウントディスプレイ（ＨＭＤ）である。表示デバイス１０６は、ユーザ１１０の頭部に装着されることで、ユーザ１１０の眼前に、画像を表示するためのディスプレイを保持するように構成される。また、表示デバイス１０６には、ユーザ１１０の視線の動きを検出するためのセンサも含まれる。なお、表示デバイス１０６は、ウェアラブル型ディスプレイであればよく、眼鏡型デバイスでもよく、ブレスレット型ディスプレイでもよい。
【００２１】
表示デバイス１０６として適用可能な頭部装着型のヘッドマウントディスプレイには、没入型ＨＭＤ、及びシースルー型ＨＭＤが含まれる。
【００２２】
没入型ＨＭＤは、ユーザ１１０の頭部または顔部に装着された場合に、ユーザ１１０の眼を覆うように装着され、ユーザ１１０の眼前にディスプレイが保持される。そのため、没入型ＨＭＤを装着したユーザ１１０は、外部の風景（現実世界の風景）を直接視野に入れることが困難であり、ディスプレイに表示された映像のみが視界に入ることとなる。このような構成により、没入型ＨＭＤは、画像を視聴しているユーザ１１０に対して没入感を与えることが可能となる。
【００２３】
シースルー型ＨＭＤは、例えば、ハーフミラーや透明な導光板を用いて、透明な導光部等からなる虚像光学系をユーザ１１０の眼前に保持し、虚像光学系の内側に画像を表示させる。そのため、シースルー型ＨＭＤを装着したユーザ１１０は、虚像光学系の内側に表示された画像を視聴している間も、外部の風景を視野に入れることが可能となる。なお、シースルー型ＨＭＤの具体的な一例として、眼鏡のレンズに相当する部分を虚像光学系として構成した、眼鏡型デバイスが挙げられる。
【００２４】
また、表示デバイス１０６がウェアラブル型である場合、例えば、加速度センサ、ジャイロセンサが設けられ、表示デバイス１０６を装着したユーザ１１０の頭部の動き（頭部の姿勢）を検出可能に構成されていてもよい。一例として、表示デバイス１０６は、ユーザ１１０の頭部の動きとして、ヨー方向、ピッチ方向、及びロール方向それぞれの成分を検出する。そして、表示デバイス１０６は、検出したユーザ１１０の頭部の動きに基づき、ユーザ１１０の視線が示す方向の変化を認識し、認識した視線方向の変化に応じた画像をユーザ１１０に提示してもよい。このような構成に基づき、例えば、ユーザ１１０の視線方向の変化に応じて仮想空間内の映像をユーザ１１０に提示することで、ユーザ１１０に対して、あたかも仮想空間内にいるような没入感を与えることが可能となる。
【００２５】
また、表示デバイス１０６に設けられた加速度センサ、ジャイロセンサは、ユーザ１１０の姿勢を検出することも可能である。ジャイロセンサは、各軸回り（ヨー方向、ピッチ方向、及びロール方向）の角度（傾き）を検出し、加速度センサは、表示デバイス１０６の動きを検知し、検出された角度及び検知された動きを用いて、ユーザ１１０の姿勢を特定することができる。このようにユーザ１１０の姿勢を検出する手段は、センサ１０３に限定されない。
【００２６】
また、表示デバイス１０６は、光学センサ（カメラ）を含んでもよい。表示デバイス１０６は、光学センサを用いてユーザ１１０の視線をトラッキングすることができる。なお、表示デバイス１０６は、近接センサを含んでもよい。近接センサは、ゴーグル部分に設置され、ユーザ１１０の顔部との接触有無を判定するために用いられる。
【００２７】
第１コントローラ１０４は、通信装置１０１、ベース１０２、センサ１０３、動作検出デバイス１０５、及び表示デバイス１０６と無線あるいは有線により通信することが可能である。第１コントローラ１０４は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などにより構成されるメインメモリとを含む。第１コントローラ１０４はメインメモリを作業領域として用いてプログラムを実行し、ＶＲなどの仮想空間の表示に関する情報処理を行う。第１コントローラ１０４は、プログラムを実行して演算処理を行うことが可能なものであればよく、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、ゲーム機、サーバ装置、スマートフォンなどでもよい。なお、第１コントローラ１０４は、表示デバイス１０６に組み込まれていてもよい。
【００２８】
第１コントローラ１０４は、ベース１０２から受信したユーザ１１０の位置情報に基づいて、ユーザ１１０の動作範囲１０９を決定する。動作範囲１０９とは、仮想空間に反映可能な動作範囲をいう。つまり、動作範囲１０９内において、動作検出デバイス１０５によって検出されたユーザ１１０の動作が仮想空間に反映される。また、第１コントローラ１０４は、動作検出デバイス１０５により検出された情報に基づき、第１コントローラ１０４はユーザ１１０の動きを認識することが可能となるため、ユーザ１１０の動きの認識結果を各種制御に利用することが可能となる。
【００２９】
次に、図２を参照して、車両３１０について説明する。図２に示すように、車両３１０は、通信装置３０６と、第２コントローラ３０５と、運転者、他の乗員が座るシート３０７と、車室内を撮像するカメラ３０８と、エアコン３０１と、窓３０２と、ナビゲーション装置３０３と、ルームランプ３０４とを備える。車両３１０は、ユーザ実空間１００とは異なる車両実空間３００に存在する。
【００３０】
通信装置３０６は、インターネットなどのネットワークに接続して通信装置１０１との間でデータを送受信するインターフェースである。具体的には、通信装置３０６は、通信装置１０１にカメラ３０８によって撮像されたカメラ映像を送信する。また、通信装置３０６は、通信装置１０１からエアコン３０１のオンオフを切り替えたり、窓３０２を開閉したりするための信号を受信する。
【００３１】
第２コントローラ３０５は、第１コントローラ１０４と同様に、ＣＰＵ及びメモリを備え、プログラムを実行して演算処理を行う。第２コントローラ３０５は通信装置１０１からエアコン３０１のオンオフを切り替える信号を受信すると、エアコン３０１のオンオフを切り替える。
【００３２】
次に、図３を参照して、仮想空間２００について説明する。図３に示す仮想空間２００は、車両３１０の車室内を仮想的に示す空間であり、カメラ３０８によって撮像されたカメラ映像に第１仮想オブジェクト２２０及び第２仮想オブジェクト２１０が重畳される。第１仮想オブジェクト２２０とは、図３に示すように、ユーザ１１０の動作を反映させた、いわゆるユーザ１１０のアバタであり、仮想空間２００における仮想的なオブジェクトである。第２仮想オブジェクト２１０とは、図３に示す仮想エアコンスイッチ２０１、仮想窓スイッチ２０２、仮想ナビゲーション画面２０３、仮想ルームランプスイッチ２０４である。これらは車両３１０の車室内に設置されたエアコン３０１と、窓３０２と、ナビゲーション装置３０３と、ルームランプ３０４を仮想的に示すオブジェクトである。
【００３３】
（仮想オブジェクト出力装置の動作例）
次に、仮想オブジェクト出力装置１による、仮想空間の処理方法の一例について説明する。
【００３４】
第１コントローラ１０４は、車両３１０の車室内に設置されたカメラ３０８から、カメラ映像を受信する。第１コントローラ１０４は、受信したカメラ映像を表示デバイス１０６に表示する。仮想オブジェクト出力装置１は、ユーザ１１０のアバタを示す第１仮想オブジェクト２２０と、第２仮想オブジェクト２１０とを生成する。そして、仮想オブジェクト出力装置１は、生成した第１仮想オブジェクト２２０と、第２仮想オブジェクト２１０とをカメラ映像に重畳する。第１仮想オブジェクト２２０は、センサ１０３によって検出されたユーザ１１０の姿勢及び動作検出デバイス１０５によって検出されたユーザ１１０の動作に基づいて生成される仮想的なオブジェクトであり、ユーザ１１０の身体の少なくとも一部を示す。
【００３５】
第１コントローラ１０４は、ユーザ１１０の動作を検出すると、検出した動きを第１仮想オブジェクト２２０に反映させる。例えば、ユーザ１１０が手を伸ばすと、第１仮想オブジェクト２２０の手に相当する部分も伸びる。ユーザ１１０は、動作検出デバイス１０５を用いた自身の手の入力により、仮想空間２００における仮想的な手を操作することができ、仮想的な手を介して仮想空間２００内の第２仮想オブジェクト２１０に対して操作を行うことが可能となる。なお、図３に示す例では、第１仮想オブジェクト２２０は、ユーザ１１０の全身が反映されているが、これに限定されない。第１仮想オブジェクト２２０には、ユーザ１１０の身体の一部、例えば手（腕）のみが反映されてもよい。
【００３６】
図３に示す仮想エアコンスイッチ２０１、仮想窓スイッチ２０２、仮想ナビゲーション画面２０３、仮想ルームランプスイッチ２０４は、カメラ３０８から受信したカメラ映像に対して、車両３１０に配置された位置と同じ位置になるように重畳される。
【００３７】
第１コントローラ１０４は、ユーザ１１０の動作の検出結果に基づき、仮想空間２００内において第１仮想オブジェクト２２０により第２仮想オブジェクト２１０に対して操作が行われたことを認識した場合に、第２仮想オブジェクト２１０に関連付けられた処理を開始する。具体的には、ユーザ１１０の動作が反映された第１仮想オブジェクト２２０が仮想エアコンスイッチ２０１を選択すれば、仮想エアコンスイッチ２０１が選択されたことを示す信号が通信装置３０６を介して第２コントローラ３０５に送信される。この信号を受信した第２コントローラ３０５は、エアコン３０１のオンオフを切り替えたり、空調の温度の上げ下げを制御したりする。同様に、第１仮想オブジェクト２２０が仮想窓スイッチ２０２を選択すれば、仮想窓スイッチ２０２が選択されたことを示す信号が通信装置３０６を介して第２コントローラ３０５に送信される。この信号を受信した第２コントローラ３０５は窓３０２を開けたり閉めたりする。同様に、第１仮想オブジェクト２２０が仮想ナビゲーション画面２０３を選択すれば、仮想ナビゲーション画面２０３が選択されたことを示す信号が通信装置３０６を介して第２コントローラ３０５に送信される。この信号を受信した第２コントローラ３０５は、ナビゲーション装置３０３の選択部分に関連付けられた処理を実行する。同様に、第１仮想オブジェクト２２０が仮想ルームランプスイッチ２０４を選択すれば、仮想ルームランプスイッチ２０４が選択されたことを示す信号が通信装置３０６を介して第２コントローラ３０５に送信される。この信号を受信した第２コントローラ３０５は、ルームランプ３０４のオンオフを切り替える。このように本実施形態によれば、ユーザ１１０が車室内に居なくても、ユーザ１１０はエアコン３０１のオンオフを切り替えたり、窓３０２を開けたり閉めたりすることができる。運転者が運転に集中しているときは、ユーザ１１０が代わりにエアコン３０１などを操作することにより、運転者の負荷は軽減する。なお、第２コントローラ３０５が、通信装置３０６を介して受信した信号に基づいて窓３０２を開けた場合、窓３０２の開放は仮想空間２００にも反映され、仮想空間２００の窓が開く。仮想空間２００の窓が開いたことを見たユーザ１１０は、自身の操作が実際の車両３１０に反映されたことを知ることができる。
【００３８】
ここで、第１仮想オブジェクト２２０による第２仮想オブジェクト２１０の選択とは、第１仮想オブジェクト２２０と第２仮想オブジェクト２１０とが接触したことを指す。第１仮想オブジェクト２２０の手（腕）に相当する部分が伸びて、第１仮想オブジェクト２２０の手に相当する部分と、第２仮想オブジェクト２１０とが接触することにより、選択されたと認識され、選択されたことを示す信号が通信装置３０６を介して第２コントローラ３０５に送信される。なお、第１仮想オブジェクト２２０と第２仮想オブジェクト２１０とは、仮想空間上のオブジェクトであるため、第１仮想オブジェクト２２０と第２仮想オブジェクト２１０との接触は、必ずしも直接的な接触のみを意味しない。例えば、第１仮想オブジェクト２２０と第２仮想オブジェクト２１０とが近接する場合、あるいは、第１仮想オブジェクト２２０と第２仮想オブジェクト２１０との距離が所定距離以下になった場合に、第１仮想オブジェクト２２０と第２仮想オブジェクト２１０と接触したと判定されてもよい。
【００３９】
ユーザ実空間１００に居るユーザ１１０の姿勢が、車室内の環境に適切でない場合がある。例えば、図１に示すユーザ１１０の姿勢は、仰向けで寝ている姿勢であるのに対し、図２に示す車室内のシート３０７の背もたれは起き上がっている。したがって、図１に示すユーザ実空間１００に居るユーザ１１０の姿勢をそのまま図３に示す仮想空間に反映させた場合、ユーザ１１０の姿勢は、図２に示す車両実空間３００における車室内のシート３０７を図３に示す仮想空間に反映されたシート２０７に適合しない。ユーザ１１０の上半身は、背もたれからはみ出ることになる。このように、ユーザ実空間１００におけるユーザ１１０の姿勢を、仮想空間２００に反映した場合において、仮想空間２００で適した姿勢ではない場合に、第１コントローラ１０４は姿勢が適切ではないと判断する。姿勢が適切でない場合、第１コントローラ１０４は適切となるように姿勢のキャリブレーションを行う。具体的には第１コントローラ１０４はカメラ映像から背もたれの角度を取得し、取得した角度に基づいて、第１コントローラ１０４は第１仮想オブジェクト２２０が仮想空間２００上のシート２０７に座っている姿勢となるように、姿勢のキャリブレーションを行う。なお、ユーザ実空間１００に居るユーザ１１０の姿勢が、車室内の環境に適切である場合、第１コントローラ１０４は姿勢のキャリブレーションを行わない。ユーザ実空間１００に居るユーザ１１０の姿勢が、車室内の環境に適切である場合とは、例えば、ユーザ１１０の姿勢がシート２０７に座っているような姿勢である場合をいう。シート３０７の背もたれの角度は、カメラ３０８により取得されたカメラ映像を取得することにより検知することとしたが、第１コントローラ１０４は、シート３０７に備えられた背もたれの角度を検知するセンサ（図示しない）により計測されたデータを、通信装置３０６及び通信装置１０１を経由して取得することにより、背もたれの角度を検知する構成とすることも可能である。
【００４０】
ここで、第１仮想オブジェクト２２０のユーザ１１０の手（腕）に相当する部分が伸びて仮想窓スイッチ２０２を選択したと仮定する。この場合、上述したように仮想窓スイッチ２０２が選択されたことを示す信号が通信装置３０６を介して第２コントローラ３０５に送信される。ただし、ユーザ１１０の動作範囲１０９が狭い場合、ユーザ１１０が手を伸ばせる範囲は限定され、仮想窓スイッチ２０２を選択しようとして手を伸ばしても、仮想窓スイッチ２０２に第１仮想オブジェクト２２０のユーザ１１０の手（腕）に相当する部分が届かないことが想定される。また、ユーザ１１０の身体上の問題（例えば麻痺）により、ユーザ１１０が手を少ししか伸ばせない場合、仮想窓スイッチ２０２を選択しようとして手を伸ばしても、仮想窓スイッチ２０２に第１仮想オブジェクト２２０のユーザ１１０の手（腕）に相当する部分が届かないことが想定される。
【００４１】
このような場合、第１コントローラ１０４は、第１仮想オブジェクト２２０のユーザ１１０の手（腕）に相当する部分を伸ばすことにより、課題を解決することが可能である。これは、現実では手がこれ以上伸びない場合であっても、第１仮想オブジェクト２２０は仮想的なオブジェクトであり、現実と同様な制限を受けないため、可能な処理である。この処理について以下詳細に説明する。まず、第１コントローラ１０４は、ユーザ１１０の動作に応じて、ユーザ１１０が操作したい仮想スイッチがどのスイッチなのか推定する。
【００４２】
推定手法として、ユーザ１１０の視線を用いる方法が挙げられる。表示デバイス１０６に設けられた光学センサ（カメラ）を用いてユーザ１１０の視線をトラッキングする。このような技術は、アイトラッキングと呼ばれる。アイトラッキングにおいて、視点の場所(どこを見ているのか)、頭部に対する眼の動きを計測・追跡する。光学センサによって検知された視線の動きが所定範囲に収まる場合、第１コントローラ１０４は所定範囲に位置する第２仮想オブジェクト２１０を、ユーザ１１０が操作したい第２仮想オブジェクト２１０として推定する。ユーザ１１０は操作したい第２仮想オブジェクト２１０を注視する傾向があるからである。ここでは、ユーザ１１０が操作したい第２仮想オブジェクト２１０を、仮想窓スイッチ２０２として説明する。
【００４３】
なお、推定方法は、アイトラッキングに限定されない。例えば、第１コントローラ１０４は第１仮想オブジェクト２２０の指先の方向を検出し、検出した指先の方向に位置する第２仮想オブジェクト２１０を、ユーザ１１０が操作したい第２仮想オブジェクト２１０として推定してもよい。また、第１コントローラ１０４は第１仮想オブジェクト２２０から、第２仮想オブジェクト（２０１〜２０４）までの距離を測定し、測定した距離がもっとも短い第２仮想オブジェクトを、ユーザ１１０が操作したい第２仮想オブジェクトとして推定してもよい。
【００４４】
ユーザ１１０が操作したい第２仮想オブジェクトを、仮想窓スイッチ２０２と推定した後、第１コントローラ１０４は、仮想窓スイッチ２０２に向かってユーザ１１０が手を伸ばしている状態が所定時間継続しているか検出する。その理由は、仮想窓スイッチ２０２に向かってユーザ１１０が所定時間手を伸ばしているということは、ユーザ１１０が仮想窓スイッチ２０２を選択したい意思を表していると想定されるからである。
【００４５】
仮想窓スイッチ２０２に向かってユーザ１１０が所定時間手を伸ばしている場合、第１コントローラ１０４は、仮想窓スイッチ２０２を加工して、仮想窓スイッチ２０２を点滅させる。点滅させる理由は、ユーザ１１０が選択したいオブジェクトを再度確認するためである。第１コントローラ１０４は、仮想窓スイッチ２０２の点滅を見たユーザ１１０に対して、音声で「選択したいスイッチは、点滅しているスイッチですか？」と聞く。なお、ユーザ１１０への確認方法は、仮想空間２００上で、文字で「選択したいスイッチは、点滅しているスイッチですか？」と表示してもよい。
【００４６】
第１コントローラ１０４からの確認に対し、ユーザ１１０は首を縦に振ることにより、肯定を示すことができる。ユーザ１１０が首を縦に振った動きは、表示デバイス１０６によって検知され、第１コントローラ１０４に情報が送信される。第１コントローラ１０４は、ユーザ１１０が首を縦に振った動きが検知されたため、点滅させた仮想窓スイッチ２０２がユーザ１１０が選択したいスイッチである、と判定する。
【００４７】
なお、肯定方法は、首の動きに限定されない。例えば第１コントローラ１０４は、ユーザ１１０の音声データを解析することにより、肯定か否かを判定してもよい。例えば、ユーザ１１０の「はい」という音声が入力された場合、第１コントローラ１０４は点滅させた仮想窓スイッチ２０２がユーザ１１０が選択したいスイッチである、と判定してもよい。
【００４８】
ユーザ１１０の肯定を判定した後、第１コントローラ１０４は、第１仮想オブジェクト２２０を加工して、第１仮想オブジェクト２２０の手に相当する部分を伸ばす。これにより、第１仮想オブジェクト２２０の手に相当する部分は、今まで届かなかった仮想窓スイッチ２０２に接触し、仮想窓スイッチ２０２が選択される。
【００４９】
次に、図４のフローチャートを参照して、仮想オブジェクト出力装置１の一動作例を説明する。
【００５０】
ステップＳ１０１において、センサ１０３は、ユーザ実空間１００に居るユーザ１１０の身体の姿勢を検出する。処理はステップＳ１０３に進み、第１コントローラ１０４は車両３１０の車室内に設置されたカメラ３０８からカメラ映像を受信する。第１コントローラ１０４は、受信したカメラ映像を表示デバイス１０６に表示する。仮想オブジェクト出力装置１は、ユーザ１１０のアバタを示す第１仮想オブジェクト２２０と、第２仮想オブジェクト２１０とを生成する。そして、仮想オブジェクト出力装置１は、生成した第１仮想オブジェクト２２０と、第２仮想オブジェクト２１０とをカメラ映像に重畳する。
【００５１】
処理はステップＳ１０５に進み、第１コントローラ１０４はユーザ１１０の姿勢が適切か否かを判定する。ユーザ実空間１００におけるユーザ１１０の姿勢を、仮想空間２００に反映した場合において、仮想空間２００で適した姿勢ではない場合に、第１コントローラ１０４は姿勢が適切ではないと判断する。姿勢が適切でない場合（ステップＳ１０５でＮｏ）、第１コントローラ１０４は適切となるように姿勢のキャリブレーションを行う（ステップＳ１０７）。姿勢が適切である場合（ステップＳ１０５でＹｅｓ）、処理はステップＳ１０９に進む。
【００５２】
ステップＳ１０９において、第１コントローラ１０４は表示デバイス１０６に設けられた光学センサを用いてユーザ１１０の視線をトラッキングする。光学センサによって検知された視線の動きが所定範囲に収まる場合（ステップＳ１１１でＹｅｓ）、第１コントローラ１０４は所定範囲に位置する第２仮想オブジェクトを、ユーザ１１０が操作したい第２仮想オブジェクトとして推定する（ステップＳ１１３）。なお、光学センサによって検知された視線の動きが所定範囲に収まらない場合（ステップＳ１１１でＮｏ）、一連の処理は終了する。このフローチャートにおいて、ユーザ１１０が操作したい第２仮想オブジェクトを、仮想窓スイッチ２０２として説明する。
【００５３】
処理はステップＳ１１５に進み、第１コントローラ１０４は仮想窓スイッチ２０２に向かってユーザ１１０が手を伸ばしているかを、動作検出デバイス１０５から受信した情報に基づいて判定する。仮想窓スイッチ２０２に向かってユーザ１１０が手を伸ばしている場合（ステップＳ１１５でＹｅｓ）、第１コントローラ１０４は仮想窓スイッチ２０２に向かってユーザ１１０が手を伸ばしている状態が所定時間継続しているか検出する。仮想窓スイッチ２０２に向かってユーザ１１０が所定時間手を伸ばしている場合（ステップＳ１１７でＹｅｓ）、第１コントローラ１０４は、ステップＳ１１３で推定された仮想窓スイッチ２０２を加工して、仮想窓スイッチ２０２を点滅させる（ステップＳ１１９）。そして、第１コントローラ１０４は仮想窓スイッチ２０２の点滅を見たユーザ１１０に対して、音声で「選択したいスイッチは、点滅しているスイッチですか？」と聞く。
【００５４】
処理はステップＳ１２１に進み、表示デバイス１０６によってユーザ１１０が首を縦に振ったことが検知された場合（ステップＳ１２１でＹｅｓ）、第１コントローラ１０４は点滅させた仮想窓スイッチ２０２がユーザ１１０が選択したいスイッチである、と判定する。
【００５５】
その後処理はステップＳ１２３に進み、第１コントローラ１０４は、第１仮想オブジェクト２２０を加工して、第１仮想オブジェクト２２０の手に相当する部分を伸ばす。これにより、第１仮想オブジェクト２２０の手に相当する部分は、今まで届かなかった仮想窓スイッチ２０２に接触し、仮想窓スイッチ２０２が選択される（ステップＳ１２５でＹｅｓ）。そして仮想窓スイッチ２０２が選択されたことを示す信号が通信装置３０６を介して第２コントローラ３０５に送信される。この信号を受信した第２コントローラ３０５は、窓３０２を開けたり閉めたりする。第２コントローラ３０５が、通信装置３０６を介して受信した信号に基づいて窓３０２を開けた場合、窓３０２の開放は仮想空間２００にも反映され、仮想空間２００の窓が開く。仮想空間２００の窓が開いたことを見たユーザ１１０は、自身の操作が実際の車両３１０に反映されたことを知ることができる。
【００５６】
（作用効果）
以上説明したように、本実施形態に係る仮想オブジェクト出力装置１によれば、以下の作用効果が得られる。
【００５７】
仮想オブジェクト出力装置１は、ユーザ１１０の身体の動作を検知するセンサ１０３と、ユーザ１１０の身体の少なくとも一部を示す第１仮想オブジェクト２２０と、第１仮想オブジェクト２２０によって選択される複数の第２仮想オブジェクト２１０（仮想エアコンスイッチ２０１、仮想窓スイッチ２０２、仮想ナビゲーション画面２０３、仮想ルームランプスイッチ２０４）と、を仮想空間２００上に生成する第１コントローラ１０４と、を備える。第２仮想オブジェクト２１０は、第１仮想オブジェクト２２０との接触により選択される。なお、上述したように第１仮想オブジェクト２２０と第２仮想オブジェクト２１０との接触は、必ずしも直接的な接触のみを意味しない。例えば、第１仮想オブジェクト２２０と第２仮想オブジェクト２１０とが近接する場合、あるいは、第１仮想オブジェクト２２０と第２仮想オブジェクト２１０との距離が所定距離以下になった場合に、第１仮想オブジェクト２２０と第２仮想オブジェクト２１０と接触したと判定されてもよい。第１コントローラ１０４は、ユーザ１１０の動作に応じて、複数の第２仮想オブジェクト２１０から第１仮想オブジェクト２２０によって選択される一つの第２仮想オブジェクト２１０を推定する。そして、第１コントローラ１０４は、所定時間、第１仮想オブジェクト２２０が、推定された一つの第２仮想オブジェクト２１０に接触しない場合、第１仮想オブジェクト２２０が一つの第２仮想オブジェクト２１０に接触するように第１仮想オブジェクト２２０の手に相当する部分を伸ばす。これにより、ユーザ１１０の姿勢などに制約があったとしても仮想空間２００上の所望の操作が実現しうる。例えば、ユーザ１１０の身体上の問題（例えば麻痺）により、ユーザ１１０が手を少ししか伸ばせないなどユーザ１１０の姿勢、動作に制約があったしても、ユーザ１１０は姿勢、動作を変更することなく、仮想空間２００上の所望の操作が実現しうる。また、ユーザ１１０の動作範囲１０９が狭く、ユーザ１１０が手を伸ばせる範囲が限定される場合でも、ユーザ１１０は姿勢、動作を変更することなく、仮想空間２００上の所望の操作が実現しうる。
【００５８】
表示デバイス１０６は、ユーザ１１０の視線を検知する光学センサを含む。第１コントローラ１０４は、光学センサによって検知された視線の動きが所定範囲に収まる場合、所定範囲に位置する第２仮想オブジェクト２１０を、一つの第２仮想オブジェクト２１０として推定する。ユーザ１１０は、操作したい第２仮想オブジェクト２１０を注視する傾向があるため、第１コントローラ１０４はユーザ１１０の視線情報を用いることにより、精度よくユーザ１１０が操作したい第２仮想オブジェクト２１０を推定することができる。
【００５９】
また、第１コントローラ１０４は、第１実空間上の物体の配置を取得し、取得した第１実空間上の物体の配置が反映された仮想空間を生成し、第１実空間とは異なる第２実空間において検知されたユーザ１１０の姿勢が、第１実空間上の配置に適するように第１仮想オブジェクト２２０の姿勢を変換する。第１実空間上の物体の配置とは、例えば、図２に示すように、車両３１０のシート３０７の配置である。第１コントローラ１０４は、図３に示すように取得したシート３０７の配置が反映された仮想空間２００を生成する。第２実空間とは、例えば図１に示すユーザ実空間１００である。ユーザ実空間１００に居るユーザ１１０の姿勢が、車室内の環境に適切でない場合がある。例えば、図１に示すユーザ１１０の姿勢は、仰向けで寝ている姿勢であるのに対し、図２に示す車室内のシート３０７の背もたれは起き上がっている。したがって、ユーザ実空間１００に居るユーザ１１０の姿勢をそのまま車室内に適応すると、背もたれからはみ出ることになる。このように、ユーザ実空間１００におけるユーザ１１０の姿勢を、仮想空間２００に反映した場合において、仮想空間２００で適した姿勢ではない場合に、第１コントローラ１０４は姿勢が適切ではないと判断する。姿勢が適切でない場合、第１コントローラ１０４は適切となるように第１仮想オブジェクト２２０の姿勢を変換する。これにより、ユーザ１１０は姿勢、動作を変更することなく、つまり仰向けの姿勢で仮想空間２００上の第２仮想オブジェクト２１０を操作することができる。
【００６０】
また、第１コントローラ１０４は、複数の第２仮想オブジェクト（２０１〜２０４）から第１仮想オブジェクト２２０までの距離がもっとも短い第２仮想オブジェクトを、一つの第２仮想オブジェクトとして推定してもよい。これにより、第１コントローラ１０４は精度よくユーザ１１０が操作したい第２仮想オブジェクトを推定することができる。
【００６１】
また、第１コントローラ１０４は、第１仮想オブジェクト２２０の指先の方向を検出し、検出した指先の方向に位置する第２仮想オブジェクトを、一つの第２仮想オブジェクトとして推定してもよい。これにより、第１コントローラ１０４は精度よくユーザ１１０が操作したい第２仮想オブジェクトを推定することができる。
【００６２】
また、表示デバイス１０６は、ヘッドマウントディスプレイ、眼鏡型デバイスを含むウェアラブルデバイスである。表示デバイス１０６はユーザ１１０の頭部または顔部に装着された場合に、ユーザ１１０の眼を覆うように装着されるため、ユーザ１１０に対して没入感を与えることが可能となる。
【００６３】
上述の実施形態に記載される各機能は、１または複数の処理回路により実装され得る。処理回路は、電気回路を含む処理装置等のプログラムされた処理装置を含む。処理回路は、また、記載された機能を実行するようにアレンジされた特定用途向け集積回路（ＡＳＩＣ）や回路部品等の装置を含む。
【００６４】
上記のように、本発明の実施形態を記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなろう。
【００６５】
例えば、本発明は、ＶＲに分野に限らず、ＡＲ（Ａｕｇｍｅｎｔｅｄ  Ｒｅａｌｉｔｙ）の分野においても有効である。
【００６６】
また、ユーザ１１０の姿勢が適切か否かについては、車室内に対してユーザ１１０が取りうる姿勢を、予めデータベースとして記憶装置などに記憶しておき、検出したユーザ１１０の姿勢がデータベースに含まれているか否かで判定してもよい。
【００６７】
ユーザ１１０の姿勢が適切か否かについては、第１コントローラ１０４は車室内範囲２０５に対する第１仮想オブジェクト２２０の干渉に基づいて判定してもよい。具体的には車室内範囲２０５に対して第１仮想オブジェクト２２０が干渉する場合、第１コントローラ１０４はユーザ１１０の姿勢は適切でない、と判定してもよい。車室内範囲２０５に対して第１仮想オブジェクト２２０が干渉する場合とは、例えば天井に頭をぶつけてしまうような、立っている状態である。
【００６８】
本実施形態では、仮想空間の一例として車両３１０の車室内を挙げたが、これに限定されない。例えば、電車、飛行機、コンサートホール、映画館、劇場などでも適用可能である。このようなケースでは、座席などでユーザの割り当てられている空間が限定され、許容される姿勢が限定される。したがってそのままの姿勢では操作できないような対象物が存在する場合があるが、本発明を適用することにより、ユーザは姿勢、動作を変更することなく、仮想空間上のオブジェクトを操作することができる。
【符号の説明】
【００６９】
１  仮想オブジェクト出力装置
１００  ユーザ実空間
１０１  通信装置
１０２  ベース
１０３  センサ
１０４  第１コントローラ
１０５  動作検出デバイス
１０６  表示デバイス
２００  仮想空間
２０１  仮想エアコンスイッチ
２０２  仮想窓スイッチ
２０３  仮想ナビゲーション画面
２０４  仮想ルームランプスイッチ
２０５  車室内範囲
２０７、３０７  シート
２１０  第２仮想オブジェクト
２２０  第１仮想オブジェクト
３００  車両実空間
３０１  エアコン
３０２  窓
３０３  ナビゲーション装置
３０４  ルームランプ
３０５  第２コントローラ
３０６  通信装置
３０８  カメラ
３１０  車両
【図１】
2020144577.tif 000003
【図２】
2020144577.tif 000004
【図３】
2020144577.tif 000005
【図４】
2020144577.tif 000006