以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
1.システム構成
図1に本実施形態のシミュレーションシステム(シミュレータ、ゲームシステム)のシステム構成例を示す。本実施形態のシミュレーションシステムは例えばバーチャルリアリティ(VR)をシミュレートするシステムであり、ゲームコンテンツを提供するゲームシステム、スポーツ競技シミュレータや運転シミュレータなどのリアルタイムシミュレーションシステム、映像等のコンテンツを提供するコンテンツ提供システム、遠隔作業を実現するオペレーティングシステムなどの種々のシステムに適用可能である。
図1に示すように本実施形態のシミュレーションシステムは、ユーザPL(プレーヤ)が装着するHMD200(頭部装着型表示装置)と、処理装置10と、可動筐体40を含む。なお、本実施形態のシミュレーションシステムは図1の構成に限定されず、その構成要素(各部)の一部(例えば移動部、構造物)を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
HMD200は、ユーザPLが頭部に装着するものであり、画像が表示される表示部や、ユーザPLの位置(視点位置)、方向(視線方向)、或いは姿勢等を検出するためのセンサ部や、各種の処理を行う処理部などを含むことができる。HMD200の詳細については後述する。
可動筐体40(広義には筐体)は、例えばアーケード筐体などと呼ばれるものであり、シミュレーションシステムの装置の外殻となるものであり、箱状である必要はない。可動筐体40は、ロボットゲームや車ゲームや飛行機ゲームなどにおけるコックピット筐体(体感筐体)であってもよいし、カードゲーム筐体などであってもよい。可動筐体40は、シミュレーションシステムの本体部分であり、シミュレーションシステムを実現するための種々の機器、構造物が設けられる。可動筐体40には、少なくともプレイ位置PPLが設定されている。
処理装置10は、各種の処理を行う装置である。処理装置10としては、例えばパーソナルコンピュータ(PC)、業務用ゲーム装置又は家庭用ゲーム装置などの種々の装置を採用できる。処理装置10は、映像コンテンツを提供する映像機器であってもよい。
また処理装置10は、プロセッサ(CPU、MPU等)やメモリ(ROM、RAM等)などの各種のデバイス(IC)が実装されるシステム基板(回路基板、ゲーム基板)であってもよい。この場合には、当該システム基板は例えば可動筐体40内に内蔵される。システム基板に設けられたプロセッサは、メモリに記憶されたプログラムやデータなどに基づいて、各種の処理を実行する。
処理装置10は、例えばゲーム処理(シミュレーション処理)などの各種の処理を実行する。例えば処理装置10は、操作部160により入力されたユーザPLの操作情報に基づいて、ゲーム処理(シミュレーション処理)を行う。そして処理装置10はゲーム処理の結果(ゲーム状況)に応じた画像を生成し、生成された画像が表示部190に表示される。例えば操作部160からのユーザPLの操作情報の信号は、ケーブル20を介して処理装置10に伝送される。処理装置10は、この操作情報等に基づいてゲーム処理を行い、画像(音)の生成処理を行う。そして生成された画像(音)の信号は、ケーブル20を介して表示部190に伝送される。
また処理装置10は、HMD200のトラッキング処理により得られたトラッキング情報に基づいて、HMD200に表示される画像を生成する。例えば図1では、HMD200のトラッキング処理を行うためのステーション90が設置されており、このステーション90には少なくとも1つの発光素子92が設けられている。また、後述するようにHMD200には、フォトダイオード等により実現される少なくとも1つの受光素子(不図示)が設けられている。そしてステーション90の発光素子92からの光(レーザー等)を、HMD200に設けられた受光素子により受光することで、HMD200のトラッキング処理が実現される。処理装置10は、HMD200のトラッキング処理によるトラッキング情報を取得する。トラッキング情報は、例えばHMD200の位置及び方向の少なくとも一方を含む情報である。HMD200の位置、方向は、ユーザPLの視点位置、視線方向に対応する。このトラッキング情報を用いることで、ユーザPLの視点位置や視線方向に応じた画像を生成して、HMD200に表示できるようになる。例えば現実世界のユーザPLが右方向や左方向に視線を向けたとする。この場合には、仮想空間における仮想ユーザが右方向や左方向に視線を向けた場合に見えるVR空間の画像が、HMD200に表示されるようになる。また現実世界のユーザPLが上方向や下方向に視線を向けたとする。この場合には、仮想空間における仮想ユーザが上方向や下方向に視線を向けた場合に見えるVR空間の画像が、HMD200に表示されるようになる。
可動筐体40は、ライド部60、移動部70、ベース部52を含むことができる。またベース部52の下方に対向するように設けられる底部50や、底部50に設けられ、ベース部52を回動自在に支持する支持部56を含むことができる。更にケーブル20の経由点が設定される構造物30を含むことができる。
ライド部60、移動部70はベース部52に設けられる。ライド部60は、ユーザPLが座るシート62を有する。ユーザPLは、シート62に座って、ゲームをプレイする。なおライド部60は、ユーザPLがまたがったり、立ち姿勢で立つような物であってもよい。
移動部70には、ユーザにより操作される操作部160が設けられている。移動部70は例えばユーザPLのインターフェース部となるものである。なお移動部70に、表示部、カードリーダ、コイン投入口又はコイン払い出し口などを設けてもよい。
また移動部70には、位置及び方向の少なくとも一方を検出するセンサ部80が設けられている。センサ部80は、少なくとも1つの受光素子82を有する。そして、前述したHMD200のトラッキング処理と同様に、ステーション90の発光素子92からの光を、センサ部80の受光素子82で受光することで、センサ部80の位置及び方向の少なくとも一方の検出が可能になる。これにより、例えばプレイ位置PPLやその変化成分の検出が可能になる。
移動部70は、操作部160を支持する支持部72を有し、操作部160は、この支持部72により支持されて、ユーザPLの目の前に配置されるようになる。図1では操作部160は操作レバーにより実現されている。但し、操作部160は、これには限定されず、操作ボタン、方向指示キー、ハンドル、ペダル又はジョイスティック等の各種の操作デバイスにより実現されるものであればよい。
また図1では、移動部70は、ライド部60にライドしているユーザPLに対して所与の方向DRAに移動可能に、可動筐体40に設けられている。例えば操作部160は、ユーザPLの前方側に位置するように、移動部70の支持部72に支持されている。そして移動部70は、この前方方向に沿った方向である方向DRAで、移動自在となるように可動筐体40に設けられている。
具体的には可動筐体40のベース部52には、レール部54が設けられている。移動部70のベース部52側の面(裏面)には、レール部54に対応する位置に溝部(不図示)が設けられている。そして、当該溝部とレール部54が嵌合することで、レール部54のガイド方向である方向DRAに沿って、移動部70が移動可能になる。移動部70の方向DRAでの移動は、シミュレーションシステムのオペレータ等による手動で行われるものであってもよいし、モータ、電動シリンダ等のアクチュエータを用いた自動制御で、移動部70が方向DRAで移動するようにしてもよい。
例えばユーザPLの体格には個人差があると共に、最適と感じるプレイポジションも、ユーザPLごとに異なる。この点、図1の構成によれば、移動部70が方向DRAで移動自在となることで、操作部160等の配置が、各ユーザPLにとって最適になるように、プレイポジションを調整することが可能になる。例えば体格が小さいユーザPLであれば、移動部70を手前側に移動させ、体格が大きいユーザPLであれば、移動部70を奥側に移動させる。また、操作部160が近くに配置されるプレイポジションを望むユーザPLの場合には、移動部70を手前側に移動させ、操作部160が遠くに配置されるプレイポジションを望むユーザPLの場合には、移動部70を奥側に移動させる。こうすることで、各ユーザPLにとって適切なポジションとなるようにプレイポジションを調整できるようになる。
また可動筐体40は、ユーザPLのプレイ位置PPLの周辺に設けられ、ケーブル20の経由点TPが設定される構造物30を有する。そして処理装置10からのケーブル20は、構造物30の経由点TPを経由してHMD200に接続される。
ケーブル20は、HMD200と処理装置10との間での信号を伝送するためのものであり、例えば映像信号や音声信号を伝送する。例えばケーブル20は差動信号により信号を伝送する。具体的には小振幅(例えば数百mV)の差動信号によりデジタル信号を伝送する。例えばケーブル20は、映像信号や音声信号(オーディオ信号)などを伝送する第1の信号線を含む。またケーブル20は、コンピュータである処理装置10と、周辺機器であるHMD200を接続するための第2の信号線や、HMD200に電源供給するための電源線を含んでもよい。第1の信号線は例えばHDMI規格(HDMIは登録商標。以下、同様)の信号線である。第2の信号線は例えばUSB規格の信号線である。なお、ケーブル20を用いずに、例えば無線通信によりHMD200と処理装置10との間での信号の送受信を行ってもよい。
構造物30は、少なくとも1つの部材により形成される物体(工作物)である。そして構造物30には、ケーブル20の経由点TPが設定され、処理装置10からのケーブル20は、構造物30の経由点TPを経由してHMD200に接続される。例えばHMD200のケーブル接続点CPに接続される。またケーブル20は例えば経由点TP(固定点)において固定具等により固定される。
例えば図1のように、HMD200はユーザPLの視界を覆うように装着されているため、VR空間(仮想空間)の映像を見ているユーザPLは、実世界のケーブル20を視覚的に認識することが難しい。特にユーザの視界を完全に覆う非透過型のHMDでは、ユーザPLは実世界のケーブル20を見ることができない。
このような状態においてHMD200のケーブル20が、ユーザPLの手、足、又は首等に触ったり、絡まってしまうと、VR世界を楽しんでいるユーザPLに対して、実空間のケーブル20が触っているという感覚が伝わってしまい、ユーザPLの仮想現実感を損ねてしまうおそれがある。またケーブル20がユーザPLの首又は足等に絡まってしまうのは、安全上、好ましくない。
この点、図1では、可動筐体40に設けられる構造物30を利用して、ケーブル20の経由点TPを設定し、ケーブル20を、この経由点TPを経由してHMD200に接続している。従って、可動筐体40とは異なる場所に、ケーブル20を上方から牽引するクレーン機構のような大がかりな装置を設置しなくても済むようになる。これにより、シミュレーションシステムの全体の設置面積を小さくでき、システムの低コスト化等を図れる。
また本実施形態では、可動筐体40を設けることで、ユーザPLのプレイ位置PPLを変化させているが、図1では、経由点TPが設定されている構造物30も、可動筐体40上に設けられているため、プレイ位置PPLと同じ方向に経由点TPの位置も変化する。従って、可動筐体40によりプレイ位置PPLが変化した際に、ユーザPLと経由点TPとの間の相対的な位置関係の変化を最小限に抑えることができ、ケーブル20に強いテンションがかかってしまうのを防止できる。従って、ケーブル20への強いテンションが原因となって、HMD200がずれたり、外れたり、仮想現実感を損なってしまうなどの事態が発生するのを効果的に防止できる。
2.可動筐体
次に可動筐体40について詳細に説明する。可動筐体40は、ユーザPLのプレイ位置PPLを変化させる筐体である。例えば可動筐体40は、処理装置10でのゲーム処理の結果(ゲーム状況)に応じてユーザPLのプレイ位置PPLを変化させる。
例えば処理装置10は、ユーザPLがプレイするゲームのゲーム処理として、仮想現実のシミュレーション処理を行う。仮想現実のシミュレーション処理は、実空間での事象を仮想空間で模擬するためのシミュレーション処理であり、当該事象をユーザPLに仮想体験させるための処理である。例えば実空間のユーザPLに対応する仮想ユーザが搭乗する搭乗移動体(或いは仮想ユーザ)を、仮想空間で移動させたり、移動に伴う環境や周囲の変化をユーザPLに体感させるための処理を行う。そして可動筐体40は、ゲーム処理であるシミュレーション処理の結果に基づいてプレイ位置PPLを変化させる。例えば仮想ユーザの搭乗移動体(或いは仮想ユーザ)の仮想空間での移動処理の結果等に基づいて、プレイ位置PPLを変化させる。例えば後述するロボットゲームでは、ロボットの移動の際の加速や減速や方向の変化に伴う加速度を、ユーザPLに体感させるためのシミュレーション処理として、プレイ位置PPLを変化させる処理を行う。或いは敵からの弾丸やミサイルなどのショットがロボットにヒットした場合に、そのショットによる衝撃をユーザPLに体感させるためのシミュレーション処理として、プレイ位置PPLを変化させる処理を行う。
プレイ位置PPLは、仮想現実(VR)のシミュレーションゲームをプレイする際にユーザPLが位置するプレイポジションである。例えばプレイ位置PPLは、ユーザPLのライド部60のライド位置である。図1のようにユーザPLが、ライド部60であるシート62(椅子)に座って、仮想現実のシミュレーションゲームをプレイしている場合には、プレイ位置PPLは例えばシート62のライド位置である着座位置である。ユーザPLが、バイク、自転車、又は馬などの乗り物や動物を模擬したライド部60にまたがっている場合には、プレイ位置PPLは、またがっている位置である。またユーザPLが立ち姿勢でシミュレーションゲームをプレイする場合には、プレイ位置PPLは、例えばライド部60での立ち位置である。
そして図1では、可動筐体40は、可動基準点MP(可動中心点)を基準(中心)にして、プレイ位置PPLを回転移動させる。具体的には不図示のアクチュエータ(電動シリンダ、モータ又はエアバネ等)により、可動基準点MPを基準にしてプレイ位置PPLを回転移動させる。なお、可動筐体40は、プレイ位置PPLを並進移動させるものであってもよい。
例えば図1において、鉛直方向をY軸方向とし、ユーザPLの向く方向をZ軸方向とし、Y軸方向とZ軸方向に直交する方向をX軸方向とする。この場合に可動筐体40は、可動基準点MPを基準にプレイ位置PPLがX軸回りに回転移動するピッチングの回転移動が行われるように、プレイ位置PPLを変化させる。或いは、可動基準点MPを基準にプレイ位置PPLがZ軸回りに回転移動するローリングの回転移動が行われるように、プレイ位置PPLを変化させる。或いは、プレイ位置PPLがY軸回りに回転移動するヨーイングの回転移動が行われるように、プレイ位置PPLを変化させる。
具体的には、可動筐体40は、ライド部60、移動部70等が設けられるベース部52を有する。ベース部52は、例えばXZ平面に面が広がる板状の部材である。そしてベース部52は、例えば処理装置10でのゲーム処理(シミュレーション処理)の結果に応じて、位置及び方向の少なくとも一方が変化する。例えば図1では、ベース部52は、ゲーム処理の結果(ゲーム状況)に応じて、その方向(姿勢)が変化するようになっている。
更に具体的には、可動筐体40はベース部52に対向するように設けられる底部50(広義にはベース部)と、ベース部52を支持する支持部56を有する。例えば支持部56は、底部50に取り付けられて、ベース部52を回動自在に支持する。例えば支持部56は、X軸回りに回動自在になるようにベース部52を支持する。これにより、可動基準点MPを基準としたプレイ位置PPLのピッチングの回転移動が実現される。また支持部56は、Z軸回りに回動自在になるようにベース部52を支持する。これにより、可動基準点MPを基準としたプレイ位置PPLのローリングの回転移動が実現される。また支持部56は、Y軸回りに回動自在になるようにベース部52を支持してもよい。これによりプレイ位置PPLのヨーイングの回転移動が実現される。
支持部56は例えばリンクボールなどの球面すべり軸受けの部材により実現される。図1では、可動基準点MPはリンクボールのボール部の中心点となっている。例えば可動基準点MPの位置は、可動筐体40を上方から見た平面視において、シート62の座面中心(広義にはライド中心)から前方側(ユーザPLが向く方向側)に所与の距離だけシフトした位置になっている。
なお可動筐体40による可動は、エアバネなどを用いて実現してもよい。例えば底部50(底部側のベース部)とベース部52の間に、1又は複数のエアバネ(広義には伸縮部)を配置する。例えば底部50とベース部52の間の四隅にエアバネを配置する。例えばマトリクス状に複数のエアバネを配置する。これらのエアバネは、エアコンプレッサやバブルを用いて空気の供給や排出が行われることで、Y軸方向(鉛直方向)において伸縮する。そして、複数のエアバネの各エアバネの伸縮量を制御することで、可動筐体40の可動を実現して、ゲーム処理の結果に基づきプレイ位置PPLを変化させる。
以上のように図1のシミュレーションシステムは、ユーザPLのプレイ位置PPLをゲーム処理の結果(ゲーム状況)に基づいて変化させることが可能な可動筐体40を有している。このように、プレイ位置PPL(ライド位置)を変化させることで、例えば仮想空間での仮想ユーザの搭乗移動体(ロボット)の移動等に伴う加速度の変化等を、ユーザPLに体感させることが可能になり、仮想現実感の向上を図れる。
また可動筐体40が、ゲーム処理の結果に基づいてユーザPLのプレイ位置PPLを変化させることで、いわゆる3D酔いを抑制することも可能になる。3D酔いとは、例えば立体感のある動きの激しい映像を見続けることで、めまいなどの乗り物酔いのような症状を起こすことである。仮想空間での事象の発生に応じて、プレイ位置PPLを変化させることで、このような3D酔いも、ある程度、抑制できる。
図2、図3に本実施形態により生成されるゲーム画像(VR画像)の例を示す。このゲーム画像は処理装置10により生成されて、HMD200に表示される。
本実施形態では図4(A)に示すように、ユーザPLに対応する仮想ユーザPLV(仮想プレーヤ)が、仮想空間内のロボットRBのコックピットCKPに搭乗して、敵ロボット等と対戦するロボットゲームのゲーム画像が生成される。ロボットRBの出撃時には、仮想世界において、図4(A)のフードFDが閉じられる。そしてユーザPL(仮想ユーザ)は、狭い空間のコックピットCKP内でロボットRBを操縦して、敵ロボット等と対戦するゲームを楽しむことになる。
図2、図3のゲーム画像に示すように、仮想世界のロボットRBの有視界式のコックピットCKPのフードFDには、ウィンドウWDが設けられており、ユーザPLは、このウィンドウWDを介して外界の様子を見ることができる。図2では、ウィンドウWD内には、敵ロボットERBや照準SGや戦闘フィールドのマップが表示されている。またユーザPLが操作するロボットRBの武器であるミサイルのランチャーLAA、キャノン砲CNBや、これらの武器の残り弾数を示す弾数アイコンSNA、SNBも表示されている。
照準SGは、HMD200を装着するユーザPLの視線(頭部、HMD)の動きに追従するように移動する。例えばユーザPLが右を向けば、ゲーム画像上の照準SGは右に移動し、左を向けば照準SGは左に移動する。ユーザPLは、照準SGの位置を敵ロボットERBの位置に移動し、ランチャーLAAやキャノン砲CNBにより攻撃することで、対戦ゲームを楽しむ。
ユーザPLが、頭部を頷くように下に向けて、視線を下に向けると、図3に示すようなゲーム画像が表示される。図3のゲーム画像では、ディスプレイDISや、操作レバーLVL、LVRや、仮想ユーザPLVの手HL、HRの画像が表示される。ディスプレイDISには、ロボットRBのステータス情報やロボットRBが装着している武器(ランチャー、キャノン砲)の情報などが表示される。また現実世界のユーザPLが操作部160(左用、右用の操作レバー)を操作すると、それに連動して、仮想世界の仮想ユーザPLVの手HL、HRが操作レバーLVL、LVRを操作する様子が表示される。これにより、あたかも本物のロボットを操作しているかのような感覚をユーザPLに与えることができ、ユーザPLの仮想現実感を大幅に向上できる。なおユーザPLは、左側、右側の操作レバーLVL、LVRに対応する現実世界の操作レバーに設けられたトリガーボタンを押すことで、ランチャーLAAのミサイルやキャノン砲CNBの弾丸を発射することができる。
このように本実施形態のシミュレーションシステムでは、ユーザPLの全周囲の方向に亘って、仮想空間であるVR(VirtualReality)空間の世界が広がる。例えばユーザPLが前方の正面側を向けば、図2のように仮想世界のロボットRBのコックピットCKPのフードFDに設けられたウィンドウWDを介して、敵ロボットERBや風景が見ることができる。またユーザPLが前方の下方側を向けば、図3のようにコックピットCKPに配置されたディスプレイDISや、仮想ユーザPLVが手HL、HRにより操作レバーLVL、LVRを操作している様子を見ることができる。従って、あたかも本物のロボットのコックピットに着座して、当該ロボットを操作しているというような感覚をユーザPLに与えることができ、ユーザPLの仮想現実感を大幅に向上できる。
そして図1に示すように、現実世界においてユーザPLは、移動部70を手前側に引き寄せてゲームをプレイする。また、移動部70の支持部72の形状は、ライド部60でのユーザPLの着座姿勢(広義にはライド姿勢)に沿った形状になっているため、現実世界でのユーザPLのプレイスペースも狭い空間になる。従って、図4(A)のように狭い空間のコックピットCKPに着座してロボットRBを操縦しているかのような感覚をユーザPLに与えることができ、仮想現実感の向上を図れるという利点がある。
なお、本実施形態のシミュレーションシステムにより実現されるゲームとしては、種々のゲームを想定できる。例えば本実施形態のシミュレーションシステムは、図2〜図4(B)のようなロボットゲームの他に、車、電車、飛行機、船又はバイク等の乗り物を運転するゲーム、スポーツ競技などの各種の競技を仮想体験するゲーム、ホラー体験ゲーム、RPGゲーム、アクションゲーム、クイズゲーム、競馬ゲーム、音楽ゲーム、又は恋愛等のコミュニケーションを仮想体験するゲームなどの種々のゲームに適用できる。
3.出力情報の変化処理、補正処理
本実施形態のシミュレーションシステムでは、可動筐体40によりユーザPLのプレイ位置を変化させることで、例えば仮想空間でのロボット(広義には搭乗移動体)の移動の際の加速や減速や方向の変化に伴う加速度を、ユーザPLに体感させている。
例えばユーザPLがロボットの移動を加速させる操作を行った場合には、その加速感を体感させるために、図5(A)に示すように、ユーザPLが後ろのめりになるようなピッチングの回転移動を行う。即ち図5(A)のC1に示すように、可動筐体40のベース部52を例えばX軸において反時計回りに回転させる回転移動を行う。この回転運動は、例えば回転移動のためのアクチュエータである電動シリンダ58のロッド部を短くする制御を行うことで実現できる。
またユーザPLがロボットの移動を減速させる操作を行った場合には、その減速感を体感させるために、図5(B)に示すように、ユーザPLが前のめりになるようなピッチングの回転移動を行う。即ち図5(B)のC2に示すように、可動筐体40のベース部52を例えばX軸において時計回りに回転させる回転移動を行う。この回転運動は、例えば電動シリンダ58のロッド部を長くする制御を行うことで実現できる。
図5(A)、図5(B)のC1、C2に示すように、ロボットの移動の際の加速感や減速感を体感させる可動筐体40の制御を行った場合に、何ら工夫を施さないと、図5(A)、図5(B)のD1、D2に示すように、HMD200の位置、方向も変化してしまう。即ち、可動筐体40によりユーザPLのプレイ位置(例えばライド位置)が変化することで、ユーザPLの視点位置、視線方向が変化し、HMD200の位置、方向も変化してしまう。そして図5(A)、図5(B)では、例えばステーション90の発光素子92からの光を、HMD200に設けられた受光素子(不図示)により受光することで、HMD200のトラッキング処理を実行して、トラッキング情報を取得している。このトラッキング情報は、HMD200の位置及び方向の少なくとも一方を含む情報である。そして本実施形態では、このトラッキング情報に基づいて、HMD200に表示される画像を生成している。従って、加速感や減速感の体感のために図5(A)、図5(B)のC1、C2に示すように、可動筐体40のベース部52が回転移動し、D1、D2に示すようにHMD200の位置、方向が変化すると、HMD200に表示される画像も変化してしまう。
例えば図6は、図5(A)のC1に示すように可動筐体40のベース部52が回転移動し、D1に示すようにHMD200の位置、方向が変化した場合に生成されるゲーム画像の例である。図5(A)のD1に示すようにHMD200の位置、方向が変化すると、仮想空間での仮想ユーザの視点位置、視線方向も変化してしまう。これにより、図2と図6を比べれば明らかなように、図6では、仮想ユーザの視線方向が上方向側に大きく変化したような画像が表示されるようになる。
また図7は、図5(B)のC2に示すように可動筐体40のベース部52が回転移動し、D2に示すようにHMD200の位置、方向が変化した場合に生成されるゲーム画像の例である。図5(B)のD2に示すようにHMD200の位置、方向が変化すると、仮想空間での仮想ユーザの視点位置、視線方向も変化してしまう。これにより、図2と図7を比べれば明らかなように、図7では、仮想ユーザの視線方向が下方向側に大きく変化したような画像が表示されるようになる。
例えばロボットの加速や減速の際に、可動筐体40により加速感や減速感をユーザPLに体感させることで、3D酔いの発生を、ある程度、抑制できる。しかしながら、可動筐体40の可動により、図6、図7に示すようにHMD200に表示される画像が頻繁に変化すると、この画像の変化が原因で、ユーザPLの3D酔いが発生してしまうおそれがある。
また本実施形態では、敵からの弾丸やミサイルなどのショットがロボットにヒットした場合に、可動筐体40を用いて、そのショットによる衝撃をユーザPLに体感させている。例えばショットのヒットによる衝撃を体感させるために、ロッド部が微少のストローク距離で直線運動するように電動シリンダ58を制御する。この場合にも、電動シリンダ58のロッド部が微少のストロークで長くなったり、短くなったりすることで、HMD200に表示される画像も細かく変化してしまい、ユーザPLの3D酔いを引き起こしてしまう。
また例えばロボットを右方向や左方向に曲げる操作をユーザPLが行った場合には、ベース部52をZ軸回りで回転させるローリングの回転移動が行われる。この場合に、このローリングによりユーザPLの頭部が左右に大きく振れてしまうと、図4(B)に示すように仮想空間の仮想ユーザPLVの頭部FAが、ロボットRBのコックピットCKP(フードFD)の外に出てしまうような事態が発生する。このような事態が発生すると、HMD200には、コックピットCKPの外側に仮想ユーザの頭部FAがある場合に見えるような不自然な画像が表示されてしまい、ユーザPLの仮想現実感を損ねてしまうという問題が発生する。
本実施形態では、このような問題の発生を防止するために、処理装置10は、可動筐体40によるプレイ位置の変化情報と、HMD200のトラッキング情報とに基づいて、ユーザPLに対して出力する出力情報を変化させる処理を行う。即ち、本実施形態では前述したように、処理装置10は、HMD200のトラッキング処理により得られた、HMD200の位置及び方向の少なくとも一方の情報であるトラッキング情報に基づいて、HMD200に表示される画像を生成している。そして処理装置10は、このトラッキング情報と、可動筐体40によるプレイ位置の変化情報(位置変化情報、方向変化情報)とに基づいて、ユーザPLに対して出力する出力情報を変化させる処理を行う。ここでプレイ位置の変化情報は、プレイ位置の変化成分(位置変化成分、方向変化成分)を特定することが可能な情報であればよく、プレイ位置そのものの情報である必要はない。またトラッキング情報は、例えばHMD200の位置及び方向の少なくとも一方を含む情報である。このHMD200の位置、方向はユーザPLの視点位置、視線方向に対応する。
具体的には処理装置10は、出力情報を変化させる処理として、HMD200に表示される画像を変化させる処理、及び、ユーザPLに対して出力する音を変化させる処理の少なくとも一方を行う。例えば、可動筐体40によるプレイ位置の変化情報が反映されるように、HMD200に表示される画像を変化させたり、ユーザPLに出力される音(ゲーム音、音声又はBGM等)を変化させる。
例えば、後述するような補正処理をHMD200のトラッキング情報に対して行うことで、HMD200に表示される画像を変化させる。また、例えばヘッドホンやスピーカなどの音出力部から出力されるサラウンド音を変化させる処理を行う。例えば、可動筐体40によるプレイ位置の変化情報により、HMD200の位置の補正処理が行われた場合には、補正処理後の位置において適切なサラウンド音が聞こえるように、ヘッドホンやスピーカなどの音出力部から出力される音の変化処理を行う。例えば、補正処理後の位置において適正な音場が形成されるようにする音処理を行うことで、音の変化処理を実現する。
より具体的には処理装置10は、可動筐体40によるプレイ位置の変化情報に基づいて、HMD200のトラッキング情報の補正処理を行うことで、出力情報を変化させる。即ち、トラッキング情報の補正処理を行うことで、HMD200に表示される画像を変化させたり、ヘッドホンやスピーカなどの音出力部から出力される音を変化させる。
例えば処理装置10は、補正処理として、トラッキング情報に含まれるHMD200の位置の情報(位置座標等)から、可動筐体40によるプレイ位置の変化成分を差し引く補正処理(相殺する処理、キャンセルする処理)を行う。別の言い方をすれば、処理装置10は、HMD200に表示される画像として、可動筐体40によるプレイ位置の変化成分の差し引き補正処理が行われた画像を生成する。なお、この差し引き補正処理は、プレイ位置の変化成分を完全に差し引く処理である必要はない。
例えば本実施形態では、処理装置10は、HMD200のトラッキング処理により得られたトラッキング情報に基づいて、HMD200に表示される画像を生成している。例えば図5(A)、図5(B)のC1、C2に示す可動筐体40の可動により、ユーザPLのプレイ位置が変化すると、D1、D2に示すようにHMD200の位置、方向が変化してしまう。このため、ステーション90の発光素子92からの光を、HMD200の受光素子が受光することで得られたトラッキング情報に含まれるHMD200の位置、方向の情報も変化してしまう。従って、このトラッキング情報をそのまま使って、画像を生成してしまうと、図6、図7に示すように上下に頻繁に変化する画像がHMD200に表示されてしまい、ユーザPLの3D酔いを引き起こしてしまう。
そこで本実施形態では、図5(A)、図5(B)で得られたHMD200のトラッキング情報を、そのまま用いるのではなく、トラッキング情報の補正処理を行うようにしている。例えば、トラッキング情報であるHMD200の位置の情報(位置座標等)から、可動筐体40によるプレイ位置の変化成分を差し引く補正処理を行う。
このようにすれば、可動筐体40によるプレイ位置の変化により、図5(A)、図5(B)のD1、D2のようにHMD200の位置、方向が変化した場合にも、HMD200に表示される画像は変化しないようになる。即ち、図6、図7のように上下に画像が変化してしまう事態の発生が防止されるため、ユーザPLの3D酔いの発生を効果的に抑制できるようになる。
また図4(B)のように仮想ユーザPLVの頭部FA等がコックピットCKPの外に出てしまい、不自然な画像が生成されてしまう事態も抑制できるようになる。
そして処理装置10は、プレイ位置の変化成分を差し引く補正処理が行われた後のHMD200の位置が、所与の範囲内に入らなかった場合に、HMD200に表示される画像のフェードアウト処理又はホワイトアウト処理を行ってもよい。例えばプレイ位置の変化成分を差し引く補正処理が行われた後の、HMD200の位置が、図4(A)、図4(B)のコックピットCKPを規定する所与の範囲内に入らなかった場合(収まらなかった場合)には、HMD200の表示画像のフェードアウト処理やホワイトアウト処理などを行う。こうすることで、不自然な画像がHMD200に表示されて、ユーザPLの仮想現実感が損なわれてしまう事態を抑制できる。
また本実施形態のシミュレーションシステムは、可動筐体40に設けられ、位置及び方向の少なくとも一方を検出するセンサ部80を含む。例えばセンサ部80は、ユーザPLが装着するHMD200からなるべく近い位置に配置される。そして図5(A)、図5(B)において、センサ部80は、例えばセンサ部80の位置PD(配置位置)や方向(配置方向)を検出する。そして処理装置10は、センサ部80からの検出情報(位置及び方向の少なくとも一方の検出情報)に基づいて、HMD200のトラッキング情報の補正処理を行う。例えば、センサ部80の位置PDの検出情報に基づいて、HMD200のトラッキング情報であるHMD200の位置PHの補正処理を行う。或いはセンサ部80の方向の検出情報に基づいて、HMD200のトラッキング情報の補正処理を行ってもよい。
例えば図5(A)、図5(B)のC1、C2に示す可動筐体40の可動により、ユーザPLのプレイ位置(ライド位置)が変化した場合には、E1、E2に示すようにセンサ部80により検出される位置PDも変化する。従って、プレイ位置の変化情報として、位置PDの検出情報(変化情報)を用いることができ、この位置PDの検出情報に基づいて、トラッキング情報であるHMD200の位置PHの補正処理を行うことが可能になる。
具体的には図8に示すように、処理装置10は、基準位置からのセンサ部80の位置PDの変化成分を、トラッキング情報に含まれるHMD200の位置PHの座標から、減算する処理を、補正処理として行う。
例えばゲームの開始前に、位置PDの初期位置である基準位置を検出(測定)して、記憶部(メモリ)に保存する。この基準位置の検出は、ステーション90の発光素子92からの光を、センサ部80の少なくとも1つの受光素子82により受光することで実現できる。例えば図8では、位置PDの基準位置はPD(X1、Y1、Z1)となっている。
そして可動筐体40の可動によりプレイ位置が変化した場合に、位置PDの変化成分(ΔX、ΔY、ΔZ)を検出する。即ち図5(A)、図5(B)のE1、E2の変化成分を検出する。この変化成分の検出も、ステーション90の発光素子92からの光を、センサ部80の少なくとも1つの受光素子82により受光することで実現できる。
そして、検出された位置PDの変化成分(ΔX、ΔY、ΔZ)を、プレイ位置の変化成分と見なして、HMD200の位置PH(X2、Y2、Z2)から減算する処理を、補正処理として行う。即ち、補正処理後の位置PH(X2−ΔX、Y2−ΔY、Z2−ΔZ)を求める。そして処理装置10は、補正処理後の位置PH(X2−ΔX、Y2−ΔY、Z2−ΔZ)に基づいて、HMD200に表示される画像を生成する。なおHMD200の基準位置(初期位置)についても、ゲームの開始前に検出して、記憶部(メモリ)に保存しておく。これにより、ユーザPLの体格等の個人差についても吸収できるようになる。
以上のようにすれば、図5(A)、図5(B)のように可動筐体40が可動した場合にも、図6、図7のようにHMD200に表示される画像が変化してしまう事態が抑制される。これにより、ユーザPLが3D酔いを引き起こしてしまうのを抑制できる。
例えば本実施形態では、ロボットの移動の加速や減速の際に、図5(A)、図5(B)のように可動筐体40のピッチングの回転移動を行うことで、加速感や減速感を体感させて、ユーザPLの仮想現実感を向上している。しかしながら、このような加速や減速の際に、図6、図7に示すように画像が上下に激しく変化してしまうと、ユーザPLの3D酔いを引き起こしてしまう。
この点、本実施形態では、このような可動筐体40の可動によるプレイ位置の変化成分を差し引く補正処理が行われた画像が生成されて、HMD200に表示される。即ち、図5(A)、図5(B)のC1、C2に示すように可動筐体40が可動した場合にも、D1、D2に示すHMD200の位置や方向の変化が、相殺される補正処理が行われる。従って、C1、C2に示す可動筐体40の可動によっては、HMD200に表示される画像は変化しないようになり、ユーザPLが3D酔いを引き起こしてしまう事態を効果的に抑制できるようになる。同様に、ロボットが曲がる際の慣性力やショットのヒット時の衝撃を、可動筐体40によりユーザPLに体感させる場合にも、HMD200に表示される画像については変化しないようになる。例えばショットのヒット時に、HMD200に表示される画像が細かく変化してしまうと、ユーザPLの3D酔いを引き起こしてしまうおそれがある。本実施形態では、この際にもHMD200の画像が変化しないようになるため、3D酔いの発生を効果的に抑制できる。
なお本実施形態では、可動筐体40の可動の反動で、ユーザPLが頭部が動かした場合に、ユーザPLが頭部を動かした変化分については、HMD200に表示される画像は変化する。ユーザPLが自身で頭部を動かすことで、HMD200の画像が変化しても、3D酔いは発生しないからである。
図9は図8の補正処理を説明するためのフローチャートである。まずユーザPLがプレイするゲームのゲーム処理を実行する(ステップS1)。図2、図3を例にとれば、ロボットを移動させたり動作させるゲーム処理を実行する。そしてゲーム処理の結果に基づいて、可動筐体40を制御して、ユーザPLのプレイ位置を変化させる(ステップS2)。例えばゲーム処理の結果に基づき、図5(A)のようなロボットの移動を加速する操作が行われたと判断した場合には、C1に示すようなピッチングの回転移動を行うように、可動筐体40を制御する。またゲーム処理の結果に基づき、図5(B)のようなロボットの移動を減速する操作が行われたと判断した場合には、C2に示すようなピッチングの回転移動を行うように、可動筐体40を制御する。
次にセンサ部80からの検出情報を取得する(ステップS3)。検出情報は、位置及び方向の少なくとも一方の検出情報である。そして取得された検出情報に基づいて、HMD200のトラッキング情報の補正処理を行う。例えばセンサ部80からの検出情報に基づいて、図8に示す位置PDの変化成分(ΔX、ΔY、ΔZ)を取得する。そして、取得された変化成分(ΔX、ΔY、ΔZ)に基づいて、HMD200のトラッキング情報の補正処理を行う。例えば図8に示すように、HMD200のトラッキング情報である位置PHの座標(X2、Y2、Z2)から、変化成分(ΔX、ΔY、ΔZ)を減算する補正処理を行う。
なお、図8、図9の補正処理は、数学的には厳密な処理ではない。しかしながら、処理負荷が非常に軽いにも関わらず、3D酔いの発生や不自然な画像の生成の抑制には十分な効果をあるという利点がある。
また、本実施形態の手法では、可動筐体40の可動による変化成分(ΔX、ΔY、ΔZ)については、差し引く補正処理を行っているが、可動筐体40の可動が原因でユーザPLが自身で頭部を動かしたことによる変化成分に対しては、このような補正処理は行われない。即ち、可動筐体40の可動の反動により頭部を動かしたことによる変化成分に対しては、このような補正処理は行われない。このように、ユーザPLが自身で頭部を動かしたことによる変化成分により、HMD200に表示される画像が変化しても、ユーザPLの3D酔いは生じないと考えられるからである。
また本実施形態のシミュレーションシステムは図1に示すように、可動筐体40に設けられ、ユーザPLにより操作される操作部160を含む。そしてセンサ部80は、操作部160の周辺に設けられる。例えば図1において、操作部160及びセンサ部80は、移動部70の支持部72により支持される上面部に配置されており、操作部160の近くにセンサ部80が配置されている。即ち、操作部160が配置される上面部のスペースを有効活用して、センサ部80を配置している。このようにすれば、HMD200やユーザPLのプレイ位置(ライド位置、着座位置)の近くに、センサ部80を配置できるようになる。これにより、センサ部80で検出された位置PDの変化成分(ΔX、ΔY、ΔZ)を、可動筐体40の可動によるユーザ位置の変化成分と見なすことが可能になり、図8、図9に示すような簡素な処理で、補正処理を実現できるようになる。
またセンサ部80は、可動筐体40の周囲に設置された発光素子(複数の発光素子)からの光を受光する少なくとも1つの受光素子82を含む。具体的には図1に示すように、可動筐体40の周囲には少なくとも1つのステーション90が配置される。そして、このステーション90の少なくとも1つの発光素子92からの光を、センサ部80の少なくとも1つの受光素子82が受光することで、センサ部80の位置PD(又はセンサ部80の方向)が検出され、図8、図9の補正処理を実現できるようになる。このようにすれば、例えばステーション90の発光素子92からの光をHMD200の受光素子で受光することで、HMD200のトラッキング処理を実現している場合に、このトラッキング処理のために用意されたステーション90を有効活用して、センサ部80による位置PDの検出(又は方向の検出)を実現できるようになる。
なお、後述の図13に示す可動筐体40の詳細例のように、センサ部80として、ゲームコントローラ165が有するセンサ部を用いるようにしてもよい。このようにすれば、ゲームコントローラ165のセンサ部を有効活用して、その位置及び方向の少なくとも一方を検出して、HMD200のトラッキング情報の補正処理を実現できるようになる。
4.変形例
次に本実施形態の種々の変形例について説明する。例えば本実施形態の補正処理は図8、図9で説明した処理に限定されず、種々の変形実施が可能である。
例えば図10では、可動筐体40の可動により位置PDが位置PD’に変化した場合の角度変化Δθを検出する。角度変化Δθは、例えば可動基準点MPと位置PDを結ぶ線と可動基準点MPと位置PD’を結ぶ線とのなす角度である。そして、求められた角度変化Δθに基づいて、HMD200の位置PHの補正処理を行って、位置PH’を求める。例えば−Δθだけ角度を変化させる補正処理を行う。そして求められた位置PH’を補正後のトラッキング情報として、HMD200に表示される画像を生成する。
なお、角度変化Δθは、図5(A)、図5(B)のセンサ部80の方向(向く方向、配置方向)の検出情報に基づいて検出してもよい。即ち、センサ部80からの検出情報に基づくHMD200のトラッキング情報の補正処理は、センサ部80の方向の検出情報に基づくトラッキング情報の補正処理であってもよい。またHMD200のトラッキング情報の補正処理は、HMD200の位置PHの補正処理であってもよいし、HMD200の方向(視線方向)の補正処理であってもよい。例えば図10のように−Δθだけ角度を変化させる補正処理を、HMD200の方向(視線方向)を補正する処理により実現してもよい。
図10の手法は図8、図9の手法に比べて、数学的に、より厳密な手法である。但し、角度検出(方向検出)にはノイズが乗りやすいため、この意味では図8、図9の手法の方が有利である。
また処理装置10は、可動筐体40の可動制御のための制御情報に基づいて、HMD200のトラッキング情報の補正処理を行ってもよい。例えば図5(A)、図5(B)では、電動シリンダ58のロッド部の長さを制御することで、可動筐体40の可動制御を実現している。この場合には、電動シリンダ58のロッド部の長さを制御するための制御情報に基づいて、HMD200のトラッキング情報の補正処理を行ってもよい。
例えば、この制御情報に基づいて、電動シリンダ58のロッド部の長さが特定されれば、可動筐体40の可動によるプレイ位置の変化成分を特定できる。具体的には、図5(A)、図5(B)のD1、D2に示すHMD200の位置、方向の変化成分を特定できる。従って、この変化成分が差し引かれるようなHMD200のトラッキング情報の補正処理を実現できる。この場合に、D1、D2に示す変化成分を差し引く補正処理は、例えば電動シリンダ58のロッド部の長さ(可動筐体の可動制御のための制御情報)と、変化成分とを対応づけるテーブルを用いて実現してもよいし、変化成分を求めるための物理的なシミュレーション処理を実行することで実現してもよい。
図11は、可動筐体40の制御情報に基づくトラッキング情報の補正処理についてフローチャートである。
まずユーザPLがプレイするゲームのゲーム処理を実行する(ステップS11)。そしてゲーム処理の結果に基づいて、可動筐体40を制御して、ユーザPLのプレイ位置を変化させる(ステップS12)。
次に可動筐体40の可動制御のための制御情報を取得する(ステップS13)。例えば電動シリンダ58により可動筐体40の可動制御を行う場合には、当該制御情報として、電動シリンダ58のロッド部の長さ情報(長さの特定情報)を取得する。そして、取得された制御情報に基づいて、HMD200のトラッキング情報の補正処理を行う(ステップS14)。例えば、上述したようなテーブルを用いたり、物理的なシミュレーション処理を実行することで、図5(A)、図5(B)のD1、D2に示す変化成分を差し引く補正処理を実行する。
図11に示す補正処理は、補正処理のための演算処理に時間がかかるため、タイムラグが生じてしまうという不利点があるが、図5(A)、図5(B)のD1、D2に示す変化成分を、より正確に求めることができるという利点がある。
図12は本実施形態のシミュレーションシステムの変形例のシステム構成例である。図12の変形例のシミュレーションシステムは、可動筐体40に設けられ、HMD200を撮像する撮像部150を含む。即ち、後述の図20(A)、図20(B)で説明する撮像部150を可動筐体40に設ける。
この場合に撮像部150の位置は、可動筐体40によるプレイ位置PPLの変化に伴い変化する。即ち、撮像部150は可動筐体40に設けられているため、可動筐体40の可動により、撮像部150の位置も変化する。
そして処理装置10は、撮像部150によるHMD200の撮像画像に基づくトラッキング情報を取得して、HMD200に表示される画像を生成する。例えばHMD200に設けられる発光素子230(複数の発光素子)の位置を、撮像部150の撮像画像に基づき特定することで、HMD200のトラッキング処理を実現する。即ち、後述の図20(A)、図20(B)で説明する手法によりHMD200のトラッキング処理を行って、HMD200に表示される画像を生成する。このようにすれば、HMD200に表示される画像として、可動筐体40によるプレイ位置PPLの変化成分を差し引く補正処理が行われた画像を生成できるようになる。
即ち、図12のように可動筐体40上に撮像部150を設ければ、図5(A)、図5(B)のC1、C2に示すように可動筐体40が可動した場合にも、撮像部150とHMD200の相対的位置関係は変化しないようになる。従って、C1、C2に示すように可動筐体40が可動した場合にも、HMD200に表示される画像は変化しないようになり、ユーザPLの3D酔いの発生を防止できるようになる。このように図12の変形例では、可動筐体40に撮像部150を設けるという簡素な手法により、3D酔いなどの不具合の発生を効果的に防止できるという利点がある。
5.可動筐体の詳細例
次に可動筐体40の詳細な構成例について説明する。図13、図14(A)、図14(B)、図14(C)は、各々、可動筐体40の詳細な構成を示す斜視図、上面図、側面図、正面図である。
図13〜図14(C)に示す可動筐体40では、底部450(ベース部)の上にカバー部451が設けられ、その上に、ベース部452(台座部)が設けられる。このベース部452にはシート支持部464が設けられ、シート支持部464の上にシート462が取り付けられることで、ライド部460が構成されている。
またベース部452には、移動部470が設けられる。具体的には、ベース部452にはレール部454、455が設けられ、レール部454、455に沿った方向で移動可能になるように、移動部470が設けられる。
移動部470は支持部472を有し、支持部472の上端には上面部473(操作基台)が設けられる。そして上面部473には、操作レバー161、162や、センサ部を有するゲームコントローラ165が設けられている。ゲームコントローラ165が有するセンサ部は、位置及び方向の少なくとも一方を検出する。操作レバー161、162は、図1の操作部160を構成するものであり、図3に示す仮想空間での操作レバーLVL、LVRに相当するものである。ユーザPLが操作レバー161、162を手で操作すると、それに連動して、仮想空間での仮想ユーザPLVの手HL、HRにより操作レバーLVL、LVRが操作される様子が表示される。
ユーザPLが、操作レバー161、162を前方側に倒すと、仮想空間のロボットRBが前方側に移動し、操作レバー161、162を後方側に倒すと、ロボットRBが後方側に移動する。ユーザPLが操作レバー161、162が右方向側、左方向側に倒すと、ロボットRBが右方向側、左方向側に移動する。また操作レバー161、162の一方を前方側に倒し、他方を後方側に倒すことで、ロボットRBの向く方向を変えることができる。
ゲームコントローラ165には、センサ部として用いられる少なくとも1つの受光素子が設けられる。そして後述する図19(A)、図19(B)のトラッキング処理と同様の処理により、ゲームコントローラ165のセンサ部の検出機能(位置及び方向の少なくとも一方の検出機能)が実現される。この検出機能により、例えば可動筐体40の可動によるプレイ位置PPLの変化を検出できるようになる。そして例えば可動筐体40によるプレイ位置PPLの変化成分を差し引く補正処理が行われる。このように図13では、センサ部を有するゲームコントローラ165を有効活用して、プレイ位置PPLの変化を検出している。例えばゲームコントローラ165は操作ボタン等の他の部材を有しているが、図13では、この操作ボタンは使用せずに、ゲームコントローラ165のセンサ部だけを有効活用している。
移動部470の支持部472の下端には下面部474が設けられ、下面部474には、アクセルペダル163、ブレーキペダル164が設けられる。ユーザPLがアクセルペダル163を踏むと、仮想空間のロボットRBが加速して移動するダッシュ移動が行われる。ユーザPLがブレーキペダル164を踏むと、ロボットRBの移動が停止する。
可動筐体40のベース部452には、フレーム部430(広義には構造物)が設けられている。そしてフレーム部430のガイド部432が、処理装置10からのケーブル20をガイドしている。例えば下方から上方へと向かう所定経路でケーブル20をガイドする。そして、ガイドされたケーブル20は、経由点TPを経由してHMD200に接続される。具体的には、ケーブル20は、経由点TPにおいて固定具433により固定されて、HMD200に接続される。
図15(A)、図15(B)は移動部70の構成を示す斜視図であり、図16は移動部70を外した状態での可動筐体40の構成を示す斜視図である。
図15(A)、図15(B)に示すように、移動部470の下面部474には、移動部470の移動のロック解除用のレバー478が設けられ、下面部474の裏面側には、溝部476、477が設けられる。移動部470は、溝部476、477が図16のレール部454、455に嵌合するように、ベース部452に取り付けられる。こうすることで、図1に示すように方向DRAでの移動部470(移動部70)の移動が可能になる。
また移動部470を移動させる場合には、例えばゲーム施設(アミューズメント施設)のオペレータが、レバー478を所定方向に操作して移動のロックを解除する。そして、移動後にレバー478の元の位置に戻すことで、移動部470の移動がロックされる。なお、移動部470の移動を、モータや電動シリンダ等のアクチュエータを用いて、ユーザPLの操作により自動的に行えるようにしてもよい。
図17(A)は、可動筐体40(可動機構)の動作を概略的に説明する図である。なお図17(A)では、説明の簡素化のために、図13のカバー部451、ベース部452、シート支持部464等の構成を省略して示している。例えば図17(A)では、電動シリンダ413、414により、シート462(ライド部460)が回転移動する場合について説明するが、実際には図13のベース部452、シート462等が一体となって、回転移動する。
図17(A)に示すように、可動筐体40は、アクチェエータである電動シリンダ413、414を有する。電動シリンダ413、414は、処理装置10からの電気信号である制御信号に基づいて、A1、A2に示すように、そのロッド部を直線運動させる。電動シリンダ413、414は、ステッピングモータやボールネジを有しており、ステッピングモータでボールネジを回転させることで、ロッド部の直線運動を実現する。そして、このように電動シリンダ413、414のロッド部が直線運動することで、シート462の方向(姿勢)等を変化させる動作が実現される。具体的には、図13において、シート462(ライド部460)が取り付けられているベース部452の方向(姿勢)等を変化させる動作が実現される。
可動筐体40の底部450には、基台402が設けられており、基台402にはヒンジ部403、404が設けられている。そして電動シリンダ413、414の一端は、ヒンジ部403、404により基台402に取り付けられる。具体的にはヒンジ部403、404は、水平方向であるX軸回りに回動自在となるように電動シリンダ413、414の一端を支持している。またシート462の背もたれ部の裏面側には取り付け部材420が設けられており、取り付け部材420には、ヒンジ部423、424が設けられている。そして電動シリンダ413、414の他端は、ヒンジ部423、424により取り付け部材420に取り付けられる。具体的にはヒンジ部423、424は、X軸回りに回動自在となるように電動シリンダ413、414の他端を支持している。
基台402には、ヒンジ部405、406が設けられ、ヒンジ部405、406には支持部415、419の一端が取り付けられている。そして、支持部415、419の他端はシート462の座部(裏面)に取り付けられる。より具体的には、支持部415は、リンクボール416、417と、ヨー方向(旋回)の動きを規制するリンクシャフト418により構成される。支持部419は、リンクボールにより構成される。なお、支持部415、419は、実際には図13のカバー部451の内側に設けられている。また電動シリンダ413、414は、図14(A)、図14(B)に示すカバー部434の内側に設けられている。
図17(B)に、支持部419等を構成するリンクボールの例を示す。支持部419では、図17(B)のB1に示す雄ネジ側が、シート462側(可動側)に固定され、B2に示す雌ネジ側が、底部450側(固定側)に固定される。
このような球面すべり軸受け部材であるリンクボールを用いることで、図1で説明した支持部56(支持部419)によるピッチング、ローリング、ヨーイングの回転移動を実現できる。なお図17(A)では、リンクシャフト418等により構成される支持部415を設けることで、ヨーイングの回転移動を制限している。この場合にリンクシャフト418として電動シリンダ等を用いて伸縮自在とすれば、ヨーイングの回転移動も制御できるようになる。
例えば図17(A)において、電動シリンダ413、414のロッド部が共に短くなると、シート462(ベース部452)がX軸回りにピッチングして、ユーザが後ろのめりになる動作が実現される。例えば図13においてユーザがアクセルペダル163を踏んで、ロボットの移動を加速させた場合には、その加速感を体感させるために、ユーザが後ろのめりになるようなピッチングの回転移動を行う。
また電動シリンダ413、414のロッド部が共に長くなると、シート462(ベース部452)がX軸回りにピッチングして、ユーザが前のめりになる動作が実現される。例えば図13においてユーザがブレーキペダル164を踏んでロボットの移動を減速させた場合には、その減速感を体感させるために、ユーザが前のめりになるようなピッチングの回転移動を行う。
またユーザが、図13の操作レバー161、162を操作して、ロボットを進行方向に対して右側や左側に曲げる操作を行った場合には、電動シリンダ413、414のロッド部の一方を短くし、他方を長くする制御を行う。これにより、シート462(ベース部452)がZ軸回りにローリングして、ロボットが進行方向に対して右側や左側に曲がる際の慣性力をユーザに体感させることができる。
このようにロボットの移動に伴う加速感、減速感、慣性力をユーザに体感させることで、ユーザの仮想現実感を向上できると共に、いわゆる3D酔いを抑制することも可能になる。即ち、例えばHMD200には、仮想ユーザが搭乗するロボット(搭乗移動体)が移動する画像が立体的に表示されているのに、実世界においてはユーザのプレイ位置が殆ど移動していないと、ユーザに感覚のずれが生じ、3D酔いを引き起こしてしまう。
この点、本実施形態では、可動筐体40を設けることで、このような3D酔いを緩和している。即ち、ロボットの加速、減速、コーナリングの際に、可動筐体40のシート462(ベース部452)を回転移動(ローリング、ピッチング等)させて、ユーザのプレイ位置を変化させる。こうすることで、仮想世界の事象と、実空間の事象が近づくようになり、3D酔いを緩和できる。
また本実施形態では、例えば敵からのミサイルや弾等のショットがロボットにヒットした場合に、そのショットによる衝撃をユーザに体感させるために、ロッド部が微少のストローク距離で直線運動するように電動シリンダ413、414を制御する。或いは、地面の凹凸を表現するために、ロッド部が微少のストローク距離で直線運動するように電動シリンダ413、414を制御してもよい。このようにすることで、ユーザの仮想現実感を更に向上できるようになる。
6.シミュレーションシステムの詳細な構成
次に本実施形態のシミュレーションシステムの詳細な構成例について説明する。図18は、シミュレーションシステムの構成例を示すブロック図である。図1の処理装置10は、例えば図18の処理部100、記憶部170などにより実現できる。なお、本実施形態のシミュレーションシステムは図18の構成に限定されず、その構成要素(各部)の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
可動筐体40は、ユーザのプレイ位置等を変化させる筐体である。例えば図1、図13〜図17(B)で説明したように可動筐体40は動作する。
操作部160は、ユーザが種々の操作情報(入力情報)を入力するためのものである。例えば操作部160は、ユーザが操作情報を入力するための装置として機能する。操作部160は、例えば操作ボタン、方向指示キー、ジョイスティック、ハンドル、ペダル又はレバー等の種々の操作デバイスにより実現できる。例えば図13では、操作レバー161、162、アクセルペダル163、ブレーキペダル164などにより操作部160が実現されている。
記憶部170は各種の情報を記憶する。記憶部170は、処理部100や通信部196などのワーク領域として機能する。ゲームプログラムや、ゲームプログラムの実行に必要なゲームデータは、この記憶部170に保持される。記憶部170の機能は、半導体メモリ(DRAM、VRAM)、HDD(ハードディスクドライブ)、SDD、光ディスク装置などにより実現できる。記憶部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のトラッキング方式では、後述の図19(A)、図19(B)で詳細に説明するように、センサ部210として複数の受光素子(フォトダイオード等)を設ける。そして外部に設けられた発光素子(LED等)からの光(レーザー等)をこれらの複数の受光素子により受光することで、現実世界の3次元空間でのHMD200(ユーザの頭部)の位置、方向を特定する、第2のトラッキング方式では、後述の図20(A)、図20(B)で詳細に説明するように、複数の発光素子(LED)をHMD200に設ける。そして、これらの複数の発光素子からの光を、外部に設けられた撮像部で撮像することで、HMD200の位置、方向を特定する。第3のトラッキング方式では、センサ部210としてモーションセンサを設け、このモーションセンサを用いてHMD200の位置、方向を特定する。モーションセンサは例えば加速度センサやジャイロセンサなどにより実現できる。例えば3軸の加速度センサと3軸のジャイロセンサを用いた6軸のモーションセンサを用いることで、現実世界の3次元空間でのHMD200の位置、方向を特定できる。なお、第1のトラッキング方式と第2のトラッキング方式の組合わせ、或いは第1のトラッキング方式と第3のトラッキング方式の組合わせなどにより、HMD200の位置、方向を特定してもよい。
HMD200の表示部220は例えば液晶ディスプレイ(LCD)や有機ELディスプレイなどにより実現できる。例えばHMD200には、表示部220として、ユーザの左目の前に配置される第1のディスプレイと、右目の前に配置される第2のディスプレイが設けられており、例えば立体視表示が可能になっている。立体視表示を行う場合には、例えば視差が異なる左目用画像と右目用画像を生成し、第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 Processing Unit)等、各種のプロセッサを用いることが可能である。またプロセッサはASICによるハードウェア回路であってもよい。メモリ(記憶部170)は、SRAM、DRAM等の半導体メモリであってもよいし、レジスターであってもよい。或いはハードディスク装置(HDD)等の磁気記憶装置であってもよいし、光学ディスク装置等の光学式記憶装置であってもよい。例えば、メモリはコンピュータにより読み取り可能な命令を格納しており、当該命令がプロセッサにより実行されることで、処理部100の各部の処理(機能)が実現されることになる。ここでの命令は、プログラムを構成する命令セットでもよいし、プロセッサのハードウェア回路に対して動作を指示する命令であってもよい。
処理部100は、入力処理部102、演算処理部110、出力処理部140を含む。演算処理部110は、ゲーム処理部111、ゲーム成績演算部118、補正処理部119、表示処理部120、音処理部130を含む。上述したように、これらの各部により実行される本実施形態の各処理は、プロセッサ(或いはプロセッサ及びメモリ)により実現できる。なお、これらの構成要素(各部)の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
入力処理部102は、操作情報やトラッキング情報を受け付ける処理や、記憶部170から情報を読み出す処理や、通信部196を介して情報を受信する処理を、入力処理として行う。例えば入力処理部102は、操作部160を用いてユーザが入力した操作情報やHMD200のセンサ部210等により検出されたトラッキング情報(HMDの位置及び方向の少なくとも一方の情報。視点位置及び視線方向の少なくとも一方の情報)を取得する処理や、読み出し命令で指定された情報を、記憶部170から読み出す処理や、外部装置(サーバ等)からネットワークを介して情報を受信する処理を、入力処理として行う。ここで受信処理は、通信部196に情報の受信を指示したり、通信部196が受信した情報を取得して記憶部170に書き込む処理などである。
演算処理部110は、各種の演算処理を行う。例えばゲーム処理(シミュレーション処理)、ゲーム成績演算処理、表示処理、或いは音処理などの演算処理を行う。
ゲーム処理部111(ゲーム処理のプログラムモジュール)はユーザがゲームをプレイするための種々のゲーム処理を行う。別の言い方をすれば、ゲーム処理部111(シミュレーション処理部)は、ユーザが仮想現実(バーチャルリアリティ)を体験するための種々のシミュレーション処理を実行する。ゲーム処理部111は、可動筐体処理部112、ゲーム進行処理部113、移動体処理部114、オブジェクト空間設定部116、仮想カメラ制御部117を含む。
可動筐体処理部112は、可動筐体40についての種々の処理を行う。例えば可動筐体40の制御処理を行ったり、可動筐体40を制御するための種々の情報の検出処理を行う。例えば可動筐体処理部112は、図17(A)の電動シリンダ413、414の制御処理を行う。例えば電動シリンダ413、414のロッド部の直線運動を制御する処理を行う。また可動筐体処理部112は、図1の操作部160、図13の操作レバー161、162、アクセルペダル163、ブレーキペダル164による操作情報を検出する処理を行う。そして、検出された操作情報に基づいて、可動筐体40の制御処理等を実行する。
ゲーム進行処理部113は、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などを行う。
移動体処理部114は、仮想空間内で移動する移動体についての種々の処理を行う。例えば仮想空間であるオブジェクト空間(ゲーム空間)において移動体を移動させる処理や、移動体を動作させる処理を行う。例えば移動体を動作させる処理は、モーションデータを用いたモーション処理(モーション再生等)により実現できる。
移動体は、例えば実空間のユーザに対応する仮想空間の仮想ユーザが搭乗(操作)する搭乗移動体(操作移動体)又は当該仮想ユーザである。図2〜図4(B)を例にとれば、移動体は、ユーザに対応する仮想ユーザPLVが搭乗するロボットであり、このロボットが仮想空間内のフィールドで移動する。
オブジェクト空間設定部116は、複数のオブジェクトが配置されるオブジェクト空間(広義には仮想空間)の設定処理を行う。例えば、移動体(人、ロボット、車、電車、飛行機、船、モンスター又は動物等)、マップ(地形)、建物、観客席、コース(道路)、樹木、壁、水面などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。具体的には、記憶部170の空間情報記憶部172には、オブジェクト空間での複数のオブジェクト(パーツオブジェクト)の位置、回転角度(方向)等の情報が空間情報として記憶される。オブジェクト空間設定部116は、例えば各フレーム毎にこの空間情報を更新する処理などを行う。
仮想カメラ制御部117は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点、基準仮想カメラ)の制御処理を行う。具体的には、仮想カメラの位置(X、Y、Z)又は回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置、視線方向あるいは画角を制御する処理)を行う。この仮想カメラはユーザの視点に相当する。立体視表示の場合は、左目用の第1の視点(左目用の第1の仮想カメラ)と、右目用の第2の視点(右目用の第2の仮想カメラ)が設定される。
ゲーム成績演算部118はユーザのゲーム成績を演算する処理を行う。例えばユーザのゲームプレイにより獲得された得点、ポイントなどのゲーム成績の演算処理を行う。
補正処理部119は、HMD200のトラッキング情報等の補正処理を行う。例えば補正処理部119は、可動筐体40によるプレイ位置の変化情報に基づいて、HMD200のトラッキング情報の補正処理を行う。例えば補正処理部119は、補正処理として、トラッキング情報に含まれるHMD200の位置の情報から、可動筐体40によるプレイ位置の変化成分を差し引く補正処理を行う。具体的には図5(A)、図5(B)で説明したように、補正処理部119は、センサ部80(ゲームコントローラ165)からの検出情報に基づいて、補正処理を行う。例えば基準位置からのセンサ部80の位置の変化成分を、トラッキング情報に含まれるHMD200の位置座標から減算する処理を、補正処理として行う。また補正処理部119は、可動筐体40の可動制御のための制御情報に基づいて、補正処理を行ってもよい。
表示処理部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に指示する処理などである。
そして本実施形態では、ゲーム処理部111は、複数のオブジェクトが配置される仮想空間(ゲーム空間)において、ユーザがプレイするゲームの処理を行う。例えばオブジェクト空間である仮想空間には、複数のオブジェクトが配置されており、ゲーム処理部111は、この仮想空間でのゲームを実現するための種々のゲーム処理(ゲーム進行処理、移動体処理、オブジェクト空間設定処理、或いは仮想カメラ制御処理等)を実行する。そして表示処理部120は、仮想空間において所与の視点(左目用、右目用の第1、第2の視点)から見えるゲーム画像を、HMD200の表示部220(第1、第2のディスプレイ)に表示する処理を行う。即ち、仮想空間であるオブジェクト空間において、ユーザの視点(仮想カメラ)から見えるゲーム画像を表示する処理を行う。この場合のユーザの視点は、ユーザの視点位置情報、視線方向情報等により設定される。
例えば仮想空間での視点は、仮想ユーザの視点位置、視線方向に設定される。そしてHMD200を装着した実空間(実世界)のユーザが首を振るなどして、その視線方向が変化すると、仮想空間の仮想ユーザの視線方向もそれに応じて変化する。またユーザが操作部160を操作することなどにより、仮想ユーザやその搭乗移動体(ロボット、電車、車、バイク、自転車、飛行機又は船等)が仮想空間内で移動すると、その移動に追従するように仮想ユーザの視点位置も変化する。このようにすることで、ユーザは、あたかも自身の分身である仮想ユーザやその搭乗移動体が仮想空間で移動するような仮想現実を体験できるようになる。なお仮想空間での仮想ユーザの視点は、いわゆる一人称視点になるが、その一人称視点の画像に、例えば仮想ユーザの体の一部が映ったり、搭乗移動体の内部の様子が映るようにしてもよい。
図19(A)に本実施形態のシミュレーションシステムに用いられるHMD200の一例を示す。図19(A)に示すようにHMD200には複数の受光素子201、202、203(フォトダイオード)が設けられている。受光素子201、202はHMD200の前面側に設けられ、受光素子203はHMD200の右側面に設けられている。またHMDの左側面、上面等にも不図示の受光素子が設けられている。
またHMD200には、ヘッドバンド260等が設けられており、ユーザPLは、より良い装着感で安定的に頭部にHMD200を装着できるようになっている。また、HMD200には、不図示のヘッドホン端子が設けられており、このヘッドホン端子にヘッドホン270(音出力部192)を接続することで、例えば3次元音響(3次元オーディオ)の処理が施されたゲーム音を、ユーザPLは聴くことが可能になる。なお、ユーザの頭部の頷き動作や首振り動作をHMD200のセンサ部210等により検出することで、ユーザの操作情報を入力できるようにしてもよい。
図19(B)に示すように、シミュレーションシステム(可動筐体40)の周辺には、ステーション280、284が設置されている。ステーション280には発光素子281、282が設けられ、ステーション284には発光素子285、286が設けられている。発光素子281、282、285、286は、例えばレーザー(赤外線レーザー等)を出射するLEDにより実現される。ステーション280、284は、これら発光素子281、282、285、286を用いて、例えばレーザーを放射状に出射する。そして図19(A)のHMD200に設けられた受光素子201〜203等が、ステーション280、284からのレーザーを受光することで、HMD200のトラッキングが実現され、ユーザPLの頭の位置や向く方向(ユーザの位置や方向)を検出できるようになる。
なお図19(B)の移動部470に設けられたゲームコントローラ165の位置及び方向の少なくとも一方(トラッキング情報)についても、HMD200のトラッキング処理と同様の手法により検出できる。例えば、ゲームコントローラ165に設けられた受光素子(複数の受光素子)が、ステーション280、284の発光素子281、282、285、286からのレーザーを受光することで、ゲームコントローラ165の位置及び方向の少なくとも一方を検出できる。これにより可動筐体40の可動により変化するプレイ位置PPLの検出等が可能になる。
図20(A)にHMD200の他の例を示す。図20(A)では、HMD200に対して複数の発光素子231〜236が設けられている。これらの発光素子231〜236は例えばLEDなどにより実現される。発光素子231〜234は、HMD200の前面側に設けられ、発光素子235や不図示の発光素子236は、背面側に設けられる。これらの発光素子231〜236は、例えば可視光の帯域の光を出射(発光)する。具体的には発光素子231〜236は、互いに異なる色の光を出射する。そして図20(B)に示す撮像部150をユーザPLの前方側に設置し、この撮像部150により、これらの発光素子231〜236の光を撮像する。即ち、撮像部150の撮像画像には、これらの発光素子231〜236のスポット光が映る。そして、この撮像画像の画像処理を行うことで、ユーザPLの頭部(HMD)のトラッキングを実現する。即ちユーザPLの頭部の3次元位置や向く方向(ユーザの位置、方向)を検出する。
例えば図20(B)に示すように撮像部150には第1、第2のカメラ151、152が設けられており、これらの第1、第2のカメラ151、152の第1、第2の撮像画像を用いることで、ユーザPLの頭部の奥行き方向での位置等が検出可能になる。またHMD200に設けられたモーションセンサのモーション検出情報に基づいて、ユーザPLの頭部の回転角度(視線)も検出可能になっている。従って、このようなHMD200を用いることで、ユーザPLが、周囲の360度の全方向うちのどの方向を向いた場合にも、それに対応する仮想空間(仮想3次元空間)での画像(ユーザの視点に対応する仮想カメラから見える画像)を、HMD200の表示部220に表示することが可能になる。なお、発光素子231〜236として、可視光ではなく赤外線のLEDを用いてもよい。また、例えばデプスカメラ等を用いるなどの他の手法で、ユーザの頭部の位置や動き等を検出するようにしてもよい。
なお、ユーザの視点位置、視線方向(ユーザの位置、方向)を検出するトラッキング処理の手法は、図19(A)〜図20(B)で説明した手法には限定されない。例えばHMD200に設けられたモーションセンサー等を用いて、HMD200の単体でトラッキング処理を実現してもよい。即ち、図19(B)のステーション280、284、図20(B)の撮像部150などの外部装置を設けることなく、トラッキング処理を実現する。或いは、公知のアイトラッキング、フェイストラッキング又はヘッドトラッキングなどの種々の視点トラッキング手法により、ユーザの視点位置、視線方向などの視点情報等を検出してもよい。
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語(筐体、移動体、ライド姿勢、アクチュエータ等)と共に記載された用語(可動筐体、ロボット、着座姿勢、電動シリンダ・モータ・エアバネ等)は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また、可動筐体の構成、処理装置の構成、HMDの構成、HMDのトラッキング処理、HMDの表示画像の生成処理、トラッキング情報の補正処理、プレイ位置の変化手法、シミュレーションシステムの構成等も、本実施形態で説明したものに限定されず、これらと均等な手法・処理・構成も本発明の範囲に含まれる。また本発明は種々のゲームに適用できる。また本発明は、業務用ゲーム装置、家庭用ゲーム装置、又は多数のユーザが参加する大型アトラクションシステム等の種々のシミュレーションシステムに適用できる。