以下、図面を参照しながら本発明の実施の形態について説明する。
<情報処理システムの構成>
図1に示されるように、本実施形態の情報処理システム100は、VR(Virtual Reality)システム200と、MR(Mixed Reality)システム400と、サーバ600と、外部機器700と、を備えている。VRシステム200は、ネットワーク2を介してサーバ600、MRシステム400、および外部機器700と通信可能に構成される。また、MRシステム400は、ネットワーク2を介してサーバ600、VRシステム200、および外部機器700と通信可能に構成される。情報処理システム100を構成するMRシステム400の数は、1つに限られず、複数存在してもよい。また、情報処理システム100を構成するVRシステム200の数は、1つに限られず、複数存在してもよい。なお、本実施形態では、VRシステム200とMRシステム400とのネットワーク2を介した通信は、サーバ600を介して行われるが、サーバ600を介さずに行われてもよい。なお、ネットワーク2は、例えば、インターネット、移動通信システム(例えば、3G、4G、5G、LTE(Long Term Evolution)等)、Wi-Fi(登録商標)、Bluetooth(登録商標)、その他の通信回線、またはこれらの組み合わせ等のいずれによって構成されていてもよい。
(VRシステムの構成)
図2に示されるように、VRシステム200は、VR装置210と、コンピュータ300と、検出装置260と、ディスプレイ270と、コントローラ280とを備える。VR装置210は、ディスプレイ211と、注視センサ212と、第1カメラ213と、第2カメラ214と、マイク215と、スピーカ216と、センサ217と、を備える。以下、VR装置210を使用するユーザを、VRユーザと呼ぶ。
コンピュータ300は、インターネットその他のネットワーク2に接続可能であり、例えば、ネットワーク2に接続されているサーバ600、MRシステム400のコンピュータ、およびその他のコンピュータと通信可能である。その他のコンピュータとしては、例えば、他のVRシステム200のコンピュータや外部機器700等が挙げられる。
VR装置210は、VRユーザの頭部に装着され、動作中に仮想空間をVRユーザに提供し得る。VR装置210は、例えば、ディスプレイを備える所謂ヘッドマウントディスプレイであってもよく、スマートフォンその他のディスプレイを有する端末が装着されたヘッドマウント機器等であってもよい。VR装置210は、例えば、右目用の画像および左目用の画像をディスプレイ211にそれぞれ表示する。VRユーザの各目がそれぞれの画像を視認すると、VRユーザは、両目の視差に基づき当該画像を3次元画像として認識し得る。
ディスプレイ211は、例えば、非透過型の表示装置として実現される。ディスプレイ211は、例えば、VRユーザの両目の前方に位置するようにVR装置210の本体に配置されている。したがって、VRユーザは、ディスプレイ211に表示される3次元画像を視認すると、仮想空間に没入することができる。なお、ディスプレイ211は、所謂スマートフォンその他の端末が備えるディスプレイ等によって実現されてもよい。
検出装置260は、VR装置210を使用するVRユーザの動きを検出する。検出装置260は、VR装置210の動きを検出するためのポジショントラッキング機能を有し、これによりVRユーザの動きを検出するものであってもよい。具体的には、検出装置260は、例えば、VRユーザの動きを検出するためのセンサとして、VR装置210からの光(例えば、赤外光)を読み取るセンサを有し、現実空間内におけるVR装置210の位置や傾き等を検出するものであってもよい。この場合に、VR装置210は、図示せぬ複数の光源を有していてもよい。また、各光源は例えば、赤外光を発するLED(Light Emitting Diode)により実現されてもよい。
また、検出装置260は、例えば、カメラにより実現されてもよい。具体的には、検出装置260は、VRユーザの動きを検出するためのセンサとして、イメージセンサ(例えば、RGB画像を取得するイメージセンサ、白黒画像を取得するイメージセンサ、またはデプスセンサ等)を有するものであってもよい。換言すると、VRユーザの動きは、カメラによって検出されてもよい。検出装置260は、例えば、赤外光や所定のパターンの光等の所定の光を放射する装置と、イメージセンサ(例えば、デプスセンサ)とを備えるデプスカメラ等であり、当該装置から放射された光の反射光を当該イメージセンサにより検出し、イメージセンサからの出力に基づいて、VRユーザの位置や姿勢等を検出するもの等であってもよい。また、検出装置460は、このようなデプスカメラとRGB画像が取得可能なカメラとを備えるものであり、これらのカメラからの出力に基づいて、VRユーザの位置や姿勢等を検出するもの等であってもよい。また、検出装置260は、例えば、複数のイメージセンサを備えるステレオカメラ等であり、複数のイメージセンサからの出力に基づいて、VRユーザの位置や姿勢等を検出するもの等であってもよい。なお、VRユーザの位置や姿勢等の検出とは、VRユーザの体の位置や姿勢等の検出であってもよく、VR装置210の位置や傾き等の検出であってもよい。
なお、VRシステム200は、検出装置260として、1または複数種類の検出装置を有していてもよく、各種類の検出装置を複数有していてもよい。また、VRシステム200は、検出装置260を有していなくてもよい。なお、検出装置260の一部がコンピュータ300等によって構成されてもよい。例えば、イメージセンサからの出力の解析(例えば、画像認識等)は、コンピュータ300等で行われてもよい。
なお、検出装置260は、上述の各種センサ等に加え、検出装置260自身の位置や傾き等を検出可能なセンサを有していてもよい。具体的には、例えば、検出装置260は、角速度センサ(例えば、3軸角速度センサ)、加速度センサ(例えば、3軸加速度センサ)、または地磁気センサ(例えば、3軸地磁気センサ)等を有していてもよい。また、これらのセンサからの出力は、コンピュータ300等に送られ、例えば、検出装置260の備えるイメージセンサからの出力に基づいて所定の処理が行われる際等に使用されてもよい。
また、VR装置210は、VRユーザの動きを検出する検出手段として、検出装置260の代わりに、あるいは検出装置260に加えてセンサ217を備えてもよい。VR装置210は、センサ217を用いて、VR装置210自身の位置および傾きを検出し得る。センサ217は、例えば、角速度センサ(例えば、3軸角速度センサ)、加速度センサ(例えば、3軸加速度センサ)、または地磁気センサ(例えば、3軸地磁気センサ)等であってもよい。また、VR装置210は、センサ217として、1または複数種類のセンサを有していてもよく、各種類のセンサを複数有していてもよい。一例として、センサ217として角速度センサを用いた場合、VR装置210は、現実空間におけるVR装置210の3軸周りの角速度を経時的に検出できる。そして、VR装置210は、各角速度に基づいて、VR装置210の3軸周りの角度の時間的変化を算出し、さらに、角度の時間的変化に基づいて、VR装置210の傾きを算出すること等ができる。また、センサ217は、例えば、イメージセンサであってもよい。そして、当該イメージセンサからの出力に基づいて、VRユーザの位置や姿勢等を検出してもよい。換言すると、VRユーザの位置や姿勢等は、VR装置210の備えるVR装置210の周囲を撮影するカメラからの情報等に基づいて検出されてもよい。換言すると、VR装置210のトラッキングは、アウトサイドイン方式によって行われてもよく、インサイドアウト方式によって行われてもよい。
注視センサ212は、VRユーザの右目および左目の視線が向けられる方向を検出する。すなわち、注視センサ212は、VRユーザの視線(換言すると、目の動き)を検出する。視線の方向の検出は、例えば、公知のアイトラッキング機能によって実現される。注視センサ212は、当該アイトラッキング機能を有するセンサにより実現される。注視センサ212は、右目用のセンサおよび左目用のセンサを含んでいてもよい。注視センサ212は、例えば、VRユーザの右目および左目に赤外光を照射するとともに、照射光に対する角膜および虹彩からの反射光を受けることにより各眼球の回転角を検出するセンサであってもよい。この場合、注視センサ212は、検出した各回転角に基づいて、VRユーザの視線を検出することができる。
第1カメラ213は、VRユーザの顔の下部を撮影する。より具体的には、第1カメラ213は、VRユーザの鼻および口などを撮影する。第2カメラ214は、VRユーザの目および眉などを撮影する。ここで、VR装置210の筐体のVRユーザ側をVR装置210の内側、VR装置210の筐体のVRユーザとは逆側をVR装置210の外側と定義する。第1カメラ213は、VR装置210の外側に配置され、第2カメラ214は、VR装置210の内側に配置されてもよい。第1カメラ213および第2カメラ214により撮影された画像は、コンピュータ300に入力される。なお、第1カメラ213と第2カメラ214とを1台のカメラとして実現し、この1台のカメラでVRユーザの顔を撮影してもよい。
音入力手段としてのマイク215は、VRユーザの声を音信号(換言すると、電気信号)に変換してコンピュータ300に出力する。音出力手段としてのスピーカ216は、音信号を音に変換してVRユーザに出力する。なお、VR装置210は、音出力手段としてスピーカ216に代えてイヤホンを含んでいてもよい。
ディスプレイ270は、ディスプレイ211に表示されている画像と同様の画像を表示する。これにより、VR装置210を装着しているVRユーザ以外のユーザにも当該VRユーザと同様の画像(換言すると仮想空間)を視聴させることができる。ディスプレイ270に表示される画像は、3次元画像である必要はなく、例えば、VR装置210で表示される右目用の画像や左目用の画像であってもよい。ディスプレイ270としては、例えば、液晶ディスプレイや有機ELディスプレイなどが挙げられる。
コントローラ280は、有線または無線によりコンピュータ300に接続されている。コントローラ280は、VRユーザからコンピュータ300への指示に係る入力操作を受け付ける。また、コントローラ280は、仮想空間に配置される仮想オブジェクトの位置や動きを制御するためのVRユーザによる入力操作を受け付ける。コントローラ280は、例えば、VRユーザによって把持可能に構成されてもよい。また、コントローラ280は、例えば、VRユーザの身体あるいは衣類の一部に装着可能に構成されてもよい。具体的には、コントローラ280は、例えば、手袋型等であってもよい。また、コントローラ280は、コンピュータ300から送信される信号に基づいて、振動、音、光のうちの少なくともいずれかを出力可能に構成されてもよい。
また、コントローラ280は、複数の光源を有していてもよい。各光源は例えば、赤外光を発するLEDにより実現されてもよい。そして、検出装置260は、コントローラ280からの赤外光を読み取り、現実空間内におけるコントローラ280の位置および傾き等を検出してもよい。換言すると、検出装置260は、コントローラ280の動きを検出するポジショントラッキング機能を有し、これによりVRユーザの動きを検出するものであってもよい。
なお、VRシステム200は、コントローラ280を有していなくてもよい。
また、情報処理システム100は、VRユーザの動きを検出するセンサ286を有していてもよい。センサ286は、例えば、角速度センサ、加速度センサ、または地磁気センサであってもよい。また、センサ286は、例えば、コントローラ280に設けられていてもよい(図7参照)。なお、情報処理システム100は、センサ286として、1または複数種類のセンサを有していてもよく、各種類のセンサを複数有していてもよい。また、センサ286を備える装置(例えば、コントローラ280や所定のカメラ等)と、コンピュータ300とは、例えば、無線により互いに接続されてもよい。そして、センサ286により取得された情報は、例えば、無線通信によりコンピュータ300に送信されてもよい。
また、VRユーザの位置や動きは、VR装置210が、所定の無線通信(例えば、Wi-Fi通信、Bluetooth通信、またはUWB(Ultra Wide Band)通信などの近距離無線通信)を行う装置を備え、当該装置と周囲の機器とが無線通信を行いVR装置210の位置情報を取得することにより検出されてもよい。
また、VRユーザの位置や動きは、VRユーザが身につけるデバイス等(例えば、時計型、リストバンド型、指輪型、もしくは衣服型等のウェアラブルデバイス、または体内埋め込み型のデバイス等)の、VRユーザの動きをトラッキング可能とする外部機器700(および当該機器と近距離無線通信等により連携してVRユーザの動きをトラッキングする機器)を用いて検出されてもよい。また、これらの外部機器700をコントローラ280として使用してもよい。また、VRユーザの位置や動きは、GPSセンサ等によって検出されてもよい。
(コンピュータ300の構成)
図2に示されるように、コンピュータ300は、主たる構成要素として、プロセッサ301と、メモリ302と、ストレージ303と、入出力インターフェース304と、通信インターフェース305とを備える。各構成要素は、それぞれ、バスによって互いに接続されている。
プロセッサ301は、VR装置210の動作を制御する。プロセッサ301は、ストレージ303からプログラムを読み出し、メモリ302に展開する。プロセッサ301は、展開したプログラムを実行する。プロセッサ301は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、MPU(Micro Processor Unit)、およびFPGA(Field-Programmable Gate Array)等のうちの1種類以上を含んで構成され得る。
メモリ302は、主記憶装置である。メモリ302は、例えば、ROM(Read Only Memory)およびRAM(Random Access Memory)等の記憶装置により構成される。メモリ302は、プロセッサ301がストレージ303から読み出したプログラムおよび各種データを一時的に記憶することにより、プロセッサ301に作業領域を提供する。メモリ302は、プロセッサ301がプログラムに従って動作している間に生成した各種データやコンピュータ300に入力された各種データ等も一時的に記憶する。
ストレージ303は、補助記憶装置である。ストレージ303は、例えば、フラッシュメモリまたはHDD(Hard Disk Drive)等の記憶装置により構成される。ストレージ303には、情報処理システム100においてサービスを提供するためのプログラムが格納される。また、ストレージ303には、情報処理システム100においてサービスを提供するための各種データが格納される。ストレージ303に格納されるデータには、仮想空間を規定するためのデータおよび仮想オブジェクトに関するデータ等が含まれる。
なお、ストレージ303は、メモリカードのように着脱可能な記憶装置として実現されてもよい。また、コンピュータ300に内蔵されたストレージ303の代わりに、外部の記憶装置に保存されているプログラムおよびデータが使用される構成であってもよい。
入出力インターフェース304は、コンピュータ300がデータの入力を受け付けるためのインターフェースであるとともに、コンピュータ300がデータを出力するためのインターフェースである。入出力インターフェース304は、VR装置210、検出装置260、およびディスプレイ270との間でデータの送信または受信をし得る。また、VR装置210に含まれるディスプレイ211、注視センサ212、第1カメラ213、第2カメラ214、マイク215、スピーカ216、およびセンサ217との間でデータの送信または受信をしてもよい。
なお、入出力インターフェース304は、コントローラ280との間でデータの送信または受信をしてもよい。例えば、入出力インターフェース304は、コントローラ280およびセンサ286から出力された信号の入力を受けてもよい。また、入出力インターフェース304は、プロセッサ301から出力された命令を、コントローラ280に送信してもよい。当該命令は、振動、音出力、発光等をコントローラ280に指示するものであってもよい。コントローラ280は、当該命令を受信すると、命令に応じて、振動、音出力または発光等を行う。
なお、VR装置210、検出装置260、ディスプレイ270、コントローラ280、およびセンサ286のそれぞれとコンピュータ300とは、有線接続されてもよく、無線接続されてもよい。
通信インターフェース305は、他のコンピュータ(例えば、サーバ600、コンピュータ500、または他のコンピュータ300等)とのネットワーク2を介した各種データの送受信を制御する。
プロセッサ301は、ストレージ303にアクセスし、ストレージ303に格納されているプログラムをメモリ302に展開し、当該プログラムに含まれる一連の命令を実行する。また、プロセッサ301は、入出力インターフェース304を介して、仮想空間を提供するための信号をVR装置210に送る。
なお、コンピュータ300はVR装置210の外部に設けられていてもよく、コンピュータ300の一部または全体がVR装置210に内蔵されてもよい。また、ディスプレイ211を含む携帯型の端末(例えば、スマートフォン)がコンピュータ300の少なくとも一部として機能してもよい。なお、VR装置210が複数存在する場合に、コンピュータ300は、各VR装置210に対して設けられていてもよく、複数のVR装置210に対して共通して用いられてもよい。
(座標系)
VRシステム200では、現実空間における座標系である実座標系が予め設定されている。実座標系は、現実空間における鉛直方向、鉛直方向に直交する水平方向、並びに、鉛直方向および水平方向の双方に直交する前後方向にそれぞれ平行な、3つの基準方向(軸)を有する。
現実空間内におけるVR装置210の位置や傾きは、検出装置260やセンサ217によって検出できる。検出されるVR装置210の傾きは、例えば、実座標系におけるVR装置210の3軸周りの各傾きに相当する。コンピュータ300は、実座標系におけるVR装置210の傾きに基づき、uvw視野座標系をVR装置210に設定する(図4参照)。VR装置210に設定されるuvw視野座標系は、VR装置210を装着したVRユーザが仮想空間において物体を見る際の視点座標系に対応する。
ここで、uvw視野座標系について説明する。コンピュータ300は、VR装置210を装着したVRユーザの頭部を中心(原点)とした3次元のuvw視野座標系を設定する。より具体的には、コンピュータ300は、実座標系を規定する水平方向、鉛直方向、および前後方向を、実座標系内においてVR装置210の各軸周りの傾きだけ各軸周りにそれぞれ傾けることによって新たに得られる3つの方向を、VR装置210におけるuvw視野座標系のピッチ軸(u軸)、ヨー軸(v軸)、およびロール軸(w軸)として設定する。
例えば、VR装置210を装着したVRユーザが直立し、かつ、正面を視認している場合、プロセッサ301は、実座標系に平行な視野座標系をVR装置210に設定する。この場合、実座標系における水平方向、鉛直方向、および前後方向は、VR装置210における視野座標系のピッチ軸(u軸)、ヨー軸(v軸)、およびロール軸(w軸)に一致する。
uvw視野座標系がVR装置210に設定された後、検出装置260またはセンサ217は、VR装置210の動きに基づいて、設定されたuvw視野座標系におけるVR装置210の傾きを検出できる。この場合、検出装置260またはセンサ217は、VR装置210の傾きとして、uvw視野座標系におけるVR装置210のピッチ角、ヨー角、およびロール角をそれぞれ検出する。ピッチ角は、uvw視野座標系におけるピッチ軸周りのVR装置210の傾き角度を表す。ヨー角は、uvw視野座標系におけるヨー軸周りのVR装置210の傾き角度を表す。ロール角は、uvw視野座標系におけるロール軸周りのVR装置210の傾き角度を表す。
コンピュータ300は、検出されたVR装置210の傾きに基づいて、VR装置210が動いた後のVR装置210におけるuvw視野座標系を、VR装置210に設定する。VR装置210と、VR装置210のuvw視野座標系との関係は、VR装置210の位置および傾きに関わらず、常に一定である。VR装置210の位置および傾きが変わると、当該位置および傾きの変化に連動して、実座標系におけるVR装置210のuvw視野座標系の位置および傾きが変化する。
なお、検出装置260は、VR装置210の現実空間内における位置を、検出装置260に対する相対位置として特定してもよい。また、プロセッサ301は、特定された相対位置に基づいて、現実空間内(実座標系)におけるVR装置210のuvw視野座標系の原点を決定してもよい。
(仮想空間)
図4を参照して、仮想空間についてさらに説明する。図4は、ある実施の形態に従う仮想空間11を表現する一態様を概念的に表す図である。仮想空間11は、中心12の360度方向の全体を覆う全天球状の構造を有する。図4では、説明を複雑にしないために、仮想空間11のうちの上半分の天球が例示されている。仮想空間11では各メッシュが規定される。各メッシュの位置は、仮想空間11に規定されるグローバル座標系であるXYZ座標系における座標値として予め規定されている。コンピュータ300は、仮想空間11に展開可能なパノラマ画像13(静止画、動画等)を構成する各部分画像を、仮想空間11において対応する各メッシュにそれぞれ対応付ける。
仮想空間11では、所定の点を原点12とするXYZ座標系が規定される。XYZ座標系は、例えば、実座標系に平行である。XYZ座標系における水平方向、鉛直方向(上下方向)、および前後方向は、それぞれX軸、Y軸、Z軸として規定される。したがって、XYZ座標系のX軸が実座標系の水平方向と平行であり、XYZ座標系のY軸(鉛直方向)が実座標系の鉛直方向と平行であり、XYZ座標系のZ軸(前後方向)が実座標系の前後方向と平行である。
VR装置210の起動時、すなわちVR装置210の初期状態においては、仮想カメラ14が、仮想空間11の所定の位置(例えば、中心)に配置される。また、プロセッサ301は、仮想カメラ14が撮影する画像をVR装置210のディスプレイ211に表示する。仮想カメラ14は、現実空間におけるVR装置210の動きに連動して、仮想空間11内で動く。これにより、現実空間におけるVR装置210の傾きや位置の変化が、仮想空間11において同様に再現され得る。
仮想カメラ14には、VR装置210の場合と同様に、uvw視野座標系が規定される。仮想空間11における仮想カメラ14のuvw視野座標系は、現実空間(実座標系)におけるVR装置210のuvw視野座標系に連動するように規定されている。したがって、VR装置210の傾きが変化すると、それに応じて、仮想カメラ14の傾きも変化する。なお、仮想カメラ14は、VRユーザの現実空間における移動に連動して、仮想空間11において移動してもよいが、本実施形態では、VRユーザが現実空間において移動しても、仮想空間11では移動しないようになっている。
コンピュータ300のプロセッサ301は、仮想カメラ14の位置と傾きとに基づいて、仮想空間11における視界領域15を規定する。視界領域15は、仮想空間11のうち、VR装置210を装着したVRユーザが視認する領域に対応する。つまり、仮想カメラ14の位置は、仮想空間11におけるVRユーザの視点といえる。
VR装置210のuvw視野座標系は、VRユーザがディスプレイ211を視認する際の視点座標系に等しい。仮想カメラ14のuvw視野座標系は、VR装置210のuvw視野座標系に連動している。したがって、注視センサ212によって検出されたVRユーザの視線を、仮想カメラ14のuvw視野座標系におけるVRユーザの視線とみなすことができる。
(視界領域)
図5および図6を参照して、視界領域15について説明する。図5は、仮想空間11において視界領域15をX方向から見たYZ断面を表す図である。図6は、仮想空間11において視界領域15をY方向から見たXZ断面を表す図である。
図5に示されるように、YZ断面における視界領域15は、領域18を含む。領域18は、仮想カメラ14の位置と基準視線16と仮想空間11のYZ断面とによって定義される。プロセッサ301は、仮想空間における基準視線16を中心として極角αを含む範囲を、領域18として定義する。
図6に示されるように、XZ断面における視界領域15は、領域19を含む。領域19は、仮想カメラ14の位置と基準視線16と仮想空間11のXZ断面とによって定義される。プロセッサ301は、仮想空間11における基準視線16を中心とした方位角βを含む範囲を、領域19として定義する。極角αおよびβは、仮想カメラ14の位置と仮想カメラ14の傾き(向き)とに応じて定まる。
VRシステム200は、コンピュータ300からの信号に基づいて、視界画像17をディスプレイ211に表示させることにより、VRユーザに仮想空間11における視界を提供する(図4参照)。視界画像17は、パノラマ画像13のうち視界領域15に対応する部分に相当する画像である。VRユーザが、頭に装着したVR装置210を動かすと、その動きに連動して仮想カメラ14も動く。その結果、仮想空間11における視界領域15の位置が変化する。これにより、ディスプレイ211に表示される視界画像17は、パノラマ画像13のうち、仮想空間11においてVRユーザが向いた方向の視界領域15に重畳する画像に更新される。VRユーザは、仮想空間11における所望の方向を視認することができる。
VRユーザは、VR装置210を装着している間、現実世界を視認することなく、仮想空間11に展開されるパノラマ画像13のみを視認できる。そのため、情報処理システム100は、仮想空間11への高い没入感覚をVRユーザに与えることができる。
なお、仮想カメラ14は、2つの仮想カメラ、すなわち、右目用の画像を提供するための仮想カメラと、左目用の画像を提供するための仮想カメラとを含み得る。この場合、VRユーザが3次元の仮想空間11を認識できるように、適切な視差が、2つの仮想カメラに設定される。なお、仮想カメラ14を1つの仮想カメラにより実現してもよい。この場合、1つの仮想カメラにより得られた画像から、右目用の画像と左目用の画像とを生成するようにしてもよい。
(コントローラ)
図7を参照して、コントローラ280の一例について説明する。
図7に示されるように、コントローラ280は、右コントローラ280Rと図示せぬ左コントローラとを含み得る。この場合に、右コントローラ280Rは、VRユーザの右手で操作される。左コントローラは、VRユーザの左手で操作される。ある局面において、右コントローラ280Rと左コントローラとは、別個の装置として構成される。したがって、VRユーザは、右コントローラ280Rを把持した右手と、左コントローラを把持した左手とをそれぞれ自由に動かすことができる。別の局面において、コントローラ280は両手の操作を受け付ける一体型のコントローラであってもよい。以下、右コントローラ280Rについて説明する。
右コントローラ280Rは、グリップ281と、フレーム282と、天面283と、ボタン284,285と、センサ(例えば、モーションセンサ)286と、赤外光LED287と、ボタン288,289と、アナログスティック290とを備える。グリップ281は、VRユーザの右手によって把持されるように構成されている。たとえば、グリップ281は、VRユーザの右手の掌と3本の指(中指、薬指、小指)とによって保持され得る。
ボタン284は、グリップ281の側面に配置され、右手の中指による操作を受け付ける。ボタン285は、グリップ281の前面に配置され、右手の人差し指による操作を受け付ける。また、ボタン284,285は、ボタン284,285を押下するユーザの動きを検出するスイッチを備えている。なお、ボタン284,285は、トリガー式のボタンとして構成されてもよい。
センサ286は、グリップ281の筐体に内蔵されている。また、センサ286は、VRユーザの動きを検出する。具体的には、センサ286は、VRユーザの手の動きを検出する。例えば、センサ286は、手の回転速度、回転数等を検出する。なお、コントローラ280は、センサ286を備えなくてもよい。
フレーム282には、その円周方向に沿って複数の赤外光LED287が配置されている。赤外光LED287は、コントローラ280を使用するプログラムの実行中に、当該プログラムの進行に合わせて赤外光を発光する。赤外光LED287から発せられた赤外光は、右コントローラ280Rと左コントローラとの各位置や姿勢(傾き、向き)を検出するために使用され得る。
天面283は、ボタン288,289と、アナログスティック290とを備える。ボタン288,289は、VRユーザの右手の親指による操作を受け付ける。また、ボタン288,289は、ボタン288,289を押下するユーザの動きを検出するスイッチを備えている。アナログスティック290は、初期位置(ニュートラルの位置)から360度任意の方向への操作を受け付ける。当該操作は、たとえば、仮想空間11に配置されるオブジェクトを移動させるための操作を含む。また、アナログスティック290は、アナログスティック290を操作するユーザの動きを検出するセンサを備えている。
コントローラ280が検出したVRユーザの入力操作(換言すると、VRユーザの動き)に関する情報は、コンピュータ300に送られる。
図7に示されるように、コントローラ280には、例えば、VRユーザの右手に対して、ヨー、ロール、ピッチの各方向が規定される。具体的には、例えば、VRユーザが親指と人差し指とを伸ばした場合に、親指の伸びる方向がヨー方向、人差し指の伸びる方向がロール方向、ヨー方向の軸およびロール方向の軸によって規定される平面に垂直な方向がピッチ方向として規定される。
(MRシステムの構成)
図3に示されるように、MRシステム400は、MR装置410と、コンピュータ500と、検出装置460と、ディスプレイ470と、コントローラ480とを備える。MR装置410は、ディスプレイ411と、注視センサ412と、カメラ413と、マイク415と、スピーカ416と、センサ417とを備える。以下、MR装置410を使用するユーザを、MRユーザ6と呼ぶ。
コンピュータ500は、インターネットその他のネットワーク2に接続可能であり、例えば、ネットワーク2に接続されているサーバ600、VRシステム200のコンピュータ、およびその他のコンピュータと通信可能である。その他のコンピュータとしては、例えば、他のMRシステム400のコンピュータや外部機器700等が挙げられる。
MR装置410は、MRユーザ6の頭部に装着され、動作中に複合現実空間をMRユーザ6に提供し得る。MR装置410は、例えば、ディスプレイを備えるメガネ型の装置(例えば、所謂MRグラス)であってもよい。また、MR装置410は、コンタクトレンズ型の装置等であってもよい。
ディスプレイ411は、例えば、透過型の表示装置として実現される。なお、透過型のディスプレイ411は、その透過率を調整することにより、一時的に非透過型の表示装置として機能するものであってもよい。ディスプレイ411は、例えば、MRユーザ6の両目の前方に位置するようにMR装置410の本体に配置されている。したがって、MRユーザ6には、透過型のディスプレイ411を介して見える現実空間に、ディスプレイ411が表示する仮想オブジェクトが重畳された表示が提供される。すなわち、MR装置410は、現実空間に仮想オブジェクトが配置された複合現実空間のビューをMRユーザ6に提供する。換言すると、MRユーザ6は、MR装置410により、仮想オブジェクトと、現実空間に存在するオブジェクト(以下、「現実オブジェクト」という。)とを同時に見ることができる。
検出装置460は、MR装置410を使用するMRユーザ6の動きを検出する。検出装置460は、MR装置410の動きを検出するためのポジショントラッキング機能を有し、これによりMRユーザ6の動きを検出するものであってもよい。具体的には、検出装置460は、例えば、MRユーザ6の動きを検出するためのセンサとして、MR装置410からの光(例えば、赤外光)を読み取るセンサを有し、複合現実空間内におけるMR装置410の位置や傾き等を検出するものであってもよい。この場合に、MR装置410は、図示せぬ複数の光源を有していてもよい。また、各光源は例えば、赤外光を発するLED(Light Emitting Diode)により実現されてもよい。
また、検出装置460は、例えば、カメラにより実現されてもよい。具体的には、検出装置460は、MRユーザ6の動きを検出するためのセンサとして、イメージセンサ(例えば、RGB画像を取得するイメージセンサ、白黒画像を取得するイメージセンサ、またはデプスセンサ等)を有するものであってもよい。換言すると、MRユーザ6の動きは、カメラによって検出されてもよい。検出装置460は、例えば、赤外光や所定のパターンの光等の所定の光を放射する装置と、イメージセンサ(例えば、デプスセンサ)とを備えるデプスカメラ等であり、当該装置から放射された光の反射光を当該イメージセンサにより検出し、イメージセンサからの出力に基づいて、MRユーザ6の位置や姿勢等を検出するもの等であってもよい。また、検出装置460は、このようなデプスカメラとRGB画像が取得可能なカメラとを備えるものであり、これらのカメラからの出力に基づいて、MRユーザ6の位置や姿勢等を検出するもの等であってもよい。また、検出装置460は、例えば、複数のイメージセンサを備えるステレオカメラ等であり、複数のイメージセンサからの出力に基づいて、MRユーザ6の位置や姿勢等を検出するもの等であってもよい。なお、MRユーザ6の位置や姿勢等の検出とは、MRユーザ6の体の位置や姿勢等の検出であってもよく、MR装置410の位置や傾き等の検出であってもよい。
なお、MRシステム400は、検出装置460として、1または複数種類の検出装置を有していてもよく、各種類の検出装置を複数有していてもよい。例えば、MRシステム400は、複数のカメラ(換言すると、複数のセンサ)を備え、当該複数のカメラが検出装置460として機能してもよい。本実施形態では、MRシステム400は、3台の検出装置460を備え、各検出装置460が、デプスカメラとRGB画像が取得可能なカメラとを備えるものとして説明する。なお、検出装置460の一部がコンピュータ500等によって構成されてもよい。例えば、イメージセンサからの出力の解析(例えば、画像認識等)は、コンピュータ500等で行われてもよい。なお、MRシステム400は、検出装置460を有していなくてもよい。
なお、検出装置460は、上述の各種センサ等に加え、検出装置460自身の位置や傾き等を検出可能なセンサを有していてもよい。具体的には、例えば、検出装置460は、角速度センサ(例えば、3軸角速度センサ)、加速度センサ(例えば、3軸加速度センサ)、または地磁気センサ(例えば、3軸地磁気センサ)等を有していてもよい。また、これらのセンサからの出力は、コンピュータ500等に送られ、例えば、検出装置460の備えるイメージセンサからの出力に基づいて所定の処理が行われる際等に使用されてもよい。
また、後述するMR装置410の構成から理解されるように、他のMRユーザ6のMR装置410が、検出装置460として用いられてもよい。
また、MR装置410は、MRユーザ6の動きを検出する検出手段として、検出装置460の代わりに、あるいは検出装置460に加えてセンサ417を備えてもよい。MR装置410は、センサ417を用いて、MR装置410自身の位置および傾きを検出し得る。センサ417は、例えば、角速度センサ(例えば、3軸角速度センサ)、加速度センサ(例えば、3軸加速度センサ)、または地磁気センサ(例えば、3軸地磁気センサ)等であってもよい。また、MR装置410は、センサ417として、1または複数種類のセンサを有していてもよく、各種類のセンサを複数有していてもよい。
注視センサ412は、MRユーザ6の右目および左目の視線が向けられる方向を検出する。すなわち、注視センサ412は、MRユーザ6の視線(換言すると、目の動き)を検出する。視線の方向の検出は、例えば、公知のアイトラッキング機能によって実現される。注視センサ412は、当該アイトラッキング機能を有するセンサにより実現される。注視センサ412は、右目用のセンサおよび左目用のセンサを含んでいてもよい。注視センサ412は、例えば、MRユーザ6の右目および左目に赤外光を照射するとともに、照射光に対する角膜および虹彩からの反射光を受けることにより各眼球の回転角を検出するセンサであってもよい。この場合、注視センサ412は、検出した各回転角に基づいて、MRユーザ6の視線を検出することができる。
カメラ413は、MRユーザ6の周囲(例えば、前方)を撮影する。MR装置410は、例えば、カメラ413として、デプスカメラと、RGB画像が取得可能なカメラとを備えていてもよい。そして、カメラ413からの出力に基づいて、コンピュータ500が、MR装置410(換言するとMRユーザ6)の周囲のオブジェクトの形状や、MR装置410と周囲のオブジェクトとの相対的な距離等を検出してもよい。また、MR装置410の位置や傾きは、カメラ413からの出力に基づいて検出されてもよい。換言すると、MR装置410のトラッキングは、アウトサイドイン方式によって行われてもよく、インサイドアウト方式によって行われてもよい。
音入力手段としてのマイク415は、MRユーザ6の声を音信号(換言すると、電気信号)に変換してコンピュータ500に出力する。音出力手段としてのスピーカ416は、音信号を音に変換してMRユーザ6に出力する。なお、MR装置410は、音出力手段としてスピーカ416に代えてイヤホンを含んでいてもよい。
ディスプレイ470は、例えば、ディスプレイ411に表示されている画像と同様の画像を表示する。これにより、MR装置410を装着しているMRユーザ6以外のユーザにも当該MRユーザ6と同様の画像を視聴させることができる。ディスプレイ470に表示される画像は、3次元画像である必要はなく、例えば、MR装置410で表示される右目用の画像や左目用の画像であってもよい。ディスプレイ470としては、例えば、液晶ディスプレイや有機ELディスプレイなどが挙げられる。なお、ディスプレイ470は、MR装置410がMRユーザ6に提供する複合現実空間のビューを示す画像を表示してもよい。
コントローラ480は、有線または無線によりコンピュータ500に接続されている。コントローラ480は、MRユーザ6からコンピュータ500への指示に係る入力操作を受け付ける。また、コントローラ480は、複合現実空間に配置される仮想オブジェクトの位置や動きを制御するためのMRユーザ6による入力操作を受け付ける。コントローラ480は、例えば、MRユーザ6によって把持可能に構成されてもよい。また、コントローラ480は、例えば、MRユーザ6の身体あるいは衣類の一部に装着可能に構成されてもよい。また、コントローラ480は、コンピュータ500から送信される信号に基づいて、振動、音、光のうちの少なくともいずれかを出力可能に構成されてもよい。
また、コントローラ480は、複数の光源を有していてもよい。各光源は例えば、赤外光を発するLEDにより実現されてもよい。そして、検出装置460は、コントローラ480からの赤外光を読み取り、複合現実空間内におけるコントローラ480の位置および傾き等を検出してもよい。換言すると、検出装置460は、コントローラ480の動きを検出するポジショントラッキング機能を有し、これによりMRユーザ6の動きを検出するものであってもよい。
なお、MRシステム400は、コントローラ480を有していなくてもよい。また、コントローラ480は、例えば、コントローラ280の備える構成の一部または全部を有していてもよい。
なお、情報処理システム100は、MRユーザ6の動きを検出するセンサ486を有していてもよい。センサ486は、例えば、角速度センサ、加速度センサ、または地磁気センサであってもよい。また、センサ486は、例えば、コントローラ480に設けられていてもよい。なお、情報処理システム100は、センサ486として、1または複数種類のセンサを有していてもよく、各種類のセンサを複数有していてもよい。また、センサ486を備える装置(例えば、コントローラ480や所定のカメラ等)と、コンピュータ500とは、例えば、無線により互いに接続されてもよい。そして、センサ486により取得された情報は、例えば、無線通信によりコンピュータ300に送信されてもよい。
また、MRユーザ6の位置や動きは、MR装置410が、所定の無線通信(例えば、Wi-Fi通信、Bluetooth通信、またはUWB通信などの近距離無線通信)を行う装置を備え、当該装置と周囲の機器とが無線通信を行いVR装置210の位置情報を取得することにより検出されてもよい。
また、MRユーザ6の位置や動きは、MRユーザ6が身につけるデバイス等(例えば、時計型、リストバンド型、指輪型、もしくは衣服型等のウェアラブルデバイス、または体内埋め込み型のデバイス等)の、MRユーザ6の動きをトラッキング可能とする外部機器700(および当該機器と近距離無線通信等により連携してMRユーザ6の動きをトラッキングする機器)を用いて検出されてもよい。また、これらの外部機器700をコントローラ480として使用してもよい。また、MRユーザ6の位置や動きは、GPSセンサ等によって検出されてもよい。
(コンピュータ500の構成)
図3に示されるように、コンピュータ500は、主たる構成要素として、プロセッサ501と、メモリ502と、ストレージ503と、入出力インターフェース504と、通信インターフェース505とを備える。各構成要素は、それぞれ、バスによって互いに接続されている。
プロセッサ501は、MR装置410の動作を制御する。プロセッサ501は、ストレージ503からプログラムを読み出し、メモリ502に展開する。プロセッサ501は、展開したプログラムを実行する。プロセッサ501は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、MPU(Micro Processor Unit)、およびFPGA(Field-Programmable Gate Array)等のうちの1種類以上を含んで構成され得る。
メモリ502は、主記憶装置である。メモリ502は、例えば、ROM(Read Only Memory)およびRAM(Random Access Memory)等の記憶装置により構成される。メモリ502は、プロセッサ501がストレージ503から読み出したプログラムおよび各種データを一時的に記憶することにより、プロセッサ501に作業領域を提供する。メモリ502は、プロセッサ501がプログラムに従って動作している間に生成した各種データやコンピュータ500に入力された各種データ等も一時的に記憶する。
ストレージ503は、補助記憶装置である。ストレージ503は、例えば、フラッシュメモリまたはHDD(Hard Disk Drive)等の記憶装置により構成される。ストレージ503には、情報処理システム100においてサービスを提供するためのプログラムが格納される。また、ストレージ503には、情報処理システム100においてサービスを提供するための各種データが格納される。ストレージ503に格納されるデータには、複合現実空間を規定するためのデータおよび仮想オブジェクトに関するデータ等が含まれる。
なお、ストレージ503は、メモリカードのように着脱可能な記憶装置として実現されてもよい。また、コンピュータ500に内蔵されたストレージ503の代わりに、外部の記憶装置に保存されているプログラムおよびデータが使用される構成であってもよい。
入出力インターフェース504は、コンピュータ500がデータの入力を受け付けるためのインターフェースであるとともに、コンピュータ500がデータを出力するためのインターフェースである。入出力インターフェース504は、MR装置410、検出装置460、およびディスプレイ470との間でデータの送信または受信をし得る。また、入出力インターフェース504は、MR装置410に含まれるディスプレイ411、注視センサ412、カメラ413、マイク415、スピーカ416、およびセンサ417との間でデータの送信または受信をしてもよい。
なお、入出力インターフェース504は、コントローラ480との間でデータの送信または受信をしてもよい。例えば、入出力インターフェース504は、コントローラ480およびセンサ486から出力された信号の入力を受けてもよい。また、入出力インターフェース504は、プロセッサ501から出力された命令を、コントローラ480に送信してもよい。当該命令は、振動、音出力、発光等をコントローラ480に指示するものであってもよい。コントローラ480は、当該命令を受信すると、命令に応じて、振動、音出力または発光等を行う。
なお、MR装置410、検出装置460、ディスプレイ470、コントローラ480、およびセンサ486のそれぞれとコンピュータ500とは、有線接続されてもよく、無線接続されてもよい。
通信インターフェース505は、他のコンピュータ(例えば、サーバ600、コンピュータ300、または他のコンピュータ500等)とのネットワーク2を介した各種データの送受信を制御する。
プロセッサ501は、ストレージ503にアクセスし、ストレージ503に格納されているプログラムをメモリ502に展開し、当該プログラムに含まれる一連の命令を実行する。また、プロセッサ501は、入出力インターフェース504を介して、複合現実空間を提供するための信号をMR装置410に送る。
なお、コンピュータ500は、MR装置410の外部に設けられていてもよく、コンピュータ500の一部または全体がMR装置410に内蔵されてもよい。また、MR装置410が複数存在する場合に、コンピュータ500は、各MR装置410に対して設けられていてもよく、複数のMR装置410に対して共通して用いられてもよい。また、この場合に、コンピュータ500の一部が複数のMR装置410のそれぞれに内蔵されるなどしてもよい。本実施形態では、コンピュータ500に複数のMR装置410が接続される場合を例に説明する。
現実空間(換言すると、複合現実空間)内におけるMR装置410の位置や傾きを取得する方法は周知であり、また、前述のVR装置210における方法と同様の方法により検出できるため説明を省略する。
(サーバの構成)
サーバ600は、コンピュータ300にプログラムを送信し得る。また、サーバ600は、コンピュータ500にプログラムを送信し得る。また、サーバ600は、コンピュータ300とコンピュータ500との通信を可能とする。また、サーバ600は、コンピュータ300と他のコンピュータ300との通信を可能とする。例えば、情報処理システム100が、複数のVRユーザが参加可能なサービスを提供する場合、VRユーザの各コンピュータ300は、サーバ600を介して他のコンピュータ300と通信し、これにより同じ仮想空間において複数のVRユーザが体験を共有することが可能となっていてもよい。なお、各コンピュータ300は、サーバ600を介さずに他のコンピュータ300と通信するようにしてもよい。
図1に示されるように、サーバ600は、プロセッサ601と、メモリ602と、ストレージ603と、入出力インターフェース604と、通信インターフェース605とを備える。各構成要素は、それぞれ、バスによって互いに接続されている。
プロセッサ601は、サーバ600全体の動作を制御する。プロセッサ601は、ストレージ603からプログラムを読み出し、メモリ602に展開する。プロセッサ601は、展開したプログラムを実行する。プロセッサ601は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、MPU(Micro Processor Unit)、およびFPGA(Field-Programmable Gate Array)等のうちの1種類以上を含んで構成され得る。
メモリ602は、主記憶装置である。メモリ602は、例えば、ROM(Read Only Memory)およびRAM(Random Access Memory)等の記憶装置により構成される。メモリ602は、プロセッサ601がストレージ603から読み出したプログラムおよび各種データを一時的に記憶することにより、プロセッサ601に作業領域を提供する。メモリ602は、プロセッサ601がプログラムに従って動作している間に生成した各種データやサーバ600に入力された各種データ等も一時的に記憶する。
ストレージ603は、補助記憶装置である。ストレージ603は、例えば、フラッシュメモリまたはHDD(Hard Disk Drive)等の記憶装置により構成される。ストレージ603には、情報処理システム100においてサービスを提供するためのプログラムが格納される。また、ストレージ603には、情報処理システム100においてサービスを提供するための各種データが格納される。ストレージ603に格納されるデータには、仮想空間を規定するためのデータ、複合現実空間を規定するためのデータ、および仮想オブジェクトに関するデータ等が含まれる。
なお、ストレージ603は、メモリカードのように着脱可能な記憶装置として実現されてもよい。また、サーバ600に内蔵されたストレージ603の代わりに、外部の記憶装置に保存されているプログラムおよびデータが使用される構成であってもよい。
入出力インターフェース604は、サーバ600がデータの入力を受け付けるためのインターフェースであるとともに、サーバ600がデータを出力するためのインターフェースである。入出力インターフェース604は、例えば、マウス、キーボード等の入力機器や、ディスプレイ等の出力機器との間でデータの送信または受信をし得る。
通信インターフェース605は、他のコンピュータ(例えば、コンピュータ300、およびコンピュータ500等)とのネットワーク2を介した各種データの送受信を制御する。
外部機器700は、コンピュータ300、コンピュータ500、またはサーバ600と通信可能な機器であればどのような機器であってもよい。外部機器700は、例えば、ネットワーク2を介してコンピュータ300と通信可能な機器であってもよく、近距離無線通信や有線接続によりコンピュータ300と通信可能な機器であってもよい。また、外部機器700は、例えば、ネットワーク2を介してコンピュータ500と通信可能な機器であってもよく、近距離無線通信や有線接続によりコンピュータ500と通信可能な機器であってもよい。また、外部機器700は、例えば、ネットワーク2を介してサーバ600と通信可能な機器であってもよい。外部機器700としては、例えば、スマートデバイス、PC(Personal Computer)、およびコンピュータ300やコンピュータ500の周辺機器などが挙げられるが、これらに限定されるものではない。
<情報処理システムの制御>
本実施形態のMRシステム400では、MR装置410は、周知のMR装置と同様、現実空間に仮想オブジェクトが配置された複合現実空間のビューをMRユーザ6に提供する。また、本実施形態のVRシステム200では、VR装置210は、周知のVR装置と同様、仮想空間のビューをVRユーザに提供する。また、本実施形態のMRシステム400では、MRユーザ6は、複合現実空間中の仮想オブジェクトを操作することが可能となっている。また、本実施形態のVRシステム200では、VRユーザは、仮想空間中の仮想オブジェクトを操作することが可能となっている。加えて、本実施形態の情報処理システム100では、VRシステム200を使用するVRユーザの動き等が、MRシステム400の提供する複合現実空間のビューに含まれる仮想オブジェクトに反映されるようになっている。また、本実施形態の情報処理システム100では、MRシステム400を使用するMRユーザ6の動き等が、VRシステム200の提供する仮想空間のビューに含まれる仮想オブジェクトに反映されるようになっている。なお、本実施形態では、VRユーザの動き等の仮想空間および複合現実空間の仮想オブジェクトへの反映はリアルタイムで行われる。また、本実施形態では、MRユーザ6の動き等の仮想空間および複合現実空間の仮想オブジェクトへの反映はリアルタイムで行われる。
以下では、本実施形態に係る構成が、MRユーザ6とVRユーザとの間でのコミュニケーションを可能とするサービス(換言すると、アプリケーション)に適用される場合を例に説明する。具体的には、所定の現実空間としての会議室にいるMRユーザ6と、当該会議室と離れた場所にいるVRユーザとが、仮想オブジェクトとしての製品のモックアップ等のオブジェクトを同時に見ながら会議を行うこと等を可能とするサービスに本実施形態に係る構成が適用される場合を例に説明する。なお、本実施形態に係る構成は、例えば、学校の授業を自宅から受けることを可能とするシステム等に適用することもできる。また、本実施形態に係る構成は、特定の家で行われるホームパーティに他の場所から参加することを可能とするシステム等に適用することもできる。なお、本実施形態に係る構成の適用先は、これらのサービスに限られない。また、以下では、図8に示されるように、会議室には、複数の検出装置460が会議室中の所定の位置に予め設置されているものとして説明する。また、会議室には、MRユーザ6としてMRユーザ6A、MRユーザ6B、およびMRユーザ6Cの3名が存在するものとして説明する。なお、以下では、VRユーザのアバターオブジェクトをVRアバター25と呼ぶ。また、MRユーザ6のアバターオブジェクトをMRアバター26と呼ぶ。具体的には、MRユーザ6AのアバターオブジェクトをMRアバター26Aと呼び、MRユーザ6BのアバターオブジェクトをMRアバター26Bと呼び、MRユーザ6CのアバターオブジェクトをMRアバター26Cと呼ぶ。
図8を参照しながら、現実の会議室21(換言すると、複合現実空間21)にいるMRユーザ6A,6B,6Cに提供される視界と、VR装置210を介してこの会議室21を模した仮想空間11に入り込むVRユーザに提供される視界とについて説明する。図8は、MRユーザ6A,6B,6CとVRユーザとが、サービスを利用しているときの現実の会議室21の状態と、仮想空間11の状態とを表す模式図である。図8の上側部分には、現実の会議室21の状態が示され、図8の下側部分には、仮想空間11の状態が示されている。なお、図8においては、VRアバター25がVR装置210を装着しているが、これは説明を分かりやすくするためのものであり、実際にはVRアバター25は、VR装置210(仮想的なVR装置210)を装着していなくてもよい。また、図8においては、MRアバター26がMR装置410(仮想的なMR装置410)を装着していないが、MRアバター26が、MR装置410を装着していてもよい。
図8に示されるように、会議室21には、現実オブジェクトとしての机8等が配置されている。また、会議室21には、3台の検出装置460が配置されている。また、会議室21には、3名のMRユーザ6A,6B,6Cが存在する。一方、会議室21には、VRユーザは存在しない。ここで、MRユーザ6A,6B,6Cのそれぞれが使用するMR装置410のディスプレイ411には、仮想オブジェクトとして、VRアバター25と、モックアップの仮想オブジェクト30(以下、「仮想模型30」ともいう。)とが表示される。すなわち、MR装置410では、透過型のディスプレイ411を介して見える現実の会議室21に、VRアバター25や仮想模型30が現れた表示がされる。このため、MRユーザ6A,6B,6Cには、実際には会議室21に存在しないVRアバター25や仮想模型30があたかも会議室21に存在するかのような視界が提供される。
また、VRユーザがVR装置210を介して見る仮想空間11は、会議室21を模したものであり、現実の会議室21に存在する机8の仮想オブジェクト31等を含んでいる。また、当該仮想空間11には、MRユーザ6A,6B,6CのMRアバター26A,26B,26Cや、仮想模型30等が配置される。このため、VRユーザには、あたかもMRユーザ6A,6B,6Cがいる会議室21に自身がいるかのような視界が提供される。
このように、本実施形態の情報処理システム100では、MRユーザ6は、透過型のディスプレイ411を介して、実際に同じ場所に存在する他のMRユーザ6や現実オブジェクトが視認できる。また、その上で、MRユーザ6の視点では、仮想オブジェクトとして現れるVRユーザのVRアバター25が視認できる。このため、MRユーザ6は、現実世界にいる感覚を損なうことなく、VRユーザや他のMRユーザ6等とコミュニケーションを図ることができる。また、VRユーザは、現実世界においてMRユーザ6と異なる場所におり、このような場合、VRユーザのいる場所とMRユーザ6とのいる場所とでは、部屋の形状等が異なる場合が多い。このため、VRユーザ側においても、MR装置410等を使用して現実空間にMRアバター26を表示させることとすると、違和感のある表示になってしまうおそれがある。本実施形態では、VRユーザは、仮想空間11に入り込み、MRユーザ6等とコミュニケーションを取ることができるので、このような違和感が生じることを防止できる。また、VRユーザに提供される仮想空間11は、MRユーザ6のいる場所を模したものであるため、VRユーザやMRユーザ6がそれぞれ仮想空間11または現実空間で動き回る場合や仮想オブジェクトを動かす場合に、相手方に対して表示されるアバターや仮想模型30等の動きが自然なものとなる。また、VRユーザやMRユーザ6は仮想模型30等の仮想オブジェクトを操作する場合に、相手方にどのように見えるのか等をイメージすることが容易となり、円滑なコミュニケーションを図ることが可能となる。
以下、図9を参照しながら、情報処理システム100の機能的構成について説明する。なお、図9に示す機能的構成は一例にすぎない。VRシステム200、コンピュータ500、およびサーバ600のそれぞれは、他の装置が備える機能の少なくとも一部を備えていてもよい。換言すると、本実施形態においてコンピュータ300、コンピュータ500、およびサーバ600のそれぞれが備える機能ブロックの一部または全部を、コンピュータ300、コンピュータ500、サーバ600、またはその他の装置が備えていてもよい。また、コンピュータ300、コンピュータ500、およびサーバ600等の各装置は、一体の機器により実現されるものでなくてもよく、例えば、ネットワーク等を介して接続される複数の機器によって実現されてもよい。
また、本実施形態では、プロセッサ301、プロセッサ501、またはプロセッサ601が、情報処理システム100に記憶されているプログラムを実行することによって、後述する各処理を行うものとして説明する。ただし、後述する処理であってプロセッサ301が行う処理のうちの少なくとも一部を、プロセッサ301とは別のプロセッサが実行するようにしてもよい。また、後述する処理であってプロセッサ501が行う処理のうちの少なくとも一部を、プロセッサ501とは別のプロセッサが実行するようにしてもよい。また、後述する処理であってプロセッサ601が行う処理のうちの少なくとも一部を、プロセッサ601とは別のプロセッサが実行するようにしてもよい。換言すると、本実施形態においてプログラムを実行するコンピュータは、コンピュータ300、コンピュータ500、およびサーバ600を含むいずれのコンピュータであってもよく、また、複数の装置の組み合わせにより実現されてもよい。
図9は、情報処理システム100の機能的構成を示すブロック図である。図9に示されるように、コンピュータ300(換言すると、VRシステム200)は、プロセッサ301、メモリ302、ストレージ303、入出力インターフェース304、および通信インターフェース305の協働によって、制御部310および記憶部311として機能する。また、コンピュータ500(換言すると、MRシステム400)は、プロセッサ501、メモリ502、ストレージ503、入出力インターフェース504、および通信インターフェース505の協働によって、制御部510および記憶部511として機能する。また、サーバ600は、プロセッサ601、メモリ602、ストレージ603、入出力インターフェース604、および通信インターフェース605の協働によって、制御部610および記憶部611として機能する。
MRシステム400の制御部510は、仮想空間生成部810と、座標定義部812と、MR側入力受付部816と、ユーザ情報取得部818と、MR側オブジェクト制御部820と、表示制御部840と、音制御部845と、通信制御部850と、を備える。
仮想空間生成部810は、所定の現実空間に基づいて仮想空間(換言すると、仮想空間を表す仮想空間データ)を生成する。換言すると、仮想空間生成部810は、所定の現実空間を模した仮想空間を生成する。ここで、所定の現実空間とは、現実世界に存在する所定の場所であり、例えば、会議室、または学校の教室のような特定の部屋等であってもよい。また、所定の現実空間とは、例えば、学校、または家のような特定の建物等であってもよい。また、所定の現実空間とは、例えば、特定の町等であってもよい。換言すると、所定の現実空間とは、壁等によって仕切られた空間でなくてもよい。また、所定の現実空間を模したとは、生成される仮想空間が、現実空間の基本的な構造と同様の構造を有するものであればよい。具体的には、例えば、現実世界の会議室を模した仮想空間は、仮想空間としての仮想の部屋の形状(例えば、壁や床等の形状等)が現実世界の会議室の形状と略一致したものであって、現実世界の会議室に存在する机や椅子等の現実オブジェクトに対応する仮想オブジェクトが配置されたもの等とすることができる。このとき、机、椅子、壁、床等の仮想オブジェクトは、現実オブジェクトの形態を精密にコピーしたものでなくてもよく、例えば、形状、模様、または色彩等が簡略化されたものであってもよい。また、例えば、壁に貼られたポスターあるいは机や床等に置かれた小物等、現実オブジェクトには、仮想世界に表れないオブジェクト(対応する仮想オブジェクトが存在しない現実オブジェクト)が存在してもよい。
本実施形態では、前述のように、所定の現実空間は、特定の会議室21であり、当該特定の会議室21を模した仮想空間11が生成されるものとして説明する。
現実空間を模した仮想空間を生成する方法については、公知の方法が利用でき、また特に限定されるものではないが、例えば以下のようにしてもよい。すなわち、仮想空間生成部810は、例えば、現実空間を構成する壁、床、机、椅子等の現実オブジェクトの形状や位置等を検出可能なセンサからの情報に基づいて仮想空間11を生成する。具体的には、仮想空間生成部810は、例えば、検出装置460またはMR装置410が備えるイメージセンサ(例えば、RGB画像を取得するイメージセンサ、白黒画像を取得するイメージセンサ、またはデプスセンサ等)からの情報に基づいて現実空間の3次元情報を取得し、仮想空間を生成してもよい。また、仮想空間生成部810は、仮想空間11の生成に、例えば、加速度センサ、角速度センサ、または地磁気センサ等の情報を用いてもよい。
仮想空間生成部810は、生成した仮想空間11を示すデータ(以下、「仮想空間データ」という。)を、例えば、仮想空間データ記憶部としての記憶部611に記憶させる。
なお、仮想空間生成部810は、VRユーザやMRユーザ6がサービスの利用を開始するよりも前に、事前に仮想空間11を示す仮想空間データを生成してもよい。また、仮想空間生成部810は、例えば、VRユーザやMRユーザ6がサービスを利用している最中にリアルタイムで仮想空間11を示す仮想空間データを生成してもよい。
座標定義部812は、現実空間の座標(換言すると、複合現実空間21の座標。以下、「複合現実座標」という。)を定義する。また、座標定義部812は、仮想空間11の座標(以下、「仮想空間座標」という。)を定義する。
複合現実座標は、例えば、x軸、y軸、z軸の互いに直交する3軸を有する。仮想空間座標は、例えば、X軸、Y軸、Z軸の互いに直交する3軸を有する。座標定義部812は、現実空間(換言すると、現実の会議室21)の各地点に対応する(換言すると、同じ地点を示す)仮想空間11(換言すると、仮想の会議室)の各地点について、現実空間の各地点を示す複合現実座標と、仮想空間の各地点を示す仮想空間座標とが一対一で対応したものとなるように、各座標を定義する(換言すると対応付ける)。座標定義部812は、例えば、仮想空間生成部810が現実空間を模した仮想空間を生成する際に、複合現実座標と対応付けられた仮想空間座標を定義する。このとき、座標定義部812は、例えば、検出装置460またはMR装置410等によって検出される会議室の特徴点を基準として複合現実座標と仮想空間座標とを対応付けてもよい。また、座標定義部812は、例えば、検出装置460の位置あるいは会議室中に予め設置したマーカー等の位置を基準として複合現実座標と仮想空間座標とを対応付けてもよい。
また、座標定義部812は、複合現実座標と仮想空間座標との対応関係(換言すると、現実空間の各地点と、仮想空間の各地点との対応関係)に関する情報を、位置関係記憶部としての記憶部611に記憶させる。
なお、複合現実座標や仮想空間座標を定義する方法としては、公知の方法が利用でき、また特に限定されるものではない。
なお、複合現実座標を定義するタイミングや、仮想空間座標を定義するタイミング(換言すると、複合現実座標と仮想空間座標とを対応付けるタイミング)は、例えば、仮想空間生成部810が現実空間を模した仮想空間を生成するとき等であってもよく、MR装置410での仮想オブジェクトの表示開始のタイミング等であってもよい。
なお、仮想空間の生成や、各座標の定義等は、例えば、現実空間を高精度にスキャン可能な外部機器700としての専用の装置が予め行い、生成されたデータを記憶部611に記憶しておくこととしてもよい。
MR側入力受付部816は、MRユーザ6からの入力を受け付ける。換言すると、MR側入力受付部816は、MRユーザ6からの入力情報を取得する。具体的には、MR側入力受付部816は、検出装置460、コントローラ480、カメラ413、MRユーザが身につけるデバイス、注視センサ412、センサ417、センサ486、および検出装置460やMR装置410が備えるイメージセンサ等の出力を、MRユーザ6からの入力として受け付ける。換言すると、MR側入力受付部816は、MRユーザ6の動きを検出する検出手段(例えば、検出装置460、コントローラ480、カメラ413、注視センサ412、センサ417、センサ486、および検出装置460やMR装置410が備えるイメージセンサ等)の出力を、MRユーザ6からの入力として受け付ける。これらの装置やセンサは、後述するように、仮想空間11や複合現実空間21の仮想オブジェクト等を制御するために使用されるMRユーザ6の動きに関する情報等を取得するためのものであり、MRユーザ6は自身の動きによって、MRシステム400に対して当該仮想オブジェクト等を動かしたりするための情報を入力することが可能となっている。
具体的には、MR側入力受付部816は、例えば、検出装置460としてのカメラまたはカメラ413からの出力を、MRユーザ6からの入力として受け付けてもよい。より具体的には、MR側入力受付部816は、例えば、これらの各カメラが備えるイメージセンサによって撮影される画像から画像認識によって検出される、複合現実空間21中のMRユーザ6の位置を示す位置情報を、MRユーザ6からの入力として受け付けてもよい。換言すると、MR側入力受付部816は、複合現実空間21中のMRユーザ6の位置を検出する位置検出手段からの出力をMRユーザ6からの入力として受け付けてもよい。なお、当該位置検出手段は、例えば、MR装置410とMRシステム400の所定の装置(例えば、検出装置460やビーコン(図示せず)等)との間での無線通信(例えば、Wi-Fi通信、Bluetooth通信、またはUWB通信)に基づく測位、あるいはMR装置410の備えるGPS(Global Positioning System)センサを用いた測位等に基づいて、MRユーザ6の位置を検出し、当該位置情報を取得するもの等であってもよい。なお、MRユーザ6の位置を示す位置情報は、MRユーザ6の動きに関する情報ともいえる。
また、MR側入力受付部816は、例えば、検出装置460としてのカメラまたはカメラ413が備えるイメージセンサによって撮影される画像から画像認識によって検出されるMRユーザ6の動きに関する情報を、MRユーザ6からの入力として受け付けてもよい。例えば、MR側入力受付部816は、画像認識によって検出されるMRユーザ6の手の動きに関する情報や、MRユーザ6の傾きや向いている方向に関する情報を、MRユーザ6からの入力として受け付けてもよい。
また、MR側入力受付部816は、例えば、MRユーザ6が身につけるデバイス等(例えば、時計型、リストバンド型、指輪型、もしくは衣服型等のウェアラブルデバイス、または体内埋め込み型のデバイス等)の、MRユーザ6の動きをトラッキング可能とする機器(および当該機器と近距離無線通信等により連携してMRユーザ6の動きをトラッキングする機器)を用いて取得されるMRユーザ6の動きに関する情報を、MRユーザ6からの入力として受け付けてもよい。
また、MR側入力受付部816は、例えば、コントローラ480により検出されるMRユーザ6の操作を示す情報(換言すると、MRユーザ6の動きに関する情報)を、MRユーザ6からの入力として受け付けてもよい。
また、MR側入力受付部816は、例えば、検出装置460またはMR装置410の備えるセンサ(例えば、加速度センサ、角速度センサ、地磁気センサ等)からの、MR装置410の傾きや向いている方向に関する出力データ(換言すると、MRユーザ6の動きに関する情報)をMRユーザ6からの入力として受け付けてもよい。
ユーザ情報取得部818は、複合現実空間21中に存在するMRユーザ6に関する情報を取得する。具体的には、例えば、ユーザ情報取得部818は、複合現実空間21中の各MRユーザ6A,6B,6Cを識別可能とする識別情報(換言すると、各MR装置410を識別可能とする識別情報)を取得する。例えば、ユーザ情報取得部818は、各ユーザが身につけているMR装置410と通信を行い、MR装置410からMR装置410を使用しているユーザの情報(例えば、MR装置410にログインしているアカウントの情報等)を、当該識別情報として取得してもよい。また、例えば、ユーザ情報取得部818は、各ユーザが身につけているMR装置410と通信を行い、MR装置410から各MR装置410を識別可能とする各MR装置410固有の情報を、当該識別情報として取得してもよい。また、例えば、ユーザ情報取得部818は、検出装置460またはMR装置410が備えるイメージセンサによって撮影される画像から画像認識によって複合現実空間21中のMRユーザ6を識別することで、当該識別情報を取得してもよい。また、ユーザ情報取得部818は、MR側入力受付部816が取得する情報を、当該識別情報に関連付ける。換言すると、ユーザ情報取得部818は、MRユーザ6の動きに関する情報等が、後述する仮想オブジェクトの制御等において使用される際に、どのMRユーザ6の情報か把握可能となるように制御する。
MR側オブジェクト制御部820は、複合現実空間21中の仮想オブジェクトを制御する。
MR側オブジェクト制御部820は、複合現実空間21に、仮想オブジェクトを配置する。具体的には、MR側オブジェクト制御部820は、例えば、VRユーザのVRアバター25や、VRユーザまたはMRユーザ6の少なくとも一方によって所定の変化が与えられるオブジェクト等を配置する。本実施形態では、MR側オブジェクト制御部820は、図8に示されるように、VRアバター25と、VRユーザおよびMRユーザ6によって動かされたりするモックアップの仮想オブジェクト30(以下、「仮想模型30」ともいう。)とを、複合現実空間21に配置する。
MR側オブジェクト制御部820は、例えば、仮想空間11中における仮想オブジェクトが配置される位置に対応する複合現実空間21中の位置に、当該仮想オブジェクトに対応する仮想オブジェクトを配置する。ここで、当該仮想オブジェクトに対応する仮想オブジェクト、すなわち仮想空間11中の仮想オブジェクトに対応する複合現実空間21中の仮想オブジェクトとは、例えば、仮想空間11中の仮想オブジェクトと同じ形態を有するもの(換言すると、同じ物体を示すもの)であってもよく、異なる形態を有するものであってもよい。本実施形態では、複合現実空間21には、仮想空間11中の仮想模型30と同じ形態の仮想模型30が配置される。また、複合現実空間21には、仮想空間11中のVRアバター25と同じ形態のVRアバター25が配置される。
なお、複合現実空間21へのVRアバター25の配置については、以下のようにもいえる。すなわち、MR側オブジェクト制御部820は、仮想空間11中のVRユーザの位置に対応する複合現実空間21中の位置に、当該VRアバター25を配置するともいえる。ここで、仮想空間11中におけるVRユーザの位置とは、例えば、仮想空間11中のVRアバター25の位置である。なお、VRユーザが、一人称視点で仮想空間11に入り込むコンテンツにおいては、自身(VRアバター25)の姿を視認できない場合(具体的には、手などの一部しか視認できない場合や、一部すら視認できない場合)もあり得るが、このような場合についても、コンピュータ300が認識する仮想空間11中のVRユーザはVRアバター25といえ、コンピュータ300が認識する仮想空間11中のVRユーザの位置は仮想空間中のVRアバター25の位置といえる。
なお、VRアバター25の外見(換言すると、形態)は、VRユーザの外見を模したものでもよいが、模したものでなくてもよい。例えば、VRアバター25の外見は、所定の動物の外見を模したもの等であってもよい。また、仮想空間11中に配置されるVRアバター25と、複合現実空間21中に配置されるVRアバター25とは、外見が異なっていてもよい。このような構成によれば、VRユーザは、仮想空間11中の自身のアバターの形態を隠したまま複合現実空間21中に自身のアバターを表示させること等ができる。なお、ここで仮想空間11中に配置されるVRアバター25の外見とは、当該VRアバター25を操作するVRユーザに視認される外見であってもよく、当該VRアバター25が存在する仮想空間11に存在する、他のVRアバター25を操作する他のVRユーザに視認される外見等であってもよい。
また、MR側オブジェクト制御部820は、例えば、以下のようにして仮想オブジェクトを複合現実空間21中に配置してもよい。
すなわち、例えば、VRアバター25を配置する場合に、MR側オブジェクト制御部820は、仮想空間11中のVRユーザ(換言すると、VRアバター25)の位置を示す位置情報に基づいて、複合現実空間21中のどの位置に配置するかを決定する。具体的には、例えば、後述するVR側オブジェクト制御部920は、仮想空間11中にVRアバター25を配置すると、仮想空間11中のVRアバター25の位置(例えば、仮想空間座標の座標値)に関する情報を、サーバ600を介してMR側オブジェクト制御部820に送信する。そして、MR側オブジェクト制御部820は、当該情報に基づいて、仮想空間11中のVRユーザの位置に対応する複合現実空間21中の位置(例えば、前記仮想空間座標の座標値に対応する複合現実座標の座標値の位置)に、VRアバター25を配置する。これにより、VRアバター25が、仮想空間11と複合現実空間21とで、会議室中の同じ位置に配置されることとなる。
換言すると、仮想オブジェクト(例えば、VRアバター25または仮想模型30等)を複合現実空間21中に配置する場合に、MR側オブジェクト制御部820は、当該仮想オブジェクトに対応する仮想空間中の仮想オブジェクト(例えば、VRアバター25または仮想模型30等)の位置を示す位置情報(例えば、VR側オブジェクト制御部920が送信する位置情報)に基づいて、複合現実空間21中のどの位置に配置するかを決定してもよい。
また、例えば、仮想オブジェクトを複合現実空間21中に配置する場合に、MR側オブジェクト制御部820は、MRシステム400の所定のセンサが検出した情報に基づいて、複合現実空間21中のどの位置に配置するかを決定してもよい。具体的には、例えば、現実空間中に所定のマーカーを予め設置しておき、MR側オブジェクト制御部820は、検出装置460またはMR装置410が備えるイメージセンサによって撮影される当該マーカーの位置に、仮想オブジェクトとしての仮想模型30を配置するなどしてもよい。また、MR側オブジェクト制御部820は、MRユーザ6が指示した位置に、仮想オブジェクトとしての仮想模型30を配置するなどしてもよい。当該指示は、所定のジェスチャー等(例えば、仮想模型30を配置する地点を指差すジェスチャーなど)により行われるものであってもよく、前記マーカを配置するもの等であってもよい。また、MR側オブジェクト制御部820は、検出装置460またはMR装置410が備えるイメージセンサによって撮影される画像等から複合現実空間21中の平坦面を検出し、当該平坦面上に仮想模型30を配置するなどしてもよい。
なお、MR側オブジェクト制御部820は、仮想オブジェクトを複合現実空間21中に配置する場合に、仮想オブジェクトの形態を示すオブジェクトデータを受信し、当該オブジェクトデータに基づいて仮想オブジェクトを配置する。ここで、MR側オブジェクト制御部820は、オブジェクトデータを、例えば、サーバ600の制御部610から受信してもよく、VRシステム200のVR側オブジェクト制御部920から受信してもよい。具体的には、MR側オブジェクト制御部820は、VRアバター25を複合現実空間21中に配置する際に、VRアバター25の形態を示すオブジェクトデータを制御部610から受け取り、当該オブジェクトデータの示す形態のVRアバター25を複合現実空間21に配置してもよい。また、MR側オブジェクト制御部820は、VRアバター25を複合現実空間21中に配置する際に、VRアバター25の形態を示すオブジェクトデータをVR側オブジェクト制御部920から受け取り、当該オブジェクトデータの示す形態のVRアバター25を複合現実空間21に配置してもよい。
表示制御部840は、MR装置410のディスプレイ411における画像表示を制御する。表示制御部840は、MR側オブジェクト制御部820が配置した複合現実空間21中の仮想オブジェクトを、MR側オブジェクト制御部820が配置した位置に表示させるための画像を生成する。また、表示制御部840は、当該画像をディスプレイ411に表示させる。これにより、現実空間の所望の位置に仮想オブジェクトが配置された複合現実空間のビューがMRユーザ6に提供される。
また、表示制御部840は、ディスプレイ470における画像表示を制御する。表示制御部840は、例えば、ディスプレイ411に表示されている画像と同様の画像をディスプレイ470に表示させる。なお、表示制御部840は、MR装置410がMRユーザ6に提供する複合現実空間のビューを示す画像をディスプレイ470に表示させてもよい。
音制御部845は、MR装置410のマイク415によって、MRユーザ6の発話が検出されると、当該発話に対応する音データを取得する。また、音制御部845は、取得した音データを、ネットワーク2を介してコンピュータ300等に送信する。また、音制御部845は、ネットワーク2を介してコンピュータ300から音データを受信すると、当該音データに対応する音(発話)をスピーカ416から出力する。これにより、MRユーザ6は、例えば、VRユーザと通話によるコミュニケーションを行うことが可能となっている。なお、MR側入力受付部816は、マイク415が検出したMRユーザ6の発話に関する音データを、MRユーザ6からの入力として受け付けてもよい。
通信制御部850は、ネットワーク2を介して、サーバ600、コンピュータ300その他の情報通信装置と通信し得る。通信制御部850は、例えば、サーバ600またはコンピュータ300に、サーバ600またはコンピュータ300で使用される情報を送信する。また、通信制御部850は、例えば、サーバ600またはコンピュータ300から、コンピュータ500で使用される情報を受信する。
VRシステム200の制御部310は、VR側入力受付部916と、VR側オブジェクト制御部920と、仮想カメラ制御部930と、表示制御部940と、音制御部945と、通信制御部950と、を備える。
VR側入力受付部916は、VRユーザからの入力を受け付ける。換言すると、VR側入力受付部916は、VRユーザからの入力情報を取得する。具体的には、VR側入力受付部916は、検出装置260、コントローラ280、第1カメラ213、第2カメラ214、VRユーザが身につけるウェアラブルデバイス、注視センサ212、センサ217、センサ286、および検出装置260やVR装置210が備えるイメージセンサ等の出力を、VRユーザからの入力として受け付ける。換言すると、VR側入力受付部916は、VRユーザの動きを検出する検出手段(例えば、検出装置260、コントローラ280、第1カメラ213、第2カメラ214、VRユーザが身につけるウェアラブルデバイス、注視センサ212、センサ217、センサ286、および検出装置260やVR装置210が備えるイメージセンサ等)の出力を、VRユーザからの入力として受け付ける。これらの装置やセンサは、後述するように、仮想空間11や複合現実空間21の仮想オブジェクト等を制御するために使用されるVRユーザの動きに関する情報等を取得するためのものであり、VRユーザは自身の動きによって、VRシステム200に対して当該仮想オブジェクト等を動かしたりするための情報を入力することが可能となっている。
具体的には、VR側入力受付部916は、例えば、検出装置260としてのカメラまたはVR装置210の備えるVR装置210の周囲を撮影するカメラからの出力を、VRユーザからの入力として受け付けてもよい。より具体的には、VR側入力受付部916は、これらの各カメラが備えるイメージセンサによって撮影される画像から画像認識によって検出される、現実空間におけるVRユーザの位置を示す位置情報を、VRユーザからの入力として受け付けてもよい。換言すると、VR側入力受付部916は、VRユーザの現実空間における位置を検出する位置検出手段からの出力をVRユーザからの入力として受け付けてもよい。なお、当該位置検出手段は、例えば、VR装置210とVRシステム200の所定の装置(例えば、検出装置260やビーコン(図示せず)等)との間での無線通信(例えば、Wi-Fi通信、Bluetooth通信、またはUWB通信)に基づく測位、あるいはVR装置210の備えるGPS(Global Positioning System)センサを用いた測位等に基づいて、VRユーザの位置を検出し、当該位置情報を取得するもの等であってもよい。なお、VRユーザの位置を示す位置情報は、VRユーザの動きに関する情報ともいえる。
また、VR側入力受付部916は、例えば、検出装置260としてのカメラまたはVR装置210の備えるVR装置210の周囲を撮影するカメラが備えるイメージセンサによって撮影される画像から画像認識によって検出されるVRユーザの動きに関する情報を、VRユーザからの入力として受け付けてもよい。例えば、VR側入力受付部916は、画像認識によって検出されるVRユーザの手の動きに関する情報や、VRユーザの傾きや向いている方向に関する情報を、VRユーザからの入力として受け付けてもよい。
また、VR側入力受付部916は、例えば、VRユーザが身につけるデバイス等(例えば、時計型、リストバンド型、指輪型、もしくは衣服型等のウェアラブルデバイス、または体内埋め込み型のデバイス等)の、VRユーザの動きをトラッキング可能とする機器(および当該機器と近距離無線通信等により連携してMRユーザ6の動きをトラッキングする機器)を用いて取得されるユーザの動きに関する情報を、VRユーザからの入力として受け付けてもよい。
また、VR側入力受付部916は、例えば、コントローラ280により検出されるVRユーザの操作を示す情報(換言すると、VRユーザの動きに関する情報)を、VRユーザからの入力として受け付けてもよい。
また、VR側入力受付部916は、例えば、検出装置260またはVR装置210の備えるセンサ(例えば、加速度センサ、角速度センサ、地磁気センサ等)からの、VR装置210の傾きや向いている方向に関する出力データ(換言すると、VRユーザの動きに関する情報)をVRユーザからの入力として受け付けてもよい。
制御部310は、仮想空間11を制御する。制御部310は、記憶部611に記憶された仮想空間11を示す仮想空間データを取得し、当該仮想空間データに基づいてVRユーザに提供する仮想空間11を定義する。
VR側オブジェクト制御部920は、仮想空間11中の仮想オブジェクトを制御する。
VR側オブジェクト制御部920は、仮想空間データの示す仮想空間11に、仮想オブジェクトを配置する。仮想オブジェクトを示すオブジェクトデータは、例えば、オブジェクトデータ記憶部としての記憶部611または記憶部311に記憶されている。そして、VR側オブジェクト制御部920は、当該オブジェクトデータを用いて、仮想空間11に仮想オブジェクトを配置する。
具体的には、VR側オブジェクト制御部920は、例えば、仮想的な会議室内に、MRユーザ6A,6B,6CのMRアバター26A,26B,26Cや、VRユーザまたはMRユーザ6の少なくとも一方によって所定の変化が与えられる仮想オブジェクト等を配置する。本実施形態では、VR側オブジェクト制御部920は、VRアバター25と、MRアバター26と、VRユーザおよびMRユーザ6によって動かされたりするモックアップの仮想オブジェクト30(以下、「仮想模型30」ともいう。)とを、仮想空間11に配置する。なお、仮想空間11には、現実オブジェクトとしての机8に対応する仮想オブジェクト31等も配置される。
なお、例えば、VRユーザの使用するVRシステム200(換言すると、コンピュータ300)に、ネットワーク2を介して他のVRユーザが使用するVRシステム200(換言すると、コンピュータ300)が接続される場合、VR側オブジェクト制御部920は、仮想空間11に、当該他のVRユーザのVRアバター25を配置してもよい。他のVRユーザのVRアバター25は、当該他のVRユーザによって操作され得る。
VR側オブジェクト制御部920は、例えば、複合現実空間21中のMRユーザ6の位置に対応する仮想空間11中の位置に当該MRユーザ6のMRアバター26を配置する。すなわち、VR側オブジェクト制御部920は、現実の会議室21におけるMRユーザ6A,6B,6Cのそれぞれが存在する位置と、仮想の会議室におけるMRアバター26A,26B,26Cのそれぞれが存在する位置とが同じ位置となるように、MRアバター26A,26B,26Cを配置する。
なお、MRアバター26の外見(換言すると、形態)は、MRユーザ6の外見を模したものでもよいが、模したものでなくてもよい。例えば、MRアバター26の外見は、所定の動物の外見を模したもの等であってもよい。VR側オブジェクト制御部920は、仮想オブジェクトを複合現実空間21中に配置する場合に、仮想オブジェクトの形態を示すオブジェクトデータを受信し、当該オブジェクトデータに基づいて仮想オブジェクトを配置する。ここで、VR側オブジェクト制御部920は、オブジェクトデータをサーバ600の制御部610から受信してもよく、MRシステム400のMR側オブジェクト制御部820から受信してもよい。具体的には、例えば、VR側オブジェクト制御部920は、MRアバター26を仮想空間11中に配置する際に、MRアバター26の形態を示すオブジェクトデータを制御部610またはMR側オブジェクト制御部820から受け取り、当該オブジェクトデータの示す形態のMRアバター26を仮想空間11に配置してもよい。なお、MRアバター26の外見は、MRユーザ6が予め設定しておくことが可能となっており、VR装置210でMRアバター26が表示される際に、MRユーザ6が設定した外見で表示がされるようになっていてもよい。また、MRアバター26の外見が、MRユーザ6の外見を模したものである場合、VR側オブジェクト制御部920は、検出装置460としてのカメラやカメラ413等の所定のカメラによって取得されるMRユーザ6の画像に基づいて生成される(例えば、制御部510が生成する)MRアバター26を、仮想空間11に配置するなどしてもよい。
仮想カメラ制御部930は、仮想空間11に仮想カメラ14を配置する。また、仮想カメラ制御部930は、仮想空間11における仮想カメラ14の位置と、仮想カメラ14の傾き(向き)とを制御する。なお、本実施形態では、仮想カメラ制御部930は、仮想カメラ14を仮想空間11におけるVRアバター25の目の位置に配置する。換言すると、仮想カメラ制御部930は、仮想カメラ14の位置をVRアバター25の位置と連動させ、仮想空間11内においてVRアバター25が移動すると、仮想空間11内で仮想カメラ14を移動させる。なお、仮想カメラ14の位置は、VRアバター25の位置と連動するものでなくてもよい。例えば、仮想カメラ14を所定の位置に固定したまま、仮想空間11内でVRアバター25を移動させること等が可能となっていてもよい。
表示制御部940は、VR装置210のディスプレイ211における画像表示を制御する。表示制御部940は、仮想カメラ14の位置と傾き(換言すると、VR装置210を装着したVRユーザの頭の傾き)に応じて、視界領域15を規定する。また、表示制御部940は、規定した視界領域15に基づいて、ディスプレイ211に表示される視界画像17を生成する。表示制御部940により生成された視界画像17は、VR装置210に出力される。
また、表示制御部940は、ディスプレイ270における画像表示を制御する。表示制御部940は、例えば、ディスプレイ211に表示されている画像と同様の画像をディスプレイ270に表示させる。
音制御部945は、VR装置210から、VRユーザのマイク215を用いた発話を検出すると、当該発話に対応する音データを取得する。また、音制御部945は、取得した音データを、ネットワーク2を介してコンピュータ500や他のVRユーザのコンピュータ300等に送信する。また、音制御部945は、ネットワーク2を介してコンピュータ500や他のユーザのコンピュータ300から音データを受信すると、当該音データに対応する音(発話)をスピーカ216から出力する。これにより、VRユーザは、例えば、MRユーザ6と通話によるコミュニケーションを行うことが可能となっている。なお、VR側入力受付部916は、マイク215が検出したVRユーザの発話に関する音データを、VRユーザからの入力として受け付けてもよい。
通信制御部950は、ネットワーク2を介して、サーバ600、コンピュータ500、他のVRユーザのコンピュータ300その他の情報通信装置と通信し得る。通信制御部950は、例えば、サーバ600、コンピュータ500、または他のVRユーザのコンピュータ300に、サーバ600、コンピュータ500、または他のVRユーザのコンピュータ300で使用される情報を送信する。また、通信制御部850は、例えば、サーバ600、コンピュータ500、または他のVRユーザのコンピュータ300から、コンピュータ300で使用される情報を受信する。
(複合現実空間と仮想空間との融合)
本実施形態では、MR側入力受付部816が取得したMRユーザ6からの入力に基づいて、MR装置410が表示する仮想オブジェクトと、VR装置210が表示する仮想オブジェクトとが制御されるようになっている。
具体的には、MR側オブジェクト制御部820は、MR側入力受付部816が受け付けたMRユーザ6からの入力に基づいて、複合現実空間21中の仮想オブジェクト、具体的には仮想模型30に所定の変化を与える。ここで、所定の変化とは、仮想オブジェクトを移動させたり、仮想オブジェクトの傾きや向いている方向等を変化させたり、仮想オブジェクトのパーツ同士の相対的な位置関係を変化させたりするなど、複合現実空間21中の仮想オブジェクトを動かすものであってもよい。また、所定の変化とは、仮想オブジェクトの色を変化させたり、仮想オブジェクトが表示する情報等を変化させたり、仮想オブジェクトの形態を変化させたりするものであってもよい。
より具体的には、MR側オブジェクト制御部820は、例えば、MR側入力受付部816が受け付けた、MRユーザ6の動きに関する情報に基づいて、複合現実空間21中の仮想模型30を動かす。具体的には、例えば、検出手段(例えば、検出装置460またはカメラ413等)によって、MRユーザ6が仮想模型30を持って運ぶジェスチャーが検出され、検出手段が当該ジェスチャーに関する出力をすると、MR側入力受付部816は、当該出力をMRユーザ6からの入力として受け付ける。また、MR側オブジェクト制御部820は、MR側入力受付部816が受け付けた当該入力に基づいて、当該ジェスチャーによるMRユーザ6からの指示に従い、仮想模型30を複合現実空間21中で移動させる。なお、仮想オブジェクトとしての仮想模型30に所定の変化を与えるMRユーザ6のジェスチャーは、複合現実空間21中で仮想模型30に触れるものでなくてもよい。例えば、仮想模型30に向けて手をかざし、手を横に振るジェスチャーによって仮想オブジェクトを回転させること等が可能となっていてもよい。
また、MR側オブジェクト制御部820は、例えば、MR側入力受付部816が受け付けた、コントローラ480に対するMRユーザ6の操作に関する情報(換言すると、MRユーザ6の動きに関する情報)に基づいて、仮想オブジェクトに所定の変化を与えるなどしてもよい。また、MR側オブジェクト制御部820は、例えば、MR側入力受付部816が受け付けた、MRユーザ6の発話に関する音データに基づいて、仮想オブジェクトに所定の変化を与えるなどしてもよい。
また、VR側オブジェクト制御部920は、MR側入力受付部816が受け付けたMRユーザ6からの入力に基づいて、仮想空間11中の仮想オブジェクトに所定の変化を与える。
具体的には、VR側オブジェクト制御部920は、例えば、MR側入力受付部816が受け付けたMRユーザ6からの入力に基づいて複合現実空間21中の仮想模型30に与えられる変化と同様の変化を、仮想空間11中の仮想模型30に与える。すなわち、例えば、前述のように、MRユーザ6の仮想模型30を持って運ぶジェスチャーによって、複合現実空間21中の仮想模型30が移動すると、VR側オブジェクト制御部920は、仮想空間11中の仮想模型30を、同じように移動させる。
なお、複合現実空間21中の仮想模型30に与えられる変化と同様の変化を仮想空間中の仮想模型30に与える方法については、特に限定されるものではないが、例えば以下のようにしてもよい。すなわち、例えば、MR側オブジェクト制御部820は、MRユーザ6からの入力に基づいて複合現実空間21中の仮想模型30(換言すると、仮想オブジェクト)を動かすと(換言すると、所定契機で)、VR側オブジェクト制御部920に対して、動かした後の仮想模型30の位置や傾きを示す情報(換言すると、仮想模型30の状態に関する情報)を送ってもよい。そして、VR側オブジェクト制御部920は、仮想空間11中の当該情報によって示される位置に仮想模型30を配置したり、当該情報によって示される傾きで仮想模型30を配置したりしてもよい。また、例えば、通信制御部850が、MRユーザ6からの入力に基づく情報(例えば、制御部510が当該入力に基づいて算出(換言すると、取得)する仮想模型30の移動量や移動軌跡や傾き等に関する情報)を通信制御部950に対して送り、VR側オブジェクト制御部920は、当該情報に基づいて、仮想模型30等の仮想オブジェクトを動かす等してもよい。すなわち、本実施形態では、VR側オブジェクト制御部920は、MR側入力受付部816が受け付けたMRユーザ6からの入力に基づいて、仮想空間11中の仮想オブジェクトに所定の変化を与えるが、「MRユーザ6からの入力に基づいて」とは、VR側オブジェクト制御部920自体が当該入力を受け取って仮想オブジェクトを制御するものに限られず、仮想空間11中の仮想オブジェクトが結果として当該入力に応じて所定の変化をするものであればよい。
また、VR側オブジェクト制御部920は、例えば、MR側入力受付部816が受け付けたMRユーザ6からの入力に基づいて、仮想空間11中のMRアバター26を動かす。具体的には、VR側オブジェクト制御部920は、例えば、MR側入力受付部816が受け付けた、MRユーザ6の動きに関する情報に基づいて、MRアバター26を動かす。例えば、VR側オブジェクト制御部920は、MR側入力受付部816が、MRユーザ6からの入力として受け付ける、複合現実空間21中のMRユーザ6の位置を示す位置情報に基づいて、MRアバター26を動かす。すなわち、VR側オブジェクト制御部920は、当該位置情報に基づいて、複合現実空間21中のMRユーザ6の位置に対応する仮想空間11中の位置にMRアバター26を配置し、MRユーザ6が複合現実空間21中で移動すると、移動後の位置に対応する仮想空間11中の位置にMRアバター26を配置する。
また、VR側オブジェクト制御部920は、例えば、MR側入力受付部816が、MRユーザ6からの入力として受け付ける、MRユーザ6の体の各部位の動き(例えば、手の動きや、頭の動きや、目の動きや、表情の変化等)に関する情報や、MRユーザ6の傾きや向いている方向に関する情報に基づいて、MRアバター26を動かす。すなわち、VR側オブジェクト制御部920は、これらの各情報に基づいて、MRユーザ6の体の各部位の動き(換言すると、姿勢)や、MRユーザ6の傾きや向いている方向を、仮想空間11中のMRアバター26に反映させる。すなわち、本実施形態では、VR側オブジェクト制御部920は、仮想空間11中のMRアバター26の動きが、MRユーザ6の動きを検出する検出手段が検出するMRユーザ6の動きを模したものとなるように、MRアバター26の動きを制御する。換言すると、VR側オブジェクト制御部920は、少なくとも体の一部(例えば、手、足、頭、目、口等)について、MRアバター26の動きが、MRユーザ6の動きに連動したものとなるように、MRアバター26の動きを制御する。
なお、MRアバター26の動きの少なくとも一部が、コントローラ480に対するMRユーザ6の操作(例えば、アナログスティックやボタン等に対する操作)により実現されてもよい。すなわち、例えば、VR側オブジェクト制御部920は、MRユーザ6からの入力としての、コントローラ480に対するMRユーザ6の操作を示す情報に基づいて、MRアバター26の体の一部を動かす等してもよい。
なお、仮想空間11中のMRアバター26は、仮想空間11中における位置あるいは動きの少なくとも一方が、複合現実空間21中のMRユーザ6の位置あるいは動きに連動したものでなくてもよい。すなわち、例えば、複合現実空間21中においてMRユーザ6が移動しても、仮想空間11中のMRアバター26がこれに応じた移動をしないものであってもよい。また、例えば、複合現実空間21中においてMRユーザ6が手を動かしたりしても、仮想空間11中のMRアバター26がこれと同じ動きをしないものであってもよい。
また、本実施形態では、VR側入力受付部916が取得したVRユーザからの入力に基づいて、VR装置210が表示する仮想オブジェクトと、MR装置410が表示する仮想オブジェクトとが制御されるようになっている。
具体的には、VR側オブジェクト制御部920は、VR側入力受付部916が受け付けたVRユーザからの入力に基づいて、仮想空間11中の仮想オブジェクト、具体的には仮想模型30に所定の変化を与える。
より具体的には、VR側オブジェクト制御部920は、例えば、VR側入力受付部916が受け付けた、コントローラ280に対するVRユーザの操作を示す情報(換言すると、VRユーザの動きに関する情報)に基づいて、仮想空間11中の仮想模型30に所定の変化を与える。具体的には、例えば、VR側オブジェクト制御部920は、コントローラ280に対する操作によるVRユーザからの指示に従い、仮想模型30を仮想空間11中で移動させる。
また、VR側オブジェクト制御部920は、例えば、検出手段によって検出されるVRユーザのジェスチャー等に基づいて、仮想オブジェクトに所定の変化を与えるなどしてもよい。また、VR側オブジェクト制御部920は、例えば、VR側入力受付部916が受け付けた、VRユーザの発話に関する音データに基づいて、仮想オブジェクトに所定の変化を与えるなどしてもよい。
また、MR側オブジェクト制御部820は、VR側入力受付部916が受け付けたVRユーザからの入力に基づいて、複合現実空間21中の仮想オブジェクトに所定の変化を与える。
具体的には、MR側オブジェクト制御部820は、例えば、VR側入力受付部916が受け付けたVRユーザからの入力に基づいて仮想空間11中の仮想模型30に与えられる変化と同様の変化を、複合現実空間21中の仮想模型30に与える。すなわち、例えば、前述のように、VRユーザのコントローラ280に対する操作によって、仮想空間11中の仮想模型30が移動すると、MR側オブジェクト制御部820は、複合現実空間21中の仮想模型30を、同じように移動させる。
なお、仮想空間11中の仮想模型30に与えられる変化と同様の変化を複合現実空間21中の仮想模型30に与える方法については、特に限定されるものではないが、例えば以下のようにしてもよい。すなわち、例えば、VR側オブジェクト制御部920は、VRユーザからの入力に基づいて仮想空間11中の仮想模型30(換言すると、仮想オブジェクト)を動かすと(換言すると、所定契機で)、MR側オブジェクト制御部820に対して、動かした後の仮想模型30の位置や傾きを示す情報(換言すると、仮想模型30の状態に関する情報)を送ってもよい。そして、MR側オブジェクト制御部820は、複合現実空間21中の当該情報によって示される位置に仮想模型30を配置したり、当該情報によって示される傾きで仮想模型30を配置したりしてもよい。また、例えば、通信制御部950が、VRユーザからの入力に基づく情報(例えば、制御部310が当該入力に基づいて算出(換言すると、取得)する仮想模型30の移動量や移動軌跡や傾き等に関する情報)を通信制御部850に対して送り、MR側オブジェクト制御部820は、当該情報に基づいて、仮想模型30等の仮想オブジェクトを動かしたりしてもよい。すなわち、本実施形態では、MR側オブジェクト制御部820は、VR側入力受付部916が受け付けたVRユーザからの入力に基づいて、複合現実空間21中の仮想オブジェクトに所定の変化を与えるが、「VRユーザからの入力に基づいて」とは、MR側オブジェクト制御部820自体が当該入力を受け取って仮想オブジェクトを制御するものに限られず、複合現実空間21中の仮想オブジェクトが結果として当該入力に応じて所定の変化をするものであればよい。
また、VR側オブジェクト制御部920は、VR側入力受付部916が受け付けたVRユーザからの入力に基づいて、仮想空間11中のVRアバター25に所定の変化を与える。具体的には、VR側オブジェクト制御部920は、例えば、VR側入力受付部916が受け付けた、コントローラ280に対するVRユーザの操作を示す情報(換言すると、VRユーザの動きに関する情報)に基づいて、仮想空間11中のVRアバター25に所定の変化を与える。具体的には、例えば、VR側オブジェクト制御部920は、コントローラ280に対する操作によるVRユーザからの指示に従い、VRアバター25を仮想空間11中で移動させる。
また、VR側オブジェクト制御部920は、例えば、VR側入力受付部916が、VRユーザからの入力として受け付ける、VRユーザの体の各部位の動き(例えば、手の動きや、頭の動きや、目の動きや、表情の変化等)に関する情報や、VRユーザの傾きや向いている方向に関する情報に基づいて、VRアバター25を動かす。すなわち、VR側オブジェクト制御部920は、これらの各情報に基づいて、VRユーザの体の各部位の動き(換言すると、姿勢)や、VRユーザの傾きや向いている方向を、仮想空間11中のVRアバター25に反映させる。すなわち、本実施形態では、VR側オブジェクト制御部920は、仮想空間11中のVRアバター25の動きが、VRユーザの動きを検出する検出手段が検出するVRユーザの動きを模したものとなるように、VRアバター25の動きを制御する。換言すると、VR側オブジェクト制御部920は、少なくとも体の一部(例えば、手、足、頭、目、口等)について、VRアバター25の動きが、VRユーザの動きに連動したものとなるように、VRアバター25の動きを制御する。
また、MR側オブジェクト制御部820は、例えば、VR側入力受付部916が受け付けたVRユーザからの入力に基づいて仮想空間11中のVRアバター25に与えられる変化と同様の変化を、複合現実空間21中のVRアバター25に与える。すなわち、例えば、前述のように、VRユーザのコントローラ280に対する操作によって、仮想空間11中のVRアバター25が移動すると、MR側オブジェクト制御部820は、複合現実空間21中のVRアバター25を、同じように移動させる。なお、仮想空間11中のVRアバター25に与えられる変化と同様の変化を複合現実空間21中のVRアバター25に与える方法については、特に限定されるものではないが、例えば前述の仮想模型30の場合と同様にすることができる。
なお、VRアバター25の仮想空間11中における位置および複合現実空間21中における位置が、現実空間におけるVRユーザの移動に伴い移動してもよい。すなわち、例えば、VR側オブジェクト制御部920は、VRユーザからの入力としての、現実空間におけるVRユーザの位置を示す位置情報に基づいて、VRアバター25を移動させてもよい。
また、仮想空間11中のVRアバター25および複合現実空間21中のVRアバター25の一部の動きがコントローラ280に対する操作によって実現されてもよい。すなわち、例えば、VR側オブジェクト制御部920およびMR側オブジェクト制御部820は、VRユーザからの入力としての、コントローラ280に対するVRユーザの操作を示す情報に基づいて、VRアバター25の体の一部を動かす等してもよい。
本実施形態では、所定の現実空間としての会議室21に実際に存在する現実オブジェクトに対する行動の結果についても、VRユーザとMRユーザ6との間で共有することが可能となっている。この点について、以下では、現実オブジェクトとしての所定の記入が可能なオブジェクト(例えば、黒板やホワイトボード等)についての制御を例に説明する。図8に示されるように、複合現実空間21には、現実オブジェクトとしての黒板35が配置されており、仮想空間11には、黒板35に対応する位置に、黒板35に対応する仮想オブジェクトとしての仮想黒板36が配置されているものとする。
本実施形態では、複合現実空間21においてMRユーザ6が現実オブジェクトとしての黒板35に対して行った行動(換言すると、行動の結果)が、複合現実空間21の黒板35に反映されるようになっている。また、本実施形態では、当該行動が、仮想空間11の仮想黒板36に反映されるようになっている。
複合現実空間21においては、MRユーザ6は、黒板35に対して所定の記入を行うことが可能となっている。また、MRユーザ6による黒板35に対する記入動作は、当該記入動作を検出する検出手段(以下、「MR側記入検出手段」という。)によって検出され、MR側記入検出手段からの出力(換言すると、記入動作に関する情報)がMRユーザ6からの入力としてMR側入力受付部816に受け付けられるようになっている。MR側記入検出手段は、例えば、MRユーザ6の手の動きを検出可能な検出手段であってもよい。具体的には、MR側記入検出手段は、例えば、コントローラ480としてのペン型のコントローラ等であってもよい。また、MR側記入検出手段は、検出装置460としてのカメラや、カメラ413等であってもよい。また、MR側記入検出手段は、MRユーザ6が身につけるデバイス等であってもよい。また、MR側記入検出手段は、黒板35が備えるセンサ(例えば、タッチセンサや、黒板35の備える赤外光を発する装置からの赤外光の反射光を読み取るセンサ等)であってもよい。換言すると、黒板35は、コンピュータ500と通信可能となっており、黒板35の備えるセンサによって検出されたMRユーザ6の記入動作に関する情報が、MRユーザ6からの入力としてMR側入力受付部816に受け付けられるようになっていてもよい。
複合現実空間21の黒板35には、MRユーザ6の記入動作が反映される。換言すると、MRユーザ6が記入動作を行うと、黒板35は、図10(a)に示されるように、MRユーザ6の記入した記入内容(例えば、図10(a)における、月の絵、ハートの絵、および「Sample」の文字)を表示する状態に変化する。例えば、黒板35は、MRユーザ6の記入した記入内容を電子的に表示する(換言すると、反映する)電子黒板となっており、MRユーザ6が記入動作を行うと、記入内容を表示する状態に変化するようになっていてもよい。具体的には、例えば、黒板35の記入面自体がディスプレイとなっており、当該ディスプレイが記入内容を表示してもよい。また、黒板35が、記入面に画像を投影するプロジェクタを備え、当該プロジェクタが記入面に記入内容を映し出してもよい。換言すると、複合現実空間21へのユーザの行動の反映(換言すると、MRユーザ6の行動に起因するMR装置410を介して見られる複合現実空間21の変化)は、現実オブジェクト自体に何らかの変化(例えば、表示内容の変化)が起こることにより実現されてもよい。なお、記入内容を電子的に表示する場合に、黒板35のコンピュータが、黒板の備えるセンサの検出結果に基づいて当該表示を制御してもよく、コンピュータ500が、MR側記入検出手段の検出結果に基づいて当該表示を制御してもよい。すなわち、例えば、コンピュータ500の制御部510等が、MR側入力受付部816が受け付けたMRユーザ6からの入力に基づいて黒板35の表示を制御する制御手段(以下、「黒板表示制御手段」という。)として機能してもよい。具体的には、黒板表示制御手段は、MRユーザ6からの入力に基づいて、黒板35のディスプレイまたはプロジェクタが表示する画像が、記入内容を示す画像となるように制御してもよい。なお、複合現実空間21の黒板35へのMRユーザ6の記入動作の反映は、MRユーザ6がチョーク等の筆記具によって実際に黒板35に文字や絵を記入することにより行われてもよい。換言すると、筆記具によって実際に黒板35に文字や絵を記入する動作が、MRユーザ6の記入動作としてMR側記入検出手段によって検出されてもよい。
また、例えば、MR側オブジェクト制御部820は、MRユーザ6の記入した記入内容を示す仮想オブジェクト(以下、「記入オブジェクト37」という。)を生成し、複合現実空間21の黒板35の位置に配置してもよい(図10(a)参照)。具体的には、MR側オブジェクト制御部820は、MR側入力受付部816が受け付けたMRユーザ6からの入力に基づいて、記入オブジェクト37を生成してもよい。そして、MR装置410を介して黒板35を見た場合に、黒板35が記入内容(換言すると、記入オブジェクト37)を表示する状態が視認されるようになっていてもよい。換言すると、複合現実空間21へのユーザの行動の反映(換言すると、MRユーザ6の行動に起因するMR装置410を介して見られる複合現実空間21の変化)は、現実オブジェクトに対して所定の仮想オブジェクトが付加されることにより実現されてもよい。
また、VR側オブジェクト制御部920は、MR側入力受付部816が受け付けたMRユーザ6からの入力に基づいて、現実オブジェクトに対応する仮想オブジェクトに所定の変化を与える。具体的には、VR側オブジェクト制御部920は、図10(b)に示されるように、MRユーザ6からの入力を仮想黒板36に反映させ、仮想黒板36がMRユーザ6の記入した記入内容を表示する状態となるように制御する。換言すると、VR側オブジェクト制御部920は、MRユーザ6の行動に基づく複合現実空間21中の現実オブジェクト(例えば、黒板35)に関する変化を、当該現実オブジェクトに対応する仮想空間11中の仮想オブジェクト(例えば、仮想黒板36)に反映させる。具体的には、例えば、MRユーザ6の記入動作に関する情報が、MR側入力受付部816に入力されると、VR側オブジェクト制御部920は、MRユーザ6の記入した記入内容を示す記入オブジェクト38を、仮想空間11の仮想黒板36の位置に配置することとしてもよい(図10(b)参照)。また、VR側オブジェクト制御部920は、例えば、仮想黒板36自体の形態を変化させることにより、仮想黒板36が記入内容を表示する状態となるように制御してもよい。また、仮想黒板36が、黒板35のディスプレイまたはプロジェクタ等が表示している画像を表示する仮想オブジェクトとなっており、VR側オブジェクト制御部920は、当該画像を仮想黒板36に表示させるようになっていてもよい。また、複合現実空間21の黒板35を撮影するカメラをMRシステム400が備え、仮想黒板36は、当該カメラにより撮影される画像を表示する仮想オブジェクトとなっており、VR側オブジェクト制御部920は、当該画像を仮想黒板36に表示させるようになっていてもよい。
また、本実施形態では、仮想空間11においてVRユーザが仮想オブジェクトとしての仮想黒板36に対して行った行動(換言すると、行動の結果)が、仮想空間11の仮想黒板36に反映されるようになっている。また、本実施形態では、当該行動が、複合現実空間21の黒板35に反映されるようになっている。
仮想空間11においては、VRユーザは、仮想黒板36に対して所定の記入を行うことが可能となっている。また、VRユーザによる仮想黒板36に対する記入動作は、当該記入動作を検出する検出手段(以下、「VR側記入検出手段」という。)によって検出され、VR側記入検出手段からの出力がVRユーザからの入力としてVR側入力受付部916に受け付けられるようになっている。VR側記入検出手段は、例えば、VRユーザの手の動きを検出可能な検出手段であってもよい。具体的には、VR側記入検出手段は、例えば、コントローラ280等であってもよい。また、VR側記入検出手段は、検出装置260としてのカメラ等であってもよい。また、VR側記入検出手段は、VRユーザが身につけるデバイス等であってもよい。
複合現実空間21の黒板35には、VRユーザの記入動作が反映される。換言すると、VRユーザが記入動作を行うと、黒板35は、VRユーザの記入した記入内容を表示する状態に変化する。さらに換言すると、黒板35には、VR側入力受付部916が受け付けたVRユーザからの入力が反映される。黒板35へのVRユーザからの入力の反映は、例えば、以下のように行ってもよい。すなわち、例えば、MR側オブジェクト制御部820は、VRユーザの記入した記入内容を示す記入オブジェクト37を、複合現実空間21の黒板35の位置に配置してもよい。また、前記黒板表示制御手段が、VRユーザからの入力に基づいて、黒板35のディスプレイまたはプロジェクタが表示する画像が、VRユーザの記入した記入内容を示す画像となるように制御してもよい。すなわち、MR側オブジェクト制御部820または黒板表示制御手段は、VR側入力受付部916が受け付けたVRユーザからの入力を、複合現実空間21中の現実オブジェクトに反映させる反映手段として機能し得る。
また、仮想空間11の仮想黒板36にも、VRユーザの記入動作が反映される。換言すると、VRユーザが記入動作を行うと、仮想黒板36は、VRユーザの記入した記入内容を表示する状態に変化する。さらに換言すると、仮想黒板36には、VR側入力受付部916が受け付けたVRユーザからの入力が反映される。具体的には、VR側オブジェクト制御部920は、VR側入力受付部916が受け付けたVRユーザからの入力に基づいて、仮想黒板36に所定の変化を与える。より具体的には、VR側オブジェクト制御部920は、VRユーザからの入力を仮想黒板36に反映させ、仮想黒板36がVRユーザの記入した記入内容を表示する状態となるように制御する。具体的には、例えば、VRユーザの記入動作に関する情報が、VR側入力受付部916に入力されると、VR側オブジェクト制御部920は、VRユーザの記入した記入内容を示す記入オブジェクト38を、仮想空間11の仮想黒板36の位置に配置することとしてもよい。また、VR側オブジェクト制御部920は、例えば、仮想黒板36自体の形態を変化させることにより、仮想黒板36が記入内容を表示する状態となるように制御してもよい。また、仮想黒板36が、黒板35のディスプレイまたはプロジェクタ等が表示している画像を表示する仮想オブジェクトとなっており、VR側オブジェクト制御部920は、当該画像を仮想黒板36に表示させるようになっていてもよい。また、複合現実空間21の黒板35を撮影するカメラをMRシステム400が備え、仮想黒板36は、当該カメラにより撮影される画像を表示する仮想オブジェクトとなっており、VR側オブジェクト制御部920は、当該画像を仮想黒板36に表示させるようになっていてもよい。換言すると、VR側入力受付部916が受け付けたVRユーザからの入力が、複合現実空間21中の現実オブジェクトに反映され、これにより、VRユーザからの入力に基づく仮想黒板36の変化が起こるようになっていてもよい。
以上のように、本実施形態では、MRユーザ6が現実オブジェクトに対して行った行動、および、VRユーザが当該現実オブジェクトに対応する仮想オブジェクトに対して行った行動が、複合現実空間21および仮想空間11に反映されるようになっている。このような、各行動の複合現実空間21または仮想空間11への反映は、以下のようなものであってもよい。
すなわち、例えば、MRユーザ6が、複合現実空間21において、レーザポインタ等の所定のポインタで任意の位置を指し示すと、仮想空間11においても指し示された位置(以下、「指示位置」という。)がわかるようになっていてもよい。具体的には、例えば、複合現実空間21では、MRシステム400の検出装置460やカメラ413等が、指示位置を検出する指示位置検出手段として機能してもよい。そして、指示位置検出手段によって検出された指示位置に関する情報が、MRユーザ6からの入力としてMR側入力受付部816に受け付けられるようになっていてもよい。また、VR側オブジェクト制御部920は、複合現実空間21中の指示位置に対応する仮想空間11中の位置に、レーザポインタからの光を示す仮想オブジェクトを配置するなどしてもよい。換言すると、制御部310は、VR装置210における仮想空間11の表示において、複合現実空間21中の指示位置に対応する仮想空間11中の位置が、レーザポインタからの光を表す所定の色で光るように制御してもよい。
また、例えば、VRユーザが、仮想空間11において、仮想的なレーザポインタ等の所定のポインタで任意の位置を指し示すと、複合現実空間21においても指示位置がわかるようになっていてもよい。具体的には、例えば、仮想的なレーザポインタを操作するためのコントローラ280に対するVRユーザの操作に関する情報(換言すると、VRユーザの動きに関する情報)がVR側入力受付部916に入力されると、VR側オブジェクト制御部920は、VRユーザの操作によって指示される位置(換言すると、仮想的なレーザポインタによって指示される位置)に、仮想的なレーザポインタからの光を示す仮想オブジェクトを配置するなどしてもよい。換言すると、制御部310は、VR装置210における仮想空間の表示において、仮想的なVRユーザの操作によって指示される仮想空間11中の位置が、仮想的なレーザポインタからの光を表す所定の色で光るように制御してもよい。また、制御部510等は、仮想空間11中の指示位置(具体的には、VRユーザによる指示位置)に対応する複合現実空間21中の位置が、仮想的なレーザポインタからの光を表す所定の色で光るように制御してもよい。具体的には、MR側オブジェクト制御部820は、仮想空間11中の指示位置に対応する複合現実空間21中の位置に、仮想的なレーザポインタからの光を示す仮想オブジェクトを配置するなどしてもよい。また、例えば、VRユーザによる指示位置が、仮想黒板36上の所定の位置である場合に、前記黒板表示制御手段が、VRユーザからの入力に基づいて、黒板35のディスプレイまたはプロジェクタが表示する画像が、仮想黒板36上の当該所定の位置に対応する位置が光る画像(すなわち、レーザポインタによって所定箇所が指し示されていることを示す画像)となるように制御してもよい。また、例えば、検出装置460やMR装置410等がレーザ光を放射する装置を備え、制御部510が、VR側入力受付部916が受け付けたVRユーザからの入力に応じて、当該装置を制御して仮想空間11中の指示位置に対応する複合現実空間21中の位置にレーザ光を当てるようにしてもよい。
また、MRユーザ6またはVRユーザの行動の複合現実空間21および仮想空間11への反映は、以下のようなものであってもよい。すなわち、例えば、複合現実空間21には、現実オブジェクトとしての音の入力または出力が可能な装置(例えば、電子ピアノ)が配置されており、当該装置に関するMRユーザ6またはVRユーザの行動が、複合現実空間21および仮想空間11へ反映されるようになっていてもよい。以下では、複合現実空間21には、現実オブジェクトとしての電子ピアノが配置されており、仮想空間11には、当該電子ピアノに対応する位置に、当該電子ピアノに対応する仮想オブジェクトとしての仮想電子ピアノが配置されているものとする。
電子ピアノは、例えば、コンピュータ500と通信可能となっていてもよい。そして、複合現実空間21において、MRユーザ6が電子ピアノを操作すると、当該操作に関する情報(例えば、当該操作に対応する音データ)が、コンピュータ500を介してコンピュータ300に送られるなどしてもよい。そして、音制御部945は、当該情報に基づいてスピーカ216から音を出力するなどしてもよい。これにより、例えば、MRユーザ6が電子ピアノの鍵(例えば、「ド」の音の鍵)を操作すると、スピーカ216から操作された鍵に対応する音(例えば、「ド」の音)が出力されるようになっていてもよい。換言すると、MR側入力受付部816は、MRユーザ6の操作を検出する検出手段としての電子ピアノ(換言すると、鍵に対する操作を検出するセンサ等)からの出力(例えば、操作に応じた音データ)をMRユーザ6からの入力として受け付け、制御部310(例えば、音制御部945)は、当該入力に基づいて、MRユーザ6の電子ピアノに対する操作に対応する音をスピーカ216に出力させるようになっていてもよい。また、音制御部945は、電子ピアノに対する操作に対応する音が、仮想空間11中の仮想電子ピアノから出力されているように聞こえるよう、音の発せられる方向を制御してもよい。
また、仮想空間11において、VRユーザが仮想電子ピアノを操作すると、当該操作に関する情報が、コンピュータ500に送られるなどしてもよい。そして、音制御部845は、当該情報に基づいてスピーカ416から音を出力するなどしてもよい。これにより、例えば、VRユーザが仮想電子ピアノの鍵(例えば、「ド」の音の鍵)を操作すると、スピーカ416から操作された鍵に対応する音(例えば、「ド」の音)が出力されるようになっていてもよい。換言すると、VR側入力受付部916は、仮想電子ピアノに対するVRユーザの操作を検出する検出手段(例えば、検出装置260またはコントローラ280)からの出力をVRユーザからの入力として受け付け、制御部510(例えば、音制御部845)は、当該入力に基づいて、VRユーザの仮想電子ピアノに対する操作に対応する音をスピーカ416に出力させるようになっていてもよい。なお、制御部510は、VRユーザの仮想電子ピアノに対する操作に対応する音を電子ピアノのスピーカに出力させるようになっていてもよい。
なお、MRユーザ6が、電子ピアノを操作した際の、当該操作に対応する音の複合現実空間21における出力は、電子ピアノのスピーカが行ってもよく、スピーカ416が行ってもよい。また、VRユーザが、仮想電子ピアノを操作した際の、当該操作に対応する音の仮想空間11における出力は、スピーカ216が行ってもよい。
<情報処理システムの実行する処理>
次に図11~図14を参照しながら、情報処理システム100が実行する処理の流れについて説明する。
VRシステム200の実行する処理の一例について、図11を参照しながら説明する。
ステップS101において、コンピュータ300のプロセッサ301は、仮想空間データを特定し、仮想空間11を定義する。
ステップS102において、プロセッサ301は、仮想空間11に、VRユーザのVRアバター25を配置する。
ステップS103において、プロセッサ301は、ネットワーク2を介してコンピュータ300と接続されるコンピュータ500であって、当該仮想空間11と対応する複合現実空間21を制御するコンピュータ500のプロセッサ501から、複合現実空間21中のMRユーザ6の位置を示す位置情報を取得する。
ステップS104において、プロセッサ301は、ステップS103で取得した位置情報に基づいて、複合現実空間21中のMRユーザ6の位置に対応する仮想空間11中の位置に、MRユーザ6のMRアバター26を配置する。
ステップS105において、プロセッサ301は、仮想空間11に仮想オブジェクトとしての仮想模型30を配置する。プロセッサ301は、複合現実空間21中の仮想模型30の位置と対応する仮想空間11中の位置に仮想模型30を配置する。なお、対応する位置に配置するとは、複合現実空間21中の位置が先行して決まるものであってもよく、仮想空間11中の位置が先行して決まるものであってもよい。
ステップS106において、プロセッサ301は、VRユーザからの入力を受け付ける。具体的には、プロセッサ301は、例えば、VRユーザの動きを検出する検出手段の出力をVRユーザからの入力として受け付ける。
ステップS107において、プロセッサ301は、VRユーザからの入力に基づいて仮想空間11中の仮想オブジェクトに所定の変化を与える。具体的には、プロセッサ301は、例えば、VRユーザからの入力に基づいて、仮想空間11中のVRアバター25または仮想模型30を動かす。例えば、当該入力がVRアバター25に関するものであった場合、プロセッサ301は、VRアバター25を動かす。また、例えば、当該入力が仮想模型30に関するものであった場合、プロセッサ301は、仮想模型30を動かす。また、プロセッサ301は、VRユーザからの入力に関する情報を、プロセッサ501に送信する。
ステップS108において、プロセッサ301は、プロセッサ501が受け付けたMRユーザ6からの入力に関する情報を取得する。
ステップS109において、プロセッサ301は、ステップS108で取得したMRユーザ6からの入力に基づいて、仮想空間11中の仮想オブジェクトに所定の変化を与える。具体的には、プロセッサ301は、例えば、MRユーザ6からの入力に基づいて、仮想空間11中のMRアバター26または仮想模型30を動かす。例えば、当該入力がMRアバター26に関するものであった場合、プロセッサ301は、MRアバター26を動かす。また、当該入力が仮想模型30に関するものであった場合、プロセッサ301は、仮想模型30を動かす。
次に、MRシステム400の実行する処理の一例について、図12を参照しながら説明する。
ステップS201において、コンピュータ500のプロセッサ501は、複合現実空間21を定義する。
ステップS202において、プロセッサ501は、複合現実空間21内のMRユーザ6の位置を検出する。また、プロセッサ501は、検出したMRユーザ6の位置を示す位置情報を、ネットワーク2を介してコンピュータ500と接続されるコンピュータ300であって、当該複合現実空間21と対応する仮想空間11を制御するコンピュータ300のプロセッサ301に送信する。
ステップS203において、プロセッサ501は、プロセッサ301から、仮想空間11中のVRアバター25の位置を示す位置情報を取得する。
ステップS204において、プロセッサ501は、ステップS203で取得した位置情報に基づいて、仮想空間11中のVRアバター25の位置に対応する複合現実空間21中の位置に、VRアバター25を配置する。なお、対応する位置に配置するとは、仮想空間11中の位置が先行して決まるものであってもよく、複合現実空間21中の位置が先行して決まるものであってもよい。
ステップS205において、プロセッサ501は、複合現実空間21に仮想オブジェクトとしての仮想模型30を配置する。プロセッサ501は、仮想空間11中の仮想模型30の位置と対応する複合現実空間21中の位置に仮想模型30を配置する。
ステップS206において、プロセッサ501は、MRユーザ6からの入力を受け付ける。具体的には、プロセッサ501は、例えば、MRユーザ6の動きを検出する検出手段の出力をMRユーザ6からの入力として受け付ける。
ステップS207において、プロセッサ501は、MRユーザ6からの入力に基づいて、複合現実空間21中の仮想オブジェクトに所定の変化を与える。具体的には、プロセッサ501は、例えば、MRユーザ6からの入力に基づいて、複合現実空間21中の仮想模型30を動かす。また、プロセッサ501は、MRユーザ6からの入力に関する情報を、プロセッサ301に送信する。
ステップS208において、プロセッサ501は、プロセッサ301が受け付けたVRユーザからの入力に関する情報を取得する。
ステップS209において、プロセッサ501は、ステップS208で取得したVRユーザからの入力に基づいて、複合現実空間21中の仮想オブジェクトに所定の変化を与える。具体的には、プロセッサ501は、例えば、VRユーザからの入力に基づいて、複合現実空間21中のVRアバター25または仮想模型30を動かす。例えば、当該入力がVRアバター25に関するものであった場合、プロセッサ501は、VRアバター25を動かす。また、当該入力が仮想模型30に関するものであった場合、プロセッサ501は、仮想模型30を動かす。
次に、MRユーザ6の行動を仮想空間11に反映させる処理の一例について、図13を参照しながら説明する。
ステップS301において、プロセッサ501は、MRユーザ6からの入力を受け付ける。具体的には、プロセッサ501は、例えば、特定の現実オブジェクト(例えば、黒板35、レーザポインタまたは電子ピアノ等)に対するMRユーザ6の行動を検出する検出手段の出力をMRユーザ6からの入力として受け付ける。
ステップS302において、プロセッサ501は、ステップS301で受け付けたMRユーザ6からの入力に関する情報を、プロセッサ301(換言すると、VRシステム200)に送信する。
ステップS303において、プロセッサ301は、ステップS302で送信された情報に基づいて、MRユーザ6が行動を行った特定の現実オブジェクトに対応する仮想オブジェクトに所定の変化を与える。例えば、MRユーザ6が、黒板35に所定の記入内容を記入する記入動作を行った場合、プロセッサ301は、黒板35に対応する仮想黒板36を当該所定の記入内容を表示する状態に変化させる。
次に、VRユーザの行動を複合現実空間21に反映させる処理の一例について、図14を参照しながら説明する。
ステップS351において、プロセッサ301は、VRユーザからの入力を受け付ける。具体的には、プロセッサ301は、例えば、特定の現実オブジェクトに対応する仮想オブジェクト(例えば、仮想黒板36または仮想電子ピアノ等)に対するVRユーザの行動を検出する検出手段の出力をVRユーザからの入力として受け付ける。
ステップS352において、プロセッサ301は、ステップS351で受け付けたVRユーザからの入力に関する情報を、プロセッサ501(換言すると、MRシステム400)に送信する。
ステップS353において、プロセッサ501は、ステップS352で送信された情報に基づいて、特定の現実オブジェクトに対応する仮想オブジェクトに対してVRユーザが行った行動を、当該特定の現実オブジェクトに反映させる。例えば、VRユーザが、仮想黒板36に所定の記入内容を記入する記入動作を行った場合、プロセッサ501は、黒板35を当該所定の記入内容を表示する状態に変化させる。
なお、本発明は、上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変形して実施できる。本発明はその発明の範囲内において、各構成要素の自由な組み合わせ、任意の構成要素の変形、または任意の構成要素の省略等が可能である。また、本明細書において説明した処理の流れはあくまで一例であり、各処理の順序や構成は異なるものであってもよい。
<付記>
以上の実施形態で説明した事項は、以下の付記のようにも記載され得る。
(付記1)
所定の現実空間に仮想オブジェクトが配置された複合現実空間のビューである第1のビューを第1ユーザに提供する第1表示手段(例えば、MR装置410)と、
前記所定の現実空間を模した仮想空間に、前記第1ユーザのアバターが配置された第2のビューを第2ユーザに提供する第2表示手段(例えば、VR装置210)と、
前記第1ユーザからの入力を受け付ける第1入力受付手段(例えば、MR側入力受付部816)と、
前記第1入力受付手段が受け付けた前記第1ユーザからの入力に基づいて、前記仮想空間中の前記第1ユーザのアバターを制御する第1制御手段(例えば、制御部310またはVR側オブジェクト制御部920)と、を備える
情報処理システム。
このような構成によれば、第1ユーザのアバターは、第1ユーザがいる所定の現実空間を模した仮想空間に配置され、第1ユーザからの入力に基づいて制御されることとなる。したがって、複合現実空間中の第1ユーザからの入力に基づいて仮想空間中の第1ユーザのアバターを制御する上で、複合現実空間と仮想空間との隔たりを埋め、両者の結びつきを強めることができる。したがって、仮想空間の用途の幅が広がる。
(付記2)
前記第1入力受付手段は、前記複合現実空間中の前記第1ユーザの位置を検出する位置検出手段の出力を、前記第1ユーザからの入力として受け付け、
前記第1制御手段は、前記位置検出手段が検出した前記複合現実空間中の前記第1ユーザの位置に対応する前記仮想空間中の位置に、前記第1ユーザのアバターを配置する
付記1に記載の情報処理システム。
このような構成によれば、第1ユーザのアバターは、複合現実空間中の第1ユーザの位置に対応する仮想空間中の位置に配置されることとなる。すなわち、複合現実空間中の第1ユーザの位置と、仮想空間中の第1ユーザのアバターの位置とが連動したものとなる。したがって、第2ユーザの視点において、第1ユーザが現実のどの位置にいるのか、どのような場所にいるのか等がわかる。また、第1ユーザの視点において、自身のアバターが第2ユーザにどのように見られるのかがわかりやすくなる。したがって、複合現実空間と仮想空間との隔たりを埋めることができ、仮想空間の用途の幅が広がる。
(付記3)
前記第2のビューは、前記仮想空間に配置された仮想カメラ(例えば、仮想カメラ14)から見た前記仮想空間のビューであり、
前記第2ユーザからの入力を受け付ける第2入力受付手段(例えば、VR側入力受付部916)と、
前記第2入力受付手段が受け付けた前記第2ユーザからの入力に基づいて、前記仮想空間中の前記仮想カメラの位置を移動させる仮想カメラ制御手段(例えば、仮想カメラ制御部930)と、を備える
付記1に記載の情報処理システム。
このような構成によれば、第2ユーザは、仮想カメラの位置を動かして、仮想空間を見る視点を移動させることができる。したがって、第2ユーザは、所定の現実空間を模した仮想空間や、当該所定の現実空間に存在する第1ユーザのアバターであって当該仮想空間に存在するアバターを、様々な視点から見ることができ、仮想空間の用途の幅が広がる。
(付記4)
前記第2ユーザからの入力を受け付ける第2入力受付手段(例えば、VR側入力受付部916)と、
反映手段(例えば、MR側オブジェクト制御部820、黒板表示制御手段、または音制御部845)と、を備え、
前記第1制御手段は、
前記所定の現実空間に実際に存在する特定のオブジェクト(例えば、黒板35または電子ピアノ)に対応する特定仮想オブジェクト(例えば、仮想黒板36または仮想電子ピアノ)を前記仮想空間に配置し、
前記第2入力受付手段が受け付けた前記第2ユーザからの入力に基づいて前記特定仮想オブジェクトに所定の変化を与え、
前記反映手段は、前記第2入力受付手段が受け付けた前記第2ユーザからの入力を、前記複合現実空間中の前記特定のオブジェクトに反映させる
付記1に記載の情報処理システム。
このような構成によれば、仮想空間中の仮想オブジェクトに対して行った第2ユーザの操作を、第1ユーザがいる現実空間に実際に存在するオブジェクトに反映させることができる。したがって、現実空間と仮想空間とが高度に融合され、仮想空間の用途の幅が広がる。
(付記5)
前記第2ユーザからの入力を受け付ける第2入力受付手段(例えば、VR側入力受付部916)を備え、
前記第1制御手段は、
前記仮想空間中に前記第2ユーザのアバターを配置し、
前記第2入力受付手段が受け付けた前記第2ユーザからの入力に基づいて、前記仮想空間中の前記第2ユーザのアバターを制御する
付記1~4のいずれか1つに記載の情報処理システム。
このような構成によれば、仮想空間には、第1ユーザのアバターと第2ユーザのアバターとが存在し、それぞれ第1ユーザまたは第2ユーザからの入力に基づいて制御されることとなる。したがって、仮想空間において、第1ユーザのアバターと第2ユーザのアバターとを用いたコミュニケーションをとることが可能となり、仮想空間の用途の幅が広がる。
(付記6)
前記仮想空間中の前記第2ユーザのアバターの位置に関する情報を前記第1制御手段から受信し、前記仮想空間中の前記第2ユーザのアバターの位置に対応する前記複合現実空間中の位置に、前記第2ユーザのアバターを配置する第2制御手段(例えば、制御部510またはMR側オブジェクト制御部820)を備える
付記5に記載の情報処理システム。
このような構成によれば、複合現実空間では、仮想空間中の第2ユーザが第2ユーザのアバターを配置した位置に対応する位置に、第2ユーザのアバターが配置されることとなる。また、複合現実空間中の第2ユーザのアバターは、仮想空間中の第2ユーザのアバターの動きに連動して動くこととなる。このため、仮想空間と複合現実空間との間でのアバターを介したコミュニケーションの質を向上させることができる。したがって、仮想空間の用途の幅が広がる。
(付記7)
所定の現実空間に仮想オブジェクトが配置された複合現実空間のビューである第1のビューを第1ユーザに提供する第1表示手段(例えば、MR装置410)と、
前記所定の現実空間を模した仮想空間に、前記第1ユーザのアバターが配置された第2のビューを第2ユーザに提供する第2表示手段(例えば、VR装置210)と、
前記第1ユーザからの入力を受け付ける第1入力受付手段(例えば、MR側入力受付部816)と、を備える情報処理システムのコンピュータを、
前記第1入力受付手段が受け付けた前記第1ユーザからの入力に基づいて、前記仮想空間中の前記第1ユーザのアバターを制御する第1制御手段(例えば、制御部310またはVR側オブジェクト制御部920)として機能させる
プログラム。
このような構成によれば、付記1に記載のプログラムと同様の作用効果を奏することができる。