以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
1.シミュレーションシステム
図1、図2、図3は、本実施形態のシミュレーションシステム(シミュレータ、ゲームシステム、画像生成システム)の構成例を示すブロック図である。本実施形態のシミュレーションシステムはMR(Mixed Reality)やAR(Augmented Reality)などを実現するものであり、ゲームコンテンツを提供するゲームシステムなどの種々のシステムに適用可能である。なお、本実施形態のシミュレーションシステムは図1の構成に限定されず、その構成要素(各部)の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
図1では、処理装置10と処理装置20が例えばネットワーク510を介して通信接続されている。ネットワーク510は無線LAN、有線LAN又はインターネット等を利用した通信路である。ネットワーク510での通信方法については有線/無線を問わない。
処理装置10(第1処理装置)は、例えばユーザが装着する図4、図5のHMD200の表示画像を生成する。処理装置20(第2処理装置)は、例えば観客用の第2表示部390の表示画像を生成する。図2、図3に示すように、処理装置10は、通信部196を介してネットワーク510に通信接続され、処理装置20は、通信部396を介してネットワーク510に通信接続される。
図2は処理装置10の詳細な構成例である。処理装置10の処理は、一例としてはHMD200により実現することができる。
操作部160(操作インターフェース)は、ユーザ(プレーヤ)が種々の操作情報(入力情報)を入力するためのものである。操作部160は、例えば操作ボタン、方向指示キー、ジョイスティック、レバー又は音声入力装置等の種々の操作デバイスにより実現できる。
記憶部170は各種の情報を記憶する。記憶部170は、処理部100や通信部196などのワーク領域として機能する。ゲームプログラムや、ゲームプログラムの実行に必要なゲームデータは、この記憶部170に保持される。記憶部170の機能は、半導体メモリ(DRAM、VRAM)、HDD(ハードディスクドライブ)、SSD、光ディスク装置などにより実現できる。記憶部170は、仮想空間情報記憶部172、描画バッファ178を含む。
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(DVD、BD、CD)、HDD、或いは半導体メモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータ(入力装置、処理部、記憶部、出力部を備える装置)を機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
表示部190は、LCD、有機ELディスプレイ、或いはCRTなどにより実現できる。表示部190は、例えば後述の図4、図5のHMD200(頭部装着型表示装置)のディスプレイ(表示装置)である。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ又はヘッドホンなどにより実現できる。
通信部196(通信インターフェース)は、有線や無線のネットワークを介して外部(他の装置)との間で通信を行うものであり、その機能は、通信用ASIC又は通信用プロセッサなどのハードウェアや、通信用ファームウェアにより実現できる。
なお本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、サーバ(ホスト装置)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(あるいは記憶部170)に配信してもよい。このようなサーバ(ホスト装置)による情報記憶媒体の使用も本発明の範囲内に含めることができる。
処理部100(プロセッサ)は、操作部160からの操作情報や、図4、図5のHMD200のトラッキング情報(HMDの位置及び方向の少なくとも一方の情報。視点位置及び視線方向の少なくとも一方の情報)や、プログラムなどに基づいて、情報取得処理、移動体処理、ゲーム処理(シミュレーション処理)、仮想空間設定処理、仮想カメラ制御処理、表示処理、或いは音処理などを行う。
処理装置10の処理部100や処理装置20の処理部300の各部が行う本実施形態の各処理(各機能)は、プロセッサ(ハードウェアを含むプロセッサ)により実現できる。例えば本実施形態の各処理は、プログラム等の情報に基づき動作するプロセッサと、プログラム等の情報を記憶するメモリにより実現できる。プロセッサは、例えば各部の機能が個別のハードウェアで実現されてもよいし、或いは各部の機能が一体のハードウェアで実現されてもよい。例えば、プロセッサはハードウェアを含み、そのハードウェアは、デジタル信号を処理する回路及びアナログ信号を処理する回路の少なくとも一方を含むことができる。例えば、プロセッサは、回路基板に実装された1又は複数の回路装置(例えばIC等)や、1又は複数の回路素子(例えば抵抗、キャパシター等)で構成することもできる。プロセッサは、例えばCPU(Central Processing Unit)であってもよい。但し、プロセッサはCPUに限定されるものではなく、GPU(Graphics Processing Unit)、或いはDSP(Digital Signal Processor)等、各種のプロセッサを用いることが可能である。またプロセッサはASICによるハードウェア回路であってもよい。またプロセッサは、アナログ信号を処理するアンプ回路やフィルター回路等を含んでもよい。メモリ(記憶部170、記憶部370)は、SRAM、DRAM等の半導体メモリであってもよいし、レジスターであってもよい。或いはハードディスク装置(HDD)等の磁気記憶装置であってもよいし、光学ディスク装置等の光学式記憶装置であってもよい。例えば、メモリはコンピュータにより読み取り可能な命令を格納しており、当該命令がプロセッサにより実行されることで、処理部100の各部の処理(機能)が実現されることになる。ここでの命令は、プログラムを構成する命令セットでもよいし、プロセッサのハードウェア回路に対して動作を指示する命令であってもよい。
処理部100は、情報取得部102、移動体処理部104、ゲーム処理部106、仮想空間設定部108、仮想カメラ制御部110、表示処理部120、音処理部130を含む。上述したように、これらの各部により実行される本実施形態の各処理は、プロセッサ(或いはプロセッサ及びメモリ)により実現できる。例えばこれらの各部の各処理は、各処理を実行するためのプログラムモジュールとプロセッサとにより実現される。なお、これらの構成要素(各部)の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
情報取得部102は各種の情報の取得処理を行う。情報取得部102は、例えば仮想空間更新情報を取得する。仮想空間更新情報は、仮想空間情報を更新するための情報である。この仮想空間更新情報は、例えばユーザの位置情報を含むユーザ情報などである。ユーザ情報は、ユーザの位置情報(視点位置情報)の他に、ユーザの方向情報(視線方向情報)や姿勢情報(動き情報)を含むことができる。
移動体処理部104は、仮想空間内で移動する移動体についての種々の処理を行う。例えば仮想空間(オブジェクト空間、ゲーム空間)において移動体を移動させる処理や、移動体を動作させる処理を行う。例えば移動体処理部104は、操作部160によりユーザが入力した操作情報や、取得されたトラッキング情報や、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、移動体(モデルオブジェクト)を仮想空間内で移動させたり、移動体を動作(モーション、アニメーション)させる制御処理を行う。具体的には、移動体の移動情報(位置、回転角度、速度、或いは加速度)や動作情報(パーツオブジェクトの位置、或いは回転角度)を、1フレーム(例えば1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、移動体の移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。移動体は、例えば実空間のユーザ(プレーヤ)に対応するユーザキャラクタ(ユーザ移動体)や、ゲームに登場する他のキャラクタなどである。他のキャラクタは、例えばユーザキャラクタの対戦相手や協力相手となるキャラクタなどである。
ゲーム処理部106は、ユーザがゲームをプレイするための種々のゲーム処理を行う。別の言い方をすれば、ゲーム処理部106(シミュレーション処理部)は、ユーザがMR(Mixed Reality)、AR(Augmented Reality)、又はVR(Virtual Reality)などを体験するための種々のシミュレーション処理を実行する。ゲーム処理は、例えば、ゲーム開始条件が満たされた場合にゲームを開始する処理、開始したゲームを進行させる処理、ゲーム終了条件が満たされた場合にゲームを終了する処理、或いはゲーム成績を演算する処理などである。
仮想空間設定部108は、オブジェクトが配置される仮想空間(オブジェクト空間)の設定処理を行う。例えば、移動体(人、ロボット、車、電車、飛行機、船、モンスター又は動物等)、マップ(地形)、建物、観客席、コース(道路)、樹木、壁、水面などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト)を仮想空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。具体的には、記憶部170の仮想空間情報記憶部172には、仮想空間でのオブジェクト(パーツオブジェクト)の位置、回転角度、移動速度又は移動方向等の情報であるオブジェクト情報がオブジェクト番号に対応づけて記憶される。即ち、オブジェクト情報が仮想空間情報として仮想空間情報記憶部172に記憶される。仮想空間設定部108は、例えば各フレーム毎に、仮想空間情報であるオブジェクト情報の更新処理を行う。
仮想カメラ制御部110は、仮想カメラの制御を行う。例えば、操作部160により入力されたユーザの操作情報やトラッキング情報などに基づいて、仮想カメラを制御する処理を行う。
例えば仮想カメラ制御部110は、ユーザの一人称視点又は三人称視点として設定される仮想カメラの制御を行う。例えば仮想空間において移動するユーザキャラクタの視点(一人称視点)に対応する位置に、仮想カメラを設定して、仮想カメラの視点位置や視線方向を設定することで、仮想カメラの位置(位置座標)や姿勢(回転軸回りでの回転角度)を制御する。或いは、ユーザキャラクタに追従する視点(三人称視点)の位置に、仮想カメラを設定して、仮想カメラの視点位置や視線方向を設定することで、仮想カメラの位置や姿勢を制御する。
例えば仮想カメラ制御部110は、視点トラッキングにより取得されたユーザの視点情報のトラッキング情報に基づいて、ユーザの視点変化に追従するように仮想カメラを制御する。例えば本実施形態では、ユーザの視点位置、視線方向の少なくとも1つである視点情報のトラッキング情報(視点トラッキング情報)が取得される。このトラッキング情報は、例えばHMD200のトラッキング処理により取得できる。そして仮想カメラ制御部110は、取得されたトラッキング情報(ユーザの視点位置及び視線方向の少なくとも一方の情報)に基づいて仮想カメラの視点位置、視線方向を変化させる。例えば、仮想カメラ制御部110は、実空間でのユーザの視点位置、視線方向の変化に応じて、仮想空間での仮想カメラの視点位置、視線方向(位置、姿勢)が変化するように、仮想カメラを設定する。このようにすることで、ユーザの視点情報のトラッキング情報に基づいて、ユーザの視点変化に追従するように仮想カメラを制御できる。
表示処理部120は、仮想空間画像(ゲーム画像、シミュレーション画像)の表示処理を行う。例えば処理部100で行われる種々の処理(ゲーム処理、シミュレーション処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に表示する。具体的には、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、透視変換、或いは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ(プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)が作成される。そして、この描画データ(プリミティブ面データ)に基づいて、透視変換後(ジオメトリ処理後)のオブジェクト(1又は複数プリミティブ面)を、描画バッファ178(フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファ)に描画する。これにより、仮想空間において仮想カメラ(所与の視点。左眼用、右眼用の第1、第2の視点)から見える画像が生成される。なお、表示処理部120で行われる描画処理は、頂点シェーダ処理やピクセルシェーダ処理等により実現することができる。
音処理部130(音処理のプログラムモジュール)は、処理部100で行われる種々の処理の結果に基づいて音処理を行う。具体的には、楽曲(音楽、BGM)、効果音、又は音声などのゲーム音を生成し、ゲーム音を音出力部192に出力させる。
図3に処理装置20の構成例を示す。この処理装置20は、一例としては、シミュレーションシステムが運営される施設に設置される情報処理装置(PC等)により実現することができる。
撮影部342(撮影装置)は実空間を撮影するものであり、例えば実空間のプレイフィールドを撮影する。撮影部342は例えばRGBカメラなどにより実現できる。デプス情報取得部344(デプス情報取得装置)は実空間の物体のデプス情報(デプス値、Z値)を取得するものであり、例えば撮影部342の撮影位置から見た実空間の物体のデプス情報を取得する。デプス情報取得部344は例えばデプスカメラ(デプスセンサ)などにより実現できる。なお撮影部342とデプス情報取得部344を、例えばRGBカメラ、デプスカメラなどが設けられた1つの装置により実現してもよい。
また位置情報取得部345は、実空間の物体の位置情報を取得する。例えば位置情報取得部345は、仮想空間のワールド座標系に対応して設定された実空間の座標系での物体の位置情報(例えばX、Y、Z座標)を取得する。或いは位置情報取得部345は、撮像部342の位置を基準とした座標系(例えばカメラ座標系)での物体の位置情報を取得してもよい。位置情報取得部345は、例えばRGBカメラ、デプスカメラ、環境認識カメラ、位置検出センサ又は測距センサ等の各種のカメラやセンサにより実現できる。
操作部360(操作インターフェース)は、施設のオペレータ等が種々の操作情報を入力するためのものであり、例えばキーボード、マウス又はタッチパネル型ディスプレイなどにより実現できる。記憶部370は各種の情報を記憶するものであり、処理部300や通信部396などのワーク領域として機能する。記憶部370の機能は、半導体メモリ、HDD、SSD、光ディスク装置などにより実現できる。記憶部370は、仮想空間情報記憶部372、描画バッファ378を含む。情報記憶媒体380は、プログラムやデータなどを格納するものである。
第2表示部390は、LCD、有機ELディスプレイ、投影型ディプレイ、或いはCRTなどにより実現できる。第2表示部390は、例えば観客用の表示部である。音出力部392は例えばスピーカ又はヘッドホンなどにより実現できる。通信部396(通信インターフェース)は、有線や無線のネットワークを介して外部(他の装置)との間で通信を行うものである。
処理部300(プロセッサ)は、情報取得部302、仮想空間設定部308、仮想カメラ制御部310、画像合成部320、音処理部330を含む。前記したように、これらの各部により実行される本実施形態の各処理は、プロセッサ(或いはプロセッサ及びメモリ)により実現できる。なお、これらの構成要素(各部)の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
情報取得部302は各種の情報の取得処理を行う。情報取得部302は、例えば仮想空間更新情報を取得する。仮想空間更新情報は、ユーザの位置情報を含むユーザ情報などである。仮想空間設定部308は、処理装置10の仮想空間設定部108と同様の処理により、オブジェクトが配置される仮想空間の設定処理を行う。仮想カメラ制御部310は、処理装置10の仮想カメラ制御部310と同様の処理により、仮想カメラの制御を行う。例えば撮影部342に対応する第2仮想カメラの制御を行う。画像合成部320は、撮影部342の撮影画像と仮想空間画像の合成処理を行う。音処理部330は、処理部300で行われる種々の処理の結果に基づいて音処理を行う。
そして本実施形態のシミュレーションシステムは、図1、図2、図3に示すように、表示処理部120と、情報取得部302と、画像合成部320を含む。例えば表示処理部120は、図2の処理装置10に設けられ、情報取得部302と画像合成部320は、図3の処理装置20に設けられる。但し、これらの表示処理部120、情報取得部302、画像合成部320を1つの処理装置に設けて、本実施形態のシミュレーションシステムを実現してもよい。
表示処理部120は、仮想空間を設定する仮想空間情報に基づいて、実空間のユーザの視点に対応する仮想空間の第1仮想カメラから見える第1仮想空間画像を生成する。そして、生成された第1仮想空間画像をユーザ用の表示部190に表示する処理を行う。
仮想空間情報は、仮想空間を設定するための情報であり、オブジェクト情報を含む。オブジェクト情報は、仮想空間に配置されたり仮想空間を構成するオブジェクトの位置情報、方向情報及び状態情報の少なくとも1つを含む情報である。仮想空間のオブジェクトは、例えば仮想空間の移動体、マップ又は背景物などのオブジェクトである。例えば仮想空間は、仮想空間更新情報により更新される仮想空間情報に基づき設定される。処理装置10での仮想空間の設定処理は、仮想空間設定部108により行われる。そして表示処理部120は、仮想空間情報により設定された仮想空間において、仮想空間の第1仮想カメラから見える第1仮想空間画像を生成する。第1仮想カメラは、実空間のユーザの視点に対応しており、実空間のユーザの視点変化に追従するように制御される。例えば実空間のユーザの視点位置、視線方向が変化すると、それに追従して第1仮想カメラの視点位置、視線方向も変化する。処理装置10での第1仮想カメラの制御は、仮想カメラ制御部110により行われる。そして表示処理部120は、ユーザの視点(ユーザキャラクタの視点)に対応する第1仮想カメラから見える第1仮想空間画像を生成し、生成された第1仮想空間画像をユーザ用の表示部190に表示する処理を行う。例えば後述する図13の表示領域ARVに第1仮想空間画像を表示する処理を行う。
情報取得部302は、実空間を撮影する撮影部342からの撮影画像と、実空間の物体のデプス情報を取得するデプス情報取得部344からのデプス情報を取得する。例えば処理装置20が、撮影部342からの撮影画像と、デプス情報取得部344からのデプス情報を受信することで、撮影画像とデプス情報が取得される。そして画像合成部320は、仮想空間情報に基づいて、撮影部342に対応する仮想空間の第2仮想カメラから見える第2仮想空間画像を生成する。そして画像合成部320は、第2仮想空間画像のオブジェクトのデプス情報と実空間の物体のデプス情報とに基づく隠面消去処理を行いながら、第2仮想空間画像と撮影画像の合成画像を生成する。
ここで第2の仮想空間画像のオブジェクトは、例えば第2仮想空間画像に映るオブジェクトである。例えば第2の仮想空間画像のオブジェクトは、仮想空間に配置されたり、仮想空間のマップ等を構成するオブジェクトである。
また実空間の物体は、例えば実空間のユーザである。例えば実空間に位置したり、移動するユーザである。或いは実空間の物体は、ユーザの所持物であってもよい。例えば物体は、ユーザが所持する武器、防具又はアイテム等の所持物であってもよい。或いは物体は実空間の移動物であってもよい。例えば物体は、ユーザが搭乗する移動物(ライド機器、ロボット等)や、ユーザの対戦相手となる移動物や、或いはプレイフィールド上で移動する移動物であってもよい。或いは物体は実空間の配置物であってもよい。例えば物体は、実空間に配置されるアイテム、宝箱、武器、防具、家具、電化製品又は装飾品等の配置物であってもよい。
例えば処理装置20での仮想空間の設定処理は、仮想空間設定部308により行われる。仮想空間設定部308は、仮想空間更新情報により更新される仮想空間情報に基づいて、移動体、マップ又は背景物などのオブジェクトが配置される仮想空間の設定処理を行う。そして画像合成部320は、仮想空間情報により設定された仮想空間において、第2仮想カメラから見える第2仮想空間画像を生成する。第2仮想カメラは、実空間の撮影部342に対応しており、実空間の撮影部342に対応するように設定される。例えば実空間の撮影部342の撮影位置に対応する位置に第2仮想カメラが配置され、撮影部342の撮影方向に対応する方向に、第2仮想カメラの視線方向が設定される。そして画像合成部320は、第2仮想空間画像のオブジェクトのデプス情報(デプス値)と実空間の物体のデプス情報(デプス値)とを用いた隠面消去処理であるZテストの処理により、第2仮想空間画像と撮影画像の合成画像を生成する。例えば描画対象となる画素において、第2仮想空間画像のオブジェクトの方が撮影画像に映る物体よりも第2仮想カメラから見て手前側にあるとデプス情報に基づき判断された場合には、合成画像での当該画素の画素値は、第2仮想空間画像のオブジェクトの画素値に設定される。また描画対象となる画素において、撮影画像に映る物体の方が第2仮想空間画像のオブジェクトよりも第2仮想カメラから見て手前側にあるとデプス情報に基づき判断された場合には、合成画像での当該画素の画素値は、撮影画像の画素値に設定される。これにより、仮想空間において第2仮想カメラから見える画像である第2仮想空間画像と、実空間において撮影部342から見える画像である撮影画像とを、適正に隠面消去しながら合成して、合成画像を生成できるようになる。そして生成された合成画像は、第2表示部390に表示される。なお後述するように、合成画像を表示部190に表示してもよい。例えば表示部190の画面の一部(サブ画面)に合成画像を表示する。
具体的には画像合成部320は、第2仮想カメラにおけるデプス値(オブジェクトのデプス値)が各画素に設定される第2仮想空間画像と、実空間の物体のデプス情報に基づくデプス値が各画素に設定される撮影画像とを、画素毎に隠面消去処理を行いながら合成することで、合成画像を生成する。例えば第2仮想空間画像では、デプス値が各画素に設定される。例えば第2仮想カメラから見て手前側ではデプス値(Z値)が小さくなり、第2仮想カメラから見て奥側ではデプス値(Z値)が大きくなるように、第2仮想空間画像の各画素のデプス値が設定される。またデプス情報取得部344により取得されたデプス情報のデプス値が、撮影画像の各画素に設定される。例えば撮影部342から見て手前側ではデプス値(Z値)が小さくなり、撮影部342から見て奥側ではデプス値(Z値)が大きくなるように、撮影画像の各画素のデプス値が設定される。そして、第2仮想空間画像の各画素に設定されるデプス値と、撮影画像の各画素に設定されるデプス値を比較するZテストによる隠面消去処理を行いながら、第2仮想空間画像と撮影画像を合成して、合成画像を生成する。例えば第2仮想空間画像のオブジェクトの方が撮影画像に映る物体よりも手前側にあるとデプス値に基づき判断される画素に対しては、第2仮想空間画像の画素値(RGB値)を設定する。一方、撮影画像に映る物体の方が第2仮想空間画像のオブジェクトよりも手前側にあるとデプス値に基づき判断される画素に対しては、撮影画像の画素値(RGB値)を設定する。これにより、これらの画素により構成される合成画像が生成される。このような画素毎に隠面消去処理は、少ない処理負荷で実現できるため、リアルタイムな合成画像の生成が可能になる。
また画像合成部320は、第2仮想空間画像と撮影画像の合成画像を、観客用の第2表示部390に表示する処理を行う。即ち、第2仮想空間画像と撮影画像の合成画像が、ギャラリー画像として、観客用の第2表示部390に表示される。観客用の第2表示部390は、観客が見るのに適切な位置に配置され、ユーザ用の表示部190に比べて例えば画面サイズの大きなディスプレイにより実現される。
また表示処理部120は、第2仮想空間画像と撮影画像の合成画像を、ユーザ用の表示部190に表示する処理を行ってもよい。例えば画像合成部320で生成された第2仮想空間画像と撮影画像の合成画像が、処理装置20から処理装置10に送られ、当該合成画像が表示部190に表示される。即ち図4、図5のHMD200の表示部190に表示される。この場合に、表示部190では、第1仮想空間画像に重畳するように合成画像が表示される。即ち、前述したようにユーザの視点に対応する第1仮想カメラからみえる第1仮想空間画像が表示部190に表示されるが、この第1仮想空間画像に対して、合成画像が、例えばPinP(ピクチャー・イン・ピクチャー)の画像として表示される。一例としては、各ユーザが自身の周囲の状況を俯瞰するためのレーダー画像等として、第2仮想空間画像と撮影画像の合成画像が用いられる。
また表示処理部120は、仮想空間更新情報により更新される仮想空間情報に基づいて、第1仮想空間画像を生成し、画像合成部320は、仮想空間更新情報により更新される仮想空間情報に基づいて、第2仮想空間画像を生成する。例えば処理装置10と処理装置20の間でネットワーク510を介して仮想空間更新情報が通信される。そして処理装置10の仮想空間設定部108は、ネットワーク510を介して通信される仮想空間更新情報に基づいて仮想空間情報を更新し、更新された仮想空間情報に基づいて仮想空間を設定する。そして処理装置10の表示処理部120は、仮想空間情報に基づき設定された仮想空間において、ユーザの視点に対応する第1仮想カメラから見える第1仮想空間画像を生成して、ユーザ用の表示部190に表示する。一方、処理装置20の仮想空間設定部308は、ネットワーク510を介して通信される仮想空間更新情報に基づいて仮想空間情報を更新し、更新された仮想空間情報に基づいて仮想空間を設定する。そして処理装置20の画像合成部320は、仮想空間情報に基づき設定された仮想空間において、撮影部342に対応する第2仮想カメラから見える第2仮想空間画像を生成して、第2仮想空間画像と撮影画像の合成画像を、観客用の第2表示部390に表示する。このようにすることで、ユーザの視点での第1仮想空間画像を生成して表示部190に表示すると共に、ユーザの視点とは異なる視点での第2仮想空間画像を生成し、第2仮想空間画像と撮影画像の合成画像を第2表示部390に表示できるようになる。
また仮想空間更新情報は、実空間でのユーザ(広義には物体)の位置情報を含むユーザ情報、仮想空間に配置されるオブジェクトの状況情報、及びユーザがプレイするゲームのゲーム状況の情報の少なくとも1つを含む。ユーザ情報は、ユーザの位置情報(視点位置情報)の他に、ユーザの方向情報(視線方向情報)やユーザの姿勢情報(動き情報)を含むことができる。仮想空間に配置されるオブジェクトの状況情報は、例えば当該オブジェクトが仮想空間に存在するか非存在であるかを示す存在フラグの情報などである。或いは、オブジェクトの状況情報は、オブジェクトの状態変化情報であってもよい。状態変化情報は、例えばオブジェクトが破壊状況などの所与の状況に変化したかを示す情報である。またゲーム状況は、ユーザのゲームの進行状況、ユーザのゲームプレイの状況、ユーザのゲーム成績の状況、ユーザのゲームレベルの状況、ゲームのマップの状況、或いはユーザがゲームで使用するキャラクタ(ゲーム要素)の状況などである。キャラクタの状況は、キャラクタの行動の状況や環境の状況である。
また実空間の物体のデプス情報は、例えば撮影部342の撮影位置から見た実空間の物体のデプス情報である。例えば実空間の物体のデプス情報は、撮影部342の撮影位置を、デプス情報取得部344であるデプスカメラの位置とし、撮影部342の撮影方向をデプスカメラの撮影方向とするようなデプス情報である。このようにすれば、撮影画像の各画素のデプス値を、撮影部342の撮影位置や撮影方向に対応する適切なデプス値に設定できるようになる。
また画像合成部320は、撮影画像に映る実空間の物体の認識処理を行うことで生成されたオブジェクトと、第2仮想空間画像のオブジェクトとの隠面消去処理を行いながら、合成画像を生成してもよい。
例えば実空間の認識処理を行うことで、撮影画像に映る物体に対応するオブジェクトを生成する。この生成されたオブジェクトは、実空間のデプス情報を有する。例えばオブジェクトのポリゴンの各頂点に対して実空間のデプス情報であるデプス値が設定されている。また第2仮想空間画像を構成するオブジェクトに対しても、第2仮想空間画像のデプス情報であるデプス値が設定されている。従って、これらのデプス値を用いることで、実空間の物体に対応するオブジェクトと、第2仮想空間画像のオブジェクトとの間での隠面消去処理を行って、合成画像を生成できるようになる。このようにすれば、実空間の認識処理を有効活用して、隠面消去処理を実現できるようになる。
また本実施形態では、複数の撮影部と、複数のデプス情報取得部を実空間に配置してもよい。そして情報取得部302は、複数の撮影部の中から選択された撮影部からの撮影画像と、複数のデプス情報取得部の中から選択されたデプス情報取得部からのデプス情報を取得する。例えば自動又は手動により、複数の撮影部の中から撮影部を選択すると共に、複数のデプス情報取得部の中からデプス情報取得部を選択する。情報取得部302は、このように自動又は手動により選択された撮影部、デプス情報取得部からの撮影画像、デプス情報を取得する。例えば自動選択は、コンピュータやアルゴリズムによる選択であり、手動選択は、ユーザやオペレータにより選択である。そして画像合成部320は、仮想空間情報に基づいて、選択された撮影部に対応する第2仮想カメラから見える第2仮想空間画像を生成する。そして画像合成部320は、第2仮想空間画像のデプス情報と、選択されたデプス情報取得部からの実空間のデプス情報とに基づく隠面消去処理を行いながら、第2仮想空間画像と、選択された撮影部からの撮影画像とを合成し、合成画像を生成する。
この場合に情報取得部302は、ユーザがプレイするゲームのゲーム状況に応じて、撮影部及びデプス情報取得部の選択を行う。例えば情報取得部302は、ゲーム状況が第1のゲーム状況である場合には、複数の撮影部の中から第1の撮影部を選択し、複数のデプス情報取得部の中から第1のデプス情報取得部を選択する。そして画像合成部320は、選択された第1の撮影部に対応する第2仮想カメラから見える第2仮想空間画像を生成し、第2仮想空間画像のデプス情報と、選択された第1のデプス情報取得部からの実空間のデプス情報とに基づく隠面消去処理を行いながら、第2仮想空間画像と、第1の撮影部からの撮影画像とを合成し、合成画像を生成する。また情報取得部302は、ゲーム状況が第2のゲーム状況である場合には、複数の撮影部の中から第2の撮影部を選択し、複数のデプス情報取得部の中から第2のデプス情報取得部を選択する。そして画像合成部320は、選択された第2の撮影部に対応する第2仮想カメラから見える第2仮想空間画像を生成し、第2仮想空間画像のデプス情報と、選択された第2のデプス情報取得部からの実空間のデプス情報とに基づく隠面消去処理を行いながら、第2仮想空間画像と、第2の撮影部からの撮影画像とを合成し、合成画像を生成する。
また情報取得部302は、観客状況に応じて、撮影部及びデプス情報取得部の選択を行ってもよい。例えば情報取得部302は、観客状況に応じて選択された撮影部からの撮影画像と、観客状況に応じて選択されたデプス情報取得部からのデプス情報を取得する。そして画像合成部320は、選択された撮影部に対応する第2仮想カメラから見える第2仮想空間画像と、選択された撮影部からの撮影画像とを合成し、合成画像を生成する。
またユーザ用の表示部190は、ユーザが頭部に装着するHMD200(頭部装着型表示装置)の表示部である。この場合のHMD200としては、図4に示すような光学シースルー型や、図5に示すようなビデオスルー型などの種々のタイプのHMDを採用できる。
また表示処理部120は、実空間のユーザに対応する仮想空間のユーザキャラクタが表示される第1仮想空間画像を生成する。即ち、ユーザに対応するユーザキャラクタ(アバター)が表示される第1仮想空間画像を生成して、ユーザ用の表示部190に表示する。一方、画像合成部320は、仮想空間のユーザキャラクタの代わりに実空間のユーザが表示される合成画像を生成する。即ち、仮想空間においてユーザに対応して登場するユーザキャラクタを表示するのではなく、例えば撮影部342で撮影された実空間のユーザが表示されるような合成画像を生成して、第2表示部390に表示する。
また本実施形態では、情報取得部345が、実空間を撮影する撮影部342からの撮影画像と、実空間の物体の位置情報を取得する位置情報取得部345からの位置情報を取得する。そして画像合成部320は、仮想空間情報に基づいて、撮影部342に対応する仮想空間の第2仮想カメラから見える第2仮想空間画像を生成する。そして画像合成部320は、第2仮想空間画像のオブジェクトの位置情報と実空間の物体の位置情報とに基づく隠面消去処理を行いながら、第2仮想空間画像と撮影画像の合成画像を生成する。
例えば実空間の物体であるユーザの位置情報は、HMD200のトラッキング処理などにより取得できる。また実空間のユーザの所持物の位置情報も、例えばユーザの部位や所持物に取り付けられたセンサからのセンサ情報などを用いて取得できる。また実空間に配置される物体の位置情報も、当該物体に取り付けられたセンサからのセンサ情報に基づいて取得したり、後述するようなHMD200のカメラ等を用いた実空間の認識処理により取得できる。或いは、実空間に設置された各種のカメラ(RGBカメラ、デプスカメラ、環境認識カメラ)を用いて、実空間の物体の位置情報を取得してもよい。また仮想空間のオブジェクトの位置情報は、仮想空間を設定する仮想空間情報に基づき取得できる。そして第2仮想カメラから見た場合の、仮想空間画像のオブジェクトと実空間の物体との奥行き方向での前後関係は、オブジェクトの位置情報と物体の位置情報に基づき判断できる。従って、第2仮想空間画像のオブジェクトの位置情報と実空間の物体の位置情報とに基づく隠面消去処理が可能になり、このような隠面消去処理を行いながら、第2仮想空間画像と撮影画像の合成画像を生成できるようになる。
なお情報取得部102(情報取得部302)は、視点のトラッキング情報に基づいて、実空間でのユーザの位置情報を取得する。視点のトラッキング情報は、例えばHMD200のトラッキング処理を行うことで取得できる。例えば情報取得部102は、HMD200の位置情報を、当該HMD200を装着するユーザの位置情報として取得する。一例としては、トラッキング情報は、ユーザの初期視点位置からの視点位置の変化情報(視点位置の座標の変化値)、及び、ユーザの初期視線方向からの視線方向の変化情報(視線方向の回転軸回りでの回転角度の変化値)の少なくとも一方を含むことができる。このようなトラッキング情報が含む視点情報の変化情報に基づいて、ユーザの位置に対応する視点位置や、ユーザの方向に対応する視線方向を特定できる。なお、HMD200のトラッキング処理ではなく、ユーザやユーザの頭部などの部位を直接にトラッキングする処理により、ユーザの位置情報を取得してもよい。また情報取得部102は、ユーザの方向情報や姿勢情報を取得してもよい。例えば視点のトラッキング処理により得られたトラッキング情報に基づいて、実空間においてユーザが向く方向である方向情報を取得する。また情報取得部102は、ユーザのモーション情報である姿勢情報を取得する。姿勢情報は、ユーザの手、頭又は足などの部位の動きを特定する情報である。例えば情報取得部102は、キネクト(登録商標)と呼ばれる処理によりユーザの姿勢情報を取得する。なお、情報取得部102が取得する位置情報は、相対的な位置情報であってもよい。
また本実施形態では、例えばMRの画像又はARの画像を生成する。或いはVRの画像を生成してもよい。MRの画像は、実空間と仮想空間を混合し、現実のものと仮想的なものがリアルタイムで影響し合うような新たな空間を構築するMRの手法により生成される画像であり、MRは全拡張現実と拡張仮想を包含する概念である。ARの画像は、実空間の風景などを構成する表示物に重畳するように表示される画像である。VRの画像は、例えば後述のHMD200を装着するユーザの視界の全周囲に亘ってVR空間が広がるように生成される画像である。
また本実施形態では、ユーザがプレイするゲームのゲーム処理として、仮想現実のシミュレーション処理を行う。仮想現実のシミュレーション処理は、実空間での事象を仮想空間で模擬するためのシミュレーション処理であり、当該事象をユーザに仮想体験させるための処理である。例えば実空間のユーザに対応するユーザキャラクタ(仮想ユーザ、仮想ユーザの搭乗移動体)を、仮想空間で移動させたり、移動に伴う環境や周囲の変化をユーザに体感させるための処理を行う。
また本実施形態では、処理装置10(第1プロセッサ)は、例えば図4、図5のHMD200に内蔵される。或いは処理装置10は、HMD200に通信接続される装置(ゲーム装置、スマートフォン等の携帯通信端末、又はバックパックPC等)であってもよい。また処理装置20(第2プロセッサ)は、例えばシミュレーションシステムの施設に設置される装置である。或いは処理装置20は、インターネット等のネットワークに通信接続されるサーバ等であってもよい。そして処理装置10により、表示処理部120が行う本実施形態の処理が実現され、処理装置20により、情報取得部302、画像合成部320が行う本実施形態の処理が実現される。但し、表示処理部120、情報取得部302、画像合成部320が行う本実施形態の処理を、1つの処理装置により実行してもよい。即ち、表示処理部120、情報取得部302、画像合成部320が行う本実施形態の処理は、少なくとも1つの処理装置(少なくとも1つのプロセッサ)により実現できる。
2.HMD
次に本実施形態で用いられるHMD200及びHMD200を用いたトラッキング処理について説明する。
図4は本実施形態で用いられるHMD200の一例である。図4のHMD200はシースルー型(透過型)のメガネタイプのHMDである。具体的には光学シースルー型のHMDである。このシースルー型のHMD200によれば例えばMRやARの仮想空間画像の表示が可能になる。
図4のHMD200はテンプル部240とゴーグル部242を有する。テンプル部240にはスピーカが内蔵されている。ゴーグル部242には表示装置243とホログラフィック光学素子244が設けられている。表示装置243には、マイクロディスプレイ、ミラー、プリズム等により構成される表示ユニットが設けられている。表示装置243には左眼用の表示ユニットと右眼用の表示ユニットが設けられており、これにより立体視が実現される。また左眼用、右眼用の各表示ユニットに一対のマイクロディスプレイを設けることで虚像の位置を可変にできる。
表示装置243からの表示光は、ホログラフィック光学素子244の導光板内部を屈折しながら、ユーザUSの眼前に導光される。そしてホログラフィック光学素子244により表示光を眼球方向に屈折させて、眼球に表示光を送る。これにより眼前に虚像(ホログラムの再生像)があるように見えるようになる。ホログラフィック光学素子244の導光板はコンバイナーとも呼ばれ、ハーフミラーであるコンバイナーにより、外界の実像と虚像が重なって見えるようになり、MRやARが実現される。
またゴーグル部242には、RGBカメラ246、デプスカメラ247、環境認識カメラ248、249が設けられている。RGBカメラ246を用いることでユーザUSの正面方向の撮影が可能になる。デプスカメラ247を用いることで正面方向でのデプス情報(奥行き情報)を取得できる。例えばゴーグル部242にはデプスカメラ用のエミッター(不図示)が設けられている。そしてエミッターであるIRプロジェクターにより赤外線パターンを実空間の物体に対して投光し、投光した赤外線パターンを、デプスカメラ247である赤外線カメラにより読み取り、パターンの歪みから実空間の物体のデプス情報を取得する。更に環境認識カメラ248、249を用いることでユーザUSの周囲の環境認識が可能になる。またゴーグル部242には、加速度センサ、ジャイロセンサにより構成される慣性計測ユニット(IMU)が内蔵されている。ユーザUSの頭の位置や向く方向は、ゴーグル部242に設けられたカメラによる撮影画像と慣性計測ユニットからの測定情報などに基づいて検出され、これによりヘッドトラッキングが実現される。そしてユーザUSの位置情報(視点位置情報)や方向情報(視線方向情報)の取得が可能になる。またRGBカメラ246、デプスカメラ247、環境認識カメラ248、249を用いることで、空間マッピングと呼ばれる実空間の認識処理が実現される。これらのカメラを用いて実空間でのユーザの周囲のスキャンを行うことで、ユーザの周囲の実空間の認識処理が実現され、実空間情報が取得される。これらのカメラによる認識処理により得られた実空間情報と、慣性計測ユニットの検出結果とに基づく総合的な判断により、ユーザUSの位置情報や方向情報を取得する。例えばHMD200の起動時の位置、方向を基準位置、基準方向とし、実空間情報や慣性計測ユニットの検出結果に基づいて位置、方向の変化を求めることで、現在のユーザUSの位置、方向を求めることができる。またこれらのカメラを用いることで、ユーザUSの周囲に居る他のユーザの位置情報(相対的な位置情報)、方向情報(相対的な方向情報)、或いは姿勢情報(動き情報)も取得可能である。例えばキネクト(登録商標)などの処理により姿勢情報を取得することで、他のユーザがどのようなアクションを行ったかを検出できるようになる。或いはユーザ自身の部位の動きなどをユーザの姿勢情報(動き情報)として取得してもよい。
図5にHMD200の他の例を示す。図5のHMD200はユーザの視界の全周囲を覆うように装着されるタイプのHMDである。図5のHMDの表示部は例えば有機ELディスプレイ(OEL)や液晶ディスプレイ(LCD)などにより実現される。例えばHMD200の表示部には、ユーザの左眼の前に設定される第1のディスプレイ又は第1の表示領域と、右眼の前に設定される第2のディスプレイ又は第2の表示領域が設けられており、立体視表示が可能になっている。立体視表示を行う場合には、例えば視差が異なる左眼用画像と右眼用画像を生成し、第1のディスプレイに左眼用画像を表示し、第2のディスプレイに右眼用画像を表示する。或いは1つのディスプレイの第1の表示領域に左眼用画像を表示し、第2の表示領域に右眼用画像を表示する。またHMD200には左眼用、右眼用の2つの接眼レンズ(魚眼レンズ)が設けられており、これによりユーザの視界の全周囲に亘って広がるVR空間が表現される。そして接眼レンズ等の光学系で生じる歪みを補正するための補正処理が、左眼用画像、右眼用画像に対して行われる。
また図5のHMD200には、RGBカメラ216、デプスカメラ217、環境認識カメラ218、219が設けられている。これらのカメラを用いることでビデオシースルー型のHMD200が実現され、MRやARの実現が可能になる。またこれらのカメラを用いることで、図4のHMD200と同様に、実空間の認識処理や、他のユーザの位置情報、方向情報、姿勢情報(動き情報)の取得やユーザの姿勢情報の取得などを実現できる。
図5のHMD200において、ユーザの位置情報、方向情報を取得するトラッキング処理は、HMD200に内蔵され、加速度センサ、ジャイロセンサにより構成される慣性計測ユニット(IMU)により実現してもよい。或いはHMD200に複数の受光素子を設け、ユーザの周囲に発光素子を有する測定用の装置(ベースステーション)を設ける。そして測定用の装置(複数の測定用装置)の発光素子(LED)からのレーザなどの光をHMD200の受光素子で受光することで、HMD200のトラッキング処理を行って、ユーザの位置情報(視点位置情報)や方向情報(視線情報)を取得してもよい。或いはHMD200に複数の発光素子を設け、ユーザの周囲にカメラ(第1、第2のカメラ)を有する測定用の装置を設ける。そしてHMD200の発光素子からの光を測定用の装置のカメラで撮像することで、ユーザUSの頭部の奥行き方向での位置等を検出する。またHMD200に設けられる慣性計測ユニット(モーションセンサ)の検出情報に基づいて、ユーザUSの頭部の回転角度(視線)を検出し、これによりHMD200のトラッキング処理を実現してもよい。
なおユーザの位置情報や方向情報等を取得するためのトラッキング処理については、種々の変形実施が可能である。例えばHMD200に設けられた慣性計測ユニットを用いて、HMD200の単体でトラッキング処理を実現してもよいし、上述のような測定用の装置を外部に設けてトラッキング処理を実現してもよい。或いは、公知のアイトラッキング、フェイストラッキング又はヘッドトラッキングなどの種々の視点トラッキング処理を採用してもよい。
またHMD200として、いわゆるスマートフォンVR又はVRゴーグルと呼ばれるタイプのものを用いてもよい。このタイプのHMD200では、スマートフォンの表示部がユーザの目に対向するように、HMD200のゴーグル部の中にスマートフォンを収納する。ゴーグル部(VRゴーグル)の内側には、左眼用接眼レンズ、右眼用接眼レンズが内蔵されている。ユーザは、スマートフォンの表示部に表示された左眼用画像、右眼用画像を、各々、左眼用接眼レンズ、右眼用接眼レンズを介して見ることで、VRの立体視画像を鑑賞することができる。そしてユーザの視点位置、視線方向を特定するトラッキング処理は、スマートフォンに内蔵される慣性計測ユニット(加速度センサ、ジャイロセンサ)などに基づいて実現できる。またゴーグル部又はスマートフォンに設けられたカメラを用いて実空間の認識処理を行えばよい。
図6に本実施形態のシミュレーションシステムを実現するハードウェアの構成例を示す。各ユーザが装着するHMD200A、200B、200Cは、WiFi(登録商標)の無線LANルーター500に通信接続される。HMD200A、200B、200Cには、図1〜図3で説明した処理装置10が設けられており、処理装置10により生成された第1仮想空間画像が、HMD200A、200B、200Cの表示部190に表示される。
また無線LANルーター500には、PC350(パーソナルコンピュータ)が通信接続される。このPC350により図1〜図3で説明した処理装置20が実現される。またPC350にはセンサ装置340が通信接続されている。センサ装置340は、例えばキネクト(登録商標)のセンサ装置である。具体的にはセンサ装置340には、RGBカメラ346、デプスカメラ348(IRカメラ)、デプスカメラ用のエミッター349(IRプロジェクター)が設けられている。RGBカメラ346により、撮影部342が実現され、デプスカメラ348及びエミッター349により構成されるデプスセンサにより、デプス情報取得部344が実現される。
そしてHMD200A、200B、200Cの各々は、仮想空間情報に基づいて実空間の各ユーザの視点に対応する第1仮想カメラから見える第1仮想空間画像を生成して、HMD200A、200B、200Cの表示部190に表示する。PC350は、実空間の撮影画像と実空間のデプス情報をセンサ装置340から取得する。そしてPC350は、仮想空間情報に基づいて、仮想空間の第2仮想カメラから見える第2仮想空間画像を生成する。例えば仮想空間更新情報が、無線LANルーター500を介して通信されて、HMD200A、200B、200Cの間や、HMD200A、200B、200CとPC350の間で共用される。そしてHMD200A、200B、200Cは、仮想空間更新情報により更新される仮想空間情報に基づいて、第1仮想空間画像を生成する。PC350は、仮想空間更新情報により更新される仮想空間情報に基づいて、第2仮想空間画像を生成する。そしてPC350は、第2仮想空間画像のデプス情報と実空間のデプス情報とに基づく隠面消去処理を行いながら、第2仮想空間画像と撮影画像の合成画像を生成して、例えば観客用の第2表示部390に表示する。なお第2表示部390は、プロジェクターにより画像が投影されて表示される投影タイプの表示部であってもよい。
3.本実施形態の手法
次に本実施形態の手法について詳細に説明する。なお、以下では、ユーザに対応するユーザキャラクタとモンスターが登場するアクションゲームに本実施形態の手法を適用した場合について主に例にとり説明を行う。但し、本実施形態の手法は、種々のゲーム(仮想体験ゲーム、格闘ゲーム、競争ゲーム、RPG、スポーツゲーム、ホラー体験ゲーム、電車や飛行機等の乗り物のシミュレーションゲーム、パズルゲーム、コミュニケーションゲーム、或いは音楽ゲーム等)に適用でき、ゲーム以外にも適用可能である。また以下では、MR、ARを単にMRと記載する。
3.1 ゲームの説明
図7は、本実施形態のシミュレーションシステムにおいてユーザがゲームを楽しむ実空間のプレイフィールドFLの例である。プレイフィールドFLは例えば四方が壁WLにより囲まれている。プレイフィールドFL上では例えば3人のユーザUS1、US2、US3がゲームをプレイしている。ユーザUS1、US2、US3はHMD1、HMD2、HMD3を装着しており、ユーザの視界には仮想空間画像が映し出されている。また実空間には図6で説明したセンサ装置340が設置されている。具体的には、RGBカメラ346、デプスカメラ348の撮影方向が、例えばプレイフィールドFLの中央部の方に向くように、センサ装置340が設置されている。そしてセンサ装置340の正面側には、観客用の第2表示部390が設置されている。
図8、図9は、実空間のプレイフィールドFLに対応して設定される仮想空間の例である。キャラクタCH1、CH2、CH3は、ユーザに対応するユーザキャラクタであり、例えばパックマン(登録商標)と呼ばれるキャラクタである。図7〜図9に示すように、実空間でのユーザUS1、US2、US3の位置に対応する仮想空間の位置に、キャラクタCH1、CH2、CH2が配置される。例えば実空間においてユーザUS1、US2、US3が移動すると、それに追従するように仮想空間のキャラクタCH1、CH2、CH3も移動する。また仮想空間には、経路設定用のオブジェクトOB1、OB2、OB3、OB4により、迷路となる経路が形成されている。ユーザUS1、US2、US3の視界には、これらのオブジェクトOB1〜OB4が映っており、オブジェクトOB1〜OB4で設定される経路に沿ってユーザUS1、US2、US3は移動する。そして仮想空間には、キャラクタCH1、CH2、CH3のエサとなるドットDT(クッキー)が配置されており、ユーザUS1、US2、US3は、プレイフィールドFL上で移動して、エサであるドットDTを食べる行動を行う。これによりユーザUS1、US2、US3はポイント(得点)を獲得できる。また図8、図9に示すように、モンスターの巣と呼ばれる場所ではモンスターCM1、CM2、CM3が巡回するように移動している。ユーザUS1、US2、US3は、これらのモンスターCM1、CM2、CM3に遭遇して接触してないように、プレイフィールドFL上を動き回る。ユーザUS1、US2、US3は、3人の協力プレイで、なるべく速い時間で仮想空間内の全てのドットDTを食べることを目指して、ゲームをプレイする。
図10は、図7のユーザUS1のHMD1に表示される第1仮想空間画像の説明図である。図10の第1仮想空間画像では、仮想的な壁を表すオブジェクトOB3、OB4や、エサであるドットDTや、ユーザUS2に対応するキャラクタCH2(ユーザキャラクタ)の画像が表示されている。一方、ユーザUS2については、実空間の画像がユーザUS1に見えており、仮想空間のオブジェクトと実空間の物体が混在してインタラクションを行っているように見えるMRが実現されている。
このように本実施形態では、ユーザが装着するHMDには仮想空間のオブジェクト(OB3、OB4、DT、CH2)が表示される。しかしながら図7の実空間のプレイフィールドFLで、ユーザがゲームプレイしている様子を観戦している観客は、このような仮想空間のオブジェクトを見ることができない。このため観客は、ユーザが何を見て盛り上がっているのかを視覚的に認識できず、盛り上がりに欠けてしまうという問題がある。
例えばHMDを装着しているユーザは、仮想空間のドットを食べたり、仮想空間のモンスターから逃げたり、他のユーザに対応するキャラクタと連携プレイを行うなどして、ゲームプレイに熱中している。ところが観客には、図7の実空間のプレイフィールドFLにおいてユーザが動き回っている姿しか見えず、仮想空間のオブジェクトは見ることできないため、ユーザのゲームプレイの盛り上がりを実感できないという課題がある。このような課題を解決するために本実施形態では、撮影部342の撮影画像と第2仮想空間画像の合成画像を生成する。そして、この合成画像を、例えば図7、図8の観客用の第2表示部390などに表示する。これにより、ユーザだけではなく、観客も、仮想空間のオブジェクトを見ることができ、ユーザが何を見て盛り上がっているのかを視覚的に認識できるようになるため、観客とユーザがゲームの盛り上がりや感動を共有できるようになる。
図11は撮影画像と第2仮想空間画像の合成画像の例である。撮影画像は、撮影部342(RGBカメラ346)の撮影画像であり、第2仮想空間画像は、撮影部342に対応する第2仮想カメラから見える仮想空間画像である。第2仮想空間画像では、仮想的な壁を表すオブジェクトOB1、OB3、OB4や、エサであるドットDTや、ユーザUS1、US2、US3に対応するキャラクタCH1、CH2、CH3の画像が表示されている。一方、ユーザUS2、US3については、実空間の画像が撮影部342により撮影されて表示されている。
このように図11の合成画像は、第2仮想空間画像(OB1、OB3、OB4、DT、CH1、CH2、CH3)と撮影画像(US1、US2、US3)が合成された画像になっている。またこの合成画像では、仮想空間のオブジェクトと実空間の物体との間の隠面消去処理が行われている。
例えば図11において実空間のユーザUS1は仮想空間のオブジェクトOB3よりも手前側に位置している。即ち、図7、図8の撮影位置に撮影部342であるRGBカメラ346が配置される場合には、RGBカメラ346から見て、ユーザUS1はオブジェクトOB3の手前側に位置する。従ってこの場合には、ユーザUS1がオブジェクトOB3の手前側に表示されるように隠面消去処理が行われる。また撮影部342であるRGBカメラ346から見て、実空間のユーザUS2は仮想空間のオブジェクトOB4よりも手前側に位置している。従ってこの場合には、ユーザUS2がオブジェクトOB4の手前側に表示されるように隠面消去処理が行われる。またRGBカメラ346から見て、仮想空間のオブジェクトOB3は実空間のユーザUS3よりも手前側に位置している。従ってこの場合には、オブジェクトOB3がユーザUS3の手前側に表示されるように隠面消去処理が行われる。
以上のように本実施形態では、図10に示すように、実空間のユーザの視点に対応する仮想空間の第1仮想カメラから見える第1仮想空間画像を生成する。そして図10の第1仮想空間画像を、ユーザが装着するHMDの表示部190に表示する。また撮影部342(RGBカメラ346)からの撮影画像と、デプス情報取得部344(デプスカメラ348)からの実空間の物体のデプス情報を取得する。そして撮影部342に対応する仮想空間の第2仮想カメラから見える第2仮想空間画像を生成し、第2仮想空間画像のオブジェクトのデプス情報と実空間の物体のデプス情報とに基づく隠面消去処理を行いながら、図11に示すような第2仮想空間画像と撮影画像の合成画像を生成する。このようにすれば、この図11の合成画像を、例えば図7、図8の大画面の観客用の第2表示部390に表示できるようになる。これにより、観客は、ユーザが何を見て盛り上がっているのかを視覚的に認識できるようになるため、ゲームの面白さや盛り上がりなどを共有できるようになる。また本実施形態では、図11で説明したように、仮想空間のオブジェクトと、実空間の物体(ユーザ、ユーザの所持物、移動物又は配置物等)とが、適正に隠面消去処理された合成画像を生成できる。即ち、図7、図8の撮影位置に撮影部342であるRGBカメラ346を配置したときに、適正に見えるべき仮想空間のオブジェクトと実空間の物体の奥行き関係で、隠面消去処理が行われる。従って、観客は、仮想空間のオブジェクトと実空間の物体とが映し出されるMRの画像を、オブジェクトと物体の正確な奥行き関係で見ることが可能になる。即ち、仮想空間のオブジェクトと実空間の物体の位置関係を正確に認識できるような合成画像が表示されるため、オブジェクトと物体の位置関係を正確に反映させることができる。従って、より正確で自然に見える合成画像を生成して、観客等に表示できるようになる。
また図4、図5に示すHMD200では、ユーザの周囲の実空間の認識処理を行うことにより実空間情報を取得し、取得された実空間情報に基づいて、実空間に対応する仮想空間を生成することができる。例えば図12(A)では、実空間に机DKや壁WLなどの物体が存在している。この実空間を、図4、図5のHMD200に設けられたカメラによりスキャンする認識処理を行うことで、実空間情報を取得する。具体的には図12(B)に示すように、実空間情報としてメッシュポリゴンのデータを取得する。この実空間の認識処理は例えばリアルタイムに実行され、ユーザの周囲の実空間が順次にスキャンされて実空間情報が取得される。例えばIDに対応づけられた空間データが順次に取得されて、実空間情報として記憶部170に蓄積されて記憶される。この実空間情報は、デプス情報(奥行き値)も有しており、このデプス情報を用いることで、例えば仮想空間のオブジェクトと実空間の物体との隠面消去処理も可能になる。また実空間情報に基づいて仮想空間を生成することで、仮想的なオブジェクト(キャラクタ、配置オブジェクト)と、実空間の物体(机DK、壁WL)とのインタラクションが可能になる。例えば仮想的なオブジェクトと実空間の物体とのヒット処理(衝突処理)なども可能になり、これまでにないタイプのMRやARの実現が可能になる。
また、このような実空間の認識処理による実空間情報は、ユーザの位置情報や方向情報の取得処理にも利用できる。例えば実空間情報に基づいて、ユーザとユーザの周囲の物体との位置関係や距離関係を把握できる。従って、慣性計測ユニットの検出結果と実空間情報を用いることで、より正確なユーザの位置情報や方向情報を取得することが可能になる。
図13は、図2の光学シースルー型のHMD200においてユーザの目に映る画像を表すものである。図13のB1、B2、B3、B4の領域には、実空間の背景物などの風景がユーザの目に映る。そして表示領域ARVに仮想空間画像が表示される。ユーザが顔を左右に振ると、DR1、DR2に示すように表示領域ARVの場所が左右に移動する。そしてこの表示装置243にキャラクタや配置オブジェクトなどの仮想空間のオブジェクトの画像が表示される。これによりB1、B2、B3の実空間の風景と表示領域ARVの仮想空間画像がミックスされたMRの実現が可能になる。なお図13では表示領域ARVが狭く、視野角が小さい場合の例を示したが、HMD200の各種のデバイスを改善することで、表示領域ARVを広くし、視野角を更に拡大することも可能である。
3.2 合成画像の生成
以上に説明したように、本実施形態では、仮想空間を設定する仮想空間情報に基づいて、実空間のユーザの視点に対応する仮想空間の第1仮想カメラから見える第1仮想空間画像を生成し、ユーザ用の表示部190に表示する。仮想空間を設定する仮想空間情報は、図8、図9において仮想空間に配置されるキャラクタCH1、CH2、CH3、オブジェクトOB1〜OB4、ドットDT、モンスターCM1〜CM3の位置情報や方向情報などを含む。また仮想空間情報は、仮想空間のオブジェクトの状態情報(存在フラグ等)を含むことができる。そして例えば図7の実空間のユーザUS1に対応する仮想空間の位置に、図14に示すように第1仮想カメラVC1が配置される。第1仮想カメラVC1の視線方向は、実空間のユーザUS1の視線方向と同じ方向になるように設定される。これにより図10に示すように、仮想空間の第1仮想カメラVC1から見える第1仮想空間画像が生成されて、ユーザUS1のHMD1の表示部190に表示される。具体的には図13の表示領域ARVに第1仮想空間画像が表示される。この第1仮想空間画像は、図7のユーザUS1の位置においてユーザUS1の視線方向に見えるべき仮想空間画像である。
また本実施形態では、実空間を撮影する撮影部342からの撮影画像と、実空間の物体のデプス情報を取得するデプス情報取得部344からのデプス情報が取得される。撮影部342は図6〜図8のRGBカメラ346により実現され、デプス情報取得部344はデプスカメラ348やエミッター349により実現される。そしてRGBカメラ346により実空間のプレイフィールドFLを撮影することで、撮影画像が取得される。この撮影画像にはユーザUS1、US2、US3等が映っている。またデプスカメラ348を用いることで、実空間のプレイフィールドFLでのデプス情報が取得される。例えば実空間のユーザUS1、US2、US3等の物体のデプス情報が取得される。例えば図7、図8に示すようにデプスカメラ348はRGBカメラ346の撮影位置に設けられ、デプスカメラ348の撮影方向は、RGBカメラ346の撮影方向と同じ方向になるように設定される。これによりRGBカメラ346の撮影位置から見た実空間の物体のデプス情報を取得できる。
そして本実施形態では、仮想空間情報に基づいて、撮影部342に対応する仮想空間の第2仮想カメラから見える第2仮想空間画像が生成される。例えば図7、図8の撮影部342であるRGBカメラ346に対応する仮想空間の位置に、図14に示すように第2仮想カメラVC2が配置される。第2仮想カメラVC2の視線方向は、撮影部342の撮影方向と同じ方向になるように設定される。これにより図11に示すように、仮想空間の第2仮想カメラVC2から見える第2仮想空間画像が生成される。この第2仮想空間画像は、図7、図8のRGBカメラ346の撮影位置においてRGBカメラ346の撮影方向に見えるべき仮想空間画像である。
そして本実施形態では、第2仮想空間画像のオブジェクトのデプス情報と実空間の物体のデプス情報とに基づく隠面消去処理を行いながら、第2仮想空間画像と撮影画像の合成画像が生成される。例えば図11の合成画像において、第2の仮想空間画像には、仮想空間のキャラクタCH1、CH2、CH3、オブジェクトOB1、OB3、OB4、ドットDT、モンスターCM3などの仮想的なオブジェクトが表示されている。また図11の合成画像において、撮影画像には、ユーザUS1、US2、US3などの実空間の物体が表示されている。これにより仮想空間のオブジェクトと実空間の物体が混在するMRの合成画像を生成できるようになる。そしてこの合成画像を、図7、図8、図14の大画面の第2表示部390に表示することで、ユーザ以外の観客も、このMRの合成画像を見ることができるようになる。従って、観客も、仮想空間でのユーザのゲームプレイの様子を把握できるようになり、ゲームの面白味や感動をユーザと共に共有することが可能になる。また本実施形態では、図11に示すように、仮想空間のオブジェクトOB3の手前側にユーザUS1が表示され、オブジェクトOB4の手前側にユーザUS2が表示され、ユーザUS3の手前側にオブジェクトOB3が表示されるというように、適正な隠面消去処理が行われる。従って、より正確で自然に見える合成画像を、観客用のギャラリー画像として表示することが可能になる。
また本実施形態では、第2仮想カメラにおけるデプス値が各画素に設定される第2仮想空間画像と、実空間の物体のデプス情報に基づくデプス値が各画素に設定される撮影画像とを、画素毎に隠面消去処理を行いながら合成することで、合成画像を生成する。
例えば図15において、第2仮想空間画像の各画素には、図14の第2仮想カメラVC2におけるデプス値が設定されている。第2仮想カメラVC2におけるデプス値とは、第2仮想カメラVC2の位置を原点とした奥行き方向(Z方向)でのデプス値(Z値)である。第2仮想空間画像の生成の際にZバッファの処理(Zテスト)を行うと、Zバッファ(デプスバッファ)の各画素の位置に第2仮想カメラVC2におけるデプス値が設定される。
また撮影画像の各画素には、デプス情報取得部344により取得された実空間の物体のデプス情報に基づくデプス値が設定される。具体的にはデプス情報取得部344であるデプスカメラ348により、図15に示すように、各画素にデプス値が設定されたデプス画像が取得される。撮影部342であるRGBカメラ346と、デプスカメラ348は、同じ撮影位置において同じ撮影方向での画像を撮影している。従って、デプスカメラ348により取得されたデプス画像の各画素のデプス値を、RGBカメラ346により撮影された撮影画像の各画素のデプス値として設定できるようになる。
このように実空間のデプス情報は、撮影部342の撮影位置から見た実空間のデプス情報となっている。このようにすることで、上述したように撮影画像の各画素のデプス値として、デプスカメラ348などのデプス情報取得部344により取得されたデプス情報のデプス値を設定できるようになる。なお、RGBカメラ346とは異なる撮影位置、異なる撮影方向で撮影されたデプス画像のデプス値に対して、所定の変換処理を行い、変換処理後のデプス値を、RGBカメラ346の撮影画像の各画素のデプス値として用いるようにしてもよい。
このようにして図15では、第2仮想カメラにおけるデプス値が各画素に設定される第2仮想空間画像と、実空間のデプス情報に基づくデプス値が各画素に設定される撮影画像とを、画素毎に隠面消去処理を行いながら合成して、図11に示すような合成画像を生成する。このようにすれば、少ない処理負荷で合成画像を生成できるようになるため、例えばリアルタイムでの合成画像の生成などが可能になる。
なお本実施形態の第2の手法として、撮影画像に映る実空間の物体の認識処理を行うことで生成されたオブジェクトと、第2仮想空間画像のオブジェクトとの隠面消去処理を行いながら、合成画像を生成してもよい。
例えば図12(A)、図12(B)の実空間の認識処理により、撮像画像に映る実空間の物体(ユーザ等)に対応するメッシュポリゴンのオブジェクトを、実空間情報として生成する。このメッシュポリゴンのオブジェクトには、例えば各頂点にデプス値(Z値)が設定されており、この各頂点に設定されるデプス値は、実空間のデプス情報である。このメッシュポリゴンのオブジェクトを用いることで、当該オブジェクトと他のオブジェクトとの間での隠面消去処理が可能になる。例えば図12(B)において、実空間の机に対応するメッシュポリゴンの机オブジェクトを生成し、この机オブジェクトと、キャラクタ等の他のオブジェクトとの間で隠面消去処理を行うことができる。そして、第2仮想空間画像を構成するオブジェクトに対しては、第2仮想空間画像のデプス情報であるデプス値が設定されている。従って、これらのデプス値を用いることで、撮像画像に映る実空間の物体(ユーザ等)に対応するオブジェクトと、第2仮想空間画像のオブジェクト(仮想的な壁を表すオブジェクト、キャラクタ又はモンスター等)との間での隠面消去処理を行って、第2仮想空間画像と撮影画像の合成画像を生成できるようになる。
但し、上述の第2の手法による隠面消去処理では、実空間の認識処理を行って、仮想空間のメッシュポリゴンのオブジェクトを生成する処理が必要になる。このオブジェクトの生成処理は、処理負荷が非常に重く、リアルタイムの処理が難しい。従って、この第2の手法により図11に示すような合成画像を生成しようとすると、ユーザ等の実空間の物体に対応するオブジェクトの生成処理に時間がかかってしまい、リアルタイムな合成画像の生成が困難になるおそれもがある。このため、ユーザのHMDに表示される仮想空間の世界に対して、観客に表示される合成画像での仮想空間の世界が時間的に遅れて状態になってしまい、適切な合成画像を生成できなくという問題も生じ得る。
この点、図15のように第2仮想空間画像のデプス値と撮影画像のデプス値を用いて画素毎に隠面消去処理を行う手法によれば、リアルタイムな合成画像の生成が可能になる。従って、ユーザのHMDに表示される仮想空間の世界と、観客に表示される合成画像での仮想空間の世界が時間的に同期するようになり、より適切な合成画像の生成が可能になる。
また本実施形態の第3の手法として、実空間を撮影する撮影部342からの撮影画像と、実空間の物体の位置情報を取得する位置情報取得部345からの位置情報を取得してもよい。そして仮想空間情報に基づいて、撮影部342に対応する仮想空間の第2仮想カメラから見える第2仮想空間画像を生成する。そして第2仮想空間画像のオブジェクトの位置情報と実空間の物体の位置情報とに基づく隠面消去処理を行いながら、第2仮想空間画像と撮影画像の合成画像を生成する。
実空間の物体の位置情報は、例えば実空間の所定の座標系での位置情報であり、例えば当該座標系でのX座標、Y座標、Z座標である。この実空間の座標系は、仮想空間(オブジェクト空間)のワールド座標系に対応する座標系(同じ位置を原点とする座標系)であることが望ましい。第2仮想空間画像のオブジェクトの位置情報は、例えば仮想空間を設定する仮想空間情報により取得できる。例えば第2仮想空間画像の生成の際には、仮想空間情報に含まれるオブジェクトの位置情報に基づいて、仮想空間を設定し、当該仮想空間において第2仮想カメラから見える画像が、第2仮想空間画像として生成される。そして、この第2の仮想カメラから見たときの、第2仮想空間画像に映るオブジェクトと撮影画像に映る実空間の物体との奥行き方向での前後関係は、オブジェクトの位置情報と実空間の物体の位置情報に基づき判断できる。従って、オブジェクトの位置情報と実空間の物体の位置情報に基づいて、オブジェクトと物体(物体に対応するオブジェクト)との隠面消去処理を行いながら、第2仮想空間画像と撮影画像の合成画像を生成できるようになる。
また本実施形態では、第2仮想空間画像と撮影画像の合成画像を、観客用の第2表示部390に表示する。即ち図16に示すように、図11で説明した第2仮想空間画像と撮影画像の合成画像を、観客用の表示部である大画面の第2表示部390に表示する。このようにすれば、観客は、仮想空間においてユーザがどのように行動しているのかを、第2表示部390に表示される合成画像を見ることで、把握できるようになる。従って、観客とユーザがゲームの盛り上がりや感動を共有できるようになり、観客に対する演出効果を高めることが可能になる。
或いは本実施形態では、第2仮想空間画像と撮影画像の合成画像を、ユーザ用の表示部190に表示してもよい。例えば図17では、ユーザのHMDに表示される第1仮想空間画像に対して、合成画像IMPが、例えばPinPの画像として表示されている。例えば合成画像IMPが、第1仮想空間画像上のウィンドウ領域に表示される。このようにすれば、プレイフィールドの様子を俯瞰するような画像を、合成画像IMPとしてHMDに表示できるようになる。従ってユーザは、例えばこの合成画像IMPを、自身の周囲の状況を把握するためのレーダー画像等として用いることが可能になり、好適なインターフェース画像をユーザに提供できるようになる。
なお、HMDに対して、第1仮想空間画像と合成画像とを切り替えて表示するようにしてもよい。例えばユーザが仮想空間の表示を選択した場合には、第1仮想空間画像をHMDに表示し、ユーザがレーダー画像などの周囲の状況を俯瞰する画像の表示を選択した場合には、合成画像をHMDに表示する。
また本実施形態では、仮想空間更新情報により更新される仮想空間情報に基づいて、第1仮想空間画像を生成し、仮想空間更新情報により更新される仮想空間情報に基づいて、第2仮想空間画像を生成する。
例えば図18に示すように、仮想空間更新情報は、実空間でのユーザの位置情報を含むユーザ情報や、仮想空間に配置されるオブジェクトの状況情報や、及びユーザのゲーム状況の情報を含む。例えばユーザが実空間のプレイフィールド上を移動すると、ユーザの位置情報などのユーザ情報が、その移動に伴い更新され、仮想空間の状況が変化する。また仮想空間に配置されるオブジェクトの状態も、種々の状況に応じて変化する。例えばユーザに対応するキャラクタが、エサであるドットを食べる行動を行うと、当該ドットの存在フラグがオフになり、当該ドットは非表示になり、仮想空間の状況が変化する。またゲーム状況に応じて、仮想空間の状況も変化する。例えばゲームが進行して、マップの切り替えイベントが発生すると、仮想空間のマップが、当該マップとは異なるマップに切り替わり、仮想空間の状況が変化する。仮想空間更新情報は、このような仮想空間の状況の変化を表す情報である。この仮想空間更新情報は、例えば図1、図2、図3の処理装置10と処理装置20との間で通信されて共用される。具体的には図6において、HMD200A、200B、200CとPC350との間で、仮想空間更新情報が通信されて共用される。またHMD200A、200B、200Cの間でも仮想空間更新情報が通信されて共用される。
そして図18に示すように、HMD200(HMD200A〜200C。処理装置10)では、仮想空間更新情報により更新される仮想空間情報に基づいて、第1仮想カメラVC1から見える第1仮想空間画像が生成される。即ち図10に示すような第1仮想空間画像が生成されてHMD200に表示される。一方、PC350(処理装置20)では、仮想空間更新情報により更新される仮想空間情報に基づいて、第2仮想カメラVC2から見える第2仮想空間画像が生成される。そして図11に示すように第2仮想空間画像と撮影画像の合成画像が生成されて、観客用の第2表示部390に表示される。
このようにすれば、HMD200に表示される第1仮想空間画像と、第2表示部390に表示される合成画像を構成する第2仮想空間画像とを、通信により共用される仮想空間更新情報により更新される仮想空間情報を用いて適切に生成できるようになる。即ち仮想空間更新情報により、ユーザの視点での第1仮想空間画像と、ユーザの視点とは別の視点での第2仮想空間画像を生成して、それぞれの表示部に対して表示することが可能になる。
また本実施形態では、複数の撮影部と複数のデプス情報取得部が実空間に配置してもよい。そして複数の撮影部の中から選択された撮影部からの撮影画像と、複数のデプス情報取得部の中から選択されたデプス情報取得部からのデプス情報を取得する。
例えば図19では、複数の撮影部342A、342B、342C、342Dが、例えば実空間のプレイフィールドFLの周囲に配置されている。同様に複数のデプス情報取得部344A、344B、344C、344Dが、実空間のプレイフィールドFLの周囲に配置されている。例えばプレイフィールドFLが四角の形状である場合には、四角のプレイフィールドFLの各辺の対応する位置に、撮影部342A〜342Dの各撮影部と、デプス情報取得部344A〜344Dの各デプス情報取得部が配置される。なお四角のプレイフィールドの各コーナに、各撮影部と各デプス情報取得部を配置してもよい。
そして、このように配置された撮影部342A〜342D、デプス情報取得部344A〜344Dの中から自動又は手動で選択された撮影部、デプス情報取得部から、撮影画像、デプス情報を取得する。そして取得された撮影画像、デプス情報に基づいて、図11に示すような合成画像を生成する。このようにすれば、各状況に応じた選択された適切な撮影部、デプス情報取得部からの撮影画像、デプス情報を用いて、合成画像を生成できるようになり、当該状況に適切な合成画像を表示することが可能になる。
例えば本実施形態では、ユーザがプレイするゲームの状況に応じて、撮影部及びデプス情報取得部の選択を行う。例えばゲームに登場する仮想空間のオブジェクトの状況やゲームの進行状況などに応じて、使用する撮影部及びデプス情報取得部を自動選択する。
例えば図20(A)では仮想空間のオブジェクトMOBがプレイフィールドFLにおいて高速に移動している。そして図20(A)では、撮影部342A、デプス情報取得部344Aの近くにオブジェクトMOBが位置している。この場合には、オブジェクトMOBの近くの撮影部342A、デプス情報取得部344Aを自動選択して、撮影画像、デプス情報を取得する。そして図20(B)では、オブジェクトMOBが、撮影部342C、デプス情報取得部344Cの近くに移動している。このようにオブジェクトの状況であるゲーム状況が変化すると、オブジェクトMOBが移動して近づいた撮影部342C、デプス情報取得部344Cの方を自動選択して、撮影画像、デプス情報を取得する。即ち、撮影画像、デプス情報の取得先を、撮影部342A、デプス情報取得部344Aから撮影部342C、デプス情報取得部344Cに切り替える。
このようにすれば、例えば観客の注目対象であるオブジェクトMOBの移動に追従するように、撮影画像、デプス情報の取得先となる撮影部、デプス情報取得部を自動的に切り替えることが可能になる。これにより、ギャラリー画像である第2仮想空間画像と撮影画像の合成画像には、観客の注目対象であるオブジェクトMOBの画像が映るようになり、適切なギャラリー画像を観客等に表示することが可能になる。
或いはプレイフィールドFLにおいて、観客が注目するようなゲームイベントが発生するゲーム状況になったとする。この場合には、そのゲームイベントの発生場所に近い撮影部、デプス情報取得部を自動選択して、選択された撮影部、デプス情報取得部からの撮影画像、デプス情報を用いて、ギャラリー画像となる合成画像を生成してもよい。このようにすることで、注目対象となるゲームイベントの様子を観客に見せることができるギャラリー画像の生成が可能になる。
また本実施形態では、観客状況に応じて、撮影部及びデプス情報取得部の選択を行ってもよい。
例えば図21(A)では、C1に示すように、撮影部342B、デプス情報取得部344Bの近くに、多数の観客が集まっている。このような観客の状況が検知された場合には、多数の観客が集まっている場所にある撮影部342B、デプス情報取得部344Bを選択する。そして、選択された撮影部、デプス情報取得部からの撮影画像、デプス情報を用いて、ギャラリー画像となる合成画像を生成して、例えば第2表示部390Bなどに表示する。このようにすれば多数の観客の観戦位置に応じた最適なギャラリー画像を生成して、当該ギャラリー画像を、これらの観客用の第2表示部390Bに表示できるようになる。従って、これらの観客に最適なギャラリー画像の表示が可能になる。なお、観客の検知は、人感センサなどの各種センサを用いて実現することが可能である。
また図21(B)では、D1に示す観客に対しては、その近くに設置される撮影部342A、デプス情報取得部344Aを選択する。そして、撮影部342A、デプス情報取得部344Aからの撮影画像、デプス情報に基づき生成されたギャラリー画像(合成画像)を、撮影部342A、デプス情報取得部344Aの近くに設置される第2表示部390Aに表示する。同様に、D2に示す観客に対しては、その近くの撮影部342B、デプス情報取得部344Bを選択し、その撮影画像、デプス情報に基づき生成されたギャラリー画像を、その近くの第2表示部390Bに表示する。またD3、D4に示す観客に対しても同様に、その近くの撮影部342C、342D、デプス情報取得部344C、344Dを選択し、生成されたギャラリー画像を、その近くの第2表示部390C、390Dに表示する。このようにすれば、観客の位置の状況に応じた適切な撮影部、デプス情報取得部を選択して、生成されたギャラリー画像を、その観客の近くの第2表示部に表示することが可能になり、観客の状況に応じた適切なギャラリー画像の表示が可能になる。
なお本実施形態のユーザ用の表示部は、ユーザが頭部に装着するHMDの表示部である。この場合にHMDは、例えば光学シースルー型やビデオシースルー型などのシースルー型のHMDであることが望ましい。このようなシースルー型のHMDを用いることで、例えばMR用の第1仮想空間画像をHMDに表示することが可能になる。但しHMDとして非透過型のHMDを使用することも可能である。
また本実施形態では、実空間のユーザに対応する仮想空間のユーザキャラクタが表示される第1仮想空間画像を生成すると共に、仮想空間のユーザキャラクタの代わりに実空間のユーザが表示される合成画像を生成してもよい。
例えば図22はHMDに表示される第1仮想空間画像の例である。この第1仮想空間画像では、実空間のユーザUSAに対応する仮想空間のユーザキャラクタCHAが表示されている。ユーザキャラクタCHAは、ユーザのアバターとなるキャラクタであり、ユーザUSAは、仮想空間において、あたかも自身がユーザキャラクタCHAに変身したかのような仮想現実を体験できる。そして、この図22の第1仮想空間画像は、図10のようなMRの仮想空間画像ではなく、例えばVRの仮想空間画像である。即ち図22のHMDの表示画像では、実空間のユーザは表示されず、仮想空間のユーザキャラクタCHAだけが表示されている。
一方、図23は、第2仮想空間画像と撮影画像の合成画像であるギャラリー画像である。このギャラリー画像では、図22の仮想空間のユーザキャラクタCHAの代わりに、実空間のユーザUSAが表示されている。例えば図22の第1仮想空間画像は、ユーザUSAの視界範囲に仮想空間のオブジェクトだけが登場するVRの画像であるが、図22のギャラリー画像では、仮想空間のオブジェクトOB1、OB3、OB4と、実空間のユーザUSAの画像が混在するMRの画像となっている。
このようにギャラリー画像(合成画像)においては、ユーザキャラクタCHAの代わりにユーザUSAを表示することで、観客は、ユーザキャラクタCHAとして行動している者が、ユーザUSAであることを視覚的に把握できるようになる。例えば、観客が、応援の対象として興味があるのは、ユーザキャラクタCHAではなく、ユーザUSAである場合がある。この場合には、ユーザキャラクタCHAの代わりにユーザUSAを、ギャラリー画像に表示することで、観客にとって好適なギャラリー画像を表示できるようになる。
なお図23のギャラリー画像において、常時にユーザUSAを表示する必要はなく、例えば所与の時間毎に、ユーザUSAの表示とユーザキャラクタCHAの表示を切り替えるようにしてもよい。例えば所与の時間毎に交互に、ユーザUSAを表示したり、ユーザキャラクタCHAを表示するようにする。或いは、図23において、ユーザUSAの全てを表示するのではなく、ユーザUSAの一部の部位のみを表示し、その他の部分についてはユーザキャラクタCHAの方を表示するようにしてもよい。例えば顔の部位についてだけ、ユーザUSAの顔画像を表示し、その他の部分については、ユーザキャラクタCHAの画像を表示するようにしてもよい。
4.詳細な処理
次に本実施形態の詳細な処理例について図24、図25のフローチャートを用いて説明する。
図24では、まず移動体の移動処理を行う(ステップS1)。例えばユーザに対応するユーザキャラクタや、ユーザの敵となるキャラクタを移動させる処理を行う。例えば図8のキャラクタCH1、CH2、CH3やモンスターCM1、CM2、CM3の移動処理を行う。次にゲーム処理を行う(ステップS2)。例えばゲームを進行させたり、ゲームイベントを発生するなどの種々のゲーム処理を行う。そして、仮想空間更新情報により更新される仮想空間情報に基づいて、仮想空間の設定処理を行う(ステップS3)。例えばステップS1の移動体の移動処理やステップS2のゲーム処理に応じて仮想空間更新情報を決定し、この仮想空間更新情報に基づいて、仮想空間でのオブジェクトの設定処理を行う。そして実空間のユーザの視点に対応する仮想空間の第1仮想カメラからみえる第1仮想空間画像を生成して、ユーザのHMDの表示部に表示する(ステップS4)。例えば図14の第1仮想カメラVC1から見える第1仮想空間が画像を生成して、図10に示すようにユーザのHMDの表示部に表示する。
図25では、まず撮影部からの実空間の撮影画像と、デプス情報取得部からの実空間の物体のデプス情報を取得する(ステップS11)。例えば図6のセンサ装置340のRGBカメラ346、デプスカメラ348等により、実空間の撮影画像とデプス情報を取得する。そして仮想空間更新情報に基づき更新される仮想空間情報に基づいて、仮想空間の設定処理を行い、撮影部に対応する仮想空間の第2仮想カメラから見える第2仮想空間画像を生成する(ステップS12)。例えば図14の第2仮想カメラVC2から見る第2仮想空間画像を生成する。そして第2仮想空間画像のオブジェクトのデプス情報と実空間の物体のデプス情報とに基づく隠面消去処理を行いながら、第2仮想空間画像と撮影画像の合成画像を生成し、第2表示部に表示する(ステップS13)。例えばデプス値が各画素に設定される第2仮想空間画像と、実空間の物体のデプス情報に基づくデプス値が各画素に設定される撮影画像とを、画素毎に隠面消去処理を行いながら合成することで、合成画像を生成し、生成された合成画像を観客用の第2表示部に表示する。
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また仮想空間の設定処理、第1仮想空間画像の生成処理及び表示処理、撮影画像やデプス情報の取得処理、第2仮想空間画像の生成処理、第2仮想空間画像と撮影画像の合成処理及び表示処理等も、本実施形態で説明したものに限定されず、これらと均等な手法・処理・構成も本発明の範囲に含まれる。また本発明は種々のゲームに適用できる。また本発明は、業務用ゲーム装置、家庭用ゲーム装置、又は多数のユーザが参加する大型アトラクションシステム等の種々のシミュレーションシステムに適用できる。