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