(58)【調査した分野】(Int.Cl.,DB名)
第1ユーザの頭部に装着される第1ヘッドマウントデバイスを有する第1ユーザ端末と、第2ユーザの頭部に装着される第2ヘッドマウントデバイスを有する第2ユーザ端末とを備えた情報処理システムにおいてコンピュータによって実行される情報処理方法であって、
前記情報処理方法は、
(a)前記第1ユーザに関連付けられた第1アバターと前記第2ユーザに関連付けられた第2アバターとの間の相対的位置関係を特定するステップと、
(b)前記第1アバターと、前記第2アバターとを含む第1仮想空間を規定する第1仮想空間データを取得するステップと、
(c)前記第1アバターと、前記第2アバターとを含む第2仮想空間を規定する第2仮想空間データを取得するステップと、
(d)前記第1ヘッドマウントデバイスの動きと、前記第1仮想空間データに基づいて、前記第1ヘッドマウントデバイスに表示される第1視野画像を示す第1視野画像データを更新させるステップと、
(e)前記第2ヘッドマウントデバイスの動きと、前記第2仮想空間データに基づいて、前記第2ヘッドマウントデバイスに表示される第2視野画像を示す第2視野画像データを更新させるステップと、を含み、
前記第1仮想空間では、前記第1アバターと前記第2アバターとの間の相対的位置関係が維持されると共に、前記第1仮想空間の中心位置と前記第1アバターとの間の距離は、前記第1仮想空間の中心位置と前記第2アバターとの間の距離よりも小さく、
前記第2仮想空間では、前記第1アバターと前記第2アバターとの間の相対的位置関係が維持されると共に、前記第2仮想空間の中心位置と前記第2アバターとの間の距離は、前記第2仮想空間の中心位置と前記第1アバターとの間の距離よりも小さい、情報処理方法。
【発明を実施するための形態】
【0009】
[本開示が示す実施形態の説明]
本開示が示す実施形態の概要を説明する。
(1)第1ユーザの頭部に装着される第1ヘッドマウントデバイスを有する第1ユーザ端末と、第2ユーザの頭部に装着される第2ヘッドマウントデバイスを有する第2ユーザ端末とを備えた情報処理システムにおいてコンピュータによって実行される情報処理方法であって、
前記情報処理方法は、
(a)前記第1ユーザに関連付けられた第1アバターと前記第2ユーザに関連付けられた第2アバターとの間の相対的位置関係を特定するステップと、
(b)前記第1アバターと、前記第2アバターとを含む第1仮想空間を規定する第1仮想空間データを取得するステップと、
(c)前記第1アバターと、前記第2アバターとを含む第2仮想空間を規定する第2仮想空間データを取得するステップと、
(d)前記第1ヘッドマウントデバイスの動きと、前記第1仮想空間データに基づいて、前記第1ヘッドマウントデバイスに表示される第1視野画像を示す第1視野画像データを更新させるステップと、
(e)前記第2ヘッドマウントデバイスの動きと、前記第2仮想空間データに基づいて、前記第2ヘッドマウントデバイスに表示される第2視野画像を示す第2視野画像データを更新させるステップと、
を含み、
前記第1仮想空間では、前記第1アバターと前記第2アバターとの間の相対的位置関係が維持されると共に、前記第1仮想空間の中心位置と前記第1アバターとの間の距離は、前記第1仮想空間の中心位置と前記第2アバターとの間の距離よりも小さく、
前記第2仮想空間では、前記第1アバターと前記第2アバターとの間の相対的位置関係が維持されると共に、前記第2仮想空間の中心位置と前記第2アバターとの間の距離は、前記第2仮想空間の中心位置と前記第1アバターとの間の距離よりも小さい、
情報処理方法。
【0010】
上記方法によれば、第1仮想空間では、第1アバターと第2アバターとの間の相対的位置関係が維持されると共に、第1仮想空間の中心位置と第1アバターとの間の距離は、第1仮想空間の中心位置と第2アバターとの間の距離よりも小さくなる。一方、第2仮想空間では、第1アバターと第2アバターとの間の相対的位置関係が維持されると共に、第2仮想空間の中心位置と第2アバターとの間の距離は、第2仮想空間の中心位置と第1アバターとの間の距離よりも小さくなる。
【0011】
このように、例えば、第1アバターと第2アバターとの間の相対的位置関係を維持した状態で、第1ユーザは、第1仮想空間の天球面上に投影された映像コンテンツを快適に視聴することが可能となると共に、第2ユーザは、第2仮想空間の天球面上に投影された映像コンテンツを快適に視聴することが可能となる。従って、ユーザにリッチな仮想体験を提供することができる。
【0012】
(2)前記第1仮想空間では、前記第1アバターは、前記第1仮想空間の中心位置又はその近傍に配置され、
前記第2仮想空間では、前記第2アバターは、前記第2仮想空間の中心位置又はその近傍に配置される、
項目(1)に記載の情報処理方法。
【0013】
上記方法によれば、第1仮想空間では、第1アバターと第2アバターとの間の相対的位置関係が維持されると共に、第1アバターは、第1仮想空間の中心位置又はその近傍に配置される。一方、第2仮想空間では、第1アバターと第2アバターとの間の相対的位置関係が維持されると共に、第2アバターは、第2仮想空間の中心位置又はその近傍に配置される。
【0014】
このように、例えば、第1アバターと第2アバターとの間の相対的位置関係を維持した状態で、第1ユーザは、第1仮想空間の天球面上に投影された映像コンテンツを快適に視聴することが可能となると共に、第2ユーザは、第2仮想空間の天球面上に投影された映像コンテンツを快適に視聴することが可能となる。
【0015】
(3)前記第1仮想空間と前記第2仮想空間には同一の映像コンテンツが提供される、項目(1)又は(2)に記載の情報処理方法。
【0016】
上記方法によれば、第1ユーザ及び第2ユーザは、仮想空間に提供された同一の映像コンテンツを快適に視聴することができる。つまり、複数ユーザが同一映像コンテンツ視聴等の同一の仮想体験をすることができるため、複数ユーザ間における仮想体験の共有を促進させることができる。
【0017】
(4)前記第1仮想空間は、前記映像コンテンツが投影される天球面をさらに含み、
(f)前記第1仮想空間に配置された前記第1アバターが示す方向と前記第1仮想空間の天球面とが交差する交差点の位置に関する情報を取得するステップと、
(g)前記交差点の位置と前記第2仮想空間に配置された前記第1アバターの身体の一部の位置とに基づいて、前記第2仮想空間に配置された前記第1アバターが示す方向を特定するステップと、
をさらに含む、項目(1)から(3)のうちいずれか一項に記載の情報処理方法。
【0018】
上記方法によれば、第1仮想空間に配置された第1アバターが示す方向と第1仮想空間の天球面が交差する交差点の位置と第2仮想空間に配置された第1アバターの身体の一部の位置とに基づいて、第2仮想空間に配置された前記第1アバターが示す方向が特定される。このように、第1仮想空間上での第1アバターの位置と第2仮想空間上での第1アバターの位置が異なっている場合においても、第2仮想空間上において第1アバターが示す方向がずれてしまうといった状況を回避することが可能となる。このように、ユーザにリッチな仮想体験を提供することができる。
【0019】
(5)前記ステップ(f)は、
前記第1仮想空間に配置された前記第1アバターの顔の向きと前記第1仮想空間の天球面とが交差する第1交差点の位置に関する情報を取得するステップを含み、
前記ステップ(g)は、
前記第1交差点の位置と前記第2仮想空間に配置された前記第1アバターの顔の位置とに基づいて、前記第2仮想空間に配置された前記第1アバターの顔の向きを特定するステップを含む、
項目(4)に記載の情報処理方法。
【0020】
上記方法によれば、第1仮想空間に配置された第1アバターの顔の向きと第1仮想空間の天球面が交差する第1交差点の位置と第2仮想空間に配置された第1アバターの顔の位置とに基づいて、第2仮想空間に配置された前記第1アバターの顔の向きが特定される。
このように、第1仮想空間上での第1アバターの位置と第2仮想空間上での第1アバターの位置が異なっている場合においても、第2仮想空間上において第1アバターの顔の向きがずれてしまうといった状況を回避することが可能となる。したがって、ユーザにリッチな仮想体験を提供することができる。
【0021】
(6)前記ステップ(f)は、
前記第1仮想空間に配置された前記第1アバターの視線と前記第1仮想空間の天球面とが交差する第2交差点の位置に関する情報を取得するステップを含み、
前記ステップ(g)は、
前記第2交差点の位置と前記第2仮想空間に配置された前記第1アバターの顔の位置に基づいて、前記第2仮想空間に配置された前記第1アバターの視線を特定するステップを含む、
項目(4)に記載の情報処理方法。
【0022】
上記方法によれば、第1仮想空間に配置された第1アバターの視線と第1仮想空間の天球面が交差する第2交差点の位置と第2仮想空間に配置された第1アバターの顔の位置とに基づいて、第2仮想空間に配置された前記第1アバターの視線が特定される。このように、第1仮想空間上での第1アバターの位置と第2仮想空間上での第1アバターの位置が異なっている場合においても、第2仮想空間上において第1アバターの視線がずれてしまうといった状況を回避することが可能となる。したがって、ユーザにリッチな仮想体験を提供することができる。
【0023】
(7)前記ステップ(f)は、
前記第1仮想空間に配置された前記第1アバターの手が指し示す方向と前記第1仮想空間の天球面とが交差する第3交差点の位置に関する情報を取得するステップを含み、
前記ステップ(g)は、
前記第3交差点の位置と前記第2仮想空間に配置された前記第1アバターの手の位置に基づいて、前記第2仮想空間に配置された前記第1アバターの手が指し示す方向を特定するステップを含む、
項目(4)に記載の情報処理方法。
【0024】
上記方法によれば、第1仮想空間に配置された第1アバターの手が指し示す方向と第1仮想空間の天球面が交差する第3交差点の位置と第2仮想空間に配置された第1アバターの手の位置に基づいて、第2仮想空間に配置された前記第1アバターの手が指し示す方向が特定される。このように、第1仮想空間上での第1アバターの位置と第2仮想空間上での第1アバターの位置が異なっている場合においても、第2仮想空間上において第1アバターの手が指し示す方向がずれてしまうといった状況を回避することが可能となる。したがって、ユーザにリッチな仮想体験を提供することができる。
【0025】
(8)項目(1)から(7)のうちいずれか一項に記載の情報処理方法をコンピュータに実行させるための情報処理プログラム。
【0026】
上記情報処理プログラムによれば、ユーザにリッチな仮想体験を提供することができる。
【0027】
(9)第1ユーザの頭部に装着される第1ヘッドマウントデバイスを有する第1ユーザ端末と、
第2ユーザの頭部に装着される第2ヘッドマウントデバイスを有する第2ユーザ端末と、
を備え、
項目(1)から(7)のうちいずれか一項に記載の情報処理方法を実行するように構成された、情報処理システム。
【0028】
上記情報処理システムによれば、ユーザにリッチな仮想体験を提供することができる。
【0029】
(10)プロセッサと、
コンピュータ可読命令を記憶するメモリと、を備えた情報処理装置であって、
前記コンピュータ可読命令が前記プロセッサにより実行されると、前記情報処理装置は項目(1)から(7)のうちいずれか一項に記載の情報処理方法を実行する、情報処理装置。
【0030】
上記情報処理装置によれば、ユーザにリッチな仮想体験を提供することができる。
【0031】
[本開示が示す実施形態の詳細]
以下、本開示が示す実施形態について図面を参照しながら説明する。尚、本実施形態の説明において既に説明された部材と同一の参照番号を有する部材については、説明の便宜上、その説明は繰り返さない。
【0032】
最初に、仮想空間配信システム100(情報処理システム)の構成の概略について
図1を参照して説明する。
図1は、仮想空間配信システム100(以下、単に配信システム100という。)の概略図である。
図1に示すように、配信システム100は、ユーザA(第1ユーザ)によって操作されるユーザ端末1A(第1ユーザ端末)と、ユーザB(第2ユーザ)によって操作されるユーザ端末1B(第2ユーザ端末)と、サーバ2とを備える。ユーザ端末1A,1Bは、インターネット等の通信ネットワーク3を介してサーバ2に通信可能に接続されている。尚、本実施形態において、仮想空間とは、VR(Virtual Reality)空間と、AR(Argumented Reality)空間と、MR(Mixed Reality)空間を含むものである。また、以降では、説明の便宜上、各ユーザ端末1A,1Bを単にユーザ端末1と総称する場合がある。さらに、各ユーザA,Bを単にユーザUと総称する場合がある。また、本実施形態では、ユーザ端末1A,1Bは、同一の構成を備えているものとする。
【0033】
次に、
図2を参照してユーザ端末1の構成について説明する。
図2は、ユーザ端末1を示す概略図である。
図2に示すように、ユーザ端末1は、ユーザUの頭部に装着されたヘッドマウントデバイス(HMD)110と、ヘッドフォン116と、マイク118と、位置センサ130と、外部コントローラ320と、制御装置120とを備える。
【0034】
HMD110は、表示部112と、HMDセンサ114と、注視センサ140とを備えている。表示部112は、HMD110を装着したユーザUの視界(視野)を完全に覆うように構成された非透過型の表示装置を備えている。これにより、ユーザUは、表示部112に表示された視野画像のみを見ることで仮想空間に没入することができる。尚、表示部112は、ユーザUの左目に画像を提供するように構成された左目用表示部と、ユーザUの右目に画像を提供するように構成された右目用表示部とから構成されてもよい。また、HMD110は、透過型の表示装置を備えてもよい。この場合、透過型の表示装置は、その透過率を調整することで、一時的に非透過型の表示装置として構成されてもよい。
【0035】
HMDセンサ114は、HMD110の表示部112の近傍に搭載される。HMDセンサ114は、地磁気センサ、加速度センサ、傾きセンサ(角速度センサやジャイロセンサ等)のうちの少なくとも1つを含み、ユーザUの頭部に装着されたHMD110の各種動き(傾き等)を検出することができる。
【0036】
注視センサ140は、ユーザUの視線を検出するアイトラッキング機能を有する。注視センサ140は、例えば、右目用注視センサと、左目用注視センサを備えてもよい。右目用注視センサは、ユーザUの右目に例えば赤外光を照射して、右目(特に、角膜や虹彩)から反射された反射光を検出することで、右目の眼球の回転角に関する情報を取得してもよい。一方、左目用注視センサは、ユーザUの左目に例えば赤外光を照射して、左目(特に、角膜や虹彩)から反射された反射光を検出することで、左目の眼球の回転角に関する情報を取得してもよい。
【0037】
ヘッドフォン116(音声出力部)は、ユーザUの左耳と右耳にそれぞれ装着されている。ヘッドフォン116は、制御装置120から音声データ(電気信号)を受信し、当該受信した音声データに基づいて音声を出力するように構成されている。マイク118(音声入力部)は、ユーザUから発声された音声を収集し、当該収集された音声に基づいて音声データ(電気信号)を生成するように構成されている。さらに、マイク118は、音声データを制御装置120に送信するように構成されている。
【0038】
位置センサ130は、例えば、ポジション・トラッキング・カメラにより構成され、HMD110と外部コントローラ320の位置を検出するように構成されている。位置センサ130は、制御装置120に無線又は有線により通信可能に接続されており、HMD110に設けられた図示しない複数の検知点の位置、傾き又は発光強度に関する情報を検出するように構成されている。さらに、位置センサ130は、外部コントローラ320に設けられた図示しない複数の検知点の位置、傾き及び/又は発光強度に関する情報を検出するように構成されている。検知点は、例えば、赤外線や可視光を放射する発光部である。また、位置センサ130は、赤外線センサや複数の光学カメラを含んでもよい。
【0039】
外部コントローラ320は、ユーザUの身体の一部(頭部以外の部位であり、本実施形態においてはユーザUの手)の動きを検知することにより、仮想空間内に表示されるアバターの手の動作を制御するために使用される。外部コントローラ320は、ユーザUの右手によって操作される右手用外部コントローラ320R(以下、単にコントローラ320Rという。)と、ユーザUの左手によって操作される左手用外部コントローラ320L(以下、単にコントローラ320Lという。)と、を有する。コントローラ320Rは、ユーザUの右手の位置や右手の手指の動きを示す装置である。また、コントローラ320Rの動きに応じて仮想空間内に存在するアバターの右手が動く。コントローラ320Lは、ユーザUの左手の位置や左手の手指の動きを示す装置である。また、コントローラ320Lの動きに応じて仮想空間内に存在するアバターの左手が動く。
【0040】
制御装置120は、HMD110を制御するように構成されたコンピュータである。制御装置120は、位置センサ130から取得された情報に基づいて、HMD110の位置情報を特定し、当該特定された位置情報に基づいて、仮想空間における仮想カメラの位置と、現実空間におけるHMD110を装着したユーザUの位置を正確に対応付けることができる。さらに、制御装置120は、位置センサ130及び/又は外部コントローラ320に内蔵されたセンサから取得された情報に基づいて、外部コントローラ320の動作を特定し、当該特定された外部コントローラ320の動作に基づいて、仮想空間内に表示されるアバターの手の動作と現実空間における外部コントローラ320の動作を正確に対応付けることができる。特に、制御装置120は、位置センサ130及び/又はコントローラ320Lに内蔵されたセンサから取得された情報に基づいて、コントローラ320Lの動作を特定し、当該特定されたコントローラ320Lの動作に基づいて、仮想空間内に表示されるアバターの左手の動作と現実空間におけるコントローラ320Lの動作(ユーザUの左手の動作)を正確に対応付けることができる。同様に、制御装置120は、位置センサ及び/コントローラ320Rに内蔵されたセンサから取得された情報に基づいて、コントローラ320Rの動作を特定し、当該特定されたコントローラ320Rの動作に基づいて、仮想空間内に表示されるアバターの右手の動作と現実空間におけるコントローラ320Rの動作(ユーザUの右手の動作)を正確に対応付けることができる。
【0041】
また、制御装置120は、注視センサ140(左目用注視センサと右目用注視センサ)から送信された情報に基づいて、ユーザUの右目の視線と左目の視線をそれぞれ特定し、当該右目の視線と当該左目の視線の交点である注視点を特定することができる。さらに、制御装置120は、特定された注視点に基づいて、ユーザUの両目の視線(ユーザUの視線)を特定することができる。ここで、ユーザUの視線は、ユーザUの両目の視線であって、ユーザUの右目と左目を結ぶ線分の中点と注視点を通る直線の方向に一致する。
【0042】
次に、
図3を参照して、HMD110の位置や傾きに関する情報を取得する方法について説明する。
図3は、HMD110を装着したユーザUの頭部を示す図である。HMD110を装着したユーザUの頭部の動きに連動したHMD110の位置や傾きに関する情報は、位置センサ130及び/又はHMD110に搭載されたHMDセンサ114により検出可能である。
図2に示すように、HMD110を装着したユーザUの頭部を中心として、3次元座標(uvw座標)が規定される。ユーザUが直立する垂直方向をv軸として規定し、v軸と直交しHMD110の中心を通る方向をw軸として規定し、v軸およびw軸と直交する方向をu軸として規定する。位置センサ130及び/又はHMDセンサ114は、各uvw軸回りの角度(すなわち、v軸を中心とする回転を示すヨー角、u軸を中心とした回転を示すピッチ角、w軸を中心とした回転を示すロール角で決定される傾き)を検出する。制御装置120は、検出された各uvw軸回りの角度変化に基づいて、仮想カメラの視軸を制御するための角度情報を決定する。
【0043】
次に、
図4を参照することで、制御装置120のハードウェア構成について説明する。
図4は、制御装置120のハードウェア構成を示す図である。
図4に示すように、制御装置120は、制御部121と、記憶部123と、I/O(入出力)インターフェース124と、通信インターフェース125と、バス126とを備える。制御部121と、記憶部123と、I/Oインターフェース124と、通信インターフェース125は、バス126を介して互いに通信可能に接続されている。
【0044】
制御装置120は、HMD110とは別体に、パーソナルコンピュータ、タブレット又はウェアラブルデバイスとして構成されてもよいし、HMD110に内蔵されていてもよい。また、制御装置120の一部の機能がHMD110に搭載されると共に、制御装置120の残りの機能がHMD110とは別体の他の装置に搭載されてもよい。
【0045】
制御部121は、メモリとプロセッサを備えている。メモリは、例えば、各種プログラム等が格納されたROM(Read Only Memory)やプロセッサにより実行される各種プログラム等が格納される複数ワークエリアを有するRAM(Random Access Memory)等から構成される。プロセッサは、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)及び/又はGPU(Graphics Processing Unit)であって、ROMに組み込まれた各種プログラムから指定されたプログラムをRAM上に展開し、RAMとの協働で各種処理を実行するように構成されている。
【0046】
特に、プロセッサが制御プログラムをRAM上に展開し、RAMとの協働で制御プログラムを実行することで、制御部121は、制御装置120の各種動作を制御してもよい。制御部121は、視野画像データに基づいてHMD110の表示部112に視野画像を表示する。これにより、ユーザUは、仮想空間に没入することができる。
【0047】
記憶部(ストレージ)123は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、USBフラッシュメモリ等の記憶装置であって、プログラムや各種データを格納するように構成されている。記憶部123は、本実施形態に係る情報処理方法の少なくとも一部をコンピュータに実行させるための制御プログラムや、複数のユーザによる仮想空間の共有を実現するための制御プログラムを格納してもよい。また、記憶部123には、ユーザUの認証プログラムや各種画像やオブジェクト(例えば、アバター等)に関するデータが格納されてもよい。さらに、記憶部123には、各種データを管理するためのテーブルを含むデータベースが構築されてもよい。
【0048】
I/Oインターフェース124は、位置センサ130と、HMD110と、外部コントローラ320と、ヘッドフォン116と、マイク118とをそれぞれ制御装置120に通信可能に接続するように構成されており、例えば、USB(Universal Serial Bus)端子、DVI(Digital Visual Interface)端子、HDMI(登録商標)(High―Definition Multimedia Interface)端子等により構成されている。尚、制御装置120は、位置センサ130と、HMD110と、外部コントローラ320と、ヘッドフォン116と、マイク118とのそれぞれと無線接続されていてもよい。
【0049】
通信インターフェース125は、制御装置120をLAN(Local Area Network)、WAN(Wide Area Network)又はインターネット等の通信ネットワーク3に接続させるように構成されている。通信インターフェース125は、通信ネットワーク3を介してサーバ2等の外部装置と通信するための各種有線接続端子や、無線接続のための各種処理回路を含んでおり、通信ネットワーク3を介して通信するための通信規格に適合するように構成されている。
【0050】
次に、
図5から
図8を参照することで視野画像をHMD110に表示するための処理について説明する。
図5は、視野画像をHMD110に表示する処理を示すフローチャートである。
図6は、仮想空間200の一例を示すxyz空間図である。
図7の状態(a)は、
図6に示す仮想空間200のyx平面図である。
図7の状態(b)は、
図6に示す仮想空間200のzx平面図である。
図8は、HMD110に表示された視野画像Vの一例を示す図である。
【0051】
図5に示すように、ステップS1において、制御部121(
図4参照)は、仮想カメラ300と、各種オブジェクトとを含む仮想空間200を示す仮想空間データを生成する。
図6に示すように、仮想空間200は、中心位置21を中心とした全天球として規定される(
図6では、上半分の天球のみが図示されている)。また、仮想空間200では、中心位置210を原点とするxyz座標系が設定されている。仮想カメラ300は、HMD110に表示される視野画像V(
図8参照)を特定するための視軸Lを規定している。仮想カメラ300の視野を定義するuvw座標系は、現実空間におけるユーザUの頭部を中心として規定されたuvw座標系に連動するように決定される。また、HMD110を装着したユーザUの現実空間における移動に連動して、制御部121は、仮想カメラ300を仮想空間200内で移動させてもよい。
【0052】
次に、ステップS2において、制御部121は、仮想カメラ300の視野CV(
図7参照)を特定する。具体的には、制御部121は、位置センサ130及び/又はHMDセンサ114から送信されたHMD110の状態を示すデータに基づいて、HMD110の位置や傾きに関する情報を取得する。次に、制御部121は、HMD110の位置や傾きに関する情報に基づいて、仮想空間200内における仮想カメラ300の位置や向きを特定する。次に、制御部121は、仮想カメラ300の位置や向きから仮想カメラ300の視軸Lを決定し、決定された視軸Lから仮想カメラ300の視野CVを特定する。ここで、仮想カメラ300の視野CVは、HMD110を装着したユーザUが視認可能な仮想空間200の一部の領域に相当する(換言すれば、HMD110に表示される仮想空間200の一部の領域に相当する)。また、視野CVは、
図7の状態(a)に示すxy平面において、視軸Lを中心とした極角αの角度範囲として設定される第1領域CVaと、
図7の状態(b)に示すxz平面において、視軸Lを中心とした方位角βの角度範囲として設定される第2領域CVbとを有する。尚、制御部121は、注視センサ140から送信されたユーザUの視線を示すデータに基づいてユーザUの視線を特定し、特定されたユーザUの視線とHMD110の位置や傾きに関する情報に基づいて、仮想カメラ300の向き(仮想カメラの野軸L)を決定してもよい。また、後述するように、制御部121は、HMD110の位置や傾きに関する情報に基づいて、ユーザUのアバターの顔の向きを決定してもよい。
【0053】
このように、制御部121は、位置センサ130及び/又はHMDセンサ114からのデータに基づいて、仮想カメラ300の視野CVを特定することができる。ここで、HMD110を装着したユーザUが動くと、制御部121は、位置センサ130及び/又はHMDセンサ114から送信されたHMD110の動きを示すデータに基づいて、仮想カメラ300の視野CVを更新することができる。つまり、制御部121は、HMD110の動きに応じて、視野CVを更新することができる。同様に、ユーザUの視線が変化すると、制御部121は、注視センサ140から送信されたユーザUの視線を示すデータに基づいて、仮想カメラ300の視野CVを更新してもよい。つまり、制御部121は、ユーザUの視線の変化に応じて、視野CVを変化させてもよい。
【0054】
次に、ステップS3において、制御部121は、HMD110の表示部112に表示される視野画像Vを示す視野画像データを生成する。具体的には、制御部121は、仮想空間200を規定する仮想空間データと、仮想カメラ300の視野CVとに基づいて、視野画像データを生成する。
【0055】
次に、ステップS4において、制御部121は、視野画像データに基づいて、HMD110の表示部112に視野画像Vを表示する(
図7参照)。このように、HMD110を装着しているユーザUの動きに応じて、仮想カメラ300の視野CVが変化し、HMD110の表示部112に表示される視野画像Vが変化するので、ユーザUは仮想空間200に没入することができる。
【0056】
尚、仮想カメラ300は、左目用仮想カメラと右目用仮想カメラを含んでもよい。この場合、制御部121は、仮想空間データと左目用仮想カメラの視野に基づいて、左目用の視野画像を示す左目用視野画像データを生成する。さらに、制御部121は、仮想空間データと、右目用仮想カメラの視野に基づいて、右目用の視野画像を示す右目用視野画像データを生成する。その後、制御部121は、左目用視野画像データに基づいて、左目用表示部に左目用の視野画像を表示すると共に、右目用視野画像データに基づいて、右目用表示部に右目用の視野画像を表示する。このようにして、ユーザUは、左目用視野画像と右目用視野画像との間の視差により、視野画像を3次元的に視認することができる。尚、仮想カメラは、後述するように、ユーザによって操作されるアバターの目の位置に配置されてもよい。例えば、左目用仮想カメラは、アバターの左目に配置される一方で、右目用仮想カメラは、アバターの右目に配置されてもよい。
【0057】
また、
図5に示すステップS1〜S4の処理は1フレーム(動画を構成する静止画像)毎に実行されてもよい。例えば、動画のフレームレートが90fpsである場合、ステップS1〜S4の処理はΔT=1/90(秒)間隔で繰り返し実行されてもよい。このように、ステップS1〜S4の処理が所定間隔ごとに繰り返し実行されるため、HMD110の動作に応じて仮想カメラ300の視野が更新されると共に、HMD110の表示部112に表示される視野画像Vが更新される。
【0058】
次に、
図1に示すサーバ2のハードウェア構成について
図9を参照して説明する。
図9は、サーバ2のハードウェア構成を示す図である。
図9に示すように、サーバ2は、制御部23と、記憶部22と、通信インターフェース26と、バス24とを備える。制御部23と、記憶部22と、通信インターフェース26は、バス24を介して互いに通信可能に接続されている。制御部23は、メモリとプロセッサを備えており、メモリは、例えば、ROM及びRAM等から構成されると共に、プロセッサは、例えば、CPU、MPU及び/又はGPUにより構成される。
【0059】
記憶部(ストレージ)22は、例えば、大容量のHDD等である。記憶部22は、本実施形態に係る情報処理方法の少なくとも一部をコンピュータに実行させるための制御プログラムや、複数のユーザによる仮想空間の共有を実現させるための制御プログラムを格納してもよい。また、記憶部22は、各ユーザを管理するためのユーザ管理情報や各種画像やオブジェクト(例えば、アバター等)に関するデータを格納してもよい。通信インターフェース26は、サーバ2を通信ネットワーク3に接続させるように構成されている。
【0060】
次に、
図10を参照することでユーザAに提供される仮想空間200AとユーザBに提供される仮想空間200Bについて説明する。
図10の状態(a)は、ユーザAに提供される仮想空間200Aを示す図である。
図10の状態(b)は、ユーザBに提供される仮想空間200Bを示す図である。本説明では、前提条件として、
図10に示すように、ユーザ端末1A(ユーザA)に関連付けられたアバター4A(第1アバター)と、ユーザ端末1B(ユーザB)に関連付けられたアバター4B(第2アバター)が同一の仮想空間を共有しているものとする。つまり、通信ネットワーク3を介してユーザAとユーザBが一つの仮想空間を共有するものとする。
【0061】
図10の状態(a)に示すように、ユーザAの仮想空間200Aは、アバター4Aと、アバター4Bと、映像コンテンツ(360度空間映像等)が投影される天球面Saとを含む。アバター4Aは、ユーザAによって操作されると共に、ユーザAの動作に連動する。アバター4Aは、ユーザ端末1Aのコントローラ320Lの動作(ユーザAの左手の動作)に連動する左手と、ユーザ端末1Aのコントローラ320Rの動作(ユーザAの右手の動作)に連動する右手とを有する。アバター4Bは、ユーザBによって操作されると共に、ユーザBの動作に連動する。アバター4Bは、ユーザBの左手の動作を示すユーザ端末1Bのコントローラ320Lの動作に連動する左手と、ユーザ端末1Bのコントローラ320Rの動作(ユーザBの右手の動作)に連動する右手とを有する。
【0062】
尚、仮想空間200Aでは、アバター4Aが可視化されない場合も想定される。この場合、仮想空間200Aに配置されるアバター4Aは、少なくともユーザ端末1AのHMD110の動きに連動する仮想カメラ300を含む。
【0063】
また、ユーザ端末1A,1BのHMD110の傾きに応じてアバター4A,4Bの顔の向きが特定されてもよい。さらに、ユーザ端末1A,1Bの外部コントローラの動作に応じてアバター4A,4Bの手の動作が特定されてもよい。特に、ユーザ端末1A,1Bのコントローラ320Lの動作に応じてアバター4A,4Bの左手の動作が特定されると共に、ユーザ端末1A,1Bのコントローラ320Rの動作に応じてアバター4A,4Bの仮想右手の動作が特定されてもよい。また、注視センサ140によって検出されたユーザA,Bの視線を示すデータに応じてアバター4A,4Bの白目に対する黒目の相対的位置が特定されてもよい。特に、左目用注視センサによって検出されたユーザの左目の視線を示すデータに応じてアバターの左白目に対する左黒目の相対的位置が特定されてもよい。さらに、右目用注視センサによって検出されたユーザの右目の視線を示すデータに応じてアバターの右白目に対する右黒目の相対的位置が特定されてもよい。
【0064】
また、ユーザ端末1A,1BのHMD110の傾きに応じてアバター4A,4Bの視線が特定されてもよい。換言すれば、アバターの視線は、仮想カメラの視軸Lに応じて特定されてもよい。ここで、アバターの視線とはアバターの両目の視線を指す。尚、ユーザ端末1A,1BのHMD110の傾き及び/又はユーザA,Bの視線(ユーザA,Bの両目の視線)に基づいてアバター4A,4Bの視線が特定されてもよい。ここで、ユーザA,Bの視線は、上記したように、注視センサ140によって検出されたユーザA,Bの視線を示すデータに応じて特定される。
【0065】
また、アバター4A,4Bの各々の目には、仮想カメラ300(
図6)が配置されてもよい。特に、アバター4A,4Bの左目には、左目用仮想カメラが配置されると共に、アバター4A,4Bの右目には、右目用仮想カメラが配置されてもよい。尚、以降の説明では、仮想カメラ300は、アバター4A,4Bの目に配置されているものとする。このため、アバター4Aの視野CVは、アバター4Aに配置された仮想カメラ300の視野CV(
図7参照)と一致するものとする。同様に、アバター4Bの視野CVは、アバター4Bに配置された仮想カメラ300の視野CV(
図7参照)と一致するものとする。
【0066】
図10の状態(b)に示すように、ユーザBの仮想空間200Bは、アバター4Aと、アバター4Bと、映像コンテンツ(360度空間映像等)が投影される天球面Sbとを含む。仮想空間200Aの天球面Saと仮想空間200Bの天球面Sbには同一の映像コンテンツが投影されている。
【0067】
尚、仮想空間200Bでは、アバター4Bが可視化されない場合も想定される。この場合、仮想空間200Bに配置されるアバター4Bは、少なくともユーザ端末1BのHMD110の動きに連動する仮想カメラ300を含む。
【0068】
また、本実施形態では、アバター4A,4Bは、仮想空間200A,200B内を移動しない。つまり、アバター4A,4Bは、仮想空間200A,200B内の所定位置に固定的に配置されている。特に、アバター4Aは、仮想空間200Aの中心位置21Aに配置されている一方、アバター4Bが仮想空間200Bの中心位置21Bに配置されている。
【0069】
尚、アバター4Aは、中心位置21Aの近傍に配置されてもよい。ここで、中心位置21Aから仮想空間200Aの外縁までの距離をRaとした場合に、「中心位置21Aの近傍」とは、中心位置21Aを中心とした半径0.2Raで規定される円領域内、好ましくは中心位置21Aを中心とした半径0.1Raで規定される円領域内、さらに好ましくは中心位置21Aを中心とした半径0.05Raで規定される円領域内である。さらに、アバター4Bは、中心位置21Bの近傍に配置されてもよい。ここで、中心位置21Bから仮想空間200Bの外縁までの距離をRbとした場合に、「中心位置21Bの近傍」とは、中心位置21Bを中心とした半径0.2Rbで規定される円領域内、好ましくは中心位置21Bを中心とした半径0.1Rbで規定される円領域内、さらに好ましくは中心位置21Bを中心とした半径0.05Rbで規定される円領域内である。
【0070】
また、仮想空間200Aでは、アバター4Aが中心位置21A又はその近傍に配置されている一方、アバター4Bが中心位置21Aの近傍の外側に配置されてもよい。同様に、仮想空間200Bでは、アバター4Bが中心位置21B又はその近傍に配置されている一方、アバター4Aは中心位置21Bの近傍の外側に配置されてもよい。
【0071】
このように、本実施形態によれば、全てのアバターを仮想空間の中心位置の付近に配置する必要がないため、アバター配置の自由度を向上させることが可能となる。
【0072】
また、仮想空間200Aにおけるアバター4Aとアバター4Bとの間の相対的位置関係は、仮想空間200Bにおけるアバター4Aとアバター4Bとの間の相対的位置関係と同一となっている。換言すれば、各仮想空間200A,200Bにおいて、アバター4A,4Bの座標位置がそれぞれ異なる一方、アバター4A,4B間の相対的位置関係は維持されている。
【0073】
また、アバター4Aとアバター4Bとの間の相対的位置関係は、アバターが仮想空間に配置された順番(又はアバターが仮想空間に入室した順番)に従って特定されてもよい。例えば、サーバ2は、アバターが仮想空間に配置された順番と当該順番に関連付けられたアバター間の相対的位置とを示すテーブルを参照することで、アバター間の相対的位置関係を特定してもよい。サーバ2がアバター間の相対的位置関係を特定した後に、当該相対的位置関係を示す情報をユーザ端末1A,1Bに送信する。その後、ユーザ端末1Aの制御部121は、受信した相対的位置関係に基づいて、仮想空間200A内におけるアバター4Bの位置を特定する。このとき、ユーザ端末1Aの制御部121は、アバター4Aを中心位置21Aに配置する。一方、ユーザ端末1Bの制御部121は、受信した相対的位置関係に基づいて、仮想空間200B内におけるアバター4Aの位置を特定する。このとき、ユーザ端末1Bの制御部121は、アバター4Bを中心位置21Bに配置する。
【0074】
本実施形態によれば、アバター4Aと4B間の相対的位置関係が維持された状態で、アバター4Aは中心位置21A又はその近傍に配置されると共に、アバター4Bは中心位置21B又はその近傍に配置される。また、アバターが仮想空間の中心位置に位置する場合に、当該アバターに関連したユーザは、仮想空間の天球面上に投影された映像コンテンツを最も見やすい。このように、ユーザAは、仮想空間200Aの天球面Sa上に投影された映像コンテンツを快適に視聴することができると共に、ユーザBは、仮想空間200Bの天球面Sb上に投影された映像コンテンツを快適に視聴することができる。さらに、仮想空間200A,200Bには、同一の映像コンテンツが提供されるので、ユーザA,Bは、同一の映像コンテンツ視聴等の同一の仮想体験を共有することができる。このように、複数ユーザ間における仮想体験の共有(例えば、ソーシャルVR等)を促進させることができる。
【0075】
次に、
図11を参照してアバター間の相対的位置関係について詳細に説明する。
図11は、仮想空間のXZ平面図を示す。具体的には、
図11の状態(a)は、アバター4AがユーザAの仮想空間200Aの中心位置21Aに配置されている状態を示す図である。
図11の状態(b)は、アバター4BがユーザBの仮想空間200Bの中心位置21Bに配置されている状態を示す図である。
図11の状態(c)は、アバター4CがユーザCの仮想空間200Cの中心位置21Cに配置されている状態を示す図である。
図11の状態(d)は、アバター4DがユーザDの仮想空間200Dの中心位置21Dに配置されている状態を示す図である。アバター間の相対的位置関係を説明するために、4人のユーザA〜Dが一つの仮想空間を共有することを前提とする。ここで、アバター4Cは、ユーザCによって操作されると共に、アバター4Dは、ユーザDによって操作される。また、仮想空間200CがユーザCに提供されると共に、仮想空間200DがユーザDに提供される。
【0076】
最初に、アバター4A,4B,4C,4Dの順番で各アバター4A〜4Dが仮想空間に配置された場合に、サーバ2は、当該順番に従ってアバター4A〜4D間の相対的位置関係を特定してもよい。例えば、サーバ2は、当該順番に従って時計回り又は反時計回りの方向に各アバターが配置されるようにアバター間の相対的位置関係を特定してもよい。
【0077】
次に、
図11に示すように、ユーザA〜Dに提供される仮想空間200A〜200Dの各々において、アバター4A〜4Dの座標位置が異なる一方で、アバター4A〜4D間の相対的位置関係が維持されている。仮想空間200Aでは、アバター間の相対的位置関係が維持されると共に、アバター4Aが中心位置21Aに配置される。仮想空間200Bでは、アバター間の相対的位置関係が維持されると共に、アバター4Bが中心位置21Bに配置される。仮想空間200Cでは、アバター間の相対的位置関係が維持されると共に、アバター4Cが中心位置21Cに配置される。仮想空間200Dでは、アバター間の相対的位置関係が維持されると共に、アバター4Dが中心位置21Dに配置される。
【0078】
このように、本実施形態によれば、アバター間の相対的位置関係が維持された状態で、ユーザA〜Dの各々は、仮想空間の天球面上に投影された映像コンテンツを快適に視聴することができる。特に、仮想空間200A〜200Dの各々でアバター4A〜4Dの座標位置が同一である場合、仮想空間の中心位置から離れた位置に配置されたアバターを操作するユーザは、仮想空間の天球面上に投影された映像コンテンツを快適に視聴することができない。つまり、アバターが仮想空間の中心位置から離れる程、当該アバターに関連するユーザは映像コンテンツを視聴しづらくなるためである。一方、本実施形態では、複数のユーザ間で仮想空間の天球面上に投影された映像コンテンツを視聴する場合において、各アバターが仮想空間の中心に配置されるため、各ユーザが映像コンテンツを快適に視聴することが可能となる。従って、各ユーザにリッチな仮想体験を提供することができる。
【0079】
尚、本実施形態では、各アバターが仮想空間の中心位置又はその近傍に配置されているが(例えば、アバター4Aは、仮想空間200Aの中心位置21A又はその近傍に配置されているが)、本実施形態はこれには限定されない。つまり、
図10の状態(a)に示す仮想空間200Aでは、アバター4Aとアバター4Bとの間の相対的位置関係が維持された状態で、中心位置21Aとアバター4Aとの間の距離が中心位置21Aとアバター4Bとの間の距離よりも小さくなるように、アバター4Aとアバター4Bが仮想空間200A内に配置されていればよい。同様に、
図10の状態(b)に示す仮想空間200Bでは、アバター4Aとアバター4Bとの間の相対的位置関係が維持された状態で、中心位置21Bとアバター4Bとの間の距離が中心位置21Bとアバター4Aとの間の距離よりも小さくなるように、アバター4Aとアバター4Bが仮想空間200B内に配置されていればよい。さらに、
図11の状態(a)に示す仮想空間200Aでは、4つのアバターのうちアバター4Aが最も中心位置21Aに近い位置に配置されていればよい。
図11の状態(b)に示す仮想空間200Bでは、4つのアバターのうちアバター4Bが最も中心位置21Bに近い位置に配置されていればよい。
図11の状態(c)に示す仮想空間200Cでは、4つのアバターのうちアバター4Cが最も中心位置21Cに近い位置に配置されていればよい。
図11の状態(d)に示す仮想空間200Dでは、4つのアバターのうちアバター4Dが最も中心位置21Dに近い位置に配置されていればよい。
【0080】
次に、
図12を参照してユーザ端末1A,1B間において各アバター4A,4Bの動きを同期させるための処理について説明する。
図12は、ユーザ端末1A,1B間において各アバター4A,4Bの動きを同期させる処理の一例を説明するためのシーケンス図である。本処理では、アバター4A,4Bは、仮想空間内に固定的に配置されているものとする(つまり、アバター4A,4Bの配置位置は固定されているものとする。)。
図12に示すように、ステップS10において、ユーザ端末1Aの制御部121は、ユーザAの音声データを生成する。例えば、ユーザAがユーザ端末1Aのマイク118(音声入力部)に音声を入力したときに、マイク118は、入力された音声を示す音声データを生成する。その後、マイク118は生成された音声データをI/Oインターフェース124を介して制御部121に送信する。
【0081】
次に、ステップS11において、ユーザ端末1Aの制御部121は、アバター4Aの制御情報を生成した上で、当該生成したアバター4Aの制御情報とユーザAの音声を示す音声データ(ユーザAの音声データ)をサーバ2に送信する。その後、サーバ2の制御部23は、ユーザ端末1Aからアバター4Aの制御情報とユーザAの音声データを受信する(ステップS12)。ここで、アバター4Aの制御情報は、アバター4Aの動作を制御するために必要な情報である。
【0082】
次に、ステップS13において、ユーザ端末1Bの制御部121は、アバター4Bの制御情報を生成した上で、当該生成したアバター4Bの制御情報をサーバ2に送信する。その後、サーバ2の制御部23は、ユーザ端末1Bからアバター4Bの制御情報を受信する(ステップS14)。ここで、アバター4Bの制御情報は、アバター4Bの動作を制御するために必要な情報である。
【0083】
例えば、アバター4A(4B)の制御情報は以下の情報を含んでもよい。
・アバター4A(4B)の顔の向きを示す情報(顔向き情報)
・アバター4A(4B)の顔の状態を示す情報(顔情報)
・アバター4A(4B)の手の状態を示す情報(手情報)
・アバター4A(4B)の視線を示す情報(視線情報)
さらに、アバターの手情報は、アバターの左手の状態を示す情報と、アバターの右手の状態を示す情報を含んでもよい。アバターの顔情報は、アバターの目の状態を示す目情報と、アバターの口の状態を示す口情報と、アバターのまゆげの状態を示すまゆげ情報を含んでもよい。
【0084】
次に、サーバ2は、アバター4Bの制御情報をユーザ端末1Aに送信する一方(ステップS15)、アバター4Aの制御情報とユーザAの音声データをユーザ端末1Bに送信する(ステップS19)。その後、ユーザ端末1Aの制御部121は、ステップS16においてアバター4Bの制御情報を受信した後に、アバター4A,4Bの制御情報に基づいて、仮想空間200A(
図10の状態(a)参照)を示す仮想空間データを更新する(ステップS17)。その後、ユーザ端末1Aの制御部121は、HMD110の傾きに応じてアバター4A(仮想カメラ300)の視野CVを特定した上で、更新された仮想空間データと、アバター4Aの視野CVとに基づいて、HMD110に表示される視野画像を更新する(ステップS18)。
【0085】
一方、ユーザ端末1Bの制御部121は、ステップS20においてアバター4Aの制御情報とユーザAの音声データを受信した後に、アバター4A,4Bの制御情報に基づいて、仮想空間200B(
図10の状態(b)参照)を示す仮想空間データを更新する(ステップS21)。その後、ユーザ端末1Bの制御部121は、HMD110の傾きに応じてアバター4B(仮想カメラ300)の視野CVを特定した上で、更新された仮想空間データと、アバター4Bの視野CVとに基づいて、HMD110に表示される視野画像を更新する(ステップS22)。
【0086】
その後、ユーザ端末1Bの制御部121は、受信したユーザAの音声データと、アバター4Aの制御情報に含まれるアバター4Aの位置に関する情報と、アバター4Bの位置に関する情報と、所定の音声処理アルゴリズムに基づいてユーザAの音声データを加工する。その後、制御部121は、加工された音声データをヘッドフォン116(音声出力部)に送信した上で、ヘッドフォン116は、加工された音声データに基づいてユーザAの音声を出力する(ステップS23)。このように、仮想空間上においてユーザ間(アバター間)の音声チャット(VRチャット)を実現することができる。
【0087】
本実施形態では、ユーザ端末1A,1Bがサーバ2にアバター4Aの制御情報とアバター4Bの制御情報をそれぞれ送信した後に、サーバ2がアバター4Aの制御情報をユーザ端末1Bに送信する一方、アバター4Bの制御情報をユーザ端末1Aに送信する。このように、ユーザ端末1Aとユーザ端末1B間において各アバター4A,4Bの動きを同期させることが可能となる。
【0088】
ところで、既に説明したように、複数のユーザが一つの仮想空間を共有しつつ、仮想空間の天球面上に投影された映像コンテンツを視聴する場合では、各ユーザが映像コンテンツを快適に視聴するために、各アバターは仮想空間の中心位置に配置されていることが好ましい。つまり、
図10の状態(a)では、アバター4Aが仮想空間200Aの中心位置21A又はその近傍に配置される一方、
図10の状態(b)では、アバター4Bが仮想空間200Bの中心位置21B又はその近傍に配置される。この場合、仮想空間200Aにおけるアバター4A,4Bの位置座標と仮想空間200Bにおけるアバター4A,4Bの位置座標は互いに異なるため、仮想空間200Aにおいてアバター4A(4B)が示す方向と仮想空間200Bにおいてアバター4A(4B)が示す方向が異なる。このように、ユーザ端末間で送信されるアバター制御情報は、これらの事情を鑑みて決定されることが好ましい。
【0089】
最初に、
図13を参照することで、ユーザ端末1Bに送信されるアバター4Aの制御情報のうちアバター4Aの顔向き情報について説明する。
図13の状態(a)は、ユーザAの仮想空間200Aに配置されたアバター4Aの顔の向きLaを示す図である。
図13の状態(b)は、ユーザBの仮想空間200Bに配置されたアバター4Aの顔の向きLcを示す図である。ここで、アバター4Aの顔の向きLaは、HMD110の傾きに応じて特定されてもよい。
【0090】
図13に示すように、仮想空間200Aにおけるアバター4Aの顔の向きLaが仮想空間200Bにおけるアバター4Aの顔の向きに適用された場合について検討する。この場合、アバター4Aの位置座標が仮想空間200Aと200Bにおいて互いに異なるため、顔の向きLaと仮想空間200Aの天球面Saとが交差する交差点C1(
図13の状態(a)参照)の位置座標は、顔の向きLa(点線)と仮想空間200Bの天球面Sbとが交差する交差点C2(
図13の状態(b)参照)の位置座標とは異なってしまう。このため、顔の向きLaが仮想空間200Bにおけるアバター4Aの顔の向きとして適用された場合には、アバター4Bを操作するユーザBは、ユーザAによって指定された天球面Sb上の位置を交差点C1ではなく交差点C2として認識してしまう。このように、ユーザBは、ユーザAによって指定された天球面Sb上の位置を正確に把握することができない。
【0091】
そこで、ユーザ端末1Aは、仮想空間200Aにおけるアバター4Aの顔の向きLaを示す情報の代わりに、交差点C1(第1交差点)の位置に関する情報をアバター4Aの顔向き情報としてサーバ2を介してユーザ端末1Bに向けて送信する。この場合、ユーザ端末1Bの制御部121は、交差点C1と仮想空間200Bにおけるアバター4Aの顔の基準位置に基づいて、仮想空間200Bにおけるアバター4Aの顔の向きLcを特定する。具体的には、顔の向きLcは、アバター4Aの顔の基準位置と交差点C1を結ぶ線分の方向によって特定される。このように、顔の向きLcが仮想空間200Bにおけるアバター4Aの顔の向きとして適用された場合には、アバター4Bを操作するユーザBは、顔の向きLcによって指定された天球面Sb上の交差点C1を正確に把握することが可能となる。
【0092】
したがって、仮想空間200Aにおけるアバター4Aの位置と仮想空間200Bにおけるアバター4Aの位置が互いに異なっている場合においても、仮想空間200Bにおいてアバター4Aの顔の向きがずれてしまうといった状況を回避することが可能となる。このように、ユーザにリッチな仮想体験を提供することができる。
【0093】
次に、
図14を参照することで、ユーザ端末1Bに送信されるアバター4Aの制御情報のうちアバター4Aの視線情報について説明する。
図14の状態(a)は、仮想空間200Aに配置されたアバター4Aの視線Nを示す図である。
図14の状態(b)は、仮想空間200Bに配置されたアバター4Aの視線Ncを示す図である。ここで、アバター4Aの視線Nは、HMD110の傾き及び/又はユーザAの視線に応じて特定されてもよい。
【0094】
図14に示すように、仮想空間200Aにおけるアバター4Aの視線Nが仮想空間200Bにおけるアバター4Aの視線に適用された場合について検討する。この場合、アバター4Aの位置座標が仮想空間200Aと200Bにおいて互いに異なるため、視線Nと仮想空間200Aの天球面Saとが交差する交差点C3(
図14の状態(a)参照)の位置座標は、視線N(点線)と仮想空間200Bの天球面Sbとが交差する交差点C4(
図14の状態(b)参照)の位置座標とは異なってしまう。このため、視線Nが仮想空間200Bにおけるアバター4Aの視線として適用された場合には、アバター4Bを操作するユーザBは、ユーザAによって指定された天球面Sb上の位置を交差点C3ではなく交差点C4として認識してしまう。このように、ユーザBは、ユーザAによって指摘された天球面Sb上の位置を正確に把握することができない。
【0095】
そこで、ユーザ端末1Aは、仮想空間200Aにおけるアバター4Aの視線Nを示す情報の代わりに、交差点C3(第2交差点)の位置に関する情報をアバター4Aの視線情報としてサーバ2を介してユーザ端末1Bに向けて送信する。この場合、ユーザ端末1Bの制御部121は、交差点C3と仮想空間200Bにおけるアバター4Aの顔の基準位置に基づいて、仮想空間200Bにおけるアバター4Aの視線Ncを特定する。具体的には、視線Ncは、アバター4Aの顔の基準位置と交差点C3を結ぶ線分の方向によって特定される。このように、視線Ncが仮想空間200Bにおけるアバター4Aの視線として適用された場合には、アバター4Bを操作するユーザBは、視線Ncによって指定された天球面Sb上の交差点C3を正確に把握することが可能となる。
【0096】
したがって、仮想空間200Aにおけるアバター4Aの位置と仮想空間200Bにおけるアバター4Aの位置が互いに異なっている場合においても、仮想空間200Bにおいてアバター4Aの視線がずれてしまうといった状況を回避することが可能となる。このように、ユーザにリッチな仮想体験を提供することができる。
【0097】
次に、
図15を参照することで、ユーザ端末1Bに送信されるアバター4Aの制御情報のうちアバター4Aの手情報について説明する。
図15の状態(a)は、仮想空間200Aに配置されたアバター4Aの手42Aの指差し方向M(手42Aが指し示す方向)を示す図である。
図15の状態(b)は、仮想空間200Bに配置されたアバター4Aの手42Aの指差し方向Mcを示す図である。指差し方向Mは、外部コントローラ320の動作に応じて特定されてもよい。
【0098】
図15に示すように、仮想空間200Aにおけるアバター4Aの手42Aの指差し方向Mが仮想空間200Bにおけるアバター4Aの手42Aの指差し方向に適用された場合について検討する。この場合、アバター4Aの位置座標が仮想空間200Aと200Bにおいて互いに異なるため、指差し方向Mと仮想空間200Aの天球面Saとが交差する交差点C5(
図15の状態(a)参照)の位置座標は、指差し方向M(点線)と仮想空間200Bの天球面Sbとが交差する交差点C6(
図15の状態(b)参照)の位置座標とは異なってしまう。このため、指差し方向Mが仮想空間200Bにおけるアバター4Aの指差し方向として適用された場合には、アバター4Bを操作するユーザBは、ユーザAによって指定された天球面Sb上の位置を交差点C5ではなく交差点C6として認識してしまう。このように、ユーザBは、ユーザAによって指摘された天球面Sb上の位置を正確に把握することができない。
【0099】
そこで、ユーザ端末1Aは、アバター4Aの手情報と共に、交差点C5(第3交差点)に関する情報をサーバ2を介してユーザ端末1Bに向けて送信する。ここで、アバター4Aの手情報は、手42Aの位置や形状を示す情報を含む。この場合、ユーザ端末1Bの制御部121は、交差点C5と仮想空間200Bにおけるアバター4Aの手42Aの基準位置に基づいて、仮想空間200Bにおけるアバター4Aの手42Aの指差し方向Mcを特定する。具体的には、指差し方向Mcは、手42Aの基準位置と交差点C5を結ぶ線分の方向によって特定される。このように、指差し方向Mcが仮想空間200Bにおけるアバター4Aの指差し方向として適用された場合には、アバター4Bを操作するユーザBは、指差し方向Mcによって指定された天球面Sb上の交差点C5を正確に把握することが可能となる。
【0100】
したがって、仮想空間200Aにおけるアバター4Aの位置と仮想空間200Bにおけるアバター4Aの位置が互いに異なっている場合においても、仮想空間200Bにおいてアバター4Aの指差し方向がずれてしまうといった状況を回避することが可能となる。このように、ユーザにリッチな仮想体験を提供することができる。
【0101】
尚、本実施形態の説明では、アバター4Aが示す方向の一例として、アバター4Aの顔の向きと、アバター4Aの視線と、アバター4Aの指差し方向とを挙げたが、アバター4Aが示す方向はこれらのみには限定されない。仮想空間200Aに配置されたアバター4Aによって規定される方向と仮想空間200Aの天球面Saとが交差する交差点に基づいて、仮想空間200Bに配置されたアバター4Aによって規定される方向が決定されてもよい。
【0102】
また、ユーザ端末1の制御部121によって実行される各種処理をソフトウェアによって実現するために、各種処理をコンピュータ(プロセッサ)に実行させるための制御プログラムが記憶部123又はメモリに予め組み込まれていてもよい。または、制御プログラムは、磁気ディスク(HDD、フロッピーディスク)、光ディスク(CD−ROM,DVD−ROM、Blu−ray(登録商標)ディスク等)、光磁気ディスク(MO等)、フラッシュメモリ(SDカード、USBメモリ、SSD等)等のコンピュータ読取可能な記憶媒体に格納されていてもよい。この場合、記憶媒体が制御装置120に接続されることで、当該記憶媒体に格納された制御プログラムが、記憶部123に組み込まれる。そして、記憶部123に組み込まれた制御プログラムがRAM上にロードされて、プロセッサがロードされた当該プログラムを実行することで、制御部121は各種処理を実行する。
【0103】
また、制御プログラムは、通信ネットワーク3上のコンピュータから通信インターフェース125を介してダウンロードされてもよい。この場合も同様に、ダウンロードされた当該制御プログラムが記憶部123に組み込まれる。
【0104】
以上、本開示の実施形態について説明をしたが、本発明の技術的範囲が本実施形態の説明によって限定的に解釈されるべきではない。本実施形態は一例であって、特許請求の範囲に記載された発明の範囲内において、様々な実施形態の変更が可能であることが当業者によって理解されるところである。本発明の技術的範囲は特許請求の範囲に記載された発明の範囲及びその均等の範囲に基づいて定められるべきである。
【解決手段】仮想空間200Aでは、アバター4Aとアバター4Bとの間の相対的位置関係が維持されると共に、仮想空間200Aの中心位置21Aとアバター4Aとの間の距離は、中心位置21Aとアバター4Bとの間の距離よりも小さい。一方、仮想空間200Bでは、アバター4Aとアバター4Bとの間の相対的位置関係が維持されると共に、仮想空間200Bの中心位置21Bとアバター4Bとの間の距離は、中心位置21Bとアバター4Aとの間の距離よりも小さい。