以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
1.シミュレーションシステム
図1、図2に本実施形態のシミュレーションシステム(シミュレータ、ゲームシステム)のシステム構成例を示す。本実施形態のシミュレーションシステムは例えばバーチャルリアリティ(VR)をシミュレートするシステムである。なお本実施形態のシミュレーションシステムは、ゲームコンテンツを提供するゲームシステム、スポーツ競技シミュレータや運転シミュレータなどのリアルタイムシミュレーションシステム、映像等のコンテンツを提供するコンテンツ提供システム、遠隔作業を実現するオペレーティングシステムなどの種々のシステムに適用可能である。
図1、図2に示すように本実施形態のシミュレーションシステムは、ユーザPL(プレーヤ)が装着するHMD200(頭部装着型表示装置)と処理装置10を含む。またシミュレーションシステムの筐体30を含むことができる。なお、本実施形態のシミュレーションシステムは図1、図2の構成に限定されず、その構成要素(各部)の一部(筐体等)を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
HMD200は、ユーザPLが頭部に装着するものであり、画像が表示される表示部や、ユーザPLの位置(視点位置)、方向(視線方向)、或いは姿勢等を検出するためのセンサ部や、各種の処理を行う処理部などを含むことができる。HMD200の詳細については後述する。
筐体30は、例えばアーケード筐体などと呼ばれ、シミュレーションシステムの装置の外殻となるものであり、シミュレーションシステムの本体部分である。例えば筐体30は、ユーザPLが仮想体験のゲームをプレイするため構造物である。筐体30には、ユーザPLの立ち位置や着座位置などであるプレイポジションが設定されている。例えば図1、図2の筐体30では、エリアAR1にプレイポジションPPL1が設定され、エリアAR2にプレイポジションPPL2が設定されている。PPL1はユーザPLの立ち位置となるプレイポジションであり、PPL2はユーザPLの着座位置となるプレイポジションである。筐体30には、シミュレーションシステムを実現するための種々の構造物、機器が設けられる。例えば図1、図2の筐体30には、構造物として、ライド部50や、HMD200のケーブル20のガイド部22などが設けられている。ここで、構造物は、少なくとも1つの部材により形成される物体(工作物)である。なお筐体30は、ロボットゲームや車ゲームや飛行機ゲームなどにおけるコックピット筐体(体感筐体)や、アトラクション筐体や、カードゲーム筐体などであってもよい。
処理装置10は、各種の処理を行う装置である。処理装置10としては、例えばパーソナルコンピュータ(PC)、業務用ゲーム装置又は家庭用ゲーム装置などの種々の装置を採用できる。処理装置10は、映像コンテンツを提供する映像機器であってもよい。
また処理装置10は、プロセッサ(CPU、MPU等)やメモリ(ROM、RAM等)などの各種のデバイス(IC)が実装されるシステム基板(回路基板、ゲーム基板)であってもよい。この場合には、当該システム基板は例えば筐体30内に内蔵される。システム基板に設けられたプロセッサは、メモリに記憶されたプログラムやデータなどに基づいて、各種の処理を実行する。
また処理装置10は、例えばユーザPLが装着したり所持する装置であってもよい。例えば処理装置10はウェアラブル機器であってもよい。例えばユーザPLが処理装置10(ノートPC、PC等)を背中等に装着してもよい。この場合には処理装置10とHMD200の間はケーブルにより接続してもよいし、無線通信により接続してもよい。また後述の図14(A)、(B)の第1、第2の体感装置11、12を、処理装置10が無線通信により制御してもよい。また処理装置10として複数の処理装置を設けて、HMD200の表示画像の表示処理と、仮想体験処理を分担して行うようにしてもよい。
処理装置10は、例えばゲーム処理(シミュレーション処理)などの各種の処理を実行する。例えば処理装置10は、ゲームプログラムや、ユーザPL又は施設のオペレータの操作情報などに基づいて、ゲーム処理(シミュレーション処理)を行う。そして処理装置10はゲーム処理の結果(ゲーム状況)に応じた画像を生成し、生成された画像がHMD200に表示される。具体的には、生成された画像(音)の信号は、ケーブル20を介してHMD200に伝送される。
また処理装置10は、HMD200のトラッキング処理により得られたトラッキング情報に基づいて、HMD200に表示される画像を生成する。例えば後述の図6(B)に示すように、筐体30の周辺にはベースステーション280、284が設置されており、ベースステーション280、284には発光素子が設けられている。また、後述するようにHMD200には、フォトダイオード等により実現される受光素子が設けられている。そしてベースステーション280、284の発光素子からの光(レーザー等)を、HMD200に設けられた受光素子により受光することで、HMD200のトラッキング処理が実現される。処理装置10は、HMD200のトラッキング処理によるトラッキング情報を取得する。トラッキング情報は、例えばHMD200の位置及び方向の少なくとも一方を含む情報である。HMD200の位置、方向は、ユーザPLの視点位置、視線方向に対応する。このトラッキング情報を用いることで、ユーザPLの視点位置や視線方向に応じた画像を生成して、HMD200に表示できるようになる。例えば現実世界のユーザPLが右方向や左方向に視線を向けたとする。この場合には、仮想空間における仮想ユーザが右方向や左方向に視線を向けた場合に見えるVR空間の画像が、HMD200に表示されるようになる。また現実世界のユーザPLが上方向や下方向に視線を向けたとする。この場合には、仮想空間における仮想ユーザが上方向や下方向に視線を向けた場合に見えるVR空間の画像が、HMD200に表示されるようになる。
筐体30には、構造物であるガイド部22とライド部50が設けられている。処理装置10からのケーブル20は、ガイド部22によりガイドされ、経由点TPを介して、ユーザPLが装着するHMD200に接続される。ケーブル20は例えば経由点TP(固定点)において固定具等により固定される。なお、ケーブル20を用いずに、例えば無線通信によりHMD200と処理装置10との間での信号の送受信を行ってもよい。
筐体30にはエリアAR1とエリアAR2が設定されている。エリアAR1(第1のエリア)は、例えばユーザPLが立ち姿勢で仮想体験のゲームをプレイするエリアである。ユーザPLは、エリアAR1では、プレイポジションPPL1の位置に立って、仮想体験のゲームをプレイする。筐体30の上側のベース部31(床部)には、プレイポジションPPL1の場所にマーカMKが設けられている。ユーザPLはこのマーカMKを見ることで、エリアAR1でのプレイポジションPPL1の場所を認識できる。
エリアAR2(第2のエリア)は、例えばユーザPLが着座姿勢で仮想体験のゲームをプレイするエリアである。例えばエリアAR2にはライド部50が設けられ、ライド部50には、シート52、転倒防止部54、ホールド部60が設けられている。図2に示すように、エリアAR2では、ユーザPLは、シート52のプレイポジションPPL2の場所に着座する。そしてユーザPLはホールド部60を抱き締めるように保持することで、自身の体勢を維持する。なおライド部50の内部には、シミュレーションシステムのI/O基板などを設けることができる。このI/O基板は例えばUSBケーブルなどを用いて処理装置10と接続される。
本実施形態のシミュレーションシステムでは、ユーザに仮想現実を体験させるための体感装置が設けられている。例えば図3に示すようにエリアAR1には、体感装置(第1の体感装置)として、例えば振動モータ40やトランスデューサ41、42などの振動発生部が設けられている。例えば振動モータ40、トランスデューサ41、42は、筐体30のベース部31の裏側面に取り付けられている。そして振動モータ40、トランスデューサ41、42がベース部31を振動させることで、ユーザPLに細かな振動や揺れを体感させる。振動モータ40は、例えば、偏芯した錘を回転させることで振動を発生する。具体的には駆動軸(ローター軸)の両端に偏心した錘を取り付けてモータ自体が揺れるようにする。トランスデューサ41、42は、音信号を変換するものであり、ハイパワーのサブウーハーに相当するものである。例えば処理装置10が音ファイルの再生処理を行うと、それによる音信号がトランスデューサ41、42に入力される。そして例えば音信号の低域成分に基づいて振動が発生する。例えばトランスデューサ41、42は、5.1chや2.1chなどの立体音響におけるサブウーハー成分に基づいて、重低音や重低音に対応する振動を発生させる。
エリアAR2には、体感装置(第2の体感装置)として、例えばエアバネ部44、45、46、47やハロゲンヒータ48が設けられている。エアバネ部44、45、46、47(広義にはアクチュエータ、伸縮部)は、ユーザPLに揺れや傾き(姿勢を変化)を感じさせるための駆動ユニットである。エアバネ部44〜47は、例えばライド部50の下面の4隅に設けられる。エアバネ部44〜47は、エアコンプレッサやバブルを用いて空気の供給や排出が行われることで、鉛直方向において伸縮する。なお、エアバネ部44〜47の代わりに、電動シリンダ(広義にはアクチュエータ、伸縮部)を設けてもよい。例えば電動シリンダのロッド部を伸縮させることで、ユーザPLに揺れや傾き(姿勢の変化)を感じさせるための駆動ユニットを実現できる。
ハロゲンヒータ48(広義にはヒータ)は、ハロゲンランプからの放射熱によって、ユーザPLに熱や熱風を感じさせる体感装置である。処理装置10は、ハロゲンヒータ48の電源のオン、オフを制御することで、熱や熱風を発生させる。具体的には処理装置10は、筐体30(ライド部50)の内部に設けられたI/O基板に対して電源のオン、オフを指示し、これによりI/O基板が、ハロゲンヒータ48に供給される電源のオン、オフを行う。なおハロゲンヒータ48とは異なるタイプのヒータを用いて、ユーザPLに熱や熱風を感じさせる体感装置を実現してもよい。また体感装置として、風を送風する風洞部を設けてもよい。
図4に本実施形態のシミュレーションシステムの筐体30の詳細例を示す。図4のA1は筐体30の正面図であり、A2は上面図であり、A3は側面図である。ガイド部22やライド部50は、筐体30の上面側のベース部31に設けられる。筐体30の下面側のベース部32には、例えばキャスターなどの支持部が設けられている。
図5は、本実施形態のシミュレーションシステムの詳細な構成例を示すブロック図である。図1、図2の処理装置10は、例えば図5の処理部100、記憶部170などにより実現できる。なお、本実施形態のシミュレーションシステムは図5の構成に限定されず、その構成要素(各部)の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
筐体30は、図1、図2に示すベース部31、32、ライド部50、ガイド部22や、図3で説明した各種の体感装置により実現されるものである。筐体30が可動筐体である場合には、処理部100(処理装置)は可動筐体の制御処理を行ったり、可動筐体を制御するための種々の情報の検出処理を行う。例えば処理部100は、図3のエアバネ部44〜47の制御処理を行ったり、操作情報やユーザの位置等についての検出処理を行う。
例えば本実施形態では、ユーザがプレイするゲームのゲーム処理として、仮想現実のシミュレーション処理を行う。仮想現実のシミュレーション処理は、実空間での事象を仮想空間で模擬するためのシミュレーション処理であり、当該事象をユーザに仮想体験させるための処理である。例えば実空間のユーザに対応する仮想ユーザやその搭乗移動体などの移動体を、仮想空間で移動させたり、移動に伴う環境や周囲の変化をユーザに体感させるための処理を行う。
そして筐体30が可動筐体である場合に、当該可動筐体は、ユーザのプレイポジションを変化させる。例えば可動筐体は、移動体(例えばロボット、キャラクタ、乗り物等)の動作状態や移動状態、或いはゲーム状況などに応じて、ユーザのプレイポジションを変化させる。移動体の動作状態は、移動体の姿勢や、姿勢の変化などである。移動体の姿勢変化は、移動体のモデルオブジェクトのモーション再生などにより実現できる。移動体の移動状態は、移動体の速度(角速度)、加速度(角加速度)、移動方向、或いは移動環境などの状態である。ゲーム状況は、例えばゲームの進行状況、敵との対戦の状況、或いは仮想空間のマップの状況などである。例えば可動筐体は、ゲーム処理であるシミュレーション処理の結果に基づいてプレイポジションを変化させる。例えば仮想空間での移動体の動作処理(モーション処理)や移動処理の結果等に基づいて、プレイポジションを変化させる。或いは、ゲーム状況の変化に応じて、プレイポジションを変化させる。例えば敵から攻撃を受けるようなゲーム状況である場合に、その攻撃の状況に応じてプレイポジションを変化させる。例えば、移動体の動作状態や移動状態やゲーム状況の変化に伴う加速度の変化(加速、減速)や揺れや振動や傾きを、ユーザに体感させるためのシミュレーション処理として、可動筐体によりプレイポジションを変化させる処理を行う。或いは、コース上を移動体が移動する際に、コースの上り下りや凹凸をユーザに体感させるためのシミュレーション処理として、可動筐体によりプレイポジションを変化させる処理を行う。このように可動筐体によりプレイポジションを変化させることで、HMD200での表示画像の揺れと、ユーザが体感する加速度等の変化が、ある程度連動するようになり、ユーザの3D酔い等を抑制できるようになる。
なおプレイポジションは、仮想現実(VR)のシミュレーションゲームをプレイする際にユーザが位置するポジションである。例えばプレイポジションは、シートなどのライド部でのユーザのライド位置である。例えばライド部であるシート等に座って、仮想現実のシミュレーションゲームをプレイしている場合には、プレイポジションは例えばシートのライド位置である着座位置である。またユーザが、バイク、自転車、又は馬などの乗り物や動物を模擬したライド部にまたがっている場合には、プレイポジションは、またがっている位置である。またユーザが立ち姿勢でシミュレーションゲームをプレイする場合には、プレイポジションは、例えばユーザの立ち位置である。
操作部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のトラッキング方式では、後述の図6(A)、図6(B)で詳細に説明するように、センサ部210として複数の受光素子(フォトダイオード等)を設ける。そして外部に設けられた発光素子(LED等)からの光(レーザー等)をこれらの複数の受光素子により受光することで、現実世界の3次元空間でのHMD200(ユーザの頭部)の位置、方向を特定する。第2のトラッキング方式では、後述の図7(A)、図7(B)で詳細に説明するように、複数の発光素子(LED)をHMD200に設ける。そして、これらの複数の発光素子からの光を、外部に設けられた撮像部で撮像することで、HMD200の位置、方向を特定する。第3のトラッキング方式では、センサ部210としてモーションセンサを設け、このモーションセンサを用いてHMD200の位置、方向を特定する。モーションセンサは例えば加速度センサやジャイロセンサなどにより実現できる。例えば3軸の加速度センサと3軸のジャイロセンサを用いた6軸のモーションセンサを用いることで、現実世界の3次元空間でのHMD200の位置、方向を特定できる。なお、第1のトラッキング方式と第2のトラッキング方式の組合わせ、或いは第1のトラッキング方式と第3のトラッキング方式の組合わせなどにより、HMD200の位置、方向を特定してもよい。またHMD200の位置、方向を特定することでユーザの視点位置、視線方向を特定するのではなく、ユーザの視点位置、視線方向を直接に特定するトラッキング処理を採用してもよい。
HMD200の表示部220は例えば液晶ディスプレイ(LCD)や有機ELディスプレイなどにより実現できる。例えばHMD200には、表示部220として、ユーザの左目の前に配置される第1のディスプレイと、右目の前に配置される第2のディスプレイが設けられており、例えば立体視表示が可能になっている。立体視表示を行う場合には、例えば視差が異なる左目用画像と右目用画像を生成し、第1のディスプレイに左目用画像を表示し、第2のディスプレイに右目用画像を表示すればよい。なお1つのディスプレイの第1、第2の表示領域に左目用画像、右目用画像を表示するようにしてもよい。
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の各部が行う本実施形態の各処理(各機能)はプロセッサ(ハードウェアを含むプロセッサ)により実現できる。例えば本実施形態の各処理は、プログラム等の情報に基づき動作するプロセッサと、プログラム等の情報を記憶するメモリにより実現できる。プロセッサは、例えば各部の機能が個別のハードウェアで実現されてもよいし、或いは各部の機能が一体のハードウェアで実現されてもよい。プロセッサは、例えばCPU(Central Processing Unit)であってもよい。但し、プロセッサはCPUに限定されるものではなく、GPU(Graphics Processing Unit)、或いはDSP(Digital Signal Processor)等、各種のプロセッサを用いることが可能である。またプロセッサはASICによるハードウェア回路であってもよい。メモリ(記憶部170)は、SRAM、DRAM等の半導体メモリであってもよいし、レジスターであってもよい。或いはハードディスク装置(HDD)等の磁気記憶装置であってもよいし、光学ディスク装置等の光学式記憶装置であってもよい。例えば、メモリはコンピュータにより読み取り可能な命令を格納しており、当該命令がプロセッサにより実行されることで、処理部100の各部の処理(機能)が実現されることになる。ここでの命令は、プログラムを構成する命令セットでもよいし、プロセッサのハードウェア回路に対して動作を指示する命令であってもよい。
処理部100は、入力処理部102、演算処理部110、出力処理部140を含む。演算処理部110は、ゲーム処理部112、仮想体験処理部113、移動体処理部114、オブジェクト空間設定部116、仮想カメラ制御部118、表示処理部120、音処理部130を含む。上述したように、これらの各部により実行される本実施形態の各処理は、プロセッサ(或いはプロセッサ及びメモリ)により実現できる。なお、これらの構成要素(各部)の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
入力処理部102は、操作情報やトラッキング情報を受け付ける処理や、記憶部170から情報を読み出す処理や、通信部196を介して情報を受信する処理を、入力処理として行う。例えば入力処理部102は、操作部160を用いてユーザが入力した操作情報やHMD200のセンサ部210等により検出されたトラッキング情報を取得する処理や、読み出し命令で指定された情報を、記憶部170から読み出す処理や、外部装置(サーバ等)からネットワークを介して情報を受信する処理を、入力処理として行う。ここで受信処理は、通信部196に情報の受信を指示したり、通信部196が受信した情報を取得して記憶部170に書き込む処理などである。
演算処理部110は、各種の演算処理を行う。例えばゲーム処理(シミュレーション処理)、移動体処理、仮想カメラ制御処理、表示処理、或いは音処理などの演算処理を行う。
ゲーム処理部112(ゲーム処理のプログラムモジュール)はユーザがゲームをプレイするための種々のゲーム処理を行う。別の言い方をすれば、ゲーム処理部112(シミュレーション処理部)は、ユーザが仮想現実(バーチャルリアリティ)を体験するための種々のシミュレーション処理を実行する。ゲーム処理は、例えば、ゲーム開始条件が満たされた場合にゲームを開始する処理、開始したゲームを進行させる処理、ゲーム終了条件が満たされた場合にゲームを終了する処理、或いはゲーム成績を演算する処理などである。
仮想体験処理部113(仮想体験処理のプログラムモジュール)は、ユーザに仮想現実を体験させるための仮想体験処理を行う。仮想体験処理は、例えばユーザの視覚器官以外の感覚器官に働きかけてユーザに仮想現実を体験させる処理である。仮想体験処理部113は、図3の振動モータ40、トランスデューサ41、42、エアバネ部44〜47、ハロゲンヒータ48などの種々の体感装置を用いて仮想体験処理を実現する。例えば仮想体験処理部113は、仮想体験処理として、これらの体感装置の制御処理を行ったり、体感装置を制御するための検知処理を行う。例えば仮想体験処理部113は、振動モータ40を振動させて、ベース部31を振動させ、細かな揺れや振動を体感させる処理を行う。またトランスデューサ41、42に対して音信号を出力して、重低音による振動をユーザに体感させる処理を行う。また仮想体験処理部113は、エアバネ部44〜47を伸縮させて、ユーザに揺れや傾き(姿勢変化)を体感させる処理を行う。またハロゲンヒータ48の電源のオン、オフ等を制御して、ユーザに熱や熱風を体感させる処理を行う。
移動体処理部114(移動体処理のプログラムモジュール)は、仮想空間内で移動する移動体についての種々の処理を行う。例えば仮想空間であるオブジェクト空間(ゲーム空間)において移動体を移動させる処理や、移動体を動作させる処理を行う。例えば移動体処理部114は、操作部160によりユーザが入力した操作情報や、取得されたトラッキング情報や、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、移動体(モデルオブジェクト)をオブジェクト空間内(仮想空間内)で移動させたり、移動体を動作(モーション、アニメーション)させる制御処理を行う。具体的には、移動体の移動情報(位置、回転角度、速度、或いは加速度)や動作情報(パーツオブジェクトの位置、或いは回転角度)を、1フレーム(例えば1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、移動体の移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。
移動体は、例えば実空間のユーザ(プレーヤ)に対応する仮想空間の仮想ユーザ(仮想プレーヤ)、或いは当該仮想ユーザが搭乗可能な搭乗移動体(操作移動体)などである。例えば移動体は、後述するロボットの仮想体験ゲームにおいてユーザに対応するキャラクタ(仮想ユーザ)が、手などの部位やコックピットに搭乗するロボットである。但し、搭乗移動体は、ロボットに限定されず、車、飛行機、船、電車などの乗り物やモンスターなどであってもよい。また移動体は、RPG、スポーツゲーム、ホーラゲーム、FPSゲーム又はアクションゲームなどにおいてユーザの分身である仮想ユーザとして仮想空間に登場するキャラクタなどであってもよい。
オブジェクト空間設定部116(オブジェクト空間設定処理のプログラムモジュール)は、複数のオブジェクトが配置されるオブジェクト空間(広義には仮想空間)の設定処理を行う。例えば、移動体(人、ロボット、車、電車、飛行機、船、モンスター又は動物等)、マップ(地形)、建物、観客席、コース(道路)、樹木、壁、水面などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。具体的には、記憶部170のオブジェクト情報記憶部172には、オブジェクト空間でのオブジェクト(パーツオブジェクト)の位置、回転角度、移動速度、移動方向等の情報であるオブジェクト情報がオブジェクト番号に対応づけて記憶される。オブジェクト空間設定部116は、例えば各フレーム毎にこのオブジェクト情報を更新する処理などを行う。
仮想カメラ制御部118(仮想カメラ制御処理のプログラムモジュール)は、オブジェクト空間の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点、基準仮想カメラ)の制御処理を行う。例えば仮想カメラの位置(視点位置)又は姿勢(視線方向)を制御する処理を行う。具体的には、仮想カメラの位置(X、Y、Z)や、姿勢情報である回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置、視線方向あるいは画角を制御する処理)を行う。この仮想カメラはユーザ(仮想ユーザ)の視点に相当する。立体視表示の場合は、左目用の第1の視点(左目用の第1の仮想カメラ)と、右目用の第2の視点(右目用の第2の仮想カメラ)が設定される。
表示処理部120(表示処理のプログラムモジュール)は、ゲーム画像(シミュレーション画像)の表示処理を行う。例えば処理部100で行われる種々の処理(ゲーム処理、シミュレーション処理)の結果に基づいて描画処理を行い、これにより画像を生成し、HMD200の表示部220に表示する。具体的には、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、透視変換、或いは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ(プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)が作成される。そして、この描画データ(プリミティブ面データ)に基づいて、透視変換後(ジオメトリ処理後)のオブジェクト(1又は複数プリミティブ面)を、描画バッファ178(フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファ)に描画する。これにより、オブジェクト空間(仮想空間)において仮想カメラ(所与の視点。左目用、右目用の第1、第2の視点)から見える画像が生成される。なお、表示処理部120で行われる描画処理は、頂点シェーダ処理やピクセルシェーダ処理等により実現することができる。
音処理部130(音処理のプログラムモジュール)は、処理部100で行われる種々の処理の結果に基づいて音処理を行う。具体的には、楽曲(音楽、BGM)、効果音、又は音声などのゲーム音を生成し、ゲーム音を音出力部192に出力させる。なお音処理部130の音処理の一部(例えば3次元音響処理)を、HMD200の処理部240により実現してもよい。
出力処理部140は各種の情報の出力処理を行う。例えば出力処理部140は、記憶部170に情報を書き込む処理や、通信部196を介して情報を送信する処理を、出力処理として行う。例えば出力処理部140は、書き込み命令で指定された情報を、記憶部170に書き込む処理や、外部の装置(サーバ等)に対してネットワークを介して情報を送信する処理を行う。送信処理は、通信部196に情報の送信を指示したり、送信する情報を通信部196に指示する処理などである。
そして本実施形態のシミュレーションシステムは、図1〜図5で説明したように、ユーザが装着するHMD200(頭部装着型表示装置)と、処理装置10(処理部100、記憶部170等)と、シミュレーションシステムの筐体30を含む。処理装置10は、HMD200の表示画像の表示処理を行う。例えば表示画像を生成して、表示画像の信号をHMD200に出力する。この表示処理は表示処理部120により行われる。また処理装置10は、ユーザに仮想現実を体験させる仮想体験処理を行う。具体的には、ユーザの視覚器官以外の感覚器官に働きかけて仮想現実を体験させる仮想体験処理を行う。この仮想体験処理は仮想体験処理部113により行われる。視覚器官以外の感覚器官は、例えば三半規管、触覚器官、聴覚器官、味覚器官又は臭覚器官などである。例えば三半規管に働きかける仮想体験処理により、振動や揺れや傾きを体感させることができる。また皮膚等の触覚器官に働きかける仮想体験処理により、温度(熱、熱風)、対象物への接触、対象物からの押圧、痛覚などを体感させることができる。また聴覚器官に働きかける仮想体験処理により、衝撃音や爆発音や動作音や重低音などをユーザに聴かせて、聴覚による仮想体験を体感させることができる。
筐体30には第1のエリア、第2のエリアが設定されている。そして処理装置10は、ユーザが筐体30の第1のエリアにいる場合には、仮想体験処理として、第1の仮想体験処理を行う。一方、ユーザが筐体30の第2のエリアにいる場合には、仮想体験処理として、第1の仮想体験処理とは異なる第2の仮想体験処理を行う。これらの第1、第2の仮想体験処理は、例えばユーザの視覚器官以外の感覚器官に働きかけて仮想現実を体験させる処理であり、仮想体験処理部113により実行される。
例えば図1に示すようにユーザ(PL)が第1のエリアAR1(以下、単にエリアAR1と記載)にいる場合には、第1の仮想体験処理が行われ、図2に示すようにユーザが第2のエリアAR2(以下、単にエリアAR2と記載)にいる場合には、第2の仮想体験処理が行われる。具体的には、エリアAR1には、第1の体感装置が設けられ、エリアAR2には第2の体感装置が設けられる。そして処理装置10は、ユーザがエリアAR1にいる場合には、第1の体感装置を用いてユーザに仮想現実を体験させる第1の仮想体験処理を行う。一方、ユーザがエリアAR2にいる場合には、第2の体感装置を用いてユーザに仮想現実を体験させる第2の仮想体験処理を行う。そして第1の仮想体験処理による仮想体験の内容と、第2の仮想体験処理による仮想体験の内容を異ならせることで、例えばエリアAR1、AR2のいずれのエリアに位置するのかをユーザに認識させることができる。
図3を例にとれば、エリアAR1の第1の体感装置として、振動モータ40、トランスデューサ41、42が設けられている。そしてユーザがエリアAR1にいる場合には、振動モータ40により細かな揺れや振動を体感させる処理や、トランスデューサ41、42により重低音による揺れや振動を体感させる処理などの第1の仮想体験処理が行われる。また図3では、エリアAR2の第2の体感装置として、エアバネ部44〜47、ハロゲンヒータ48が設けられている。そしてユーザがエリアAR2にいる場合には、エアバネ部44〜47により昇降時における揺れや傾き(姿勢変化)を体感させる処理や、ハロゲンヒータ48により熱、熱風などの温度変化を体感させる処理などの第2の仮想体験処理が行われる。
なお第1、第2の仮想体験処理は上記に例示した処理には限定されず、ユーザの視覚器官以外の感覚器官に働きかけて仮想現実を体験させる種々の処理を想定できる。またエリアの数も2つには限定されず、3つ以上であってもよい。
また処理装置10は、ユーザがエリアAR1に位置している時にゲーム処理を開始する。そしてユーザがエリアAR2に移動し、エリアAR2からエリアAR1に戻った後に、ゲーム処理を終了する。例えばユーザが図1のエリアAR1のプレイポジションPPL1についた後に、ゲーム処理を開始する。そしてゲーム進行処理を行う共に、振動モータ40やトランスデューサ41、42などの第1の体感装置による第1の仮想体験処理を実行する。次に、ユーザがエリアAR1からエリアAR2に移動したことが検知されると、処理装置10は、エリアAR2でのゲーム進行処理を行う共に、エアバネ部44〜47やハロゲンヒータ48などの第2の体感装置による第2の仮想体験処理を実行する。そしてユーザがエリアAR2からエリアAR1に戻った後、ゲーム終了条件が満たされ場合に、ゲーム処理を終了する。なお、これらのゲーム処理の開始処理、進行処理、終了処理は、ゲーム処理部112が実行する。
この場合に処理装置10は、ユーザの移動の検知処理を行い、検知処理の結果に基づいてユーザがエリアAR1とエリアAR2のいずれのエリアにいるのかを判断して、第1の仮想体験処理又は第2の仮想体験処理を行う。即ち、ユーザがエリアAR1にいることが検知された場合には第1の仮想体験処理を行い、ユーザがエリアAR2にいることが検知された場合には、第2の仮想体験処理を行う。この場合のユーザの移動の検知処理は、センサ等を用いた自動検知処理であってもよい。或いは、シミュレーションシステムの施設のオペレータが、エリアAR1からエリアAR2へのユーザの移動、或いはエリアAR2からエリアAR1へのユーザの移動を確認して、ゲーム進行ボタンを押した場合に、ゲーム進行ボタンからの検出信号に基づいて、処理装置10がユーザの移動を検知してもよい。
また処理装置10は、ユーザがエリアAR2のプレイポジションについたことを条件に、エリアAR2でのゲーム処理を進行させる。例えばユーザがエリアAR1からエリアAR2に移動して、図2のエリアAR2のプレイポジションPPL2についたことを条件に、エリアAR2でのゲーム処理の進行を開始する。例えばプレイポジションPPL2であるシート52に着座したことを条件に、エリアAR2でのゲーム処理の進行を開始する。この場合に、ユーザがエリアAR2のプレイポジションについたか否かは、センサ等を用いた自動検知処理により検知してもよい。或いは、施設のオペレータが、ユーザがエリアAR2のプレイポジションについたことを確認して、ゲーム進行ボタンを押した場合に、ゲーム進行ボタンからの検出信号に基づいて、処理装置10が、プレイポジションPPL2にユーザがついたことを検知してもよい。
また処理装置10は、エリアAR1とエリアAR2の境界をユーザに報知するための報知情報の出力処理を行う。この出力処理は出力処理部140が行う。例えばユーザがエリアAR1とエリアAR2の境界をまたぐ際に、音、振動又は光などによるアラート情報を、報知情報として出力する。これによりエリアAR1、AR2のいずれのエリアにいるのかをユーザに報知することが可能になる。またエリアAR1とエリアAR2の境界をユーザに認識させるための画像(例えば後述する柵の画像)を表示画像に含ませて、HMD200に表示する処理を、報知情報の出力処理として行ってもよい。
ここでエリアAR1、AR2は、図1、図2に示すようにシミュレーションシステムの筐体30に設定されるエリアである。例えば図1、図2において、エリアAR1は筐体30のベース部31の平らな部分のエリアであり、エリアAR2は、ライド部50が設けられているエリアである。このようにすれば、ユーザが、エリアAR1のベース部31のプレイポジションPPL1の付近に立っている場合には、エリアAR1でのゲーム処理と第1の仮想体験処理を行うことが可能になる。またユーザが、エリアAR2のライド部50のプレイポジションPPL2に着座している場合には、エリアAR2でのゲーム処理と第2の仮想体験処理を行うことが可能になる。
また本実施形態のシミュレーションシステムでは、HMD200と処理装置10との間で信号を伝送するケーブル20が設けられている。そして図1、図2に示すように、このケーブル20の経由点TPが、エリアAR1でのユーザのプレイポジションPPL1とエリアAR2でのユーザのプレイポジションPPL2の間の領域に設けられている。例えばプレイポジションPPL1とプレイポジションPPL2の間の領域の位置にケーブル20のガイド部22が設けられている。このガイド部22の一端は筐体30のベース部31に取り付けられ、ガイド部22の他端が経由点TPとなっている。そして処理装置10からのケーブル20は、ガイド部22によりガイドされて、ガイド部22の他端である経由点TPから取り出され、ユーザが装着するHMD200に接続される。このようにすれば、ユーザがエリアAR1、AR2のいずれのエリアにいる場合にも、経由点TPとHMD200との間でケーブル20を弛ませておくことが可能になる。従って、ケーブル20のテンションがHMD200に作用して、ユーザの装着感を阻害したり、ケーブル20が頭から外れてしまうなどの事態を防止できる。
また本実施形態では、エリアAR1、AR2の少なくとも一方のエリアに、ユーザの操作部(160)を設けてもよい。例えばゲームの操作情報を入力するためのボタン、レバー又はスイッチ等からなる操作部を設ける。そして処理装置10は、操作部に対応する操作表示物の画像を含む表示画像を、HMD200に表示する処理を行う。例えば現実世界の操作部に対応するような形状の操作表示物(オブジェクト)を、仮想空間に配置する。例えば現実世界の操作部の設置位置に対応する仮想空間の位置に、操作表示物を配置する。そして、ユーザが現実世界の操作部を操作すると、仮想世界の操作表示物を仮想ユーザが操作している様子がHMD200に表示される。こうすることで、HMD200により視界が覆われていても、操作部を用いたゲームの操作情報を、ユーザが容易に入力できるようになる。
またエリアAR2には構造物が設けられる。図1、図2を例にとれば、エリアAR2にはライド部50が構造物として設けられている。そして処理装置10は、構造物に対応する表示物を、仮想空間に出現させ、出現した表示物の画像を含む表示画像を、HMD200に表示する処理を行う。例えば後述するように、構造物であるライド部50に対応する表示物として、ロボットの手を表す表示物が仮想空間に出現し、HMD200に表示される。具体的には処理装置10は、ユーザのゲーム開始後、現実世界の構造物の設置位置に対応する仮想空間の位置に、構造物に対応する表示物を移動する処理を行う。そして移動する表示物の画像を含む表示画像を、HMD200に表示する処理を行う。例えば、ライド部50に対応するロボットの手の表示物が、ゲーム開始後に、ライド部50の設置位置に対応する仮想空間の位置に移動する表示画像が、HMD200に表示される。
この場合に処理装置10は、仮想空間での表示物の位置を、現実世界での構造物の設置位置に対応させるための調整処理を行う。この調整処理は例えば仮想体験処理部113が行う。例えばシミュレーションシステムのイニシャライズ処理として、当該調整処理を行う。具体的には後述の図6(B)のようなベースステーション280、284が、シミュレーションシステムの筐体30の周囲に配置された状態で、表示物の位置を構造物の設置位置に対応(一致)させるための調整処理が行われる。例えば図1、図2のプレイポジションPPL1から所定の高さの位置に、HMD200を正面方向に向けた状態で配置する。そしてベースステーション280、284を用いてHMD200の位置、方向等を特定するルームセットアップ処理を、調整処理として行う。例えば現実世界での1mが仮想世界での1mとなるように現実世界と仮想世界とでは縮尺を一致させている。従って、このようなルームセットアップ処理等の調整処理を行うことで、仮想世界での仮想ユーザとロボットの手(表示物)との位置関係が、現実世界でのユーザとライド部50(構造物)との位置関係に一致するようになる。従って、後述するようにユーザは、HMD200に表示される仮想空間のロボットの手を見ながら、その手の平に座ることで、現実世界においてもライド部50に適正に座ることが可能になる。
また構造物は、ユーザが装着するHMD200との干渉を回避するための逃げ部を有していることが望ましい。例えば図1、図2に示すように、構造物であるライド部50のホールド部60には、ユーザが装着するHMD200との干渉を回避するための逃げ部62が設けられている。具体的にはホールド部60には、逃げ部62として切り欠き部が設けられている。このような逃げ部62を設けることで、ユーザがライド部50に着座してホールド部60を抱き締めるように保持した場合にも、装着したHMD200がホールド部60に干渉してしまう事態が防止される。
なお図1、図2では構造物は、ユーザが搭乗するライド部50となっている。但し、本実施形態の構造物はこのようなライド部50には限定されない。例えば、仮想空間にアイドルやヒーローなどのキャラクタが登場するゲームである場合に、このキャラクタに対応する構造物を用意する。例えばシミュレーションシステムの筐体に、キャラクタの形を模した構造物を設ける。そして、現実世界の構造物に対応する仮想空間の位置にキャラクタが移動して登場する表示画像を、HMD200に表示する。そして、ユーザが現実世界においてその構造物に触ったり、抱き締めると、仮想空間においても、構造物に対応するキャラクタを仮想ユーザが触ったり、抱き締めたりする画像が、HMD200に表示されるようになる。
次にHMD200やトラッキング処理の詳細について説明する。図6(A)に本実施形態のシミュレーションシステムに用いられるHMD200の一例を示す。図6(A)に示すようにHMD200には複数の受光素子201、202、203(フォトダイオード)が設けられている。受光素子201、202はHMD200の前面側に設けられ、受光素子203はHMD200の右側面に設けられている。またHMDの左側面、上面等にも不図示の受光素子が設けられている。
またHMD200には、ヘッドバンド260等が設けられており、ユーザPLは、より良い装着感で安定的に頭部にHMD200を装着できるようになっている。また、HMD200には、不図示のヘッドホン端子が設けられており、このヘッドホン端子にヘッドホン270(音出力部192)を接続することで、例えば3次元音響(3次元オーディオ)の処理が施されたゲーム音を、ユーザPLは聴くことが可能になる。なお、ユーザの頭部の頷き動作や首振り動作をHMD200のセンサ部210等により検出することで、ユーザの操作情報を入力できるようにしてもよい。
図6(B)に示すように、シミュレーションシステムの筐体30の周辺には、ベースステーション280、284が設置されている。ベースステーション280には発光素子281、282が設けられ、ベースステーション284には発光素子285、286が設けられている。発光素子281、282、285、286は、例えばレーザー(赤外線レーザー等)を出射するLEDにより実現される。ベースステーション280、284は、これら発光素子281、282、285、286を用いて、例えばレーザーを放射状に出射する。そして図6(A)のHMD200に設けられた受光素子201〜203等が、ベースステーション280、284からのレーザーを受光することで、HMD200のトラッキングが実現され、ユーザPLの頭の位置や向く方向(視点位置、視線方向)を検出できるようになる。
図7(A)にHMD200の他の例を示す。図7(A)では、HMD200に対して複数の発光素子231〜236が設けられている。これらの発光素子231〜236は例えばLEDなどにより実現される。発光素子231〜234は、HMD200の前面側に設けられ、発光素子235や不図示の発光素子236は、背面側に設けられる。これらの発光素子231〜236は、例えば可視光の帯域の光を出射(発光)する。具体的には発光素子231〜236は、互いに異なる色の光を出射する。そして図7(B)に示す撮像部150をユーザPLの前方側に設置し、この撮像部150により、これらの発光素子231〜236の光を撮像する。即ち、撮像部150の撮像画像には、これらの発光素子231〜236のスポット光が映る。そして、この撮像画像の画像処理を行うことで、ユーザPLの頭部(HMD)のトラッキングを実現する。即ちユーザPLの頭部の3次元位置や向く方向(視点位置、視線方向)を検出する。
例えば図7(B)に示すように撮像部150には第1、第2のカメラ151、152が設けられており、これらの第1、第2のカメラ151、152の第1、第2の撮像画像を用いることで、ユーザPLの頭部の奥行き方向での位置等が検出可能になる。またHMD200に設けられたモーションセンサのモーション検出情報に基づいて、ユーザPLの頭部の回転角度(視線)も検出可能になっている。従って、このようなHMD200を用いることで、ユーザPLが、周囲の360度の全方向うちのどの方向を向いた場合にも、それに対応する仮想空間(仮想3次元空間)での画像(ユーザの視点に対応する仮想カメラから見える画像)を、HMD200の表示部220に表示することが可能になる。なお、発光素子231〜236として、可視光ではなく赤外線のLEDを用いてもよい。また、例えばデプスカメラ等を用いるなどの他の手法で、ユーザの頭部の位置や動き等を検出するようにしてもよい。
なお、ユーザの視点位置、視線方向(ユーザの位置、方向)を検出するトラッキング処理の手法は、図6(A)〜図7(B)で説明した手法には限定されない。例えばHMD200に設けられたモーションセンサ等を用いて、HMD200の単体でトラッキング処理を実現してもよい。即ち、図6(B)のベースステーション280、284、図7(B)の撮像部150などの外部装置を設けることなく、トラッキング処理を実現する。或いは、公知のアイトラッキング、フェイストラッキング又はヘッドトラッキングなどの種々の視点トラッキング手法により、ユーザの視点位置、視線方向などの視点情報等を検出してもよい。
2.本実施形態の手法
2.1 ゲームの説明
次に本実施形態の手法について説明する。まず本実施形態の手法により実現されるゲームの一例について説明する。このゲームは、仮想空間に巨大なロボットが出現し、ユーザ(仮想ユーザ)が、そのロボットの手に乗って、当該ロボットと敵ロボットとが対戦している様子を仮想体験できるゲームである。
図1に示すように、ユーザがプレイポジションPPL1であるマーカMKの位置に立って、ライド部50の方を向き、エリアAR1でのゲーム処理が開始されると、図8(A)に示すようなゲーム画像がHMD200に表示される。例えばシミュレーションシステムの施設のオペレータが、処理装置10を用いてゲーム開始の操作を行うことで、ゲーム処理が開始する。そしてHMD200を装着したユーザが見上げると、図8(A)に示すように、ビルBLの前に、巨大なロボットRBがユーザの方を向いて立っているゲーム画像がHMD200に表示される。なお、以下では、仮想空間での仮想ユーザについても、適宜、単にユーザと記載する。
例えば現実世界の娯楽施設の広場には、巨大な実物大のロボットの建造物が設置されている。HMD200により表示される仮想空間では、このロボットの建造物を模して作成されたロボットRB(モデルオブジェクト)が登場する。現実世界と仮想世界は縮尺が同一となっているため、仮想空間に出現するロボットRBも、現実世界のロボットの建造物と同一の大きさの巨大な表示物となっている。
なおHMD200には、接眼レンズ(魚眼レンズ)などの光学系が設けられており、図8(A)〜図13(B)のゲーム画像は、実際には、ユーザの視界の全周囲に亘って広大なVR空間が広がっているよう見える画像になっている。
図1においてユーザが後ろ側(ライド部50の反対側)を向くと、図8(B)に示すようなゲーム画像が表示される。このゲーム画像では、敵ロボットERBがユーザ側に近づいて来ており、マシンガンなどを用いて攻撃を行っている。このマシンガンの弾丸が当たって、ユーザ(仮想ユーザ)の周囲のアスファルトの破片が飛び散ったり、ロボットRBに当たって跳ね返った弾頭が散乱するなどのリアルな画像が、HMD200に表示される。これによりユーザを一種のパニック状態に陥らせる。その後、ロボットRBの起動音が鳴り、ロボットRBが動き出す。
ユーザが、ライド部50側である前方側を向くと、図9(A)に示すようにロボットRBが動いて、ロボットRBの足FRの裏が見えるような迫力のあるゲーム画像が表示される。そして図9(B)に示すようにロボットRBが左の膝を地面について、左の手HLがユーザの目の前の方に差し出される。そして図10(A)に示すように、差し出されたロボットRBの手HLが地面に置かれる。ロボットRBのコックピットからは、「ここに居ては危険だ。手の上に乗るんだ」という音声が聞こえてきて、ロボットRBの手HLの上に乗るように促される。ここで図10(A)の手の平PAは図1、図2のシート52に対応し、指TH(親指)は、ホールド部60に対応する。またエリアAR1とエリアAR2の境界に対応する位置に柵BAが設けられている。
ユーザがライド部50の方に移動して、図2に示すようにシート52に着座すると、仮想世界においては、ユーザがロボットRBの手HLの上に乗った状態になる。そして施設のオペレータがゲーム進行ボタンを押して、ゲーム進行の操作を行うと、エリアAR2でのゲーム処理が開始して進行する。
具体的には、手HLの上にユーザが腰掛けた状態で、ロボットRBがゆっくりと立ち上がる。これにより、手HLの上に腰掛けたユーザは、地面から所定の高さ(例えば10〜20m)の位置まで引き上げられ、図10(B)に示すようなゲーム画像が表示される。このゲーム画像では、敵ロボットERBが更に近づいて来て、マシンガンなどにより攻撃を行っている。次に図11(A)に示すように、敵ロボットERBは、熱を発する斧ESWを用いて攻撃を仕掛けて来る。この攻撃に対して、図11(B)に示すように味方のロボットRBが、ビームにより形成される剣SWを抜き、斧ESWと剣SWの激しいつばぜり合いになる。このつばぜり合いは何度か行われ、つばぜり合いが行われるごとに図11(B)に示すように火花が飛び散る。なお図10(B)〜図11(B)では、ロボットRBの手HLの指THの画像もHMD200に表示されている。
その後、図12(A)では、味方のロボットRBが敵ロボットERBに剣SWを突き刺すことで、敵ロボットERBを撃破している。撃破された敵ロボットERBは爆発し、図12(B)では、その爆発による破片や爆風からユーザを守るために、ロボットRBが右の手HRをユーザの目の前に差しのべている。
このようにして敵ロボットERBとの戦闘が終了すると、ロボットRBは、図13(A)のようにユーザが乗っている左の手HLを地面に下ろす。そしてユーザは、ライド部50から降りて、エリアAR1に移動する。エリアAR1に移動したユーザがライド部50の方を向くと、図13(B)に示すように、立ち上がって元の位置、元の姿勢に戻ったロボットRBが表示されて、ゲーム処理が終了する。
このように本実施形態のゲームでは、ユーザは、現実世界の巨大な建造物に対応する巨大なロボットの手の上に乗って、ロボットが敵ロボットと対戦する場面を仮想体験できるようになる。従って、目の前で、実物大の巨大なロボットの対戦が繰り広げられるという迫力のある場面を体験することができ、これまでにない仮想現実の提供が可能になる。
2.2 第1、第2の仮想体験処理
本実施形態では、図14(A)に示すようにユーザPLがエリアAR1にいる場合には、仮想体験処理として第1の仮想体験処理を行う。一方、図14(B)に示すようにユーザPL(以下、適宜、単にユーザと記載)がエリアAR2にいる場合には、仮想体験処理として第2の仮想体験処理を行う。ここで仮想体験処理は、ユーザの視覚器官以外の感覚器官に働きかけて仮想現実を体験させる処理である。例えばHMD200の表示画像はユーザの視覚器官に働きかけて仮想現実を体験させるものであるが、図14(A)、図14(B)の第1、第2の仮想体験処理は、視覚器官を除く感覚器官に働きかけて仮想現実を体験させる処理である。
なお図14(A)、(B)は、2つのエリアAR1、AR2が設けられる例であるが、エリアは3個以上でもよく、その場合には各エリアにおいて、対応する仮想体験処理が行われるようになる。例えば第3のエリアが更に設けられる場合には、ユーザが第3のエリアにいる時に第3の仮想体験処理が行われることになる。
このように本実施形態では、ユーザが位置するエリアに応じて異なる仮想体験処理が行われる。このようにすることで、各エリアに最適な仮想体験処理を行って、そのエリアのゲーム処理に適した仮想現実をユーザに体感させることが可能になる。ここで、本実施形態の比較例の手法として、ユーザが位置するエリアが変わっても同じ仮想体験処理を行う手法が考えられる。しかしながら、この比較例の手法では、ユーザがどのエリアにいる場合にも、常に同じ仮想体験処理が行われてしまい、ユーザが体験する仮想現実が単調なものになってしまう。これに対して本実施形態では、各エリアごとに、ユーザが体験する仮想現実が異なったものになるため、仮想現実が単調になるのが防止され、より多様で適切な仮想現実をユーザに体感させることが可能になる。
より具体的には本実施形態では、図14(A)、図14(B)に示すように、エリアAR1には第1の体感装置11が設けられ、エリアAR2には第2の体感装置12が設けられている。なおエリアが3個以上の場合には、エリアごとに体感装置を設ければよい。また体感装置の一部を複数のエリアで共用するようにしてもよい。
そして本実施形態では、図14(A)に示すようにユーザがエリアAR1にいる場合には、第1の体感装置11を用いてユーザに仮想現実を体験させる第1の仮想体験処理を行う。一方、図14(B)に示すように、ユーザがエリアAR2にいる場合には、第2の体感装置12を用いてユーザに仮想現実を体験させる第2の仮想体験処理を行う。
図3を例にとれば、エリアAR1には、第1の体感装置11として、振動モータ40とトランスデューサ41、42が設けられている。そして図1のようにユーザがエリアAR1にいる場合には、図8(A)〜図10(A)に示すようなゲーム画像がHMD200に表示される。
例えば図8(B)では敵ロボットERBがマシンガンで攻撃を行っており、弾丸が地面に当たってアスファルトの破片が飛び散ったり、ロボットRBに当たって跳ね返った弾頭が散乱する画像が表示される。この場合に、弾丸が地面やロボットRBに当たった時の衝撃や、飛び散ったアスファルトの破片が地面に落ちた時の衝撃や、マシンガンの銃撃音による衝撃波などが、第1の体感装置11である振動モータ40やトランスデューサ41、42を用いて表現される。また図9(A)、図9(B)のようにロボットRBが足を上げ、その足が地面についた時の衝撃が、振動モータ40やトランスデューサ41、42を用いて表現される。例えば図3のベース部31(床)の裏面側に設けられた振動モータ40が振動することで、ベース部31が振動する。これより、アスファルトの破片や弾頭が地面に落ちた時の衝撃による振動が表現される。またロボットRBの足が地面についた時の衝撃も表現される。また、トランスデューサ41、42は、処理装置10からの音信号の低音成分(サブウーハー成分)を大きな振幅の音波として出力したり、ベース部31を微少に振動させる。これにより、例えばマシンガンの銃撃音の低音成分や、アスファルトの破片や弾頭の衝突音の低音成分が増幅されて、ユーザに聞こえたり、当該低音成分によるベース部31の細かな振動がユーザに伝わる。このようにすることで、ユーザは、衝撃音や銃撃音を、よりリアルに体感することが可能になる。従って、HMD200の画像だけによる仮想体験に比べて、ユーザの仮想現実感を大幅に向上できる。
また図3に示すように、エリアAR2には、第2の体感装置12として、エアバネ部44〜47とハロゲンヒータ48が設けられている。そして図2のようにユーザがエリアAR2にいる場合には、図10(B)〜図12(B)に示すようなゲーム画像がHMD200に表示される。
例えばロボットRBの手HLにユーザが乗ると、手HLが所定の高さまで上昇して、図10(B)に示すような画像が表示される。この場合に、手HLの上昇開始時における揺れが、エアバネ部44〜47を用いて表現される。このような揺れを表現することで、手HLの上昇の開始をユーザに体感させることができる。例えば手HLの上昇時に、HMD200の表示画像だけしか変化させない比較例の手法では、ユーザの3D酔いを引き起こしてしまうおそれがある。3D酔いとは、例えば立体感のある動きの激しい映像を見続けることで、めまいなどの乗り物酔いのような症状を起こすことである。この点、本実施形態では手HLの上昇に連動して、エアバネ部44〜47を用いて上昇時の揺れをユーザに体感させているため、上記の比較例の手法に比べてユーザの3D酔いの発生を抑制できる。
また本実施形態では、敵ロボットERBからの弾丸やアスファルトの破片等がロボットRBに当たると、その衝撃による揺れや傾きが、エアバネ部44〜47を用いて表現される。ユーザは図2に示すように、ロボットRBの指THに対応するホールド部60にしがみつくことで、この揺れや傾きによりシート52から落ちないようにする。
また図11(B)のように敵ロボットERBの斧ESWとロボットRBの剣SWのつばぜり合いになった場合に、そのつばぜり合いよる火花の画像がHMD200に表示されると共に、つばぜり合い時に発生する熱等が、ハロゲンヒータ48を用いて表現される。即ち、つばぜり合い時に、ハロゲンヒータ48を用いて熱風をユーザにあてることで、つばぜり合い時に発生する熱や火花を、ユーザに感じさせることが可能になる。従って、HMD200の画像だけによる仮想体験に比べて、ユーザの仮想現実感を大幅に向上できる。
このように本実施形態では、ユーザがエリアAR1にいる場合には、第1の体感装置11である振動モータ40、トランスデューサ41、42を用いて、弾丸やアスファルト片や足踏みによる衝撃等の仮想体験が可能になる。そしてエリアAR1では、敵からの攻撃によりユーザをパニック状態に陥らせるためのゲーム処理が行われる。従って、このような弾丸等による衝撃を体感させる第1の仮想体験処理は、エリアAR1のゲーム処理に適した仮想体験処理になる。
またユーザがエリアAR2にいる場合には、第2の体感装置12であるエアバネ部44〜47やハロゲンヒータ48を用いて、昇降時や敵からの攻撃時における手HLの揺れや、つばぜり合い時の熱等の仮想体験が可能になる。そしてエリアAR2では、ロボットRBの手HLに乗って、巨大ロボット間の迫力のある対戦をユーザに体感させるためのゲーム処理が行われる。従って、このような揺れや熱を体感させる第2の仮想体験処理は、エリアAR2のゲーム処理に適した仮想体験処理になる。
このように本実施形態では、各エリアのゲーム処理に適した仮想体験処理を行っているため、各エリアに応じたより好適な仮想現実をユーザに体感させることが可能になる。またユーザがいるエリアに応じて仮想体験処理の内容が異なるようになるため、より多様な仮想現実をユーザに体感させることが可能になる。
また本実施形態では図15(A)に示すように、ユーザ(PL)がエリアAR1に位置している時にゲーム処理を開始する。そして図15(B)、図16(A)に示すようにユーザがエリアAR2に移動し、図16(B)に示すようにエリアAR2からエリアAR1に戻った後に、ゲーム処理を終了する。例えばユーザがエリアAR1に位置している時に、図8(A)に示すようなゲーム画像が表示されて、エリアAR1でのゲーム処理(第1のゲーム処理)が開始する。エリアAR1でのゲーム処理では、図8(A)、図8(B)に示すように味方のロボットRBや敵ロボットERBが出現したり、図9(A)、図9(B)、図10(A)に示すように、ロボットRBがユーザ側に近づいて来て、手HLを下ろして地面につけるというようにゲームが進行するゲーム処理が行われる。なおこの際に、後述の図18(A)、図18(B)のようにユーザからのインタラクティブな操作情報を受け付けて、当該操作情報に基づいてゲームを進行させてもよい。
そして図15(B)、図16(A)に示すようにユーザがエリアAR1からエリアAR2に移動すると、エリアAR2でのゲーム処理(第2のゲーム処理)が開始する。エリアAR2でのゲーム処理では、図10(B)〜図12(B)に示すように、ユーザが乗ったロボットRBの手HLが上昇し、手HLにユーザが乗った状態で、ロボットRBと敵ロボットERBとの間で対戦が行われ、敵ロボットERBが破壊されるというようにゲームが進行するゲーム処理が行われる。そして図13(A)に示すようにロボットRBの手HLが下ろされ、ユーザがエリアAR2に戻り、図13(B)に示すようにロボットRBが元の位置に戻ると、ゲームの終了となる。
このようにすれば、ユーザはエリアAR1でゲームプレイを開始し、エリアAR1に対応するゲームを、第1の体感装置11による仮想体験を体感しながら楽しむことができる。そしてユーザがエリアAR2に移動すると、今度は、エリアAR2に対応するゲームを、第2の体感装置12による仮想体験を体感しながら楽しむことができる。そしてエリアAR2のゲームの終了後、エリアAR1に戻ることで、一連のゲームが終了するようになる。従って、ユーザのエリア間の移動に応じて、ゲームの内容や仮想体験の内容が異なるようになり、これまでにないタイプの仮想体験のゲームを実現することが可能になる。
また本実施形態では、ユーザの移動の検知処理を行い、検知処理の結果に基づいてユーザがエリアAR1とエリアAR2のいずれのエリアにいるのかを判断して、第1の仮想体験処理又は第2の仮想体験処理を行う。例えば図15(B)に示すようなエリアAR1からエリアAR2へのユーザの移動の検知処理が行われる。この検知処理は、センサによる自動検知処理であってもよいし、施設のオペレータがユーザの移動を確認してゲーム進行ボタンを操作した場合に、このゲーム進行ボタンからの検出信号に基づいて、ユーザがエリアAR2に移動したと判断してもよい。そしてユーザがエリアAR1にいる間は、第1の仮想体験処理を行い、ユーザがエリアAR2に移動したことが検知された場合には、第2の仮想体験処理を行う。このようにすれば、例えばユーザがエリアAR1にいるのに、エリアAR2のゲーム処理や第2の仮想体験処理が行われてしまったり、ユーザがエリアAR2にいるのに、エリアAR1のゲーム処理や第1の仮想体験処理が行われてしまう事態を防止できる。従って、適正なゲーム処理や仮想体験処理の実行が可能になる。
また本実施形態では図15(B)に示すように、エリアAR1とエリアAR2の境界BDをユーザに報知するための報知情報の出力処理を行う。例えばユーザがエリアAR1から境界BDを越えてエリアAR2に移動しようとした場合に、音、振動又は光などによるアラート情報を、報知情報として出力する。また図10(A)に示す柵BAを、エリアAR1とエリアAR2の境界BDに対応する位置に表示する。
例えば図8(A)〜図9(B)に示すようなエリアAR1に対応するゲーム処理が行われている時に、ユーザがエリアAR2に移動してしまうと、エリアAR2のライド部50にぶつかってしまったり、ゲーム進行に不具合や矛盾が生じてしまうおそれがある。
この点、エリアAR1とエリアAR2の境界BDをユーザに報知するためのアラート情報を出力したり、図10(A)に示すように、境界BDに対応する仮想空間の位置に柵BAなどの表示物を表示すれば、ユーザがライド部50にぶつかったり、ゲーム進行に不具合や矛盾が生じてしまう事態を効果的に防止できる。
また本実施形態では図16(A)に示すように、ユーザがエリアAR2のプレイポジションPPL2についたことを条件に、エリアAR2でのゲーム処理を進行させる。例えば図2においてユーザが、エリアAR2のライド部50のプレイポジションPPL2に着座したことを条件に、エリアAR2でのゲーム処理を開始して進行させる。
例えばユーザがライド部50のプレイポジションPPL2に適正に着座していないのに、エリアAR2でのゲーム処理(第2の仮想体験処理)が開始してしまうと、ユーザがライド部50から落ちてしまったり、ゲーム処理に不具合や矛盾が発生する問題が生じてしまう。
この点、ユーザがエリアAR2のプレイポジションPPL2についたことを条件に、エリアAR2でのゲーム処理(第2の仮想体験処理)を進行させれば、このような問題の発生を防止できる。この場合に、ユーザがエリアAR2のプレイポジションPPL2についたか否かは、センサ等を用いた自動検知処理により実現してもよい。或いは施設のオペレータが、ユーザがプレイポジションPPL2についたことを確認してゲーム進行ボタンを操作した場合に、このゲーム進行ボタンからの検出信号に基づいて、ユーザがプレイポジションPPL2についたと判断するようにしてもよい。
また図17に示すように、エリアAR1、エリアAR2は、例えばシミュレーションシステムの筐体30に設定されるエリアである。例えばエリアAR1、エリアAR2は、筐体30での分割エリアである。例えば図17においてエリアAR1、AR2は繋がったエリアになっており、ベース部31上のエリアである。このようにすれば、ユーザは、筐体30上(ベース部31上)でエリアAR1とエリアAR2の境界を跨いで行き来できるようになる。
また本実施形態では図17に示すように、HMD200と処理装置10との間で信号を伝送するケーブル20が設けられている。このケーブル20は、例えば映像信号や音声信号を伝送する。例えばケーブル20は差動信号により信号を伝送する。具体的には小振幅(例えば数百mV)の差動信号によりデジタル信号を伝送する。例えばケーブル20は、映像信号や音声信号(オーディオ信号)などを伝送する第1の信号線を含む。またケーブル20は、コンピュータである処理装置10と、周辺機器であるHMD200を接続するための第2の信号線や、HMD200に電源供給するための電源線を含んでもよい。第1の信号線は例えばHDMI規格(HDMIは登録商標。以下、同様)の信号線である。第2の信号線は例えばUSB規格の信号線である。
そして本実施形態では図17に示すよう、ケーブル20の経由点TPが、エリアAR1でのユーザのプレイポジションPPL1とエリアAR2でのユーザのプレイポジションPPL2の間の領域に設けられている。例えば処理装置10からのケーブル20はガイド部22によりガイドされて経由点TPの位置から取り出される。ケーブル20は例えば経由点TP(固定点)において固定具(不図示)により固定される。そして経由点TPからのケーブル20がHMD200に接続される。経由点TPは、例えばユーザの頭部の高さと想定される位置よりも高い位置に設定される。この高さは、基準姿勢(例えば立ち姿勢、ライド姿勢、着座姿勢)をとっているユーザがHMD200を装着している状態での頭部の高さである。そして筐体30を上方側から見た平面視(図4のA2)において、経由点TPは、エリアAR1のプレイポジションPPL1とエリアAR2のプレイポジションPPL2の間の領域に設定されている。
このように本実施形態では、処理装置10からのケーブル20が、ガイド部22(構造物。筐体上の部材)に設定された経由点TP(中継点)を経由して、HMD200に接続される。そして、このようなケーブル20の経由点TPが、エリアAR1のプレイポジションPPL1とエリアAR2のプレイポジションPPL2の間に設けられている。
例えば、HMD200はユーザの視界を覆うように装着されているため、VR空間(仮想空間)の映像を見ているユーザは、実世界のケーブル20を視覚的に認識することが難しい。特にユーザの視界を完全に覆う非透過型のHMDでは、ユーザは実世界のケーブル20を見ることができない。
このような状態においてHMD200のケーブル20が、ユーザの手、足等に絡まってしまうと、VR世界を楽しんでいるユーザの仮想現実感を損ねてしまったり、安全上、好ましくない事態が生じるおそれがある。
そして本実施形態では、ユーザはエリアAR1とエリアAR2を行き来してゲームを楽しむ。従って、ユーザがエリアAR1やエリアAR2でゲームをプレイしたり、エリアAR1とエリアAR2の間で移動した場合に、ケーブル20がユーザの手、足等に絡まってしまうのは好ましくない。
この点、本実施形態では、ケーブル20の経由点TPが、エリアAR1のプレイポジションPPL1とエリアAR2のプレイポジションPPL2の間の領域に設けられている。そして図1に示すようにユーザがエリアAR1でゲームをプレイしている場合にも、或いは図2に示すようにエリアAR2でゲームをプレイしている場合にも、経由点TPとHMD200の間のケーブル部分が弛んだ状態になるように、ケーブル20の長さを設定している。従って、ユーザがエリアAR1やエリアAR2でゲームをプレイしたり、エリアAR1とエリアAR2の間で移動した場合にも、ケーブル20がユーザの手、足等に絡まってしまうのを効果的に抑制できるようになる。また本実施形態では、筐体30に設けられる構造物であるガイド部22を利用して、ケーブル20の経由点TPを設定し、ケーブル20を、この経由点TPを経由してHMD200に接続している。従って、シミュレーションシステムの全体の設置面積を小さくでき、システムの低コスト化等を図れる。
なお本実施形態では、エリアAR1、AR2の少なくとも一方のエリアに、ユーザの操作部を設けてもよい。例えば図18(A)ではエリアAR1に操作部161が設けられ、エリアAR2に操作部162が設けられている。これらの操作部161、162は、ユーザがゲームプレイ等のための操作情報を入力するためのものであり、例えば操作ボタン、方向指示キー、ジョイスティック、ハンドル、ペダル、スイッチ、又はレバー等の種々の操作デバイスにより実現できる。そしてユーザは、エリアAR1でゲームをプレイしている場合には、操作部161を用いて操作情報を入力し、エリアAR2でゲームをプレイしている場合には、操作部162を用いて操作情報を入力する。
この場合に本実施形態では、操作部161や操作部162に対応する操作表示物の画像を含む表示画像を、HMD200に表示する。図18(B)は操作表示物の一例である。図18(B)では、操作表示物である操作レバーLVL、LVRやディスプレイDISが表示されている。またユーザに対応する仮想ユーザの手HPL、HPRの画像が表示される。図18(B)の操作表示物は、例えばロボットを操作するためのものであり、ディスプレイDISには、ロボットのステータス情報やロボットが装着している武器の情報などが表示される。また現実世界のユーザが操作部161又は操作部162を操作すると、それに連動して、仮想世界の仮想ユーザの手HPL、HPRが操作レバーLVL、LVRを操作する様子が表示される。これにより、あたかも本物のロボットを操作しているかのような感覚をユーザに与えることができ、ユーザの仮想現実感を大幅に向上できる。なおユーザは、左側、右側の操作レバーLVL、LVRに対応する現実世界の操作レバーに設けられたトリガーボタンを押すことで、ランチャーのミサイルやキャノン砲の弾丸を発射することができるようになっている。
このようにエリアAR1、AR2に操作部161、162を設け、操作部161、162に対応する操作表示物を仮想世界に登場させることで、ユーザのインタラクティブな操作情報の入力が可能になる。これにより、ユーザの仮想現実感やゲームの面白さを更に向上することが可能になる。
2.3 構造物に対応する表示物の移動処理
本実施形態では、現実世界の構造物に対応する表示物を、仮想空間に出現させ、出現した表示物の画像を含む表示画像をHMD200に表示している。具体的には、ゲーム開始後、現実世界の構造物の設置位置に対応する仮想空間の位置に、構造物に対応する表示物を移動する処理を行い、移動する表示物の画像を含む表示画像を、HMD200に表示する。
例えば図19のC1に、構造物の一例であるライド部70の構成例を示す。このライド部70は図1、図2のライド部50に相当する。ライド部70は、シート71、ホールド部72、基台80、エアバネ部81、82、83を有する。シート71は、ユーザが着座するものであり、ホールド部72は、着座したユーザが両手で抱き締めるように保持するものである。エアバネ部81、82、83は、基台80とシート71の間に設けられ、シート71を揺らしたり、傾けるための駆動を行う。なお、実際にはシート71の下方の四隅に4つのエアバネ部が設けられているが、4個目のエアバネ部については図示を省略している。
そして図19のC2では、構造物であるライド部70に対応する表示物はHMD200に表示されていない。一方、図20のC3では、ライド部70に対応する表示物である手HLがHMD200に表示されている。即ち、現実世界の構造物であるライド部70に対応する表示物である手HLを、仮想空間に出現させ、出現した手HLの画像を含む表示画像を表示する。具体的には、現実世界のライド部70の設置位置PSに対応する仮想空間の位置PVに、手HLを移動する処理を行い、移動する手HLの画像を含む表示画像を表示する。
例えば図19のC2では、ライド部70に対応する手HLは、ライド部70の設置位置PSに対応する仮想空間の位置PVに配置されていない。そして図20のC3では、ライド部70の設置位置PSに対応する仮想空間の位置PVに、手HLが移動して、HMD200に表示されている。この手HLの移動は、図9(A)、図9(B)の位置から図10(A)の位置への移動である。図10(A)において手HLが配置されている仮想空間の位置が、現実世界のライド部70の設置位置に対応する位置になる。
このようにすれば、初めは図19のC2に示すようにHMD200の表示画像に存在していなかったロボットの手HLが、図20のC3に示すように仮想空間の位置PVに移動することで、HMD200の表示画像に出現して表示されるようになる。そして、このように手HLが出現した後、図21のC4に示すように、ユーザPLが、構造物であるライド部70に搭乗することで、C5に示すように、ユーザPLに対応する仮想ユーザVPLが、ライド部70に対応する表示物である手HLの上に乗ることが可能になる。
従って、本実施形態の手法によれば、ユーザは、現実世界のライド部70に搭乗することで、あたかも仮想世界の手HLの上に乗ったかのような仮想現実を体験できるようになる。またライド部70に対応する表示物である手HLは、常にユーザの目の前に存在するわけではなく、所定のイベント等が発生した場合に、仮想空間の位置PVに移動して、ユーザの目の前に現れるようになる。従って、これまでにないタイプの仮想現実をユーザに体感させることが可能になる。
また本実施形態では、仮想空間での表示物の位置を、現実世界での構造物の設置位置に対応させるための調整処理を行う。例えば図21において、仮想空間での表示物である手HLの位置PVを、現実世界での構造物であるライド部70の設置位置PSに対応(一致)させるための調整処理を行う。このような調整処理は、前述のルームセットアップ処理などにより実現できる。
図22は本実施形態の移動処理等の詳細例を示すフローチャートである。まず、仮想空間での表示物の位置を、現実世界での構造物の設置位置に対応させるための調整処理を行う(ステップS1)。例えば図21の手HLの位置PVとライド部70の設置位置PSを一致させるためのルームセットアップ処理等を行う。そしてゲームが開始したか否かを判断し(ステップS2)、ゲームが開始した場合には、構造物に対応する表示物の移動イベントが発生したか否かを判断する(ステップS3)。そして移動イベントが発生した場合には、仮想空間での表示物の移動処理を行い(ステップS4)、構造物の設定位置に対応する位置に表示物が移動した場合に、処理を終了する(ステップS5)。例えば図20、図21において、ライド部70に対応する手HLの移動処理を行い、手HLが位置PVに移動したら、処理を終了する。
このように本実施形態では、仮想空間での表示物の位置を現実世界での構造物の設置位置に対応させるための調整処理を行っている。このようにすれば、ユーザは、HMD200を介して手HLの画像を見ながら、その手の平PAに座ることで、現実世界においても、手HLに対応するライド部70に適正に着座することが可能になる。従って、現実世界のライド部70に対応する手HLを仮想空間に出現させて、その手HLの上に乗るというような仮想現実の処理を、適正に実現できるようになる。
また本実施形態では、現実世界の構造物に、ユーザが装着するHMD200との干渉を回避するための逃げ部を設けている。例えば図23に示すように、構造物であるライド部70のホールド部72には、ユーザPLが装着するHMD200との干渉を回避するための逃げ部73が設けられている。この逃げ部73は、例えばホールド部72の先端部に設けられた切り欠き部により実現できる。
このような逃げ部73を設ければ、ライド部70に搭乗したユーザ(PL)のHMD200が、手HLの指THに対応するホールド部72に干渉して、HMD200がずれたり、外れてしまうなどの事態が生じるのを効果的に防止できる。例えばユーザはその視界を覆うようにHMD200を装着しているため、ユーザの目には仮想空間での手HLや指THの画像しか見えていない。従って、このような逃げ部73を設けないと、ユーザがホールド部72を抱き締めた際に、HMD200がホールド部72に当たって、HMD200がずれたり、外れてしまうおそれがある。
この点、本実施形態では、ホールド部72に逃げ部73を設けているため、ユーザが顔をホールド部72の方に近づけたとしても、逃げ部73が存在することで、HMD200との干渉が避けられ、HMD200がずれたり、外れてしまうなどの事態を効果的に防止できるようになる。
3.詳細な処理
次に本実施形態のシミュレーションシステムの詳細な処理例について図24のフローチャートを用いて説明する。
まず、ユーザがエリアAR1のプレイポジションPPL1についたか否かを判断する(ステップS11)。そしてプレイポジションPPL1についた場合には、ゲームを開始するか否かを判断する(ステップS12)。そしてゲームが開始された場合には、ゲーム進行処理と第1の仮想体験処理を実行する(ステップS13)。例えば図14(A)、図15(A)に示すように、エリアAR1でのゲーム進行処理と、第1の体感装置11を用いた第1の仮想体験処理を実行する。
次に、ユーザがエリアAR2に移動して、エリアAR2のプレイポジションPPL2についたか否かを判断する(ステップS14)。例えば図15(B)で説明したような検知処理を行うことで、エリアAR2への移動等を検知する。そしてプレイポジションPPL2についた場合には、エリアAR2でのゲーム進行処理と第2の仮想体験処理を実行する(ステップS15)。例えば図14(B)、図16(A)に示すように、エリアAR2でのゲーム進行処理と、第2の体感装置12を用いた第2の仮想体験処理を実行する。
次に、ユーザがエリアAR1に戻ったか否かを判断する(ステップS16)。そしてエリアAR1に戻った場合には、ゲーム進行処理と第1の仮想体験処理を実行する(ステップS17)。そしてゲームを終了するか否かを判断し(ステップS18)、ゲームを終了する場合には一連の処理を終了する。
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語(構造物、表示物、移動体、アクチュエータ、ヒータ等)と共に記載された用語(ライド部・ガイド部、手、ロボット、エアバネ部・電動シリンダ、ハロゲンヒータ等)は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また、シミュレーションシステムの構成、筐体の構成、処理装置の構成、体感装置の構成、HMDの構成、HMDのトラッキング処理、HMDの表示画像の表示処理、仮想体験処理、移動処理等も、本実施形態で説明したものに限定されず、これらと均等な手法・処理・構成も本発明の範囲に含まれる。また本発明は種々のゲームに適用できる。また本発明は、業務用ゲーム装置、家庭用ゲーム装置、又は多数のユーザが参加する大型アトラクションシステム等の種々のシミュレーションシステムに適用できる。