以下、図面を参照して、実施形態に係る仮想空間体感システムSについて説明する。
まず、図1を参照して、仮想空間体感システムSの概略構成について説明する。
図1に示すように、仮想空間体感システムSは、現実空間RSに存在するプレイヤーPに取り付けられる複数の標識1と、プレイヤーP(すなわち、標識1)を撮影するカメラ2と、仮想空間VS(図4B等参照)の画像及び音声を決定するサーバ3と、決定された画像及び音声をプレイヤーに認識させるヘッドマウントディスプレイ(以下、「HMD4」という。)とを備えている。カメラ2、サーバ3及びHMD4は、無線で相互に情報を送受信可能となっている。
複数の標識1は、プレイヤーPの装着するHMD4、手袋及び靴を介して、プレイヤーPの頭部、両手及び両足のそれぞれに取り付けられている。
カメラ2は、プレイヤーPの存在する現実空間RSのプレイヤーPが移動し得る範囲を多方向から撮影可能なように、複数設置されている。
サーバ3は、カメラ2が撮影した複数の画像から標識1を検出し、その検出された標識1の現実空間RSにおける位置に基づいて、プレイヤーPの座標及び姿勢を認識し、その座標及び姿勢に基づいて、プレイヤーPに認識させる画像及び音声を決定する。
HMD4は、プレイヤーPの頭部に装着される。HMD4には、プレイヤーPに、サーバ3によって決定された仮想空間の画像をプレイヤーPの認識させるためのモニタ41(仮想空間画像表示器)と、サーバ3によって決定された仮想空間の音声をプレイヤーPに認識させるためのスピーカ42(仮想空間音声発生器)と、プレイヤーPの声を集音するためのマイク(不図示)が設けられている(図2参照)。
この仮想空間体感システムSを用いてゲーム等を行う場合、プレイヤーPは、仮想空間の画像と音声のみを認識して、プレイヤーP自身が仮想空間に存在していると認識する。
なお、仮想空間体感システムSでは、プレイヤーPの現実空間における座標を認識するシステムとして、標識1とカメラ2とサーバ3とによって構成された、いわゆるモーションキャプチャー装置を備えている。しかし、本発明の仮想空間体感システムは、このような構成に限定されるものではない。
例えば、モーションキャプチャー装置を使用する場合には、上記の構成のものの他、カメラとサーバとが有線で接続されたものを用いてもよいし、標識及びカメラの数が上記構成とは異なる(例えば、それぞれ1つずつ設けられている)ものを用いてもよい。また、モーションキャプチャー装置に代わり、プレイヤーの座標のみを検出する装置を用いてもよい。
次に、図2を用いて、サーバ3の構成を詳細に説明する。
サーバ3は、CPU、RAM、ROM、インターフェース回路等を含む1つ又は複数の電子回路ユニットにより構成されている。サーバ3は、実装されたハードウェア構成又はプログラムにより実現される機能として、図2に示すように、表示画像生成部31と、プレイヤー情報検出部32と、トリガーイベント認識部33と、アバター座標決定部34と、仮想空間画像決定部35と、仮想空間音声決定部36とを備えている。
表示画像生成部31は、HMD4のモニタ41を介してプレイヤーPに認識させる画像を生成する。表示画像生成部31は、仮想空間生成部31aと、アバター生成部31bと、移動体生成部31cとを有している。
仮想空間生成部31aは、仮想空間の背景となる画像及び仮想空間に存在するオブジェクトの画像を生成する。
アバター生成部31bは、仮想空間に、プレイヤーPの動作に対応して動作するアバターを生成する。アバター生成部31bは、複数のプレイヤーPが存在する場合には、それぞれのプレイヤーPに対応するようにして複数のアバターを生成する。このアバターは、対応するプレイヤーPの現実空間における動作(すなわち、座標の移動及び姿勢の変化)に対応して、仮想空間において動作する。
移動体生成部31cは、仮想空間に、現実空間RSには対応する物体が存在せず、仮想空間にアバターと接続可能な移動体を生成する。
ここで、「移動体」とは、アバターが接続した際に、プレイヤーPの現実の移動とは異なるアバターの移動を、(意識している、意識していないに関わらず)プレイヤーに予測させるものであればよい。例えば、エレベータ等の現実空間で移動に使われるものの他、飛び乗ることが可能な川を流れる丸太、上に立った際に崩れそうな床、ジャンプ台、跳躍を補助する翼等が該当する。
また、ここで、アバターと移動体との「接続」とは、移動体の移動、移動体の形状の変化等がアバターの座標に影響することを、プレイヤーが予測し得る状態になることをいう。例えば、アバターがエレベータに乗り込む、アバターが川を流れる丸太に乗る、アバターが崩れそうな床の上に立つ、ジャンプ台の上に立つ、跳躍を補助する翼をアバターが装着する等が該当する。
プレイヤー情報検出部32には、カメラ2が撮影した標識1を含むプレイヤーPの画像データが入力される。このプレイヤー情報検出部32は、プレイヤー姿勢検出部32aと、プレイヤー座標検出部32bとを有している。
プレイヤー姿勢検出部32aは、入力されたプレイヤーPの画像データから標識1を抽出し、その抽出結果に基づいて、プレイヤーPの姿勢を検出する。
プレイヤー座標検出部32bは、入力されたプレイヤーPの画像データから標識1を抽出し、その抽出結果に基づいて、プレイヤーPの座標を検出する。
トリガーイベント認識部33は、プレイヤーPが現実空間において所定の動作を行った際に(すなわち、プレイヤーPに対応するアバターが仮想空間において所定の動作を行った際に)、その動作に基づくトリガーイベントが発生したと認識する。トリガーイベントは、プレイヤーPが所定の座標に移動する、プレイヤーPが所定の姿勢をとる等、プレイヤーPの動作に応じて発生するものであれば、プレイヤーPがその発生を認識していないものであってもよい。
アバター座標決定部34は、プレイヤー座標検出部32bによって検出されたプレイヤーPの現実空間RSにおける座標に基づいて、そのプレイヤーPに対応するアバターの仮想空間における座標を決定する。
また、アバター座標決定部34は、トリガーイベント認識部33がトリガーイベントを認識した際には、認識されたトリガーイベントの種類に応じて、所定期間若しくは所定範囲、又は、所定期間及び所定範囲において、アバターの座標を、プレイヤーの座標とアバターの座標との対応関係にズレを生じさせるように補正する。
また、ここで、プレイヤーの座標とアバターの座標との対応関係にズレを生じさせる「補正」とは、アバターの座標そのものをプレイヤーの座標の移動に関連させずに移動させることの他、プレイヤーの座標の移動量に対するアバターの座標の移動量を変化させること等をいう。
仮想空間画像決定部35は、アバターの座標に基づいて、HMD4のモニタ41を介して、そのアバターに対応するプレイヤーPに認識させる仮想空間の画像を決定する。
ここで、「仮想空間の画像」とは、仮想空間の背景の画像の他、他のアバターの画像、仮想空間にのみ存在するオブジェクトの画像、現実空間に対応して仮想空間に存在するオブジェクトの画像等、プレイヤーが自らに対応するアバターの仮想空間における座標を推認し得る画像をいう。
仮想空間音声決定部36は、アバターの座標に基づいて、HMD4のスピーカ42を介して、そのアバターに対応するプレイヤーPに認識させる音声を決定する。
次に、図2〜図16を参照して、仮想空間体感システムSを用いてゲームを行う際に、仮想空間体感システムSの実行する処理について説明する。図3、図5、図9及び図13は、ゲームの各段階において仮想空間体感システムSで行われる処理を示すフローチャートである。ここで、本実施形態において行われるゲームは、二人のプレイヤーが協力して移動し、それぞれのスタート地点からそれぞれのゴール地点を目指すゲームである。
まず、図2、図3及び図4を参照して、仮想空間体感システムSがゲームのスタート時の段階及びトリガーイベントが認識されていない段階で実行する処理について説明する。
ゲームの開始を指示する信号を認識したときには、まず、サーバ3の表示画像生成部31が、仮想空間VS、第1アバターA1及び第2アバターA2、並びに、移動体を生成する(図3/STEP01)。
具体的には、表示画像生成部31の仮想空間生成部31aが、仮想空間VS及び仮想空間VSに存在する各種オブジェクトを生成する。表示画像生成部31のアバター生成部31bが、第1プレイヤーP1(第1のプレイヤー)に対応する第1アバターA1(第1のアバター)及び第2プレイヤーP2(第2のプレイヤー)に対応する第2アバターA2(第2のアバター)を生成する。表示画像生成部31の移動体生成部31cが、後述するエレベータVS1等の移動体を生成する。
このSTEP01の処理により生成された仮想空間VSには、図4Bに示すように、第1アバターA1及び第2アバターA2、移動体であるエレベータVS1、床VS2及びジャンプ台VS3の他、現実空間RSに設置されているホワイトボードRS1(図4A参照)に対応する位置に生成されたボタンVS4等のトリガーイベントに関連するオブジェクトが設置されている。
次に、サーバ3のプレイヤー情報検出部32が、カメラ2によって撮影された画像データを取得し、その画像データに基づいて、第1プレイヤーP1及び第2プレイヤーP2(以下、総称する場合は「プレイヤーP」という。)の現実空間RSにおける座標及び姿勢(図4A参照)を検出する(図3/STEP02)。
次に、サーバ3のアバター座標決定部34が、プレイヤー情報検出部32が検出した第1プレイヤーP1の現実空間RSにおける座標に基づいて、第1アバターA1の仮想空間VSにおける座標を決定し、第2プレイヤーP2の現実空間RSにおける座標に基づいて、第2アバターA2の仮想空間VSにおける座標を決定する(図3/STEP03)。
次に、サーバ3の仮想空間画像決定部35及び仮想空間音声決定部36が、プレイヤーPに認識させる画像及び音声を、第1アバターA1及び第2アバターA2の仮想空間VSにおける座標及び姿勢に基づいて決定する(図3/STEP04)。
次に、プレイヤーPの装着しているHMD4が、モニタ41に決定された画像を表示し、スピーカ42に音声を発生する(図3/STEP05)。
次に、サーバ3のプレイヤー情報検出部32が、第1プレイヤーP1又は第2プレイヤーP2の現実空間RSにおける座標の移動又は姿勢の変化が検出されたか否かを判定する(図3/STEP06)。
第1プレイヤーP1又は第2プレイヤーP2の現実空間RSにおける座標の移動又は姿勢の変化が検出された場合(STEP06でYESの場合)には、STEP03に戻り、再度、STEP03以降の処理を実行する。
第1プレイヤーP1又は第2プレイヤーP2の現実空間RSにおける座標の移動又は姿勢の変化が検出されなかった場合(STEP06でNOの場合)には、サーバ3が、ゲームの終了を指示する信号を認識したか否かを判定する(図3/STEP07)。
ゲームの終了を指示する信号を認識できなかった場合(STEP07でNOの場合)には、STEP06に戻り、再度、STEP06以降の処理を実行する。ゲームの終了を指示する信号を認識した場合(STEP07でYESの場合)には、仮想空間体感システムSは、今回の処理を終了する。
以上の処理により、ゲームが開始された後には、仮想空間VSに、第1プレイヤーP1に対応する第1アバターA1及び第2プレイヤーP2に対応する第2アバターA2と、移動体であるエレベータVS1、床VS2及びジャンプ台VS3を含む複数のオブジェクトが設置される。
そして、第1プレイヤーP1及び第2プレイヤーP2は、それぞれが装着したHMD4に表示される画像及び発生される音声によって、それぞれに対応する第1アバターA1及び第2アバターA2を介して、自身が仮想空間VSに存在し、自由に動作することができると認識するようになる。
次に、図2、図5〜図8を参照して、仮想空間体感システムSがゲームの第1段階で実行する処理について説明する。この第1段階では、仮想空間VSの状態が図6Bに示す状態となること(すなわち、第1アバターA1が、エレベータVS1のマークVS1a上に移動すること)がトリガーイベントの発生に該当する。
この第1段階においては、まず、サーバ3のトリガーイベント認識部33が、第1プレイヤーP1の動作に基づくトリガーイベントの発生を認識したか否かを判定する(図5/STEP11)。
具体的には、トリガーイベント認識部33は、仮想空間VSで、第1プレイヤーP1に対応する第1アバターA1がエレベータVS1のマークVS1a上に移動するように(図6B参照)、現実空間RSで、第1プレイヤーP1がY軸方向に移動したか否か(図6A参照)を判定する。
そして、第1プレイヤーP1の座標が所定の位置に位置したときには、トリガーイベント認識部33が、トリガーイベントが発生したと認識する。
このとき、エレベータVS1は移動体であるので、第1プレイヤーP1及び第2プレイヤーP2は、第1プレイヤーに対応する第1アバターA1が移動体と接続したと認識することになる。
トリガーイベントの発生が認識された場合(STEP11でYESの場合)には、サーバ3のアバター座標決定部34が、移動体であるエレベータVS1の移動に伴って、エレベータVS1に乗っている第1アバターA1の座標を移動する(図5/STEP12)。
具体的には、アバター座標決定部34が、トリガーイベントの発生をトリガーとして、アバター座標決定部34が、移動体であるエレベータVS1の移動に伴って、第1アバターA1の座標を所定方向に所定量移動させる。
次に、サーバ3の仮想空間画像決定部35及び仮想空間音声決定部36は、移動後の第1アバターA1の座標に基づいて、プレイヤーPに認識させる仮想空間の画像及び音声を決定する(図5/STEP13)。
次に、プレイヤーPの装着しているHMD4が、モニタ41に決定された画像を表示し、スピーカ42に音声を発生する(図5/STEP14)。
STEP14の処理を実行した後、又は、トリガーイベントの発生が認識されなかった場合(STEP11でNOの場合)には、仮想空間体感システムSは、今回の処理を終了する。
上記のSTEP12〜STEP14の処理中、現実空間RSでは、第1アバターA1に対応する第1プレイヤーP1の座標は、第1段階開始時(図6A)、第1段階進行時(図7A)及び第1段階終了時(図8A)において、移動していない。
一方、仮想空間VSでは、第1プレイヤーP1に対応する第1アバターA1の座標は、第1段階開始時(図6B)、第1段階進行時(図7B)及び第1段階終了時(図8B)において、移動体であるエレベータVS1の移動に伴って、X軸方向において第2アバターA2から離れる方向に移動するとともに、Z軸方向において上方向に移動する。ここで、第1アバターA1の座標の移動速度は、X軸方向における移動速度よりもZ軸方向における移動速度の方が遅くなっている。
すなわち、STEP12〜STEP14の処理によって、第1アバターA1の座標は第1プレイヤーP1の座標の移動とは独立して移動し、第1プレイヤーP1の現実空間RSにおける座標と第1アバターA1の仮想空間VSにおける座標との対応関係にズレが生じることになる。
そして、その対応関係のズレに応じて、プレイヤーPの認識している仮想空間VSの画像が変化する。
具体的には、第1プレイヤーP1の認識する仮想空間VSの画像では、第2アバターA2の画像は、第1アバターA1と第2アバターA2の相対座標の変化に基づいて、その大きさ、角度、姿勢等が変化する。また、第2アバターA2以外の画像は、第1アバターA1の座標の移動に基づいて、その大きさ、角度等が変化する。
また、第2プレイヤーP2の認識する仮想空間VSの画像では、移動体であるエレベータVS1の画像は、エレベータVS1の移動に基づいて、その大きさ、角度等が変化する。また、第1アバターA1の画像は、エレベータVS1の移動に伴う第1アバターA1と第2アバターA2の相対座標の変化基づいて、その大きさ、角度、姿勢等が変化する。また、エレベータVS1及び第1アバターA1以外の画像は変化しない。
また、仮想空間VSの音声(例えば、他のプレイヤーの声に基づいて決定されるアバターの声や、移動体から発生する音)も、仮想空間VSの画像と同様に、第1アバターA1がエレベータVS1とともに移動に応じて変化する。
そして、プレイヤーPは、仮想空間VSの画像及び音声の変化を介して、その対応関係のズレを認識することによって、現実空間RSよりも拡張された仮想空間VSを認識する。具体的には、プレイヤーPは、第1アバターA1がX軸方向及びZ軸方向に移動したことによって、第1アバターA1がそのように移動できるほど、仮想空間VSがX軸方向及びZ軸方向に現実空間RSよりも拡張されていると認識する。
また、第1段階におけるトリガーイベントは、第1アバターA1と移動体であるエレベータVS1に乗りこんだ(接続した)状態で、第1アバターA1がマークVS1aの上に立つように第1プレイヤーP1が移動することとなっている。
すなわち、対応関係にズレを生じさせるための第1アバターA1の座標の移動は、移動体であるエレベータVS1の移動が第1アバターA1の座標に影響することを、プレイヤーPが予測し得る状態で発生する。
この予測によって、プレイヤーPは、第1プレイヤーP1の現実空間RSにおける座標と第1アバターA1の仮想空間VSにおける座標との対応関係のズレを違和感なく受け入れることができる。
ところで、上記したように、エレベータVS1の移動に伴って生じる第1アバターA1の座標の移動速度は、X軸方向における移動速度よりもZ軸方向における移動速度の方が遅くなっている。
これにより、対応関係のズレは、X軸方向において大きく、Z軸方向において小さくなっている。その結果、プレイヤーPは、現実空間RSに対して、X軸方向において、第2アバターA2から第1アバターA1が離れる方向に大きく拡張し、Z軸方向において、X軸方向における拡張の度合いよりも小さく拡張した仮想空間VSを認識する。
また、対応関係にズレを生じさせるための第1アバターA1の座標のX方向における移動とZ軸方向における移動は、同時に行われている。これにより、対応関係にズレを生じさせる過程の時間(すなわち、プレイヤーPが違和感を覚えやすい時間)が集中している。その結果、プレイヤーPは、頻繁に違和感を覚えることがなくなっている。
次に、図2、図9〜図12を参照して、仮想空間体感システムSがゲームの第2段階で実行する処理について説明する。この第2段階では、仮想空間VSの状態が図11Bに示す状態となること(すなわち、第2アバターA2がボタンVS4を押す動作を行うこと)がトリガーイベントの発生に該当する。
この第2段階においては、まず、サーバ3のアバター座標決定部34が、第1アバターA1が移動体に接続したか否かを判定する(図9/STEP21)。
具体的には、アバター座標決定部34が、仮想空間VSで、第1プレイヤーP1に対応する第1アバターA1の座標が移動体である崩れそうな床VS2の上に移動するように(図10B参照)、現実空間RSで、第1プレイヤーP1の座標がY軸方向に移動したか否か(図10A参照)を判定する。
第2段階では、床VS2は移動体であるので、第1プレイヤーP1及び第2プレイヤーP2は、第1アバターA1が床VS2の上に移動したことを認識することによって、第1アバターA1が移動体と接続したと認識することになる。
このSTEP21の判定は、第1アバターA1が移動体に接続した(床VS2の上に移動した)と判定されるまで(STEP21でNOとなるたびに)、所定の周期で繰り返される。
第1アバターA1が移動体に接続した場合(STEP21でYESの場合)には、サーバ3のトリガーイベント認識部33が、第2プレイヤーP2の動作に基づくトリガーイベントの発生を認識したか否かを判定する(図9/STEP22)。
具体的には、トリガーイベント認識部33は、仮想空間VSで、第2プレイヤーP2に対応する第2アバターA2がボタンVS4近傍の位置でそのボタンVS4に触れる姿勢となるように(図10B参照)、現実空間RSで、第2プレイヤーP2がY軸方向に移動して所定の姿勢となったか否か(図10A参照)を判定する。
そして、第2プレイヤーP2の座標が所定の位置まで移動して、第2プレイヤーP2の姿勢が所定の姿勢となったときには、トリガーイベント認識部33は、第2プレイヤーP2の動作に基づいたトリガーイベントが発生したと認識する。
トリガーイベントの発生が認識された場合(STEP22でYESの場合)には、サーバ3のアバター座標決定部34が、床VS2の崩落(すなわち、移動体の移動)に伴って、床VS2に立っていた第1アバターA1の座標を移動する(図9/STEP23)。
具体的には、アバター座標決定部34が、第2プレイヤーP2の動作に基づいたトリガーイベントの発生をトリガーとして、第1アバターA1の座標のみを所定方向に所定量移動させる。
次に、サーバ3の仮想空間画像決定部35及び仮想空間音声決定部36は、移動後の第1アバターA1の座標に基づいて、プレイヤーPに認識させる仮想空間の画像及び音声を決定する(図9/STEP24)。
次に、プレイヤーPの装着しているHMD4が、モニタ41に決定された画像を表示し、スピーカ42に音声を発生する(図9/STEP25)。
STEP25の処理を実行した後、又は、トリガーイベントの発生が認識されなかった場合(STEP22でNOの場合)には、仮想空間体感システムSは、今回の処理を終了する。
上記のSTEP23〜STEP25の処理中、現実空間RSでは、第1アバターA1に対応する第1プレイヤーP1の座標は、第2段階開始時(図10A)、第2段階進行時(図11A)及び第2段階終了時(図12A)において、移動していない。
一方、仮想空間VSでは、第1プレイヤーP1に対応する第1アバターA1の座標は、第2段階開始時(図10B)、第2段階進行時(図11B)及び第2段階終了時(図12B)において、移動体である床VS2の崩落に伴って、Z軸方向において下方向に移動する。
すなわち、STEP23〜STEP25の処理によって、第1アバターA1の座標は第1プレイヤーP1の座標の移動とは独立して移動し、第1プレイヤーP1の現実空間RSにおける座標と第1アバターA1の仮想空間VSにおける座標との対応関係にズレが生じることになる。
このとき、第1段階において対応関係にズレが生じた際の処理(STEP12〜STEP14)と同様に、プレイヤーPの認識している仮想空間VSの画像が変化する。
そして、プレイヤーPは、仮想空間VSの画像及び音声の変化を介して、その対応関係のズレを認識することによって、仮想空間VSは現実空間RSよりも拡張されていると認識する。具体的には、プレイヤーPは、第1アバターA1がZ軸方向下向きに移動したことによって、第1アバターA1がそのように移動できるほど、仮想空間VSがZ軸方向下向きに現実空間RSよりも拡張されていると認識する。
また、第2段階のトリガーイベント(第2アバターA2がボタンVS4を押す動作。STEP22の処理)は、第1アバターA1が移動体である崩れそうな床VS2の上に立った(接続した)状態(STEP21の処理)を前提としている。
すなわち、対応関係にズレを生じさせるための第1アバターA1の座標の移動は、移動体である床VS2bの崩落(変化)が第1アバターA1の座標に影響することを、プレイヤーPが予測し得る状態で発生する。
この予測によって、プレイヤーPは、第1プレイヤーP1の現実空間RSにおける座標と第1アバターA1の仮想空間VSにおける座標との対応関係のズレを違和感なく受け入れることができる。
ところで、第2段階におけるトリガーイベントは、移動する第1アバターA1が床VS2の上に移動したことではなく、第2アバターA2がボタンVS4を押す動作を行うこととなっている。すなわち、対応関係にズレを生じさせるために座標が移動するアバターと、トリガーイベントを発生させるアバターとが一致していない。
しかし、そのように一致していない場合であっても、第1プレイヤーP1及び第2プレイヤーP2のいずれにも、現実空間RSよりも拡張された仮想空間VSを認識させることができる。
次に、図2、図13〜図16を参照して、仮想空間体感システムSがゲームの第3段階で実行する処理について説明する。この第3段階では、仮想空間VSの状態が図14Bに示す状態となること(すなわち、第1アバターA1が、ジャンプ台VS3の上に移動すること)がトリガーイベントの発生に該当する。
この第3段階においては、まず、サーバ3のトリガーイベント認識部33が、第1プレイヤーP1の動作に基づくトリガーイベントの発生を認識したか否かを判定する(図13/STEP31)。
具体的には、トリガーイベント認識部33は、仮想空間VSで、第1プレイヤーP1に対応する第1アバターA1がジャンプ台VS3の上に移動するように(図14B参照)、現実空間RSで、第1プレイヤーP1がY軸方向に移動したか否か(図14A参照)を判定する。
そして、第1プレイヤーP1の座標が所定の位置に位置したときには、トリガーイベント認識部33が、トリガーイベントが発生したと認識する。
このとき、ジャンプ台VS3は移動体であるので、第1プレイヤーP1及び第2プレイヤーP2は、第1プレイヤーに対応する第1アバターA1が移動体と接続したと認識することになる。
トリガーイベントの発生が認識された場合(STEP31でYESの場合)には、サーバ3のアバター座標決定部34が、移動体による移動の対象となる第1アバターA1の座標の所定方向の移動速度を、所定範囲において変更する(図13/STEP32)。
具体的には、アバター座標決定部34が、第1プレイヤーP1の座標の移動速度に対する第1アバターA1の座標の移動速度を、ジャンプ台VS3の上方となる範囲のみにおいて、Z軸方向上向きのみ大きくなるように変更する。
次に、第1プレイヤーP1の座標の移動に伴って、第1アバターA1の座標を移動させる(図13/STEP33)。
次に、サーバ3の仮想空間画像決定部35及び仮想空間音声決定部36は、移動後の第1アバターA1の座標に基づいて、プレイヤーPに認識させる仮想空間の画像及び音声を決定する(図13/STEP34)。
次に、プレイヤーPの装着しているHMD4が、モニタ41に決定された画像を表示し、スピーカ42に音声を発生する(図13/STEP35)。
STEP35の処理を実行した後、又は、トリガーイベントの発生が認識されなかった場合(STEP31でNOの場合)には、仮想空間体感システムSは、今回の処理を終了する。
上記のSTEP32〜STEP35の処理中、現実空間RSでは、第1アバターA1に対応する第1プレイヤーP1の座標は、第3段階開始時(図14A)から第3段階進行時(図15A)において、Y軸方向前向き且つZ軸方向上向きに移動し、第3段階進行時(図15A)から第3段階終了時(図16A)において、Y軸方向前向き且つZ軸方向下向きに移動する。
一方、仮想空間VSでは、第1プレイヤーP1に対応する第1アバターA1の座標も、第3段階開始時(図14B)から第3段階進行時(図15B)において、Y軸方向前向き且つZ軸方向上向きに移動し、第3段階進行時(図15B)から第3段階終了時(図16B)において、Y軸方向前向き且つZ軸方向下向きに移動する。
しかし、第3段階開始時(図14B)から第3段階進行時(図15B)における第1アバターA1の座標は、移動速度を変更させる範囲(STEP32の処理の対象となる範囲)であるジャンプ台VS3の上となる範囲であるので、Z軸方向上向きの移動のみ他の方向の移動よりも、大きくなっている(すなわち、第1プレイヤーP1の座標の移動量に対する第1アバターA1の座標の移動量を変化させている。)。
その結果、着地した際(第3段階終了時(図16B))には、Z軸方向において、第1プレイヤーP1の現実空間における座標と第1アバターA1の仮想空間における座標との対応関係にズレが生じることになる。具体的には、現実空間RSでは、第1プレイヤーP1は平坦な地面で前方にジャンプしたに過ぎないが、仮想空間VSでは、第1プレイヤーP1に対応する第1アバターA1が、低い位置から高い段差を飛び乗ったことになる。
このとき、第1段階及び第2段階において対応関係にズレが生じた際の処理(STEP12〜STEP14、STEP23〜STEP25)と同様に、プレイヤーPの認識している仮想空間VSの画像が変化する。
そして、プレイヤーPは、仮想空間VSの画像及び音声の変化を介して、その対応関係のズレを認識することによって、現実空間RSよりも拡張された仮想空間VSを認識する。具体的には、プレイヤーPは、第1アバターA1が段差を飛び乗るように移動したことによって、所定の範囲(ジャンプ台VS3の存在している範囲)で、仮想空間VSがZ軸方向下向きに現実空間RSよりも拡張されていると認識する。
また、第3段階におけるトリガーイベントは、第1アバターA1と移動体であるジャンプ台VS3の上に立つように第1プレイヤーP1が移動することとなっている。
すなわち、対応関係にズレを生じさせるための第1アバターA1の座標の移動は、移動体であるジャンプ台VS3が第1アバターA1の座標に影響することを、プレイヤーPが予測し得る状態で発生する。
この予測によって、プレイヤーPは、第1プレイヤーP1の現実空間RSにおける座標と第1アバターA1の仮想空間VSにおける座標との対応関係のズレを違和感なく受け入れることができる。
ところで、第3段階においては、対応関係にズレを生じさせるための第1アバターA1の座標の移動は、ジャンプ(すなわち、上昇とその上昇の直後の下降とを含む往復運動)となっている。
これにより、対応関係にズレを生じさせる過程の時間(すなわち、プレイヤーPが違和感を覚えやすい時間)が集中している。その結果、プレイヤーPが、頻繁に違和感を覚えることがなくなっている。また、往復運動を介して対応関係にズレを生じさせているので、プレイヤーPが、ズレが生じている過程を認識しにくくなっている。
以上説明したように、仮想空間体感システムSによれば、第1プレイヤーP1の現実空間RSにおける座標と第1アバターA1の仮想空間VSにおける座標との対応関係をずらすための補正を、第1プレイヤーP1及び第2プレイヤーP2に予測させることができるので、第1プレイヤーP1及び第2プレイヤーP2が覚える違和感を抑えつつ、現実空間よりも拡張された仮想空間をプレイヤーに認識させることができる。
以上、図示の実施形態について説明したが、本発明はこのような形態に限られるものではない。
例えば、上記実施形態においては、現実空間RSに第1プレイヤーP1及び第2プレイヤーP2が存在し、仮想空間VSに第1プレイヤーP1に対応する第1アバターA1及び第2プレイヤーP2に対応する第2アバターA2が存在している。しかし、本発明の仮想空間認識システムは、2人のプレイヤーにのみ対応するものではなく、プレイヤーの数は3人以上でもよい。
また、上記実施形態では、仮想空間音声発生器であるHMD4のスピーカ42で発生する音声は、サーバ3の仮想空間音声決定部36によって決定されている。しかし、本発明の仮想空間体感システムでは、仮想空間音声決定部及び仮想空間音声発生器を省略して、音声についての処理を省略してもよい。
また、上記実施形態では、仮想空間VSを現実空間RSよりもX軸方向及びZ軸方向において拡張している。しかし、本発明の仮想空間体感システムにおける仮想空間は、このようなものに限定されるものではなく、いずれの方向に対しても、現実空間よりも拡張させてもよい。
また、上記実施形態では、第1アバターA1の所定位置への移動や第2アバターA2の所定位置における所定動作をトリガーイベントとしている。しかし、本発明の仮想空間体感システムにおけるトリガーイベントは、このようなものに限定されるものではない。
例えば、仮想空間で川を流れる丸太にアバターを飛び乗らせて、丸太とともにアバターを移動させて対応関係にズレを生じさせる場合には、川を流れる丸太に飛び乗るという動作が、アバターと移動体の接続及びトリガーイベントの発生を認識させるための動作となる。
また、上記実施形態では、対応関係にズレを生じさせるためのアバターの座標の補正として、第1段階では、所定期間、移動体であるエレベータVS1をX軸方向及びZ軸方向上側に移動させている。また、第2段階では、第1アバターA1がZ軸方向の所定の位置(低くなっている床)に到達するまで、Z軸方向下向きに移動させている。また、第3段階では、第3段階では、移動体であるジャンプ台VS3の上方の範囲のみで移動量の補正を行っている。
しかし、本発明の仮想空間体感システムのアバターの座標の補正は、そのような期間及び範囲に限定されるものではなく、プレイヤーの現実空間における座標とアバターの仮想空間における座標との対応関係にズレを生じさせる補正であればよい。そのため、補正の範囲や期間は、仮想空間を拡張する方向及び拡張する量に応じて、適宜変更してよい。