【解決手段】情報処理システムにおいて、コンピュータのプロセッサ部において、仮想空間内のプレイヤー視点からの視界をユーザの視界として表示画像を生成する表示画像生成部と、仮想空間内のプレイヤー視点の3次元座標を取得する座標取得部と、プレイヤー視点の3次元座標が、仮想空間内に配置されたオブジェクトのコリジョンエリア内への進入の有無を判定する判定部と、エリア内に進入したと判定した場合に、仮想空間内のプレイヤー視点を進入位置に停止して、当該視点をユーザの視界としてディスプレイに表示させる視点停止部と、を備える。
前記仮想空間内の前記ユーザの視界の範囲内において、前記コンピュータに接続されたコントローラにより設定された前記仮想空間内の移動目標地点へ、プレイヤー位置をテレポートさせる、請求項1乃至4に記載の情報処理方法。
【発明を実施するための形態】
【0014】
本発明の実施形態の内容を列記して説明する。本発明の実施の形態による情報処理方法等は、以下のような構成を備える。
[項目1]
コンピュータにおける、仮想空間内のプレイヤー視点からの視界をユーザの視界としてディスプレイに表示するための情報処理方法であって、
前記コンピュータのプロセッサにおいて、
前記仮想空間内のプレイヤー視点からの視界を前記ユーザの視界として表示画像を生成するステップと、
前記仮想空間内のプレイヤー視点の3次元座標を取得するステップと、
前記仮想空間内に配置されたオブジェクトのコリジョンエリア内における、前記プレイヤー視点の3次元座標の進入の有無を判定するステップと、
前記エリア内に進入したと判定した場合に、前記仮想空間内のプレイヤー視点を進入した位置に停止して、当該プレイヤー視点をユーザの視界として前記ディスプレイに表示させるステップと、
を実行することを特徴とする情報処理方法。
[項目2]
前記ディスプレイは、ヘッドマウントディスプレイである、項目1に記載の情報処理方法。
[項目3]
前記オブジェクトは、可動オブジェクトである、項目1または2に記載の情報処理方法。
[項目4]
前記可動オブジェクトは、一定の条件を満たすと前記仮想空間内のエリア間を移動可能にするオブジェクトである、項目1乃至3に記載の情報処理方法。
[項目5]
前記仮想空間内の前記ユーザの視界の範囲内において、前記コンピュータに接続されたコントローラにより設定された前記仮想空間内の移動目標地点へ、プレイヤー位置をテレポートさせる、項目1乃至4に記載の情報処理方法。
[項目6]
前記コンピュータに接続されたコントローラの操作に基づき、前記仮想空間内で前記プレイヤーを移動させる、項目5に記載の情報処理方法。
[項目7]
前記コンピュータに接続されたユーザ動作検知手段に基づき、前記仮想空間内で前記プレイヤーを移動させる、項目5に記載の情報処理方法。
[項目8]
前記仮想空間内の操作モデルの3次元座標を取得するステップと、
前記仮想空間内に配置されたオブジェクトのコリジョンエリア内における、前記操作オブジェクトの3次元座標の進入の有無を判定するステップと、
前記エリア内に進入したと判定した場合に、前記テレポートを制限するステップと、
をさらに実行する、項目5乃至7に記載の情報処理方法。
[項目9]
前記仮想空間内の操作モデルの3次元座標を取得するステップと、
前記操作モデルの3次元座標と前記プレイヤー視点の3次元座標を結んだ直線上における、前記仮想空間内に配置されたオブジェクトの存在の有無を判定するステップと、
前記オブジェクトが前記直線上に存在すると判定した場合に、前記テレポートを制限するステップと、
をさらに実行する、項目5乃至8に記載の情報処理方法。
[項目10]
コンピュータに、仮想空間内のプレイヤー視点からの視界をユーザの視界としてディスプレイに表示するための情報処理方法を実行させるためのプログラムであって、
前記情報処理方法は、
前記コンピュータのプロセッサにおいて、
前記仮想空間内のプレイヤー視点からの視界を前記ユーザの視界として表示画像を生成するステップと、
前記仮想空間内のプレイヤー視点の3次元座標を取得するステップと、
前記仮想空間内に配置されたオブジェクトのコリジョンエリア内における、前記プレイヤー視点の3次元座標の進入の有無を判定するステップと、
前記エリア内に進入したと判定した場合に、前記仮想空間内のプレイヤー視点を前記進入位置に停止して、当該視点をユーザの視界として前記ディスプレイに表示させるステップと、
を実行することを特徴とするプログラム。
[項目11]
コンピュータにおける、仮想空間内のプレイヤー視点をユーザの視界としてディスプレイに表示するための情報処理システムであって、
前記コンピュータのプロセッサは、
前記仮想空間内のプレイヤー視点からの視界を前記ユーザの視界として表示画像を生成する表示画像生成部と、
前記仮想空間内のプレイヤー視点の3次元座標を取得する座標取得部と、
前記仮想空間内に配置されたオブジェクトのコリジョンエリア内における、前記プレイヤー視点の3次元座標の進入の有無を判定する判定部と、
前記エリア内に進入したと判定した場合に、前記仮想空間内のプレイヤー視点を前記進入位置に停止するように制御する視点停止部と、
を含むことを特徴とする情報処理システム。
【0015】
以下、本発明の実施の形態による情報処理方法等について、図面を参照しながら例示する。なお、同一の参照番号を有する構成については、繰り返しの説明を省略する場合がある。
【0016】
図1は、本実施形態にかかるヘッドマウントディスプレイ(以下:HMD)110の外観の模式図を例示する。HMD110はユーザの頭部に装着され、ユーザの左右の眼前に配置されるよう表示パネル120を備える。表示パネルとしては、光学透過型と非透過型のディスプレイが考えられるが、本実施形態では、より没入感を提供可能な非透過型の表示パネルを例示する。表示パネル120には、左目用画像と右目用画像とが表示され、両目の視差を利用することにより立体感のある画像をユーザに提供することができる。左目用画像と右目用画像とを表示することができれば、左目用ディスプレイと右目用ディスプレイとを個別に備えることも可能であるし、左目用及び右目用の一体型のディスプレイを備えることも可能である。
【0017】
さらに、HMD110の筐体部130は、センサ140を備える。センサは、ユーザの頭部の向きや傾きといった動きを検出するために、図示しないが、例えば、磁気センサ、加速度センサ、もしくはジャイロセンサのいずれか、またはこれらの組み合わせを備えることができる。ユーザの頭部の垂直方向をY軸とし、Y軸と直交する軸のうち、表示パネル120の中心とユーザとを結ぶ、ユーザの前後方向に相当する軸をZ軸とし、Y軸及びZ軸と直交し、ユーザの左右方向に相当する軸をX軸とするとき、センサ140は、X軸まわりの回転角(いわゆる、ピッチ角)、Y軸まわりの回転角(いわゆる、ヨー角)、Z軸まわりの回転角(いわゆる、ロール角)を検出することができる。
【0018】
また、HMD110の筐体部130は、センサ140に代えて、複数の光源150(例えば、赤外光LED、可視光LED)を備えることもできる。HMD110の外部(例えば、室内等)に設置されたカメラ(例えば、赤外光カメラ、可視光カメラ)がこれらの光源を検出することで、特定の空間におけるHMD110の位置や向き、傾きを検出することができる。さらに、同じ目的で、HMD110に、HMD110の筐体部130に設置された光源を検出するためのセンサ等を備えることもできる。なお、ユーザの頭部の位置や向き、傾きを検出可能であればどのような構成でもよく、上記の構成に限定されない。
【0019】
さらに、HMD110の筐体部130は、アイトラッキング・センサを備えることもできる。アイトラッキング・センサは、ユーザの左目及び右目の視線方向及び注視点を検出するために用いられる。アイトラッキング・センサとしては様々な方式が考えられるが、例えば、左目および右目に弱い赤外光を照射してできる角膜上の反射光の位置を基準点とし、反射光の位置に対する瞳孔の位置により視線方向を検出し、左目及び右目の視線方向の交点を注視点として検出する方法などが考えられる。
【0020】
図2は、本実施形態にかかるコントローラ210の外観の模式図を例示する。コントローラ210により、仮想空間内において、ユーザが所定の入力を行うことをサポートすることができる。コントローラ210は、左手用220及び右手用230のコントローラのセットとして構成することができる。左手用コントローラ220及び右手用コントローラ230は、例えば、操作用トリガーボタン240、赤外線LED250、センサ260、ジョイスティック270、メニューボタン280をそれぞれ有することができる。
【0021】
操作用トリガーボタン240は、コントローラ210のグリップ235を把持したときに、中指及び人差し指でトリガーを引くような操作を行うことを想定した位置に240a、240bとして配置される。コントローラ210の両側面から下方にリング状に形成されるフレーム245には、複数の赤外線LED250が備えられ、コントローラ外部に備えられるカメラ(図示せず)により、これらの赤外線LEDの位置を検出することで、特定の空間におけるコントローラ210の位置、向き及び傾きを検出することができる。
【0022】
また、コントローラ210は、コントローラ210の向きや傾きといった動きを検出するために、センサ260を内蔵することもできる。センサ260として、図示しないが、例えば、磁気センサ、加速度センサ、もしくはジャイロセンサのいずれか、またはこれらの組み合わせを備えることができる。さらに、コントローラ210の上面には、ジョイスティック270及びメニューボタン280を備えることができる。ジョイスティック270は、基準点を中心に360度方向に動かすことができ、コントローラ210のグリップ235を把持したときに、親指で操作されることが想定される。メニューボタン280もまた同様に、親指で操作されることが想定される。さらに、コントローラ210は、コントローラ210を操作するユーザの手に振動を与えるためのバイブレータ(図示せず)を内蔵することもできる。ボタンやジョイスティックを介したユーザの入力内容やセンサ等を介したコントローラ210の位置、向き及び傾きといった情報を出力するため、また、ホストコンピュータからの情報を受信するために、コントローラ210は、入出力部及び通信部を有する。
【0023】
ユーザがコントローラ210を把持し、各種ボタンやジョイスティックを操作することの有無、及び赤外線LEDやセンサにより検出される情報によって、システムはユーザの手の動きや姿勢を決定し、ユーザの手を仮想空間内において擬似的に操作モデル(例えば、プレイヤーの手など)として表示させ、動作させることができる。なお、コントローラの形状等の具体的な構成は、
図2に示されるものに限らない。
【0024】
図3は、本実施形態にかかる、HMDの構成図である。
図3に例示するように、HMD110は、少なくとも、表示パネル120、センサ140または光源150の少なくとも一方、プロセッサ310、メモリ311、ストレージ312、表示制御部313、送受信部314、入出力部315、スピーカ316等を備え、これらはバス319を通じて相互に電気的に接続される。
【0025】
プロセッサ310は、HMD110全体の動作を制御し、各要素間におけるデータの送受信の制御やアプリケーションの実行、認証処理に必要な情報処理等を行う演算装置である。例えば制御部310はCPU(Central Processing Unit)であり、ストレージ312に格納されメモリ311に展開されたプログラム等を実行して各情報処理を実施する。
【0026】
メモリ311は、DRAM(Dynamic Random Access Memory)等の揮発性記憶装置で構成される主記憶と、フラッシュメモリやHDD(Hard Disc Drive)等の不揮発性記憶装置で構成される補助記憶と、を含む。メモリ311は、プロセッサ310のワークエリア等として使用され、また、ネットワークで接続されたサーバの起動時に実行されるBIOS(Basic Input/Output System)、及び各種設定情報等を格納する。
【0027】
ストレージ312は、アプリケーションプログラム等の各種プログラムを格納する。各処理に用いられるデータを格納したデータベース(図示せず)がストレージ312に構築されていてもよい。
【0028】
表示制御部313は、例えば、GPU(Graphics Processing Unit)であり、主に画像処理に係る演算処理を実行する。例えば、表示制御部313は、仮想空間を構成する空間画像及び各種オブジェクト画像を生成及び合成などを実行する。なお、
図3ではプロセッサ310と表示制御部313とが分かれて図示されているが、これに限らず、例えばプロセッサ310の構成の一部として、表示制御部313が構成されていてもよい。また、プロセッサ310の表示に関する一部または全部の処理機能を表示制御部313に持たせてもよい。
【0029】
送受信部314は、HMD110をネットワークに接続する。なお、送受信部314は、Bluetooth(登録商標)及びBLE(Bluetooth Low Energy)の近距離通信インターフェースを備えていてもよい。送受信部314は、コントローラ210からの指示信号をネットワーク経由で受信する。
【0030】
入出力部315は、画像生成装置や表示装置等を外部に設ける場合、画像信号や音信号等を入出力するためのインターフェースである。
【0031】
スピーカ316は、(図示しない)音生成部から入力される音声データ等の音信号を出力する。
【0032】
さらに、バス319は、上記各要素に共通に接続され、例えば、アドレス信号、データ信号及び各種制御信号を伝達する。
【0033】
なお、HMD110は、サーバや画像処理装置等の外部処理装置とネットワーク連携しながら、アプリケーションを実行し、データを送受信することもできるし、外部処理装置に依存せずに、HMD単体として、内蔵されたプログラムを実行する、スタンドアローン型の装置として機能することもできる。
【0034】
図4は、本実施形態にかかるHMD110のプロセッサ310の機能構成図を例示する。プロセッサ310において、本実施形態に係るアプリケーションプログラムの実行がされ、この実行されるプログラムのモジュールは、図示のとおり、いくつかの機能ブロックに分けられる。また、本制御部で実行される機能ブロックの全部又は一部は、その性質に応じて同HMD110の表示制御部313や外部装置の制御部等によって実行することも可能である。また、ストレージ312については、本例のように、HMD110に内蔵することもできるし、HMD110とネットワーク接続する、サーバに内蔵するストレージまたはその他外部のストレージに代替することもできる。
【0035】
表示画像生成部321は、仮想空間を構成する空間画像や操作モデル及びオブジェクトなどの各種画像の生成及び合成などを実行する。生成された各種画像は、図示しない画像処理部または表示画像生成部321により、仮想空間内の3次元座標と関連付けられて表示パネル120に表示される。
【0036】
座標取得部322は、少なくとも仮想空間内のプレイヤー視点の3次元座標を取得する。プレイヤー視点の3次元座標は、プレイヤーの頭部モデルの中心座標と同じでもよく、例えば頭部より所定距離だけ前方に設定されていてもよい。また、座標取得部322は、例えば操作モデルの3次元座標を取得してもよい。
【0037】
判定部323は、仮想空間内に配置されたオブジェクト(例えば、壁や扉など)のコリジョンエリア内における、座標取得部322で取得したプレイヤー視点の3次元座標の進入の有無を判定する。各オブジェクトの周囲には、プレイヤーとの衝突を判定するためのコリジョンエリアが規定されており、例えば、このコリジョンエリアの範囲とプレイヤー視点の3次元座標を比較することで進入を判定することが可能である。
【0038】
さらに、判定部323は、仮想空間内に配置されたオブジェクトのコリジョンエリア内における、座標取得部322で取得した操作モデルの3次元座標の進入の有無を判定してもよい。また、判定部323は、座標取得部322で取得した操作モデルの3次元座標とプレイヤー視点の3次元座標を結んだ直線上における、仮想空間内に配置されたオブジェクトの存在の有無を判定してもよい。
【0039】
視点停止部324は、判定部323がオブジェクトのコリジョンエリア内にプレイヤー視点が進入したと判定した場合に、当該プレイヤー視点を進入位置に停止するように制御する。
【0040】
テレポート制限部325は、判定部323がオブジェクトのコリジョンエリア内に操作モデルが進入したと判定した場合、および/または、操作モデルの3次元座標とプレイヤー視点の3次元座標を結んだ直線上にオブジェクトが存在すると判定した場合に、プレイヤーのテレポートを制限するように制御する。
【0041】
図5は、本実施形態の視点停止制御にかかる情報処理を示したフローチャート図を例示する。本処理は、例えば、HMD110のメモリ311に格納されたプログラムをプロセッサ310において実行することで実現される。また、本処理は、HMD110とネットワーク接続されたサーバや外部装置の制御部等において実行することで実現されてもよい。
【0042】
まず、HMD110の表示パネル120には、表示画像生成部321で生成された表示画像が表示されている。そして、座標取得部322は、仮想空間内のプレイヤー視点の3次元座標を取得する(S101)。
【0043】
次に、判定部323は、仮想空間内に配置されたオブジェクトのコリジョンエリア内における、座標取得部322で取得したプレイヤー視点の3次元座標の進入の有無を判定する。(S102)。
【0044】
最後に、視点停止部324は、判定部323がオブジェクトのコリジョンエリア内にプレイヤー視点が進入したと判定した場合に、当該プレイヤー視点を進入位置に停止するように制御する(S103)。
【0045】
図6は、本実施形態のテレポート制限制御にかかる一の情報処理を示したフローチャート図を例示する。
【0046】
まず、座標取得部322は、仮想空間内の操作モデルの3次元座標を取得する(S201)。
【0047】
次に、判定部323は、仮想空間内に配置されたオブジェクトのコリジョンエリア内における、座標取得部322で取得した操作モデルの3次元座標の進入の有無を判定する。(S202)。
【0048】
最後に、テレポート制限部325は、判定部323がオブジェクトのコリジョンエリア内に操作モデルが進入したと判定した場合に、プレイヤーのテレポートを制限するように制御する(S203)。
【0049】
図7は、本実施形態のテレポート制限制御にかかる他の情報処理を示したフローチャート図を例示する。
【0050】
まず、座標取得部322は、仮想空間内の操作モデル及びプレイヤー視点の3次元座標をそれぞれ取得する(S301)。
【0051】
次に、判定部323は、座標取得部322で取得した操作モデルの3次元座標とプレイヤー視点の3次元座標を結んだ直線上における、仮想空間内に配置されたオブジェクトの存在の有無を判定する。(S302)。
【0052】
最後に、テレポート制限部325は、判定部323が操作モデルの3次元座標とプレイヤー視点の3次元座標を結んだ直線上にオブジェクトが存在すると判定した場合に、プレイヤーのテレポートを制限するように制御する(S203)。
【0053】
図8は、本実施形態にかかる仮想空間内におけるプレイヤー周辺の俯瞰図を例示する。なお、この俯瞰図は、本実施形態を説明するために本明細書において用いられるものであり、例えばHMDに表示されなくてもよい。
【0054】
図8では、一例として、仮想空間内のエリアA1に配置された壁オブジェクトOにより構成される通路内にプレイヤーPが存在し、エリアA1とエリアA2を隔てるように壁オブジェクトOが配置されており、この壁オブジェクトOの一部に可動式の扉オブジェクトMが配置されている。また、
図8では、扉オブジェクトMのコリジョンエリアCも例示している。なお、扉オブジェクトMだけではなく、壁オブジェクトO等のその他のオブジェクトにおいても、コリジョンエリアが設定されていてもよい。
【0055】
図9−12は、本実施形態にかかるHMDに表示される表示画面の一例を示す。なお、本実施形態を説明するために具体的な構成を例示しているが、これに限るものではない。
【0056】
図9では、一例として、操作モデルとしてプレイヤーの手モデルHが表示されており、テレポートのための移動目標地点としてポインタTが表示されている。
【0057】
図10は、
図9にてポインタTにより指定した移動目標地点へテレポートした後の表示画面の例である。
図10では、扉オブジェクトMのコリジョンエリアC内に対して、ポインタTにより移動目標地点を設定した状態が表示されている。
【0058】
図11は、
図10にてポインタTにより指定した移動目標地点へテレポートした後の表示画面の例である。
図11では、テレポートにより扉オブジェクトMのコリジョンエリアC内に進入したが、プレイヤー視点はコリジョンエリアの進入位置で停止している。なお、ユーザによるコントローラ操作またはユーザ動作検出手段(例えばカメラ等の撮影手段など)により検出されたユーザ動作により、プレイヤーがさらに扉オブジェクトM側に進むように要求があったとしても、
図11に例示されるような表示画面がHMDに表示され続ける。
【0059】
これにより、ユーザのHMDには、オブジェクトを超えた先の視界や暗転した視界といった実空間内では生じ得ない視界が表示されることがないため、仮想空間における体験の質が損なわれることがない。
【0060】
また、
図11において、手モデルHがコリジョンエリアC内に存在する場合、ポインタTによるテレポートは制限されるように制御されてもよい。なお、テレポートが制限される場合にポインタTを表示しないようにすると、テレポートが制限されていることがより直感的に認識することができる。
【0061】
図12は、
図11において、ユーザが手を伸ばして手モデルHをオブジェクトO及びMに貫通させた際の表示画面の例である。
【0062】
例えば、
図13に示されるように手モデルHをオブジェクトO及びMに対して貫通させた場合、手モデルHの3次元座標とプレイヤー視点の3次元座標(例えば、プレイヤーPの頭部モデルの中心座標)を結んだ直線上に扉オブジェクトMが存在すると判定されるため、このような場合にプレイヤーのテレポートを制限するように制御してもよい。なお、テレポートが制限される場合にポインタTを表示しないようにすると、テレポートが制限されていることがより直感的に認識することができる。
【0063】
また、
図13では、プレイヤー視点の3次元座標として、プレイヤーPの頭部モデルの中心座標を採用した例を示したが、これに限らず、例えば、コリジョンエリアCの進入位置に停止しているプレイヤー視点P1の3次元座標を採用してもよい。
【0064】
これにより、可動オブジェクト等を超えた先に続いている仮想空間へ操作モデルを貫通させた場合においてもテレポートを制限することが可能となるため、例えば、一定の条件(例えば鍵の入手など)を満たした場合に可動オブジェクトが動作してエリア間を移動可能になる、といった設定をユーザに必ず実行させることが可能となる。
【0065】
以上により、仮想空間内でオブジェクトに衝突した場合に、ユーザが違和感を持つことがない視界を表示すること、特に、オブジェクトが扉等の可動オブジェクトであったとしても、可動オブジェクトを超えた先に続いている仮想空間へのテレポートを制限することが可能な情報処理方法を提供することができる。
【0066】
上述した実施の形態は、本発明の理解を容易にするための例示に過ぎず、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良することができると共に、本発明にはその均等物が含まれることは言うまでもない。