以下、本発明の一実施形態について、図面を参照しながら説明する。
図1は、本発明の一実施形態に係る仮想空間共有システム1の全体構成の一例を示す図である。図1に示すように、本実施形態に係る仮想空間共有システム1は、複数のユーザシステム2(2−1、2−2、・・・、2−n)と、管理システム3と、含んでいる。ユーザシステム2及び管理システム3は、インターネット等のコンピュータネットワーク4に接続されており、複数のユーザシステム2及び管理システム3は互いに通信可能となっている。
図2は、本発明の一実施形態に係るユーザシステム2の構成の一例を示す図である。図3Aは、本実施形態に係るヘッドマウントディスプレイ(HMD)12の構成の一例を示す図である。図3Bは、本実施形態に係るエンタテインメント装置14の構成の一例を示す図である。
図2に示すように、本実施形態に係るユーザシステム2は、HMD12とエンタテインメント装置14と中継装置16とディスプレイ18とカメラマイクユニット20とコントローラ22とを含んでいる。
本実施形態に係るHMD12には、例えば図3Aに示すように、制御部30、記憶部32、通信部34、入出力部36、表示部38、センサ部40、音声出力部42が含まれる。
制御部30は、例えばHMD12にインストールされるプログラムに従って動作するマイクロプロセッサ等のプログラム制御デバイスである。
記憶部32は、例えばROMやRAM等の記憶素子などである。記憶部32には、制御部30によって実行されるプログラムなどが記憶される。
通信部34は、例えば無線LANモジュールなどの通信インタフェースである。
入出力部36は、例えばHDMI(登録商標)(High-Definition Multimedia Interface)ポート、USBポート、AUXポートなどの入出力ポートである。
表示部38は、HMD12の前側に配置されている、例えば液晶ディスプレイや有機ELディスプレイ等のディスプレイであり、エンタテインメント装置14が生成する映像などを表示させる。また表示部38は、HMD12の筐体に収容される。表示部38は、例えばエンタテインメント装置14が出力して中継装置16で中継される映像信号を受信して、当該映像信号が表す映像を出力するようにしてもよい。本実施形態に係る表示部38は、例えば左目用の画像と右目用の画像を表示することによって三次元画像を表示させることができるようになっている。なお表示部38は三次元画像の表示ができず二次元画像の表示のみができるものであっても構わない。
センサ部40は、例えば加速度センサやモーションセンサなどといったセンサである。センサ部40は、HMD12の回転量、移動量などの計測結果を示すモーションデータを所定のフレームレートで、制御部30に出力する。
音声出力部42は、例えばヘッドホンやスピーカ等であり、エンタテインメント装置14が生成する音声データが表す音声などを出力する。音声出力部42は、例えばエンタテインメント装置14が出力して中継装置16で中継される音声信号を受信して、当該音声信号が表す音声を出力する。
本実施形態に係るエンタテインメント装置14は、例えばゲームコンソール、DVDプレイヤ、Blu−ray(登録商標)プレイヤなどといったコンピュータである。本実施形態に係るエンタテインメント装置14は、例えば記憶されているゲームプログラムの実行や光ディスクに記録されたコンテンツの再生などによって映像や音声を生成する。そして本実施形態に係るエンタテインメント装置14は、生成される映像を表す映像信号や生成される音声を表す音声信号を、中継装置16を経由して、HMD12やディスプレイ18に出力する。
本実施形態に係るエンタテインメント装置14には、例えば図3Bに示すように、制御部50、記憶部52、通信部54、入出力部56が含まれる。
制御部50は、例えばエンタテインメント装置14にインストールされるプログラムに従って動作するCPU等のプログラム制御デバイスである。本実施形態に係る制御部50には、CPUから供給されるグラフィックスコマンドやデータに基づいてフレームバッファに画像を描画するGPU(Graphics Processing Unit)も含まれている。
記憶部52は、例えばROMやRAM等の記憶素子やハードディスクドライブなどである。記憶部52には、制御部50によって実行されるプログラムなどが記憶される。また、本実施形態に係る記憶部52には、GPUにより画像が描画されるフレームバッファの領域が確保されている。
通信部54は、例えば無線LANモジュールなどの通信インタフェースなどである。
入出力部56は、HDMI(登録商標)(High-Definition Multimedia Interface)ポート、USBポートなどの入出力ポートである。
本実施形態に係る中継装置16は、エンタテインメント装置14から出力される映像信号や音声信号を中継してHMD12やディスプレイ18に出力するコンピュータである。
本実施形態に係るディスプレイ18は、例えば液晶ディスプレイ等であり、エンタテインメント装置14から出力される映像信号が表す映像などを表示させる。
本実施形態に係るカメラマイクユニット20は、例えば被写体を撮像した画像をエンタテインメント装置14に出力するカメラ20a及び周囲の音声を取得して当該音声を音声データに変換してエンタテインメント装置14に出力するマイク20bを含んでいる。また本実施形態に係るカメラ20aはステレオカメラである。
HMD12と中継装置16とは、例えば、無線通信によるデータの送受信が互いに可能になっている。エンタテインメント装置14と中継装置16とは、例えば、HDMIケーブルやUSBケーブルなどを介して接続されており、データの送受信が互いに可能になっている。中継装置16とディスプレイ18とは、例えば、HDMIケーブルなどを介して接続されている。エンタテインメント装置14とカメラマイクユニット20とは、例えば、AUXケーブルなどを介して接続されている。
本実施形態に係るコントローラ22は、エンタテインメント装置14に対する操作入力を行うための操作入力装置である。ユーザは、コントローラ22が備える方向キーやボタンを押下したり、操作スティックを傾けたりすることで、コントローラ22を用いて各種の操作入力を行うことができる。そして本実施形態では、コントローラ22は、操作入力に対応付けられる入力データをエンタテインメント装置14に出力する。また本実施形態に係るコントローラ22は、USBポートを備えている。そしてコントローラ22は、USBケーブルでエンタテインメント装置14と接続することで、有線で入力データをエンタテインメント装置14に出力することができる。また本実施形態に係るコントローラ22は、無線通信モジュール等を備えており、無線で入力データをエンタテインメント装置14に出力することができるようにもなっている。
管理システム3は、サーバ等から構成されるコンピュータシステムである。本実施形態では、管理システム3を介して複数のユーザシステム2で三次元の仮想空間が共有される。
図4は、仮想空間60がユーザシステム2−1とユーザシステム2−2とで共有されている様子の一例を示す図である。
図4に例示する仮想空間60には、それぞれが板状の三次元仮想オブジェクトである、ユーザの鑑賞対象となる3つの掛け軸オブジェクト62(掛け軸オブジェクト62a、掛け軸オブジェクト62b、及び、掛け軸オブジェクト62c)が配置されている。これらの掛け軸オブジェクト62は、複数のユーザシステム2のそれぞれについての、当該ユーザシステム2に含まれるHMD12を装着するユーザが視覚可能な仮想オブジェクトである。掛け軸オブジェクト62は、複数のポリゴンから構成されており、その正面には書画が描かれた掛け軸の画像などといった、二次元画像であるテクスチャ画像がマッピングされている。図4において、掛け軸オブジェクト62の正面から見て左から右に向かう方向をX軸正方向とする。また掛け軸オブジェクト62の正面から見て手前から奥に向かう方向をY軸正方向とする。また掛け軸オブジェクト62の正面から見て下から上に向かう方向をZ軸正方向とする。
管理システム3は、例えば図4に例示する仮想空間60を表す仮想空間データを、ユーザシステム2からの要求に応じて当該ユーザシステム2に送信する。そして共有する仮想空間を表す仮想空間データはそれぞれのユーザシステム2に記憶される。仮想空間データには、例えば仮想空間60における掛け軸オブジェクト62の位置(例えば、座標値)などを示すデータやテクスチャ画像が含まれる。
そして仮想空間60内には、ユーザシステム2毎に個別の視点64及び視線方向66が設定される。そしてユーザシステム2に含まれるHMD12の表示部38には、当該ユーザシステム2において個別に設定された視点64から視線方向66を見た様子を表す画像が表示される。例えばユーザシステム2−1に含まれるHMD12の表示部38には、視点64aから視線方向66aを見た様子を表す画像が表示される。またユーザシステム2−2に含まれるHMD12の表示部38には、視点64bから視線方向66bを見た様子を表す画像が表示される。
図4の例では、視線方向66aも視線方向66bもY軸正方向を向いている。そして視線方向66aに沿った視点64aを通る線も、視線方向66bに沿った視点64bを通る線も、掛け軸オブジェクト62bと交差する。ここで視線方向66aに沿った視点64aを通る線と、掛け軸オブジェクト62bとの交点の位置をP1とし、視線方向66bに沿った視点64bを通る線と、掛け軸オブジェクト62bとの交点の位置をP2とする。
また、図5に示す、掛け軸オブジェクト62bの表面にマッピングされたテクスチャ画像におけるX1Y1二次元座標系において、位置P1の座標値は(p1x,p1y)であり、位置P2の座標値は(p2x,p2y)であることとする。図5に示すように、当該X1Y1二次元座標系において、テクスチャ画像の上から下に向かう方向をX1軸正方向とし、テクスチャ画像の左から右に向かう方向をY1軸正方向とする。なおX1Y1二次元座標系は、テクスチャ座標系であっても構わない。
また本実施形態では、カメラ20aが所定のサンプリングレートで撮影するHMD12の像を含む画像やセンサ部40による計測結果に基づいて、HMD12の位置や姿勢を特定できるようになっている。そして本実施形態では、ユーザシステム2に含まれるHMD12の位置や姿勢に応じて、当該ユーザシステム2における視点64の位置や視線方向66が設定される。例えば、HMD12を装着するユーザが、HMD12を右方向に旋回させると、当該HMD12を含むユーザシステム2について設定されている視線方向66が右方向に旋回する。ここで例えば、視線方向66の変化量が、HMD12の向きの変化量に比例するようにしてもよい。また例えば、HMD12を装着するユーザが、HMD12を右方向に平行移動させると、当該HMD12を含むユーザシステム2について設定されている視点64の位置が右方向に平行移動する。ここで例えば、視点64の位置の変化量が、HMD12の位置の変化量に比例するようにしてもよい。このようにして本実施形態では、ユーザシステム2のユーザは、当該ユーザシステム2に含まれるHMD12の位置や姿勢を変化させることで、仮想空間60内に設定される視点64の位置や視線方向66を変化させることができるようになっている。
また本実施形態では、各ユーザシステム2は、仮想空間共有システム1に含まれる他のユーザシステム2から、当該ユーザシステム2について設定されている視点64及び視線方向66を示す視点データを受信する。
図6A及び図6Bは、本実施形態に係る視点データの一例を示す図である。図6A及び図6Bに示すように、本実施形態に係る視点データには、ユーザシステムID、視点位置データ、視線方向ベクトルデータが含まれる。視点データに含まれるユーザシステムIDは、ユーザシステム2の識別子であり、視点データは、当該ユーザシステムIDによって識別されるユーザシステム2の視点64や視線方向66を示すこととなる。なお本実施形態では、仮想空間共有システム1に含まれるユーザシステム2のそれぞれには一意のユーザシステムIDが予め割り当てられていることとする。例えばユーザシステム2−1のユーザシステムIDは1であり、ユーザシステム2−2のユーザシステムIDは2であることとする。視点位置データは、視点64の位置を示すデータである。視線方向ベクトルデータは、視線方向66のベクトルを示すデータである。
図6Aに示す視点データには、ユーザシステム2−1について設定されている視点64a及び視線方向66aが示されている。例えば、図6Aに示す視点データに含まれる視点位置データが示す三次元座標値(xa,ya,za)は、視点64aの位置を示している。また例えば、図6Aに示す視点データに含まれる視線方向ベクトルデータが示す三次元座標値(Vxa,Vya,Vza)は、視線方向66aに沿った単位ベクトルを示している。例えば図4に示すように視線方向66aがY軸正方向を向いている場合には、(Vxa,Vya,Vza)の値は(0,1,0)となる。
図6Bに示す視点データには、ユーザシステム2−2について設定されている視点64b及び視線方向66bが示されている。例えば、図6Bに示す視点データに含まれる視点位置データが示す三次元座標値(xb,yb,zb)は、視点64bの位置を示している。また例えば、図6Bに示す視点データに含まれる視線方向ベクトルデータが示す三次元座標値(Vxb,Vyb,Vzb)は、視線方向66bに沿った単位ベクトルを示している。例えば図4に示すように視線方向66bがY軸正方向を向いている場合には、(Vxb,Vyb,Vzb)の値は(0,1,0)となる。
そして図6Aに示す視点データはユーザシステム2−1から管理システム3に送信される。そして管理システム3は、当該視点データを、ユーザシステム2−2などといった、仮想空間共有システム1に含まれる、ユーザシステム2−1以外のユーザシステム2に送信する。また図6Bに示す視点データはユーザシステム2−2から管理システム3に送信される。そして管理システム3は、当該視点データを、ユーザシステム2−1などといった、仮想空間共有システム1に含まれる、ユーザシステム2−2以外のユーザシステム2に送信する。このようにして本実施形態では、各ユーザシステム2について設定されている視点64の位置や視線方向66を示すデータを複数のユーザシステム2で共有できることとなる。すなわち各ユーザシステム2は、他のユーザシステム2について設定されている視点64の位置や視線方向66を特定できることとなる。
そして本実施形態に係るユーザシステム2は、他のユーザシステム2において設定されている視点64の位置を示す視点オブジェクトや注視点の位置を示す注視点オブジェクトを共有される仮想空間内に配置できるようになっている。以下、本実施形態に係る視点オブジェクトを視点インジケータ68と呼び、本実施形態に係る注視点オブジェクトを注視点インジケータ70と呼ぶこととする。そして本実施形態では、ユーザシステム2のユーザは、表示される視点インジケータ68や注視点インジケータ70によって、他のユーザシステム2のユーザがどこからどこを見ているのかを知ることができるようになっている。
以下、視点インジケータ68及び注視点インジケータ70の表示について、さらに説明する。
図7は、ユーザシステム2−1のHMD12の表示部38に表示される、視点64aから視線方向66aを見た様子を表す画像である仮想空間画像72aの一例を示す図である。また図8には、図7に示す仮想空間画像72aがユーザシステム2−1のHMD12に表示される際の視点64a及び視線方向66aが設定された仮想空間74の一例が示されている。
図9は、ユーザシステム2−2のHMD12の表示部38に表示される、視点64bから視線方向66bを見た様子を表す画像である仮想空間画像72bの一例を示す図である。また図10には、図9に示す仮想空間画像72bがユーザシステム2−2のHMD12に表示される際の視点64b及び視線方向66bが設定された仮想空間76の一例が示されている。
なお仮想空間画像72aや仮想空間画像72bは、三次元画像であっても二次元画像であっても構わない。
図8に示す仮想空間74には、ユーザシステム2−2に対応付けられる視点64bの位置に視点インジケータ68bが配置されている。また図8に示す仮想空間74には、視線方向66bに沿った視点64bを通る線と、掛け軸オブジェクト62bとの交点の位置(図4に示されている位置P2)に注視点インジケータ70bが配置されている。なお図8の例では、視点インジケータ68bは、視点64aから見て視線方向66aの逆側に配置されている。すなわち、視点インジケータ68bのY座標値が、視点64aのY座標値よりも小さい。そのため図7に示す仮想空間画像72aには、視点インジケータ68bの像は含まれていない。
図10に示す仮想空間76には、ユーザシステム2−1に対応付けられる視点64aの位置に、視点を表す仮想オブジェクトである視点インジケータ68aが配置されている。また図10に示す仮想空間76には、視線方向66aに沿った視点64aを通る線と、掛け軸オブジェクト62bとの交点の位置(図4に示されている位置P1)に注視点インジケータ70aが配置されている。
ここで図8に例示されている視点インジケータ68bや図10に例示されている視点インジケータ68aは、例えば球状の仮想三次元オブジェクトである。また図8に例示されている注視点インジケータ70bや図10に例示されている注視点インジケータ70aは、例えば掛け軸オブジェクト62bにマッピングされたテクスチャの画像に重畳される十字形状の二次元画像である。
図11Aは、視点インジケータ68a及び注視点インジケータ70aに対応付けられるインジケータデータの一例を示す図である。図11Bは、視点インジケータ68b及び注視点インジケータ70bに対応付けられるインジケータデータの一例を示す図である。
図11A及び図11Bに示すように、本実施形態に係るインジケータデータには、ユーザシステムID、視点インジケータ位置データ、テクスチャID、注視点インジケータ位置データ、が含まれる。インジケータデータに含まれるユーザシステムIDは、ユーザシステム2の識別子である。インジケータデータは、当該ユーザシステムIDによって識別されるユーザシステム2の視点64に対応付けられる視点インジケータ68及び視線方向66に対応付けられる注視点インジケータ70を示すこととなる。視点インジケータ位置データは、視点インジケータ68の位置を示すデータである。テクスチャIDは、注視点インジケータ70が配置されるテクスチャ画像の識別子である。ここでは例えば、掛け軸オブジェクト62bにマッピングされているテクスチャ画像のテクスチャIDは2であることとする。注視点インジケータ位置データは、注視点インジケータ70の位置を示すデータである。図11A及び図11Bに示す注視点インジケータ位置データでは、テクスチャIDにより識別されるテクスチャ画像に設定されるX1Y1二次元座標系における座標値により注視点インジケータ70の位置が表現されている。
例えば、図11Aに示すインジケータデータに含まれる視点インジケータ位置データが示す三次元座標値(x1a,y1a,z1a)は、視点インジケータ68aの位置を示している。ここで当該三次元座標値(x1a,y1a,z1a)は、XYZ三次元座標系における三次元座標値である。また例えば、図11Aに示すインジケータデータに含まれる注視点インジケータ位置データが示す二次元座標値(x2a,y2a)は、注視点インジケータ70aの位置を示している。ここで当該二次元座標値(x2a,y2a)は例えば、掛け軸オブジェクト62bにマッピングされたテクスチャ画像に設定されたX1Y1二次元座標系における二次元座標値である。
また例えば、図11Bに示すインジケータデータに含まれる視点インジケータ位置データが示す三次元座標値(x1b,y1b,z1b)は、視点インジケータ68bの位置を示している。ここで当該三次元座標値(x1b,y1b,z1b)は、XYZ三次元座標系における三次元座標値である。また例えば、図11Bに示すインジケータデータに含まれる注視点インジケータ位置データが示す二次元座標値(x2b,y2b)は、注視点インジケータ70bの位置を示している。ここで当該二次元座標値(x2b,y2b)は例えば、掛け軸オブジェクト62bにマッピングされたテクスチャ画像に設定されたX1Y1二次元座標系における二次元座標値である。
本実施形態では、ユーザシステム2−1が、図6Aに例示する視点データに基づいて、図11Aに例示するインジケータデータを生成する。またユーザシステム2−2が、図6Bに例示する視点データに基づいて、図11Bに例示するインジケータデータを生成する。そして生成されるインジケータデータが示す位置に視点インジケータ68や注視点インジケータ70が仮想空間に配置される。このようにして本実施形態では、ユーザシステム2のユーザは、共有された仮想空間内における、他のユーザシステム2のユーザがどこからどこを見ているのかを知ることができる。
また本実施形態では、ユーザシステム2に含まれるマイク20bに入力された音声を表す音声データは、他のユーザシステム2に送信される。そして当該他のユーザシステム2のHMD12に含まれる音声出力部42から当該音声データが表す音声が出力される。このようにして本実施形態では、ユーザシステム2のユーザ間で音声によるコミュニケーションを行えるようになっている。そして本実施形態では、このような音声や視点インジケータ68や注視点インジケータ70といった画像を手がかりとして、ユーザ間で円滑なコミュニケーションを図ることができることとなる。
なお視点インジケータ68や注視点インジケータ70の位置や形状は上述のものに限定されない。例えば、図12に示すように、仮想空間76に配置される注視点インジケータ70aが三次元の立方体形状であっても構わない。図12に示す注視点インジケータ70aは、例えば、視線方向66aに沿った視点64aを通る線と、視点64aを中心とした所定の長さの半径の球面との交点に配置されている。この場合は、例えば図13に示す仮想空間画像72bがユーザシステム2−2のHMD12の表示部38に表示されることとなる。
また例えば、注視点インジケータ70の位置が、二次元座標値ではなく三次元座標値で表現されてもよい。またこの場合、インジケータデータにテクスチャIDが含まれないようにしてもよい。例えば図12に示す注視点インジケータ70aが仮想空間76に配置される際には、図11Aに示すインジケータデータにテクスチャIDが含まれず、注視点インジケータ位置データがXYZ三次元座標系における三次元座標値で表現されていてもよい。
また例えば、視点インジケータ68や注視点インジケータ70であるオブジェクトの色や形状が、当該オブジェクトに対応付けられるユーザシステム2に対応した色や形状であってもよい。そして当該オブジェクトによって、対応付けられるユーザシステム2が識別可能であっても構わない。こうすれば複数の視点インジケータ68が表示されている際に、ユーザシステム2のユーザは、どの視点インジケータ68がどのユーザシステム2のユーザの視点の位置を表しているのかを知ることができることとなる。また例えば、複数の注視点インジケータ70が表示されている際に、ユーザシステム2のユーザは、どの注視点インジケータ70がどのユーザシステム2のユーザの視線方向を表しているのかを知ることができることとなる。
また本実施形態では、ユーザシステム2のユーザは、視点インジケータ68が表示されるか否か、また、注視点インジケータ70が表示されるか否かを、例えばコントローラ22に対して所定の操作を行うことで切り替えることができるようになっている。
またカメラ20aにより撮影されるユーザの画像に基づいて当該ユーザのシルエットを表す三次元オブジェクトが生成されてもよい。そして当該三次元オブジェクトが、視点インジケータ68や注視点インジケータ70の代わりに、ユーザの視点64や視線方向66を示すオブジェクトとして仮想空間内に配置されてもよい。またこの場合に、ユーザのシルエットを表す三次元オブジェクトが表示される否かを、例えばコントローラ22に対して所定の操作を行うことで切り替えることができるようになっていてもよい。
また例えば、ユーザシステム2−1が、図11Aに例示するインジケータデータを生成して、当該インジケータデータをユーザシステム2−2に送信するようにしてもよい。また例えば、ユーザシステム2−2が、図11Bに例示するインジケータデータを生成して、当該インジケータデータがユーザシステム2−1に送信するようにしてもよい。
また本実施形態に係るユーザシステム2は、ユーザが行う所定の操作に応じて、仮想空間内にポインタを配置できるようになっている。以下、ポインタの表示について、さらに説明する。
図14は、仮想空間78の一例を示す図である。図14に示す仮想空間78は、ポインタ画像80が配置されていない図10に示す仮想空間76において、ユーザシステム2−2のユーザが行うリセット操作に応じて、ポインタ画像80が配置された際の状態を示している。本実施形態ではリセット操作に応じて、視線方向66bに沿った視点64bを通る線と、掛け軸オブジェクト62bとの交点の位置P2にポインタ画像80が配置される。なおリセット操作としては、例えば、コントローラ22が備える所定のボタンの押下操作、エンタテインメント装置14と通信可能なマウスへのクリック操作、エンタテインメント装置14と通信可能なタッチパッドへのタップ操作、などが挙げられる。
図15は、ユーザシステム2−2のHMD12の表示部38に表示される、図14に示す仮想空間78内に配置された視点64bから視線方向66bを見た様子を表す画像である仮想空間画像72bの一例を示す図である。図15に示す仮想空間画像72bには、視点インジケータ68a及び注視点インジケータ70aに加え、ポインタ画像80が含まれている。本実施形態に係るポインタ画像80は、例えば掛け軸オブジェクト62bにマッピングされたテクスチャの画像に重畳される矢印形状の二次元画像である。このようにして本実施形態によれば、ユーザによるリセット操作に応じて適切な位置にポインタが配置された仮想空間の画像を表示できることとなる。ここでは例えば、視線方向66bに沿った視点64bを通る線と掛け軸オブジェクト62bとの交点の位置P2にポインタが配置されることとなる。
図16は、ポインタ画像80に対応付けられるポインタデータの一例を示す図である。図16に示すように、本実施形態に係るポインタデータには、ユーザシステムID、テクスチャID、ポインタ位置データ、が含まれる。ポインタデータに含まれるユーザシステムIDは、ユーザシステム2の識別子である。ポインタデータは、当該ユーザシステムIDによって識別されるユーザシステム2のユーザにより配置されたポインタ画像80を示すことになる。テクスチャIDは、ポインタ画像80がマッピングされるテクスチャ画像の識別子である。ポインタ位置データは、ポインタ画像80の位置を示すデータである。
図16に示すポインタ位置データでは、テクスチャIDにより識別されるテクスチャ画像に設定されるX1Y1二次元座標系における座標値によりポインタ画像80の位置が表現されている。図16に示すポインタデータに含まれるポインタ位置データが示す二次元座標値(x3,y3)は、掛け軸オブジェクト62bにマッピングされたテクスチャ画像に設定されたX1Y1二次元座標系におけるポインタ画像80の位置を示している。リセット操作がされた際の初期状態では、位置P2にポインタ画像80が配置されるので、図16に示すポインタデータに含まれるポインタ位置データが示す二次元座標値(x3,y3)は(p2x,p2y)となる。
そして本実施形態では、図16に示すポインタデータはユーザシステム2−2から管理システム3に送信される。そして管理システム3は、当該ポインタデータを、ユーザシステム2−1などといった、仮想空間共有システム1に含まれる、ユーザシステム2−2以外のユーザシステム2に送信する。このようにして本実施形態では、各ユーザシステム2について設定されているポインタ画像80の位置を示すデータを複数のユーザシステム2で共有できることとなる。すなわち各ユーザシステム2は、他のユーザシステム2について設定されたポインタ画像80の位置を特定できることとなる。
図17は、このようにしてユーザシステム2−1に送信されたポインタデータに基づいて、ポインタ画像80が配置された仮想空間82の一例を示す図である。なお図17に示す仮想空間82では、図8に示す仮想空間74とは異なり、視点インジケータ68b及び注視点インジケータ70bは配置されていない。図18は、ユーザシステム2−1のHMD12の表示部38に表示される、図17に示す仮想空間82内に配置された視点64aから視線方向66aを見た様子を表す画像である仮想空間画像72aの一例を示す図である。
また本実施形態では、ユーザシステム2のユーザは、所定の移動操作を行うことで、当該ユーザシステム2において配置されたポインタ画像80の位置を変化させることができるようになっている。ここで移動操作としては例えば、コントローラ22が備える方向キーの押下操作、エンタテインメント装置14と通信可能なマウスへのドラッグ操作、エンタテインメント装置14と通信可能なタッチパッドへのスライド操作、などが挙げられる。ここで例えば押下された方向キーに対応付けられる方向にポインタ画像80の位置が変化するようにしてもよい。また例えば、マウスがドラッグされた方向やタッチパッドがスライドされた方向にポインタ画像80の位置が変化するようにしてもよい。
またユーザシステム2のユーザは、所定の消去操作を行うことで、当該ユーザシステム2において配置されたポインタ画像80を消去できるようになっている。ここで消去操作としては例えば、コントローラ22が備える所定のボタンの押下操作、エンタテインメント装置14と通信可能なマウスへのダブルクリック操作、エンタテインメント装置14と通信可能なタッチパッドへのダブルタップ操作、などが挙げられる。本実施形態ではこの場合、ポインタデータに含まれるテクスチャIDに0が設定され、ポインタ位置データの値が(0,0)が設定される。そして本実施形態では、ポインタデータに含まれるテクスチャIDが0であり、ポインタ位置データの値が(0,0)である場合は、ポインタ画像80が仮想空間に配置されないよう制御されることとなる。またテクスチャIDが0であり、ポインタ位置データの値が(0,0)であるポインタデータをユーザシステム2が受信した際には、当該ユーザシステム2においてポインタ画像80が仮想空間に配置されないよう制御されることとなる。なお消去操作が行われた際に、上述したポインタデータの代わりに、ポインタ画像80の消去指示が送信されるようにしてもよい。
また、公知のピーク検出技術を用いて、カメラ20aが撮影する画像に基づいて実空間内の検出領域にユーザの指先が存在するか否かが特定されるようにしてもよい。そして例えば検出領域内にユーザの指先が入る操作が上述のリセット操作として取り扱われるようにしてもよい。また例えば検出領域内におけるユーザの指先の位置の変化が上述の移動操作として取り扱われるようにしてもよい。ここで例えば、ユーザの指先が動かされた方向にポインタ画像80の位置が変化するようにしてもよい。また例えば、検出領域内に存在するユーザの指先を検出領域の外に出す操作が上述の消去操作として取り扱われるようにしてもよい。
またポインタ画像80が配置される位置が、掛け軸オブジェクト62bにおける位置を示す範囲に制限されるよう制御されてもよい。より具体的には例えば、ポインタ画像80の移動範囲が、当該ポインタ画像80が重畳される掛け軸オブジェクト62bのテクスチャ画像上に制限されてもよい。この場合には例えば、テクスチャ画像の右端にポインタ画像80が配置されている際には、例えば、ポインタ画像80を右に動かす移動操作が行われてもポインタ画像80の位置は変化しないよう制御される。
また例えば、ユーザがリセット操作を行った際には、ポインタデータの送信が行われず、その後にユーザが所定の送信操作を行った際にポインタデータの送信が行われるようにしてもよい。そして所定の送信操作が行われた後に、他のユーザシステム2において仮想空間にポインタ画像80が配置されるようにしてもよい。
またポインタは二次元の画像である必要はなく、例えば三次元の仮想オブジェクトでも構わない。また例えば、ポインタの位置が、二次元座標値ではなく三次元座標値で表現されてもよい。またこの場合、ポインタデータにテクスチャIDが含まれないようにしてもよい。例えば図16に示すポインタデータにテクスチャIDが含まれず、ポインタ位置データがXYZ三次元座標系における三次元座標値で表現されていてもよい。
以下、本実施形態に係るエンタテインメント装置14の機能並びに本実施形態に係るエンタテインメント装置14で実行される処理についてさらに説明する。
図19は、本実施形態に係るエンタテインメント装置14で実装される機能の一例を示す機能ブロック図である。なお、本実施形態に係るエンタテインメント装置14で、図19に示す機能のすべてが実装される必要はなく、また、図19に示す機能以外の機能が実装されていても構わない。
図19に示すように、本実施形態に係るエンタテインメント装置14は、機能的には例えば、仮想空間データ記憶部90、自視点データ記憶部92、他視点データ記憶部94、インジケータデータ記憶部96、自ポインタデータ記憶部98、他ポインタデータ記憶部100、撮影画像受付部102、位置姿勢特定部104、自視点データ管理部106、視点データ送信部108、視点データ受信部110、他視点データ管理部112、インジケータデータ管理部114、ポインタ操作特定部116、自ポインタデータ管理部118、ポインタデータ送信部120、ポインタデータ受信部122、他ポインタデータ管理部124、仮想空間管理部126、フレーム画像生成部128、フレーム画像表示制御部130、を含んでいる。
仮想空間データ記憶部90、自視点データ記憶部92、他視点データ記憶部94、インジケータデータ記憶部96、自ポインタデータ記憶部98、他ポインタデータ記憶部100は、記憶部52を主として実装される。撮影画像受付部102、フレーム画像表示制御部130は、入出力部56を主として実装される。位置姿勢特定部104、自視点データ管理部106、他視点データ管理部112、インジケータデータ管理部114、自ポインタデータ管理部118、他ポインタデータ管理部124、仮想空間管理部126、フレーム画像生成部128は、制御部50を主として実装される。視点データ送信部108、視点データ受信部110、ポインタデータ送信部120、ポインタデータ受信部122は、通信部54を主として実装される。ポインタ操作特定部116は、通信部54又は入出力部56を主として実装される。
以上の機能は、コンピュータであるエンタテインメント装置14にインストールされた、以上の機能に対応する指令を含むプログラムを制御部50で実行することにより実装されてもよい。このプログラムは、例えば、光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等のコンピュータ読み取り可能な情報記憶媒体を介して、あるいは、インターネットなどを介してエンタテインメント装置14に供給されてもよい。
仮想空間データ記憶部90は、本実施形態では例えば、図4に示す仮想空間60、図8に示す仮想空間74、図10や図12に示す仮想空間76、図14に示す仮想空間78における、各仮想オブジェクトの位置(例えば、座標値)を示すデータを記憶する。仮想空間データ記憶部90には、例えば、掛け軸オブジェクト62、視点64及び視線方向66、視点インジケータ68、注視点インジケータ70、ポインタ画像80の代表点の位置を示すデータが記憶される。また仮想空間データ記憶部90には、例えば、仮想オブジェクトの形状や大きさを示すデータやテクスチャ画像やテクスチャ画像がマッピングされる仮想オブジェクトの識別子などが記憶されてもよい。
自視点データ記憶部92は、本実施形態では例えば、当該自視点データ記憶部92が含まれるユーザシステム2のユーザの視点64の位置及び視線方向を示す視点データを記憶する。図6A及び図6Bに示すように、視点データには例えば、ユーザシステムID、視点位置データ、視線方向ベクトルデータが含まれる。例えばユーザシステム2−1の自視点データ記憶部92には、図6Aに例示する視点データが記憶される。また例えば、ユーザシステム2−2の自視点データ記憶部92には、図6Bに例示する視点データが記憶される。本実施形態では例えば、ユーザシステム2に割り当てられているユーザシステムIDが、当該ユーザシステム2の自視点データ記憶部92に記憶される視点データのユーザシステムIDとして設定される。
他視点データ記憶部94は、本実施形態では例えば、当該自視点データ記憶部92が含まれるユーザシステム2とは異なるユーザシステム2のユーザの視点64の位置及び視線方向66を示す視点データを記憶する。図6A及び図6Bに示すように、視点データには例えば、ユーザシステムID、視点位置データ、視線方向ベクトルデータが含まれる。
他視点データ記憶部94は、ユーザシステムIDが互いに異なる複数の視点データを記憶してもよい。例えばユーザシステム2−1の他視点データ記憶部94に、仮想空間共有システム1に含まれる、ユーザシステム2−1以外のユーザシステム2にそれぞれ対応付けられる複数の視点データが記憶されてもよい。この場合、例えば図6Bに示す視点データは、ユーザシステム2−1の他視点データ記憶部94に記憶される複数の視点データのうちの1つであることとなる。また例えばユーザシステム2−2の他視点データ記憶部94に、仮想空間共有システム1に含まれる、ユーザシステム2−2以外のユーザシステム2にそれぞれ対応付けられる複数の視点データが記憶されてもよい。この場合、例えば図6Aに示す視点データは、ユーザシステム2−2の他視点データ記憶部94に記憶される複数の視点データのうちの1つであることとなる。
インジケータデータ記憶部96は、本実施形態では例えば、他のユーザシステム2のユーザの視点64の位置及び視線方向66に対応付けられるインジケータデータを記憶する。図11A及び図11Bに示すように、インジケータデータには例えば、ユーザシステムID、視点インジケータ位置データ、テクスチャID、注視点インジケータ位置データ、が含まれる。
インジケータデータ記憶部96は、ユーザシステムIDが互いに異なる複数のインジケータデータを記憶してもよい。例えばユーザシステム2−1のインジケータデータ記憶部96に、仮想空間共有システム1に含まれる、ユーザシステム2−1以外のユーザシステム2にそれぞれ対応付けられる複数のインジケータデータが記憶されてもよい。この場合、例えば図11Bに示すインジケータデータは、ユーザシステム2−1のインジケータデータ記憶部96に記憶される複数のインジケータデータのうちの1つであることとなる。また例えばユーザシステム2−2のインジケータデータ記憶部96に、仮想空間共有システム1に含まれる、ユーザシステム2−2以外のユーザシステム2にそれぞれ対応付けられる複数のインジケータデータが記憶されてもよい。この場合、例えば図11Aに示す視点データは、ユーザシステム2−2のインジケータデータ記憶部96に記憶される複数のインジケータデータのうちの1つであることとなる。
自ポインタデータ記憶部98は、本実施形態では例えば、当該自ポインタデータ記憶部98が含まれるユーザシステム2のユーザによって設定されるポインタを示すポインタデータを記憶する。図16に示すように、ポインタデータには例えば、ユーザシステムID、テクスチャID、ポインタ位置データが含まれる。例えばユーザシステム2−2の自ポインタデータ記憶部98には、図16に例示するポインタデータが記憶される。また本実施形態では例えば、ユーザシステム2に割り当てられているユーザシステムIDが、当該ユーザシステム2の自ポインタデータ記憶部98に記憶されるポインタデータのユーザシステムIDとして設定される。
なお上述のように、ユーザシステム2のユーザによってポインタが仮想空間に配置されない際には、ポインタデータに含まれるテクスチャIDとして0が設定され、ポインタ位置データの値として(0,0)が設定される。
他ポインタデータ記憶部100は、本実施形態では例えば、当該他ポインタデータ記憶部100が含まれるユーザシステム2とは異なるユーザシステム2のユーザによって設定されるポインタを示すポインタデータを記憶する。
他ポインタデータ記憶部100は、ユーザシステムIDが互いに異なる複数のポインタデータを記憶してもよい。例えばユーザシステム2−1の他ポインタデータ記憶部100に、仮想空間共有システム1に含まれる、ユーザシステム2−1以外のユーザシステム2にそれぞれ対応付けられる複数のポインタデータが記憶されてもよい。この場合、例えば図16に示すポインタデータは、ユーザシステム2−1の他ポインタデータ記憶部100に記憶される複数のポインタデータのうちの1つであることとなる。また例えばユーザシステム2−2の他ポインタデータ記憶部100に、仮想空間共有システム1に含まれる、ユーザシステム2−2以外のユーザシステム2にそれぞれ対応付けられる複数のポインタデータが記憶されてもよい。
撮影画像受付部102は、本実施形態では例えば、カメラ20aが所定のサンプリングレートで撮影する、HMD12の像を含む画像を受け付ける。
位置姿勢特定部104は、本実施形態では例えば、撮影画像受付部102が受け付けた画像に基づいて、HMD12の位置や姿勢を特定する。なお位置姿勢特定部104は、HMD12のセンサ部40により計測される、HMD12の回転量、移動量などの計測結果を表すモーションデータに基づいて、HMD12の位置や姿勢を特定してもよい。この場合、例えば、前回特定された位置をモーションデータが表す移動量だけ移動させた位置が新たなHMD12の位置として特定されてもよい。また例えば、前回特定された姿勢をモーションデータが表す回転量だけ回転させた姿勢が新たなHMD12の姿勢として特定されてもよい。
自視点データ管理部106は、本実施形態では例えば、位置姿勢特定部104が特定したHMD12の位置や姿勢に基づいて、自視点データ記憶部92に記憶されている視点データの値を更新する。ここで例えば、視点データに含まれる視点位置データが示す三次元座標値の変化量が、位置姿勢特定部104により特定されるHMD12の位置の変化量に比例するよう、視点位置データの値が更新されるようにしてもよい。また例えば、視点データに含まれる視線方向ベクトルデータが示すベクトルの変化量が、位置姿勢特定部104により特定されるHMD12の回転量に比例するよう、視線方向ベクトルデータの値が更新されるようにしてもよい。
視点データ送信部108は、本実施形態では例えば、自視点データ記憶部92に記憶されている視点データを管理システム3に送信する。上述のように、管理システム3は、このようにして送信される視点データを中継して、他のユーザシステム2に送信する。ここで例えば、自視点データ記憶部92に記憶されている視点データが更新される度に、当該更新に応じて更新後の値の視点データが管理システム3経由で他のユーザシステム2に送信されてもよい。また例えば、所定の時間間隔(例えば5秒間隔)で、自視点データ記憶部92に記憶されている視点データが管理システム3経由で他のユーザシステム2に送信されてもよい。
視点データ受信部110は、本実施形態では例えば、管理システム3から送信される、他のユーザシステム2により送信された視点データを受信する。
他視点データ管理部112は、本実施形態では例えば、視点データ受信部110が受信する視点データに基づいて、他視点データ記憶部94に記憶されている視点データの値を更新する。ここで他視点データ管理部112は、視点データ受信部110による視点データの受信に応じて、他視点データ記憶部94に記憶されている視点データの値を更新してもよい。
インジケータデータ管理部114は、本実施形態では、例えば、他視点データ記憶部94に記憶されている視点データに基づいて、当該視点データに対応付けられるインジケータデータを生成する。本実施形態では例えば、他視点データ記憶部94に記憶されている視点データの値に基づいて、当該視点データとユーザシステムIDが同じであるインジケータデータの値が更新される。
例えば、他視点データ記憶部94に記憶されている視点データの視点位置データの値が、当該視点データとユーザシステムIDが同じであるインジケータデータの視点インジケータ位置データの値として設定される。
また本実施形態では例えば、他視点データ記憶部94に記憶されている視点データの視線方向ベクトルデータが表すベクトルに沿った、当該視点データの視点位置データが表す位置を通る線と交差するテクスチャ画像が特定される。また当該テクスチャ画像に設定されたX1Y1二次元座標系における、当該視点データの視線方向ベクトルデータが表すベクトルに沿った、当該視点データの視点位置データが表す位置を通る線と当該テクスチャ画像との交点の位置の二次元座標値が特定される。そして例えば、特定されるテクスチャ画像の識別子が、当該視点データとユーザシステムIDが同じであるインジケータデータのテクスチャIDとして設定される。また例えば、特定される二次元座標値が、当該視点データとユーザシステムIDが同じであるインジケータデータの注視点インジケータ位置データの値として設定される。
なお図12の例のように、他視点データ記憶部94に記憶されている視点データの視点位置データが表す位置を中心とした所定の長さの半径の球面が特定されてもよい。そして特定される球面と、他視点データ記憶部94に記憶されている視点データの視線方向ベクトルデータが表すベクトルに沿った、当該視点データの視点位置データが表す位置を通る線と、の交点が特定されてもよい。そして特定される交点の三次元座標値が、当該視点データとユーザシステムIDが同じであるインジケータデータの注視点インジケータ位置データの値として設定されてもよい。またこの場合に、当該インジケータデータにはテクスチャIDが含まれていなくてもよい。
ポインタ操作特定部116は、本実施形態では例えば、上述のリセット操作、移動操作、消去操作などといった、仮想空間内に配置されるポインタに関する操作を特定する。ここでは例えば、上述したようなコントローラ22、マウス、タッチパッドへのユーザの操作が検出された際に、当該操作に応じたポインタ画像80に関する操作が行われたことが特定される。
自ポインタデータ管理部118は、本実施形態では例えば、ポインタ操作特定部116がポインタ画像80に関する操作を特定した際に、当該操作に応じて自ポインタデータ記憶部98に記憶されているポインタデータを更新する。
例えばリセット操作が特定された際には、自ポインタデータ記憶部98に記憶されている視点データの視線方向ベクトルデータが示すベクトルに沿った、当該視点データの視点位置データが示す位置を通る線と交差するテクスチャ画像が特定される。また自ポインタデータ記憶部98に記憶されている視点データの視線方向ベクトルデータが示すベクトルに沿った、当該視点データの視点位置データが示す位置を通る線と当該テクスチャ画像との交点の位置の二次元座標値も特定される。なお当該二次元座標値は、例えば当該テクスチャ画像に設定されたX1Y1二次元座標系における二次元座標値である。
そして例えば、自ポインタデータ記憶部98に記憶されているポインタデータに含まれるテクスチャIDとして、特定されるテクスチャ画像の識別子が設定される。そして例えば、当該ポインタデータに含まれるポインタ位置データの値として、特定される二次元座標値が設定される。
また移動操作が特定された際には、例えば、当該移動操作に応じた値だけ、自ポインタデータ記憶部98に記憶されているポインタデータに含まれるポインタ位置データの値が更新される。ここで自ポインタデータ管理部118は、ポインタ位置データの値が、掛け軸オブジェクト62bにおける位置を示す二次元座標値の範囲に制限されるよう制御してもよい。
また消去操作が特定された際には、例えば、テクスチャIDの値が0に更新され、ポインタ位置データの値が(0,0)に更新される。
ポインタデータ送信部120は、本実施形態では例えば、自ポインタデータ記憶部98に記憶されているポインタデータを管理システム3に送信する。上述のように、管理システム3は、このようにして送信されるポインタデータを中継して、他のユーザシステム2に送信する。ここで例えば、自ポインタデータ記憶部98に記憶されているポインタデータが更新される度に、当該更新に応じて更新後の値の視点データが管理システム3経由で他のユーザシステム2に送信されてもよい。また例えば、所定の時間間隔(例えば5秒間隔)で、自ポインタデータ記憶部98に記憶されているポインタデータが管理システム3経由で他のユーザシステム2に送信されてもよい。
ポインタデータ受信部122は、本実施形態では例えば、管理システム3から送信される、他のユーザシステム2により送信されたポインタデータを受信する。
他ポインタデータ管理部124は、本実施形態では例えば、ポインタデータ受信部122が受信するポインタデータに基づいて、他ポインタデータ記憶部100に記憶されているポインタデータの値を更新する。ここで他ポインタデータ管理部124は、ポインタデータ受信部122によるポインタデータの受信に応じて、他ポインタデータ記憶部100に記憶されているポインタデータの値を更新してもよい。
仮想空間管理部126は、本実施形態では、表示対象となる仮想空間内に各種の仮想オブジェクトを配置する。本実施形態では例えば、仮想空間管理部126は、仮想空間データ記憶部90に記憶されている各種データの値を設定することで、仮想空間内に各種の仮想オブジェクトを配置する。例えば自視点データ記憶部92に記憶されている視点データに基づいて、視点64及び視線方向66が配置される。また例えば、インジケータデータ記憶部96に記憶されているインジケータデータに基づいて、視点インジケータ68及び注視点インジケータ70が配置される。また例えば、自ポインタデータ記憶部98に記憶されているポインタデータ及び他ポインタデータ記憶部100に記憶されているポインタデータに基づいてポインタが配置される。
ここでは例えば、ユーザシステム2−1の仮想空間管理部126が図8に例示する仮想空間74に相当する各種データの値を設定することで各種のオブジェクトが仮想空間74に配置される。例えば仮想空間74には、ユーザシステム2−1の自視点データ記憶部92に記憶されている視点データに応じた、視点64a及び視線方向66aが配置される。また例えば仮想空間74には、ユーザシステム2−1のインジケータデータ記憶部96に記憶されているインジケータデータに応じた、視点インジケータ68b及び注視点インジケータ70bが配置される。この場合、仮想空間管理部126は、視点64bを通る、ユーザシステム2−2に含まれるHMD12の姿勢に応じた視線方向66bに沿った、視点64bから離間した位置に、注視点インジケータ70bを配置することとなる。
また同様に例えば、ユーザシステム2−1の仮想空間管理部126が図17に例示する仮想空間82に相当する各種データの値を設定することで各種のオブジェクトが仮想空間82に配置される。例えば仮想空間82には、ユーザシステム2−1の自視点データ記憶部92に記憶されている視点データに応じた、視点64a及び視線方向66aが配置される。また例えば仮想空間82には、ユーザシステム2−1の他ポインタデータ記憶部100に記憶されているポインタデータに応じたポインタ画像80が配置される。この場合、ユーザシステム2−1の仮想空間管理部126は、ユーザシステム2−2に含まれるHMD12の向きに応じた仮想空間内の位置にポインタを配置することとなる。
また例えば、ユーザシステム2−2の仮想空間管理部126が図10又は図12に例示する仮想空間76に相当する各種データの値を設定することで各種のオブジェクトが仮想空間76に配置される。例えば仮想空間76には、ユーザシステム2−2の自視点データ記憶部92に記憶されている視点データに応じた、視点64b及び視線方向66bが配置される。また仮想空間76には、ユーザシステム2−2のインジケータデータ記憶部96に記憶されているインジケータデータに応じた、視点インジケータ68a及び注視点インジケータ70aが配置される。この場合、仮想空間管理部126は、視点64aを通る、ユーザシステム2−1に含まれるHMD12の姿勢に応じた視線方向66aに沿った、視点64aから離間した位置に、注視点インジケータ70aを配置することとなる。
また同様に例えば、ユーザシステム2−2の仮想空間管理部126が図14に例示する仮想空間78に相当する各種データの値を設定することで各種のオブジェクトが仮想空間78に配置される。例えば仮想空間78には、ユーザシステム2−2の自視点データ記憶部92に記憶されている視点データに応じた、視点64b及び視線方向66bが配置される。また仮想空間78には、ユーザシステム2−2のインジケータデータ記憶部96に記憶されているインジケータデータに応じた、視点インジケータ68a及び注視点インジケータ70aが配置される。また仮想空間78には、ユーザシステム2−2の自ポインタデータ記憶部98に記憶されているポインタデータに応じた、ポインタ画像80が配置される。この場合、ユーザシステム2−2の仮想空間管理部126は、ユーザシステム2−2に含まれるHMD12の向きに応じた仮想空間内の位置にポインタを配置することとなる。
また仮想空間管理部126は、視点インジケータ68及び注視点インジケータ70のそれぞれを配置するか否かを示すフラグを保持していてもよい。そして当該フラグの値は、ユーザによる操作に応じて変更可能であってもよい。そして当該フラグの値に応じて、視点インジケータ68及び注視点インジケータ70のそれぞれが配置されるか否かが制御されてもよい。例えばユーザシステム2−1のユーザの操作によって、視点インジケータ68及び注視点インジケータ70が配置されることを示す値が当該フラグの値として設定されたとする。この場合は、図8に示すように視点インジケータ68b及び注視点インジケータ70bが仮想空間に配置されてもよい。また例えばユーザシステム2−1のユーザの操作によって、視点インジケータ68及び注視点インジケータ70が配置されないことを示す値が当該フラグの値として設定されたとする。この場合は、図17に示すように視点インジケータ68b及び注視点インジケータ70bが仮想空間に配置されなくてもよい。
また仮想空間管理部126は、対応付けられるユーザシステム2、すなわち対応付けられるHMD12を識別可能な視点インジケータ68や注視点インジケータ70を仮想空間に配置してもよい。例えばインジケータデータに含まれるユーザシステムIDに応じた色や形状の視点インジケータ68や注視点インジケータ70が仮想空間に配置されてもよい。この場合、仮想空間に配置される複数の視点インジケータ68のそれぞれは、対応付けられるユーザシステム2、すなわち対応付けられるHMD12を識別可能なオブジェクトであることとなる。また仮想空間に配置される複数の注視点インジケータ70のそれぞれは、対応付けられるユーザシステム2、すなわち対応付けられるHMD12を識別可能なオブジェクトであることとなる。
また上述のように、HMD12を装着するユーザにより移動操作が行われた際には、当該移動操作に応じた値だけ、自ポインタデータ記憶部98に記憶されているポインタデータに含まれるポインタ位置データの値が更新される。そして、仮想空間管理部126は、当該ポインタ位置データの値の更新に応じて、ポインタ画像80が配置される位置を変化させる。このように本実施形態に係る仮想空間管理部126は、HMD12を装着するユーザによる移動操作に応じて、ポインタ画像80が配置される位置を変化させることとなる。
また上述のように、ポインタ位置データの値が、掛け軸オブジェクト62bにおける位置を示す二次元座標値の範囲に制限されるよう制御される場合がある。この場合は、本実施形態に係る仮想空間管理部126は、ポインタが配置される位置が、仮想空間内に配置された仮想オブジェクトにおける位置を示す範囲に制限されるよう制御することとなる。また上述のように、仮想空間管理部126が、ポインタが配置される位置が、仮想空間に配置された複数の仮想オブジェクトのうちの、HMD12の向きに応じた方向に沿った線と交差する仮想オブジェクトにおける位置を示す範囲に制限されるよう制御してもよい。
フレーム画像生成部128は、本実施形態では例えば、所定のフレームレートで、仮想空間管理部126により仮想空間に配置される視点64の位置から視線方向66を見た様子を表す画像を生成する。例えばユーザシステム2−1のフレーム画像生成部128は、図7や図18に示す仮想空間画像72aをフレーム画像として生成する。この場合、当該フレーム画像生成部128は、例えば注視点インジケータ70bが配置される仮想空間内に配置された視点64aからユーザシステム2−1に含まれるHMD12の姿勢に応じた視線方向66aを見た様子を表す画像を生成することとなる。また例えばユーザシステム2−2のフレーム画像生成部128は、図9や図13や図15に示す仮想空間画像72bをフレーム画像として生成する。この場合、当該フレーム画像生成部128は、例えば、注視点インジケータ70aが配置される仮想空間内に配置された視点64bからユーザシステム2−2に含まれるHMD12の姿勢に応じた視線方向66bを見た様子を表す画像を生成することとなる。
フレーム画像表示制御部130は、本実施形態では例えば、ポインタが配置された仮想空間の画像である仮想空間画像72を表示させる。例えばフレーム画像表示制御部130は、フレーム画像生成部128が生成するフレーム画像を所定のフレームレートでHMD12の表示部38に表示させる。本実施形態では例えば、ユーザシステム2−1のフレーム画像表示制御部130は、ユーザシステム2−1のフレーム画像生成部128が生成する仮想空間画像72aを、ユーザシステム2−1に含まれるHMD12に送信する。そして当該フレーム画像を受信したHMD12は当該フレーム画像を当該HMD12の表示部38に表示させる。また例えば、ユーザシステム2−2のフレーム画像表示制御部130は、ユーザシステム2−2のフレーム画像生成部128が生成する仮想空間画像72bを、ユーザシステム2−2に含まれるHMD12に送信する。そして当該フレーム画像を受信したHMD12は当該フレーム画像を当該HMD12の表示部38に表示させる。
なお図18に示すように、ユーザシステム2−1のフレーム画像表示制御部130が、ユーザシステム2−2に含まれるHMD12の向きに応じたポインタが配置された仮想空間画像72aを、ユーザシステム2−1に含まれるHMD12に表示させてもよい。
以下、視点データの受信に応じて本実施形態に係るエンタテインメント装置14において行われる処理の流れの一例を、図20に例示するフロー図を参照しながら説明する。
まず視点データ受信部110が視点データを受信する(S101)。すると他視点データ管理部112が、他視点データ記憶部94に記憶されている、S101に示す処理で受信した視点データと同じユーザシステムIDを含む視点データを特定する(S102)。
そして他視点データ管理部112は、S102に示す処理で特定された視点データを、S101に示す処理で受信した視点データに更新する(S103)。
そしてインジケータデータ管理部114が、上述のようにして、S103に示す処理で更新された視点データに基づいてインジケータデータを生成する(S104)。ここで生成されるインジケータデータに含まれる視点インジケータ位置データの値は、上述のように、S103に示す処理で更新された視点データに含まれる視点位置データの値に基づいて特定可能である。また生成されるインジケータデータに含まれるテクスチャID、及び、注視点インジケータ位置データの値は、上述のように、S103に示す処理で更新された視点データに含まれる視点位置データの値及び視線方向ベクトルデータの値に基づいて特定可能である。
そしてインジケータデータ管理部114が、インジケータデータ記憶部96に記憶されている、S104に示す処理で生成されたインジケータデータと同じユーザシステムIDを含むインジケータデータを特定する(S105)。
そして他視点データ管理部112は、S105に示す処理で特定されたインジケータデータを、S104に示す処理で受信したインジケータデータに更新して(S106)、本処理例に示す処理は終了される。
本実施形態では例えば、視点データが受信される度に上述のS101〜S106に示す処理が実行される。
次にポインタデータの受信に応じて本実施形態に係るエンタテインメント装置14において行われる処理の流れの一例を、図21に例示するフロー図を参照しながら説明する。
まずポインタデータ受信部122がポインタデータを受信する(S201)。すると他ポインタデータ管理部124が、他ポインタデータ記憶部100に記憶されている、S201に示す処理で受信したポインタデータと同じユーザシステムIDを含むポインタデータを特定する(S202)。
そして他ポインタデータ管理部124は、S202に示す処理で特定されたポインタデータを、S201に示す処理で受信したポインタデータに更新する(S203)。
本実施形態では例えば、ポインタデータが受信される度に上述のS201〜S203に示す処理が実行される。
次に、本実施形態に係るエンタテインメント装置14において行われる仮想空間の表示処理の流れの一例を、図22に例示するフロー図を参照しながら説明する。
まず撮影画像受付部102が、カメラ20aが撮影する、HMD12の像を含む画像をカメラ20aから受け付ける(S301)。すると、位置姿勢特定部104が、S301に示す処理で受け付けた画像に基づいて、HMD12の位置及び姿勢を特定する(S302)。
そして自視点データ管理部106が、S302に示す処理で特定されたHMD12の位置及び姿勢に基づいて、自視点データ記憶部92に記憶されている視点データに含まれる視点位置データ及び視線方向ベクトルデータの値を更新する(S303)。
そして視点データ送信部108が、S303に示す処理で更新された視点データを管理システム3に送信する(S304)。このようにして送信された視点データは、当該ユーザシステム2以外の、仮想空間共有システム1に含まれるユーザシステム2に送信されることとなる(図20のS101参照)。
そしてポインタ操作特定部116が、上述のリセット操作、移動操作、又は、消去操作などといったポインタに関する操作が行われたか否かを確認する(S305)。
ここでポインタに関する操作が行われたことが確認されたとする(S305:Y)。この場合は、自ポインタデータ管理部118が、自ポインタデータ記憶部98に記憶されているポインタデータに含まれるテクスチャID及びポインタ位置データの値を当該操作に応じた値に更新する(S306)。そしてポインタデータ送信部120が更新されたポインタデータを管理システム3に送信する(S307)。このようにして送信されたポインタデータは、当該ユーザシステム2以外の、仮想空間共有システム1に含まれるユーザシステム2に送信されることとなる(図21のS201参照)。
S305に示す処理でポインタに関する操作が行われたことが確認されなかった場合(S305:N)、又は、S307に示す処理が終了したとする。この場合は、仮想空間管理部126は、保持しているフラグの値に基づいて、配置される視点インジケータ68及び注視点インジケータ70を特定する(S308)。そして仮想空間管理部126が、S307に示す処理で特定された視点インジケータ68及び注視点インジケータ70に対応付けられるインジケータデータをインジケータデータ記憶部96から取得する(S309)。
そして仮想空間管理部126は、配置されるポインタ画像80に対応付けられるポインタデータを自ポインタデータ記憶部98及び他ポインタデータ記憶部100から取得する(S310)。ここでは例えば、テクスチャIDが0でありポインタ位置データの値が(0,0)であるポインタデータは取得の対象から除外される。
そして仮想空間管理部126は、視点インジケータ68、注視点インジケータ70、及び、ポインタ画像80を、仮想空間に配置する(S311)。ここでは例えば、S308に示す処理で取得されたインジケータデータの値に応じた視点インジケータ68及び注視点インジケータ70が配置される。またS309に示す処理で取得されたポインタデータの値に応じたポインタ画像80が配置される。なおここで既に配置されているオブジェクトの位置が変更されても構わない。また仮想空間に配置されていたポインタ画像80に対応付けられるポインタデータが取得されていない場合は、当該ポインタ画像80は仮想空間から消去される。
そして仮想空間管理部126は、自視点データ記憶部92に記憶されている視点データを取得する(S312)。
そして仮想空間管理部126は、S312に示す処理で取得した視点データに基づいて、仮想空間内に視点64の位置及び視線方向66を設定する(S313)。ここでは例えば既に仮想空間に設定されている視点64の位置及び視線方向66が変更される。
そしてフレーム画像生成部128は、S313に示す処理で設定された視点64の位置から視線方向66を見た様子を表す画像を生成する(S314)。なおS314に示す処理では、二次元画像が生成されても三次元画像が生成されても構わない。
そしてフレーム画像表示制御部130が、S314に示す処理で生成されたフレーム画像をHMD12に送信する(S315)。当該フレーム画像を受信したHMD12は、当該フレーム画像を表示部38に表示させる。
そして本実施形態では、所定の時間間隔(例えば1/60秒間隔)で、S301〜S315に示す処理が繰り返し実行されることとなる。
なお上述の例ではポインタに関する操作が行われる度にポインタデータが送信されるが、その代わりに例えば、ポインタデータの送信が所定時間間隔(例えば1/60秒間隔や5秒間隔)で行われるようにしても構わない。
また上述の例では、所定の時間間隔(例えば1/60秒間隔)で視点データが送信されるが、その代わりに例えば、当該時間間隔とは異なる時間間隔(例えば5秒間隔)で視点データが送信されてもよい。
また上述の例では視点データを受信したユーザシステム2が当該視点データに対応付けられるインジケータデータを生成するが、その代わりに例えば、ユーザシステム2が視点データに対応付けられるインジケータデータを生成してもよい。そしてユーザシステム2が当該インジケータを他のユーザシステム2に送信するようにしてもよい。
また上述の例ではポインタデータがユーザシステム2間で共有されるが、その代わりにポインタデータがユーザシステム2間で共有されなくてもよい。
またユーザシステム2に対応付けられるポインタ画像80が表示されている際に当該ユーザシステム2のユーザが所定の操作を行った場合は、ユーザシステム2は、当該ポインタ画像80が表示されている位置に応じた処理を実行してもよい。例えば所定の操作に応じてポインタ画像80が配置されている位置を中心に拡大して表示させる処理が実行されるようにしてもよい。
以上、本実施形態に係る仮想空間の一例である掛け軸オブジェクト62が配置された仮想空間を用いて本実施形態について説明した。しかし本実施形態に係る仮想空間は掛け軸オブジェクト62が配置された仮想空間に限定されない。例えば、本実施形態に係る仮想空間は、図23に示す仮想空間140であっても構わない。
図23は、仮想空間140がユーザシステム2−1とユーザシステム2−2とで共有されている様子の一例を示す図である。
図23に例示する仮想空間140には、平板状の三次元オブジェクトである、画面を表す仮想オブジェクトであるスクリーンオブジェクト142が配置されている。また、仮想空間140には、球面状の仮想オブジェクトである背景オブジェクト144が配置されている。なお背景オブジェクト144の半径は例えば無限大に設定されていてもよい。
図23に例示する仮想空間140に配置されている背景オブジェクト144の内側には、全方位カメラで撮影されたテクスチャ画像がマッピングされる。なおこのテクスチャ画像は、ユーザシステム2に記録されている動画像であっても、ユーザシステム2にストリーミング配信される動画像であっても構わない。
またスクリーンオブジェクト142には、上述の全方位カメラとは別のカメラで撮影されたテクスチャ画像がマッピングされる。このテクスチャ画像も、ユーザシステム2に記録されている動画像や、ユーザシステム2にストリーミング配信される動画像などであっても構わない。
ここで例えば背景オブジェクト144にマッピングされる動画像は、サッカーの試合が行われているスタジアムの全景の映像であることとする。そしてスクリーンオブジェクト142にマッピングされる動画像は、テレビ放送がされている、当該サッカーの試合の中継映像であることとする。
図23に示す仮想空間140においては、ユーザシステム2−1のHMD12の表示部38には、背景オブジェクト144の内側に配置された視点146aから視線方向148aを見た様子を表す映像が表示される。また、ユーザシステム2−2のHMD12の表示部38には、背景オブジェクト144の内側に配置された視点146bから視線方向148bを見た様子を表す映像が表示される。
なおここでは、視線方向148aに沿った視点146aを通る線は、背景オブジェクト144にマッピングされているテクスチャ画像と交差することととする。また視線方向148bに沿った視点146bを通る線も、背景オブジェクト144にマッピングされているテクスチャ画像と交差することととする。
そして図23に示す仮想空間140においても、以上で説明した内容と同様にして、視点インジケータや注視点インジケータを配置することができるようになっている。
図24は、ユーザシステム2−1のHMD12の表示部38に表示される、仮想空間140に配置された視点146aから視線方向148aを見た様子を表す画像である仮想空間画像150aの一例を示す図である。図24に示す仮想空間画像150aには、ユーザシステム2−2のユーザの注視点の位置を示す注視点インジケータ152bが含まれている。図24の例では、背景オブジェクト144にマッピングされているテクスチャ画像に注視点インジケータ152bが重畳されている。これは視線方向148bに沿った視点146bを通る線が、背景オブジェクト144にマッピングされているテクスチャ画像と交差しているためである。
図25は、ユーザシステム2−2のHMD12の表示部38に表示される、仮想空間140に配置された視点146bから視線方向148bを見た様子を表す画像である仮想空間画像150bの一例を示す図である。図25に示す仮想空間画像150bには、ユーザシステム2−1のユーザの注視点の位置を示す注視点インジケータ152aが含まれている。図25の例では、背景オブジェクト144にマッピングされているテクスチャ画像に注視点インジケータ152aが重畳されている。これは視線方向148aに沿った視点146aを通る線が、背景オブジェクト144にマッピングされているテクスチャ画像と交差しているためである。
また図23に示す仮想空間140においても、以上で説明した内容と同様にして、ポインタを配置することが可能になっている。
図26は、ユーザシステム2−1のHMD12の表示部38に表示される、仮想空間140に配置された視点146aから視線方向148aを見た様子を表す画像である仮想空間画像150aの別の一例を示す図である。
図27は、ユーザシステム2−2のHMD12の表示部38に表示される、仮想空間140に配置された視点146bから視線方向148bを見た様子を表す画像である仮想空間画像150bの別の一例を示す図である。
図26に示す仮想空間画像150a及び図27に示す仮想空間画像150bには、ユーザシステム2−1のユーザによって配置されたポインタ画像154a、及び、ユーザシステム2−2のユーザによって配置されたポインタ画像154bが含まれている。またポインタ画像154aとポインタ画像154bの色は異なっており、それぞれのポインタ画像154に対応付けられるユーザシステム2が識別可能になっている。
図26及び図27の例では、背景オブジェクト144にマッピングされているテクスチャ画像にポインタ画像154a及びポインタ画像154bが重畳されている。これは視線方向148aに沿った視点146aを通る線も視線方向148bに沿った視点146bを通る線も、背景オブジェクト144にマッピングされているテクスチャ画像と交差しているためである。
ここで、ポインタ画像154aの移動範囲やポインタ画像154bの移動範囲が、背景オブジェクト144にマッピングされているテクスチャ画像上に制限されてもよい。
なお例えば、ポインタ画像154がスクリーンオブジェクト142にマッピングされているテクスチャ画像に配置される場合がある。この場合は、同様に、当該ポインタ画像154の移動範囲が、スクリーンオブジェクト142にマッピングされているテクスチャ画像上に制限されてもよい。
なおユーザの操作に応じてスクリーンオブジェクト142の位置が移動するようにしてもよい。またそれぞれのユーザシステム2が、当該ユーザシステム2において構成される仮想空間に配置されるスクリーンオブジェクト142の位置が移動可能であってもよい。そしてユーザシステム2毎に、当該ユーザシステム2において構成される仮想空間内のスクリーンオブジェクト142が異なっても構わない。
また仮想空間内に互いに異なる映像が表示される複数のスクリーンオブジェクト142が配置可能であってもよい。
なお本実施形態では、仮想空間共有システム1に含まれるユーザシステム2においてテクスチャ画像として表示される動画像は同期がとれており、ユーザシステム2は同じ映像を同じタイミングで楽しむことができるようになっている。
また複数の全天周カメラのそれぞれによって、互いに異なるスタジアムの位置から映像の撮影が行われていても構わない。あるユーザシステム2のユーザの所定の操作に応じて、背景オブジェクト144にマッピングされるテクスチャ画像である映像を撮影する全天周カメラ(撮影地点)が切り替わっても構わない。このときあるユーザが他のユーザに対して撮影地点を変えるよう音声で促すようにしてもよい。ここで撮影地点が連続的に切り替わるようにせず、非連続的に切り替わるようにすると、ユーザが酔う可能性を下げることができる。
また本実施形態では、ユーザシステム2のユーザによって設定される視点146の位置や視線方向148は、他のユーザのHMD12の動きによっては影響を受けない。このように本実施形態ではHMD12を装着するユーザが酔う可能性を下げている。
なおスクリーンオブジェクト142や背景オブジェクト144にマッピングされる動画像は上述のものに限定されない。例えば背景オブジェクト144にマッピングされる動画像が星空の映像であっても構わない。またこの場合にスクリーンオブジェクト142にマッピングされる動画像が環境映像であっても構わない。
また本実施形態において、HMD12の位置又は向きに基づいて特定される領域に、他の領域よりも高解像度の画像が配置されるようにしてもよい。例えば、視線方向148に沿った視点146を通る線と交差するテクスチャ画像内の位置を中心とした所定の大きさの領域に、他の領域よりも高解像度のテクスチャ画像が配置されてもよい。また例えば、視線方向148に沿った視点146を通る線と交差するオブジェクトに、他のテクスチャ画像よりも高解像度であるテクスチャ画像がマッピングされてもよい。
また例えば、スクリーンオブジェクト142にマッピングされているテクスチャ画像が、背景オブジェクト144にマッピングされているテクスチャ画像よりも高解像度であってもよい。
なお、本発明は上述の実施形態に限定されるものではない。
例えば、視点データやポインタデータの送受信が、管理システム3によって中継される必要はない。例えばユーザシステム2間で直接、視点データやポインタデータの送受信が行われてもよい。
また本発明は、HMD12とエンタテインメント装置14とが有線で通信する場合も無線で通信する場合も適用可能である。
また、上記の具体的な文字列や数値及び図面中の具体的な文字列や数値は例示であり、これらの文字列や数値には限定されない。