以下、図面を参照しながら本発明の実施の形態について説明する。
[第1の実施形態]
<情報処理システムの構成>
図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、MRシステム400、およびサーバ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を当該所定の記入内容を表示する状態に変化させる。
[第2の実施形態]
次に、本発明の第2の実施形態について説明する。第2の実施形態の情報処理システム100は、第1の実施形態で説明した内容を矛盾の生じない範囲で採用し得る。例えば、第2の実施形態の情報処理システム100は、第1の実施形態の情報処理システムの構成の一部または全部を含み得る。以下では、第1の実施形態において説明した事項については、説明を省略ないし簡略化する。
以下では、情報処理システム100が、仮想空間11で行われている事象が複合現実空間21に反映されるサービスに適用される場合を例に説明する。具体的には、以下では、現実に存在する場所(一例として、以下では「街A」とする。)を模した仮想空間11中における特定の位置(一例として、以下では街Aに実在する「店Bの前」(換言すると、店Bを模した仮想オブジェクトの前)とする。)で行われている事象(一例として、以下では「音楽ライブ」とする。)を、当該特定の位置に対応する現実空間中の位置(ここでは、店Bの前)にいるMRユーザ6がMR装置410を介して体験可能(ここでは、音楽ライブの視聴が可能)な情報処理システム100について説明する。
座標定義部812は、GPSセンサ(換言すると、位置検出手段)によって測定される座標と、仮想空間座標との対応関係(換言すると、現実空間中の地点と仮想空間11中の地点との対応関係)に関する情報を対応関係記憶部としての記憶部611に記憶させる。換言すると、本実施形態では、現実空間(換言すると、複合現実空間)と仮想空間11との位置の対応関係を示す情報が、対応関係記憶部に予め記憶されている。
MR側入力受付部816は、位置検出手段からの入力を受け付ける。位置検出手段は、MR装置410の備えるGPSセンサを用いてMRユーザ6の位置を示す位置情報を取得する。すなわち、MR側入力受付部816は、現実空間におけるMRユーザ6の現在の位置を示す位置情報(例えば、GPSセンサを用いて取得される位置情報)の入力を受け付ける。
VRシステム200の制御部310は、仮想空間11中の特定の位置で行われる所定の事象の実行を制御する。本実施形態では、当該所定の事象は、所定のイベント(具体的には、音楽ライブ)となっている。具体的には、VR側オブジェクト制御部920は、図15に示すように、仮想空間11中の特定の位置に、所定の事象に関連する仮想オブジェクトとしての事象関連オブジェクト50を配置する。より具体的には、VR側オブジェクト制御部920は、例えば、仮想空間11中の店Bの前に、事象関連オブジェクト50としての、音楽ライブに出演するキャラクタのオブジェクト(以下、「出演キャラクタ」という。)や、音楽ライブのステージのオブジェクト等を配置する。なお、VR側オブジェクト制御部920は、VRユーザの指示(換言すると、VR側入力受付部916が受け付けるVRユーザからの入力(例えば、コントローラ280に対する操作))に基づいて事象関連オブジェクト50を配置してもよい。また、VR側オブジェクト制御部920は、本サービスの運営者の指示に基づいて事象関連オブジェクト50を配置してもよい。
また、VR側オブジェクト制御部920は、事象関連オブジェクト50(例えば、出演キャラクタ)を動かし、事象の進行を制御する(換言すると、イベントを進行させる)。なお、VR側オブジェクト制御部920は、VRユーザの指示(換言すると、VR側入力受付部916が受け付けるVRユーザからの入力(例えば、コントローラ280に対する操作))に基づいて出演キャラクタを動かすなどしてもよい。また、出演キャラクタの動き等については予め用意されており、VR側オブジェクト制御部920は、予め用意されたデータを再生することにより出演キャラクタを動かすなどしてもよい。換言すると、出演キャラクタは、VRアバター25であってもよく、ノンプレイヤキャラクタ等であってもよい。
すなわち、本実施形態の情報処理システム100では、VRシステム200(換言すると、制御部310)は、自身のキャラクタ(例えば、VRアバター25)を操作して動き回ることが可能な仮想空間11(換言すると、仮想の街A)中において特定の位置(換言すると、仮想の店Bの前)にいるVRユーザ(換言すると、特定の位置にいるキャラクタを操作するVRユーザ)に対して、所定の事象としての音楽ライブに係るビューを提供する。ここで、当該VRユーザは、音楽ライブの出演キャラクタを操作するユーザと異なるユーザ(換言すると、例えば、当該音楽ライブの観客等)であってもよく、同一のユーザ(換言すると、例えば、当該音楽ライブの演者等)であってもよい。
事象関連オブジェクト50には、所定の事象(換言すると、所定のイベント)に関連するオブジェクトであることを示す情報(換言すると、タグ)が付されている。また、事象関連オブジェクト50には、事象関連オブジェクト50の仮想空間中の位置(換言すると、座標)を示す位置情報が付されている。なお、事象関連オブジェクト50の位置情報は、各事象関連オブジェクト50に対して個別に付与されるものであってもよく、イベントに対してまとめて付与されるもの等であってもよい。
MR側オブジェクト制御部820は、図15に示すように、仮想空間11中における事象関連オブジェクト50が配置される位置に対応する複合現実空間21中の位置に、当該事象関連オブジェクト50に対応する仮想オブジェクトを配置する。ここで、当該事象関連オブジェクト50に対応する仮想オブジェクト、すなわち仮想空間11中の事象関連オブジェクト50に対応する複合現実空間21中の仮想オブジェクトとは、例えば、仮想空間11中の事象関連オブジェクト50と同じ形態を有するもの(換言すると、同じ物体を示すもの)であってもよく、異なる形態を有するものであってもよい。本実施形態では、複合現実空間21には、仮想空間11中の事象関連オブジェクト50と同じ形態の事象関連オブジェクト50(具体的には、音楽ライブの出演キャラクタや音楽ライブのステージ等)が配置される。
また、MR側オブジェクト制御部820は、事象関連オブジェクト50(例えば、出演キャラクタ)を動かし、複合現実空間21において実行されるイベントを進行する。ここで、MR側オブジェクト制御部820によるイベントの進行(具体的には、出演キャラクタを動かす制御等)と、VR側オブジェクト制御部920によるイベントの進行(具体的には、出演キャラクタを動かす制御等)とは、連動している。すなわち、MR側オブジェクト制御部820は、仮想空間11中で行われているイベントを複合現実空間21に反映させる。換言すると、本実施形態では、仮想空間11で起きている事象が、複合現実空間21にもリアルタイムで反映される。具体的には、MR側オブジェクト制御部820は、複合現実空間21中の事象関連オブジェクト50が、仮想空間11中の事象関連オブジェクト50と同じ動きをするように制御する。なお、ここで「リアルタイムで反映」とは、事象の発生(換言すると、イベントの進行)に若干のずれがある場合を含み、また、仮想空間11中の事象と複合現実空間21中の事象とのどちらの進行が先行するものであってもよい。また、ここで「反映」とは、複合現実空間21中の事象関連オブジェクト50が、仮想空間11中の事象関連オブジェクト50と全く同じ動きをするものでなくてもよい。例えば、仮想空間11における出演キャラクタの動きのうち、複合現実空間21において表示される出演キャラクタには反映されない動きがあってもよい。換言すると、MRシステム400の制御部510は、VRユーザに提供されるビューと同一の事象に係るものであると判別できるビューをMRユーザ6に提供するものとしてもよい。
本実施形態では、仮想空間11中の街Aの店Bの前において音楽ライブが行われる場合に、複合現実空間21中の街Aの店Bの前で当該音楽ライブが行われる。すなわち、MR側オブジェクト制御部820は、仮想空間11中の特定の位置で行われている所定の事象に係る事象関連オブジェクト50を、当該特定の位置に対応する複合現実空間21中の位置に配置するとともに、当該事象関連オブジェクト50を、仮想空間11中の動きに対応した動きをするように動かす。そして、表示制御部840は、MR側入力受付部816に入力される位置情報に応じて、当該位置情報の示す複合現実空間21中の位置に配置された事象関連オブジェクト50をMR装置410のディスプレイ411に表示させる。具体的には、GPSセンサを用いて取得される位置情報(具体的には、MRユーザ6の位置を示す位置情報)の入力を受け付けるMR側入力受付部816に、MRユーザ6が現実空間において店Bの前にいることを示す位置情報が入力される場合に、制御部510は、ディスプレイ411に、仮想空間11中の店Bの前で行われている音楽ライブに係る事象関連オブジェクト50を表示させる。これにより、現実空間の店Bの前に事象関連オブジェクト50が配置された(換言すると、現実空間の店Bの前で仮想空間11で行われる音楽ライブが実行される)複合現実空間21のビューがMRユーザ6に提供される。すなわち、制御部510は、当該位置情報がMRユーザ6が仮想空間11中の特定の位置に対応する現実空間中の位置にいることを示すときに、仮想空間11中の当該特定の位置で行われている事象が反映された複合現実空間21のビューをMRユーザ6に提供する。
なお、制御部510は、MRユーザ6が、現実空間において、当該特定の位置に対応する位置を訪れたことに基づいて、MRユーザ6に特典を付与する特典付与部を備えていてもよい。特典は、例えば、特典を獲得したユーザがゲーム内(換言すると、サービス内)で使用可能な仮想オブジェクト(例えば、キャラクタが装備可能なアイテム等)であってもよく、現実空間中において現実の物体と交換可能な電子的チケット等であってもよく、サービス内においてユーザが所有する所定のポイント等であってもよい。また、「訪れたことに基づいて」とは、訪れたか否かを直接的に判定して特典を付与するものであってもよく、訪れることで実行可能な特定の行動(例えば、音楽ライブの視聴を開始した、終了した、あるいは所定時間以上行った、など)が行われた場合に特典を付与するもの等であってもよい。このような構成によれば、MRユーザ6に対して、現実空間において、特定の位置に対応する位置を訪れる動機付けを与えることができる。
このように、本実施形態においては、仮想空間11中の特定の位置で起きている所定の事象が反映された複合現実空間21のビューがMRユーザ6に提供されるが、所定の事象は音楽ライブに限らない。例えば、所定の事象は、特定のユーザが操作するキャラクタ(換言すると、所定の事象に関連する事象関連オブジェクト50)が動く事象であってもよい。具体的には、例えば、VRシステム200が、街Aを模した仮想空間11中でキャラクタを動かすことができるゲームを提供するものとする。この場合に、VR側オブジェクト制御部920は、当該特定のユーザとしてのVRユーザの指示(換言すると、VR側入力受付部916が受け付けるVRユーザからの入力(例えば、コントローラ280に対する操作))に基づいて、街Aを模した仮想空間11中でキャラクタに所定のアクション(例えば、跳躍や走行等のアクション)を実行させる。また、MR側オブジェクト制御部820は、仮想空間11中における当該キャラクタが配置される位置に対応する複合現実空間21中の位置に、当該キャラクタを配置するとともに、仮想空間11中での当該キャラクタのアクションと同様のアクションを複合現実空間21中で実行させる。すなわち、この場合、例えば、街Aを模した仮想空間11上でキャラクタを動かすゲームを当該特定のユーザとしてのVRユーザがプレイしているときに、MRユーザ6が現実空間において街Aを訪れると、制御部510が、当該特定のユーザによって動かされているゲーム中(換言すると、仮想空間11上)でのキャラクタの動きをMR装置410のディスプレイ411を介して提供される複合現実空間21のビューに反映させる。すなわち、本例においては、当該特定のユーザとしてのVRユーザのVR装置210において当該特定のユーザに提供される仮想空間11のビューと、現実空間において街AにいるMRユーザ6のMR装置410において当該MRユーザ6に提供される複合現実空間21のビューとで、当該特定のユーザにより操作される仮想オブジェクトが同様の動きをする。このような構成によれば、ゲーム画面上におけるキャラクタの動きを、現実の街において再現することなどが可能となり、サービスの興趣性を向上させることができる。
なお、仮想空間11中の特定の位置で起きている所定の事象が反映された複合現実空間21のビューの提供を受けられるMRユーザ6が限定されていてもよい。具体的には、記憶部511は、当該ビューの提供を受ける権利に関する情報(以下、「権利情報」という。)を記憶する権利情報記憶部として機能し、制御部510は、MRユーザ6が当該権利を有する場合に当該ビューをMRユーザ6に提供し、当該権利を有しない場合に当該ビューをMRユーザ6に提供しないこととしてもよい。また、当該権利は、例えば、MRユーザ6が対価を払うこと(例えば、現金の支払い、あるいはサービス内でのMRユーザ6の保有資産(例えば、仮想通貨等)の消費等)によりMRユーザ6に付与されるものであってもよい。具体的には、例えば、サービス内において、音楽ライブの視聴に係る権利を購入可能となっていてもよい。より具体的には、例えば、権利情報として、サービス内で購入可能な音楽ライブのチケットの有無に関する情報が記憶され、制御部510は、当該チケットを有するMRユーザ6が音楽ライブの視聴をすることができ、当該チケットを有しないMRユーザ6が音楽ライブの視聴をすることができないように制御してもよい。換言すると、権利情報として、当該ビューの提供を受ける権利に係るアイテム(例えば、チケット等)の保有に関する情報が記憶され、制御部510は、MRユーザ6が当該アイテムを有している場合に、当該ビューをMRユーザ6に提供してもよい。なお、当該権利(換言すると、当該アイテム)は、サービス内における所定のミッションの達成等により得られるようにしてもよい。
また、制御部510は、仮想空間11中の特定の位置で起きている所定の事象であって、MRユーザ6が複数のユーザの中から選択したVRユーザに関連する所定の事象が反映された複合現実空間21のビューを当該MRユーザ6に提供してもよい。換言すると、MR側入力受付部816は、MRユーザ6による、複数のユーザのうちのいずれのユーザに関連する所定の事象を反映させるか選択する操作(例えば、コントローラ480に対する操作)に係る入力を受け付け、制御部510は、当該操作により選択されたVRユーザに関連する所定の事象を当該MRユーザ6に提供されるビューに反映させてもよい。当該操作は、例えば、MRユーザ6が、自身のフレンドの中から、事象の反映を受けるユーザを選択する操作であってもよい。また、全てのフレンドに関連する所定の事象が反映されるようになっており、当該操作は、他のユーザをフレンドとして登録する操作等であってもよい。換言すると、本実施形態のサービスでは、MRユーザ6は、自身のフレンドに関連する所定の事象が反映された複合現実空間21のビューの提供を受けることができるようになっていてもよい。また、例えば、当該操作は、複数のプレイヤの中から、プロのプレイヤ等のMRユーザ6が所定の事象の反映を受けたいユーザを選択する操作であってもよい。すなわち、例えば、制御部510は、MRユーザ6が選択したプレイヤ(換言すると、特定のVRユーザ)が街Aを模した仮想空間11中でキャラクタを動かす前述のゲームをプレイしている場合に、当該プレイヤによって動かされているゲーム中(換言すると、仮想空間11上)でのキャラクタの動きを当該MRユーザ6に提供される複合現実空間21のビューに反映させるなどしてもよい。換言すると、MRユーザ6は、複数のユーザのうちの自身に関連付けられたユーザに関連する所定の事象が反映された複合現実空間21のビューの提供を受けることができるようになっていてもよい。また、例えば、制御部510は、MRユーザ6が選択した芸能人が仮想空間11中でライブを行っている場合に、当該ライブを当該MRユーザ6に提供される複合現実空間21のビューに反映させるなどしてもよい。なお、特定のユーザに関連する事象が複数ある場合に、当該特定のユーザに関連する特定の事象を、反映を受ける事象として選択することが可能となっていてもよい。
なお、このように、本実施形態のサービスでは、各ユーザ(例えば、MRユーザ6やVRユーザ)は、他のユーザ(例えば、VRユーザやMRユーザ6)をフレンドとして登録することができるようになっていてもよい。各ユーザは、例えば、コントローラ280,480に対する所定の操作に基づいて、自分以外の他のユーザをフレンドとして登録することができる。また、フレンドとして登録とは、あるユーザが、他のユーザを自分に関連付けることともいえる。また、フレンドとして登録とは、自分以外の特定のユーザを、ブックマークすることともいえる。フレンドとして登録とは、あるユーザ(具体的には、フレンド)に関する情報(例えば、ログイン状態に関する情報等)を他のユーザ(具体的には、非フレンド)に関する情報に比べて呼び出しやすい状態にしておくことともいえる。なお、あるユーザが他のユーザをフレンドとして登録しているが、当該他のユーザが当該あるユーザをフレンドとして登録していない状態が存在してもよい。すなわち、当該あるユーザが当該他のユーザを一方的にフォローしている状態が存在してもよい。また、当該あるユーザと当該他のユーザとが相互にフォローしている状態が存在してもよい。なお、一方的にフォローしている状態が存在しないこととしてもよい。換言すると、本実施形態において「フレンド」とは、あるユーザから見たときの、相互的なフォロー関係が成立している他のユーザのみを指すこととしてもよく、一方的なフォロー関係が成立している他のユーザを指すこととしてもよい。
また、制御部510は、仮想空間11中の特定の位置で行われている所定の事象であって、MRユーザ6に設定された属性に対応する属性を有する所定の事象が反映された複合現実空間21のビューを当該MR6ユーザに提供してもよい。具体的には、例えば、各MRユーザ6にはユーザの趣味、嗜好に係る属性、より具体的には「音楽好き」や「お笑い好き」(あるいは「特定の芸能人が好き」)等の属性が付されるようになっていてもよい。そして、制御部510は、例えば、「音楽好き」という属性が付されたMRユーザ6に対しては、「音楽」という属性が付された所定の事象を反映させ、「音楽好き」という属性が付されていないMRユーザ6に対しては、「音楽」という属性が付された所定の事象を反映させないようにしてもよい。また、制御部510は、例えば、「お笑い好き」という属性が付されたMRユーザ6に対しては、「お笑い」という属性が付された所定の事象を反映させ、「お笑い好き」という属性が付されていないMRユーザ6に対しては、「お笑い」という属性が付された所定の事象を反映させないようにしてもよい。なお、MRユーザ6に設定される属性は、各MRユーザ6が自身で設定すること(例えば、コントローラ480を介しての自身の好みの入力等)が可能となっていてもよく、AI(Artificial Intelligence)によって自動的に(例えば、サービス内でのユーザの行動等に応じて)設定されるなどしてもよい。
以上のように、制御部510は、仮想空間11中で行われる複数の事象のうち、MRユーザ6が選択した特定の事象(例えば、MRユーザ6が選択した特定のユーザに関連する事象や、MRユーザ6が設定した自身の属性に対応する属性を有する事象や、MRユーザ6が購入したチケットに係る事象等)を、複合現実空間21に反映させてもよい。換言すると、制御部510は、仮想空間11中で行われる複数の事象のうち、MRユーザ6が選択していない事象を、複合現実空間21に反映させなくてもよい。このように、選択していない事象を複合現実空間21に反映させない場合に、ユーザの選択に関わらず反映される事象が存在してもよい。換言すると、「選択していない事象を複合現実空間21に反映させない」とは、選択がされている場合に複合現実空間21への反映がされる事象であって、選択がされていない場合に複合現実空間21への反映がされない事象が少なくとも1つ存在すればよい。なお、事象の選択は、MRユーザ6が選択する特定の事象が発生(換言すると、開始)する前に行うことが可能となっていてもよく、当該特定の事象が発生した後(換言すると、行われている最中)に行うことが可能となっていてもよい。
なお、事象が行われる仮想空間11は、当該事象が反映される現実空間を模したものでなくてもよい。例えば、現実に存在する街Aの店Bの前の広場に対応した領域を仮想空間11内に用意し、当該領域で行われる所定の事象を、現実空間において当該広場にいるMRユーザ6のMR装置410に反映させてもよい。この場合、対応関係記憶部としての記憶部611には、例えば、当該領域と当該広場との対応関係を示す情報を記憶させることができる。なお、第3の実施の形態で説明される、現実空間の事象が反映される仮想空間11についても同様に、現実空間を模したものでなくてもよい。
また、事象が行われる仮想空間11は、当該事象が反映される現実空間の地形を模したものであって、景観の異なるものであってもよい。例えば、本実施形態において、仮想空間11を、現実に存在する街Aの地形を模したものであって、街並みの異なるものとしてもよい。具体的には、仮想空間11を、過去(例えば、江戸時代)の街Aに対応する地域を再現したものとし、再現した当該地域の各地点と、現実空間の現在の街Aの各地点とが地図上の同じ場所(換言すると、同じ経緯度の場所)を指すように現実空間中の地点と仮想空間11中の地点とを対応付けてもよい。そして、再現した当該地域の特定の位置で行われる所定の事象を、現実空間において当該特定の位置に対応する位置にいるMRユーザ6のMR装置410に反映させてもよい。なお、第3の実施の形態で説明される、現実空間の事象が反映される仮想空間11についても同様に、現実空間の地形を模したものであって、景観の異なるものであってもよい。
なお、所定の事象に関する複合現実空間21のビューは、透過型のディスプレイ411を介して見える現実空間に仮想オブジェクトを重畳させるMR装置410により提供されるものでなくてもよく、例えば、カメラにより撮影される現実空間の画像に仮想オブジェクトを重畳させた画像をディスプレイ411に表示させるスマートフォン等により提供されてもよい。換言すると、複合現実空間21のビューの提供は、例えば、透過型のディスプレイに事象関連オブジェクト50を表示させることにより行われてもよく、現実空間を撮影した画像に事象関連オブジェクト50を重畳させた画像をディスプレイに表示させることにより行われてもよい。さらに換言すると、現実空間を撮影した画像に仮想オブジェクトを重畳させた画像をディスプレイに表示させるスマートフォン等を含んで構成される所定のシステムが、MRシステム400の構成の少なくとも一部を有していてもよい。換言すると、本実施形態あるいは他の実施形態におけるMRシステム400は、当該所定のシステム(例えば、スマートフォン等)であるものとして読み替えることが可能である。また、本明細書においては、当該所定のシステムのユーザもMRユーザ6に該当する。
また、所定の事象に関する仮想空間11のビューは、VR装置210としてのヘッドマウントディスプレイにより提供されるものでなくてもよく、例えば、PCモニタやテレビ等に、仮想空間11の画像を表示させることにより提供されてもよい。換言すると、PCやゲーム装置、あるいはこれらの装置と所定のディスプレイとを含んで構成される所定のシステムが、VRシステム200の構成の少なくとも一部を有していてもよい。換言すると、本実施形態あるいは他の実施形態におけるVRシステム200は、当該所定のシステムであるものとして読み替えることが可能である。また、本明細書においては、当該所定のシステムのユーザもVRユーザに該当する。
[第3の実施形態]
次に、本発明の第3の実施形態について説明する。第3の実施形態の情報処理システム100は、第1の実施形態または第2の実施形態で説明した内容を矛盾の生じない範囲で採用し得る。例えば、第3の実施形態の情報処理システム100は、第1の実施形態の情報処理システムの構成の一部または全部を含み得る。また、第3の実施形態の情報処理システム100は、第2の実施形態の情報処理システムの構成の一部または全部を含み得る。以下では、第1の実施形態または第2の実施形態において説明した事項については、説明を省略ないし簡略化する。
以下では、情報処理システム100が、現実空間で行われている事象が仮想空間11に反映されるサービスに適用される場合を例に説明する。具体的には、以下では、現実空間の所定の場所(一例として、以下では「街A」とする。)の特定の位置(一例として、以下では街Aの「店Bの前」)で行われている事象(一例として、以下では「音楽ライブ」とする。)を、当該所定の場所を模した仮想空間11中における当該特定の位置に対応する位置(ここでは、店Bの前(換言すると、店Bを模した仮想オブジェクトの前)とする。)で行う場合について説明する。すなわち、第2の実施形態においては、仮想空間11において行われている事象が現実空間に反映されるのに対し、第3の実施形態においては、現実空間において行われている事象が仮想空間11に反映される。なお、情報処理システム100が、第2の実施形態に係る構成と第3の実施形態に係る構成との両方を備え、仮想空間11において行われている事象が現実空間に反映されるとともに、現実空間において行われている事象が仮想空間11に反映されるように構成してもよい。
座標定義部812は、GPSセンサ(換言すると、位置検出手段)によって測定される座標と、仮想空間座標との対応関係(換言すると、現実空間中の地点と仮想空間11中の地点との対応関係)に関する情報を対応関係記憶部としての記憶部611に記憶させる。換言すると、本実施形態では、現実空間(換言すると、複合現実空間)と仮想空間11との位置の対応関係を示す情報が、対応関係記憶部に予め記憶されている。
本実施形態では、図16に示すように、特定の位置としての店Bの前には、検出装置460が配置されている。また、検出装置460は、カメラであり、現実空間における特定の位置としての店Bの前を撮影するようになっている。なお、店Bの前には複数の検出装置460(換言すると、カメラ)が配置されていてもよい。また、本実施形態における検出装置460(換言すると、カメラ)は、MRユーザ6の動きを検出するためのものではなく、単に所定の事象についての撮影を行うためのものであってもよい。
なお、本実施形態において、MRシステム400は、MR装置410を備えていてもよく、備えていなくてもよい。例えば、MRシステム400は、検出装置460とコンピュータ500とを備えていてもよい。また、コンピュータ500は、検出装置460の外部に設けられていてもよく、コンピュータ500の一部または全体が検出装置460に内蔵されてもよい。換言すると、本実施形態あるいは他の実施形態におけるMRシステム400は、本実施形態における店Bの前に設置された検出装置460としてのカメラであるものとして読み替えることが可能である。
また、検出装置460は、GPSセンサを備え、検出装置460の位置を示す位置情報を取得可能となっている。また、MR側入力受付部816は、当該GPSセンサを用いて取得される位置情報の入力を受け付ける。すなわち、MR側入力受付部816は、特定の位置を示す位置情報の入力を受け付ける。なお、当該GPSセンサを用いて取得される位置情報は、検出装置460によって撮影される所定の事象が行われている位置を示す位置情報ともいえる。また、検出装置460がMRユーザ6等の所定の人物を撮影する場合(換言すると、当該所定の人物の動きを検出する場合)、当該GPSセンサを用いて取得される位置情報は、当該所定の人物の現在の位置を示す位置情報ともいえる。
制御部310は、現実空間中の特定の位置で行われる所定の事象を仮想空間11に反映させる。本実施形態では、当該所定の事象は、所定のイベント(具体的には、音楽ライブ)となっている。すなわち、制御部310は、現実の街Aの店Bの前で行われている音楽ライブが仮想空間11中の店Bの前でも行われるように制御する。
具体的には、MR側入力受付部816(換言すると、制御部510)は、例えば、検出装置460としてのカメラが備えるイメージセンサによって撮影される画像を入力として受け付ける。ここでは、当該画像は、所定の事象としての音楽ライブを撮影した画像となっている。また、通信制御部850は、当該画像およびこの画像が取得された位置としての特定の位置を示す情報を通信制御部950に対して送り、制御部310は、図16に示すように、これらの情報に基づいて、当該画像を仮想空間11中の当該特定の位置に対応する位置(すなわち、店Bの前)に表示させる。換言すると、制御部310は、VRユーザ(換言すると、VRアバター25)が仮想空間11中において現実空間中の特定の位置に対応する位置にいる場合に、ディスプレイ211に当該画像(すなわち、当該特定の位置で行われている事象の画像)を表示させる。これにより、自身のキャラクタを操作して動き回ることが可能な仮想空間11(換言すると、仮想の街A)中において、当該特定の位置に対応する位置(換言すると、仮想の店Bの前)にいるVRユーザ(換言すると、特定の位置にいるキャラクタを操作するVRユーザ)に対して、現実空間の当該特定の位置で行われている事象に係るビューを提供することができる。すなわち、制御部310は、現実空間中の特定の位置に対応する仮想空間11中の位置にVRユーザ(換言すると、VRアバター25)がいる場合に、所定のカメラにより撮影された所定の事象に関する画像に基づいて、現実空間中の当該特定の位置で行われている事象が反映された仮想空間11のビューをVRユーザに提供する。これにより、当該VRユーザは、現実空間において当該特定の位置にいる人と体験を共有することが可能となる。なお、本実施形態では、GPSセンサによって測定される座標と、仮想空間座標との対応関係に関する情報が、現実空間中の地点と仮想空間11中の地点との対応関係を示す情報として対応関係記憶部に記憶されているが、例えば、特定の位置に設置された検出装置460を識別可能とする識別情報と、当該特定の位置に対応する仮想空間11中の位置を示す座標との対応関係に関する情報が、現実空間中の地点と仮想空間11中の地点との対応関係を示す情報として記憶されており、当該情報に基づいて特定の位置に対応する仮想空間11中の位置での所定の事象の反映が行われる等してもよい。すなわち、検出装置460を識別可能とする識別情報が、特定の位置を示す情報として機能してもよい。
なお、制御部310がディスプレイ211に表示させる所定の事象に係る画像は、所定のMRユーザ6が装着するMR装置410のカメラ413によって撮影されてもよい。換言すると、MR装置410が本実施形態の検出装置460として機能してもよい。さらに換言すると、所定の事象が行われる特定の位置に係る位置情報を取得するためのGPSセンサや、所定の事象に係る画像を取得するためのカメラは、MR装置410が備えるものであってもよい。また、この場合に、MR装置410を装着するMRユーザ6は、所定の事象としての所定のイベントの出演者等であってもよく、観客等であってもよい。また、位置情報の取得と所定の事象に係る画像の取得とが異なるMR装置410(換言すると、異なるユーザの使用するMR装置410)によって行われてもよい。
なお、現実空間の特定の位置で行われる所定の事象の仮想空間11への反映は、以下のように行われてもよい。すなわち、制御部310は、上述したように所定の事象を撮影した画像を表示させるのではなく、所定の事象に関する人物(ここでは、音楽ライブの出演者)のアバターに所定の事象に関する動作を行わせてもよい。具体的には、第1の実施の形態におけるMRユーザ6を当該人物と読み替え、MRアバター26としての当該人物のアバターを仮想空間11上で動かしてもよい。すなわち、例えば、MR側入力受付部816は、当該人物の動きを検出する検出手段の出力を、当該人物からの入力として受け付ける。具体的には、例えば、MR側入力受付部816は、検出装置460としてのカメラが備えるイメージセンサによって撮影される画像から画像認識によって検出されるMRユーザ6の動きに関する情報を、当該人物からの入力として受け付けてもよい。また、ユーザ情報取得部818は、当該人物を識別可能とする識別情報を取得する。具体的には、ユーザ情報取得部818は、検出装置460が備えるイメージセンサによって撮影される画像から画像認識によって複合現実空間21中のMRユーザ6を識別することで、当該識別情報を取得してもよい。そして、VR側オブジェクト制御部920は、現実空間中の特定の位置に対応する仮想空間11中の位置に当該人物のアバター(換言すると、MRアバター26)を配置する。また、VR側オブジェクト制御部920は、例えば、MR側入力受付部816が受け付けた当該人物からの入力に基づいて、仮想空間11中の当該人物のアバターを動かす。具体的には、VR側オブジェクト制御部920は、例えば、MR側入力受付部816が受け付けた、MRユーザ6の動きに関する情報に基づいて、MRアバター26を動かす。すなわち、VR側オブジェクト制御部920は、仮想空間11中の当該人物のアバターの動きが、現実空間中の当該人物の動きを検出する検出手段が検出する当該人物の動きを模したものとなるように、当該人物のアバターの動きを制御する。そして、これにより、現実空間の特定の位置で行われる所定の事象が仮想空間11に反映されてもよい。このような構成によっても、現実空間中の特定の位置に対応する仮想空間11中の位置にVRユーザ(換言すると、VRアバター25)がいる場合に、所定のカメラにより撮影された所定の事象に関する画像に基づいて、現実空間中の当該特定の位置で行われている事象が反映された仮想空間11のビューをVRユーザに提供することができる。具体的には、所定のカメラにより撮影された人物のアバターによって所定の事象が再現される仮想空間11のビューをVRユーザに提供することができる。
なお、当該人物の動きの検出は、所定のMRユーザ6が装着するMR装置410のカメラ413によって行われてもよく、コントローラ480、MRユーザ6が身につけるデバイス、注視センサ412、センサ417、またはセンサ486等によって行われてもよい。また、MR装置410を装着するMRユーザ6は、所定の事象としての所定のイベントの出演者等であってもよく、観客等であってもよい。なお、所定のカメラが備えるイメージセンサによって撮影される画像から画像認識によって人物の動きを検出して仮想空間11中のアバターに反映させる場合に、カメラに映る複数の人物のうち演者(換言すると、画像認識あるいはユーザの動きをトラッキング可能とする特定の機器の装着の有無等に基づいて識別される特定の人物)に対応するアバターのみが仮想空間11中に現れるように(特定の人物以外の人物のアバターは現れないように)してもよく、カメラに映る全ての人物についてリアルタイムでアバター(換言すると、3Dモデル)を作成し全ての人物のアバターが仮想空間11中に現れるようにしてもよい。
なお、所定の事象が行われている特定の位置としての店Bの前にいるMRユーザ6(例えば、当該所定の事象の出演者または観客)のMR装置410のディスプレイ411には、仮想空間11において当該所定の事象を見るVRユーザのVRアバター25が表示されてもよい。例えば、MR装置410の制御部510は、当該MR装置410のMR側入力受付部816にMRユーザ6が特定の位置にいることを示す位置情報が入力されると、当該特定の位置に対応する仮想空間11中の位置にいるVRアバター25の情報を通信制御部850を介して取得し、当該VRアバター25をディスプレイ411に表示させてもよい。すなわち、制御部510は、MR側入力受付部816に入力される位置情報がMRユーザ6が前記特定の位置にいることを示すときに、当該特定の位置に対応する仮想空間中の位置にいるVRアバター25の画像を前記ディスプレイに表示させてもよい。このような構成によれば、現実空間において所定の事象が行われている場所にいる人物が、仮想空間11におけるVRユーザの反応を見ることができる。具体的には、例えば、現実空間において所定のライブ(例えば、音楽ライブやお笑いライブ等)が行われている場合に、MRユーザ6としてのライブの出演者あるいは観客は、MR装置410のディスプレイ411を介してVRアバター25(換言すると、仮想空間11における観客)を視認することが可能となる。このため、MRユーザ6としてのライブの出演者あるいは観客は、仮想空間11も含めてどのぐらいの観客が集まっているかや、各観客がどのような反応をしているか等を視覚的に捉えることが可能となる。また、例えば、友人関係にあるVRユーザとMRユーザ6とが一緒に所定のイベントを視聴すること等が可能となる。
この場合に、VRアバター25が表示されるMR装置410と、所定の事象を撮影する装置(例えば、店Bの前に設置されたカメラあるいはMR装置410)とは、別々の装置であってもよく、同じ装置(具体的には、ある1人のMRユーザ6が装着するMR装置410)であってもよい。
なお、所定の事象が起きている特定の位置にいるMRユーザ6に提供される複合現実空間21のビューは、透過型のディスプレイ411を介して見える現実空間に仮想オブジェクト(具体的には、VRアバター25)を重畳させるMR装置410により提供されるものでなくてもよく、例えば、カメラにより撮影される現実空間の画像に仮想オブジェクト(具体的には、VRアバター25)を重畳させた画像をディスプレイに表示させるスマートフォン等により提供されてもよい。すなわち、本実施形態に係る情報処理システム100は、例えば、演者が現実空間における特定の位置で自身のスマートフォンを使用して自撮り撮影しながら所定のライブを行う場合に、当該スマートフォンのディスプレイに、当該特定の位置に対応する仮想空間11中の位置にいるVRアバター25(例えば、観客のアバター)を表示させるように構成すること等もできる。なお、この場合に、スマートフォン等のディスプレイには、現実空間の画像にVRアバター25が重畳された複合現実空間21の画像ではなく、VRアバター25のみが表示される画像や、背景を仮想空間11(例えば、当該特定の位置に対応する仮想空間11中の位置の画像)としたVRアバター25の画像等が表示されてもよい。
なお、制御部310は、VRユーザ(換言すると、VRアバター25)が、仮想空間11において、所定の事象が行われている特定の位置に対応する位置を訪れたことに基づいて、VRユーザに特典を付与する特典付与部を備えていてもよい。特典は、例えば、特典を獲得したユーザがゲーム内(換言すると、サービス内)で使用可能な仮想オブジェクト(例えば、キャラクタが装備可能なアイテム等)であってもよく、現実空間中において現実の物体と交換可能な電子的チケット等であってもよく、サービス内においてユーザが所有する所定のポイント等であってもよい。また、「訪れたことに基づいて」とは、訪れたか否かを直接的に判定して特典を付与するものであってもよく、訪れることで実行可能な特定の行動(例えば、音楽ライブの視聴を開始した、終了した、あるいは所定時間以上行った。)が行われた場合に特典を付与するもの等であってもよい。このような構成によれば、VRユーザに対して、仮想空間11において、特定の位置に対応する位置を訪れる動機付けを与えることができる。
なお、現実空間中の特定の位置で起きている所定の事象が反映された仮想空間11のビューの提供を受けられるVRユーザが限定されていてもよい。具体的には、記憶部311は、当該ビューの提供を受ける権利に関する情報(以下、「権利情報」という。)を記憶する権利情報記憶部として機能し、制御部310は、VRユーザが当該権利を有する場合に当該ビューをVRユーザに提供し、当該権利を有しない場合に当該ビューをVRユーザに提供しないこととしてもよい。また、当該権利は、例えば、VRユーザが対価を払うこと(例えば、現金の支払い、あるいはサービス内でのVRユーザの保有資産(例えば、仮想通貨等)の消費等)によりVRユーザに付与されるものであってもよい。具体的には、例えば、サービス内において、音楽ライブの視聴に係る権利を購入可能となっていてもよい。より具体的には、例えば、権利情報として、サービス内で購入可能な音楽ライブのチケットの有無に関する情報が記憶され、制御部310は、当該チケットを有するVRユーザが音楽ライブの視聴をすることができ、当該チケットを有しないVRユーザが音楽ライブの視聴をすることができないように制御してもよい。換言すると、権利情報として、当該ビューの提供を受ける権利に係るアイテム(例えば、チケット等)の保有に関する情報が記憶され、制御部310は、VRユーザが当該アイテムを有している場合に、当該ビューをVRユーザに提供してもよい。なお、当該権利(換言すると、当該アイテム)は、サービス内における所定のミッションの達成等により得られるようにしてもよい。
また、制御部310は、現実空間中の特定の位置で起きている所定の事象であって、VRユーザが複数のユーザの中から選択したMRユーザ6に関連する所定の事象が反映された仮想空間11のビューを当該VRユーザに提供してもよい。換言すると、VR側入力受付部916は、VRユーザによる、複数のユーザのうちのいずれのユーザに関連する所定の事象を反映させるか選択する操作(例えば、コントローラ280に対する操作)に係る入力を受け付け、制御部310は、当該操作により選択されたMRユーザ6に関連する所定の事象を当該VRユーザに提供されるビューに反映させてもよい。当該操作は、例えば、VRユーザが、自身のフレンドの中から、事象の反映を受けるユーザを選択する操作であってもよい。また、全てのフレンドに関連する所定の事象が反映されるようになっており、当該操作は、他のユーザをフレンドとして登録する操作等であってもよい。換言すると、本実施形態のサービスでは、VRユーザは、自身のフレンドに関連する所定の事象が反映された仮想空間11のビューの提供を受けることができるようになっていてもよい。換言すると、VRユーザは、複数のユーザのうちの自身に関連付けられたユーザに関連する所定の事象が反映された仮想空間11のビューの提供を受けることができるようになっていてもよい。また、例えば、制御部310は、VRユーザが選択した芸能人が現実空間中でライブを行っている場合に、当該ライブを当該VRユーザに提供される仮想空間11のビューに反映させるなどしてもよい。なお、特定のユーザに関連する事象が複数ある場合に、当該特定のユーザに関連する特定の事象を、反映を受ける事象として選択することが可能となっていてもよい。
また、制御部310は、現実空間中の特定の位置で行われている所定の事象であって、VRユーザに設定された属性に対応する属性を有する所定の事象が反映された仮想空間11のビューを当該VRユーザに提供してもよい。具体的には、例えば、各VRユーザにはユーザの趣味、嗜好に係る属性、より具体的には「音楽好き」や「お笑い好き」(あるいは「特定の芸能人が好き」)等の属性が付されるようになっていてもよい。そして、制御部310は、例えば、「音楽好き」という属性が付されたVRユーザに対しては、「音楽」という属性が付された所定の事象を反映させ、「音楽好き」という属性が付されていないVRユーザに対しては、「音楽」という属性が付された所定の事象を反映させないようにしてもよい。また、制御部310は、例えば、「お笑い好き」という属性が付されたVRユーザに対しては、「お笑い」という属性が付された所定の事象を反映させ、「お笑い好き」という属性が付されていないVRユーザに対しては、「お笑い」という属性が付された所定の事象を反映させないようにしてもよい。なお、VRユーザに設定される属性は、各VRユーザが自身で設定すること(例えば、コントローラ280を介しての自身の好みの入力等)が可能となっていてもよく、AI(Artificial Intelligence)によって自動的に(例えば、サービス内でのユーザの行動等に応じて)設定されるなどしてもよい。
以上のように、制御部310は、現実空間中で行われる複数の事象のうち、VRユーザが選択した特定の事象(例えば、VRユーザが選択した特定のユーザに関連する事象や、VRユーザが設定した自身の属性に対応する属性を有する事象や、VRユーザが購入したチケットに係る事象等)を、仮想空間11に反映させてもよい。換言すると、制御部310は、現実空間中で行われる複数の事象のうち、VRユーザが選択していない事象を、仮想空間11に反映させなくてもよい。このように、選択していない事象を仮想空間11に反映させない場合に、ユーザの選択に関わらず反映される事象が存在してもよい。換言すると、「選択していない事象を仮想空間11に反映させない」とは、選択がされている場合に仮想空間11への反映がされる事象であって、選択がされていない場合に仮想空間11への反映がされない事象が少なくとも1つ存在すればよい。なお、事象の選択は、VRユーザが選択する特定の事象が発生(換言すると、開始)する前に行うことが可能となっていてもよく、当該特定の事象が発生した後(換言すると、行われている最中)に行うことが可能となっていてもよい。
なお、第2の実施形態の情報処理システム100や、第3の実施の形態の情報処理システム100は、現実空間と仮想空間との双方を利用して行うゲームに適用することもできる。以下に具体例を示す。
(探索ゲーム)
例えば、情報処理システム100を、仮想空間11内を移動するキャラクタを現実世界で探すゲーム(以下、「探索ゲーム」という。)に適用してもよい。具体的には、例えば、まず、現実世界に存在するテーマパークを模した仮想空間11(換言すると、テーマパークに対応する仮想空間11)を用意する。また、VR側オブジェクト制御部920は、仮想空間11内を動き回るように所定のキャラクタ(以下、「探索対象キャラクタ」という。換言すると、探索対象オブジェクト。)を移動させる。探索対象キャラクタは、VRユーザによって操作されるもの(換言すると、VRユーザの操作に基づいて移動するもの)であってもよく、ユーザの操作を介さずに移動するものであってもよい。換言すると、探索対象キャラクタは、VRアバター25であってもよく、いわゆるノンプレイヤキャラクタであってもよい。また、探索対象キャラクタの外見は、例えば、テーマパークに属するキャラクタ(例えば、テーマパークを象徴するキャラクタ等)の外見等であってもよい。
MRシステム400(換言すると、制御部510)は、仮想空間11中において探索対象キャラクタが存在する位置に対応する現実空間中の位置にMRユーザ6がいる場合に、ディスプレイ411に探索対象キャラクタを表示させる。換言すると、MRシステム400は、仮想空間11中において探索対象キャラクタが存在する位置に対応する現実空間中の位置にMRユーザ6がいない場合には、ディスプレイ411に探索対象キャラクタを表示させない。すなわち、本探索ゲームは、仮想空間11中を動き回る探索対象キャラクタを、現実空間中で探し回るゲームとなっている。
また、MR側入力受付部816は、仮想空間11中において探索対象キャラクタが存在する位置に対応する現実空間中の位置にMRユーザ6がいる状況(換言すると、ディスプレイ411に探索対象キャラクタが表示されている状況)において、MRユーザ6による特定の操作に係る入力を受け付ける。当該特定の操作は、例えば、ディスプレイ411に映る探索対象キャラクタの写真を撮る操作(換言すると、画像を記憶する操作)であってもよい。換言すると、ここでの特定の操作とは、探索対象キャラクタを発見したことを示す情報の記憶に係る操作ともいえる。なお、ここでは、探索対象キャラクタを発見したことを示す情報は、探索対象キャラクタの写真となっているが、探索対象キャラクタを見つけることで立つフラグ等であってもよい。また、当該情報は、特定の操作を介さずに自動的に記憶されるものであってもよい。換言すると、探索対象キャラクタを発見したことを示す情報は、仮想空間11中において探索対象キャラクタが存在する位置に対応する現実空間中の位置にMRユーザ6が訪れたことに基づいて記憶されるものであればよい。すなわち、制御部510は、現実空間中の当該位置にMRユーザ6が訪れたことに基づいて、操作対象キャラクタを発見したことを示す情報を記憶部511に記憶させる。
また、制御部510は、現実空間中の当該位置にMRユーザ6が訪れたことに基づいて(換言すると、探索対象キャラクタを発見したことを示す情報が記憶されると)、MRユーザに特典を付与する。当該特典は、仮想空間11中において利用可能なアイテム等であってもよい。また、当該特典は、探索対象キャラクタを発見したことを示す電子的な証明書やトロフィー等であってもよい。また、当該特典は、現実空間中において(例えば、現実のテーマパークで)現実の物体(例えば、探索対象キャラクタのグッズ等)と交換可能な電子的チケット等であってもよい。
また、本探索ゲームでは、VRユーザからMRユーザ6に対して、捜索を手助けする情報を送信可能となっていてもよい。なお、当該VRユーザは、捜索対象キャラクタを操作するユーザであってもよく、当該ユーザとは異なるユーザであってもよい。具体的には、例えば、当該VRユーザは、仮想空間11中において自身のVRアバター25を操作し、テーマパークを模した仮想空間11内で捜索対象キャラクタを捜索するようにする。また、VR側入力受付部916は、当該VRユーザによる、捜索対象キャラクタの目撃情報(例えば、目撃した場所に関する情報。換言すると、捜索を手助けする情報。)をMRユーザ6に対して送る操作(例えば、コントローラ280に対する操作)に係る入力を受け付ける。また、制御部510は、当該目撃情報を通信制御部850を介して受け取り、当該目撃情報に基づいて、捜索の手助けとなる出力を所定の出力手段に実行させる。具体的には、例えば、制御部510は、仮想空間11において捜索対象キャラクタが目撃された箇所を知らせる表示をディスプレイ411に表示させたり、捜索対象キャラクタが目撃された箇所を知らせる音をスピーカ416に出力させたりする。このような構成によれば、実際にテーマパークに行っているMRユーザ6と、実際にはテーマパークにいない(例えば、自宅等にいる)VRユーザとで協力してゲームを楽しむこと等が可能となる。
(サバイバルゲーム)
また、例えば、情報処理システム100を、仮想空間11内でプレイをするユーザと現実空間内でプレイするユーザとで対戦することが可能なサバイバルゲームに適用してもよい。具体的には、例えば、まず、現実空間側のユーザがプレイをする会場と、当該会場を模した仮想空間11(換言すると、会場を模した仮想空間11)を用意する。なお、当該会場は、いわゆるサバゲ―フィールドであってもよく、街中等の所定の領域であってもよい。また、現実空間側のユーザはMR装置410を装着し、仮想空間11側のユーザはVR装置210を装着する。
VRシステム200の制御部310は、VR側入力受付部916が受け付けたVRユーザからの入力に基づいて、当該VRユーザのVRアバター25を制御する。具体的には、制御部310は、VRユーザからの入力に基づいてVRアバター25を仮想空間11中で移動させる。
また、VRシステム200の制御部310は、MR側入力受付部816が受け付けたMRユーザ6からの入力を通信制御部950を介して受信し、MRアバター26を制御する。具体的には、制御部310は、MR装置410の備えるGPSセンサ(換言すると、位置検出手段)によって取得される位置情報(すなわち、現実空間におけるMRユーザ6の位置を示す位置情報)に基づいて、MRアバター26を仮想空間11中で移動させる。より具体的には、制御部310は、現実空間側の会場におけるMRユーザ6がいる位置に対応する仮想空間11中の位置にMRアバター26が位置するようにMRアバター26を移動させる。すなわち、VR装置210のディスプレイ211においては、複合現実空間21中におけるMRユーザ6がいる位置に対応する仮想空間11中(換言すると、会場内)の位置に、MR6ユーザが存在しているように見える表示が提供される。なお、MRユーザ6の位置をより正確に取得するために、MR装置410のセンサ417等を介してMR装置410の高さ情報等を取得してもよい。
また、MRシステム400の制御部510は、仮想空間11中におけるVRアバター25が配置される位置に対応する複合現実空間21中の位置に、VRアバター25が位置するようにVRアバター25を移動させる。すなわち、MR装置410のディスプレイ411においては、仮想空間中におけるVRユーザがいる位置に対応する複合現実空間21中(換言すると、会場内)の位置に、VRユーザが存在しているように見える表示が提供される。
また、VR側入力受付部916は、VRユーザによる、MRユーザ6(換言すると、MRアバター26)に対する攻撃に係る入力を受け付ける。また、MR側入力受付部816は、MRユーザ6による、VRユーザ(換言すると、VRアバター25)に対する攻撃に係る入力を受け付ける。なお、これらのVRユーザまたはMRユーザ6による、相手方への攻撃は、例えば、相手方に対して銃を撃つものであってもよく、当該攻撃に係る入力操作は、銃の形のコントローラ280,480等を介して行われるようになっていてもよい。
また、制御部310は、VRユーザによるMRユーザ6に対する攻撃がMRユーザ6に当たったか否かを判定する。具体的には、制御部310は、例えば、VRアバター25の持つ銃がMRアバター26に向けられた状態でVRユーザによる入力操作がされ、当該銃から放たれた弾がMRアバター26に直撃した場合に、VRユーザによる攻撃がMRユーザ6に当たったと判定する。また、制御部310は、MRユーザ6によるVRユーザに対する攻撃がVRユーザに当たったか否かを判定する。具体的には、制御部310は、例えば、MRアバター26の持つ銃がVRアバター25に向けられた状態でMRユーザ6による入力操作がされ、当該銃から放たれた弾がVRアバター25に直撃した場合に、MRユーザ6による攻撃がVRユーザに当たったと判定する。ここで、MRアバター26の持つ銃の向く方向は、例えば、MRユーザ6の持つコントローラ480の向きと連動しており、MRアバター26の銃の照準は、MRユーザ6が複合現実空間21中においてコントローラ480の照準を合わせている位置と対応する仮想空間11中の位置に合わせられるようになっている。すなわち、制御部310は、MRユーザ6が複合現実空間21中において銃の形のコントローラ480でVRアバター25に対して照準を合わせた状態で入力操作を行った場合に、MRユーザ6による攻撃がVRユーザに当たったと判定する。なお、VRユーザによるMRユーザ6に対する攻撃については、通常のシューティングゲームと同様とすることができる。なお、MRユーザ6によるVRユーザへの攻撃あるいはVRユーザによるMRユーザ6への攻撃についての判定の一部あるいは全部が、制御部510または制御部610等によって行われてもよい。換言すると、MRユーザ6によるVRユーザへの攻撃についての判定を行う判定部や、VRユーザによるMRユーザ6への攻撃についての判定を行う判定部は、制御部310、制御部510および制御部610のいずれによって実現されてもよい。
なお、ここでは、VRユーザとMRユーザ6とが敵として戦う場合を例に説明したが、当該サバイバルゲーム(換言すると、対戦ゲーム)では、VRユーザとMRユーザ6とが協力してプレイすることが可能となっていてもよい。すなわち、例えば、複数のユーザで構成される複数のチーム(例えば、2つのチーム)で対戦することが可能なサバイバルゲームとした場合に、当該複数のチームのうちの1のチームがVRユーザ(換言すると、仮想空間11側のユーザ)のみで構成され、他の1のチームがMRユーザ6(換言すると、現実空間側のユーザ)のみで構成されてもよい。また、1のチームにVRユーザとMRユーザ6との両方が含まれ得るようになっていてもよい。
(脱出ゲーム)
また、例えば、情報処理システム100を、現実空間側のユーザと仮想空間11側のユーザとが協力してプレイする脱出ゲーム(換言すると、謎解きゲーム)に適用してもよい。具体的には、例えば、まず、現実空間側のユーザがプレイをする会場と、当該会場を模した仮想空間11(換言すると、会場を模した仮想空間11)を用意する。なお、当該会場は、街中等の所定の領域であってもよく、特定の施設等であってもよい。また、現実空間側のユーザはMR装置410を装着し、仮想空間11側のユーザはVR装置210を装着する。
MR装置410を装着したユーザとVR装置210を装着したユーザとは、設定されたミッションを協力して達成する。具体的には、MR装置410とVR装置210とは、それぞれ対応する位置にミッションに係る仮想オブジェクトを表示させる。当該仮想オブジェクトは、例えば、VRユーザとMRユーザ6とが協力して行うアクションの受付に係るオブジェクトであってもよい。具体的には、VRユーザがVR装置210に表示される当該仮想オブジェクトとしての所定の装置に対して所定のアクション(例えば、手をかざす操作)を行い、MRユーザ6がMR装置410に表示される当該仮想オブジェクトとしての所定の装置に対して所定のアクション(例えば、手をかざす操作。なお、当該アクションはVRユーザが行うアクションと同様であってもよく、異なっていてもよい。)を行うと、当該所定の装置が起動する(換言すると、ゲーム(イベント)が進行する)等のようになっていてもよい。また、当該仮想オブジェクトは、例えば、宝箱等のVRユーザまたはMRユーザ6の少なくとも一方が取得可能なアイテムに関するものであってもよい。また、当該仮想オブジェクトは、謎解きに関する記載を含む(例えば、謎についての文章や、謎解きのヒントなどが記された)オブジェクト等であってもよい。
また、このような情報処理システム100を用いて実行されるゲームであって、MRユーザ6とVRユーザとが協力してプレイするゲーム等において、MRユーザ6とVRユーザとの一方がゲームの進行に係る第1の行動を行ったことを条件として、他方によるゲームの進行に係る第2の行動が可能となるようにしてもよい。この場合に、例えば、第1の行動は、当該一方のユーザしか行うことができず、当該他方のユーザが行うことはできない行動とする。また、例えば、第2の行動は、当該他方のユーザしか行うことができず、当該一方のユーザが行うことはできない行動とする。具体的には、例えば、MRシステム400(換言すると、制御部510)が、MRユーザ6が現実空間において特定の場所を訪れたことを検出すると(例えば、当該特定の場所を訪れたことを示すGPS情報がMR側入力受付部816に入力されると)、VRシステム200(換言すると、制御部310)が、VRユーザによる第2の行動に係る入力を受け付けるなどしていてもよい。換言すると、VRユーザによる第2の行動は、MRユーザ6が現実空間において特定の場所を訪れたことに基づいて実行可能となる行動であってもよい。また、例えば、VRシステム200(換言すると、制御部310)が、VRユーザが仮想空間11において特定の場所を訪れたことを検出すると、MRシステム400(換言すると、制御部510)が、MRユーザ6による第2の行動に係る入力を受け付けるなどしてもよい。換言すると、MRユーザ6による第2の行動は、VRユーザが仮想空間11において特定の場所を訪れたことに基づいて実行可能となる行動であってもよい。また、例えば、MRユーザ6が現実空間においてMR装置410としてのスマートフォンのカメラを現実空間の特定の場所に向けている間だけVR装置210がゲームの進行に係る所定の表示(例えば、謎解きに係るヒントの表示など)をディスプレイ211に表示させるなどしてもよい。また、仮想空間11を複合現実空間21の過去を表すものとし、VRシステム200は仮想空間11(換言すると、過去)でのVRユーザによる第1の行動としての所定の行動(例えば、仮想空間11中の特定の位置にアイテムを配置する行動)に係る入力を受け付けてもよい。そして、仮想空間11(換言すると、過去)でVRユーザが第1の行動を行うと、MRシステム400は現実空間(換言すると、現在)でのMRユーザ6による第2の行動としての所定の行動(例えば、当該特定の位置に対応する複合現実空間21中の位置に行き、当該アイテムを発見する行動)に係る入力を受け付け、当該入力に基づいてゲーム(換言すると、イベント)を進行させることが可能となるように構成してもよい。
なお、本発明は、上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変形して実施できる。本発明はその発明の範囲内において、各構成要素の自由な組み合わせ、任意の構成要素の変形、または任意の構成要素の省略等が可能である。また、本明細書において説明した処理の流れはあくまで一例であり、各処理の順序や構成は異なるものであってもよい。
<付記>
以上の実施形態で説明した事項は、以下の付記のようにも記載され得る。
(付記1)
仮想空間のビューである第1のビューを第1ユーザに提供する第1制御手段(例えば、制御部310)と、
第2ユーザの動きを検出する検出手段の出力を、前記第2ユーザからの入力として受け付ける入力受付手段(例えば、MR側入力受付部816)と、
現実空間における前記第2ユーザの現在の位置を示す位置情報を受け付ける位置情報受付手段(例えば、MR側入力受付部816)と、
前記現実空間と前記仮想空間との位置の対応関係を示す情報を記憶する対応関係記憶手段(例えば、記憶部611)と、を備え、
前記第1制御手段は、前記位置情報の示す前記第2ユーザの位置に対応する前記仮想空間中の位置に前記第2ユーザのアバターを配置し、前記検出手段によって検出される前記第2ユーザの動きを前記第2ユーザのアバターに反映させる
情報処理システム。
このような構成によれば、第2ユーザの動きが反映されるアバターを、現実空間における第2ユーザの位置に対応する仮想空間中の位置に配置することが可能となる。したがって、アバターに第2ユーザの動きを反映させるだけでなく、仮想空間におけるアバターの位置を、現実空間における第2ユーザの位置を反映させたものとすることができる。したがって、仮想空間の用途の幅が広がる。
(付記2)
前記検出手段は、ウェアラブルデバイスまたは体内埋め込み型のデバイスである
付記1に記載の情報処理システム。
このような構成によれば、第2ユーザが身につけるデバイスによって第2ユーザの手や足の動きなどを検出し、アバターに反映させることができる。したがって、アバターの動きを第2ユーザの動きを忠実に再現したもの等にすることができ、仮想空間の用途の幅が広がる。
(付記3)
前記位置情報は、GPSを用いて取得される
付記2に記載の情報処理システム。
このような構成によれば、第2ユーザの動きはウェアラブルデバイスによって検出され、位置情報は第2ユーザの地球上(地球全体)における位置を検出可能なGPSを用いて取得されることとなる。したがって、現実空間を自由に動き回る第2ユーザの動きを仮想空間上のアバターに反映させることが可能となり、仮想空間の用途の幅が広がる。
(付記4)
前記第1ユーザのアバターの画像を、前記第2ユーザが使用する所定の装置のディスプレイに表示させる第2制御手段(例えば、制御部510)を備え、
前記第2制御手段は、前記位置情報が前記第2ユーザが特定の位置にいることを示し、前記特定の位置に対応する前記仮想空間中の位置に前記第1ユーザのアバターがいるときに、前記第1ユーザのアバターの画像を前記ディスプレイに表示させる
付記1~3のいずれか1つに記載の情報処理システム。
このような構成によれば、現実空間において特定の位置にいる第2ユーザが、仮想空間中の当該特定の位置に対応する位置にいる第1ユーザのアバターを見ることができるようになる。したがって、仮想空間の用途の幅が広がる。
(付記5)
仮想空間のビューである第1のビューを第1ユーザに提供する第1制御手段(例えば、制御部310)と、
第2ユーザの動きを検出する検出手段の出力を、前記第2ユーザからの入力として受け付ける入力受付手段(例えば、MR側入力受付部816)と、
現実空間における前記第2ユーザの現在の位置を示す位置情報を受け付ける位置情報受付手段(例えば、MR側入力受付部816)と、
前記現実空間と前記仮想空間との位置の対応関係を示す情報を記憶する対応関係記憶手段(例えば、記憶部611)と、を備える情報処理システムのコンピュータを、前記第1制御手段として機能させるプログラムであって、
前記第1制御手段は、前記位置情報の示す前記第2ユーザの位置に対応する前記仮想空間中の位置に前記第2ユーザのアバターを配置し、前記検出手段によって検出される前記第2ユーザの動きを前記第2ユーザのアバターに反映させる
プログラム。
このような構成によれば、付記1に記載の情報処理システムと同様の作用効果を奏することができる。