JP2019175323A - シミュレーションシステム及びプログラム - Google Patents

シミュレーションシステム及びプログラム Download PDF

Info

Publication number
JP2019175323A
JP2019175323A JP2018065396A JP2018065396A JP2019175323A JP 2019175323 A JP2019175323 A JP 2019175323A JP 2018065396 A JP2018065396 A JP 2018065396A JP 2018065396 A JP2018065396 A JP 2018065396A JP 2019175323 A JP2019175323 A JP 2019175323A
Authority
JP
Japan
Prior art keywords
user
notification
virtual space
event
processing unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2018065396A
Other languages
English (en)
Inventor
田宮 幸春
Yukiharu Tamiya
幸春 田宮
千紘 小笹
Chihiro Ozasa
千紘 小笹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bandai Namco Entertainment Inc
Original Assignee
Bandai Namco Entertainment Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bandai Namco Entertainment Inc filed Critical Bandai Namco Entertainment Inc
Priority to JP2018065396A priority Critical patent/JP2019175323A/ja
Publication of JP2019175323A publication Critical patent/JP2019175323A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

【課題】イベントの発生によるユーザ移動体の状態の変化を起因とする不具合の発生を抑制できるシミュレーションシステム及びプログラムを提供する。【解決手段】シミュレーションシステムは、仮想空間設定部は、仮想空間の設定処理を行う。移動体処理部は、実空間のユーザに対応する仮想空間のユーザ移動体を、仮想空間において移動させる。表示処理部は、仮想空間において仮想カメラから見える画像として、ユーザが視界を覆うように装着するHMDの表示画像を生成する。イベント処理部は、ユーザ移動体の状態が所与の状態へと変化するイベントが発生したか否かを判断する。仮想空間設定部は、イベントが発生すると判断された場合に、実空間での座標のスケールと仮想空間での座標のスケールとの対応関係を切り替える。報知処理部は、切り替え処理が行われたことを条件に、ユーザの周囲に報知範囲を設定して、報知範囲をユーザに知らせる。【選択図】図26

Description

本発明は、シミュレーションシステム及びプログラム等に関する。
従来より、仮想空間において仮想カメラから見える画像を生成するシミュレーションシステムが知られている。例えば仮想カメラから見える画像をHMD(頭部装着型表示装置)に表示して、バーチャルリアリティ(VR)を実現するシミュレーションシステムの従来技術としては、特許文献1等に開示される技術がある。
特開平11−309269号公報
このようなシミュレーションシステムでは、あたかも仮想空間の世界に入り込んだかのような仮想現実をユーザに感じさせるために、実空間のユーザに対応するユーザ移動体を仮想空間に登場させる。具体的には実空間のユーザの視点に対応する仮想カメラを仮想空間内に設定し、当該仮想カメラから見える画像をHMDに表示する。この仮想カメラは仮想空間のユーザ移動体の視点に対応している。そして、これまでのシミュレーションシステムでは、実空間のユーザの視点と仮想空間のユーザ移動体の視点(仮想カメラ)は、対応した視点になっており、例えば実空間と同じ視点状態での画像がHMDに表示される。このため、仮想空間において見える画像は、実空間と同じ見え方の画像にしかならず、ユーザ移動体の状態の変化を反映させた仮想空間の画像を表示することはできなかった。
また、仮想空間のユーザ移動体の状態が変化するイベントが発生した場合に、ユーザに対して何ら報知を行わないと、様々な不具合が生じるおそれがあることが判明した。
本発明の幾つかの態様によれば、イベントの発生によるユーザ移動体の状態の変化を起因とする不具合の発生を抑制できるシミュレーションシステム及びプログラム等を提供できる。
本発明の一態様は、仮想空間の設定処理を行う仮想空間設定部と、ユーザが移動可能な実空間のユーザに対応する前記仮想空間のユーザ移動体を、前記仮想空間において移動させる処理を行う移動体処理部と、イベントの処理を行うイベント処理部と、前記ユーザに対する報知処理を行う報知処理部と、前記仮想空間において仮想カメラから見える画像として、前記ユーザが視界を覆うように装着する頭部装着型表示装置の表示画像を生成する表示処理部と、を含み、前記イベント処理部は、前記ユーザ移動体の状態が所与の状態へと変化するイベントが発生したか否かを判断し、前記仮想空間設定部は、前記イベントが発生すると判断された場合に、前記実空間での座標のスケールと前記仮想空間での座標のスケールとの対応関係を切り替える切り替え処理を行い、前記報知処理部は、前記切り替え処理が行われたことを条件に、ユーザの周囲に報知範囲を設定して、前記報知範囲を前記ユーザに知らせるため前記報知処理を行うシミュレーションシステムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラム、又は該プログラムを記憶したコンピュータ読み取り可能な情報記憶媒体に関係する。
本発明の一態様によれば、仮想空間が設定され、ユーザ移動体が移動する仮想空間において仮想カメラから見える画像が、頭部装着型表示装置の表示画像として生成される。そしてユーザ移動体の状態が所与の状態へと変化するイベントが発生すると判断されると、実空間での座標のスケールと仮想空間での座標のスケールとの対応関係を切り替える処理が実行される。このようにすれば、イベントの発生によりユーザ移動体の状態が変化したことを、座標のスケールの対応関係を切り替えるという処理により、頭部装着型表示装置の表示画像に反映させることが可能になる。そしてイベントの発生により当該切り替え処理が行われたことを条件に、ユーザの周囲に報知範囲が設定され、報知範囲をユーザに知らせるため報知処理が行われる。例えばイベントの発生によりユーザ移動体の状態が変化すると、実空間のユーザと仮想空間のユーザ移動体との間の位置関係にズレが生じる場合があり、ユーザが大きく移動すると、様々な不具合が生じる可能性がある。この点、本発明の一態様によれば、ユーザの移動範囲が、報知範囲内に留まるように、ユーザの行動を抑制できるようになる。従って、イベントの発生によるユーザ移動体の状態の変化を起因とする不具合の発生を抑制することが可能になる。
また本発明の一態様では、前記報知処理部は、前記実空間での前記ユーザの位置情報に基づいて前記報知範囲を設定し、前記ユーザが前記報知範囲を超えたと判定された場合に、前記報知処理を行ってもよい。
このようにすれば、報知範囲を越えようとしていたユーザは、報知処理が行われることで、報知範囲を越えて移動するのを躊躇するようになり、報知範囲内に留まるようにユーザを促すことが可能になる。
また本発明の一態様では、前記報知処理部は、前記仮想空間での前記ユーザ移動体の位置情報に基づいて前記報知範囲を設定してもよい。
このようにすれば、仮想空間でのユーザ移動体の周囲に報知範囲を設定することが可能になる。
また本発明の一態様では、前記仮想空間設定部は、前記イベントとして、前記ユーザ移動体のサイズを第1のサイズから第2のサイズに変化させるイベントが発生した場合に、前記切り替え処理を行い、前記報知処理部は、前記報知処理として、前記ユーザ移動体のサイズを前記第2のサイズから前記第1のサイズに戻す処理を行ってもよい。
このようにすれば、ユーザ移動体のサイズを第2のサイズから元の第1のサイズに戻すことで、報知範囲をユーザに対して効果的に知らせることが可能になる。
また本発明の一態様では、前記報知処理部は、音、振動又は画像を用いて前記報知処理を行ってもよい。
このようにすれば、音、振動又は画像を用いて、報知範囲をユーザに対して効果的に知らせることが可能になる。
また本発明の一態様では、前記報知処理部は、前記報知範囲をリアルタイムに変化させてもよい。
このようにすれば、ユーザの状況、他のユーザの状況、ユーザの周囲の状況、或いはゲーム状況などに応じた報知範囲の設定が可能になる。
また本発明の一態様では、前記切り替え処理が行われていない場合には、前記実空間での前記ユーザの位置が報知境界に接近したときに、前記仮想空間において前記報知境界の対応位置に、報知オブジェクトを配置する前記報知処理を行い、前記切り替え処理が行われている場合には、前記実空間での前記ユーザの位置が前記報知境界に接近したときに、前記仮想空間において前記報知境界の前記対応位置とは異なる位置に、前記報知オブジェクトを配置する前記報知処理を行ってもよい。
このようにすれば、切り替え処理が行われていない場合には、ユーザが報知境界に接近したときに、仮想空間において報知境界の対応位置に報知オブジェクトが配置されて、表示されるようになる。一方、ユーザ移動体の状態が変化するイベントにより切り替え処理が行われた場合には、ユーザが報知境界に接近したときに、報知境界の対応位置とは異なる位置に、報知オブジェクトが配置されて、表示されるようになる。これにより、イベントの発生によるユーザ移動体の状態の変化を起因とする不具合の発生を抑制することが可能になる。
また本発明の一態様では、前記仮想空間設定部は、前記イベントが発生すると判断された場合は、前記ユーザ移動体のローカル座標系から前記仮想空間のワールド座標系への座標変換の際に縮小又は拡大のスケール変換を行ってもよい。
このようにすれば、ワールド座標系への座標変換の際に縮小又は拡大のスケール変換を行うという簡素な処理で、イベントの発生によるユーザ移動体の状態の変化を、頭部装着型表示装置の表示画像に反映させることが可能になる。
また本発明の一態様では、前記仮想空間設定部は、前記イベントが発生すると判断された場合は、前記ユーザ移動体が移動する前記仮想空間を、第1の仮想空間から、前記第1の仮想空間とは座標軸のスケールが異なる第2の仮想空間に切り替えてもよい。
このようにすれば、ユーザ移動体が移動する仮想空間を第1の仮想空間から第2の仮想空間に切り替える処理により、イベントの発生によるユーザ移動体の状態の変化を、頭部装着型表示装置の表示画像に反映させることが可能になる。
また本発明の一態様では、前記仮想空間設定部は、前記イベントとして、前記ユーザ移動体のサイズを変化させるイベントが発生した場合に、前記切り替え処理を行ってもよい。
このようにすれば、ユーザ移動体のサイズが小さくなったり或いは大きくなったりする仮想現実を、ユーザに体験させることが可能になる。
また本発明の一態様では、前記イベント処理部は、前記ユーザの行動情報、他のユーザの行動情報、及びゲーム状況の少なくとも1つに基づいて、前記イベントが発生したか否かを判断してもよい。
このようにすれば、ユーザの行動、他のユーザの行動、或いはゲーム状況に応じて、ユーザ移動体を所与の状態に変化させるイベントを発生し、そのイベントの発生によるユーザ移動体の状態の変化をユーザに仮想体験させることが可能になる。
また本発明の一態様では、前記実空間での前記ユーザの視点情報のトラッキング情報を取得する情報取得部を含み(情報取得部としてコンピュータを機能させ)、前記表示処理部は、前記視点情報の前記トラッキング情報に基づき前記ユーザの視点変化に追従するように制御される前記仮想カメラから見える画像を、前記頭部装着型表示装置の表示画像として生成してもよい。
このようにすれば、実空間でのユーザの視点変化を反映させた仮想カメラの制御が可能になり、仮想空間の世界に入り込んだかのような仮想現実感をユーザに与えることが可能になる。
本実施形態のシミュレーションシステムの構成例を示すブロック図。 図2(A)、図2(B)は本実施形態に用いられるHMDの一例。 図3(A)、図3(B)は本実施形態に用いられるHMDの他の例。 シミュレーションシステムのプレイフィールドを説明する斜視図。 本実施形態により生成される仮想空間画像の例。 ユーザキャラクタのサイズ変化イベントの説明図。 ユーザキャラクタのサイズ変化イベントの説明図。 ユーザキャラクタのサイズ変化イベントの説明図。 イベント発生時にHMDに表示される画像の例。 イベント発生時にHMDに表示される画像の例。 イベント発生時にHMDに表示される画像の例。 座標スケールの切り替え処理の説明図。 座標スケールの切り替え処理の説明図。 座標スケールの切り替え処理の説明図。 座標スケールの切り替え処理の他の例の説明図。 図16(A)、図16(B)はユーザの行動又は他のユーザの行動に基づきイベントを発生する処理の説明図。 図17(A)〜図17(C)はイベント発生時に生じる不具合についての説明図。 報知範囲の設定処理についての説明図。 図19(A)、図19(B)はユーザが報知範囲を越えた場合の報知処理についての説明図。 ユーザキャラクタに報知範囲を設定する処理の説明図。 図21(A)、図21(B)は報知範囲をリアルタイムに変化させる処理の説明図。 報知境界の設定処理の説明図。 報知境界を越えた場合に表示される報知画像の例。 図24(A)、図24(B)はユーザキャラクタのサイズの変化により生じる不具合の説明図。 図25(A)、図25(B)は報知オブジェクトの配置処理の説明図。 本実施形態の詳細な処理例を示すフローチャート。
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
1.シミュレーションシステム
図1は、本実施形態のシミュレーションシステム(シミュレータ、ゲームシステム、画像生成システム)の構成例を示すブロック図である。本実施形態のシミュレーションシステムは例えばバーチャルリアリティ(VR)をシミュレートするシステムであり、ゲームコンテンツを提供するゲームシステム、スポーツ競技シミュレータや運転シミュレータなどのリアルタイムシミュレーションシステム、SNSのサービスを提供するシステム、映像等のコンテンツを提供するコンテンツ提供システム、或いは遠隔作業を実現するオペレーティングシステムなどの種々のシステムに適用可能である。なお、本実施形態のシミュレーションシステムは図1の構成に限定されず、その構成要素(各部)の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
操作部160は、ユーザ(プレーヤ)が種々の操作情報(入力情報)を入力するためのものである。操作部160は、例えば操作ボタン、方向指示キー、ジョイスティック、ハンドル、ペダル、レバー又は音声入力装置等の種々の操作デバイスにより実現できる。
記憶部170は各種の情報を記憶する。記憶部170は、処理部100や通信部196などのワーク領域として機能する。ゲームプログラムや、ゲームプログラムの実行に必要なゲームデータは、この記憶部170に保持される。記憶部170の機能は、半導体メモリ(DRAM、VRAM)、HDD(ハードディスクドライブ)、SSD、光ディスク装置などにより実現できる。記憶部170は、オブジェクト情報記憶部172、描画バッファ178を含む。
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(DVD、BD、CD)、HDD、或いは半導体メモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータ(入力装置、処理部、記憶部、出力部を備える装置)を機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
HMD200(頭部装着型表示装置)は、ユーザの頭部に装着されて、ユーザの眼前に画像を表示する装置である。HMD200は非透過型であることが望ましいが、透過型であってもよい。またHMD200は、いわゆるメガネタイプのHMDであってもよい。
HMD200は、センサ部210、表示部220、処理部240を含む。なおHMD200に発光素子を設ける変形実施も可能である。センサ部210は、例えばヘッドトラッキングなどのトラッキング処理を実現するためものである。例えばセンサ部210を用いたトラッキング処理により、HMD200の位置、方向を特定する。HMD200の位置、方向が特定されることで、ユーザの視点位置、視線方向を特定できる。
トラッキング方式としては種々の方式を採用できる。トラッキング方式の一例である第1のトラッキング方式では、後述の図2(A)、図2(B)で詳細に説明するように、センサ部210として複数の受光素子(フォトダイオード等)を設ける。そして外部に設けられた発光素子(LED等)からの光(レーザー等)をこれらの複数の受光素子により受光することで、現実世界の3次元空間でのHMD200(ユーザの頭部)の位置、方向を特定する。第2のトラッキング方式では、後述の図3(A)、図3(B)で詳細に説明するように、複数の発光素子(LED)をHMD200に設ける。そして、これらの複数の発光素子からの光を、外部に設けられた撮像部で撮像することで、HMD200の位置、方向を特定する。第3の方式では、センサ部210としてモーションセンサを設け、このモーションセンサを用いてHMD200の位置、方向を特定する。モーションセンサは例えば加速度センサやジャイロセンサなどにより実現できる。例えば3軸の加速度センサと3軸のジャイロセンサを用いた6軸のモーションセンサを用いることで、現実世界の3次元空間でのHMD200の位置、方向を特定できる。なお、第1のトラッキング方式と第2のトラッキング方式の組合わせ、或いは第1のトラッキング方式と第3のトラッキング方式の組合わせなどにより、HMD200の位置、方向を特定してもよい。またHMD200の位置、方向を特定することでユーザの視点位置、視線方向を特定するのではなく、ユーザの視点位置、視線方向を直接に特定するトラッキング処理を採用してもよい。
HMD200の表示部220は例えば有機ELディスプレイ(OEL)や液晶ディスプレイ(LCD)などにより実現できる。例えばHMD200の表示部220には、ユーザの左眼の前に設定される第1のディスプレイ又は第1の表示領域と、右眼の前に設定される第2のディスプレイ又は第2の表示領域が設けられており、立体視表示が可能になっている。立体視表示を行う場合には、例えば視差が異なる左眼用画像と右眼用画像を生成し、第1のディスプレイに左眼用画像を表示し、第2のディスプレイに右眼用画像を表示する。或いは1つのディスプレイの第1の表示領域に左眼用画像を表示し、第2の表示領域に右眼用画像を表示する。またHMD200には左眼用、右眼用の2つの接眼レンズ(魚眼レンズ)が設けられており、これによりユーザの視界の全周囲に亘って広がるVR空間が表現される。そして接眼レンズ等の光学系で生じる歪みを補正するための補正処理が、左眼用画像、右眼用画像に対して行われる。この補正処理は表示処理部120が行う。
HMD200の処理部240は、HMD200において必要な各種の処理を行う。例えば処理部240は、センサ部210の制御処理や表示部220の表示制御処理などを行う。また処理部240が、3次元音響(立体音響)処理を行って、3次元的な音の方向や距離や広がりの再現を実現してもよい。
音出力部192は、本実施形態により生成された音を出力するものであり、例えばスピーカー又はヘッドホン等により実現できる。
I/F(インターフェース)部194は、携帯型情報記憶媒体195とのインターフェース処理を行うものであり、その機能はI/F処理用のASICなどにより実現できる。携帯型情報記憶媒体195は、ユーザが各種の情報を保存するためのものであり、電源が非供給になった場合にもこれらの情報の記憶を保持する記憶装置である。携帯型情報記憶媒体195は、ICカード(メモリカード)、USBメモリ、或いは磁気カードなどにより実現できる。
通信部196は、有線や無線のネットワークを介して外部(他の装置)との間で通信を行うものであり、その機能は、通信用ASIC又は通信用プロセッサなどのハードウェアや、通信用ファームウェアにより実現できる。
なお本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、サーバ(ホスト装置)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(あるいは記憶部170)に配信してもよい。このようなサーバ(ホスト装置)による情報記憶媒体の使用も本発明の範囲内に含めることができる。
処理部100(プロセッサ)は、操作部160からの操作情報や、HMD200でのトラッキング情報(HMDの位置及び方向の少なくとも一方の情報。視点位置及び視線方向の少なくとも一方の情報)や、プログラムなどに基づいて、ゲーム処理(シミュレーション処理)、仮想空間設定処理、移動体処理、仮想カメラ制御処理、表示処理、或いは音処理などを行う。
処理部100の各部が行う本実施形態の各処理(各機能)はプロセッサ(ハードウェアを含むプロセッサ)により実現できる。例えば本実施形態の各処理は、プログラム等の情報に基づき動作するプロセッサと、プログラム等の情報を記憶するメモリにより実現できる。プロセッサは、例えば各部の機能が個別のハードウェアで実現されてもよいし、或いは各部の機能が一体のハードウェアで実現されてもよい。例えば、プロセッサはハードウェアを含み、そのハードウェアは、デジタル信号を処理する回路及びアナログ信号を処理する回路の少なくとも一方を含むことができる。例えば、プロセッサは、回路基板に実装された1又は複数の回路装置(例えばIC等)や、1又は複数の回路素子(例えば抵抗、キャパシター等)で構成することもできる。プロセッサは、例えばCPU(Central Processing Unit)であってもよい。但し、プロセッサはCPUに限定されるものではなく、GPU(Graphics Processing Unit)、或いはDSP(Digital Signal Processor)等、各種のプロセッサを用いることが可能である。またプロセッサはASICによるハードウェア回路であってもよい。またプロセッサは、アナログ信号を処理するアンプ回路やフィルター回路等を含んでもよい。メモリ(記憶部170)は、SRAM、DRAM等の半導体メモリであってもよいし、レジスターであってもよい。或いはハードディスク装置(HDD)等の磁気記憶装置であってもよいし、光学ディスク装置等の光学式記憶装置であってもよい。例えば、メモリはコンピュータにより読み取り可能な命令を格納しており、当該命令がプロセッサにより実行されることで、処理部100の各部の処理(機能)が実現されることになる。ここでの命令は、プログラムを構成する命令セットでもよいし、プロセッサのハードウェア回路に対して動作を指示する命令であってもよい。
処理部100は、入力処理部102、演算処理部110、出力処理部140を含む。演算処理部110は、情報取得部111、仮想空間設定部112、移動体処理部113、仮想カメラ制御部114、ゲーム処理部115、イベント処理部116、報知処理部117、表示処理部120、音処理部130を含む。上述したように、これらの各部により実行される本実施形態の各処理は、プロセッサ(或いはプロセッサ及びメモリ)により実現できる。なお、これらの構成要素(各部)の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
入力処理部102は、操作情報やトラッキング情報を受け付ける処理や、記憶部170から情報を読み出す処理や、通信部196を介して情報を受信する処理を、入力処理として行う。例えば入力処理部102は、操作部160を用いてユーザが入力した操作情報やHMD200のセンサ部210等により検出されたトラッキング情報を取得する処理や、読み出し命令で指定された情報を、記憶部170から読み出す処理や、外部装置(サーバ等)からネットワークを介して情報を受信する処理を、入力処理として行う。ここで受信処理は、通信部196に情報の受信を指示したり、通信部196が受信した情報を取得して記憶部170に書き込む処理などである。
演算処理部110は、各種の演算処理を行う。例えば情報取得処理、仮想空間設定処理、移動体処理、仮想カメラ制御処理、ゲーム処理(シミュレーション処理)、イベント処理、報知処理、表示処理、或いは音処理などの演算処理を行う。
情報取得部111(情報取得処理のプログラムモジュール)は種々の情報の取得処理を行う。例えば情報取得部111は、HMD200を装着するユーザの位置情報などを取得する。情報取得部111はユーザの方向情報などを取得してもよい。
仮想空間設定部112(仮想空間設定処理のプログラムモジュール)は、オブジェクトが配置される仮想空間(オブジェクト空間)の設定処理を行う。例えば、移動体(人、ロボット、車、電車、飛行機、船、モンスター又は動物等)、マップ(地形)、建物、観客席、コース(道路)、樹木、壁、水面などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト)を仮想空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。具体的には、記憶部170のオブジェクト情報記憶部172には、仮想空間でのオブジェクト(パーツオブジェクト)の位置、回転角度、移動速度、移動方向等の情報であるオブジェクト情報がオブジェクト番号に対応づけて記憶される。仮想空間設定部112は、例えば各フレーム毎にこのオブジェクト情報を更新する処理などを行う。
移動体処理部113(移動体処理のプログラムモジュール)は、仮想空間内で移動する移動体についての種々の処理を行う。例えば仮想空間(オブジェクト空間、ゲーム空間)において移動体を移動させる処理や、移動体を動作させる処理を行う。例えば移動体処理部113は、操作部160によりユーザが入力した操作情報や、取得されたトラッキング情報や、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、移動体(モデルオブジェクト)を仮想空間内で移動させたり、移動体を動作(モーション、アニメーション)させる制御処理を行う。具体的には、移動体の移動情報(位置、回転角度、速度、或いは加速度)や動作情報(パーツオブジェクトの位置、或いは回転角度)を、1フレーム(例えば1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、移動体の移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。移動体は、例えば実空間のユーザ(プレーヤ)に対応するユーザ移動体である。ユーザ移動体は、仮想空間の仮想ユーザ(仮想プレーヤ、アバター)や、或いは当該仮想ユーザが搭乗(操作)する搭乗移動体(操作移動体)などである。
仮想カメラ制御部114(仮想カメラ制御処理のプログラムモジュール)は、仮想カメラの制御を行う。例えば、操作部160により入力されたユーザの操作情報やトラッキング情報などに基づいて、仮想カメラを制御する処理を行う。
例えば仮想カメラ制御部114は、ユーザの一人称視点又は三人称視点として設定される仮想カメラの制御を行う。例えば仮想空間において移動するユーザ移動体の視点(一人称視点)に対応する位置に、仮想カメラを設定して、仮想カメラの視点位置や視線方向を設定することで、仮想カメラの位置(位置座標)や姿勢(回転軸回りでの回転角度)を制御する。或いは、ユーザ移動体に追従する視点(三人称視点)の位置に、仮想カメラを設定して、仮想カメラの視点位置や視線方向を設定することで、仮想カメラの位置や姿勢を制御する。
例えば仮想カメラ制御部114は、視点トラッキングにより取得されたユーザの視点情報のトラッキング情報に基づいて、ユーザの視点変化に追従するように仮想カメラを制御する。例えば本実施形態では、ユーザの視点位置、視線方向の少なくとも1つである視点情報のトラッキング情報(視点トラッキング情報)が取得される。このトラッキング情報は、例えばHMD200のトラッキング処理を行うことで取得できる。そして仮想カメラ制御部114は、取得されたトラッキング情報(ユーザの視点位置及び視線方向の少なくとも一方の情報)に基づいて仮想カメラの視点位置、視線方向を変化させる。例えば、仮想カメラ制御部114は、実空間でのユーザの視点位置、視線方向の変化に応じて、仮想空間での仮想カメラの視点位置、視線方向(位置、姿勢)が変化するように、仮想カメラを設定する。このようにすることで、ユーザの視点情報のトラッキング情報に基づいて、ユーザの視点変化に追従するように仮想カメラを制御できる。
ゲーム処理部115(ゲーム処理のプログラムモジュール)は、ユーザがゲームをプレイするための種々のゲーム処理を行う。別の言い方をすれば、ゲーム処理部115(シミュレーション処理部)は、ユーザが仮想現実(バーチャルリアリティ)を体験するための種々のシミュレーション処理を実行する。ゲーム処理は、例えば、ゲーム開始条件が満たされた場合にゲームを開始する処理、開始したゲームを進行させる処理、ゲーム終了条件が満たされた場合にゲームを終了する処理、或いはゲーム成績を演算する処理などである。
イベント処理部116(イベント処理のプログラムモジュール)はイベントに関する各種の処理を行う。報知処理部117(報知処理のプログラムモジュール)は各種の報知処理を行う。例えばユーザに対する警告の報知処理などを行う。報知処理は、例えば画像や音による報知処理であってもよいし、振動デバイスや音響や空気砲などの体感装置を用いた報知処理であってもよい。
表示処理部120(表示処理のプログラムモジュール)は、ゲーム画像(シミュレーション画像)の表示処理を行う。例えば処理部100で行われる種々の処理(ゲーム処理、シミュレーション処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部220に表示する。具体的には、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、透視変換、或いは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ(プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)が作成される。そして、この描画データ(プリミティブ面データ)に基づいて、透視変換後(ジオメトリ処理後)のオブジェクト(1又は複数プリミティブ面)を、描画バッファ178(フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファ)に描画する。これにより、仮想空間において仮想カメラ(所与の視点。左眼用、右眼用の第1、第2の視点)から見える画像が生成される。なお、表示処理部120で行われる描画処理は、頂点シェーダ処理やピクセルシェーダ処理等により実現することができる。
音処理部130(音処理のプログラムモジュール)は、処理部100で行われる種々の処理の結果に基づいて音処理を行う。具体的には、楽曲(音楽、BGM)、効果音、又は音声などのゲーム音を生成し、ゲーム音を音出力部192に出力させる。なお音処理部130の音処理の一部(例えば3次元音響処理)を、HMD200の処理部240により実現してもよい。
出力処理部140は各種の情報の出力処理を行う。例えば出力処理部140は、記憶部170に情報を書き込む処理や、通信部196を介して情報を送信する処理を、出力処理として行う。例えば出力処理部140は、書き込み命令で指定された情報を、記憶部170に書き込む処理や、外部の装置(サーバ等)に対してネットワークを介して情報を送信する処理を行う。送信処理は、通信部196に情報の送信を指示したり、送信する情報を通信部196に指示する処理などである。
そして本実施形態のシミュレーションシステムは、図1に示すように、仮想空間設定部112と、移動体処理部113と、イベント処理部116と、報知処理部117と、表示処理部120を含む。
仮想空間設定部112は、仮想空間の設定処理を行う。例えばユーザに対応するユーザ移動体のオブジェクトや、敵等の相手の移動体のオブジェクトや、マップや背景を構成するオブジェクトを、仮想空間に配置設定する処理を行う。ユーザに対応するユーザ移動体は、例えばユーザが操作部160により操作する移動体や、実空間でのユーザの移動に追従して仮想空間において移動する移動体である。このユーザ移動体は、例えばキャラクタやアバターと呼ばれるものである。ユーザ移動体は、ユーザが搭乗するロボット等の搭乗移動体であってもよい。またユーザ移動体は、その画像が表示される表示物であってもよいし、画像が表示されない仮想的なものであってもよい。例えば仮想空間の画像として一人称視点の画像が表示される場合等には、ユーザ移動体は非表示であってもよいし、ユーザ移動体の一部の部位(例えば手、胸又は顔等)だけが表示されるものであってもよい。
移動体処理部113は、ユーザが移動可能な実空間のユーザに対応する仮想空間のユーザ移動体(仮想カメラ)を、仮想空間において移動させる処理を行う。例えば、ユーザが操作部160により入力した操作情報に基づいて、仮想空間においてユーザ移動体を移動させる。或いは、情報取得部111が、実空間でのユーザの位置情報を取得する場合には、移動体処理部113は、取得された位置情報(視点トラッキング情報)に基づいて、仮想空間においてユーザ移動体を移動させる処理を行う。例えば、実空間でのユーザの移動に追従して移動するように、仮想空間においてユーザ移動体を移動させる。例えばユーザ移動体の移動速度や移動加速度に基づいて、ユーザ移動体の位置等をフレーム毎に更新する処理を行って、ユーザ移動体を仮想空間(仮想フィールド)において移動させる。
イベント処理部116はイベントの処理を行う。例えばユーザに対応する仮想空間のユーザ移動体について発生する各種のイベントの処理を行う。
表示処理部120(描画処理部)は、仮想空間の画像(オブジェクト)の描画処理を行う。例えば表示処理部120は、仮想空間において仮想カメラ(所与の視点)から見える画像として、ユーザが視界を覆うように装着するHMD200の表示画像を生成する。例えばユーザキャラクタ(アバター)等のユーザ移動体の視点(一人称視点)に設定された仮想カメラから見える画像の描画処理を行う。或いは、ユーザ移動体に追従する視点(三人称視点)に設定された仮想カメラから見える画像の描画処理を行う。生成される画像は、例えば左眼用画像、右眼用画像などの立体視用の画像であることが望ましい。
そしてイベント処理部116は、ユーザ移動体の状態が所与の状態へと変化するイベントが発生したか否かを判断する。ユーザ移動体の状態は例えばユーザ移動体のサイズの状態であり、別の言い方をすればユーザ移動体の視点(視点位置、視線方向)の状態である。この場合には、発生するイベントは、ユーザ移動体のサイズが所与のサイズに変化するサイズ変化イベント(視点状態変化イベント)である。例えばイベントは、ユーザ移動体のサイズが小さくなったり、或いは大きくなったりするイベントである。なお、イベントは、ユーザ移動体の形状や外観などが変化するイベントや、ユーザ移動体の周囲の環境状況が変化するイベントであってもよい。
そして仮想空間設定部112は、イベントが発生すると判断された場合に、実空間での座標のスケールと仮想空間での座標のスケールとの対応関係を切り替える切り替え処理を行う。例えば実空間の座標系と仮想空間の座標系を対応づける際に縮小又は拡大のスケール変換を行う。具体的には仮想空間設定部112は、イベントが発生すると判断された場合に、実空間での位置座標についてのスケールと仮想空間での位置座標についてのスケールとの対応関係を切り替える。或いは実空間の座標軸のスケールと仮想空間の座標軸のスケールとの対応関係を切り替える。座標のスケールは、例えば座標空間(実空間、仮想空間)での長さ(位置座標又は座標軸)の尺度(目盛り)を表すものである。実空間での座標のスケールと仮想空間での座標のスケールとの対応関係は、例えば実空間での1mの長さが、仮想空間においてどのような長さに対応するかについての関係である。例えば座標のスケールの第1の対応関係(通常の対応関係)では、実空間での1mの長さが、仮想空間においても1m(略1m)になる。一方、座標のスケールの第2の対応関係では、実空間での1mの長さが、仮想空間では1mよりも短くなる(例えば10cm)。座標のスケールの第3の対応関係では、実空間での1mの長さが、仮想空間では1mよりも長くなる(例えば10m)。仮想空間設定部112は、ユーザ移動体の状態が所与の状態へと変化するイベントが発生すると、実空間での座標のスケールと仮想空間での座標のスケールとの対応関係を、例えば第1の対応関係から第2の対応関係に切り替えたり、第1の対応関係から第3の対応関係に切り替えたり、第2の対応関係から第3の対応関係に切り替える。
そして本実施形態では報知処理部117は、上述した座標のスケールの対応関係の切り替え処理が行われたことを条件に、ユーザの周囲に報知範囲を設定する。例えば切り替え処理用に用意された報知範囲を、ユーザの周囲に設定する。この場合にユーザに対応するユーザ移動体の周囲に対しても、ユーザが当該範囲を視覚的に認識するための報知範囲を設定するようにしてもよい。例えば報知処理部117は、ユーザ移動体の状態が所与の状態に変化するイベントが発生すると判断された場合に、報知範囲を設定する。そして報知範囲をユーザに知らせるため報知処理を行う。本実施形態では、切り替え処理が行われたことを条件に報知範囲を設定するため、例えば座標のスケールの対応関係の切り替え処理が行われていない場合には、報知範囲を設定しない。そして座標のスケールの対応関係の切り替え処理が行われたことを条件に報知範囲を設定して、報知範囲を用いた報知処理を行う。例えば報知処理部117は、座標のスケールの対応関係の切り替え処理が行われた後、報知処理の発動条件が成立した場合に、報知処理を行う。
報知範囲は、座標のスケールの対応関係の切り替え処理用(イベントの発生用)に用意された所与の範囲の領域であり、例えば実空間のユーザの位置情報を基準にして設定される。例えば報知範囲は、実空間のユーザの位置を内包するように設定される。そして報知処理部117は、視覚、聴覚又は触覚等により報知範囲をユーザが認識できるようにする報知処理を行う。なお仮想空間のユーザ移動体の位置情報を基準に報知範囲を設定する変形実施も可能である。
例えば報知処理部117は、実空間でのユーザの位置情報に基づいて報知範囲を設定する。例えば実空間のユーザの位置を内包するように報知範囲を設定する。一例としてはユーザの位置が中央位置になるように報知範囲を設定する。そして報知処理部117は、ユーザが報知範囲を超えたと判定した場合に、報知処理を行う。例えばユーザの位置が報知範囲に内包されなくなった場合に報知範囲を超えたと判定する。報知処理部117は、ユーザが報知範囲を超えることで、報知処理の発動条件が成立すると、報知処理を行う。そしてユーザが報知範囲を超えていることを視覚、聴覚又は触覚等によりユーザが認識できるようにする報知処理を行う。報知範囲の形状は任意であり、例えば実空間のユーザの位置を内包するような円形状、楕円形状、或いは多角形形状(三角形状、四角形形状)などの種々の形状を採用できる。また報知範囲の形状は立体形状であってもよい。
なお報知処理部117は、仮想空間でのユーザ移動体の位置情報に基づいて報知範囲を設定してもよい。例えば仮想空間のユーザ移動体の位置を内包するように報知範囲を設定する。一例としてはユーザ移動体の位置が中央位置になるように報知範囲を設定する。そして報知処理部117は、ユーザ移動体が報知範囲を超えたと判定した場合に、報知処理を行う。
また仮想空間設定部112は、イベントとして、ユーザ移動体のサイズを第1のサイズから第2のサイズに変化させるイベントが発生した場合に、上述した座標のスケールの対応関係の切り替え処理を行う。第2のサイズは、例えば第1のサイズよりも小さいサイズである。なお第2のサイズは第1のサイズよりも大きいサイズであってもよい。そして報知処理部117は、報知処理として、ユーザ移動体のサイズを第2のサイズから第1のサイズに戻す処理を行う。即ち、ユーザ移動体のサイズを第1のサイズから第2のサイズに変化させるイベントにより、実空間での座標のスケールと仮想空間での座標のスケールとの対応関係を切り替える処理が行われる。報知処理部117は、このような切り替え処理が行われた場合に、切り替え時用の報知範囲を設定する。そして、例えばユーザが報知範囲を超えるなどして、報知処理の発動条件が成立すると、イベントの発生により第1のサイズから第2のサイズに変化したユーザ移動体のサイズを、第2のサイズに戻す報知処理を行う。例えばサイズ変化のイベントを強制終了する報知処理を行う。ユーザは、第1のサイズから第2のサイズに変化したユーザ移動体が、第2のサイズに戻って、イベントが強制終了することで、自身が報知範囲を超えたことを認識できるようになる。
また報知処理部117は、音、振動又は画像を用いて報知処理を行ってもよい。例えば警告音、警告を知らせる振動、又は警告画像を用いて報知処理を行う。具体的には、報知処理部117は、音出力部192により報知音を出力させることで、報知処理を行う。或いは操作部160やゲームフィールドに設けられる振動デバイスを振動させることで、報知処理を行う。或いは、HMD200に警告用の画像を表示することで、報知処理を行う。報知処理部117は、空気砲などの体感装置を用いた報知処理を行ってもよい。
また報知処理部117は、報知範囲をリアルタイムに変化させてもよい。例えばユーザ又は他のユーザの状況に応じて、報知範囲を変化させる。或いはユーザ移動体又は他のユーザに対応する他ユーザ移動体の状況に応じて、報知範囲を変化させる。例えばユーザ、他のユーザ、ユーザ移動体又の他ユーザ移動体の行動の状況、環境の状況などに応じて、報知範囲を変化させる。別の言い方をすればゲーム状況に応じて報知範囲を変化させる。
また報知処理部117は、座標のスケールの対応関係の切り替え処理が行われていない場合には、実空間でのユーザの位置が報知境界に接近したときに(越えたときに)、仮想空間において報知境界の対応位置に、報知オブジェクトを配置する報知処理を行う。これにより、報知境界の対応位置に報知オブジェクトが配置されて、報知オブジェクトによる報知画像が表示されるようになる。一方、報知処理部117は、座標のスケールの対応関係の切り替え処理が行われた場合には、実空間でのユーザの位置が報知境界に接近したときに(越えたときに)、仮想空間において報知境界の対応位置とは異なる位置に、報知オブジェクトを配置する報知処理を行う。これにより、報知境界の対応位置とは異なる位置に報知オブジェクトが配置されて、報知オブジェクトによる報知画像が表示されるようになる。ここで、報知境界の対応位置は、報知境界により報知する必要がある現実世界の物体や境界に対応する仮想空間の位置である。報知境界の対応位置とは異なる位置は、ユーザ移動体から見て、報知境界の対応位置よりも例えば手前側の位置である。
例えば本実施形態では、プレイフィールドを仕切る壁等の仕切り部材の内側に報知境界を設定する。そして、座標のスケールの対応関係の切り替え処理が行われていない場合には、実空間でのユーザの位置が、壁等の仕切り部材の内側に設定された報知境界に接近したときに(報知境界を越えたときに)、仮想空間での報知境界の対応位置に、報知オブジェクトを配置する。例えば壁等の仕切り部材の位置に対応する仮想空間の位置に、報知オブジェクトを配置する。そして当該報知オブジェクトによる報知画像により、報知境界の警告等を行う。こうすることで、ユーザが仕切り部材にぶつかってしまう事態を防止できる。一方、座標のスケールの対応関係の切り替え処理が行われた場合には、実空間でのユーザの位置が、報知境界に接近したときに(報知境界を越えたときに)、仮想空間での報知境界の対応位置とは異なる位置に報知オブジェクトを配置する。例えば、報知境界の対応位置よりも手前側の位置に、報知オブジェクトを配置する。そして当該報知オブジェクトによる報知画像により、報知境界の警告等を行う。こうすることで、例えば座標のスケールの対応関係の切り替え処理により、仮想空間でのユーザ移動体の移動距離の方が、実空間でのユーザの移動距離よりも短くなった場合等において、ユーザが仕切り部材にぶつかってしまうような事態を防止できるようになる。
また仮想空間設定部112は、座標のスケールの対応関係の切り替え処理として、以下に説明するような処理を行う。具体的には仮想空間設定部112は、イベントが発生すると判断された場合は、ユーザ移動体のローカル座標系から仮想空間のワールド座標系への座標変換の際に縮小又は拡大のスケール変換を行う。例えばユーザ移動体のローカル座標系を仮想空間のワールド座標系に対応づける際に縮小又は拡大のスケール変換を行う。これによりユーザ移動体に対応するオブジェクト(キャラクタオブジェクト、HMDオブジェクト)を縮小又は拡大するスケール変換を行ったり、当該オブジェクトの移動距離を縮小又は拡大するスケール変換を行うことが可能になる。ローカル座標系からワールド座標系への座標変換(モデリング変換)を行うことで、ユーザ移動体に対応するオブジェクトについての位置座標をローカル座標系の位置座標からワールド座標系への位置座標に変換できる。スケール変換は、例えば位置座標にスケール係数を乗算する変換処理である。
例えば仮想空間設定部112は、ユーザの左眼の視点に対応する左眼用の仮想カメラと、ユーザの右眼の視点に対応する右眼用の仮想カメラを、仮想空間に配置設定する。実空間のHMD200に対応する仮想空間のHMDオブジェクトは、これらの左眼用の仮想カメラと右眼用の仮想カメラにより構成されるオブジェクトである。このHMDオブジェクトは、上述したユーザ移動体に対応するオブジェクトである。仮想空間設定部112は、このHMDオブジェクトを縮小又は拡大するスケーリング変換を行う。これによりHMD200を装着したユーザは、あたかも自分自身のサイズが小さくなったり或いは大きくなったかのような仮想現実を体験できるようになる。例えば仮想空間設定部112は、上述のスケール変換により、実空間のユーザの左眼、右眼の視点の位置座標のスケールと、仮想空間の左眼用、右眼用の仮想カメラの位置座標のスケールとの対応関係を切り替える。例えば通常の対応関係である第1の対応関係では、ユーザの左眼、右眼の視点の位置座標のスケールと、左眼用、右眼用の仮想カメラの位置座標のスケールは同じになっている。そして仮想空間設定部112は、イベントが発生すると、この第1の対応関係から、左眼用、右眼用の仮想カメラの位置が低くなり、左眼用、右眼用の仮想カメラ間の距離が短くなる第2の対応関係に切り替える。こうすることで、ユーザ移動体のサイズが小さくなったときに見える画像を、HMD200の表示画像として生成できるようになる。或いは、仮想空間設定部112は、イベントが発生すると、この第1の対応関係から、左眼用、右眼用の仮想カメラの位置が高くなり、左眼用、右眼用の仮想カメラ間の距離が長くなる第3の対応関係に切り替える。こうすることで、ユーザ移動体のサイズが大きくなったときに見える画像を、HMD200の表示画像として生成できるようになる。
或いは仮想空間設定部112は、イベントが発生すると判断された場合は、ユーザ移動体が移動する仮想空間を、第1の仮想空間から、第1の仮想空間とは座標軸のスケールが異なる第2の仮想空間に切り替える。第1の仮想空間は、例えば実空間と同じ広さの座標空間となっている。一方、第2の仮想空間は、実空間よりも広い座標空間であったり、或いは実空間よりも狭い座標空間になる。例えば仮想空間設定部112は、イベントが発生すると判断された場合に、第1の仮想空間から、実空間よりも広い座標空間である第2の仮想空間に切り替える。この際にユーザ移動体のサイズについては変化させない。こうすることで、第2の仮想空間に対するユーザ移動体の相対的なサイズが小さくなるため、ユーザ移動体のサイズが小さくなったときに見える画像を、HMD200の表示画像として生成できるようになる。或いは、仮想空間設定部112は、イベントが発生すると判断された場合に、第1の仮想空間から、実空間よりも狭い座標空間である第2の仮想空間に切り替える。この際にユーザ移動体のサイズについては変化させない。こうすることで、第2の仮想空間に対するユーザ移動体の相対的なサイズが大きくなるため、ユーザ移動体のサイズが大きくなったときに見える画像を、HMD200の表示画像として生成できるようになる。
また仮想空間設定部112は、イベントとして、ユーザ移動体のサイズを変化させるイベントが発生した場合に、上記の切り替え処理を行う。例えば仮想空間設定部112は、ユーザ移動体のサイズを小さいサイズに変化させるイベントが発生した場合に、実空間での座標のスケールと仮想空間での座標のスケールとの対応関係を切り替える処理を行う。例えば実空間での座標のスケールと仮想空間での座標のスケールとの対応関係を、上述の第1の対応関係から第2の対応関係に切り替える。或いは仮想空間設定部112は、ユーザ移動体のサイズを大きいサイズに変化させるイベントが発生した場合に、実空間での座標のスケールと仮想空間での座標のスケールとの対応関係を切り替える処理を行う。例えば実空間での座標のスケールと仮想空間での座標のスケールとの対応関係を、上述の第1の対応関係から第3の対応関係に切り替える。
なおユーザ移動体の状態が所与の状態へと変化するイベントとしては、ユーザ移動体のサイズの変更イベント、ユーザ移動体の変形イベント、異なる種類の移動体への変更イベント(変身)、或いはユーザ移動体の視点や視線の変更イベントなどがある。
またイベント処理部116は、ユーザの行動情報、他のユーザの行動情報、及びゲームの状況の少なくとも1つに基づいて、イベントが発生したか否かを判断する。ユーザや他のユーザの行動情報は、例えばユーザや他のユーザが操作部160を操作することによる操作情報や、ユーザや他のユーザの部位の動きを検出するセンサからの検出情報などに基づき取得できる。例えばイベント処理部116は、ユーザが、操作部160であるゲームコントローラや手等の部位を、自身の方に向けたり、他のユーザが、ゲームコントローラや手等の部位を、ユーザの方に向けたことが検出された場合に、イベントが発生したと判断する。或いは、イベント処理部116は、ゲーム状況に基づいてイベントが発生したか否かを判断する。ゲーム状況は、例えばユーザ移動体の行動の状況、ユーザ移動体の環境の状況(ユーザ移動体が移動するマップの状況、ユーザ移動体の周囲の状況、或いは時刻等の時間情報の状況)、或いはゲームの進行状況などである。例えばイベント処理部116は、ユーザ移動体のサイズを第1のサイズから第2のサイズに変化させた後、実空間でのユーザの位置と仮想空間でのユーザ移動体の対応位置との間にズレが生じると判定した場合に、ユーザ移動体のサイズを第2のサイズから元の第1のサイズに戻すイベントを発生させる。
また図1に示すように本実施形態のシミュレーションシステムは情報取得部111を含む。情報取得部111は、実空間でのユーザの視点情報(視点位置や視線方向)のトラッキング情報を取得する。そして表示処理部120は、視点情報のトラッキング情報に基づきユーザの視点変化に追従するように制御される仮想カメラから見える画像を、HMD200の表示画像として生成する。例えば情報取得部111は、ユーザの視点位置、視線方向の少なくとも1つである視点情報のトラッキング情報(視点トラッキング情報)を取得する。このトラッキング情報は、例えばHMD200のトラッキング処理を行うことで取得できる。なおトラッキング処理によりユーザの視点位置、視線方向を直接に取得するようにしてもよい。一例としては、トラッキング情報は、ユーザの初期視点位置からの視点位置の変化情報(視点位置の座標の変化値)、及び、ユーザの初期視線方向からの視線方向の変化情報(視線方向の回転軸回りでの回転角度の変化値)の少なくとも一方を含むことができる。このようなトラッキング情報が含む視点情報の変化情報に基づいて、ユーザの視点位置や視線方向(ユーザの頭部の位置、姿勢の情報)を特定できる。
そして仮想カメラ制御部114は、取得された視点情報のトラッキング情報に基づいて仮想カメラを制御する。即ち仮想カメラ制御部114は、ユーザの視点情報のトラッキング情報に基づいて、ユーザの視点変化に追従するように仮想カメラを制御する。そして表示処理部120は、視点情報のトラッキング情報に基づき制御される仮想カメラから見える画像を、HMD200の表示画像として生成する。そして上述したように仮想空間設定部112は、イベントが発生すると判断された場合に、実空間のユーザの視点の位置座標の座標のスケールと、仮想空間のユーザ移動体の視点に対応する仮想カメラの位置座標の座標のスケールとの対応関係を切り替える処理を行う。そして、この切り替え処理において、視点情報のトラッキング情報に基づき求められた実空間のユーザの視点の位置座標の変換処理を行って、仮想カメラの位置座標を求めることになる。例えば実空間のユーザの視点の位置座標を小さくしたり、大きくする変換処理を行って、仮想カメラの位置座標を求める。
また本実施形態では、ユーザがプレイするゲームのゲーム処理として、仮想現実のシミュレーション処理を行う。仮想現実のシミュレーション処理は、実空間での事象を仮想空間で模擬するためのシミュレーション処理であり、当該事象をユーザに仮想体験させるための処理である。例えば実空間のユーザに対応する仮想ユーザやその搭乗移動体などのユーザ移動体を、仮想空間で移動させたり、移動に伴う環境や周囲の変化をユーザに体感させるための処理を行う。
なお図1の本実施形態のシミュレーションシステムの処理は、施設に設置されるPC等の処理装置、ユーザが装着する処理装置(PC)、或いはこれらの処理装置の分散処理などにより実現できる。或いは、本実施形態のシミュレーションシステムの処理を、サーバシステムと端末装置により実現してもよい。例えばサーバシステムと端末装置の分散処理などにより実現してもよい。
2.トラッキング処理
次にトラッキング処理の例について説明する。図2(A)に本実施形態のシミュレーションシステムに用いられるHMD200の一例を示す。図2(A)に示すようにHMD200には複数の受光素子201、202、203(フォトダイオード)が設けられている。受光素子201、202はHMD200の前面側に設けられ、受光素子203はHMD200の右側面に設けられている。またHMDの左側面、上面等にも不図示の受光素子が設けられている。
またユーザUSは、ゲームコントローラ290を所持しており、このゲームコントローラ290にも、受光素子204、205、206(フォトダイオード)が設けられている。これらの受光素子204、205、206を用いることで、ゲームコントローラ290の位置や方向を特定できる。なお、ユーザUSの手や指の動きを、いわゆるリープモーションと呼ばれる処理により検出してもよい。例えば不図示のコントローラがHMD200等に取り付けられており、このコントローラに基づいて、手や指の動きの検出処理を実現する。このコントローラは、例えば赤外線を照射するLED等の発光部と、赤外線に照らされた手や指を撮影する複数台の赤外線カメラを有する。そして赤外線カメラの撮影画像の画像解析結果に基づいて、手や指の動きを検出する。
またHMD200には、HMD200を装着するためのヘッドバンド260や、ヘッドホン270を接続するためのヘッドホン端子が設けられている。これにより例えば3次元音響(3次元オーディオ)の処理が施されたゲーム音を、ユーザUSは聴くことが可能になる。なお、ユーザUSの頭部の頷き動作や首振り動作をHMD200のセンサ部210等により検出することで、ユーザUSの操作情報を入力できるようにしてもよい。
またユーザUSは、不図示の処理装置(バックパックPC)を例えば背中に装着している。例えばユーザUSはジャケットを着ており、このジャケットの背面側に処理装置が取り付けられている。処理装置は例えばノート型PC等の情報処理装置により実現される。そしてこの処理装置とHMD200は不図示のケーブルにより接続されている。例えば処理装置は、HMD200に表示される画像(ゲーム画像等)の生成処理を行い、生成された画像のデータがケーブルを介してHMD200に送られ、HMD200に表示される。この処理装置は、このような画像の生成処理以外にも、本実施形態の各処理(情報取得処理、仮想空間設定処理、移動体処理、仮想カメラ制御処理、ゲーム処理、イベント処理、報知処理、表示処理又は音処理等)を行うことが可能になっている。なお、本実施形態の各処理を、施設に設置されたPC等の処理装置(不図示)により実現したり、当該処理装置と、ユーザUSが装着する処理装置の分散処理により実現してもよい。
図2(B)に示すように、シミュレーションシステムの周辺には、ベースステーション280、284が設置されている。ベースステーション280には発光素子281、282が設けられ、ベースステーション284には発光素子285、286が設けられている。発光素子281、282、285、286は、例えばレーザー(赤外線レーザー等)を出射するLEDにより実現される。ベースステーション280、284は、これら発光素子281、282、285、286を用いて、例えばレーザーを放射状に出射する。そして図2(A)のHMD200に設けられた受光素子201、202、203が、ベースステーション280、284からのレーザーを受光することで、HMD200のトラッキングが実現され、ユーザUSの頭の位置や向く方向(視点位置、視線方向)を検出できるようになる。またゲームコントローラ290に設けられた受光素子204、205、206がベースステーション280、284からのレーザーを受光することで、ゲームコントローラ290のトラッキングが実現され、ゲームコントローラ290の位置や向く方向を検出できるようになる。
図3(A)にHMD200の他の例を示す。図3(A)では、HMD200に対して複数の発光素子231〜236が設けられている。これらの発光素子231〜236は例えばLEDなどにより実現される。発光素子231〜234は、HMD200の前面側に設けられ、発光素子235や不図示の発光素子236は、背面側に設けられる。これらの発光素子231〜236は、例えば可視光の帯域の光を出射(発光)する。具体的には発光素子231〜236は、互いに異なる色の光を出射する。
そして図3(B)に示す撮像部150を、ユーザUSの周囲の少なくとも1つの場所(例えば前方側、或いは前方側及び後方側など)に設置し、この撮像部150により、HMD200の発光素子231〜236の光を撮像する。即ち、撮像部150の撮像画像には、これらの発光素子231〜236のスポット光が映る。そして、この撮像画像の画像処理を行うことで、ユーザUSの頭部(HMD)のトラッキングを実現する。即ちユーザUSの頭部の3次元位置や向く方向(視点位置、視線方向)を検出する。
例えば図3(B)に示すように撮像部150には第1、第2のカメラ151、152が設けられており、これらの第1、第2のカメラ151、152の第1、第2の撮像画像を用いることで、ユーザUSの頭部の奥行き方向での位置等が検出可能になる。またHMD200に設けられたモーションセンサのモーション検出情報に基づいて、ユーザUSの頭部の回転角度(視線)も検出可能になっている。従って、このようなHMD200を用いることで、ユーザUSが、周囲の360度の全方向うちのどの方向を向いた場合にも、それに対応する仮想空間(仮想3次元空間)での画像(ユーザの視点に対応する仮想カメラから見える画像)を、HMD200の表示部220に表示することが可能になる。
なお、発光素子231〜236として、可視光ではなく赤外線のLEDを用いてもよい。また、例えばデプスカメラ等を用いるなどの他の手法で、ユーザの頭部の位置や動き等を検出するようにしてもよい。
また、ユーザの視点位置、視線方向(ユーザの位置、方向)を検出するトラッキング処理の手法は、図2(A)〜図3(B)で説明した手法には限定されない。例えばHMD200に設けられたモーションセンサ等を用いて、HMD200の単体でトラッキング処理を実現してもよい。即ち、図2(B)のベースステーション280、284、図3(B)の撮像部150などの外部装置を設けることなく、トラッキング処理を実現する。或いは、公知のアイトラッキング、フェイストラッキング又はヘッドトラッキングなどの種々の視点トラッキング手法により、ユーザの視点位置、視線方向などの視点情報等を検出してもよい。
またHMD200として、いわゆるスマートフォンVR又はVRゴーグルと呼ばれるタイプのものを用いてもよい。このタイプのHMD200では、スマートフォンの表示部がユーザの目に対向するように、HMD200のゴーグル部の中にスマートフォンを収納する。ゴーグル部(VRゴーグル)の内側には、左眼用接眼レンズ、右眼用接眼レンズが内蔵されている。ユーザは、スマートフォンの表示部に表示された左眼用画像、右眼用画像を、各々、左眼用接眼レンズ、右眼用接眼レンズを介して見ることで、VRの立体視画像を鑑賞することができる。そしてユーザの視点位置、視線方向を特定するトラッキング処理は、スマートフォンに内蔵されるモーションセンサ(加速度センサ、ジャイロセンサ)などに基づいて実現できる。
3.本実施形態の手法
次に本実施形態の手法について詳細に説明する。なお、以下では、ユーザに対応するユーザ移動体を、ユーザキャラクタと記載して説明を行う。また本実施形態の手法は、種々のゲーム(仮想体験ゲーム、対戦ゲーム、RPG、アクションゲーム、競争ゲーム、スポーツゲーム、ホラー体験ゲーム、電車や飛行機等の乗り物のシミュレーションゲーム、パズルゲーム、コミュニケーションゲーム、或いは音楽ゲーム等)に適用でき、ゲーム以外にも適用可能である。
3.1 ゲームの説明
まず本実施形態により実現されるVR(バーチャルリアリティ)のゲームについて説明する。このゲームは、仮想空間(仮想世界)を移動可能な仮想現実の体験ゲームである。図4は本実施形態のシミュレーションシステムで用いられる部屋のプレイフィールドFLの説明図である。
部屋を模したプレイフィールドFL(プレイエリア、プレイ空間)には、ドアDR、机DK、本棚BSなどが配置され、壁には窓WD1、WD2が設けられている。なお本棚BS、窓WD1、WD2等は例えば壁に本棚や窓の画像を印刷することで表現してもよい。ユーザは、この部屋を模したプレイフィールドFLに入室して、VRのゲームを楽しむ。図4では、複数のユーザUS1、US2が入室しており、これらの2人のユーザUS1、US2によりVRのゲームを楽しめるようになっている。
各ユーザUS1、US2は、例えば処理装置(バックパックPC)を背中に装着しており、この処理装置により生成された画像がHMD1、HMD2(頭部装着型表示装置)に表示される。具体的にはユーザUS1、US2はジャケットを装着しており、このジャケットに処理装置(バックパックPC)が取り付けられている。またプレイフィールドFLには、不図示の管理用の処理装置が配置されており、この管理用の処理装置により、ユーザUS1、US2が装着する処理装置間のデータの同期処理(通信処理)などが行われる。例えばユーザUS1のHMD1にユーザUS2に対応するユーザキャラクタ(広義にはユーザ移動体)を表示し、ユーザUS2のHMD2にユーザUS1に対応するユーザキャラクタを表示するための同期処理などが行われる。また部屋にはオペレータが待機しており、管理用の処理装置の操作や、ユーザUS1、US2のHMD1、HMD2やジャケットの装着の手伝いや、ゲーム進行のためのオペレーション作業や誘導作業などを行う。
またプレイフィールドFLの部屋には、図2(B)で説明したベースステーション280、284が設置されており、これらのベースステーション280、284を用いて、ユーザUS1、US2の位置情報(視点位置情報)や方向情報(視線方向情報)の取得が可能になっている。
また図3のドアDRは別世界に通じるドアとなっている。例えばドアDRを開いたときに、そのドアDRの向こう側に別世界(部屋の風景とは異なる世界)が広がる。そしてドアDRをくぐって当該別世界に行くことができる仮想現実を、ユーザは体験できる。
例えば図4においてユーザUS1、US2のHMD1、HMD2には、部屋に対応する仮想空間の画像が表示されている。具体的には、部屋に対応する仮想空間に、部屋に配置・設置される物体に対応するオブジェクトを配置する。例えばドアDR、机DK、本棚BS、窓WD1、WD2に対応するオブジェクトを配置する。そして、この部屋の仮想空間において、ユーザUS1、US2の視点(第1、第2の視点)に対応する仮想カメラ(第1、第2の仮想カメラ)から見える画像を生成して、HMD1、HMD2(第1、第2の表示部)に表示する。このようにすれば、HMD1、HMD2を装着して移動するユーザUS1、US2は、あたかも本物の部屋を歩き回っているような仮想現実を体験できる。
そして、1回目にユーザ(US1、US2)がドアDRを開いた場合には、ドアDRの向こう側は部屋のままであり、ドアDRの領域(特異点に対応する領域)には、部屋の画像が表示される。そしてユーザがドアDRを閉めた後、再度、ドアDRを開くと、ドアDRの向こう側は氷の国に変化する。即ち図5に示すように、ドアDRの領域(ドアの開口領域)には、氷の国の仮想空間(VS2)の画像が表示される。このとき、図5に示すように、ドアDRの回りには、本棚BS、窓WD1、WD2などの部屋の仮想空間(VS1)の画像が表示される。
そして例えばユーザがドアDRを通過して(特異点に対応する場所を通過して)、ドアDRの向こう側に移動すると、ユーザに対応するユーザキャラクタ(ユーザ移動体)は、部屋の仮想空間から、氷の国の仮想空間へと移動することになる。ここで、ユーザキャラクタは、実空間でのユーザの移動に伴って仮想空間で移動するキャラクタ(表示物)であり、アバターとも呼ばれる。
本実施形態では、HMDを装着するユーザの視界の全周囲に亘って、広大なVR空間が広がるようになるため、ユーザの仮想現実感を格段に向上できる。即ち、ユーザは、あたかも現実世界の部屋や氷の国にいるような仮想現実を感じることができる。そしてユーザに対応するユーザキャラクタは、仮想空間である部屋や氷の国を自由に歩き回ることができる。
なお、本実施形態では、ユーザの実空間での位置情報を取得し、取得された位置情報に基づいてユーザキャラクタを仮想空間で移動させる場合について主に説明するが、本実施形態はこれに限定されない。例えば図1の操作部160(ゲームコントローラ等)からの操作情報等に基づいて、ユーザキャラクタを仮想空間で移動させてもよい。また、ユーザの手や指の動きは、例えばリープモーションの処理により検出される。そして、この検出結果に基づいて、ユーザに対応するユーザキャラクタの手や指の部位(パーツオブジェクト)を動かすモーション処理が行われる。これにより、ユーザは、例えばドアDRを開けるときに、自身の手や指の動きを、ユーザキャラクタの手や指の部位の動きを見ることで視覚的に認識できるようになる。
そして本実施形態では、一方のユーザが他方のユーザに対してゲームコントローラ290を向けて所定の操作を行うことで、他方のユーザに対応する仮想空間のユーザキャラクタを小さなサイズにして、こびとのようにすることが可能になっている。例えば図6ではユーザUS2がゲームコントローラ290の先端をユーザUS1の方に向けて、ゲームコントローラ290の操作ボタン(不図示)を押している。これによりユーザUS1に対応する仮想空間のユーザキャラクタUC1(図12〜図15)のサイズが縮小する。
図9はユーザキャラクタUC1のサイズが小さくなる前において、ユーザUS1のHMD1に表示される画像の例である。ユーザUS1のHMD1には、ユーザUS2に対応するユーザキャラクタUC2やその背後のドアDRが表示されている。なお説明の簡略化のために実空間のドアと仮想空間のドアを同じ符号によりドアDRと表記する。ユーザキャラクタUC2は、ゲームコントローラ290に対応したライトLTを手に持っており、ライトLTから光RYが照射されている。この光RYを浴びるとサイズが小さくなるというゲーム設定になっている。
図10はユーザキャラクタUC1のサイズが小さくなった後に、ユーザUS1のHMD1に表示される画像の例である。図10ではユーザキャラクタUC2やドアDRが図9に比べて大きく表示される。例えばユーザキャラクタUC2を、小さくなったユーザキャラクタUC1の視点から見た場合の画像が、ユーザUS1のHMD1に表示される。これにより、あたかも巨人のように見えるユーザキャラクタUC2が迫ってくるような画像を、ユーザUS1のHMD1に表示できるようになる。そして、ユーザUS1は、自身が小さくなるという不思議感と、大きさの違う相手とのやり取りを楽しめるようになる。
例えば図7は、ユーザキャラクタUC1のサイズが小さくなった後におけるユーザUS1の挙動を示す図である。ユーザUS1は、自身の視点の上側方向から迫ってくる巨大なユーザキャラクタUC2を見上げるような視線になっており、それを避けるかのように手を上方に上げている。このように本実施形態によれば迫力のある仮想現実をユーザは体験できるようになる。
図8、図11では、ユーザUS2に対応するユーザキャラクタUC2が、仮想空間のハンバーガーPAを手に持って、ユーザキャラクタUC1の方に突き出している。図11の画像に示すように、巨人のようなユーザキャラクタUC2が、大きなハンバーガーPAをユーザUS1の方に突き出して来る様子が、ユーザUS1のHMD1に表示されるようになる。例えばライトLTの光RYを照射することで、このハンバーガーPAも小さくすることができる。このように本実施形態のシミュレーションシステムによれば、ユーザUS1、US2は、一方のユーザが小さくなって、他方のユーザがそれに対して色々なイタズラをするというような、これまでにない遊びを楽しむことが可能になる。
3.2 座標のスケールの切り替え処理
本実施形態では、HMDを装着したユーザが、実空間(現実世界)のフィールドを移動して行なうゲームにおいて、実空間のフィールドに対応した仮想空間を設定する。そして仮想空間内のユーザキャラクタ(アバター)の状態(環境状態)が、所与の状態(小さくなる、大きくなる)へと変化するイベント(トリガー)が発動した際に、仮想空間の座標のスケール(座標尺度、座標目盛)を切り替えるシステムを実現する。これによりライト等のアイテムを用いて物が小さくなったり大きくなったりする世界観を、分かりやすく且つ破綻なく体験できるシステムの提供が可能になる。
具体的には本実施形態では、図5、図9〜図11のような仮想空間を設定し、図4、図6〜図8の実空間のユーザ(US1、US2)に対応する仮想空間のユーザキャラクタ(UC1、UC2)を仮想空間において移動させる。また、この仮想空間において仮想カメラ(左眼用、右眼用の仮想カメラ)から見える画像として、ユーザが視界を覆うように装着するHMDの表示画像を生成する。そしてユーザキャラクタ(ユーザ移動体)の状態が所与の状態へと変化するイベントが発生したか否かを判断する。そしてイベント(所与の状態へと変化させるトリガー)が発生すると判断された場合に、実空間での座標のスケールと仮想空間での座標のスケールとの対応関係を切り替える処理を行う。例えば実空間の1mの座標のスケールを、仮想空間では、1mよりも小さい座標のスケールに切り替えたり、1mよりも大きい座標のスケールに切り替える。
このようにすれば、イベントの発生によるユーザキャラクタの視点状態等の状態の変化(視点位置の変化等)を、座標のスケールの対応関係を切り替えるという簡素な処理で実現できる。そして図10、図11に示すように、ユーザキャラクタのサイズ等の状態が変化したことが反映された表示画像を、HMDに表示できるようになる。従って、イベントの発生によるユーザキャラクタの状態の変化を仮想空間の画像に反映させることができるシミュレーションシステムの提供が可能になる。
座標のスケールの対応関係の切り替え処理としては種々の処理が考えられる。例えば図12〜図14では、ユーザキャラクタの状態が変化するイベントが発生すると判断された場合は、ユーザキャラクタのローカル座標系から仮想空間のワールド座標系への座標変換の際に縮小又は拡大のスケール変換を行っている。例えば、実空間のユーザの視点の位置座標のスケールと、仮想カメラの位置座標のスケールとの対応関係を切り替えている。
図12では実空間のユーザUS1はHMD1を装着しており、その左眼の視点をVPLとし、右眼の視点をVPRとする。また仮想空間のユーザキャラクタUC1の左眼の視点に対応する左眼用の仮想カメラをVCLとし、右眼の視点に対応する右眼用の仮想カメラをVCRとする。オブジェクトHMDVは、実空間のHMD1に対応する仮想空間のHMDオブジェクト(HMDコンポーネントオブジェクト)である。オブジェクトHMDVは、左眼用の仮想カメラVCLと右眼用の仮想カメラVCRにより構成されるオブジェクトであり、ユーザキャラクタUC1に対応するオブジェクトである。本実施形態では、実空間のHMD1に対応するオブジェクトHMDVを仮想空間に配置することで、仮想カメラVCL、VCRから見える仮想空間の画像を生成している。
図12では、仮想空間の仮想カメラVCL、VCRの位置座標は、実空間の視点VPL、VPRの位置座標に対応しており、両者は例えば同じ座標になっている。また実空間のユーザUS1が距離LDだけ移動すると、仮想空間のユーザキャラクタUC1も対応する距離LDVだけ移動し、例えばLDV=LDになっている。なお、視点VPL、VPRの位置座標と仮想カメラVCL、VCRの位置座標は完全に一致している必要は必ずしもなく、ゲーム設定の調整の範囲で両者の位置座標に多少の差異(例えば10%程度の差異)があってもよい。即ち、両者の位置座標は実質的に同じであればよい。
一方、図13ではユーザキャラクタUC1のサイズが小さくなるイベントが発生している。このようなイベントの発生時に、本実施形態では、ユーザキャラクタUC1のローカル座標系(XL、YL、ZL)から仮想空間のワールド座標系(XW、YW、ZW)への座標変換の際に縮小のスケール変換を行う。これにより、ユーザキャラクタUC1に対応するオブジェクトであるオブジェクトHMDVに対して、縮小のスケール変換が行われるようになる。即ち、図13では、図12に比べて、オブジェクトHMDVの位置が低くなり(Y座標が小さくなり)、オブジェクトHMDVを構成する仮想カメラVCL、VCR間の距離(カメラ間距離)も短くなる。オブジェクトHMDV(VCR、VCL)の位置が低くなることで、図10に示すように、下方の視点からユーザキャラクタUC2を見ているような画像が、ユーザUS1のHMD1に表示されるようになる。また仮想カメラVCL、VCR間の距離が短くなることで、実空間とは異なった奥行き感になり、小さなサイズのユーザキャラクタUC1から見える奥行き感になる。また、このようなスケール変換が行われることで、実空間のユーザUS1が距離LDだけ移動した場合に、仮想空間のユーザキャラクタUC1は、距離LDよりも短い距離LDVだけ移動し、LDV<LDになる。即ち、縮小のスケール変換が行われることで、ユーザキャラクタUC1(オブジェクトHMDV)の移動の距離LDVについても縮小されて短くなる。
図14ではユーザキャラクタUC1のサイズが大きくなるイベントが発生している。このようなイベントの発生時に、本実施形態では、ユーザキャラクタUC1のローカル座標系(XL、YL、ZL)から仮想空間のワールド座標系(XW、YW、ZW)への座標変換の際に拡大のスケール変換を行う。これにより、オブジェクトHMDVに対して、拡大のスケール変換が行われるようになる。即ち、図14では、図12に比べて、オブジェクトHMDVの位置が高くなり(Y座標が大きくなり)、オブジェクトHMDVを構成する仮想カメラVCL、VCR間の距離も長くなる。オブジェクトHMDV(VCR、VCL)の位置が高くなることで、上方の視点からユーザキャラクタUC2を見ているような画像が、ユーザUS1のHMD1に表示されるようになる。また仮想カメラVCL、VCR間の距離が長くなることで、実空間とは異なった奥行き感になり、大きなサイズのユーザキャラクタUC1から見える奥行き感になる。また、このようなスケール変換が行われることで、実空間のユーザUS1が距離LDだけ移動した場合に、仮想空間のユーザキャラクタUC1は、距離LDよりも長い距離LDVだけ移動し、LDV>LDになる。即ち、拡大のスケール変換が行われることで、ユーザキャラクタUC1(オブジェクトHMDV)の移動の距離LDVについても拡大されて長くなる。
このように本実施形態では、ユーザキャラクタUC1のサイズが小さくなるイベントの発生時には、ワールド座標系への座標変換の際に縮小のスケール変換を行う。例えば視点VPL、VPRの位置座標のスケールと仮想カメラVCL、VCRの位置座標のスケールの対応関係を、図12の対応関係から図13の対応関係に切り替える。一方、ユーザキャラクタUC1のサイズが大きくなるイベントの発生時には、ワールド座標系への座標変換の際に拡大のスケール変換を行う。例えば視点VPL、VPRの位置座標のスケールと仮想カメラVCL、VCRの位置座標のスケールの対応関係を、図12の対応関係から図14の対応関係に切り替える。このようにすることで、座標のスケールの対応関係の切り替え処理を、縮小又は拡大のスケール変換を行うという簡素な処理で実現して、イベントの発生によるユーザキャラクタの状態の変化をユーザに仮想体験させることが可能になる。
図15は、座標のスケールの切り替え処理の他の例の説明図である。図15では、ユーザキャラクタの状態が変化するイベントが発生すると判断された場合に、ユーザキャラクタが移動する仮想空間を、第1の仮想空間から、第1の仮想空間とは座標軸のスケールが異なる第2の仮想空間に切り替えている。
具体的には図15では、イベント発生時に、第1の仮想空間VSP1から、第1の仮想空間VSP1とは座標軸のスケールが異なる第2の仮想空間VSP2に切り替えている。第1の仮想空間VSP1は、実空間RSPに対応する仮想空間であり、第1の仮想空間VSP1の座標軸のスケールは、実空間RSPの座標軸のスケールに対応しており、両者の座標軸のスケールは例えば同じになっている。これに対して第2の仮想空間VSP2の座標軸のスケールは、実空間RSPや第1の仮想空間VSP1の座標軸のスケールとは異なっており、第2の仮想空間VSP2は第1の仮想空間VSP1よりも広い仮想空間となっている。例えば第1の仮想空間VSP1のXV1軸、YV1軸、ZV1軸のスケールは、実空間RSPのX軸、Y軸、Z軸のスケールと同じになっている。これに対して、第2の仮想空間VSP2のXV2軸、YV2軸、ZV2軸のスケールは、実空間RSPのX軸、Y軸、Z軸のスケールとは異なっており、より広い座標空間を規定する座標のスケールになっている。例えば第2の仮想空間VSP2の各座標軸での1mのスケールは、第1の仮想空間VSP1の各座標軸での1mのスケールよりも長くなっている。そして第2の仮想空間VSP2に配置されるユーザキャラクタUC1以外のオブジェクトのサイズは、例えば第1の仮想空間VSP1に配置されるユーザキャラクタUC1以外のオブジェクトのサイズよりも大きくなっている。一方、ユーザキャラクタUC1のサイズは第1の仮想空間VSP1と第2の仮想空間VSP2とで同じになっている。このように第2の仮想空間VSP2を広い仮想空間にすることで、仮想空間に対するユーザキャラクタUC2のサイズが相対的に小さくなり、ユーザキャラクタUC2のサイズを小さくするイベントの実現が可能になる。
なお、ユーザキャラクタUC2のサイズを大きくするイベントの発生時には、第1の仮想空間VSP1から、第1の仮想空間VSP1よりも狭い第2の仮想空間VSP2に切り替えればよい。例えば第2の仮想空間VSP2の各座標軸での1mのスケールを、第1の仮想空間VSP1の各座標軸での1mのスケールよりも短くする。また第2の仮想空間VSP2では、第1の仮想空間VSP1に比べて、ユーザキャラクタUC2のサイズについては同じにしながら、他のオブジェクトのサイズを小さくする。
このようにすれば、座標のスケールの対応関係の切り替え処理を、仮想空間の広狭を切り替えることで実現して、イベントの発生によるユーザキャラクタの状態の変化をユーザに仮想体験させることが可能になる。
また本実施形態では、ユーザキャラクタのサイズを変化させるイベントが発生した場合に、図12〜図15に示すような座標のスケールの対応関係の切り替え処理を行っている。これにより、ユーザキャラクタのサイズが小さくなったり大きくなったりする仮想現実を、ユーザに体感させることが可能になる。但し、座標のスケールの対応関係の切り替え処理を行うイベントとしては種々のイベントを考えることができる。例えば人間のユーザキャラクタが、変身の動作を行うことで、違う外観の超人などのキャラクタに変身するようなイベントであってもよい。或いはユーザ移動体であるロボットのキャラクタが、違う形状のロボットのキャラクタに変形するようなイベントであってもよい。或いはロボットなどの搭乗移動体に対して、仮想ユーザが搭乗することで、ユーザの目線がロボットの目線になるようなイベントであってもよい。このようにユーザ移動体の状態が所与の状態へと変化するイベントとしては種々のイベントを想定できる。
また本実施形態では、ユーザの行動情報、他のユーザの行動情報、或いはゲーム状況などに基づいて、イベントが発生したか否かを判断する。
例えば図16(A)では、ユーザUS1がゲームコントローラ290を自身の方に向けて、サイズ縮小のための操作ボタンを押している。ユーザUS1がこのような操作の行動を行うことで、ユーザUS1に対応するユーザキャラクタUC1のサイズが変化するイベントが発生する。つまり図16(A)では、ユーザUS1の行動情報に基づいて、イベントが発生したか否かを判断している。また図16(B)では、他のユーザUS2がユーザUS1に対してゲームコントローラ290を向けて、サイズ縮小のための操作ボタンを押している。他のユーザUS2がこのような操作の行動を行うことで、ユーザUS1に対応するユーザキャラクタUC1のサイズが変化するイベントが発生する。つまり図16(B)では、他のユーザUS2の行動情報に基づいて、イベントが発生したか否かを判断している。
なお、イベントを発生させるユーザや他のユーザの行動は、図16(A)、図16(B)に示すようなゲームコントローラ290を用いた操作には限定されない。例えばユーザ又は他のユーザが手や顔や足などの部位を動かす行動を行ったことを、部位検出センサにより検出して、イベントを発生させる。或いは、ユーザ又は他のユーザが姿勢を変化させる行動を行ったことを、姿勢検出センサにより検出して、イベントを発生させる。或いは、ユーザや他のユーザが発話の行動を行ったことを、マイクにより検出することにより、イベントを発生させる。
また本実施形態では、ユーザキャラクタの行動状況、ユーザキャラクタの環境状況、或いはゲームの進行状況などのゲーム状況に基づいて、イベントが発生したか否かを判断してもよい。例えばユーザキャラクタが変身などの所定の行動を行った場合や、ユーザキャラクタがゲームのマップの所定の場所に来た場合に、イベントを発生させる。或いは、ユーザキャラクタの周囲が所定の状況になった場合や、ゲームの進行状況が所定の状況になった場合(例えばボス戦になった場合)に、イベントを発生させる。このように、ユーザキャラクタを所与の状態に変化させるイベントのトリガーは、ユーザ自身によるものであってもよいし、他のユーザの行動やゲーム状況(ゲーム進行上の演出)に基づく自動的なものであってもよい。
このようにすれば、ユーザや他のユーザの行動やゲーム状況に応じて、ユーザキャラクタを所与の状態に変化させるイベントを発生し、そのイベントの発生によるユーザキャラクタの状態の変化を、ユーザに仮想体験させることが可能になる。
3.3 報知処理
以上のように本実施形態では、ユーザキャラクタの状態が変化するイベントが発生すると判断された場合に、実空間での座標のスケールと仮想空間での座標のスケールとの対応関係を切り替える処理を行っている。そして本実施形態では、このような切り替え処理が行われたことを条件に(ユーザキャラクタの状態が変化するイベントが発生したことを条件に)、ユーザの周囲に報知範囲を設定して、報知範囲をユーザに知らせるため報知処理を行う。例えば切り替え処理用(イベント発生用)に用意された報知範囲を設定して、報知処理を行う。例えば切り替え処理が行われていない場合には、報知範囲を設定しないが、切り替え処理が行われた時に初めて、ユーザの周囲に報知範囲を設定して、当該報知範囲を用いた報知処理を行う。
例えば図17(A)では、実空間のユーザUS1がドアDRの方へと移動している。即ちユーザUS1が、位置P1から位置P2へと距離LDだけ移動している。この場合に、ユーザUS1に対応する仮想空間のユーザキャラクタUC1のサイズが変化するイベントが発生しており、ユーザキャラクタUC1は小さなサイズに変化している。そして図17(B)に示すように、実空間のユーザUS1の移動に伴って、仮想空間のユーザキャラクタUC1も位置PV1から位置PV2Eへと距離LDVだけ移動している。ところが、ユーザキャラクタUC1のサイズが小さくなるイベントが発生していると、図13で説明したように、実空間でのユーザUS1の移動の距離LDに比べて、仮想空間でのユーザキャラクタUC1の移動の距離LDVは短くなる。
そして、ユーザキャラクタUC1が、短い距離LDVだけ移動して、位置PV2Eに位置している状態において、ユーザキャラクタUC1が元のサイズに戻るイベントが発生したとする。すると、図17(B)の仮想空間でのユーザキャラクタUC1の位置PV2Eは、図17(A)の実空間でのユーザUS1の位置P2に対応しなくなってしまい、両者の位置にズレが生じてしまう。つまり、実空間のユーザUS1は距離LDだけ移動するのに、サイズが小さくなった仮想空間のユーザキャラクタUC1は、距離LDよりも短い距離LDVしか移動しないため、このような位置のズレが生じてしまう。
このような位置のズレが生じないようにするためには、図17(C)に示すように、仮想空間でのユーザキャラクタUC1の位置を、PV2EからPV2に修正する必要がある。具体的には、位置PV2Eから、実空間の位置P2に対応する位置PV2へと、ユーザキャラクタUC1を移動させることで、ユーザキャラクタUC1が居る位置を修正する。
しかながら、このような位置の修正を行うと、ユーザキャラクタUC1が元のサイズに戻るイベントの発生時に、位置PV2Eから位置PV2に瞬間的に移動したような画像が、ユーザUS1のHMD1に表示されてしまう。このため、ユーザUS1が、このような瞬間的な移動に不自然さを感じてしまったり、場合によっては、ユーザUS1の3D酔いを引き起こしてしまうおそれがある。例えば実空間と仮想空間の間の立体感や見え方の違いで、乗り物酔いのようなものを感じてしまう。
また図17(A)に示すように実空間のユーザUS1がドアDRなどの物体に近づいている場合には、次のような問題も生じる。即ち、図17(A)のように実空間でユーザUS1が長い距離LDを移動してドアDRに近づいていても、図17(B)に示すように仮想空間ではユーザキャラクタUC1は短い距離LDVしか移動していない。このためHMD1の表示画像を見ているユーザUS1は、ドアDRが直ぐ手前にあることに気づかず、ドアDRにぶつかりそうになってしまうという問題が生じる。
そこで本実施形態では、ユーザキャラクタの状態が変化するイベントが発生し、座標のスケールの切り替え処理が行われた場合に、ユーザの周囲に報知範囲を設定して、ユーザに対して報知処理を行う。例えば図18では、ユーザUS2がゲームコントローラ290の先端をユーザUS1の方に向けて操作ボタンを押すことで、A1に示すように、ユーザキャラクタUC1のサイズが小さくなるイベントが発生している。このようなイベントが発生した場合に本実施形態では、報知範囲ARIを設定する。そして報知範囲ARIをユーザUS1に知らせるための報知処理を行う。例えば本実施形態では、このようなイベントが発生していない場合には、報知範囲ARIの設定や報知処理は行われないが、このようなイベントが発生したことを条件に、報知範囲ARIの設定や報知処理を行う。報知範囲ARIは、例えばユーザUS1の位置(足元の位置)を内包するような範囲である。具体的には報知範囲ARIは、例えばユーザUS1の位置が中央となるような範囲である。また報知範囲ARIの形状は任意であり、種々の形状を採用できる。
このような報知範囲ARIを設定すれば、ユーザUS1の移動範囲が、この報知範囲ARI内に留まるように、ユーザUS1の行動を抑制できるようになる。従って、ユーザキャラクタUC1のサイズが小さくなるなどのイベントの発生後、図17(A)に示すようにユーザUS1が、位置P1から遠く離れた位置P2まで長い距離LDを移動してしまうのを抑制できる。これにより、図17(C)に示すように、小さなサイズから元のサイズに戻るようなイベントが発生したときに、位置PV2Eから位置PV2にユーザキャラクタUC1が瞬間的に移動してしまうような事態の発生を防止できる。従って、ユーザUS1が瞬間的な移動に対して不自然さを感じたり、3D酔いを引き起こしてしまうような事態の発生を防止できる。また目の前に突然に現れたドアDR等にユーザUS1がぶつかってしまうような事態の発生も防止できる。なおユーザキャラクタUC1の周囲に報知範囲を設定してもよい。例えばユーザUS1が報知範囲ARIを視覚的に認識できるように、報知範囲のオブジェクト(例えば円形のオブジェクト)を、ユーザキャラクタUC1の周囲に表示してもよい。この場合に、ユーザキャラクタUC1のサイズに対する報知範囲オブジェクトのサイズの大きさ関係が、ユーザUS1のサイズに対する報知範囲ARIのサイズの大きさ関係と同等になるようにしてもよい。
また本実施形態では、実空間でのユーザの位置情報に基づいて報知範囲を設定し、ユーザが報知範囲を超えたと判定された場合に、報知処理を行う。
例えば図19(A)では、ユーザUS1が報知範囲ARIを越えたと判定されている。例えばユーザUS1の足等の部位の位置が報知範囲ARIの外に出た場合に、ユーザUS1が報知範囲ARIを越えたと判定してもよい。或いは、ユーザUS1の代表位置である足元位置が報知範囲ARIの外に出た場合に、ユーザUS1が報知範囲ARIを越えたと判定してもよい。そして、ユーザUS1が報知範囲ARIを越えたと判定された場合に、報知処理を行う。例えば図19(A)に示すように、音、振動又は画像等を用いて報知処理を行う。例えばユーザUS1が装着するヘッドホンやプレイフィールドに設けられたスピーカーから、ユーザUS1への報知のための警告音や音声を出力する。或いは、ユーザUS1が所持するゲームコントローラ等に設けられた振動デバイスや、ゲームフィールドに設けられた振動デバイスを振動させることで、振動による警告を行う。或いは、ユーザUS1が装着するHMD1に、警告用の報知画像を表示する。例えば警告を知らせる文字やアイコンなどの報知画像をHMD1に表示する。例えば後述の図23に示すような報知画像を表示してもよい。例えば仮想的な壁画像のようなものを報知画像として表示する。
このようにすれば、報知範囲ARIを越えようとしていたユーザUS1は、音、振動又は画像等による報知処理が行われることで、報知範囲ARIを越えて移動するのを躊躇するようになる。従って、報知範囲ARI内に留まるようにユーザUS1を促すことが可能になり、図17(C)で説明したような、ユーザUS1が瞬間的な移動に対して不自然さを感じたり、3D酔いを引き起こしてしまうなどの事態の発生を防止できる。
また本実施形態では、イベントとして、ユーザキャラクタのサイズを第1のサイズから第2のサイズに変化させるイベントが発生した場合に、上述したような座標のスケールの切り替え処理を行う。そして報知処理として、ユーザ移動体のサイズを第2のサイズから第1のサイズに戻す処理を行う。
例えば図18では、A1に示すようにユーザキャラクタUC1のサイズが、通常のサイズ(広義には第1のサイズ)から小さいサイズ(広義には第2のサイズ)に変化するイベントが発生しており、これにより報知範囲ARIが設定されている。そして図19(B)では、図19(A)の報知処理として、ユーザキャラクタUC1のサイズを、小さいサイズ(第2のサイズ)から、通常のサイズ(第1のサイズ)に戻す処理を行っている。即ち、ユーザキャラクタUC1のサイズを小さくするイベントを、図19(B)では強制終了している。
このようにすれば、図18に示すようにユーザキャラクタUC1のサイズが小さくなった後に、図19(A)に示すようにユーザUS1が報知範囲ARIを越えたと判断されると、図19(B)に示すように小さくなったユーザキャラクタUC1が元のサイズに戻るようになる。従って、ユーザUS1は、ユーザキャラクタUC1が元のサイズに戻ったことで、報知範囲ARIを越えてしまったことを認識できるようになる。また、このようにユーザキャラクタUC1を元のサイズに強制的に戻してしまうことで、図17(A)〜図17(C)で説明した、ユーザキャラクタUC1が瞬間的に長い距離を移動するなどの問題が発生するのを、より確実に防止することが可能になる。
なお本実施形態では、仮想空間でのユーザキャラクタの位置情報に基づいて、報知範囲を設定してもよい。例えば図20では、仮想空間のユーザキャラクタUC1に対して報知範囲ARIが設定されている。例えばユーザキャラクタUC1の位置(代表位置)を内包するような報知範囲ARIが設定されている。即ち図18では実空間のユーザUS1の位置に対して報知範囲ARIが設定されているが、図20では仮想空間のユーザキャラクタUC1の位置に対して報知範囲ARIが設定されている。このようにすれば、仮想空間のユーザキャラクタUC1の周囲に報知範囲を設定できるようになる。そして仮想空間での報知範囲ARIの境界を知らせるような報知範囲画像を表示することも可能になる。従って、ユーザUS1のHMD1にこの報知範囲画像を表示できるようになり、報知範囲ARIの存在や形状等を、ユーザUS1に対して視覚的に認識させることが可能になる。これによりユーザUS1の利便性の向上を図れる。
また本実施形態では、報知範囲をリアルタイムに変化させてもよい。例えば図21(A)では、ユーザUS1の位置に対して報知範囲ARIが設定されており、図21(B)では、このユーザUS1に対して他のユーザUS2が接近している。この場合には図21(B)に示すように、ユーザUS2側の方向では、ユーザUS1の位置から報知範囲ARIの境界までの距離を短くする。即ちユーザUS1側に報知範囲ARIを狭くする。このようにすれば、報知範囲ARIの境界が手前側に来ることで、ユーザUS2側へのユーザUS1の移動が抑制されるようになる。従って、ユーザUS1がユーザUS2側に大きく移動してしまい、両者がぶつかってしまうような事態の発生を防止できる。同様に、例えば図17(A)においてユーザUS1がドアDRに接近した場合に、ドアDR側の方向では、ユーザUS1の位置から報知範囲ARIの境界までの距離を短くする。このようにすることで、ユーザUS1がドアDR側に大きく移動してしまい、ドアDRとぶつかってしまうような事態の発生を防止できる。
なお、他のユーザUS2やドアDR等の物体が接近して来た場合に、図21(B)のようにユーザUS2側やドアDR側において報知範囲ARIを変形するのではなく、報知範囲ARIを全体として小さくなるように変化させてもよい。また例えばユーザUS1の状態に応じて報知範囲ARIを変化させてもよい。例えばユーザUS1が速い速度で移動している場合には、報知範囲ARIを狭くして、ユーザUS1が他のユーザや物体などにぶつかってしまうのを抑制してもよい。
また本実施形態では、座標のスケールの切り替え処理が行われていない場合には、実空間でのユーザの位置が報知境界に接近したときに、仮想空間において報知境界の対応位置に、報知オブジェクトを配置する報知処理を行う。一方、当該切り替え処理が行われた場合には、実空間でのユーザの位置が報知境界に接近したときに、仮想空間において報知境界の対応位置とは異なる位置に、報知オブジェクトを配置する報知処理を行う。具体的には報知境界の対応位置よりも手前側の位置に報知オブジェクトを配置して表示する。
例えば図22では、プレイフィールドFLに対して、仕切り部材となる壁WL1、WL2、WL3、WL4が設置されている。この場合に、この壁WL1〜WL4の内側に報知境界BDを設定する。そして図22に示すように、ユーザUS1が報知境界BD(壁WL1)に接近した場合に、例えば図23に示すような警告用の報知画像を、ユーザUS1のHMD1に表示する。図23では、背後の壁WL1、窓WDA、ドアDRAの画像に対して、ワイヤーフレームの網目状の報知オブジェクトOBWが重畳して表示されている。例えば実空間の壁WL1〜WL4の位置に対応する仮想空間の位置に、報知オブジェクトOBWを配置して、報知オブジェクトOBWによる報知画像を表示する。このような報知オブジェクトOBWによる報知画像を表示することで、ユーザUS1が壁WL1の方向に移動することを諦めて、壁WL1の方向とは異なる方向(例えば反対方向)に移動することを期待できる。また報知オブジェクトOBWは網目状になっているため、ユーザUS1は背後の壁WL1等の画像を見ることができ、報知オブジェクトOBWが原因でVRの没入感が阻害されてしまうのを抑制できる。
ここで、図24(A)では、ユーザUS1が距離LDだけ移動して、壁WL1に接近している。このとき、図24(B)に示すようにユーザキャラクタUC1のサイズが小さくなるイベントが発生している。このため、図24(A)に示すように実空間でのユーザUS1の移動の距離LDは長いが、図24(B)に示すように仮想空間でのユーザキャラクタUC1の移動の距離LDVは短いため、ユーザキャラクタUC1から見ると、壁WL1は遠い距離に位置することになる。そしてユーザUS1のHMD1には、図24(B)に示すように、壁WL1から離れた位置に居るユーザキャラクタUC1の視点(仮想カメラ)での画像が表示される。従って、実空間でのユーザUS1は壁WL1に接近しているのに、仮想空間でのユーザキャラクタUC1は壁WL1に接近していないように見えるため、ユーザUS1が、実空間の壁WL1に未だ接近していないと錯覚するおそれがある。この結果、ユーザUS1が壁WL1にぶつかってしまうなどの問題が生じてしまう。
そこで本実施形態では、ユーザキャラクタUC1のサイズが小さくなるなどのイベントが発生していない場合には、図22、図24(A)のようにユーザUS1が報知境界BDに接近したときに、図25(A)に示すように、仮想空間における報知境界BDの対応位置PW1に、報知オブジェクトOBWを配置して、図23に示すような報知画像を表示する。一方、ユーザキャラクタUC1のサイズが小さくなるなどのイベントが発生した場合には、図22、図24(A)のようにユーザUS1が報知境界BDに接近したときに、図25(B)に示すように、仮想空間における報知境界BDの対応位置PW1とは異なる位置PW2に、報知オブジェクトOBWを配置して、図23に示すような報知画像を表示する。即ち、図25(A)の対応位置PW1よりも、ユーザキャラクタUC1から見て手前側の位置PW2に報知オブジェクトOBWを配置して報知画像を表示する。なお図23とは異なる表示態様の報知画像を表示したり、音、振動等による報知処理を行ってもよい。
このようにすれば、図24(A)、図24(B)に示すように、ユーザキャラクタUC1のサイズが小さくなるなどのイベントが発生し、実空間と仮想空間とで壁WL1との距離感が異なってしまった場合にも、ユーザUS1が壁WL1とぶつかってしまうような事態が発生するのを効果的に防止できるようになる。
4.詳細な処理
次に本実施形態の詳細な処理例について図26のフローチャートを用いて説明する。
まず仮想空間の設定処理を行う(ステップS11)。そして設定された仮想空間において、ユーザキャラクタを移動させる処理を行う(ステップS12)。例えば実空間でのユーザの移動に連動するように仮想空間のユーザキャラクタを移動させる。
次に、ユーザキャラクタの状態が変化するイベントが発生するか否かを判断する(ステップS13)。例えばユーザキャラクタのサイズを変化させるイベントが発生するか否かを判断する。そしてイベントが発生する場合(イベントのトリガーが発生した場合)には、座標のスケールの切り替え処理を実行する(ステップS14)。例えば図12〜図15で説明したように、ユーザキャラクタのサイズを変更するための座標のスケールの切り替え処理を実行する。
次にユーザの位置情報に基づいて、ユーザの周囲に報知範囲を設定する(ステップS15)。例えば図18に示すような報知範囲ARIを設定する。そしてユーザが報知範囲を超えた場合には、それに応じた報知処理を行う。またユーザが報知境界に接近した場合には、報知境界の対応位置よりも手前側の位置に報知オブジェクトを配置して、報知画像を表示する(ステップS16)。例えば図22、図24(A)のように壁WL1に対応する報知境界BDにユーザUS1が接近したときに、図25(B)に示すように、報知境界BDの対応位置PW1よりも手前側の位置PW2に報知オブジェクトOBWを配置して、図23に示すような報知画像を表示する。
以上のようにすることで、ユーザキャラクタが瞬間的に長い距離を移動してしまい、ユーザが不自然さを感じてしまったり、ユーザキャラクタが小さくなったことが原因でユーザが壁等にぶつかってしまうような事態を防止できるようになる。
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語(ユーザ移動体、表示画像の変化処理等)と共に記載された用語(ユーザキャラクタ、フェードアウト処理・ホワイトアウト処理等)は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また位置情報の取得処理、仮想空間の設定処理、移動体の移動処理、イベント処理、表示処理、ゲーム処理、報知処理、対応関係の切り替え処理等も、本実施形態で説明したものに限定されず、これらと均等な手法・処理・構成も本発明の範囲に含まれる。また本発明は種々のゲームに適用できる。また本発明は、業務用ゲーム装置、家庭用ゲーム装置、又は多数のユーザが参加する大型アトラクションシステム等の種々のシミュレーションシステムに適用できる。
US1、US2、US ユーザ、UC1、UC2 ユーザキャラクタ(ユーザ移動体)、
VPL、VPR 視点、VCL、VCR 仮想カメラ、
ARI 報知範囲、BD 報知境界、
WDA 窓、DRA ドア、WL1〜WL4 壁、
RSP 実空間、VSP1 第1の仮想空間、VSP2 第2の仮想空間、
FL プレイフィールド、DR ドア、DK 机、BS 本棚、WD1、WD2 窓、
LT ライト、RY 光線、LD、LDV 距離、OBS オブジェクト、
P1、P2、PV1、PV2E、PV2 位置、
100 処理部、102 入力処理部、110 演算処理部、111 情報取得部、
112 仮想空間設定部、113 移動体処理部、114 仮想カメラ制御部、
115 ゲーム処理部、116 イベント処理部、117 報知処理部、
120 表示処理部、130 音処理部、140 出力処理部、
150 撮像部、151 第1のカメラ、152 第2のカメラ、160 操作部、
170 記憶部、172 オブジェクト情報記憶部、178 描画バッファ、
180 情報記憶媒体、192 音出力部、194 I/F部、
195 携帯型情報記憶媒体、196 通信部、
200 HMD(頭部装着型表示装置)、201〜206 受光素子、210 センサ部、
220 表示部、231〜236 発光素子、240 処理部、
260 ヘッドバンド、270 ヘッドホン、280、284 ベースステーション、
281、282、285、286 発光素子、290 ゲームコントローラ

Claims (13)

  1. 仮想空間の設定処理を行う仮想空間設定部と、
    ユーザが移動可能な実空間の前記ユーザに対応する前記仮想空間のユーザ移動体を、前記仮想空間において移動させる処理を行う移動体処理部と、
    イベントの処理を行うイベント処理部と、
    前記ユーザに対する報知処理を行う報知処理部と、
    前記仮想空間において仮想カメラから見える画像として、前記ユーザが視界を覆うように装着する頭部装着型表示装置の表示画像を生成する表示処理部と、
    を含み、
    前記イベント処理部は、
    前記ユーザ移動体の状態が所与の状態へと変化するイベントが発生したか否かを判断し、
    前記仮想空間設定部は、
    前記イベントが発生すると判断された場合に、前記実空間での座標のスケールと前記仮想空間での座標のスケールとの対応関係を切り替える切り替え処理を行い、
    前記報知処理部は、
    前記切り替え処理が行われたことを条件に、前記ユーザの周囲に報知範囲を設定して、前記報知範囲を前記ユーザに知らせるため前記報知処理を行うことを特徴とするシミュレーションシステム。
  2. 請求項1において、
    前記報知処理部は、
    前記実空間での前記ユーザの位置情報に基づいて前記報知範囲を設定し、前記ユーザが前記報知範囲を超えたと判定された場合に、前記報知処理を行うことを特徴とするシミュレーションシステム。
  3. 請求項1において、
    前記報知処理部は、
    前記仮想空間での前記ユーザ移動体の位置情報に基づいて前記報知範囲を設定することを特徴とするシミュレーションシステム。
  4. 請求項1乃至3のいずれかにおいて、
    前記仮想空間設定部は、
    前記イベントとして、前記ユーザ移動体のサイズを第1のサイズから第2のサイズに変化させるイベントが発生した場合に、前記切り替え処理を行い、
    前記報知処理部は、
    前記報知処理として、前記ユーザ移動体のサイズを前記第2のサイズから前記第1のサイズに戻す処理を行うことを特徴とするシミュレーションシステム。
  5. 請求項1乃至4のいずれかにおいて、
    前記報知処理部は、
    音、振動又は画像を用いて前記報知処理を行うことを特徴とするシミュレーションシステム。
  6. 請求項1乃至5のいずれかにおいて、
    前記報知処理部は、
    前記報知範囲をリアルタイムに変化させることを特徴とするシミュレーションシステム。
  7. 請求項1乃至6のいずれかにおいて、
    前記報知処理部は、
    前記切り替え処理が行われていない場合には、前記実空間での前記ユーザの位置が報知境界に接近したときに、前記仮想空間において前記報知境界の対応位置に、報知オブジェクトを配置する前記報知処理を行い、前記切り替え処理が行われている場合には、前記実空間での前記ユーザの位置が前記報知境界に接近したときに、前記仮想空間において前記報知境界の前記対応位置とは異なる位置に、前記報知オブジェクトを配置する前記報知処理を行うことを特徴とするシミュレーションシステム。
  8. 請求項1乃至7のいずれかにおいて、
    前記仮想空間設定部は、
    前記イベントが発生すると判断された場合は、前記ユーザ移動体のローカル座標系から前記仮想空間のワールド座標系への座標変換の際に縮小又は拡大のスケール変換を行うことを特徴とするシミュレーションシステム。
  9. 請求項1乃至7のいずれかにおいて、
    前記仮想空間設定部は、
    前記イベントが発生すると判断された場合は、前記ユーザ移動体が移動する前記仮想空間を、第1の仮想空間から、前記第1の仮想空間とは座標軸のスケールが異なる第2の仮想空間に切り替えることを特徴とするシミュレーションシステム。
  10. 請求項1乃至9のいずれかにおいて、
    前記仮想空間設定部は、
    前記イベントとして、前記ユーザ移動体のサイズを変化させるイベントが発生した場合に、前記切り替え処理を行うことを特徴とするシミュレーションシステム。
  11. 請求項1乃至10のいずれかにおいて、
    前記イベント処理部は、
    前記ユーザの行動情報、他のユーザの行動情報、及びゲーム状況の少なくとも1つに基づいて、前記イベントが発生したか否かを判断することを特徴とするシミュレーションシステム。
  12. 請求項1乃至11のいずれかにおいて、
    前記実空間での前記ユーザの視点情報のトラッキング情報を取得する情報取得部を含み、
    前記表示処理部は、
    前記視点情報の前記トラッキング情報に基づき前記ユーザの視点変化に追従するように制御される前記仮想カメラから見える画像を、前記頭部装着型表示装置の表示画像として生成することを特徴とするシミュレーションシステム。
  13. 仮想空間の設定処理を行う仮想空間設定部と、
    ユーザが移動可能な実空間の前記ユーザに対応する前記仮想空間のユーザ移動体を、前記仮想空間において移動させる処理を行う移動体処理部と、
    イベントの処理を行うイベント処理部と、
    前記ユーザに対する報知処理を行う報知処理部と、
    前記仮想空間において仮想カメラから見える画像として、前記ユーザが視界を覆うように装着する頭部装着型表示装置の表示画像を生成する表示処理部として、
    コンピュータを機能させ、
    前記イベント処理部は、
    前記ユーザ移動体の状態が所与の状態へと変化するイベントが発生したか否かを判断し、
    前記仮想空間設定部は、
    前記イベントが発生すると判断された場合に、前記実空間での座標のスケールと前記仮想空間での座標のスケールとの対応関係を切り替える切り替え処理を行い、
    前記報知処理部は、
    前記切り替え処理が行われたことを条件に、前記ユーザの周囲に報知範囲を設定して、前記報知範囲を前記ユーザに知らせるため前記報知処理を行うことを特徴とするプログラム。
JP2018065396A 2018-03-29 2018-03-29 シミュレーションシステム及びプログラム Pending JP2019175323A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018065396A JP2019175323A (ja) 2018-03-29 2018-03-29 シミュレーションシステム及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018065396A JP2019175323A (ja) 2018-03-29 2018-03-29 シミュレーションシステム及びプログラム

Publications (1)

Publication Number Publication Date
JP2019175323A true JP2019175323A (ja) 2019-10-10

Family

ID=68170402

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018065396A Pending JP2019175323A (ja) 2018-03-29 2018-03-29 シミュレーションシステム及びプログラム

Country Status (1)

Country Link
JP (1) JP2019175323A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020203831A1 (ja) * 2019-03-29 2020-10-08 株式会社ソニー・インタラクティブエンタテインメント 境界設定装置、境界設定方法及びプログラム
KR102231586B1 (ko) * 2020-08-27 2021-03-24 (주)피닉스스튜디오 상황대처훈련 시뮬레이터 및 그 시뮬레이터의 구동방법, 그리고 컴퓨터 판독가능 기록매체
JP2021197695A (ja) * 2020-06-17 2021-12-27 Kddi株式会社 情報端末装置、遠隔コミュニケーション支援方法及びプログラム
JP7097125B1 (ja) 2021-12-22 2022-07-07 株式会社セルシス 映像生成方法及び画像生成プログラム
WO2022264616A1 (ja) * 2021-06-18 2022-12-22 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 情報処理方法、プログラム及び情報処理システム
WO2023189362A1 (ja) * 2022-03-30 2023-10-05 株式会社バンダイナムコエンターテインメント コンピュータシステム、仮想空間制御システムおよび仮想空間制御方法
WO2024048060A1 (ja) * 2022-08-31 2024-03-07 株式会社Jvcケンウッド 提供装置および提供方法

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020203831A1 (ja) * 2019-03-29 2020-10-08 株式会社ソニー・インタラクティブエンタテインメント 境界設定装置、境界設定方法及びプログラム
JPWO2020203831A1 (ja) * 2019-03-29 2021-11-18 株式会社ソニー・インタラクティブエンタテインメント 境界設定装置、境界設定方法及びプログラム
JP7089113B2 (ja) 2019-03-29 2022-06-21 株式会社ソニー・インタラクティブエンタテインメント 境界設定装置、境界設定方法及びプログラム
JP2021197695A (ja) * 2020-06-17 2021-12-27 Kddi株式会社 情報端末装置、遠隔コミュニケーション支援方法及びプログラム
JP7280223B2 (ja) 2020-06-17 2023-05-23 Kddi株式会社 情報端末装置、遠隔コミュニケーション支援方法及びプログラム
KR102231586B1 (ko) * 2020-08-27 2021-03-24 (주)피닉스스튜디오 상황대처훈련 시뮬레이터 및 그 시뮬레이터의 구동방법, 그리고 컴퓨터 판독가능 기록매체
WO2022264616A1 (ja) * 2021-06-18 2022-12-22 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 情報処理方法、プログラム及び情報処理システム
JP7097125B1 (ja) 2021-12-22 2022-07-07 株式会社セルシス 映像生成方法及び画像生成プログラム
WO2023119715A1 (ja) * 2021-12-22 2023-06-29 株式会社セルシス 映像生成方法及び画像生成プログラム
JP2023093276A (ja) * 2021-12-22 2023-07-04 株式会社セルシス 映像生成方法及び画像生成プログラム
WO2023189362A1 (ja) * 2022-03-30 2023-10-05 株式会社バンダイナムコエンターテインメント コンピュータシステム、仮想空間制御システムおよび仮想空間制御方法
WO2024048060A1 (ja) * 2022-08-31 2024-03-07 株式会社Jvcケンウッド 提供装置および提供方法

Similar Documents

Publication Publication Date Title
US11094106B2 (en) Simulation system, processing method, and information storage medium for changing a display object in response to a movement of a field of view
JP7366196B2 (ja) 広範囲同時遠隔ディジタル提示世界
US11014000B2 (en) Simulation system, processing method, and information storage medium
JP2019175323A (ja) シミュレーションシステム及びプログラム
JP6306442B2 (ja) プログラム及びゲームシステム
US10183220B2 (en) Image generation device and image generation method
US10744411B2 (en) Simulation system, processing method, and information storage medium
US11738270B2 (en) Simulation system, processing method, and information storage medium
WO2018124280A1 (ja) シミュレーションシステム、画像処理方法及び情報記憶媒体
JP7144796B2 (ja) シミュレーションシステム及びプログラム
JP2019152899A (ja) シミュレーションシステム及びプログラム
JP6794390B2 (ja) シミュレーションシステム及びプログラム
JP7104539B2 (ja) シミュレーションシステム及びプログラム
JP6622832B2 (ja) プログラム及びゲームシステム
JP6918189B2 (ja) シミュレーションシステム及びプログラム
JP2018171309A (ja) シミュレーションシステム及びプログラム