(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2022-09-08
(45)【発行日】2022-09-16
(54)【発明の名称】仮想空間体感システム
(51)【国際特許分類】
G06T 19/00 20110101AFI20220909BHJP
G06F 3/01 20060101ALI20220909BHJP
G06F 3/04815 20220101ALI20220909BHJP
G06F 3/0346 20130101ALI20220909BHJP
【FI】
G06T19/00 300B
G06F3/01 570
G06F3/04815
G06F3/0346 422
G06T19/00 600
(21)【出願番号】P 2022529032
(86)(22)【出願日】2021-08-11
(86)【国際出願番号】 JP2021029641
【審査請求日】2022-05-24
【早期審査対象出願】
(73)【特許権者】
【識別番号】321001355
【氏名又は名称】株式会社ABAL
(74)【代理人】
【識別番号】110000800
【氏名又は名称】特許業務法人創成国際特許事務所
(72)【発明者】
【氏名】尾小山 良哉
【審査官】山口 大志
(56)【参考文献】
【文献】特開2020-017244(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 19/00
G06F 3/01
G06F 3/04815
G06F 3/0346
(57)【特許請求の範囲】
【請求項1】
第1ユーザ及び第2ユーザを含む複数のユーザが存在する現実空間に対応する第1仮想空間、及び、前記第1仮想空間とは独立し、前記現実空間に対応する第2仮想空間を含む複数の仮想空間を生成する仮想空間生成部と、
前記第1ユーザに対応する第1アバター
、前記第2ユーザに対応する第2アバター
、及び、前記第1ユーザ又は前記第2ユーザに対応し、前記第1アバター及び前記第2アバターとは独立したアバターであるゴーストを含む複数のアバターを、前記第1仮想空間又は前記第2仮想空間に生成するアバター生成部と、
前記現実空間における前記第1ユーザ及び前記第2ユーザの動作を認識するユーザ動作認識部と、
前記第1ユーザの動作に基づいて、前記仮想空間における前記第1アバターの制御を決定するとともに、前記第2ユーザの動作に基づいて、前記仮想空間における前記第2アバターの動作を制御するアバター動作制御部と、
前記仮想空間における前記第1アバター及び前記第2アバターの環境を決定するアバター環境決定部と、
前記1アバターの環境に基づいて、前記1ユーザに認識させる
前記仮想空間の環境を決定するとともに、前記第2アバターの環境に基づいて、前記第2ユーザに認識させる
前記仮想空間の環境を決定するユーザ環境決定部と、
所定のトリガーイベントを認識するトリガーイベント認識部と、
前記第1ユーザ及び前記第2ユーザに、前記仮想空間の環境を認識させる環境出力器とを備えている仮想空間体感システムにおいて、
前記所定のトリガーイベントは、前記第1ユーザ及び前記第2ユーザの一方に対応する前記ゴーストに対し、前記第1アバター及び前記第2アバターのうち前記第1ユーザ及び前記第2ユーザの他方に対応するアバターが実行する所定の動作であり、
前記所定のトリガーイベントが認識される以前には、
前記アバター生成部は、前記第1アバターを
、前記第1仮想空間及び前記第2仮想空間の一方の仮想空間に生成
し、前記第2アバターを
、前記第1仮想空間及び前記第2仮想空間の他方の仮想空間に生成し、
前記第1ユーザ及び前記第2ユーザの一方に対応する前記ゴーストを、前記第1仮想空間又は前記第2仮想空間のうち前記第1アバター及び前記第2アバターの他方の存在している仮想空間に生成し、
前記アバター環境決定部が、該一方の仮想空間に基づいて、前記第1アバターの環境を決定するとともに、該他方の仮想空間に基づいて、前記第2アバターの環境を決定し、
前記所定のトリガーイベントが認識された以後には、
前記アバター生成部は、前記第1アバター及び前記第2アバターを
、前記第1仮想空間及び前記第2仮想空間の一方の仮想空間に生成し、
前記アバター環境決定部が、該一方の仮想空間に基づいて、前記第1アバターの環境を決定するとともに、該一方の仮想空間に基づいて、前記第2アバターの環境を決定することを特徴とする仮想空間体感システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、サーバ等に生成された仮想空間にユーザ自身が存在していると認識させるための仮想空間体感システム、及び、現実空間に仮想のオブジェクトを存在させた複合空間を認識させるための複合空間体感システムに関する。
【背景技術】
【0002】
従来、サーバ等で仮想空間を生成し、ヘッドマウントディスプレイ(以下、「HMD」ということがある。)を介して、その仮想空間の画像をユーザに認識させ、ユーザ自身がその仮想空間に存在していると認識させる仮想空間体感システムがある。
【0003】
この種の仮想空間体感システムは、モーションキャプチャー装置等によってユーザの現実空間における動作(例えば、座標の移動、向きを含む姿勢の変化等)を認識し、その認識した動作に応じて、ユーザに対応するアバターを仮想空間で動作させるものがある(例えば、特許文献1参照)。
【0004】
特許文献1に記載の仮想空間体感システムでは、複数のユーザの各々に対応するようにして、同時に同一の仮想空間に複数のアバターを生成している。そして、この仮想空間体感システムでは、各ユーザに認識させる仮想空間の画像は、自らに対応したアバターの座標に基づいて決定される。すなわち、同時に同一の仮想空間を体感している場合であっても、ユーザごとに視認している仮想空間の画像は異なる。ひいては、体感している仮想空間の環境も異なる。
【0005】
また、仮想空間体感システムとしては、特許文献1に記載の仮想空間体感システムの他に、その仮想空間体感システムを同時に使用している複数のユーザの各々に、異なる仮想空間を体感させるものも提案されている。
【0006】
例えば、ユーザ同士で通信可能な状態を維持したまま、一方のユーザに対応するアバターを第1の仮想空間(例えば、海の仮想空間)に存在させて、そのユーザに第1の仮想空間を体感させるとともに、他方のユーザに対応するアバターを第2の仮想空間(例えば、山の仮想空間)に存在させて、そのユーザに第2の仮想空間を体感させるものなどが提案されている。
【0007】
また、近年、現実空間に仮想のオブジェクトを存在させるとともに、その仮想のオブジェクトに対して現実空間に存在するユーザが影響を与えること(例えば、そのオブジェクトを移動させること等)の可能な複合空間を生成し、その複合空間をユーザに体感させる複合空間体感システムが提案されている。
【0008】
そのような複合空間体感システムを同時に複数のユーザで使用する場合において、複合空間に存在させる仮想のオブジェクトは、必ずしもユーザの全てで共通のものにする必要はなく、各ユーザで異なっていてもよい。すなわち、同一の複合空間体感システムを使用する場合においても、ユーザごとに、存在する仮想のオブジェクトが異なる複合空間を体感できるように構成されていてもよい。
【先行技術文献】
【特許文献】
【0009】
【発明の概要】
【発明が解決しようとする課題】
【0010】
ところで、複数のユーザが同時に仮想空間又は複合空間を体感しており、且つ、ユーザごとに体感している仮想空間又は複合空間の環境が異なっている場合、一方のユーザが、他方のユーザが体感している環境を、自らが体感したいと考える場合がある。逆に、一方のユーザが、自らの体感している環境を、他方のユーザにも体感してほしいと考える場合もある。
【0011】
本発明は以上の点に鑑みてなされたものであり、仮想空間又は複合空間で、異なる環境を体感していた複数のユーザが、同様の環境を互いに体感することができるようになる仮想空間体感システム及び複合空間体感システムを提供することを目的とする。
【課題を解決するための手段】
【0012】
第1発明の仮想空間体感システムは、
第1ユーザ及び第2ユーザを含む複数のユーザが存在する現実空間に対応する仮想空間を生成する仮想空間生成部と、
前記第1ユーザに対応する第1アバター、及び、前記第2ユーザに対応する第2アバターを含む複数のアバターを、同一の前記仮想空間に生成するアバター生成部と、
前記現実空間における前記第1ユーザ及び前記第2ユーザの動作を認識するユーザ動作認識部と、
前記第1ユーザの動作に基づいて、前記仮想空間における前記第1アバターの動作を制御するとともに、前記第2ユーザの動作に基づいて、前記仮想空間における前記第2アバターの動作を制御するアバター動作制御部と、
前記仮想空間における前記第1アバター及び前記第2アバターの環境を決定するアバター環境決定部と、
前記1アバターの環境に基づいて、前記1ユーザに認識させる環境を決定するとともに、前記第2アバターの環境に基づいて、前記第2ユーザに認識させる環境を決定するユーザ環境決定部と、
所定のトリガーイベントを認識するトリガーイベント認識部と、
前記第1ユーザ及び前記第2ユーザに、前記仮想空間の環境を認識させる環境出力器とを備えている仮想空間体感システムにおいて、
前記所定のトリガーイベントが認識される以前には、
前記アバター動作制御部が、前記ユーザの動作に対する該ユーザに対応する前記アバターの動作を規定する特性である第1特性、及び、前記第1特性とは異なる特性であり、前記ユーザの動作に対する該ユーザに対応する前記アバターの動作を規定する特性である第2特性の一方の特性を、前記第1アバターに付与したうえで、該第1アバターの動作を制御するとともに、前記第1特性及び第2特性の他方の特性を、前記第2アバターに付与したうえで、該第2アバターの動作を制御し、
前記アバター環境決定部が、前記一方の特性を付与された該第1アバターの動作に基づいて、該第1アバターの環境を決定するとともに、前記他方の特性を付与された該第2アバターの動作に基づいて、該第2アバターの環境を決定し、
前記所定のトリガーイベントが認識された以後には、
前記アバター動作制御部が、前記第1特性及び前記第2特性の一方の特性を、前記第1アバター及び前記第2アバターに付与したうえで、該第1アバターの動作及び該第2アバターの動作を制御し、
前記アバター環境決定部が、前記一方の特性を付与された該第1アバターの動作に基づいて、該第1アバターの環境を決定するとともに、前記一方の特性を付与された該第2アバターの動作に基づいて、該第2アバターの環境を決定することを特徴とする。
【0013】
ここで、アバターの「環境」とは、仮想空間において、アバターに対して影響を与えるものを指す。例えば、仮想空間に存在しているオブジェクトの状態、仮想空間における物理的な法則(時間の流れる速さ、重力の大きさ等)等である。また、ユーザに「認識させる環境」とは、そのユーザに五感によって認識させる仮想空間の環境を指す。例えば、ユーザの環境とは、ユーザに認識させる仮想空間の画像、音等である。
【0014】
第1発明の仮想空間体感システムでは、各アバターの動作は、対応するユーザの動作に基づいて制御される。また、各ユーザに認識させる仮想空間の環境は、対応するアバターの仮想空間における環境に基づいて決定される。
【0015】
ここで、アバターの特性(例えば、サイズ、機能等)が異なる場合、現実空間で各ユーザが同様の動作を行ったとしても、対応するアバターの動作中又は動作後における環境は、異なることがある。ひいては、各ユーザが体感する環境も、異なることがある。
【0016】
例えば、各アバターのサイズが異なる場合、現実空間で各ユーザが同じ歩数を歩いたとしても、対応するアバターの仮想空間における移動距離(すなわち、動作後において各ユーザが体感する環境)は、異なることになる。
【0017】
そして、各アバターの特性が異なり得る場合(すなわち、各ユーザが体感する環境が異なり得る場合)、例えば、自分以外のユーザのアバターを認識した際等に、その認識をしたユーザが自分以外のユーザの環境を体感したい、又は、その認識をしたユーザが自分以外のユーザに自らの環境を体感させたいという要望が生じることがある。
【0018】
そこで、第1発明の仮想空間体感システムでは、所定のトリガーイベントが認識される以前には、第1特性及び第2特性の一方の特性を、第1アバターに付与し、その第1アバターの動作に基づいて、その第1アバターの環境を決定するとともに、第1特性及び第2特性の他方の特性を、第2アバターに付与し、その第2アバターの動作に基づいて、その第2アバターの環境を決定する。
【0019】
一方、所定のトリガーイベントが認識された以後には、第1特性及び第2特性の一方の特性を、第1アバターに付与し、その第1アバターの動作に基づいて、その第1アバターの環境を決定するとともに、同じくその一方の特性を、第2アバターに付与し、その第2アバターの動作に基づいて、その第2アバターの環境を決定する。
【0020】
ここで、第1特性及び第2特性は、ユーザの動作に対する、そのユーザに対応するアバターの動作を規定する特性である。具体的には、仮想空間におけるアバターのサイズ、アバターの機能(例えば、移動可能速度、移動可能範囲等)である。
【0021】
これにより、所定のトリガーイベントが認識される以前には、第1ユーザに対応する第1アバターの特性と第2ユーザに対応する第2アバターの特性とは、異なるものになっている。そのため、ユーザの動作に対応してアバターが動作した際におけるアバターの環境は、従来のように、独立したものになる。ひいては、ユーザが体感する環境も、従来のように、独立したものになる。
【0022】
一方、所定のトリガーイベントが認識された以後には、第1ユーザに対応する第1アバターの特性と第2ユーザに対応する第2アバターの特性とは、いずれも同じものになる。そのため、ユーザの動作に対応してアバターが動作した際におけるアバターの環境は、一致したもの又は同様のものになる。ひいては、ユーザが体感する環境も、一致したもの又は同様のものになる。
【0023】
したがって、第1発明の仮想空間体感システムによれば、所定のトリガーイベントが認識された以後には、アバターの環境を同期させる処理が実行されて、各ユーザに認識させる仮想空間の環境が同様のものになるので、それまで異なる環境を体感していた第1ユーザ及び第2ユーザが、同様の環境を体感することができるようになる。
【0024】
また、第1発明の仮想空間体感システムにおいては、
前記所定のトリガーイベントは、前記第1アバター及び前記第2アバターの一方のアバターが前記第1アバター及び前記第2アバターの他方のアバターに対して実行する所定の動作であることが好ましい。
【0025】
ここで、「所定の動作」としては、第1アバター及び第2アバターの一方のアバターが他方のアバターを基準として行う何らかの動作であればよい。
【0026】
例えば、所定の動作とは、一方のアバターが第2アバターに接触するような動作、一方のアバターが他方のアバターを基準とした所定の範囲内に移動するような動作、一方のアバターが複合空間に存在する仮想空間に存在するオブジェクトを操作する際に、その対象として他方のアバターを選択するような動作(例えば、カメラ型オブジェクトで他方のアバターを撮影するような動作等)等である。
【0027】
このように、一方のアバターが他方のアバターに対して実行する所定の動作を所定のトリガーイベントとして設定すると、一方のアバターに対応するユーザは、その動作を実行した結果、他方のアバターに対応する第2ユーザの環境を自らも体感することができることを、直感的に理解することができるようになる。
【0028】
また、第2発明の仮想空間体感システムは、
第1ユーザ及び第2ユーザを含む複数のユーザが存在する現実空間に対応する第1仮想空間、及び、前記第1仮想空間とは独立し、前記現実空間に対応する第2仮想空間を含む複数の仮想空間を生成する仮想空間生成部と、
前記第1ユーザに対応する第1アバター、前記第2ユーザに対応する第2アバター、及び、前記第1ユーザ又は前記第2ユーザに対応し、前記第1アバター及び前記第2アバターとは独立したアバターであるゴーストを含む複数のアバターを、前記第1仮想空間又は前記第2仮想空間に生成するアバター生成部と、
前記現実空間における前記第1ユーザ及び前記第2ユーザの動作を認識するユーザ動作認識部と、
前記第1ユーザの動作に基づいて、前記仮想空間における前記第1アバターの制御を決定するとともに、前記第2ユーザの動作に基づいて、前記仮想空間における前記第2アバターの動作を制御するアバター動作制御部と、
前記仮想空間における前記第1アバター及び前記第2アバターの環境を決定するアバター環境決定部と、
前記1アバターの環境に基づいて、前記1ユーザに認識させる前記仮想空間の環境を決定するとともに、前記第2アバターの環境に基づいて、前記第2ユーザに認識させる前記仮想空間の環境を決定するユーザ環境決定部と、
所定のトリガーイベントを認識するトリガーイベント認識部と、
前記第1ユーザ及び前記第2ユーザに、前記仮想空間の環境を認識させる環境出力器とを備えている仮想空間体感システムにおいて、
前記所定のトリガーイベントは、前記第1ユーザ及び前記第2ユーザの一方に対応する前記ゴーストに対し、前記第1アバター及び前記第2アバターのうち前記第1ユーザ及び前記第2ユーザの他方に対応するアバターが実行する所定の動作であり、
前記所定のトリガーイベントが認識される以前には、
前記アバター生成部は、前記第1アバターを、前記第1仮想空間及び前記第2仮想空間の一方の仮想空間に生成し、前記第2アバターを、前記第1仮想空間及び前記第2仮想空間の他方の仮想空間に生成し、前記第1ユーザ及び前記第2ユーザの一方に対応する前記ゴーストを、前記第1仮想空間又は前記第2仮想空間のうち前記第1アバター及び前記第2アバターの他方の存在している仮想空間に生成し、
前記アバター環境決定部が、該一方の仮想空間に基づいて、前記第1アバターの環境を決定するとともに、該他方の仮想空間に基づいて、前記第2アバターの環境を決定し、
前記所定のトリガーイベントが認識された以後には、
前記アバター生成部は、前記第1アバター及び前記第2アバターを、前記第1仮想空間及び前記第2仮想空間の一方の仮想空間に生成し、
前記アバター環境決定部が、該一方の仮想空間に基づいて、前記第1アバターの環境を決定するとともに、該一方の仮想空間に基づいて、前記第2アバターの環境を決定することを特徴とする。
【0029】
ここで、アバターの「環境」とは、仮想空間において、アバターに対して影響を与えるものを指す。例えば、アバターの環境とは、存在している仮想空間そのものの種類(地上であるか水中であるか)等である。また、ユーザに「認識させる環境」とは、そのユーザに五感によって認識させる仮想空間の環境を指す。例えば、ユーザの環境とは、ユーザに認識させる仮想空間の画像、音等である。
【0030】
第2発明の仮想空間体感システムでは、各アバターの動作は、対応するユーザの動作に基づいて制御される。また、各ユーザに認識させる仮想空間の環境は、対応するアバターの仮想空間における環境に基づいて決定される。
【0031】
ここで、複数のユーザが同時に仮想空間体感システムを使用する場合であっても、各ユーザが体感する仮想空間(すなわち、仮想空間の環境)は、必ずしも1つの仮想空間に基づくものである必要はなく、ユーザごとに独立した仮想空間に基づくものであってもよい。
【0032】
例えば、第1ユーザに対応する第1アバターを海の仮想空間に存在させて、第1ユーザに仮想の海の環境を体感させると同時に、第2ユーザに対応する第2アバターを山の仮想空間に存在させて、第2ユーザに仮想の山を体感させるような場合もある。
【0033】
そして、各アバターの存在する仮想空間が異なり得る場合(すなわち、各ユーザが体感する環境が異なり得る場合)、例えば、各ユーザがコミュニケーション(具体的には、空間の種別を超えての会話等)を行った際等に、あるユーザが自分以外のユーザの環境を体感したい、又は、あるユーザが自分以外のユーザに自らの環境を体感させたいという要望が生じることがある。
【0034】
そこで、第2発明の仮想空間体感システムでは、所定のトリガーイベントが認識される以前には、第1アバターを第1仮想空間及び第2仮想空間の一方の仮想空間に生成して、その一方の仮想空間に基づいて、第1アバターの環境を決定するとともに、第2アバターを第1仮想空間及び第2仮想空間の他方の仮想空間に生成して、その他方の仮想空間に基づいて、第2アバターの環境を決定する。
【0035】
一方で、所定のトリガーイベントが認識された以後には、第1アバター及び第2アバターを第1仮想空間及び第2仮想空間の一方の仮想空間に生成して、その一方の仮想空間に基づいて、第1アバター及び第2アバターの環境を決定する。
【0036】
これにより、所定のトリガーイベントが認識される以前には、第1ユーザに対応する第1アバターの存在する仮想空間と、第2ユーザに対応する第2アバターの存在する仮想空間とは、独立したものになっている。そのため、アバターの環境は、従来のように、独立したものになる。ひいては、ユーザが体感する環境も、従来のように、独立したものになる。
【0037】
一方、所定のトリガーイベントが認識された以後には、第1ユーザに対応する第1アバターの存在する仮想空間と第2ユーザに対応する第2アバターの存在する仮想空間とは、同一の仮想空間になる。そのため、アバターの環境は、一致したもの又は同様のものになる。ひいては、ユーザが体感する環境も、一致したもの又は同様のものになる。
【0038】
したがって、第2発明の仮想空間体感システムによれば、所定のトリガーイベントが認識された以後には、アバターの環境を同期させる処理が実行されて、各ユーザに認識させる仮想空間の環境が同様のものになるので、それまで異なる環境を体感していた第1ユーザ及び第2ユーザが、同様の環境を体感することができるようになる。
【0040】
ここで、「所定の動作」としては、アバターがゴーストを基準として行う何らかの動作であればよい。例えば、所定の動作とは、アバターがゴーストに接触するような動作、アバターがゴーストを基準とした所定の範囲内に移動するような動作、アバターが仮想空間に存在するオブジェクトを操作する際に、その対象としてゴーストを選択するような動作(例えば、カメラ型オブジェクトでゴーストを撮影するような動作等)等である。
【0041】
複数のユーザが同時に仮想空間体感システムを使用しており、且つ、各ユーザが体感する仮想空間(すなわち、仮想空間の環境)が異なるような場合、各ユーザに他のユーザが存在していることを報知するといった目的等のために、各ユーザの存在する仮想空間に、他の仮想空間に存在している他のユーザに対応し、且つ、その他のユーザに体感させる環境の基準とはならないアバターであるゴーストを生成する場合がある。
【0042】
そしてアバターがそのゴーストに対して実行する所定の動作を所定のトリガーイベントとして設定すると、アバターに対応するユーザは、その動作を実行した結果、ゴーストに対応するユーザの環境を自らも体感することができることを、直感的に理解することができるようになる。
【0043】
また、第3発明の複合空間体感システムは、
第1ユーザ及び第2ユーザを含む複数のユーザが存在する現実空間を認識する現実空間認識部と、
前記第1ユーザ及び前記第2ユーザに認識させる仮想のオブジェクトである第1オブジェクト及び第2オブジェクトを生成するオブジェクト生成部と、
前記現実空間に前記第1オブジェクトを存在させた空間である第1複合空間、及び、前記現実空間に前記第2オブジェクトを存在させた空間である第2複合空間を含む複数の複合空間を生成する複合空間生成部と、
前記第1ユーザ及び前記第2ユーザに認識させる環境を決定するユーザ環境決定部と、
トリガーイベントを認識するトリガーイベント認識部と、
前記第1ユーザ及び前記第2ユーザに、前記複合空間の環境を認識させる環境出力器とを備えている複合空間体感システムにおいて、
前記所定のトリガーイベントが認識される以前には、
前記ユーザ環境決定部は、前記第1複合空間及び前記第2複合空間の一方の複合空間における環境を、前記第1ユーザに認識させる環境として決定するとともに、前記第1複合空間及び前記第2複合空間の他方の複合空間における環境を、前記第2ユーザに認識させる環境として決定し、
前記所定のトリガーイベントが認識された以後には、
前記ユーザ環境決定部は、前記第1複合空間及び前記第2複合空間の一方における複合空間における環境を、前記第1ユーザ及び前記第2ユーザに認識させる環境として決定することを特徴とする。
【0044】
ここで、ユーザに「認識させる環境」とは、そのユーザに五感によって認識させる複合空間の環境を指す。例えば、ユーザの環境とは、ユーザに認識させる複合空間に存在するオブジェクトの画像、そのオブジェクトに基づいて発生される音等である。
【0045】
複数のユーザが同時に複合空間体感システムを使用する場合であっても、各ユーザが体感する複合空間(すなわち、複合空間の環境)は、必ずしも単一の複合空間に基づくものである必要はなく、ユーザごとに独立した異なる複合空間に基づくものであってもよい。
【0046】
例えば、第1ユーザに、現実空間の所定の領域に第1オブジェクトを存在させた第1複合空間を体感させると同時に、第2ユーザに、第1複合空間に用いた領域と同じ現実空間の領域に第2オブジェクトを存在させた第2複合空間を体感させるような場合もある。
【0047】
そして、各ユーザの認識する複合空間が異なり得る場合(すなわち、体感する環境が異なり得る場合)、例えば、各ユーザがコミュニケーション(具体的には、会話等)を行った際等に、あるユーザが自分以外のユーザの環境を体感したい、又は、あるユーザが自分以外のユーザに自らの環境を体感させたいという要望が生じることがある。
【0048】
そこで、第3発明の複合空間体感システムでは、トリガーイベントが認識される以前には、第1複合空間及び第2複合空間の一方の複合空間における環境を、第1ユーザに認識させる環境として決定するとともに、第1複合空間及び第2複合空間の他方における環境を、第2ユーザに認識させる環境として決定する。
【0049】
一方で、トリガーイベントが認識された以後には、第1複合空間及び第2複合空間の一方の複合空間における環境を、第1ユーザ及び第2ユーザに認識させる環境として決定する。
【0050】
これにより、トリガーイベントが認識される以前には、第1ユーザが体感する複合空間と第2ユーザが体感する複合空間とは、存在する仮想のオブジェクトが互いに独立した複合空間になる。
【0051】
一方、トリガーイベントが認識された以後には、第1ユーザの体感する複合空間と第2ユーザの体感する複合空間とは、存在する仮想のオブジェクトが一致した同一の複合空間になる。
【0052】
したがって、第3発明の複合空間体感システムによれば、トリガーイベントが認識された以後には、複合空間に存在するオブジェクトを同期させるための処理が実行されて、各ユーザに認識させる複合空間の環境が同様のものになるので、それまで異なる環境を体感していた第1ユーザ及び第2ユーザが、同様の環境を体感することができるようになる。
【0053】
また、第3発明の複合空間体感システムにおいては、
前記現実空間における前記ユーザの動作を認識するユーザ動作認識部を備え、
前記所定のトリガーイベントは、前記複合空間で前記第1ユーザ及び前記第2ユーザの一方が前記第1ユーザ及び前記第2ユーザの他方に対して実行する所定の動作であることが好ましい。
【0054】
ここで、「所定の動作」としては、第1ユーザ及び第2ユーザの一方が他方を基準として行う何らかの動作であればよい。例えば、所定の動作とは、第1ユーザが第2ユーザに接触するような動作、第1ユーザが第2ユーザを基準とした所定の範囲内に移動するような動作、第1ユーザが複合空間に存在する仮想又は実在のオブジェクトを操作する際に、その対象として第2ユーザを選択するような動作(例えば、仮想の携帯端末又は実在の携帯端末のカメラで第2ユーザを撮影するような動作等)等である。
【0055】
このように、第1ユーザが第2ユーザに対して実行する所定の動作を所定のトリガーイベントとして設定すると、第1ユーザは、その動作を実行した結果、第2ユーザの環境を自らも体感することができることを、直感的に理解することができるようになる。
【図面の簡単な説明】
【0056】
【
図1】第1実施形態に係るVRシステムの概略構成を示す模式図。
【
図2】
図1のVRシステムの処理部の構成を示すブロック図。
【
図3】
図2のVRシステムが通常の使用状態において実行する処理を示すフローチャート。
【
図4】
図2のVRシステムの通常の使用状態における現実空間及び仮想空間の状態を示す模式図。
【
図5】
図2のVRシステムがアバターの特性を同期させる際に実行する処理を示すフローチャート。
【
図6】
図2のVRシステムにおいてトリガーイベントが発生する際における仮想空間の状態を示す模式図。
【
図7】
図2のVRシステムにおいてトリガーイベントが発生した後における仮想空間の状態を示す模式図。
【
図8】第2実施形態に係るVRシステムの処理部の構成を示すブロック図。
【
図9】
図8のVRシステムが通常の使用状態において実行する処理を示すフローチャート。
【
図10】
図8のVRシステムの通常の使用状態における現実空間及び仮想空間の状態を示す模式図。
【
図11】
図8のVRシステムが仮想空間を同期させる際に実行する処理を示すフローチャート。
【
図12】
図8のVRシステムにおいてトリガーイベントが発生する際における仮想空間の状態を示す模式図。
【
図13】
図8のVRシステムにおいてトリガーイベントが発生した後における仮想空間の状態を示す模式図。
【
図14】第3実施形態に係るMRシステムの概略構成を示す模式図。
【
図15】
図14のMRシステムの処理部の構成を示すブロック図。
【
図16】
図15のMRシステムが通常の使用状態において実行する処理を示すフローチャート。
【
図17】
図15のMRシステムの通常の使用状態における現実空間及び複合空間の状態を示す模式図。
【
図18】
図15のMRシステムが複合空間を同期させる際に実行する処理を示すフローチャート。
【
図19】
図15のMRシステムにおいてトリガーイベントが発生する際における仮想空間の状態を示す模式図。
【
図20】
図15のVRシステムにおいてトリガーイベントが発生した後における仮想空間の状態を示す模式図。
【発明を実施するための形態】
【0057】
以下、図面を参照して、第1発明に対応する第1実施形態に係る仮想空間体感システム、第2発明に対応する第2実施形態に係る仮想空間体感システム、及び、第3実施形態に対応する複合空間体感システムについて、説明する。
【0058】
[第1実施形態]
以下、
図1~
図7を参照して、第1実施形態に係る仮想空間体感システムであるS1について説明する。
【0059】
VRシステムS1は、現実空間RSの所定の領域(例えば、1つの部屋等)に共に存在する第1ユーザU1及び第2ユーザU2(以下、総称する場合は「ユーザU」という。)に対し、その領域に対応する1つの仮想空間VSに、第1ユーザU1に対応する第1アバターA1及び第2ユーザU2に対応する第2アバターA2を介して、自らが共に存在すると認識させるものである(
図4等参照)。
【0060】
なお、本実施形態では、理解を容易にするために、ユーザは2人としている。しかし、第1発明の仮想空間体感システムは、そのような構成に限定されるものではなく、ユーザの数は3人以上であってもよい。
【0061】
[システムの概略構成]
まず、
図1を参照して、VRシステムS1の概略構成について説明する。
【0062】
図1に示すように、VRシステムS1は、現実空間RSに存在するユーザUに取り付けられる複数の標識1と、ユーザU(厳密には、ユーザUに取り付けられた標識1)を撮影するカメラ2と、仮想空間VS(
図4等参照)の画像及び音を決定するサーバ3と、決定された画像及び音をユーザに認識させるヘッドマウントディスプレイ(以下、「HMD4」という。)とを備えている。
【0063】
VRシステムS1では、カメラ2、サーバ3及びHMD4は、インターネット網、公衆回線、近距離無線通信等の無線で相互に情報を送受信可能となっている。ただし、それらのいずれか同士を有線で相互に情報を送受信可能に構成してもよい。
【0064】
複数の標識1は、ユーザUの装着するHMD4、手袋及び靴を介して、ユーザUの頭部、両手及び両足のそれぞれに取り付けられている。なお、複数の標識1は、後述するようにユーザUの現実空間RSにおける座標及び姿勢、並びに、動作(例えば、座標の移動、向きを含む姿勢の変化等)を認識するために用いられるものである。そのため、VRシステムS1を構成する他の機器に応じて、標識1の取り付け位置は適宜変更してよい。
【0065】
カメラ2は、ユーザUの存在する現実空間RSのユーザUが動作可能範囲(すなわち、座標の移動、姿勢の変化等をし得る範囲)を多方向から撮影可能なように設置されている。
【0066】
サーバ3は、カメラ2が撮影した画像から標識1を認識し、その認識された標識1の現実空間RSにおける位置に基づいて、ユーザUの座標及び姿勢を認識する。また、サーバ3は、その座標及び姿勢に基づいて、ユーザUに認識させる仮想空間VSの画像及び音を決定する。
【0067】
HMD4は、ユーザに仮想空間VSの環境を認識させる環境出力器である。HMD4は、ユーザUの頭部に装着される。HMD4は、ユーザUに、サーバ3によって決定された仮想空間VSの画像をユーザUの認識させるためのモニタ40と、サーバ3によって決定された仮想空間VSの音をユーザUに認識させるためのスピーカ41とを有している(
図2参照)。
【0068】
VRシステムS1を用いて仮想空間VSを体感する場合、ユーザUは、仮想空間VSの画像と音のみを認識して、ユーザU自身が仮想空間VSに存在していると認識させられる。すなわち、VRシステムS1は、いわゆる没入型のシステムとして構成されている。
【0069】
なお、第1発明の仮想空間体感システムは、そのような構成に限定されるものではない。例えば、モーションキャプチャー装置を使用する場合には、上記の構成のものの他、標識及びカメラの数及び配置が上記構成とは異なる(例えば、それぞれ1つずつ設けられている)ものを用いてもよい。また、標識を用いずに、ユーザの画像そのものから特徴点を認識して、ユーザの姿勢及び座標を認識するようにしてもよい。
【0070】
また、例えば、モーションキャプチャー装置に代わり、ユーザの座標のみを認識する装置を用いてもよい。具体的には、例えば、HMDにGPS等のセンサを搭載し、そのセンサからの出力に基づいて、ユーザの座標、姿勢等を認識するようにしてもよい。また、そのようなセンサと、上記のようなモーションキャプチャー装置とを併用してもよい。
【0071】
[処理部の構成]
次に、
図2を用いて、サーバ3の備えている処理部の構成を詳細に説明する。
【0072】
サーバ3は、CPU、RAM、ROM、インターフェース回路等を含む1つ又は複数の電子回路ユニットにより構成されている。サーバ3は、実装されたハードウェア構成又はプログラムにより実現される機能(処理部)として、
図2に示すように、仮想環境生成部30と、ユーザ動作認識部31と、アバター動作制御部32と、アバター環境決定部33と、ユーザ環境決定部34と、トリガーイベント認識部35とを備えている。
【0073】
仮想環境生成部30は、仮想空間生成部30aと、アバター生成部30bとを有している。
【0074】
仮想空間生成部30aは、ユーザUが存在する現実空間RSに対応する仮想空間VSを生成する。具体的には、仮想空間生成部30aは、仮想空間VSの背景及び仮想空間VSに存在するオブジェクトとなる画像、及び、それらの画像に関連する音を生成する。
【0075】
なお、本実施形態のVRシステムS1は備えていないが、仮想空間体感システムが、所定の感触を実現する構成(例えば、硬さの変わるクッション等)、所定の匂いを生成する等を備えている場合には、仮想空間生成部は、画像及び音に加えて、それらの感触、匂いを用いて、仮想空間を生成するようにしてもよい。
【0076】
アバター生成部30bは、仮想空間VSに、第1ユーザU1に対応する第1アバターA1を生成し、第2ユーザU2に対応する第2アバターA2を生成する(
図4等参照)。
【0077】
第1アバターA1及び第2アバターA2(以下、総称する場合は「アバターA」という。)は、対応するユーザUの現実空間RSにおける動作に対応して、仮想空間VSにおいて動作する。
【0078】
ユーザ動作認識部31は、カメラ2が撮影した標識1を含むユーザUの画像データを認識し、その画像データに基づいて、ユーザUの現実空間RSにおける動作を認識する。ユーザ動作認識部31は、ユーザ姿勢認識部31aと、ユーザ座標認識部31bとを有している。
【0079】
ユーザ姿勢認識部31aは、入力されたユーザUの画像データから標識1を抽出し、その抽出結果に基づいて、ユーザUの向きを含む姿勢を認識する。
【0080】
ユーザ座標認識部31bは、入力されたユーザUの画像データから標識1を抽出し、その抽出結果に基づいて、ユーザUの座標を認識する。
【0081】
アバター動作制御部32は、アバター生成部30bによって生成されたアバターAに、特性を付与する。本実施形態では、特性の付与は、VRシステムS1の使用開始時(例えば、使用するアバターAの種類の選択時等)に実行される。ただし、その特性は、VRシステムS1の使用中に変更される場合がある。例えば、後述するトリガーイベントが認識された際に変更される。
【0082】
ここで、「特性」とは、ユーザの動作に対する、そのユーザに対応するアバターの動作を規定する特性であり、複数種類存在するものである。その特性としては、具体的には、仮想空間VSにおけるアバターのサイズ、アバターの機能(例えば、移動可能速度、移動可能範囲等)である。
【0083】
また、アバター動作制御部32は、ユーザ姿勢認識部31aによって認識されたユーザUの現実空間RSにおける姿勢、ユーザ座標認識部31bによって認識されたユーザUの現実空間RSにおける座標、及び、付与された特性に基づいて、そのユーザUに対応するアバターAの仮想空間VSにおける動作(例えば、座標の移動、向きを含む姿勢の変化等)を決定する。
【0084】
アバター環境決定部33は、アバターAの動作の結果(例えば、その時点における座標、姿勢等)に基づいて、仮想空間VSにおけるアバターAの環境を決定する。
【0085】
ここで、本実施形態におけるアバターの「環境」とは、仮想空間において、アバターに対して影響を与えるものを指す。例えば、アバターの環境とは、仮想空間に存在しているオブジェクトの状態、仮想空間VSにおける物理的な法則(時間の流れる速さ、重力の大きさ等)等である。
【0086】
ユーザ環境決定部34は、アバターAの環境に基づいて、そのアバターAに対応するユーザUに、HMD4のモニタ40及びスピーカ41を介して認識させる仮想空間RSの環境(画像及び音)を決定する。
【0087】
ここで、ユーザに「認識させる環境」とは、そのユーザに五感によって認識させる仮想空間の環境を指す。例えば、ユーザUの環境とは、ユーザに認識させる仮想空間の画像、音等である。
【0088】
また、ここで、「仮想空間の画像」には、仮想空間の背景の画像の他、他のアバターの画像、仮想空間にのみ存在するオブジェクトの画像、現実空間に対応して仮想空間に存在するオブジェクトの画像等が含まれる。
【0089】
トリガーイベント認識部35は、システム設計者が予め定めた条件を満たした際に、所定のトリガーイベントが発生したことを認識する。
【0090】
ここで、「トリガーイベント」は、ユーザがその発生を認識していないものであってもよい。そのため、トリガーイベントとしては、例えば、ユーザが現実空間において所定の動作を行うこと(すなわち、ユーザに対応するアバターが仮想空間において所定の動作を行うこと)等のユーザの動作に起因するものも該当するし、所定時間の経過といったユーザの動作に起因しないものも該当する。
【0091】
なお、第1発明の仮想空間体感システムを構成する各処理部は、上記のような構成に限定されるものではない。
【0092】
例えば、本実施形態においてサーバ3に設けられている処理部の一部を、HMD4に設けてもよい。また、複数のサーバを用いて構成してもよいし、サーバを省略してHMDに搭載されているCPUを協働させて構成してもよい。また、HMDに搭載されているスピーカ以外のスピーカを設けてもよい。また、視覚及び聴覚へ影響を与えるデバイスの他、仮想空間に応じた匂い、風等を生じさせるような嗅覚及び触覚へ影響を与えるデバイスを含めてもよい。
【0093】
[実行される処理]
次に、
図2~
図7を参照して、VRシステムS1を用いてユーザUに仮想空間VSを体感させる際に、VRシステムS1の実行する処理について説明する。
【0094】
[通常の使用状態における処理]
まず、
図2~
図4を参照して、VRシステムS1が使用開始時、及び、通常の使用状態(すなわち、後述する所定のトリガーイベントを認識していない状態)で実行する処理について説明する。
【0095】
この処理においては、まず、サーバ3の仮想環境生成部30は、仮想空間VS、第1アバターA1及び第2アバターA2を生成する(
図3/STEP100)。
【0096】
具体的には、
図4に示すように、仮想環境生成部30の仮想空間生成部30aは、仮想空間VSの背景となる画像及び仮想空間VSに存在する各種オブジェクトを生成する。また、仮想環境生成部30のアバター生成部30bは、第1ユーザU1に対応する第1アバターA1及び第2ユーザU2に対応する第2アバターA2を生成する。
【0097】
次に、サーバ3のアバター動作制御部32は、第1アバターA1に第1特性を付与するとともに、第2アバターA2に第2特性を付与する(
図3/STEP101)。
【0098】
本実施形態では、アバターAに付与される特性は、そのアバターAの形状に連動したものとなっている。
【0099】
具体的には、第1アバターA1の形状は、カメを擬人化した形状であり、第1アバターA1には、その形状に対応した第1特性が付与される。第1特性は、仮想空間VSに配置された所定のオブジェクト(例えば、
図4に示す草等)に比べて大きいという特性、及び、対応するユーザの現実空間RSにおける動作がアバターの動作に反映されるまでの時間が長い(すなわち、動作の反映速度が遅い)という特性を含む特性である。
【0100】
一方、第2アバターA2の形状は、ウサギを擬人化した形状であり、第2アバターA2には、その形状に対応した第2特性が付与される。第2特性は、仮想空間VSに配置された所定のオブジェクトに比べて小さいという特性、及び、対応するユーザの現実空間RSにおける動作がアバターの動作に反映されるまでの時間が短い(すなわち、動作の反映速度が速い)という特性を含む特性である。
【0101】
そのため、仮に、仮想空間VSにおいて、第1アバターA1と第2アバターA2とが、互いに隣接する座標に位置していた場合であっても、それらのアバターAのサイズ(すなわち、視点の高さ)という特性が異なるので、第1アバターA1として第1ユーザU1が見渡すことのできる範囲(すなわち、視認できるオブジェクト)という環境と、第2アバターA2として第2ユーザU2が見渡すことのできる範囲という環境とは、異なることになる。
【0102】
また、仮に、現実空間RSにおいて、第1ユーザU1と第2ユーザU2とが同様の動作を行った場合であっても、対応するアバターAの動作の反映速度という特性が異なるので、第1アバターA1として第1ユーザU1が体感する風景の変化速度という環境と、第2アバターA2として第2ユーザU2が体感する風景の変化速度(すなわち、オブジェクトの相対的な移動速度)という環境とは、異なることになる。
【0103】
次に、サーバ3のアバター動作制御部32は、第1ユーザU1の動作及び第1アバターA1に付与された特性に基づいて、第1アバターA1の動作を決定し、第2ユーザU2の動作及び第2アバターA2に付与された特性に基づいて、第2アバターA2の動作を決定する(
図3/STEP102)。
【0104】
このSTEP102以降の処理における第1ユーザU1及び第2ユーザU2の動作は、カメラ2によって撮影された画像データに基づいてサーバ3のユーザ動作認識部31によって認識された動作が用いられる。
【0105】
次に、サーバ3のアバター環境決定部33は、第1アバターA1の動作に基づいて、第1アバターA1の環境を決定し、第2アバターA2の動作に基づいて、第2アバターA2の環境を決定する(
図3/STEP103)。
【0106】
具体的には、アバター環境決定部33は、アバターAの動作過程及びそのアバターAの動作の反映速度という特性に基づいて、仮想空間VSの風景の変化速度という環境を決定し、アバターAの動作の結果及びアバターAのサイズという特性に基づいて、アバターAが見渡すことのできる風景という環境を決定する。
【0107】
次に、サーバ3のユーザ環境決定部34は、第1ユーザU1に認識させる環境を、第1アバターA1の環境に基づいて決定し、第2ユーザU2に認識させる環境を、第2アバターA2の環境に基づいて決定する(
図3/STEP104)。
【0108】
具体的には、ユーザ環境決定部34は、第1ユーザU1に認識させる環境として、第1アバターA1の環境を表す仮想空間VSの画像及び音を決定し、第2ユーザU2に認識させる環境として、第2アバターA2の環境を表す仮想空間VSの画像及び音を決定する。
【0109】
次に、ユーザUに装着されたHMD4は、決定された環境を出力する(
図3/STEP105)。
【0110】
具体的には、HMD4は、HMD4に搭載されているモニタ40に決定された画像を表示させ、HMD4に搭載されているスピーカ41に決定された音を発生させる。
【0111】
次に、サーバ3のユーザ動作認識部31は、第1ユーザU1又は第2ユーザU2がなんらかの動作を行ったか否かを判断する(
図3/STEP106)。
【0112】
第1ユーザU1又は第2ユーザU2がなんらかの動作を行った場合(STEP106でYESの場合)、STEP102に戻り、再度、STEP102以降の処理が実行される。
【0113】
一方、第1ユーザU1又は第2ユーザU2がなんらかの動作を行っていなかった場合(STEP106でNOの場合)、サーバ3は、処理の終了を指示する信号を認識したか否かを判断する(
図3/STEP107)。
【0114】
終了を指示する信号を認識できなかった場合(STEP107でNOの場合)、STEP106に戻り、再度、STEP106以降の処理が実行される。
【0115】
一方、終了を指示する信号を認識した場合(STEP107でYESの場合)、VRシステムS1は、今回の処理を終了する。
【0116】
以上の処理により、
図4に示すように、仮想空間VSでは、第1ユーザU1に対応する第1アバターA1及び第2ユーザU2に対応する第2アバターA2を含む複数のオブジェクトが設置される。
【0117】
そして、第1ユーザU1及び第2ユーザU2は、それぞれが装着したHMD4で表示される画像及び発生される音によって、それぞれに対応する第1アバターA1及び第2アバターA2を介して、自身が仮想空間VSに存在し、自由に動作することができると認識するようになる。
【0118】
[特性を同期させる際及びそれ以降における処理]
次に、
図2、
図5~
図7を参照して、特性を同期させる際及びそれ以後において実行する処理について説明する。
【0119】
まず、この処理の具体的な説明に先立ち、この処理が実行される背景について説明する。
【0120】
前述のように、VRシステムS1では、第1アバターA1には、第1特性が付与され、第2アバターA2には、第1特性とは異なる第2特性が付与されている。
【0121】
そのため、現実空間RSで第1アバターA1に対応する第1ユーザU1と、第2アバターA2に対応する第2ユーザU2とが同じ動作を行ったとしても、第1アバターA1の動作と第2アバターA2の動作(ひいては、環境)とは、異なることになる。その結果、第1ユーザU1が認識する環境と、第2ユーザU2が認識する環境とは、異なることになる。
【0122】
そして、そのように認識する環境が異なる場合、あるユーザが自分以外のユーザの環境を体感したい、又は、あるユーザが自分以外のユーザに自らの環境を体感させたいという要望が生じることがある。
【0123】
例えば、本実施形態では、第1アバターA1は、仮想空間VSに配置されている所定のオブジェクト(例えば、
図4に示す草等)に対して大きいという第1特性が付与されており、第2アバターA2は、仮想空間VSに配置されている所定のオブジェクトに対して小さいという第2特性が付与されている。
【0124】
そのため、第1アバターA1の座標が第2アバターA2の座標の近傍に位置していたとしても、第1アバターA1(ひいては、対応する第1ユーザU1)であれば視認することのできるオブジェクト(例えば、遠くに見える建物のオブジェクトである第1オブジェクトO1)を、第2アバターA2(ひいては、対応する第2ユーザU2)では視認することができないという状況も生じ得る。
【0125】
そのような状況が生じた場合、第1アバターA1に対応する第1ユーザU1が、第2ユーザU2が視認している第1オブジェクトO1を、第2ユーザU2と同様に視認したいという要望が生じることがある。
【0126】
そこで、本実施形態のVRシステムS1では、そのような要望が生じた場合に対応するために、以下に説明する処理によって、第1アバターA1に付与されている特性と第2アバターA2に付与されている特性とを一致させる処理を、実行可能に構成されている。
【0127】
この処理においては、まず、サーバ3のトリガーイベント認識部35は、トリガーイベントを認識したか否かを判断する(
図5/STEP200)。
【0128】
具体的には、トリガーイベント認識部35は、
図5に示すように、仮想空間VSで、第1ユーザU1に対応する第1アバターA1の動作を認識し、その動作がトリガーイベントとして予め規定された所定の動作に該当するか否を判断する。
【0129】
トリガーイベントを認識した場合(STEP200でYESの場合)、トリガーイベント認識部35は、認識されたトリガーイベントが所定のトリガーイベントであるか否かを判断する(
図5/STEP201)。
【0130】
本実施形態では、
図6に示すように、第1ユーザU1に対応する第1アバターA1及び第2ユーザU2に対応する第2アバターA2の一方が他方に触れる動作が、所定のトリガーイベントとして設定されている。
【0131】
トリガーイベントが所定のトリガーイベントであった場合(STEP201でYESの場合)、アバター動作制御部32は、第1アバターA1の特性と第2アバターA2の特性を同期させる(
図5/STEP202)。
【0132】
具体的には、第1アバターA1の特性を、第1特性のまま維持し、第2アバターA2の特性を、第2特性から第1アバターA1と同様の第1特性に変更する。
【0133】
本実施形態では、アバターAの特性は、アバターAの形状に連動したものとなっている。そのため、
図7に示すように、STEP202の処理が実行されると、第2アバターA2の形状が、ウサギを擬人化した形状から、第1アバターA1と同様にカメを擬人化した形状に変化する。
【0134】
一方、トリガーイベントが所定のトリガーイベントではなかった場合(STEP201でNOの場合)、アバター動作制御部32は、認識されたトリガーイベントの種類に応じて、第1アバターA1の特性及び第2アバターA2の特性の少なくとも一方を変更する(
図5/STEP203)。
【0135】
例えば、第1アバターA1又は第2アバターA2がスイッチ型のオブジェクト(不図示)を押すような動作を行うことが他のトリガーイベントとして設定されており、認識されたトリガーイベントがその他のトリガーイベントであった場合には、アバター動作制御部32は、その他のトリガーイベントを発生させたアバターAに、VRシステムS1の使用開始時の特性を改めて付与するといった処理を実行する。
【0136】
トリガーイベントを認識しなかった場合(STEP200でNOの場合)には、それまでの特性を維持し、トリガーイベントを認識した場合(STEP200でYESの場合)であって、アバターの特性を変更する処理(STEP202又はSTEP203の処理)を実行し、そのうえで、サーバ3のアバター動作制御部32は、第1ユーザU1の動作及び第1アバターA1に付与された特性に基づいて、第1アバターA1の動作を決定し、第2ユーザU2の動作及び第2アバターA2に付与された特性に基づいて、第2アバターA2の動作を決定する(
図5/STEP204)。
【0137】
次に、STEP103における処理と同様に、サーバ3のアバター環境決定部33は、第1アバターA1の動作に基づいて、第1アバターA1の環境を決定し、第2アバターA2の動作に基づいて、第2アバターA2の環境を決定する(
図5/STEP205)。
【0138】
このとき、アバターAの特性を同期させる処理が実行されていた場合には、第1アバターA1と第2アバターA2のサイズという特性が一致している。第1アバターA1は、サイズが小さいために視認することができなかったオブジェクトを、第2アバターA2と同様に視認することができるようになっている。
【0139】
次に、STEP104における処理と同様に、サーバ3のユーザ環境決定部34は、第1ユーザU1に認識させる環境を、第1アバターA1の環境に基づいて決定し、第2ユーザU2に認識させる環境を、第2アバターA2の環境に基づいて決定する(
図5/STEP206)。
【0140】
次に、STEP105における処理と同様に、ユーザUに装着されたHMD4は、決定された環境を出力する(
図5/STEP207)。
【0141】
次に、STEP106における処理と同様に、サーバ3のユーザ動作認識部31は、第1ユーザU1又は第2ユーザU2がなんらかの動作を行ったか否かを判断する(
図5/STEP208)。
【0142】
第1ユーザU1又は第2ユーザU2がなんらかの動作を行った場合(STEP208でYESの場合)、STEP200に戻り、再度、STEP200以降の処理が実行される。
【0143】
一方、第1ユーザU1又は第2ユーザU2がなんらかの動作を行っていなかった場合(STEP208でNOの場合)、STEP107における処理と同様に、サーバ3は、処理の終了を指示する信号を認識したか否かを判断する(
図5/STEP209)。
【0144】
終了を指示する信号を認識できなかった場合(STEP209でNOの場合)、STEP208に戻り、再度、STEP208以降の処理が実行される。
【0145】
一方、終了を指示する信号を認識した場合(STEP209でYESの場合)、VRシステムS1は、今回の処理を終了する。
【0146】
以上説明したように、本実施形態のVRシステムS1では、所定のトリガーイベントが認識される以前には、第1特性を、第1アバターA1に付与し、その第1アバターA1の動作に基づいて、その第1アバターA1の環境を決定するとともに、第1特性とは異なる特性である第2特性を、その第2アバターA2に付与し、その第2アバターA2の動作に基づいて、第2アバターA2の環境を決定する。
【0147】
一方、所定のトリガーイベントが認識された以後には、第1特性を、第1アバターA1に付与し、その第1アバターA1の動作に基づいて、その第1アバターA1の環境を決定するとともに、同じく第1特性を、第2アバターA2に付与し、その第2アバターA2の動作に基づいて、その第2アバターA2の環境を決定する。
【0148】
これにより、所定のトリガーイベントが認識される以前には、第1ユーザU1に対応する第1アバターA1の特性と第2ユーザU2に対応する第2アバターA2の特性とは、異なるものになっている。
【0149】
そのため、ユーザUの動作に対応してアバターAが動作した際におけるアバターAの環境は、従来のように、独立したものになる。ひいては、ユーザが体感する環境(本実施形態では、視認できるオブジェクトの種類)も、従来のように、独立したものになる。
【0150】
一方、所定のトリガーイベントが認識された以後には、第1ユーザU1に対応する第1アバターA1の特性と第2ユーザU2に対応する第2アバターA2の特性とは、いずれも同じものになる。
【0151】
そのため、ユーザUの動作に対応してアバターAが動作した際におけるアバターAの環境は、一致したもの又は同様のものになる。ひいては、ユーザUが体感する環境(本実施形態では、視認できるオブジェクトの種類)も、一致したもの又は同様のものになる。
【0152】
したがって、VRシステムS1によれば、所定のトリガーイベントが認識された以後には、アバターAの環境を同期させる処理が実行されて、第1ユーザU1及び第2ユーザU2に認識させる仮想空間VSの環境が同様のものになるので、それまで異なる環境を体感していた第1ユーザU1及び第2ユーザU2が、同様の環境を体感することができるようになる。
【0153】
[第1実施形態の変形例]
なお、本実施形態では、第1ユーザU1に対応する第1アバターA1及び第2ユーザU2に対応する第2アバターA2の一方が他方に触れる動作が、所定のトリガーイベントとして設定されている。
【0154】
これは、第1アバターA1及び第2アバターA2の一方が他方に対して実行する所定の動作を所定のトリガーイベントとして設定すると、一方のアバターAにユーザUは、その動作を実行した結果、他方のアバターAに対応するユーザUの環境を自らも体感することができることを、直感的に理解することができるようになるためである。
【0155】
しかし、第1発明において、所定のトリガーイベントとなる「所定の動作」とは、このように第1アバター及び第2アバターの一方が他方に触れる動作に限定されるものではなく、第1アバター及び第2アバターの一方が他方を基準として行う何らかの動作であればよい。
【0156】
例えば、所定の動作とは、一方のアバターが他方のアバターに接触するような動作、一方のアバターが他方のアバターを基準とした所定の範囲内に移動するような動作、一方のアバターが複合空間に存在する仮想空間に存在するオブジェクトを操作する際に、その対象として他方のアバターを選択するような動作(例えば、カメラ型オブジェクトで他方のアバターを撮影するような動作等)等であってもよい。
【0157】
また、例えば、ユーザに対応するアバターとして、ユーザに認識させる環境を定めるための基準となるアバターの他に、ユーザの動作に対応して動作するものの、その基準とならないゴーストも生成する場合がある。そのような場合には、そのゴーストに対して所定の動作を行った際にも、アバターの特性を同期させる処理を実行するようにしてもよい。
【0158】
さらに、第1発明における所定のトリガーイベントは、必ずしも、第1アバター及び第2アバターの一方のアバターが第1アバター及び第2アバターの他方のアバターに対して実行する所定の動作である必要はない。そのため、例えば、別途設けられたインターフェースを介して、ユーザが特性の変化を指示した場合に、その指示を行ったことを、所定のトリガーイベントとしてもよい。
【0159】
また、本実施形態では、所定のトリガーイベントが認識された場合に、第2アバターA2の特性を、第1アバターA1に付与された第1特性に同期させるとともに、第2アバターA2の形状を第1アバターA1の形状と同様のものに変更している。これは、本実施形態では、アバターAに付与される特性は、そのアバターAの形状に連動したものとなっているためである。
【0160】
しかし、第1発明は、所定のトリガーイベントが認識された際に、アバターの特性を同期させるものであればよく、アバターの形状は、必ずしも、特性とともに同期させる必要はない。そのため、所定のトリガーイベントが認識された際に、アバターの機能のみ(例えば、サイズのみ)を、同期させるようにしてもよい。
【0161】
また、本実施形態では、所定のトリガーイベントが認識された場合に、第2アバターA2の特性を、第1アバターA1に付与された第1特性に同期させている。すなわち、特性を同一のものにしている。
【0162】
しかし、第1発明において、特性を同期させる処理は、そのように第2アバターの特性を変更するものに限定されるものではない。そのため、例えば、第1アバターの特性を、第2アバターに付与された第2特性に同期させるものであってもよい。
【0163】
また、第1発明において、特性を同期させる処理は、特性を完全に一致させるような処理に限定されるものではない。そのため、例えば、複数ある特性の一部を同期させる処理であってもよい。具体的には、移動可能速度とサイズのうち、サイズのみを同期させる処理等であってもよい。また、例えば、特性を規定する値を近づける処理であってもよい。具体的には、移動可能速度の値を近づける処理等であってもよい。
【0164】
さらに、特性を同期させる処理が複数種類ある場合には、それらの処理ごとに対応するトリガーイベントを定めておいてもよい。例えば、第2アバターが第1アバターに右手で触れた場合には、第2アバターの特性を、第1アバターに付与された特性に同期させ、第2アバターが第1アバターに左手で触れた場合には、第1アバターの特性を、第2アバターに付与された特性に同期させるように構成してもよい。
【0165】
また、上記実施形態では、アバターの特性として、サイズ、移動可能速度、移動可能範囲等を採用しているが、アバターの特性は、そのような構成に限定されるものではなく、ユーザの動作に対する、そのユーザに対応するアバターの動作を規定する特性であればよい。
【0166】
そのため、例えば、アバターの機能として視認可能な可視光線の範囲を規定してもよい。具体的には、一方のアバターが通常の可視光線の波長帯域の光だけを視認可能に設定され、他方のアバターが通常の可視光線の波長帯域の光に加えて赤外線の光を視認可能に設定されていた場合には、それぞれのアバターの環境(例えば、オブジェクトの見え方等)は、異なることになる。
【0167】
[第2実施形態]
以下、
図8~
図13を参照して、第2実施形態に係る仮想空間体感システムであるVRシステムS2について説明する。
【0168】
なお、本実施形態のVRシステムS2は、アバターに付与される特性が1種類のみである点、及び、生成される仮想空間が複数である点を除き、第1実施形態のVRシステムS1と同様の構成を備えている。そのため、以下の説明においては、第1実施形態のVRシステムS1の構成と同一の構成又は対応する構成については、同一の符号を付すとともに、詳細な説明は省略する。
【0169】
[処理部の構成]
図8を用いて、サーバ3の備えている処理部の構成を詳細に説明する。
【0170】
サーバ3は、CPU、RAM、ROM、インターフェース回路等を含む1つ又は複数の電子回路ユニットにより構成されている。サーバ3は、実装されたハードウェア構成又はプログラムにより実現される機能(処理部)として、
図8に示すように、仮想環境生成部30と、ユーザ動作認識部31と、アバター動作制御部32と、アバター環境決定部33と、ユーザ環境決定部34と、トリガーイベント認識部35とを備えている。
【0171】
仮想環境生成部30は、仮想空間生成部30aと、アバター生成部30bとを有している。
【0172】
仮想空間生成部30aは、ユーザUが存在する現実空間RS(
図1参照)に対応する第1仮想空間VS1、及び、第1仮想空間VS1とは独立し、現実空間RSに対応する第2仮想空間VS2を生成する。
【0173】
具体的には、仮想空間生成部30aは、第1仮想空間VS1及び第2仮想空間VS2(以下、総称する場合は「仮想空間VS」という。)の背景及び仮想空間VSに存在するオブジェクトとなる画像、及び、それらの画像に関連する音を生成する。
【0174】
アバター生成部30bは、第1仮想空間VS1に、第1ユーザU1に対応する第1アバターA1、及び、第2ユーザU2に対応する第2ゴーストG2を生成し、第2仮想空間VS2に、第2ユーザU2に対応する第2アバターA2、及び、第1ユーザU1に対応する第1ゴーストG1を生成する(
図9等参照)。
【0175】
ここで、「ゴースト」とは、ユーザに対応して動作するアバターの1つであり、その環境が対応するユーザに認識させる環境に影響を与えないものである。本実施形態では、ゴーストGは、そのゴーストGに対応するユーザU以外のユーザUに対して、対応するユーザUの存在、動作等を示すために用いられる。
【0176】
第1アバターA1及び第2アバターA2(以下、総称する場合は「アバターA」という。)、並びに、第1ゴーストG1及び第2ゴーストG2(以下、総称する場合は「ゴーストG」という。)は、対応するユーザUの現実空間RSにおける動作に対応して、第1仮想空間VS1又は第2仮想空間VS2において動作する。
【0177】
第1アバターA1及び第2アバターA2の存在する仮想空間VSは、VRシステムS2の使用中に変更される場合がある。例えば、後述する所定のトリガーイベントが認識された際に変更される。また、その変更に伴って、第1ゴーストG1及び第2ゴーストG2は、消去される場合がある。
【0178】
なお、本実施形態におけるゴーストGの画像には、そのゴーストGがどのユーザUに対応しているかを示す情報が付加されている。これは、ユーザUが、そのゴーストGが自分以外のどのユーザに対応するものであるかを、容易に把握することができるようにするためである。
【0179】
具体的には、対応するアバターAの形状を半透明にしたものをゴーストGの形状として採用することによって、そのゴーストGがどのアバターAに対応しているかという情報(ひいては、どのユーザUに対応しているかという情報)が、間接的に示されている。
【0180】
ただし、「どのユーザに対応しているかを示す情報」は、そのような間接的な情報に限定されるものではない。そのため、例えば、常時又はユーザの要求に応じて表示されるメッセージといった直接的な情報であってもよい。
【0181】
アバター動作制御部32は、アバター生成部30bによって生成されたアバターAに、特性を付与する。本実施形態では、特性の付与は、VRシステムS2の使用開始時(例えば、使用するアバターAの種類の選択時等)に実行される。
【0182】
また、アバター動作制御部32は、ユーザ姿勢認識部31aによって認識されたユーザUの現実空間RSにおける姿勢、ユーザ座標認識部31bによって認識されたユーザUの現実空間RSにおける座標、及び、付与された特性に基づいて、そのユーザUに対応するアバターA及びゴーストGの仮想空間VSにおける動作(例えば、座標の移動、向きを含む姿勢の変化等)を決定する。
【0183】
なお、本実施形態のVRシステムS2では採用していないが、仮想空間特有の特性が設定されている場合には、アバター動作制御部は、ユーザの動作及びアバターの特性の他に、その仮想空間の特性を参照するように構成されていてもよい。
【0184】
例えば、仮想空間が宇宙空間を模したものである場合には、その仮想空間におけるアバターに対する重力の影響と仮想空間におけるユーザに対する重力の影響とが異なるように、その仮想空間の特性が設定される場合がある。そのような場合には、ユーザの動作をアバターに反映させる際に、その仮想空間の特性が反映されることになる。
【0185】
アバター環境決定部33は、アバターAの動作の結果(例えば、その時点における座標、姿勢等)に基づいて、仮想空間VSにおけるアバターAの環境を決定する。
【0186】
ここで、本実施形態におけるアバターの「環境」とは、仮想空間において、アバターに対して影響を与えるものを指す。例えば、アバターの環境とは、存在している仮想空間そのものの種類(地上であるか水中であるか)等である。
【0187】
[実行される処理]
次に、
図8~
図13を参照して、VRシステムS2を用いてユーザUに仮想空間VSを体感させる際に、VRシステムS2の実行する処理について説明する。
【0188】
[通常の使用状態における処理]
まず、
図8~
図10を参照して、VRシステムS2が使用開始時、及び、通常の使用状態(すなわち、後述する所定のトリガーイベントを認識していない状態)で実行する処理について説明する。
【0189】
この処理においては、まず、サーバ3の仮想環境生成部30は、第1仮想空間VS1及び第2仮想空間VS2、第1アバターA1及び第2アバターA2、並びに、第1ゴーストG1及び第2ゴーストG2を生成する(
図9/STEP300)。
【0190】
具体的には、
図10に示すように、仮想環境生成部30の仮想空間生成部30aは、仮想空間VSの背景となる画像及び仮想空間VSに存在する各種オブジェクトを生成する。本実施形態では、第1仮想空間VS1が海を模した仮想空間となるように、背景となる画像及びオブジェクトが生成され、第2仮想空間VS2が山を模した仮想空間となるように、背景となる画像及びオブジェクトが生成される。
【0191】
また、仮想環境生成部30のアバター生成部30bは、第1ユーザU1に対応する第1アバターA1及び第2ユーザU2に対応する第2ゴーストG2を第1仮想空間VS1に生成し、第2ユーザU2に対応する第2アバターA2及び第1ユーザU2に対応する第1ゴーストG1を第2仮想空間VS2に生成する。
【0192】
次に、サーバ3のアバター動作制御部32は、第1アバターA1に第1特性を付与するとともに、第2アバターA2に第2特性を付与する(
図9/STEP301)。
【0193】
本実施形態では、第1アバターA1に付与される特性と第2アバターA2に付与される特性とは、同一のものであり、その後に変更されないものとなっている。ただし、第1アバターA1及び第2アバターA2に付与される特性は、第1実施形態のように、互いに異なるものであり、且つ、その後変更され得るものであってもよい。
【0194】
次に、サーバ3のアバター動作制御部32は、第1ユーザU1の動作及び第1アバターA1に付与された特性に基づいて、第1アバターA1及び第1ゴーストG1の動作を決定し、第2ユーザU2の動作及び第2アバターA2に付与された特性に基づいて、第2アバターA2及び第2ゴーストG2の動作を決定する(
図9/STEP302)。
【0195】
次に、サーバ3のアバター環境決定部33は、第1アバターA1の動作及び第1仮想空間VS1の状況に基づいて、第1アバターA1の環境を決定し、第2アバターA2の動作及び第2仮想空間VS2の状況に基づいて、第2アバターA2の環境を決定する(
図9/STEP303)。
【0196】
次に、サーバ3のユーザ環境決定部34は、第1ユーザU1に認識させる環境を、第1アバターA1の環境に基づいて決定し、第2ユーザU2に認識させる環境を、第2アバターA2の環境に基づいて決定する(
図9/STEP304)。
【0197】
具体的には、ユーザ環境決定部34は、第1ユーザU1に認識させる環境として、第1アバターA1の環境を表す第1仮想空間VS1の画像及び音を決定し、第2ユーザU2に認識させる環境として、第2アバターA2の環境を表す第2仮想空間VS2の画像及び音を決定する。
【0198】
次に、ユーザUに装着されたHMD4は、決定された環境を出力する(
図9/STEP305)。
【0199】
具体的には、HMD4は、HMD4に搭載されているモニタ40に決定された画像を表示させ、HMD4に搭載されているスピーカ41に決定された音を発生させる。
【0200】
次に、サーバ3のユーザ動作認識部31は、第1ユーザU1又は第2ユーザU2がなんらかの動作を行ったか否かを判断する(
図9/STEP306)。
【0201】
第1ユーザU1又は第2ユーザU2がなんらかの動作を行った場合(STEP306でYESの場合)、STEP302に戻り、再度、STEP302以降の処理が実行される。
【0202】
一方、第1ユーザU1又は第2ユーザU2がなんらかの動作を行っていなかった場合(STEP306でNOの場合)、サーバ3は、処理の終了を指示する信号を認識したか否かを判断する(
図9/STEP307)。
【0203】
終了を指示する信号を認識できなかった場合(STEP307でNOの場合)、STEP306に戻り、再度、STEP306以降の処理が実行される。
【0204】
一方、終了を指示する信号を認識した場合(STEP307でYESの場合)、VRシステムS2は、今回の処理を終了する。
【0205】
以上の処理により、
図10に示すように、第1仮想空間VS1では、第1ユーザU1に対応する第1アバターA1及び第2ユーザU2に対応する第2ゴーストG2を含む複数のオブジェクトが設置され、第2仮想空間VS2では、第2ユーザU2に対応する第2アバターA2及び第1ユーザU1に対応する第1ゴーストG1を含む複数のオブジェクトが設置される。
【0206】
そして、第1ユーザU1及び第2ユーザU2は、それぞれが装着したHMD4で表示される画像及び発生される音によって、それぞれに対応する第1アバターA1及び第2アバターA2を介して、自身が第1仮想空間VS1又は第2仮想空間VS2に存在し、自由に動作することができると認識するようになる。
【0207】
なお、このとき、第1ユーザU1及び第2ユーザU2の一方は、第1ユーザU1及び第2ユーザU2の他方とメッセージの送信等を介して互いにコミュニケーション可能な状態となっている。これにより、第1ユーザU1及び第2ユーザU2とは、存在している仮想空間VSは異なるものの、同時にVRシステムS2を使用していることを、互いに認識している状態となっている。
【0208】
[仮想空間を同期させる際及びそれ以降における処理]
次に、
図8、
図11~
図13を参照して、仮想空間VSを同期させる際及びそれ以後において実行する処理について説明する。
【0209】
まず、この処理の具体的な説明に先立ち、この処理が実行される背景について説明する。
【0210】
前述のように、本実施形態では、VRシステムS2の使用を開始した段階では、第1アバターA1は、第1仮想空間VS1に存在しており、第2アバターA2は、第2仮想空間VS2に存在している。
【0211】
そのようにアバターAごとに存在している仮想空間VSが異なる場合、例えば、ユーザUがコミュニケーション(具体的には、空間の種別を超えての会話等)を行った際等に、第1ユーザU1及び第2ユーザU2の一方が他方の環境を体感したい、又は、一方が他方に自らの環境を体感させたいという要望が生じることがある。
【0212】
例えば、本実施形態では、第1ユーザU1が、第1アバターA1を介して、第1仮想空間VS1にのみ存在しているオブジェクト(例えば、海を泳いでいるイルカのオブジェクトである第2オブジェクトO2)を視認している場合であっても、第2ユーザU2は、そのオブジェクトを視認することはできないという状況が生じ得る。
【0213】
そのような状況が生じた場合、第1ユーザU1が第2ユーザU2に対して、メッセージ機能等によって、その第2オブジェクトO2の存在を知らせた結果、第2ユーザU2が、第1ユーザU1が視認しているオブジェクトを、第1ユーザU1と同様に視認したいという要望が生じることがある。
【0214】
そこで、本実施形態のVRシステムS2では、そのような要望が生じた場合に対応するために、以下に説明する処理によって、第1アバターA1の存在している第1仮想空間VS1と第2アバターA2の存在している第2仮想空間VS2とを同期させる処理を、実行可能に構成されている。
【0215】
この処理においては、まず、サーバ3のトリガーイベント認識部35は、所定のトリガーイベントを認識したか否かを判断する(
図11/STEP400)。
【0216】
具体的には、トリガーイベント認識部35は、仮想空間VSで、ユーザUに対応するアバターAの動作を認識し、その動作が所定のトリガーイベントとして予め規定された所定の動作に該当するか否を判断する。本実施形態では、
図12に示すように、アバターAがゴーストGに触れる動作が、所定のトリガーイベントとして設定されている。
【0217】
所定のトリガーイベントを認識した場合(STEP400でYESの場合)、サーバ3の仮想環境生成部30のアバター生成部30bは、第1アバターA1の存在している第1仮想空間VS1と第2アバターA2が存在している第2仮想空間VS2とを同期させる(
図11/STEP401)。
【0218】
具体的には、まず、アバター生成部30bは、第1仮想空間VS1において、第2ゴーストG2を消去するとともに、第2アバターA2を生成する。次に、アバター生成部30bは、第2仮想空間VS2において、第2アバターA2及び第1ゴーストG1を消去する。これにより、
図13に示すように、第1アバターA1及び第2アバターA2の両方が、第1仮想空間VS1に存在している状態となる。
【0219】
一方で、第2仮想空間VS2は、同期させる処理の実行後においては、アバターA及びゴーストGが存在しない状態となっている。これは、本実施形態のVRシステムS2では採用していないが、所定のトリガーイベント以外の他のトリガーイベントが認識された場合に(例えば、アバターAがスイッチ型のオブジェクトを押した場合に)、第2仮想空間VS2に、再度アバターAを生成する場合があるためである。
【0220】
なお、本実施形態のVRシステムS2では採用していないが、第2仮想空間VS2の環境を、第1仮想空間VS1の環境に変化させることによって、第1仮想空間VS1と第2仮想空間VS2とを同期させてもよい。その場合、第1仮想空間VS1において第2アバターA2を生成する処理及び第2ゴーストG2を消去する処理、並びに、第2仮想空間VS2において第1アバターA1を生成する処理及び第1ゴーストG1を消去する処理は、実行してもよいし、実行しなくてもよい。
【0221】
仮想空間VSを同期させる処理(STEP401の処理)を実行した後には、サーバ3のアバター動作制御部32は、第1ユーザU1の動作及び第1アバターA1に付与された特性に基づいて、第1アバターA1の動作を決定し、第2ユーザU2の動作及び第2アバターA2に付与された特性に基づいて、第2アバターA2の動作を決定する(
図11/STEP402)。
【0222】
次に、サーバ3のアバター環境決定部33は、第1アバターA1の動作及び第1仮想空間VS1の状況に基づいて、第1アバターA1の環境を決定し、第2アバターA2の動作及び第1仮想空間VS1の状況に基づいて、第2アバターA2の環境を決定する(
図11/STEP403)。
【0223】
一方、所定のトリガーイベントを認識しなかった場合(STEP400でNOの場合)、STEP302における処理と同様に、サーバ3のアバター動作制御部32は、第1ユーザU1の動作及び第1アバターA1に付与された特性に基づいて、第1アバターA1及び第1ゴーストG1の動作を決定し、第2ユーザU2の動作及び第2アバターA2に付与された特性に基づいて、第2アバターA2及び第2ゴーストG2の動作を決定する(
図11/STEP404)。
【0224】
次に、サーバ3のアバター環境決定部33は、第1アバターA1の動作及び第1仮想空間VS1の状況に基づいて、第1アバターA1の環境を決定し、第2アバターA2の動作及び第2仮想空間VS2の状況に基づいて、第2アバターA2の環境を決定する(
図11/STEP405)。
【0225】
アバターAの環境を決定する処理(STEP403の処理、又は、STEP405の処理)を実行した後には、サーバ3のユーザ環境決定部34は、第1ユーザU1に認識させる環境を、第1アバターA1の環境に基づいて決定し、第2ユーザU2に認識させる環境を、第2アバターA2の環境に基づいて決定する(
図11/STEP406)。
【0226】
具体的には、ユーザ環境決定部34は、第1ユーザU1に認識させる環境として、第1アバターA1の環境を表す第1仮想空間VS1の画像及び音を決定し、第2ユーザU2に認識させる環境として、第2アバターA2の環境を表す第1仮想空間VS1の画像及び音、又は、第2仮想空間VS2の画像又は音を決定する。
【0227】
次に、ユーザUに装着されたHMD4は、STEP305における処理と同様に、決定された環境を出力する(
図11/STEP407)。
【0228】
次に、サーバ3のユーザ動作認識部31は、第1ユーザU1又は第2ユーザU2がなんらかの動作を行ったか否かを判断する(
図11/STEP408)。
【0229】
第1ユーザU1又は第2ユーザU2がなんらかの動作を行った場合(STEP408でYESの場合)、トリガーイベント認識部35は、第1仮想空間VS1と第2仮想空間VS2とを同期させる処理(STEP401の処理))が実行済みであるか否かを判断する(
図11/STEP409)。
【0230】
具体的には、トリガーイベント認識部35は、第1仮想空間VS1と第2仮想空間VS2とを同期させる処理の実行のキーとなる所定のトリガーイベントを認識したことが有るか否かに基づいて、その処理が実行済みであるか否かを判断する。
【0231】
同期させる処理が実行済みでなかった場合(STEP409でNOの場合)、STEP400に戻り、再度、STEP400以降の処理が実行される。
【0232】
一方、同期させる処理が実行済みであった場合(STEP409でYESの場合)、STEP402に戻り、再度、STEP402以降の処理が実行される。
【0233】
一方、第1ユーザU1又は第2ユーザU2がなんらかの動作を行っていなかった場合(STEP408でNOの場合)、サーバ3は、処理の終了を指示する信号を認識したか否かを判断する(
図11/STEP410)。
【0234】
終了を指示する信号を認識できなかった場合(STEP410でNOの場合)、STEP408に戻り、再度、STEP408以降の処理が実行される。
【0235】
一方、終了を指示する信号を認識した場合(STEP410でYESの場合)、VRシステムS2は、今回の処理を終了する。
【0236】
以上説明したように、本実施形態のVRシステムS2では、所定のトリガーイベントが認識される以前には、第1アバターA1を第1仮想空間VS1に生成して、第1アバターA1の環境を決定するとともに、第2アバターA2を第2仮想空間VS2に生成して、第2アバターA2の環境を決定する。
【0237】
一方で、所定のトリガーイベントが認識された以後には、第1アバターA1及び第2アバターA2を第1仮想空間VS1に生成して、第1アバターA1及び第2アバターA2の環境を決定する。
【0238】
これにより、所定のトリガーイベントが認識される以前には、第1ユーザU1に対応する第1アバターA1の存在する仮想空間(例えば、本実施形態における第1仮想空間VS1)と、第2ユーザU2に対応する第2アバターA2の存在する仮想空間(例えば、本実施形態における第2仮想空間VS2)とは、独立したものになっている。そのため、アバターAの環境は、従来のように、独立したものになる。ひいては、ユーザUが体感する環境も、従来のように、独立したものになる。
【0239】
一方、所定のトリガーイベントが認識された以後には、第1ユーザU1に対応する第1アバターA1の存在する仮想空間と第2ユーザU2に対応する第2アバターA1の存在する仮想空間とは、同一の仮想空間(例えば、本実施形態における第1仮想空間VS1)になる。そのため、アバターAの環境は、一致したもの又は同様のものになる。ひいては、ユーザUが体感する環境も、一致したもの又は同様のものになる。
【0240】
したがって、VRシステムS2によれば、所定のトリガーイベントが認識された以後には、アバターAの環境を同期させる処理が実行されて、第1ユーザU1及び第2ユーザU2に認識させる仮想空間VSの環境が同様のものになるので、それまで異なる環境を体感していた第1ユーザU1及び第2ユーザU2が、同様の環境を体感することができるようになる。
【0241】
[第2実施形態の変形例]
なお、本実施形態では、アバターAがゴーストGに触れる動作が、所定のトリガーイベントとして設定されている。
【0242】
これは、アバターAがゴーストGに対して実行する所定の動作を所定のトリガーイベントとして設定すると、そのアバターAに対応するユーザUは、その動作を実行した結果、ゴーストGに対応するユーザUの環境を自らも体感することができることを、直感的に理解することができるようになるためである。
【0243】
しかし、第2発明において、所定のトリガーイベントとなる「所定の動作」とは、このようにアバターがゴーストに触れる動作に限定されるものではなく、アバターがゴーストを基準として行う何らかの動作であればよい。
【0244】
例えば、所定の動作とは、アバターがゴーストに接触するような動作、アバターがゴーストを基準とした所定の範囲内に移動するような動作、アバターが仮想空間に存在するオブジェクトを操作する際に、その対象としてゴーストを選択するような動作(例えば、カメラ型オブジェクトでゴーストを撮影するような動作等)等であってもよい。
【0245】
さらに、第2発明におけるトリガーイベントは、必ずしも、第1ユーザ及び第2ユーザの一方に対応するアバターが第1ユーザ及び第2ユーザの他方に対応するゴーストに対して実行する所定の動作である必要はない。そのため、例えば、別途設けられたインターフェースを介して、ユーザが特性の変化を指示した場合に、その指示を行ったことを、トリガーイベントとしてもよい。
【0246】
また、上記実施形態では、第1実施形態におけるVRシステムS1とは異なり、アバターAに付与される特性が1種類のみとなっている。しかし、第2発明の仮想空間体感システムは、このような構成に限定されるものではなく、本実施形態のように仮想空間を同期させる処理に加え、第1実施形態のようにアバターの特性を同期させる処理も実行されるように構成されていてもよい。
【0247】
[第3実施形態]
以下、
図14~
図20を参照して、第3実施形態に係る複合空間体感システムであるMRシステムS3について説明する。
【0248】
MRシステムS3は、現実空間RSの所定の領域(例えば、1つの部屋等)に共に存在する第3ユーザU3及び第4ユーザU4(第3発明における第1ユーザ及び第2ユーザ。以下、総称する場合は「ユーザU」という。)に対し、その領域に対応する第1複合空間MS1又は第2複合空間MS2(以下、総称する場合は「複合空間MS」という。)に、自らが共に存在すると認識させるものである(
図17等参照)。
【0249】
なお、本実施形態では、理解を容易にするために、ユーザは2人としている。しかし、第3発明の複合空間体感システムは、そのような構成に限定されるものではなく、ユーザの数は3人以上であってもよい。
【0250】
[システムの概略構成]
まず、
図14を参照して、MRシステムS3の概略構成について説明する。
【0251】
図14に示すように、MRシステムS3は、現実空間RSに存在するユーザU及び現実空間RSを撮影するカメラ5と、複合空間MS(
図4等参照)の画像及び音を決定するサーバ6と、決定された画像及び音をユーザに認識させるヘッドマウントディスプレイ(以下、「HMD7」という。)とを備えている。
【0252】
MRシステムS3では、カメラ5、サーバ6及びHMD7は、インターネット網、公衆回線、近距離無線通信等の無線で相互に情報を送受信可能となっている。ただし、それらのいずれか同士を有線で相互に情報を送受信可能に構成してもよい。
【0253】
カメラ5は、ユーザUの存在する現実空間RSのユーザUが動作可能範囲(すなわち、座標の移動、向きを含む姿勢の変化等をし得る範囲)を多方向から撮影可能なように設置されている。
【0254】
サーバ6は、カメラ5が撮影した画像からユーザUの身体等における特徴点を認識し、その認識された特徴点の現実空間RSにおける位置に基づいて、ユーザUの座標及び姿勢を認識する。また、サーバ6は、カメラ5が撮影した画像から現実空間RSの特徴点を認識し、現実空間RSに存在する実在のオブジェクト(例えば、本棚等)の座標及び姿勢を認識する。
【0255】
さらに、サーバ6は、ユーザUの座標及び姿勢、並びに、現実空間RSにおける特徴点に基づいて、ユーザUに認識させる複合空間MSの画像及び音を決定する。
【0256】
HMD7は、ユーザに複合空間MSの環境を認識させる環境出力器である。HMD7は、ユーザUの頭部に装着される。HMD7は、ユーザUに、サーバ6によって決定された複合空間MSの画像をユーザUの認識させるためのモニタ70と、サーバ6によって決定された複合空間MSの音をユーザUに認識させるためのスピーカ71とを有している(
図15参照)。
【0257】
MRシステムS3を用いて複合空間MSを体感する場合、ユーザUは、現実空間RSの画像及び音とともに、体感せられる複合空間MSに対応した仮想のオブジェクトに関する画像及び音を認識させられる。なお、その仮想のオブジェクトは、ユーザUの動作に応じて、所定の動作(例えば、座標の移動等)を行うものとして構成されている。
【0258】
なお、第3発明の複合空間体感システムは、そのような構成に限定されるものではない。例えば、モーションキャプチャー装置を使用する場合には、上記の構成のものの他、カメラの数及び配置が図示した数及び配置とは異なる構成のものを用いてもよい。また、ユーザの特徴点及び現実空間の特徴点の少なくとも一方の特徴点を認識するために、ユーザ又は現実空間に存在する実在のオブジェクトに取り付ける標識を用いてもよい。
【0259】
また、例えば、モーションキャプチャー装置に代わり、ユーザの座標のみを認識する装置を用いてもよい。具体的には、例えば、HMDにGPS等のセンサを搭載し、そのセンサからの出力に基づいて、ユーザの座標、姿勢等を認識するようにしてもよい。また、そのようなセンサと、上記のようなモーションキャプチャー装置とを併用してもよい。
[処理部の構成]
次に、
図15を用いて、サーバ6の備えている処理部の構成を詳細に説明する。
【0260】
サーバ6は、CPU、RAM、ROM、インターフェース回路等を含む1つ又は複数の電子回路ユニットにより構成されている。サーバ6は、実装されたハードウェア構成又はプログラムにより実現される機能(処理部)として、
図15に示すように、現実空間認識部60と、複合環境生成部61と、ユーザ動作認識部62と、オブジェクト制御部63と、ユーザ環境決定部64と、トリガーイベント認識部65とを備えている。
【0261】
現実空間認識部60は、カメラ5が撮影した現実空間RSの画像データを認識し、その画像データに基づいて、現実空間RSの状況を認識ずる。現実空間RSの状況とは、例えば、現実空間RSに存在する他のユーザU及び実在のオブジェクトの座標及び姿勢等である。
【0262】
複合環境生成部61は、オブジェクト生成部61aと、複合空間生成部61bとを有している。
【0263】
オブジェクト生成部61aは、複合空間MSに存在させて、ユーザUに認識させる仮想のオブジェクトを生成する(
図17等参照)。その仮想のオブジェクトには、後述する第1複合空間MS1に存在させる第3オブジェクトO3、及び、第2複合空間MS2に存在させる第4オブジェクトO4(第3発明における第1オブジェクト及び第2オブジェクト)が含まれる。
【0264】
第3オブジェクトO3及び第4オブジェクトO4(以下、総称する場合は「オブジェクトO」という。)の少なくとも一部は、複合空間MSで、ユーザUの動作に応じて動作するものとして構成されている。
【0265】
複合空間生成部61bは、現実空間認識部60で認識された現実空間RSの画像に第3オブジェクトO3を存在させて、第1複合空間MS1を生成する。また、複合空間生成部61bは、現実空間認識部60で認識された現実空間RSの画像に第4オブジェクトO4を存在させて、第2複合空間MS2を生成する。
【0266】
ユーザ動作認識部62は、カメラ5が撮影したユーザUの画像データを認識し、その画像データに基づいて、ユーザUの現実空間RSにおける動作を認識する。ユーザ動作認識部62は、ユーザ姿勢認識部62aと、ユーザ座標認識部62bとを有している。
【0267】
ユーザ姿勢認識部62aは、入力されたユーザUの画像データからユーザUの身体等の特徴点を抽出し、その抽出結果に基づいて、ユーザUの向きを含む姿勢を認識する。
【0268】
ユーザ座標認識部62bは、入力されたユーザUの画像データから抽出されたユーザUの身体等の特徴点の抽出結果、及び、現実空間認識部60が認識した現実空間RSの状況(例えば、実在のオブジェクトの座標等)に基づいて、ユーザUの座標を認識する。
【0269】
オブジェクト制御部63は、ユーザ姿勢認識部62aによって認識されたユーザUの現実空間RSにおける姿勢、及び、ユーザ座標認識部62bによって認識されたユーザUの現実空間RSにおける座標に基づいて、そのユーザUの体感している複合空間MSに存在しているオブジェクトOの動作を制御する。
【0270】
例えば、オブジェクト制御部63は、ユーザUがオブジェクトOを移動させるような動作を行った際に、そのオブジェクトOの複合空間MSにおける座標を移動させる。
【0271】
ユーザ環境決定部64は、ユーザUに、HMD7のモニタ70及びスピーカ71を介して認識させる複合空間MSの環境を決定する。
【0272】
ここで、ユーザに「認識させる環境」とは、そのユーザに五感によって認識させる複合空間の環境を指す。例えば、ユーザの環境とは、ユーザに認識させる複合空間に存在するオブジェクトの画像、そのオブジェクトに基づいて発生される音等である。
【0273】
本実施形態では、ユーザ環境決定部64は、ユーザUの動作及びユーザUに体感させる複合空間MSの種類を認識し、ユーザUの動作に基づいて、複合空間MSのどの領域を、そのユーザUに体感させるかを決定する。
【0274】
トリガーイベント認識部65は、システム設計者が予め定めた条件を満たした際に、所定のトリガーイベントが発生したことを認識する。
【0275】
ここで、「トリガーイベント」は、ユーザがその発生を認識していないものであってもよい。そのため、トリガーイベントとしては、例えば、ユーザが現実空間において所定の動作を行うこと等のユーザの動作に起因するものも該当するし、所定時間の経過といったユーザの動作に起因しないものも該当する。
【0276】
なお、第3発明の複合空間体感システムを構成する各処理部は、上記のような構成に限定されるものではない。
【0277】
例えば、本実施形態においてサーバ6に設けられている処理部の一部を、HMD7に設けてもよい。また、複数のサーバを用いて構成してもよいし、サーバを省略してHMDに搭載されているCPUを協働させて構成してもよい。また、HMDに搭載されているスピーカ以外のスピーカを設けてもよい。また、視覚及び聴覚へ影響を与えるデバイスの他、複合空間に応じた匂い、風等を生じさせるような嗅覚及び触覚へ影響を与えるデバイスを含めてもよい。
【0278】
[実行される処理]
次に、
図15~
図20を参照して、MRシステムS3を用いてユーザUに複合空間MSを体感させる際に、MRシステムS3の実行する処理について説明する。
【0279】
[通常の使用状態における処理]
まず、
図15~
図17を参照して、MRシステムS3が使用開始時、及び、通常の使用状態(すなわち、後述する所定のトリガーイベントを認識していない状態)で実行する処理について説明する。
【0280】
この処理においては、まず、サーバ6の複合環境生成部61は、第1複合空間MS1及び第2複合空間MS2を生成する(
図16/STEP500)。
【0281】
具体的には、
図17に示すように、まず、複合環境生成部61のオブジェクト生成部61aは、第1複合空間MS1に存在させる第3オブジェクトO3、及び、第2複合空間MS2に存在させる第4オブジェクトO4を生成する。
【0282】
本実施形態では、第3オブジェクトO3は、第1複合空間MS1を認識しているユーザUの動作に応じて座標及び姿勢が制御される花の鉢植えのオブジェクト(以下、単に「花O30」という。)と、他のユーザUに付加される第1メッセージボードO31とを含んでいる。第1メッセージボードO31には、その第1メッセージボードO31を付加されたユーザUのステータス(例えば、体感している複合空間MSの種類等)が表示される。
【0283】
また、本実施形態では、第4オブジェクトO4は、第2複合空間MS2を認識しているユーザUの動作に応じて座標及び姿勢が制御される本のオブジェクト(以下、単に「本O40」という。)と、他のユーザUに付加される第2メッセージボードO41とを含んでいる。第2メッセージボードO41には、その第2メッセージボードO41を付加されたユーザUのステータス(例えば、体感している複合空間MSの種類等)が表示される。
【0284】
その後、複合環境生成部61の複合空間生成部61bは、現実空間認識部60によって認識された現実空間RSの画像に、第3オブジェクトO3を重畳させて、第1複合空間MS1を生成する。また、複合空間生成部61bは、現実空間認識部60によって認識された現実空間RSの画像に、第4オブジェクトO4を重畳させて、第2複合空間MS2を生成する。
【0285】
次に、サーバ6のユーザ環境決定部64は、第3ユーザU3に認識させる複合空間MS及び第4ユーザU4に認識させる複合空間MSを決定する(
図16/STEP501)。
【0286】
具体的には、ユーザ環境決定部64は、別途設けられたインターフェース(不図示)を介して入力されたユーザUからの指示に基づいて、ユーザUに認識させる複合空間MSを選択する。
【0287】
本実施形態では、第3ユーザU3は、第1複合空間MS1を認識することを選択し、第4ユーザU4は、第2複合空間MS2を認識することを選択したものとする。
【0288】
なお、第3発明において、ユーザに認識させる複合空間を決定する方法は、このような構成に限定されるものではなく、システム設計者が適宜設定してよい。そのため、例えば、予め入力されたユーザの特性(ユーザの年齢といった身体的な特性、複合空間体感システムの使用目的といった特性等)に応じて、そのユーザに認識させる複合空間を、自動的に決定するように構成されていてもよい。
【0289】
次に、サーバ6のユーザ環境決定部64は、MRシステムMS3の使用開始時における第3ユーザU3の状態及び第1複合空間MS1の状況に基づいて、第3ユーザU3に認識させる第1複合空間MS1における環境を決定し、MRシステムMS3の使用開始時における第4ユーザU4の状態及び第2複合空間MS2の状況に基づいて、第4ユーザU4に認識させる第2複合空間MS2における環境を決定する(
図16/STEP502)。
【0290】
具体的には、ユーザ環境決定部64は、第3ユーザU3に認識させる環境として、第3ユーザU3の現実空間RSの座標及び姿勢に基づいて、現実空間RSのうちの認識させる領域の画像、その領域における第3オブジェクトO3の画像、及び、それに伴う音を決定する。
【0291】
また、ユーザ環境決定部64は、第4ユーザU4に認識させる環境として、第4ユーザU4の現実空間RSの座標及び姿勢に基づいて、現実空間RSのうちの認識させる領域の画像、その領域における第4オブジェクトO4の画像、及び、それに伴う音を決定する。
【0292】
次に、ユーザUに装着されたHMD7は、決定された環境を出力する(
図16/STEP503)。
【0293】
具体的には、HMD7は、HMD7に搭載されているモニタ70に、決定された画像を表示させ、HMD7に搭載されているスピーカ71に決定された音を発生させる。
【0294】
次に、サーバ6のユーザ動作認識部31は、第3ユーザU3又は第4ユーザU4がなんらかの動作を行ったか否かを判断する(
図16/STEP504)。
【0295】
ユーザUが動作した場合(STEP504でYESの場合)、サーバ6のオブジェクト制御部63は、そのユーザUの動作がオブジェクトOを操作する動作であるか否かを判断する(
図16/STEP505)。
【0296】
例えば、ユーザUの動作が、オブジェクト制御部63は、そのユーザUが存在している複合空間MSで、その複合空間MSに存在しているオブジェクトOを、移動させるような動作であるか否かを判断する。具体的には、オブジェクト制御部63は、ユーザUの動作がそのオブジェクトOに対する所定の動作に該当するか否かを判断する。
【0297】
ユーザUの動作がオブジェクトOを操作する動作であった場合(STEP505でYESの場合)、オブジェクト制御部63は、ユーザUの動作の種類に応じて、オブジェクトOを制御する(
図16/STEP506)。
【0298】
例えば、オブジェクト制御部63は、ユーザUの動作がオブジェクトOを移動させるような動作であった場合には、その動作の内容に応じて、オブジェクトOの座標を変化させる。
【0299】
オブジェクトOを制御する処理(STEP506の処理)を実行した後、又は、ユーザUの動作がオブジェクトOを操作する動作でなかった場合(STEP505でNOの場合)、ユーザ環境決定部64は、その時点における第3ユーザU3の状態及び第1複合空間MS1の状況に基づいて、第3ユーザU3に認識させる第1複合空間MS1における環境を決定し、その時点における第4ユーザU4の状態及び第2複合空間MS2の状況に基づいて、第4ユーザU4に認識させる第2複合空間MS2における環境を決定する(
図16/STEP507)。
【0300】
次に、HMD7は、STEP503と同様の処理を実行して、決定された環境を出力する(
図16/STEP508)。
【0301】
決定された環境を出力する処理(STEP508の処理)を実行した後、又は、ユーザUが動作しなかった場合(STEP504でNOの場合)、サーバ6は、処理の終了を指示する信号を認識したか否かを判断する(
図16/STEP509)。
【0302】
終了を指示する信号を認識できなかった場合(STEP509でNOの場合)、STEP504に戻り、再度、STEP504以降の処理が実行される。
【0303】
一方、終了を指示する信号を認識した場合(STEP509でYESの場合)、MRシステムS3は、今回の処理を終了する。
【0304】
以上の処理により、
図17に示すように、第3ユーザU3は、装着したHMD4で表示される画像及び発生される音によって、現実空間RSに第3オブジェクトO3を存在させた第1複合空間MS1を認識し、その第1複合空間MS1で第3オブジェクトO3を操作することができる状態となる。
【0305】
また、装着したHMD4で表示される画像及び発生される音によって、第4ユーザU4は、現実空間RSに第4オブジェクトO4を存在させた第2複合空間MS2を認識し、その第2複合空間MS2で第4オブジェクトO4を操作することができる状態となる。
【0306】
なお、このとき、第3ユーザU3及び第4ユーザU4の一方の認識している複合空間MSには、現実空間RSを基準として生成されたものであるので、その現実空間RSに存在する第3ユーザU3及び第4ユーザU4の他方も存在する。
【0307】
そして、前述のように、第3ユーザU3及び第4ユーザU4の他方には、その第3ユーザU3又は第4ユーザU4の体感している複合空間MSの種類を示すオブジェクトである第1メッセージボードO31又は第2メッセージボードO41が付加されている。
【0308】
そのため、第3ユーザU3と第4ユーザU4とは、同時にMRシステムS3を使用していること、及び、使用している場合にはどの複合空間MSを体感しているかを、互いに認識できる状態となっている。
【0309】
[複合空間を同期させる際及びそれ以降における処理]
次に、
図14、
図18~
図20を参照して、複合空間MSを同期させる際及びそれ以後において実行する処理について説明する。
【0310】
まず、この処理の具体的な説明に先立ち、この処理が実行される背景について説明する。
【0311】
前述のように、本実施形態では、MRシステムS3の使用を開始した段階では、第3ユーザU3は、第1複合空間MS1を体感しており、第4ユーザU4は、第2複合空間MS2を体感している。
【0312】
そのようにユーザUごとに体感している複合空間MSが異なる場合、例えば、ユーザUがコミュニケーション(具体的には、会話等)を行った際等に、第3ユーザU3及び第4ユーザU4の一方が他方の環境を体感したい、又は、一方が他方に自らの環境を体感させたいという要望が生じることがある。
【0313】
例えば、本実施形態では、第1複合空間MS1を体感している第3ユーザU3が、現実空間RSに実在している棚に、仮想のオブジェクトである花O30を並べたとする。そのとき、第2複合空間MS2を体感している第4ユーザU4は、第2複合空間MS2を体感しているので、第1複合空間MS1及び第2複合空間MS2に共通して存在する棚そのものを認識することはできても、そこに並べられた第1複合空間MS1のオブジェクトである花O30を認識することはできない。
【0314】
そのような場合、第3ユーザU3が第4ユーザU4に対して、自らの並べた花O30の状態を見てほしいと会話等によって伝えた結果、第4ユーザU4が、第3ユーザU3が視認している花O30を、第3ユーザU3と同様に視認したいという要望が生じることがある。
【0315】
そこで、本実施形態のMRシステムS3では、そのような要望が生じた場合に対応するために、以下に説明する処理によって、第3ユーザU3の体感している第1複合空間MS1と、第4ユーザU4の体感している第2複合空間MS2とを同期させる処理を、実行可能に構成されている。
【0316】
この処理においては、まず、サーバ6のトリガーイベント認識部65は、所定のトリガーイベントを認識したか否かを判断する(
図18/STEP600)。
【0317】
具体的には、トリガーイベント認識部65は、複合空間MSにおけるユーザUの動作を認識し、その動作が所定のトリガーイベントとして予め規定された所定の動作に該当するか否を判断する。本実施形態では、
図19に示すように、第3ユーザU3及び第4ユーザU4の一方が他方に触れる動作が、所定のトリガーイベントとして設定されている。
【0318】
所定のトリガーイベントを認識した場合(STEP600でYESの場合)、サーバ6のユーザ環境決定部64は、ユーザUに体感させる複合空間MSの種類を同期させる(
図18/STEP601)。
【0319】
具体的には、ユーザ環境決定部64は、第3ユーザU3体感させる複合空間MSを、第1複合空間MS1のまま維持し、第4ユーザU4に体感させる複合空間MSを、第2複合空間MS2から第1複合空間MS1に変更する。
【0320】
さらに具体的には、ユーザ環境決定部64は、この処理以降において、第3ユーザU3に認識させるオブジェクトとして、第2複合空間MS2を生成するためのオブジェクト(例えば、本O40等)ではなく、第1複合空間MS1を生成するためのオブジェクト(例えば、花O30等)に変更する。
【0321】
次に、ユーザ環境決定部64は、ユーザ環境決定部64は、その時点における第3ユーザU3及び第4ユーザU4の状態及び第1複合空間MS1の状況に基づいて、第3ユーザU3及び第4ユーザU4に認識させる第1複合空間MS1における環境を決定する(
図18/STEP602)。
【0322】
具体的には、ユーザ環境決定部64は、第3ユーザU3に認識させる環境として、第3ユーザU3の現実空間RSの座標及び姿勢に基づいて、現実空間RSのうちの認識させる領域の画像、その領域における第3オブジェクトO3の画像、及び、それに伴う音を決定する。
【0323】
また、ユーザ環境決定部64は、第4ユーザU4に認識させる環境として、第4ユーザU4の現実空間RSの座標及び姿勢に基づいて、現実空間RSのうちの認識させる領域の画像、その領域における第3オブジェクトO3の画像、及び、それに伴う音を決定する。
【0324】
これにより、第4ユーザU4は、第3ユーザU3とともに、第1複合空間MS1を体感することができるようになる。その結果、
図20に示すように、第4ユーザU4は、第3ユーザU3が実在のオブジェクトである棚に並べた仮想のオブジェクトである花O30を視認することができる状態になる。
【0325】
一方、所定のトリガーイベントを認識しなかった場合(STEP600でNOの場合)、ユーザ環境決定部64は、その時点における第3ユーザU3の状態及び第1複合空間MS1の状況に基づいて、第3ユーザU3に認識させる第1複合空間MS1における環境を決定し、その時点における第4ユーザU4の状態及び第2複合空間MS2の状況に基づいて、第4ユーザU4に認識させる第2複合空間MS2における環境を決定する(
図18/STEP603)。
【0326】
ユーザUの環境を決定する処理(STEP602の処理、又は、STEP603の処理)を実行した後には、HMD7は、STEP503と同様の処理を実行して、決定された環境を出力する(
図18/STEP604)。
【0327】
次に、サーバ6のユーザ動作認識部62は、第3ユーザU3又は第4ユーザU4がなんらかの動作を行ったか否かを判断する(
図18/STEP605)。
【0328】
ユーザUが動作しなかった場合(STEP605でNOの場合)、ユーザ動作認識部62は、第3ユーザU3又は第4ユーザU4が動作したことを認識するまで(STEP605でYESとなるまで)、所定の制御周期でSTEP605の判断を繰り返す。
【0329】
一方、ユーザUが動作した場合(STEP605でYESの場合)、ユーザ動作認識部62は、その動作が所定のトリガーイベントに対応する所定の動作であるか否かを判断する(
図18/STEP606)。
【0330】
ユーザUの動作が所定の動作であった場合(STEP606でYESの場合)、トリガーイベント認識部65は、第1複合空間MS1と第2複合空間MS2とを同期させる処理(STEP601の処理)が実行済みであるか否かを判断する(
図18/STEP607)。
【0331】
具体的には、トリガーイベント認識部65は、第1複合空間MS1と第2複合空間MS2とを同期させる処理の実行のキーとなる所定のトリガーイベントを認識したことが有るか否かに基づいて、その処理が実行済みであるか否かを判断する。
【0332】
同期させる処理が実行済みでなかった場合(STEP607でNOの場合)、STEP600に戻り、再度、STEP600以降の処理が実行される。
【0333】
一方、同期させる処理が実行済みであった場合(STEP607でYESの場合)、STEP602に戻り、再度、STEP602以降の処理が実行される。
【0334】
一方、ユーザUの動作が所定の動作でなかった場合(STEP606でNOの場合)、STEP505における処理と同様に、サーバ6のオブジェクト制御部63は、そのユーザUの動作がオブジェクトOを操作する動作であるか否かを判断する(
図18/STEP608)。
【0335】
ユーザUの動作がオブジェクトOを操作する動作であった場合(STEP608でYESの場合)、STEP506における処理と同様に、オブジェクト制御部63は、ユーザUの動作の種類に応じて、オブジェクトOを制御する(
図18/STEP609)。
【0336】
オブジェクトOを制御する処理(STEP609の処理)を実行した後、又は、ユーザUの動作がオブジェクトOを操作する動作でなかった場合(STEP608でNOの場合)、STEP602における処理又はSTEP603における処理と同様に、ユーザ環境決定部64は、その時点におけるユーザUの状態、及び、そのユーザUが体感している複合空間MSの状況に基づいて、ユーザUに認識させる複合空間MSにおける環境を決定する(
図18/STEP610)。
【0337】
次に、HMD7は、STEP604と同様の処理を実行して、決定された環境を出力する(
図18/STEP611)。
【0338】
次に、サーバ6は、処理の終了を指示する信号を認識したか否かを判断する(
図18/STEP612)。
【0339】
終了を指示する信号を認識できなかった場合(STEP612でNOの場合)、STEP605に戻り、再度、STEP605以降の処理が実行される。
【0340】
一方、終了を指示する信号を認識した場合(STEP612でYESの場合)、MRシステムS3は、今回の処理を終了する。
【0341】
以上説明したように、MRシステムS3では、トリガーイベントが認識される以前には、第1複合空間MS1における環境を、第3ユーザU3に認識させる環境として決定するとともに、第2複合空間MS2における環境を、第4ユーザU4に認識させる環境として決定する。
【0342】
一方で、トリガーイベントが認識された以後には、第1複合空間MSにおける環境を、第3ユーザU3及び第4ユーザU4に認識させる環境として決定する。
【0343】
これにより、トリガーイベントが認識される以前には、第3ユーザU3が体感する複合空間(例えば、本実施形態における第1複合空間MS1)と第4ユーザU4が体感する複合空間(例えば、本実施形態における第2複合空間M2)とは、存在する仮想のオブジェクトが互いに独立した複合空間になる。
【0344】
一方、トリガーイベントが認識された以後には、第3ユーザU3の体感する複合空間と第4ユーザU4の体感する複合空間とは、存在する仮想のオブジェクトが一致した同一の複合空間(例えば、本実施形態における第1仮想空間MS1)になる。
【0345】
したがって、MRシステムS3によれば、トリガーイベントが認識された以後には、複合空間MSに存在するオブジェクトを同期させるための処理が実行されて、第3ユーザU3及び第4ユーザU4に認識させる複合空間MSの環境が同様のものになるので、それまで異なる環境を体感していた第3ユーザU3及び第4ユーザU4が、同様の環境を体感することができるようになる。
【0346】
[第3実施形態の変形例]
なお、本実施形態では、所定のトリガーイベントとして、第3ユーザU3及び第4ユーザU4の一方が他方に触れる動作が、所定のトリガーイベントとして設定されている。
【0347】
これは、第3ユーザU3及び第4ユーザU4の一方が他方に対して実行する所定の動作を所定のトリガーイベントとして設定すると、その動作を行った第3ユーザU3及び第4ユーザU4の一方は、その動作を実行した結果、他方の環境を自らも体感することができることを、直感的に理解することができるようになるためである。
【0348】
しかし、第3発明において、所定のトリガーイベントとなる「所定の動作」とは、このような第3ユーザU3及び第4ユーザU4の一方が他方に触れる動作に限定されるものではなく、第3ユーザU3及び第4ユーザU4の一方が他方を基準として行う何らかの動作であればよい。
【0349】
例えば、所定の動作とは、第3ユーザが第4ユーザに接触するような動作、第3ユーザが第4ユーザを基準とした所定の範囲内に移動するような動作、第3ユーザが複合空間に存在する仮想又は実在のオブジェクトを操作する際に、その対象として第4ユーザを選択するような動作(例えば、仮想の携帯端末又は実在の携帯端末のカメラで第4ユーザを撮影するような動作等)等であってもよい。
【0350】
また、例えば、仮想のオブジェクトとして、ユーザの動作に対応して動作するものの、複合空間における座標がユーザとは異なるゴーストも生成する場合がある。そのような場合には、そのゴーストに対して所定の動作を行った際にも、ユーザの特性を同期させる処理を実行するようにしてもよい。
【0351】
さらに、第3発明における所定のトリガーイベントは、必ずしも、第3ユーザ及び第4ユーザの一方が第1ユーザ及び第4ユーザの他方に対して実行する所定の動作である必要はない。そのため、例えば、別途設けられたインターフェースを介して、ユーザが複合空間の同期を指示した場合に、その指示を行ったことを、所定のトリガーイベントとしてもよい。
【符号の説明】
【0352】
1…標識、2,5…カメラ、3,6…サーバ、4,7…HMD(環境出力器)、30…仮想環境生成部、30a…仮想空間生成部、30b…アバター生成部、31,62…ユーザ動作認識部、31a,62a…ユーザ姿勢認識部、31b,62b…ユーザ座標認識部、32…アバター動作制御部、33…アバター環境決定部、34,64…ユーザ環境決定部、35,65…トリガーイベント認識部、40,70…モニタ、41,71…スピーカ、60…現実空間認識部、61…複合環境生成部、61a…オブジェクト生成部、61b…複合空間生成部、63…オブジェクト制御部、A1…第1アバター、A2…第2アバター、G1…第1ゴースト、G2…第2ゴースト、MS1…第1複合空間、MS2…第2複合空間、O1…第1オブジェクト、O2…第2オブジェクト、O3…第3オブジェクト、O30…花、O31…第1メッセージボード、O4…第4オブジェクト、O40…本、O41…第2メッセージボード、RS…現実空間、S1,S2…VRシステム(仮想空間体感システム)、S3…MRシステム(複合空間体感システム)、U1…第1ユーザ、U2…第2ユーザ、U3…第3ユーザ、U4…第4ユーザ、VS…仮想空間、VS1…第1仮想空間、VS2…第2仮想空間。
【要約】
仮想空間で、異なる環境を体感していた複数のユーザが、同様の環境を互いに体感することができるようになる仮想空間体感システムを提供する。アバター動作制御部32は、トリガーイベント前には、第1特性を第1アバターに付与し、第2特性を第2アバターに付与し、トリガーイベント後には、第1特性を第1アバター及び第2アバターに付与する。アバター環境決定部33は、第1アバターの動作に基づいて、第1アバターの環境を決定し、第2アバターの動作に基づいて、第2アバターの環境を決定する。