以下、実施形態について説明する。なお、以下に説明する実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また、本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。さらに、以下の実施形態は、装着型画像表示装置としてHMD(ヘッドマウントディスプレイ)を用いて予め定められた構造体内の空間(すなわち、実空間)におけるユーザの移動に対応付けて仮想3次元空間をシミュレートさせてゲームを提供するゲームシステムに対し、本発明に係るシミュレーション制御装置を適用した場合の実施形態である。
1.ゲームシステムの概要
まず、図1及び図2を用いて本実施形態のゲームシステム1の概要について説明する、なお、図1は、本実施形態のゲームシステム1の概要構成を示す構成図であり、図2は、本実施形態のゲームシステム1によって体験可能な仮想3次元空間(以下、「シミュレーション空間」ともいう。)を説明するための図である。
本実施形態のゲームシステム1は、主な構成として、プレーヤP(ユーザの一例)が移動可能な実空間(以下、単に「実空間」という。)が形成された構造体10と、当該プレーヤPに装着され、実空間に対応付けられた仮想3次元空間(すなわち、シミュレーション空間)のシミュレーション画像を表示するHMD20と、を備えている。
具体的には、本実施形態のゲームシステム1は、実空間内における実空間に対応するシミュレーション空間のプレーヤPから見えるシミュレーション画像を生成し、擬似的な空間内における各種の環境や状況をプレーヤPに体験させるシミュレータである。
特に、本実施形態のゲームシステム1は、
(1)実空間内におけるプレーヤPの状態を示すプレーヤ状態(具体的には、実空間におけるプレーヤの位置及びその姿勢)を検出し、
(2)当該検出したプレーヤ状態に応じて、例えば、図2に示すような、移動経路Rに対応付けた仮想移動経路を有し、かつ、実空間に対応するシミュレーション空間のプレーヤPから見えるシミュレーション画像を生成する画像生成処理を実行し、
(3)当該生成したシミュレーション画像をHMD20に表示させ、
(4)移動経路R上にてプレーヤ状態が所与の条件を具備した場 合に、プレーヤPがシミュレーション空間上における特定の状態である特定状態と判定し、
(5)当該特定状態と判定した場合に、当該特定状態に基づく演出を実行するためのシミュレーション画像を生成する、
構成を有している。
そして、本実施形態のゲームシステム1は、当該HMD20を構造体10から吊時する
吊持ユニット30を備え、HMD20をプレーヤPとは独立的に吊持することによって、プレーヤPが実空間内を移動する際に、又は、当該プレーヤPの所定の部位(例えば頭部
)が動く際に、HMD20を当該プレーヤPの動きに追随させつつ、当該プレーヤPの意図に反して転倒した場合であっても、HMD20のプレーヤPへの装着を維持し、又は、着脱による落下を防止することが可能な構成を有している。
また、本実施形態のゲームシステムは、図1に示すように、構造体10、HMD20及び吊持ユニット30の他に、
(1)実空間内で移動するプレーヤPの転倒を防止する転倒防止ユニット40、
(2)プレーヤPの実空間内における移動に応じて、吊持ユニット30におけるHMD20の吊持位置を変更し、かつ、プレーヤPの実空間内における移動に応じて、当該プレーヤPの吊持位置を変更する吊持制御ユニット50
(3)プレーヤPの所定の部位(例えば、頭部、両手及び両足)に取り付けたマーカユニット60、及び、当該マーカユニット60を検出することによって各部位の向き及び位置を検出しつつ、実空間内におけるプレーヤPの状態をプレーヤ状態として検出する撮像カメラ70と、
(4)実空間内に配設されるとともに、シミュレーション画像と連動することによってプレーヤPに所与の演出を体感させる各種の演出装置90〜93及び演出用オブジェクト80と、
(5)プレーヤPから見える、実空間に対応付けられた仮想3次元空間であるシミュレーション空間のシミュレーション画像を生成するとともに、検出したプレーヤ状態に応じて、シミュレーション画像に連動させつつ、該当する演出装置90〜93を制御するシミュレーション制御装置100と、
を備えている。
このような構成により、本実施形態のゲームシステム1は、プレーヤPの状態と連動させつつ、当該プレーヤPが特定状態の場合に、当該特定状態をシミュレーションとしてプレーヤPに体験させることができるので、プレーヤPに体験させるべき環境や状況を、特に、移動経路Rから外れた場合に落下する状況を含めて高所を移動する環境や移動状況などの実際に体験することが難しい環境や状況を的確に再現することができるようになっている。
例えば、高所だけでなく、閉所、特殊空間、暑い場所又は寒い場所などの危険な場所や現実では経験することが難しい空間における環境や状況を、プレーヤPの状態に応じて特定状態や当該特定状態を創出する環境として再現することができるようになっている。
したがって、本実施形態のゲームシステム1は、危険な場所や現実では経験することが難しい空間を含むあらゆる場所や空間の再現性を高めることができるので、擬似的な空間であっても、より現実的な感覚をプレーヤPに体験させることができるようになっている。
また、本実施形態のゲームシステム1は、HMD20をプレーヤPとは独立的に吊持することができるので、プレーヤPが実空間内を移動することによって、又は、当該プレーヤPの所定の部位(例えば頭部)が動くことによって、HMD20が前後方向、左右方向及び上下方向に動いた場合において、プレーヤPがバランスを崩して当該プレーヤPの意図に反して転倒した場合であっても、HMD20のプレーヤPへの装着を維持し、又は、着脱による落下を防止することができるようになっている。
したがって、本実施形態のゲームシステム1は、プレーヤPにおけるHMD20が装着された状態で転倒することによって生ずる負傷、又は、当該プレーヤPの意図に反して当
該HMD20が着脱されることによって床面や壁面への衝突及びそれに伴う当該HMD20の一部の破損や故障の発生などの不測の事態を防止することができるようになっている。
この結果、本実施形態のゲームシステム1は、レールやアーム等によってHMD20の吊持位置をプレーヤPの移動に伴って変更させることができれば、例えば、常に上方から吊持するなど適した位置でHMD20を吊持し、あらゆる方向への移動や動きに対応させることができるので、HMD20を装着させて実空間内を移動するプレーヤPの安全性を確保しつつ、プレーヤPのシミュレーション中の負傷の他に、当該HMD20の破損や故障を含めて不測の事態を防止することができるようになっている。
例えば、高解像度によって提供される場合など、HMD20への画像供給やその制御が有線で実行される場合には、吊持ユニット30を介してHMD20を制御する制御装置と接続するための配線を配設することもできるので、当該配線がプレーヤPの横や足下に存在することに伴う当該プレーヤPの移動の制限や不快感を解消することができるようになっている。
すなわち、上記の構成を有することにより、本実施形態のゲームシステム1は、HMD20が装着されたプレーヤPの実空間内におけるスムーズな移動や安全性を確保し、当該プレーヤPの負傷などの不測の事態を回避させることができるようになっている。
なお、本実施形態においては、高所における恐怖体験をシミュレートするゲーム(以下、「高所恐怖体験ゲーム」という。)を用いて以下の説明を行う。
2.ゲームシステムの構成
2−1.構造体
次に、上記の図1とともに図3及び図4を用いて本実施形態のゲームシステム1における構造体10について説明する。なお、図3は、本実施形態における構造体10の構造を示す平面図であり、図4は、本実施形態における構造体10の構造を示す断面図である。
構造体10は、プレーヤPが移動可能であってゲームを実行する実空間が形成された筐体であって、例えば、上記の図1、並びに、図3及び図4に示すように、天井15及び床16と、その四方を覆う壁17とによって形成された直方体の箱形構造を有している。
そして、構造体10には、プレーヤPであるプレーヤPが体験型のゲーム開始を待機する待機エリア11と、当該体験型のゲームを実行するプレーエリア12と、を有している。特に、プレーエリア12には、ゲームスタート時にプレーヤPが存在するスタートゾーン13と、プレーヤPが実際に移動して所定の環境及び状況を体験するゾーンであってプレーヤP毎にゲーム中にプレーヤPの存在が許可された移動経路Rが形成された移動体験ゾーン14と、が含まれる。
天井15には、待機エリア11からプレーエリア12に渡って、かつ、移動体験ゾーン14においては移動経路Rに沿って、HMD20を吊持する吊持ユニット30及びプレーヤPの転倒を防止する転倒防止ユニット40が摺動可能に取り付けられた複数の吊持制御ユニット50が形成されている。
そして、各吊持制御ユニット50には、該当する移動経路におけるシミュレーション制御装置100が設けられている。
また、天井15には、プレーヤPのプレーヤ状態及び演出用オブジェクト80の状態を
検出するために用いる複数の撮像カメラ70が所定の位置に配設されている。プレーヤPのプレーヤ状態には、例えば、プレーヤPの頭部の位置及び向き(姿勢)が含まれる。
床16は、待機エリア11及びプレーエリア12のエリア毎、並びに、スタートゾーン13及びに移動体験ゾーン14のゾーン毎に、異なる構成を有している。
具体的には、プレーエリア12のスタートゾーン13においては、演出手段の1つとしてエレベータによって上下する環境を作り出すバネが組み込まれたパネル(すなわち、バネ床パネル)92によって構成されている。
また、プレーエリア12の移動体験ゾーン14は、プレーヤPが歩行するための金属その他の所定の部材(後述の移動経路部材93)によって構成された移動経路Rと、プレーヤPの移動が禁止され、当該プレーヤPが転倒した際に当該プレーヤPを保護するマットなどによって構成された非移動経路NRと、によって構成されている。
さらに、本実施形態のスタートゾーン13は、エレベータの室内空間の仮想3次元空間として提供するための構造を有しており、スタートゾーン13と移動体験ゾーン14の境界には、演出装置として、シミュレーション制御装置100の制御によって開閉が制御されるエレベータの扉として機能する自動扉91が設けられている。
特に、移動経路R上(具体的には移動経路部材93の端点)には、演出用オブジェクト80が配設されている。また、非移動経路NR上には、送風機90などの演出装置が必要に応じて形成されているとともに、必要に応じて接触センサなどのセンサユニットが形成されていてもよい。
壁17は、所定の壁面パネル又はプレーヤPによる衝突に基づく負傷などから保護するマットから構成されている。
2−2.HMD及び吊持ユニット
次に、上記の図4ともに図5を用いて本実施形態のゲームシステムに用いるHMD20及び当該HMD20を吊持する吊持ユニット30について説明する。
なお、図5は、本実施形態のゲームシステムに用いるHMD20の構成を示す斜視図及び側面図の一例である。また、例えば、本実施形態のHMD20は、本発明の装着型画像表示装置を構成する。
HMD20は、シミュレーション制御装置100の制御の下、プレーヤPの頭部に装着された非透過型の仮想3次元空間の画像を表示するウェアラブルの表示装置あって、当該表示装置外の外界の様子を認識不能にしてプレーヤPに表示させた画像のみを視認させ、拡張現実を視覚によってプレーヤPに体験させるための表示装置である。
例えば、HMD20は、上記の図4及び図5に示すように、プレーヤPの両眼を完全に覆う(すなわち、マスクする)構造を有し、かつ、検出されたプレーヤ状態に連動させつつ、プレーヤPから見える、構造体10内の実空間に対応付けられたシミュレーション空間のシミュレーション画像を視認させるための構成を有している。
また、HMD20の上部には、プレーヤPの頭部の向き及び位置を検出するためのマーカユニット(以下、「頭部検出用マーカユニット」という。)60aが形成されている。そして、HMD20は、例えば、200×1080のピクセルの表示サイズ、及び、90fPSのリフレッシュレートを有している。
なお、HMD20は、図示しないヘッドフォンジャックを有し、当該ヘッドフォンジャックにヘッドフォン61が接続される。そして、ヘッドフォン61は、HMD20とともにプレーヤPに装着される。また、ヘッドフォン61には、シミュレーション制御装置100によって生成されたシミュレーション空間における立体音響を構成する環境音が出力される。
吊持ユニット30は、HMD20及びプレーヤPの上方、例えば、構造体10の天井15に配設された吊持制御ユニット50と連結することによって、構造体10に吊持されつつ、かつ、HMD20を吊持する構成を有している。
特に、本実施形態の吊持ユニット30は、プレーエリア12のプレーヤPにおけるあらゆる方向への移動や動きに対応させて吊持するために、HMD20を構造体10の上方(すなわち、天井15)であってプレーヤPの頭上に形成されている。
そして、吊持ユニット30は、HMD20とシミュレーション制御装置100とを有線によって接続するための配線(以下、「ケーブル」という。)を有している。
具体的には、吊持ユニット30は、例えば、図4及び図5に示すように、吊持制御ユニット50と連結するために用いられる連結部材31と、当該連結部材31に取り付けるための形状が形成された端部(以下、「第1端部」という。)を有する紐状部材(すなわち、ケーブル)32と、紐状部材32の第1端部とは異なる第2端部とHMD20と接続する接続部材33と、から構成される。
特に、紐状部材32は、プレーヤPが転倒しそうになるなどプレーヤPが大きく動くことによってHMD20がプレーヤPから着脱された場合に、構造体10の床面に接地することを未然に防止することが可能な構造を備えている。
具体的には、紐状部材32は、伸縮自在であって、ミュレーション制御装置から送信された所定の信号やデータをHMD20に転送するケーブルによって構成される。
例えば、紐状部材32は、HMD20がプレーヤPから着脱された際に、当該HMD20が構造体10の床面に接地することを未然に防止する構造としては、HMD20がプレーヤPから着脱しても構造体10の床面に接地しない長さを有していること、当該紐状部材が伸縮可能なスパイラル状になっていること、又は、紐状部材の長さを調整するために当該ケーブルを巻き取る構造を備えている。
なお、本実施形態のHMD20は、これらに限らず、プレーヤPに装着されて当該プレーヤPに視認可能に画像が表示されるものであればよく、シミュレーションを的確に行うことができれば透過型のHMD20であってもよい。
また、HMD20とシミュレーション制御装置100とが無線通信によって信号又はデータの転送を行う場合には、紐状部材32は、ケーブルである必要はなく、所定の材質の紐そのものであってもよいし、バンドなどの幅のある帯状の部材であってもよい。
さらに、吊持ユニット30の一部は、具体的には、連結部材31及び紐状部材32は、後述のように、転倒防止ユニット40と共通する部材となっている。
2−3.転倒防止ユニット
次に、上記の図4を用いて本実施形態のゲームシステムにおける転倒防止ユニット40
について説明する。
転倒防止ユニット40は、HMD20を装着していること、歩行可能な移動経路Rが狭いこと、又は、その双方によって、プレーヤPがバランスを崩した場合、又は、当該バランスを崩しプレーヤPの意図に反して転倒した場合に、プレーヤPを支持するため、及び、プレーヤPの転倒を防止するために用いられる。
すなわち、転倒防止ユニット40は、プレーヤPがバランスを崩した場合に、HMD20の破損やそれに基づくプレーヤPの負傷を防止するだけなく、ゲームのプレー中にHMD20が装着されていることによって生ずるプレーヤPの転倒(移動中にバランスを崩すことによる転倒など)をも防止することが可能な構成を有している。
具体的には、転倒防止ユニット40は、例えば、上記の図4に示すように、プレーヤPを保持するホルダ部材41と、構造体10からプレーヤPを吊持する吊持部材と、を有し、吊持部材は、吊持ユニット30の部材、すなわち、上記の連結部材31及び紐状部材32によって構成される。
ホルダ部材は、例えば、袖部分を有していないベストタイプの上着によって構成されており、プレー中に、プレーヤPに着用させることによってプレーヤPの状態を保持する。そして、ホルダ部材41は、紐状部材32の一端と連結されており、構造体10の天井15に形成される連結部材31を介してプレーヤPの身体を支持する構成を有している。
2−4.吊持制御ユニット
次に、上記の図1、図3及び図4を用いて本実施形態のゲームシステムにおける吊持制御ユニット50について説明する。
本実施形態の吊持制御ユニット50は、構造体10内の実空間内におけるプレーヤPの移動に応じてプレーヤP自体及びHMD20の吊持位置を変更させるためのユニットであり、常に上方(すなわち、構造体10の天井方向)からHMD20及びプレーヤPを吊持する構成を有している。
そして、吊持制御ユニット50は、HMD20及びプレーヤPを実空間内において適した位置で吊持し、プレーヤPの移動方向への移動や動きに対応させることが可能な構成を有するとともに、プレーヤPの安全性を確保しつつ、プレーヤPのシミュレーション中の負傷やHMD20の破損や故障を含めて不測の事態を防止することができるようになっている。
したがって、吊持制御ユニット50は、プレーヤPが実空間内を自在に移動した場合であっても、HMD20に信号やデータを供給するケーブルやプレーヤPを保持する部材がプレーヤPの横や足下に存在することに基づく当該プレーヤPの移動の制限や不快感を的確に解消することができるとともに、プレーヤPの移動や動きに対しても常に的確にHMD20及びプレーヤPを吊持することができるようになっている。
具体的には、吊持制御ユニット50は、待機エリア11からプレーエリア12にかけて一体的に構成されており、実空間内を移動するプレーヤP又は姿勢が変化するプレーヤPに対してHMD20及び転倒防止ユニット40を追随させる構成を有している。
例えば、本実施形態の吊持制御ユニット50は、図1、図3及び図4に示すように、実空間を移動するプレーヤP毎に設けられ、待機エリア11(より詳細には、HMD20及び転倒防止ユニット40を装着した地点)からからプレーエリア12にかけてプレーヤP
の移動の移動方向に沿って形成されレール51と、吊持ユニット30の連結部材31と連結し、当該レール51上を摺動する摺動部材52と、によって形成される。
特に、各レール51は、プレーヤPが移動経路Rに沿って移動する移動体験ゾーン14(すなわち、プレーヤPが直線的に前後に移動する直線移動が行われるゾーン)においては、移動経路R上の天井部分に形成されている。
また、各レール51は、それ以外の実空間内のエリアにおいては、プレーヤPがHMD20及び転倒防止ユニット40の装着準備後やスタート位置への誘導などシミュレーションを実行する上で誘導される経路(以下、「誘導経路」という。)Sに沿って形成されたレール51によって構成される。
なお、レール51においては、プレーヤPの移動に応じて吊持ユニット30の位置を変更させることができれば、その形状や材質などは限定されない。
摺動部材52は、プレーヤPの移動や姿勢の変更などのプレーヤPの状態に応じて発生した張力に従ってレール51上を摺動し、吊持ユニット30を介してHMD20及びプレーヤPの吊持位置を変更させる。
また、摺動部材52は、図1、図3及び図4に示すように、HMD20とシミュレーション制御装置100とを電気的に接続するケーブルの長さを短くして信号やデータの転送を的確に実施するため、シミュレーション制御装置100が固定される構造を有し、当該シミュレーション制御装置100を一体的に摺動させる構成を有している。
なお、摺動部材52は、レール51上を摺動し、プレーヤPの移動や姿勢の変更などのプレーヤPの状態に応じて吊持ユニット30を介してHMD20及びの位置を変更させるための部材であれば、特に限定されない。
2−5.シミュレーション制御装置
次に、図6を用いて本実施形態のゲームシステムにおけるシミュレーション制御装置100について説明する。
なお、図6は、本実施形態におけるシミュレーション制御装置100のブロック構成を示す構成図である。さらに、本実施形態のシミュレーション制御装置100は、図8の構成に限定されず、その一部の構成要素を省略すること、他の構成要素を追加するなどの種々の変形実施が可能である。
シミュレーション制御装置100は、例えば、パーソナルコンピュータなどのコンピュータ制御を行うことが可能な装置によって構成され、管理者が操作を行うキーボードなどの操作部(図示せず)が着脱可能に構成されている。
また、シミュレーション制御装置100は、シミュレーション空間をプレーヤPに提供するため、ゲームが開始されると、プレーヤ状態及び経過時間に応じて、当該ゲームを進行させつつ、当該ゲームの進行状態に応じた画像を生成し、かつ、演出制御装置と連動して演出装置90〜93を制御する構成を有している。
特に、シミュレーション制御装置100は、撮像カメラ70から出力された画像を取得し、当該取得した画像からマーカユニット60におけるマーカを検出し、当該マーカが属するエリア及び他のマーカとの位置関係と、マーカが属するエリアにおける滞在時間と、に基づいてプレーヤ状態を検出する。
具体的には、シミュレーション制御装置100は、各種のデータが記憶される記憶部170と、シミュレーションを実行するためのアプリケーションなどのデータが記憶される情報記憶媒体180と、ゲームの実行及びそれによってシミュレートする環境を作り出すための各種の処理を実行する処理部101(コンピュータの一例)と、通信部196と、を有している。
記憶部170は、処理部101及び通信のワーク領域となるもので、その機能はRAM(DRAM、VRAM)などにより実現できる。特に、本実施形態の記憶部170は、主に、ゲームプログラムが記録される主記憶部172、画像バッファ174及びデータバッファ176を有している。
主記憶部172は、主に、ゲームプログラム(シミュレーション制御プログラムの一例)が記録される。また、データバッファ176は、自機のゲームデータが記憶される記憶領域であり、例えば主記憶の一部に設けられてソフトウェア的によって読み書きの制御が行われる構成でもよい。
なお、ゲームプログラムは、ゲーム処理を実行するための命令コードが記述されたソフトウェアである。また、ゲームデータは、プレーヤの特定状態を判定するためのデータ、ゲームプログラムの実行の際に必要なデータであり、演出用オブジェクト80のデータ、または、各種の演出装置90〜93の制御プログラムなどである。
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、HDD(ハードディスクドライブ)、または、メモリ(ROM等)などにより実現できる。
なお、処理部101は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。すなわち、情報記憶媒体180には、本実施形態の各部としてコンピュータ(操作部、処理部、記憶部、出力部を備える装置)を機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
通信部196は、ケーブルを介してHMD20との間で通信を行うとともに、有線又は無線のネットワークを介して撮像カメラ70及び演出装置90〜93との間で通信を行うものであり、その機能は、通信用ASICまたは通信用プロセッサなどのハードウェア、及び、通信用ファームウェアにより実現できる。
なお、本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、図示しないホスト装置(サーバシステム)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(または、記憶部170)に配信されてもよい。このようなホスト装置による情報記憶媒体の使用も本発明の範囲内に含めることができる。
処理部101(プロセッサ)は、ゲーム開始からのタイミング及び撮像カメラ70から出力された画像のデータ(以下、「画像データ」という。)及びプログラムなどに基づいて、ゲーム演算処理、画像生成処理、音生成処理及び演出制御処理などを行う。
処理部101は、記憶部170をワーク領域として各種処理を行う。この処理部101の機能は、各種プロセッサ(CPU、GPU等)、ASIC(ゲートアレイ等)などのハードウェア及びプログラムにより実現できる。
処理部101は、ゲーム演算部110、オブジェクト空間設定部111、状態検出処理部112、移動・動作処理部113、演出制御処理部114、通信制御部120、画像生成部130及び音生成部140を含む。なおこれらの一部を省略する構成としてもよい。
ゲーム演算部110は、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、シミュレーション空間を形成する上で必要なオブジェクト(演出用オブジェクト80も含む。)を配置する処理、オブジェクトを表示する処理、ゲーム終了条件が満たされた場合にゲームを終了する処理、及び、プレーヤ状態が特定状態(具体的には、ゲームの進行上予め該当する状態)であるか否かを判定する判定処理などがある。
特に、本実施形態のゲーム演算部110は、検出されたプレーヤ状態(具体的には、プレーヤPの実空間内おける位置及び当該プレーヤPの姿勢)に応じてプレーヤPの視認方向及び視認するエリア(以下、「視認エリア」という。)を検出するとともに、当該検出した視認方向、視認エリア、現在のゲーム環境及び当該ゲームの進行状況に応じて3次元空間におけるプレーヤPから見える空間を設定する。
また、ゲーム演算部110は、検出されたプレーヤ状態に応じて、又は、ゲーム開始からの所定の経過時間に基づいて、ゲームの終了条件が満たされたか否かを判定し、当該ゲームの終了条件が満たされたと判定した場合にゲームを終了させる。
一方、ゲーム演算部110は、データバッファ176に予め記憶されたデータに基づいて、検出されたプレーヤ状態に応じてプレーヤPがゲームの進行上予め該当する特定状態になったか否かを判定し、その結果に応じてゲームの進行を行うとともに、演出制御処理部114、画像生成部130、及び、音生成部140に該当する演出を行うための指示を行う。
オブジェクト空間設定部111は、演出用オブジェクト80、建物、移動経路R、柱、壁、マップ(地形)などの所定のシミュレーション空間を構築するための各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト)をオブジェクト空間(すなわち、仮想3次元空間)に配置設定する処理を行う。
すなわち、ワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
特に、本実施形態においては、演出用オブジェクト80としては、動物などのシミュレーション空間内に登場する移動可能なオブジェクト(以下、「演出用移動オブジェクト」という。)及びシミュレーション空間内に固定されたオブジェクトをプレーヤPに認識させるための実空間内に実際に存在させるためのオブジェクト(以下、「演出用固定オブジェクト」という。)を含み、オブジェクト空間設定部111は、これらの演出用オブジェクト80をシミュレーション空間に配置する。
なお、本実施形態においては、演出用移動オブジェクトには、実空間内において実際に移動するとともに、シミュレーション空間内においても移動するオブジェクトとして画像化されるオブジェクト(以下、「真性移動オブジェクト」という。)の他に、当該実空間内においては移動せず、画像化された際にシミュレーション空間内おいてのみ移動するオブジェクト(以下、「擬似的移動オブジェクト」という。)も含まれる。
状態検出処理部112は、プレーヤPを画像化した複数の撮像カメラ70からそれぞれ出力されたプレーヤPの画像(以下、「プレーヤ画像」という。)内における同タイミングのプレーヤPの両手及び両足と、HMD20の上部と、に配設されたマーカユニット60の位置を特定する。
そして、状態検出処理部112は、特定した各画像内における各マーカユニット60の位置、各マーカユニット60における他のマーカユニット60との位置関係性、及び、各マーカユニット60の各位置での滞在時間の各情報に基づいて、プレーヤPの実空間内における位置及び姿勢を示すプレーヤ状態を検出する。
特に、撮像カメラ70毎に出力された画像に対して予め定められた実空間内の複数のエリアが設定されており、状態検出処理部112は、各マーカユニット60がいずれのエリアに属しているかを同タイミングにおける各プレーヤP画像に含まれるマーカユニット60の位置を検出することによって、各マーカユニット60の実空間内における位置を画像フレーム毎に検出する。
また、状態検出処理部112は、フレーム毎に当該各マーカユニット60の実空間内における位置を検出しつつ、以前のフレームの各マーカユニット60の位置と比較し,複数のフレームにおいて同一の位置に存在するとして検出した各マーカユニット60におけるフレーム数に基づいて、各マーカユニット60の同一位置における滞在時間を検出する。
そして、状態検出処理部112は、同タイミングにおける各マーカユニット60における実空間における位置、及び、当該各マーカユニット60のそれまでの滞在時間に基づいて、プレーヤPの実空間内における姿勢を検出する。
例えば、本実施形態の状態検出処理部112は、
(1)頭部、両手又は両足などのプレーヤPの所与の部位の位置、高さ及び時間の少なくとも1の部位の情報(以下、「部位情報」という。)に基づいて、プレーヤPの実空間内における位置(すなわち、実空間内におけるプレーヤPの中心位置(重心位置)の座標)を特定し、
(2)プレーヤPの部位情報に基づいて、プレーヤPの頭、胴体及び手足などの各部位の位置関係から構築されるプレーヤPの姿勢を特定し、又は、
(3)(1)及び(2)の双方を特定し、
プレーヤPの位置、姿勢又は双方に基づいてプレーヤ状態を検出する。
そして、状態検出処理部112は、
(A)プレーヤPの頭の位置に基づいて、実空間におけるプレーヤPの視点位置やその方向を検出すること、
(B)プレーヤPの手の位置又は足の位置に基づいて、実空間におけるプレーヤPの立ち位置や姿勢を検出すること、及び、
(C)検出したプレーヤPの立ち位置や姿勢に基づいて、プレーヤPをモデリングすること(ボーンの形成)
実行する。
なお、例えば、ユーザの部位には、当該ユーザの頭部、手又は足を含み、部位情報には、各部位の位置(ユーザ移動空間上の位置座標)、向き、形状(平面形状や立体形状)又は色(グレースケールを含む。)などの各種情報を含む。
他方、状態検出処理部112は、演出用移動オブジェクトにおいても、プレーヤPと同
様に、当該演出用移動オブジェクトに配設されたマーカユニット60の実空間における位置を特定し、当該したマーカユニット60の実空間内における位置に基づいて、当該演出用移動オブジェクトの実空間内における位置(中心又は重心の位置)、及び、必要に応じてその状態を検出する。
移動・動作処理部113は、検出されたプレーヤ状態、現在のゲーム環境、ゲームの進行状況又はこれらの2以上の情報に基づいて、プレーヤPと演出用オブジェクト80との位置関係を算出し、当該算出したプレーヤPと演出用オブジェクト80との位置関係に基づいて演出用オブジェクト80の移動・動作演算(移動・動作シミュレーション)を行う。
すなわち、移動・動作処理部113は、検出したプレーヤ状態等に基づいて、各種のオブジェクトをオブジェクト空間内で移動させること、及び、オブジェクトを動作(モーション、アニメーション)させることの各処理を行う。
具体的には、移動・動作処理部113は、各種のオブジェクトの移動情報(位置、回転角度、速度、または、加速度)及び動作情報(オブジェクトを構成する各パーツの位置、または、回転角度)を、1フレーム(1/60秒)毎に順次求めるシミュレーション処理を行う。
なお、フレームは、オブジェクトの移動・動作処理(シミュレーション処理)及び画像生成処理を行う時間の単位である。
また、移動・動作処理部113は、演出用移動オブジェクトに対しては、実空間内における位置、プレーヤPとの実空間内における位置関係、演出用移動オブジェクトの状態(演出用移動オブジェクトの移動方向やその姿勢)、現在のゲーム環境やゲームの進行状況に基づいて、シミュレーション空間における移動情報及び動作情報を算出する。
特に、移動・動作処理部113は、演出用移動オブジェクトの擬似的移動オブジェクトについては、ユーザ状態に応じて、実空間の位置や状態と連動させつつ、又は、当該実空間の位置や状態とシームレスに画像化可能に、擬似的移動オブジェクトの実空間内における位置、状態又はその双方に基づいて、シミュレーション空間における移動情報及び動作情報を算出する。
例えば、擬似的移動オブジェクトが猫などの動物のオブジェクトの場合には、移動・動作処理部113は、当該擬似的移動オブジェクトが実空間に配置されている位置とは異なる位置で動作をし、又は、異なるエリアを動き回り、所定のタイミングで当該擬似的移動オブジェクトが実空間に配置されている位置に戻り、実空間に配置されている状態と同様な状態となるための移動情報及び動作情報の演算を行う。
また、このような場合に、移動・動作処理部113は、当該擬似的移動オブジェクトが実空間に配置されている位置で画像化するものの、その姿勢や仕草などの動作を画像化するための移動情報及び動作情報の演算を行う。
より詳細には、移動・動作処理部113は、
(1)ゲーム開始時に、実空間上の移動経路Rの終点に擬似的移動オブジェクトとしての猫オブジェクトが配置されている場合であっても、当該猫オブジェクトがプレーヤPのそばを動き回る擬似的な動作、
(2)プレーヤPが移動経路Rの終点に向かって一定の距離進んだ際に、実空間上に配置されている位置に向かって猫オブジェクトが移動し、当該配置位置で実空間上の状態と同
一の状態となる疑似的な動作から実際の状態への移行動作
(3)プレーヤPが猫オブジェクトを抱えた際の種々の仕草など実空間上において変化しない疑似的な動作、
(4)プレーヤPが猫オブジェクトを抱えた状態から手放した際に、当該猫オブジェクトが落下する場合に実空間上の移動と連動する動作、
を画像化するための移動情報及び動作情報の演算を行う。
演出制御処理部114は、プレーヤ状態(特定状態含む。)、演出用移動オブジェクトの状態、現在のゲーム環境及びゲームの進行状況に応じて各種の演出装置90〜93を制御するための処理を実行する。具体的には、演出制御処理部114は、各演出装置90〜93における電源のON及びOFF、能力の変更、又は、予め設定されたプログラムに基づく制御を実行する。
例えば、演出制御処理部114は、演出装置90〜93が送風機90の場合には、送風の強弱含む駆動制御及び停止制御、演出装置90〜93が温度調整装置の場合には、温度の調整、演出装置90〜93が移動経路Rの場合には、当該移動経路R内に仕込まれた揺動ユニット、又は、振動ユニットの制御などプレーヤPの状態に応じて変化させる必要のある演出装置90〜93を制御する。
通信制御部120は、HMD20に送信するデータ(主にシミュレーション空間をプレーヤPに見せるための画像データ)を生成する処理等を行う。また、通信制御部120は、各演出装置90〜93を制御するための制御信号を送受信する。
画像生成部130は、処理部101で行われる種々の処理(ゲーム処理)の結果やプレーヤ状態(特定状態を含む。)などの各種の情報に基づいて描画処理を行い、これにより画像(特にシミュレーション空間をプレーヤPに見せるための画像)を生成し、通信制御部120を介してHMD20に出力する。
特に、画像生成部130は、まずオブジェクト(モデル)の各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトルまたはα値等)を含むオブジェクトデータ(モデルデータ)を取得し、当該取得したオブジェクトデータ(モデルデータ)に含まれる頂点データに基づいて、頂点処理(頂点シェーダによるシェーディング)を実行する。
なお、画像生成部130は、頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。
また、画像生成部130は、頂点処理としては、頂点処理プログラム(頂点シェーダプログラム、第1のシェーダプログラム)に従って、頂点の移動処理や、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、または、透視変換等のジオメトリ処理を実行し、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。
そして、画像生成部130は、頂点処理後の頂点データに基づいてラスタライズ(走査変換)を実行し、ポリゴン(プリミティブ)の面とピクセルとを対応付ける。
一方、画像生成部130は、ラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(ピクセルシェーダによるシェーディング、フラグメント処理)を実行する。
特に、ピクセル処理では、画像生成部130は、ピクセル処理プログラム(ピクセルシェーダプログラム、第2のシェーダプログラム)に従って、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を記憶部170(ピクセル単位で画像情報を記憶できるバッファ。VRAM、レンダリングターゲット)に出力(描画)する。
また、ピクセル処理では、画像生成部130は、画像情報(色、法線、輝度、α値等)をピクセル単位で設定または変更するパーピクセル処理を行う。これにより、オブジェクト空間内においてプレーヤPから見える画像を生成する。
さらに、画像生成部130は、頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現する。
なお、プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
他方、画像生成部130は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
特に、画像生成部130は、ジオメトリ処理としては、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理を実行する。
そして、画像生成部130は、ジオメトリ処理後(透視投影変換後)のオブジェクトデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)を、記憶部170に記憶する。
また、画像生成部130は、記憶部170に記憶されるテクスチャ(テクセル値)をオブジェクトにマッピングするための処理であるテクスチャマッピングを実行する。具体的には、画像生成部130は、オブジェクトの頂点に設定(付与)されるテクスチャ座標等を用いて記憶部170からテクスチャ(色(RGB)、α値などの表面プロパティ)を読み出す。
そして、画像生成部130は、2次元の画像であるテクスチャをオブジェクトにマッピングする。画像生成部130は、この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
さらに、画像生成部130は、隠面消去処理としては、描画ピクセルのZ値(奥行き情報)が入力されるZバッファ(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行う。
すなわち、画像生成部130は、オブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファに入力されるZ値を参照する。そして参照されたZバッファのZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、プレーヤPから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファのZ値を新たなZ値に更新する。
そして、画像生成部130は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)のαブレンディング(α合成)を実行する。
なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして出力できる。
音生成部140は、プレーヤ状態(特定状態を含む。)など処理部101で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音(シミュレーション空間における立体音響としての環境音)を生成し、HMD20を介してヘッドフォン61に出力する。
2−6.プレーヤ用のマーカユニット及び撮像カメラ
次に、上記の図1及び図4を用いて本実施形態のゲームシステムにおけるプレーヤ用のマーカユニット60及び撮像カメラ70について説明する。
本実施形態においては、上述のように、プレーヤ状態を検出するために、各プレーヤPには、複数の部位にマーカユニット60を配設する。具体的には、本実施形態のマーカユニット60は、上記の図1及び図4に示すように、頭部、両手及び両足の複数の部位に配設される。
特に、各マーカユニット60は、反射シートなどの表面が反射する材料によって形成され、かつ、球場のマーカによって形成されている。例えば、各マーカユニット60は、光が照射された場合に、当該光を反射して白く光る又は特定の色によって光る構成を有している。
具体的には、各マーカユニット60は、頭部検出用マーカユニット60a、右手又は左手検出用マーカユニット60b、及び、右足又は左足検出用マーカユニット60cから構成される。
なお、本実施形態の構造体10内の移動体験エリアには、各マーカユニット60に光を照射させる図示しない光源ユニットが設けられている。
また、マーカユニット60の光る色は、特に限定されないが、複数のプレーヤPが移動体験エリアに同時に存在する場合には、プレーヤP毎に色を変えてもよいし、マーカユニット60が装着された部位毎にマーカユニット60の光る色を変えてもよい。
各撮像カメラ70は、例えば、図1に示すように、それぞれ、構造体10内の予め設定された位置に固定配設され、画角内に撮像されたエリアを画像化してその画像データをシミュレーション制御装置100に順次出力する。
特に、本実施形態の各撮像カメラ70は、実空間内のプレーヤPが移動する移動範囲(具体的には、移動経路R)の外側に形成されている。
そして、各撮像カメラ70は、プレーエリア12を画像化し、当該プレーエリア12内に移動し、姿勢を変更し、又は、その双方を実施するプレーヤPを全て画像化することが可能に配置されている。
また、本実施形態の各撮像カメラ70は、CCDなどの所定の撮像素子と、所定の焦点距離を有するレンズと、を備え、予め定められた画角及び焦点距離によって当該画角内のエリアを画像化し、当該画像化した画像データを順次シミュレーション制御装置100に出力する。
なお、プレーヤPがプレーエリア12内を自由に移動する事ができる場合には、プレーエリア12を全て画像化する必要があり、当該プレーエリア12の撮像漏れがないように各撮像カメラ70が配設される。
また、各撮像カメラ70は、有色のマーカユニット60を検出するためには、カラー形式のカメラを用いることが要求される。
また、マーカユニット60の数及び配設位置は、上記に限らない。撮像カメラ70によって撮像可能な位置であれば、基本的にはその数配置位置は限定されない。
2−7.演出用オブジェクト及び演出装置
次に、上記の図1、図3及び図4並びに図7を用いて本実施形態のゲームシステムにおける演出用オブジェクト80及び演出装置90〜93について説明する。なお、図7は、本実施形態の演出装置である移動経路部材93の一例を示す図である。
本実施形態の演出用オブジェクト80及び演出装置90〜93は、構造体10内に形成された実空間内に配設されるとともに、シミュレーション制御装置100の制御の下、シミュレーション画像と連動することによってプレーヤPに所与の演出を体感させる構成を有している。
特に、演出用オブジェクト80及び演出装置90〜93は、屋外空間や屋内空間のみならず、高所、閉所、危険な場所、特殊空間、暑い場所又は寒い場所などのシミュレーション空間を体感させるための演出用オブジェクト又は演出装置であって、シミュレーション画像と連動させてプレーヤPがシミュレーションによって見えている状況を体感的にも作り出し、臨場感のあるシミュレーションを提供するために用いられる。
具体的には、本実施形態の演出用オブジェクト80は、上述のように、演出用移動オブジェクト及び演出用固定オブジェクトを含み、演出用移動オブジェクトには、真性移動オブジェクト及び擬似的移動オブジェクトが含まれる。
そして、疑似的移動オブジェクトについては、実空間内における演出用オブジェクト80の状態とは異なる状態で画像化される。
演出用移動オブジェクトは、実空間内における位置、プレーヤPとの実空間内における位置関係、及び、演出用移動オブジェクトの状態(演出用移動オブジェクトの移動方向やその姿勢)を検出するためのマーカユニット60dを有している。
そして、演出用移動オブジェクトは、マーカユニット60dを撮像カメラ70によって撮像させることによって、プレーヤPの各部位と同様に、シミュレーション制御装置100に実空間の位置、状態及びその双方を認識させる。
例えば、演出用オブジェクト80のマーカユニット60dとしては、プレーヤPの各部位に配設されるマーカユニット60a、b、cと同じものが用いられる。ただし、プレーヤPのマーカユニット60a、b、cの色又は記憶されている各種の情報を区別することによって複数のプレーヤP又はそのゲームに登場する演出用オブジェクト80毎に異なる
ことが好ましい。
なお、演出用オブジェクト80の内部に振動ユニットを配設し、シミュレーション制御装置100において当該振動ユニットの振動制御を行うことによって、シミュレ−ション画像と連動して又は単独でプレーヤPを驚かす演出を実行してもよい。
演出装置90〜93は、シミュレーション空間を、より現実的な空間として確実に擬似的に創り出すための装置であって、プレーヤPに対して所与の演出効果を直接提供する装置である。
特に、演出装置90〜93は、シミュレーション画像に連動させつつ、実空間に単に配置され、当該配置とその構造によってプレーヤPに所与の演出効果を提供する構造型演出装置と、検出されたプレーヤ状態、ゲーム環境及びゲームの進行状況に応じて所与の演出効果を提供する連動型演出装置を含む。
そして、連動型演出装置には、例えば、図1に示す送風機90、及び、図示しない温度調整装置、照明装置、又は、振動装置などのシミュレーション空間の環境を形成するための演出装置を含む。
また、構造型演出装置には、移動経路Rを構成する移動経路部材93、スタート位置を認識されるスタートブロック(図示しない)、又は、エレベータ内を認識させるためのバネ床パネル92など壁面や床面の凹凸又は素材などのプレーヤPに接触感を体感させるための部材を含む。
例えば、送風機90は、上記の図1及び図4に示すように、プレーヤPがスタートゾーン13から移動体験ゾーン14にゾーンが切り替わったとき、当該プレーヤPの前面に向けて送風を出力し、また、移動経路Rに移動した場合にプレーヤPの下から当該プレーヤPの正面に向けて送風を出力する構成を有している。
移動経路部材93は、上記の図3及び図7に示すように、予め定められたプレーヤPが移動する移動経路R下に設けられ、シミュレーション画像に応じて振動可能又は揺動可能に形成された演出可能領域93aが構成される。
すなわち、演出可能領域93aにおける移動経路部材93は、図7(A)に示すように、構造体10の床面(具体的には、非移動経路NR)から異なる高さ(天井方向の高さ)によって形成されている。
そして、演出可能領域93aにおける移動経路部材93は、プレーヤPが移動経路部材93上に歩行開始するなど所与の条件に基づき演出可能領域を振動駆動又は揺動駆動をする複数の駆動ユニット95によって構成されている。
特に、各駆動ユニット95は、それぞれ、移動経路部材93が床面と水平方向であって移動経路方向(プレーヤPの進行方向)に対して直角となる方向に回転する車輪96と、車輪96が接地する面から所定の高さ(例えば、5mm程度)の隙間Dを有する移動経路部材93を支持する支持板97と、から構成されている。
そして、駆動ユニット95は、演出可能領域93aにおいて移動経路Rに沿って他の駆動ユニット95と隣接されて配設される。
なお、演出可能領域93aにおける移動経路部材93において、全部の移動経路Rが駆
動ユニット95によって構成されていてもよいし、当該全部の移動経路Rが駆動しない移動経路部材93との組み合わせによって構成されていてもよい。そして、図7(B)には、駆動ユニット95が連続的に移動経路Rを構成する例を示す。
さらに、駆動ユニットは、図7(A)及び(B)に示すように、自立的に振動駆動又は揺動駆動するように構成されていてもよいし、演出制御処理部114によって機械的に振動駆動及び揺動駆動が制御されてもよい。
一方、演出装置は、シミュレーション空間のみ疑似的にその構造又は形態を変化させてもよい。すなわち、演出用オブジェクト及び演出装置は、実空間上においては、構造又は形態の変化は生じていないが、シミュレーション空間のみ疑似的にその構造又は形態を変化させることも可能である。
例えば、所定のイベントが発生した場合に、画像生成部130は、移動経路部材93の幅を疑似的に狭くすること、壁17が疑似的に近づいてくること、又は、天井15が疑似的に下がっていることなど、シミュレーション空間のみ疑似的にその構造又は形態を変化させてもよい。
3.ゲームシステムの動作
次に、図8及び図9を用いて本実施形態におけるゲームシステム1の動作について説明する。なお、図8及び図9は、本実施形態におけるゲームシステム1の動作を示すフローチャートである。
本動作は、高所における恐怖体験をシミュレートする高所恐怖体験ゲームを用いて説明する。特に、高所恐怖体験ゲームは、プレーヤPがスタートゾーン13からスタートして所定の幅の移動経路部材93上を移動させ、当該移動経路部材93上の端点(スタートゾーン13から遠い点)に存在する演出用オブジェクト80(例えば猫)を抱えて(救出して)当該スタートゾーン13まで制限時間内に戻ってくるゲームである。
また、プレーヤPは、HMD20及び転倒防止ユニット40を既に装着しており、ハードウェア的な準備は整っているものとする。
まず、ゲーム演算部110は、HMD20及び転倒防止ユニット40が装着されたプレーヤPの所定の位置(具体的にはスタートゾーン13内)に存在することを前提に、管理者の操作に基づく図示しないボタンの押し下げの有無(すなわち、ゲーム開始)を検出する(ステップS101)。
なお、ゲーム演算部110は、ステップS101の処理として、状態検出処理部112によるプレーヤ状態の検出を開始するとともに、プレーヤPが所定の位置に存在するか否かを検出してゲーム開始を検出してもよい。
次いで、ゲーム演算部110は、高所恐怖体験ゲームに関する各種の演算を開始するとともに、オブジェクト空間設定部111、状態検出処理部112、移動・動作処理部113、演出制御処理部114、画像生成部130及び音生成部140は、それぞれ、高所恐怖体験ゲームにおけるシミュレーションに関する各処理を開始する(ステップS102)。
具体的には、
(1)状態検出処理部112は、プレーヤPの各部及び演出用オブジェクト80に配設されたマーカユニット60の検出を開始しつつ、プレーヤ状態及び演出用オブジェクト80
の状態の検出を開始し、
(2)オブジェクト空間設定部111及び移動・動作処理部113は、プレーヤ状態、演出用オブジェクト80の状態、ゲーム環境及びゲームの進行状況に応じてプレーヤPから見えるシミュレーション空間の構築を開始し、
(3)演出制御処理部114は、プレーヤ状態、演出用オブジェクト80の状態、ゲーム環境及びゲームの進行状況に応じて該当する演出装置(送風機90、自動扉91及びバネ床パネル92)の制御を開始し、
(4)画像生成部130及び音生成部140は、プレーヤ状態、演出用オブジェクト80の状態、ゲーム環境及びゲームの進行状況に応じて、シミュレーション画像の生成及びそれに伴う音の生成を開始する。
なお、ステップS102の処理移行は、ゲームの終了が判定されるまで、開始された各処理は継続して実行される。
次いで、画像生成部130は、エレベータ内の画像をHMD20に表示するとともに、演出制御処理部114は、スタートゾーン13におけるバネ床パネル92を制御し、スタートゾーン13におけるシミュレーション処理を実行する(ステップS103)。
次いで、演出制御処理部114は、所定のタイミング(スタートゾーン13におけるシミュレーション処理の終了)を検出すると(ステップS104)、演出制御処理部114は、ゲーム開始処理を実行するとともに(ステップS105)、ゲーム演算部110は、ゲーム開始のカウントダウンを開始する(ステップS106)。
例えば、演出制御処理部114は、ゲーム開始処理としては、
(1)バネ床パネル92の制御の終了、
(2)スタートゾーン13と移動体験ゾーン14の間に形成された自動扉91(すなわち、エレベータの扉)を閉状態から開状態への制御、及び、
(3)送風機90による送風制御
などの該当する演出装置の制御を実行する。
次いで、ゲーム演算部110は、カウントダウンが終了したことを検出しつつ(ステップS107)、状態検出処理部112は、スタートゾーン13を超えて移動体験ゾーン14に移動したか否かの判定(以下、「スタートエラー判定」という。)を実行する(ステップS108)。
このとき、状態検出処理部112は、カウントダウン終了前に、スタートゾーン13を超えて移動体験ゾーン14に移動したことを判定したと判定した場合には、HMD20に警告を通知し(ステップS109)、ステップS107の処理に移行する。
なお、本処理においては、状態検出処理部112は、ステップSゲーム開始動作の中断などのそれに伴う演出を実行して本動作をステップS105の処理からやり直してもよいし、ゲームを中断させてもよい。
また、ゲーム演算部110は、カウントダウンが終了したことを検出すると、高所恐怖体験ゲームの実行に関する各種の演算を開始させる(ステップS110)。具体的には、ゲーム演算部110は、制限時間のカウントを開始し、また、ゲーム終了処理の判定を開始する。
次いで、ゲーム演算部110は、ゲームの終了条件を具備したか否かを判定する(ステップS111)。具体的には、ゲーム演算部110は、状態検出処理部112と連動して
プレーヤ状態若しくは演出用オブジェクト80の状態が終了条件を満たしたか否か、及び、制限時間が「0」になったか否かを判定する。
例えば、ゲーム演算部110は、検出されたプレーヤ状態に基づいて、プレーヤPが移動経路R上から外れた特定状態となったか、及び、移動中に救出すべき演出用オブジェクト80を落下させ特定状態となったかなど終了条件を満たす特定状態となったか否かを判定する。
次いで、ゲーム演算部110は、ゲーム終了条件を具備していないと判定した場合には状態検出処理部112と連動して、又は、ゲームの進行状況に応じて、イベントの開始条件を具備したか否かを判定する(ステップS112)。
具体的には、ゲーム演算部110は、移動経路部材93上に移動したか否か、当該移動経路部材93上の第1位置(演出用オブジェクト80である猫オブジェクトが最初に配置された位置)まで到達したか否か、実空間上の演出用オブジェクト80である猫オブジェクトが配置された位置(移動経路部材93の終点)まで到達した否かなどプレーヤが所定の特定状態であるか否かを含めてイベントの開始条件を判定する。
このとき、ゲーム演算部110によって当該イベントの開始条件を具備したと判定された場合には、演出制御処理部114、画像生成部130及び音生成部140は、検出したイベントに応じた処理を実行し(ステップS113)、ゲーム演算部110によって当該イベント条件を具備していないと判定された場合には、ステップS111の処理に移行する。
具体的には、
(1)プレーヤPが、移動経路部材93上に移動したとする特定状態と判定された場合には、演出制御処理部114は、プレーヤPの下側に配設された送風機90を可動させて下からプレーヤPに風を送る演出を実行し、
(2)プレーヤPが、移動経路部材93上の第1位置(演出用オブジェクト80である猫オブジェクトが最初に配置された位置)まで到達したとする特定状態と判定された場合には、画像生成部130及び音生成部140は、猫オブジェクトが移動経路Rの終点まで逃げていく演出を実行し、
(3)プレーヤPが、猫オブジェクトが配置された位置まで到達したとする特定状態であると判定された場合には、当該猫オブジェクトを救出する演出を実行し、
(4)プレーヤPが、猫オブジェクトを抱えて救出したとする特定状態であると判定された場合には、画像生成部130及び音生成部140は、移動方向がスタートゾーン13に向かう方向になった場合には、移動経路部材93の幅を狭くする演出を実行し、
(5)プレーヤP、が猫オブジェクトを抱えた状態でスタートゾーン13に到達したとする特定状態であると判定された場合には、エレベータから脱出するなどのゲームクリアに関する演出を実行する。
一方、ゲーム演算部110は、当該ゲームの終了条件を具備したと判定した場合には、画像生成部130及び音生成部140は、ゲーム終了に関する演出を行うための画像及び音を生成して出力し(ステップS114)、本動作を終了させる。なお、ゲーム終了に関する演出としては、ゲームの終了条件に応じて異なる演出が実行される。
4.アイ入力
4−1.アイ入力の概要
本実施形態のシミュレーション制御装置100のゲーム演算部110は、主記憶部172に記録されたゲームプログラム(シミュレーション制御プログラムの一例)に従い、適
宜、表示処理部110A、計測部110B、受付け部110C、通知部110D、実行部110Eとして動作し、アイ入力を利用したユーザインタフェースとして機能する。ここでいう「アイ入力」は、プレーヤPがオブジェクトを目視するという動作によって自分の指示をシミュレーション制御装置100へ入力することである。以下、アイ入力に関する表示処理部110A、計測部110B、受付け部110C、通知部110D、実行部110Eの動作の概要を、説明する。
(1)表示処理部110A:
表示処理部110Aは、HMD20へ仮想3次元空間(図10の符号OBS)を表示する。例えば、表示処理部110Aは、オブジェクト空間設定部111及び画像生成部130を制御し、シミュレーション空間を構築するための各種オブジェクトを仮想3次元空間(図10の符号OBS)内に配置する。このオブジェクトには、アイコン(後述する押しボタンオブジェクトOB1〜OB4)、仮想コントローラ、仮想メカスイッチ、キャラクタ、アイテムなどが含まれる。また、表示処理部110Aは、画像生成部130を制御し、仮想3次元空間OBSに仮想カメラを設定し、仮想カメラの視野範囲(図10の符号DA)をプレーヤPに見せるための画像データを生成する処理を実行する。また、表示処理部110Aは、通信制御部120及び通信部196を制御し、当該画像データをHMD20へ出力する処理を実行する。また、表示処理部110Aは、状態検出処理部112が検出するプレーヤPの頭部の位置及び姿勢の変化に応じて、仮想3次元空間(図10の符号OBS)における仮想カメラの位置及び姿勢を変化させる処理を実行する。
(2)計測部110B:
計測部110Bは、仮想3次元空間(図11の符号OBS)に配置されたオブジェクト(例えば図11の符号OB1)に対するプレーヤPの目視時間を計測(チャージ)し、オブジェクト(図11の符号OB1)からプレーヤPの視線(図10の符号LSA)が外れた場合には、視線(図10の符号LSA)が外れている時間に応じて計測による計測値(以下、「チャージ量」という。)を減少させる。計測部110Bは、例えば、表示エリアDA内に位置する押しボタンオブジェクトOB1のヒットエリアOBHA(オブジェクトが存在しているとみなすエリアの一例)と、表示エリアDAに設定された視認エリアLSA(視線が存在しているとみなすエリアの一例)との位置関係に基づき、プレーヤPが押しボタンオブジェクトOB1を目視しているか否かを判定する処理(目視判定の処理)を実行する。
(3)受付け部110C:
受付け部110Cは、チャージ量が第1閾値Th1(例えば2秒)に達した場合にオブジェクト(図11の符号OB1)の選択(以下、「ロック」という。)の指示を受付け、チャージ量が第1閾値Th1より大きい第2閾値Th2(例えば5秒)に達した場合にオブジェクト(図11の符号OB1)のロックの確定の指示を受付け、確定の前にチャージ量が第3閾値Th3(例えばゼロ秒)まで低下した場合にオブジェクト(図11の符号OB1)のロックの解除を受付ける。但し、受付け部110Cは、仮にチャージ量が第2閾値Th2(例えば5秒)に達していなかったとしても、チャージ量が第1閾値Th1を超えており、かつ、プレーヤPが所定のアクションをした場合には、強制的にロックを確定してもよい。所定のアクションは、「実空間に配置されたボタンの押し下げ」であってもよいし、「確定用オブジェクトの目視」であってもよい。但し、以下の説明では、実空間に配置されたボタン及び確定用オブジェクトを用いない場合について説明する。
(4)通知部110D:
通知部110Dは、チャージ量の大きさの程度をプレーヤPへ通知する。通知部110Dは、例えば、オブジェクト空間設定部111を制御し、チャージ量の大きさに応じて変化する視覚効果(図14)をオブジェクト(図11の符号OB1)へ付すことによってプ
レーヤPへの通知を行う。なお、通知部110Dは、音生成部140に効果音を生成させ、通信制御部120及び通信部196を介して当該効果音をHMD20のヘッドフォン61へ出力することにより、プレーヤPへの通知を行ってもよい。また、通知部110Dは、プレーヤPへの通知を、プレーヤPの視覚、聴覚、触覚、嗅覚の少なくとも1つによって行うことができる(但し、以下では、視覚による通知を主として説明する。)。
(5)実行部110E:
実行部110Eとしてのゲーム演算部110は、オブジェクト(図11の符号OB1)のロックが確定した場合にオブジェクト(図11の符号OB1)に対応付けられた所定の処理を実行する。オブジェクト(図11の符号OB1)に対応付けられた所定の処理は、例えば、ゲームパラメータの設定処理、当該オブジェクトへの攻撃処理、当該オブジェクトの移動処理、他のオブジェクトに対する処理、所定プログラムを実行する処理などである。また、実行部110Eが所定の処理を実行するタイミングは、確定の直後であっても確定から所定時間の経過後であってもよい(以下、確定の直後と仮定する。)。
以下、表示処理部110Aとしてのゲーム演算部110の動作、計測部110Bとしてのゲーム演算部110の動作、受付け部110Cとしてのゲーム演算部110の動作、通知部110Dとしてのゲーム演算部110の動作、実行部110Eとしてのゲーム演算部110の動作を、ゲーム演算部110の動作として説明する。
4−2.視認エリア
図10は、仮想3次元空間OBSと、HMD20を装着したプレーヤPから見える空間(以下、「表示エリアDA」と称す。)と、HMD20を装着したプレーヤPの視認エリアLSAとの関係を説明する図である。
表示エリアDAは、前述したとおり仮想3次元空間OSに配置された仮想カメラの視野範囲に相当し、HMD20を介してプレーヤPの眼前へ表示されるエリアのことである。ゲーム演算部110は、前述したとおり当該仮想カメラの位置及び姿勢をプレーヤPの頭部の位置及び姿勢に追従させるので、仮想3次元空間OBSにおける表示エリアDAの位置及び姿勢もプレーヤPの頭部の位置及び姿勢に追従する。
視認エリアLSAは、表示エリアDAの中央にゲーム演算部110が設定した所定サイズのエリアである。視認エリアLSは、後述する目視判定においてプレーヤPが目視しているとみなされる範囲(注視範囲又は視線範囲ということもできる。)に相当する。表示エリアDAのサイズを基準とした視認エリアLSAのサイズの比は、基本的に固定されており、表示エリアDAにおける表示エリアDAの位置も、基本的に固定されている。ここでは、図10に示すとおり、表示エリアDAにおける視認エリアLSAの位置は表示エリアDAの中央であり、視認エリアLSAの形状は、円形であると仮定する。
なお、表示エリアDAのサイズを基準とした視認エリアLSAのサイズの比は、可変とすることも可能である。また、表示エリアDAにおける視認エリアLSAの位置を可変とすることも可能である。更に、表示エリアDAにおける視認エリアLSAの位置を可変とする場合、例えば、視認エリアLSAの位置をプレーヤPの視線の向きに追従させることも可能である(後述する視線入力を参照)。また、図10では、説明のために視認エリアLSAの輪郭と視認エリアLSAの中心座標とを可視化したが、輪郭と中心座標との各々は、実際には非表示であって構わない。
さて、図10では、高所恐怖体験ゲームの開始(ステップS101)に当たり、仮想3次元空間OBSとしてセレクト画面が表示された例を示している。セレクト画面は、プレーヤPがゲーム処理に関する幾つかの設定を行うための画面である。
ここでは、人数セレクト用の押しボタンオブジェクトOB1、OB2と、難易度セレクト用の押しボタンオブジェクトOB3、OB4とが一定の間隔を置いてセレクト画面に配置されたと仮定する。これらの押しボタンオブジェクトOB1、OB2、OB3、OB4の各々は、仮想的な操作ボタンであって、一般に「アイコン」と呼ばれることもあるオブジェクトである。図10には表さなかったが、プレーヤPから見て押しボタンオブジェクトOB1、OB2、OB3、OB4の背後には、仮想3次元空間OBSに存在する他のオブジェクト(例えば、高所恐怖体験ゲームのスタート地点から見える景色など)が写り込んでいても構わない。
先ず、押しボタンオブジェクトOB1には、処理部101(主にゲーム演算部110)が実行すべきゲーム処理のモードを「1人プレーモード」に設定する処理の機能が割り当てられている。「1人プレーモード」は、HMD20を装着した単一のプレーヤPが構造体10を移動するのに適したモードである。
また、押しボタンオブジェクトOB2には、処理部101(主にゲーム演算部110)が実行すべきゲーム処理のモードを「2人プレーモード」に設定する処理の機能が割り当てられている。「2人プレーモード」は、HMD20を個別に装着した2人のプレーヤPが同一の構造体10を移動するのに適したモード(2人のプレーヤPに恐怖体験を共有させるモード)である。「2人プレーモード」におけるゲーム演算部110は、例えば、2人のプレーヤPに個別に対応する2つの仮想カメラを仮想3次元空間OBSに設定すると共に、2人のプレーヤPに個別に対応する2人のキャラクタ(アバター)を仮想3次元空間OBSに配置する。そして、ゲーム演算部110は、2つの仮想カメラを2人のプレーヤPの頭部に連動させ、2つのアバターの各部位を2人のプレーヤPの各部位に連動させる。
また、押しボタンオブジェクトOB3には、処理部101(主にゲーム演算部110)が実行すべきゲーム処理のモードを「初級モード」に設定する処理の機能が割り当てられている。「初級モード」は、ゲーム処理の難易度(例えば、プレーヤPが落下する確率)が後述する「上級モード」と比較して低く設定されたモードのことである。ゲーム処理の難易度の調整は、例えば、ゲーム処理のパラメータを調整することによって行われる。
また、押しボタンオブジェクトOB4には、処理部101(主にゲーム演算部110)が実行すべきゲーム処理のモードを「上級モード」に設定する処理の機能が割り当てられている。「上級モード」は、ゲーム処理の難易度(例えば、プレーヤPが落下する確率)が前述した「初級モード」と比較して高く設定されたモードのことである。ゲーム処理の難易度の調整は、例えば、ゲーム処理のパラメータを調整することによって行われる。
以下、プレーヤPが「1人プレーモード」かつ「初級モード」でプレーする場合、すなわち、プレーヤPが押しボタンオブジェクトOB1、OB3をアイ入力によりロックし、アイ入力によりロックを確定することを想定する。
図10に示すとおり、セレクト画面の表示当初は、押しボタンオブジェクトOB1、OB2、OB3、OB4が2×2のマトリクス状に配置され、かつ、マトリクスの中央に表示エリアDA及び視認エリアLSAが位置していたと仮定する。
その後、プレーヤPが頭を左上に向けると、図11に示すとおり表示エリアDA及び視認エリアLSAはセレクト画面の左上(プレーヤPから見て左上)に向かって移動する。
図11は、視認エリアLSAが押しボタンオブジェクトOB1の中央に位置し、かつ、
表示エリアDAが押しボタンオブジェクトOB1の全体をカバーした状態を示している。この状態では、ゲーム演算部110は、プレーヤPが押しボタンオブジェクトOB1を目視していると判定する(目視判定の詳細は後述。)。
なお、図10、図11には示さなかったが、プレーヤPが自分の背後へ後退した場合には、仮想3次元空間OBSにおける表示エリアDA及び視認エリアLSAのサイズは大きくなり、例えば4つの押しボタンオブジェクトOB1、OB2、OB3、OB4の全貌を表示エリアDA内に収めることも可能である。
4−3.目視判定
ゲーム演算部110は、セレクト画面に配置された押しボタンオブジェクトOB1、OB2、OB3、OB4の各々に対して個別にヒットエリアを設定している。図12(a)には、押しボタンオブジェクトOB1に設定されたヒットエリアOBHAの例を代表して示した。
図12(a)に示すとおり、押しボタンオブジェクトOB1のヒットエリアOBHAは、押しボタンオブジェクトOB1の中心座標と同じ座標を中心とした所定形状かつ所定サイズのエリアである。このヒットエリアOBHAの輪郭の形状は、例えば、押しボタンオブジェクトOB1の輪郭の相似形であって、押しボタンオブジェクトOB1のヒットエリアOBHAのサイズは、例えば、押しボタンオブジェクトOB1のサイズと同等である。
但し、ヒットエリアOBHAのサイズは、押しボタンオブジェクトOB1のサイズより大きくてもよいし、小さくてもよい。また、ヒットエリアOBHAのサイズは、必要に応じて調節可能であってもよい。
さて、ゲーム演算部110は、押しボタンオブジェクトOB1のヒットエリアOBHAと視認エリアLSAとの位置関係に基づき、押しボタンオブジェクトOB1をプレーヤPが目視しているか否かの判定(目視判定)を行う。
例えば、ゲーム演算部110は、ヒットエリアOBHAの少なくとも一部と視認エリアLSAの少なくとも一部とが重複した場合に、プレーヤPが押しボタンオブジェクトOB1を「目視している」と判定し、そうでない場合に、プレーヤPが押しボタンオブジェクトOB1を「目視していない」(すなわち、押しボタンオブジェクトOB1からプレーヤPの視線が外れている)と判定する。図12(b)は、ヒットエリアOBHAの少なくとも一部と視認エリアLSAの少なくとも一部とが重複した状態を示している。図12(b)の状態は、ゲーム演算部110が「目視している」と判定する状態の1つである。
なお、ここでは、押しボタンオブジェクトOB1をプレーヤPが目視しているとゲーム演算部110が判定する条件を、「ヒットエリアOBHAの少なくとも一部と視認エリアLSAの少なくとも一部とが重複した場合」とするが、「ヒットエリアOBHA及び視認エリアLSAの一方に他方が包含された場合」、「ヒットエリアOBHAと視認エリアLSAとの間隔が閾値未満となった場合」などとすることも可能である。
また、図12(a)、図12(b)では、視認エリアLSAの方がヒットエリアOBHAよりも小さい場合を例として示したが、視認エリアLSAの方がヒットエリアOBHAよりも大きいことも当然にあり得る。
以上の結果、プレーヤPは、HMD20を装着した頭部の姿勢と頭部の位置との組み合わせを変化させることにより、仮想3次元空間OBSにおける視認エリアLSAの位置等を変化させ、押しボタンオブジェクトOB1を目視したり、押しボタンオブジェクトOB
1から視線を外したりすることができる。
以下では、目視判定により「目視している」と判定される状態のことを単に「目視」といい、目視判定により「目視していない」と判定される状態のことを「視線を外す」、「視線が外れる」などという。また、ここでいう「視線」は、実空間におけるプレーヤPの実際の視線(眼球の視軸)のことではなく、仮想3次元空間OBSにおける視認エリアLSAを指すものとする。
また、本実施形態のHMD20においては、視認エリアLSA及びヒットエリアOBHAは、基本的に非表示であって構わない。なぜなら、本実施形態のゲーム演算部110は、仮想3次元空間OBSにおける何れかのオブジェクトをプレーヤPが目視した場合には、目視された当該オブジェクトを強調するので(後述する図14等を参照)、視認エリアLSA及びヒットエリアOBHAが非表示であったとしても、自分の視線が仮想3次元空間OBSの如何なる辺りに存在しているのかを、プレーヤPが見失うことは無いと考えられる。
4−4.目視時間のチャージ量
本実施形態のゲーム演算部110は、基本的に、仮想3次元空間OBSに配置されたオブジェクトごとにプレーヤPの目視時間を計測(チャージ)し、オブジェクトごとの計測量(チャージ量)に応じてオブジェクトの状態を、「ロック」、「ロック解除(非ロック)」、「確定」の3状態の間で制御する。なお、ゲーム演算部110は、オブジェクトごとの目視時間のチャージ量を、例えば、読み書き可能なメモリ(データバッファ176など)で管理する。
図13(a)、図13(b)、図13(c)、図13(d)は、或るオブジェクトについての目視開始からの経過時間とチャージ量との関係を説明する図(グラフ)である。グラフの横軸が時間を示し、グラフの縦軸がチャージ量を示している。
図13(a)は、プレーヤPがオブジェクトを短時間だけ目視した場合(目視開始後にチャージ量が第1閾値Th1に達する前に視線が外れた場合)におけるチャージ量の変化パターンを示している。
図13(b)は、プレーヤPが一定時間に亘ってオブジェクトを目視してから視線を外した場合(目視開始後にチャージ量が第1閾値Th1に達してから視線が外れた場合)におけるチャージ量の変化パターンを示している。
図13(c)は、プレーヤPが十分な時間に亘って継続してオブジェクトを目視した場合(目視開始後にチャージ量が第2閾値Th2に達した場合)におけるチャージ量の変化パターンを示している。
図13(d)は、プレーヤPが一定時間に亘ってオブジェクトを目視してから視線を一時的に外し、かつ、再目視した場合(目視開始後にチャージ量が第1閾値Th1を超えて第2閾値Th2に達する前に視線が外れ、その後、チャージ量がゼロとなる前に再目視された場合)におけるチャージ量の変化パターンを示している。
先ず、ゲーム演算部110は、オブジェクトに対するプレーヤPの目視が開始されると(図13(a)〜(d)におけるチャージ開始時刻tsを参照。)、当該オブジェクトについての目視時間のチャージを開始する。ここでは、ゲーム演算部110は、目視時間が1秒増加するごとにチャージ量を「1」ずつ増加させるものとする。
また、ゲーム演算部110は、オブジェクトからプレーヤPの視線が外れた場合には(図13(b)、(d)における視線解除時刻tOを参照。)、視線が外れている時間に応じて目視時間のチャージ量を減少させる。ここでは、ゲーム演算部110は、目視時間が1秒増加するごとにチャージ量を「0.5」ずつ増加させるものとする。
そして、ゲーム演算部110は、チャージ開始後にチャージ量が第1閾値Th1(ここではTh1=2とする。)に達した場合に、オブジェクトをロックする(図13(b)、(c)、(d)におけるロック開始時刻tLを参照。)。
従って、プレーヤPは、オブジェクトを一定以上に亘って(ここでは2秒間に亘って)継続して目視することによって、当該オブジェクトをロックすることができる。
また、ゲーム演算部110は、チャージ開始後にチャージ量が第1閾値Th1より大きい第2閾値Th2(ここではTh2=5とする。)に達した場合には(図13(c)、(d)における確定時刻tCを参照。)、オブジェクトのロックを確定し、チャージ量をゼロにリセットする。
従って、プレーヤPは、ロックしたオブジェクトを一定以上に亘って継続的に(または断続的に)目視することによって、当該オブジェクトのロックを確定することができる。
また、ゲーム演算部110は、ロック後かつ確定前にチャージ量が第3閾値Th3(ここではTh3=ゼロとする。)まで低下した場合には、オブジェクトのロックの解除を受付ける(図13(b)のロック解除時刻tUを参照。)。
従って、プレーヤPは、ロックしたオブジェクトから一定以上に亘って視線を外すことで、当該オブジェクトのロックを解除することができ、しかも、当該オブジェクトを目視した時間が短いときほど解除のタイミングを早期にすることができる。その反対に、プレーヤPは、ロックされたオブジェクトを長く目視しておくことで、視線を外した後にロックが維持されるまでの時間を長く確保することができる。言い換えると、プレーヤPがオブジェクトを目視しようとする意思の強さが当該オブジェクトのロック強度(ロックの解除され難さ)に反映される。
また、ゲーム演算部110は、チャージ開始後にチャージ量が第1閾値Th1に達する前に当該オブジェクトから視線が外れた場合(図13(a)の視線解除時刻tOを参照。)には、チャージ量を(即座に)ゼロにリセットする。
従って、プレーヤPが如何なるオブジェクトをロックすべきか迷っているときなど、オブジェクトに視線が単に掛かった程度では、当該オブジェクトがロックされることはなく、プレーヤPがロックすべきオブジェクトを意図的に目視した場合(長見した場合)に限り、当該オブジェクトがロックされる。
更に、ゲーム演算部110は、ロック後にチャージ量が第3閾値Th3に近づく速度を、チャージ量が第2閾値Th2に近づく速度よりも緩やかにする。例えば、ゲーム演算部110は、目視時間が1秒増加するごとにチャージ量を「1」ずつ増加させるのに対して、ロック後に視線の外れている時間が1秒増加するごとにチャージ量を「0.5」ずつ減少させる(実際、図13(b)、(d)における減少カーブは上昇カーブよりも傾斜が緩やかである。)。
従って、プレーヤPは、オブジェクトのロック後は、頭部の位置及び姿勢を完全に固定した状態を継続せずとも(多少首がふらついたとしても)、オブジェクトのロックを維持
することが容易である。
その他、プレーヤPは、或るオブジェクトを迷わずに目視し続ければ当該オブジェクトのロックを短時間で確定することができるし(図13(c)を参照。)、ロックを確定するかどうか迷った場合には、当該オブジェクトから視線を外したり戻したりすることで、当該オブジェクトのロックを維持したまま確定までの残り時間を増やすこともできる(図13(d))。
以上の結果、プレーヤPは、オブジェクトの状態を「ロック」、「ロック解除(非ロック)」、「確定」の間で自由に切り替えることができる。
なお、以上の説明において、ゲーム演算部110は、チャージ量が閾値に近づく速度を調節するために、チャージ量を増減する速度を調節したが、チャージ量を増減する速度を調節する代わりに(又はチャージ量を増減する速度を調節することに加えて)、閾値の大きさを調節してもよい。すなわち、チャージ量と閾値とは相対的なものであるため、「チャージ量の増減速度を調節すること」と、「チャージ量の閾値を調節すること」とは、互いに等価であるとみなすことができる(以下も同様。)。
また、以上の説明において、ゲーム演算部110は、オブジェクトのチャージ量が閾値Th2に達したタイミングで当該オブジェクトのロックを確定したが、仮に、閾値Th2に達する前であっても、プレーヤPが所定の確定用アクションをした場合には、強制的にロックを確定してもよい。所定の確定用アクションは、「実空間に配置された所定のボタンの押し下げ」であってもよいし、「確定用オブジェクトの目視」であってもよいし、「所定パターンの視線移動」であってもよい。以下、確定用アクションが採用された場合を想定する。確定用アクションの詳細については後述する。
4−5.オブジェクトの視覚効果
図14は、オブジェクトの視覚効果の例を説明する図である。
ゲーム演算部110は、図14に示すとおり、オブジェクトに対して視覚効果を付与し、かつ、当該視覚効果を当該オブジェクトのチャージ量に応じて変化させることにより、当該オブジェクトのチャージ量の時間変化(チャージ量が増減する状態)を可視化する。
オブジェクトごとのチャージ量が可視化されれば、プレーヤPは、自分が目視しているオブジェクトを特定したり、自分がオブジェクトを目視しているのか否かを区別したりすることができる。また、プレーヤPは、自分が目視中のオブジェクトについて、ロックされるまでの残り時間や、ロックが解除されるまでの残り時間や、ロックが確定されるまでに必要な目視時間を把握することも可能である。
さて、視覚効果は、例えば、アニメーションによって実施される。アニメーションによれば、チャージ量の時間変化をリアルタイムに(逐次に)プレーヤPへ通知できるからである。図14に示す例では、このアニメーションは、オブジェクトの外縁部にマーク列(ネオンマーク列)を配置し、かつ、チャージ量に応じてマーク列の配列数を変化させるアニメーションである。
このように、チャージ量をマーク列の配列数に反映させれば、チャージ量の大きさ、チャージ量の増減の別、チャージ量の増加速度、チャージ量の減少速度などを、プレーヤPが直感的に把握することが可能である。
図14(a)は、目視開始後にチャージ量が「0.5」になったとき(目視開始直後又
はロック解除直前)のマーク列を示している。
図14(b)は、目視開始後にチャージ量が「1」になったときのマーク列を示している。
図14(c)は、目視開始後にチャージ量が「1.5」になったときのマーク列を示している。
図14(d)は、目視開始後にチャージ量が「2」になったとき(ロックされたとき)のマーク列を示している。
図14(e)は、ロック後にチャージ量が「2.5」になったときのマーク列を示している。
図14(f)は、ロック後にチャージ量が「3」になったときのマーク列を示している。
図14(g)は、ロック後にチャージ量が「3.5」になったときのマーク列を示している。
図14(h)は、ロック後にチャージ量が「4」になったときのマーク列を示している。
図14(i)は、ロック後にチャージ量が「4.5」になったときのマーク列を示している。
図14(j)は、ロック後にチャージ量が「5」になったとき(ロックが確定されたとき)のマーク列を示している。
すなわち、図14に示すアニメーションは、チャージ量の程度をマーク列の配列数によって表している。図14における白抜き矢印は、プレーヤPが継続して5秒間に亘ってオブジェクトを目視したときにおけるマーク列の変化の順序を示しているが、前述したとおりオブジェクトから視線が外れた場合には、チャージ量が減少するので、白抜き矢印とは反対の方向にアニメーションが変化することになる。また、前述したとおり、本実施形態では、チャージ量が増加する速度よりもチャージ量が減少する速度の方が緩やかであるので、図14の白抜き矢印の方向にアニメーションが変化する速度よりも、白抜き矢印とは反対の方向にアニメーションが変化する速度の方が、緩やかである。
ここで、ゲーム演算部110は、ロック中のオブジェクトと非ロック中のオブジェクトとを区別する。例えば、ゲーム演算部110は、ロック中のオブジェクト(図14(d)〜(i))の強調度を、非ロック中のオブジェクト(図14(a)〜(c))の強調度よりも高く設定する。図14に示す例では、ロック中のオブジェクト(図14(d)〜(i))の濃度を、非ロック中のオブジェクト(図14(a)〜(c))の濃度より高く設定している。
従って、プレーヤPは、オブジェクトの強調度(ここでは濃度)によって、オブジェクトがロックされているか否かを区別することができる。
なお、オブジェクトの強調度は、例えば、以下のパラメータ(1)〜(14)のうち少なくとも1つによって調節することができる。
(1)マーク列の濃度、
(2)マーク列の輝度、
(3)マーク列の色、
(4)マーク列の不透明度、
(5)マーク列の彩度、
(6)マーク列の形状、
(7)マーク列の濃度、輝度、色、不透明度、彩度、形状のうち少なくとも1つの変化パターン、
(8)オブジェクトの濃度、
(9)オブジェクトの輝度、
(10)オブジェクトの色、
(11)オブジェクトの不透明度、
(12)オブジェクトの彩度、
(13)オブジェクトの形状、
(14)オブジェクトの濃度、輝度、色、不透明度、彩度、形状のうち少なくとも1つの変化パターン。
また、ここでは、チャージ量をプレーヤPへ通知するためのアニメーションとして、「オブジェクトの外縁部にマーク列を配置し、かつ、チャージ量に応じてマーク列の配列数を変化させるアニメーション」としたが、「オブジェクトの外縁部に環状又は部分環状のゲージ(チューブ状のゲージ)を配置し、かつ、チャージ量に応じてゲージの長さ(ゲージの指針の位置に相当)を変化させるアニメーション」としてもよい(図30を参照)。
このように、チャージ量をゲージの長さに反映させれば、チャージ量の大きさ、チャージ量の増減の別、チャージ量の増加速度、チャージ量の減少速度などをプレーヤPが直感的に把握することが可能である。
また、チャージ量をプレーヤPへ通知するためのアニメーションは、マーク列やゲージを用いたアニメーションの代わりに、チャージ量に応じてオブジェクト自体の強調度を変化させるアニメーションであってもよい。オブジェクト自体の強調度は、例えば、上述したパラメータ(7)〜(12)のうち少なくとも1つによって調節することができる。なお、図15には、チャージ量に応じてオブジェクト自体の濃度が変化する例を示した。
このように、オブジェクト自体の強調度の変化によりチャージ量をプレーヤPへ通知すれば、オブジェクトの周辺のスペースを広く確保できるので、オブジェクトのレイアウト自由度が高まる。よって、例えば、多数のオブジェクトを密に配列した場合などに有効である。
また、チャージ量と視覚効果の強調度との関係は、チャージ量が大きいときほど強調度が高まることが望ましい。ここで「強調度が高い」とは、例えば、濃度が高くなること、彩度が高くなること、不透明度が高くなること、色等の変化周期が早くなることなどを指す。
4−6.ロック強度の制御
ゲーム演算部110は、ロック中のオブジェクトをプレーヤPが目視していると判定するための判定基準(ロック中のオブジェクトの目視判定の判定基準)を、非ロック中のオブジェクトをプレーヤPが目視していると判定するための判定基準(非ロック中のオブジェクトの目視判定の判定基準)よりも、緩やかに設定する。判定基準を緩やかすると、オブジェクトのロック強度を高くすることができる。ここでいう「ロック強度」とは、ロッ
クが解除される可能性の低さのことを指す。
従って、プレーヤPは、非ロック中のオブジェクトを意図的に目視しなければオブジェクトをロックできないが、ロック中のオブジェクトであれば強く意識して目視せずとも当該ロックを維持することが容易である。
ここでは、図12に示したとおり、押しボタンオブジェクトOB1を例に挙げて説明するが、他のオブジェクトについても同様である。
前述したとおり、ゲーム演算部110は、押しボタンオブジェクトOB1の目視判定を、押しボタンオブジェクトOB1のヒットエリアOBHAの少なくとも一部と、視認エリアLSAの少なくとも一部とが重複したか否かに基づき行う。そして、ゲーム演算部110は、押しボタンオブジェクトOB1のヒットエリアOBHAの少なくとも一部と、視認エリアLSAの少なくとも一部とが重複した場合に「目視している」と判定し、重複しない場合に、「目視していない」と判定する。
そこで、ゲーム演算部110は、押しボタンオブジェクトOB1の目視判定の判定基準を緩やかにするために、押しボタンオブジェクトOB1のヒットエリアOBHAと視認エリアLSAとの少なくとも一方のサイズを大きくする。
ここでは、判定基準の制御をオブジェクトごとに行うことを考慮し、簡単のため、ヒットエリアOBHAのサイズが可変であって視認エリアLSAのサイズが固定される場合を説明する。また、サイズの調整は、連続的であってもよいが、段階的である場合を例に挙げる。
更に、ゲーム演算部110は、押しボタンオブジェクトOB1のチャージ量が大きいときほど、押しボタンオブジェクトOB1の目視判定の判定基準を緩やか設定する。つまり、ゲーム演算部110は、押しボタンオブジェクトOB1のチャージ量が大きいときほど、押しボタンオブジェクトOB1のヒットエリアOBHAのサイズを大きくする。
例えば、ゲーム演算部110は、押しボタンオブジェクトOB1がロックされていないときには、押しボタンオブジェクトOB1のヒットエリアOBHAのサイズを例えば図16(a)に示す「標準」のサイズに設定し、押しボタンオブジェクトOB1のチャージ量が閾値Th1〜Th2の間の所定値(例えば「3」)未満であるときには、押しボタンオブジェクトOB1のヒットエリアOBHAのサイズを、図16(b)に示す「中」のサイズに設定し、押しボタンオブジェクトOB1のチャージ量が当該所定値(「3」)以上であるときには、押しボタンオブジェクトOB1のヒットエリアOBHAのサイズを、図16(c)に示す「大」のサイズに設定する。
この場合、押しボタンオブジェクトOB1をプレーヤPが長く目視するほど、押しボタンオブジェクトOB1のロック強度が高くなる。
しかも、ゲーム演算部110は、図16(a)、(b)、(c)に示すとおり、プレーヤPの上下方向におけるヒットエリアOBHAのサイズの拡大比率よりも、プレーヤPの左右方向におけるヒットエリアOBHAのサイズの拡大比率を、高く設定する。
この設定によると、押しボタンオブジェクトOB1の上下方向のロック強度よりも左右方向のロック強度の方が相対的に高くなる。
一般に、プレーヤPの視線の方向(本実施形態では首の姿勢によって決まる)は、上下
方向よりも左右方向の方が不安定になり易いので、左右方向のロック強度を相対的に強く設定しておけば、操作性を損なわずにアイ入力ミス(本実施形態ではプレーヤPの意図しないロック解除)を軽減できると考えられる。
4−6−1.ロック強度の制御についての補足
なお、本実施形態のゲーム演算部110は、ロック強度の制御を、視認エリアLSAの少なくとも一方のサイズ調節(空間的な調節)により行ったが、チャージ量の減少速度の調節(時間的な調節)により行ってもよいし、空間的な調節と時間的な調節とを組み合わせてもよい。
例えば、本実施形態のゲーム演算部110は、押しボタンオブジェクトOB1のチャージ量が大きいときほどチャージ量が第3閾値Th3に近づく速度を緩やかにしてもよい。なお、速度の調節は、前述したとおり閾値の調節又はチャージ量の増減速度の調節によって行うことができる。
この場合、例えば、プレーヤPが或るオブジェクトをロックすべきか迷っている場合などには、オブジェクトを一定時間以上に亘って目視しなければオブジェクトをロックできない。その反対に、オブジェクトがロックされた後であれば、オブジェクトから長期に亘って視線を外さない限り、オブジェクトのロックが維持される。
また、本実施形態のゲーム演算部110は、空間的な調節を行うために、仮想3次元空間OBSにおけるヒットエリアOBHAのサイズを調節したが、仮想3次元空間OBSにおける視認エリアLSAのサイズを調節してもよいし、ヒットエリアOBHAと視認エリアLSAのサイズとの双方を調節してもよい。その場合、例えば、本実施形態のゲーム演算部110は、視認エリアLSAに最も近いオブジェクトのチャージ量に応じて視認エリアLSAのサイズを制御してもよい。
4−7.スピードアップ処理
4−7−1.スピードアップ処理の概要
本実施形態のゲーム演算部110は、ロック中のオブジェクトを起点とした視線の折り返し移動を伴う所定の確定用アクションを検出した場合には、チャージ量が第2閾値Th2に達していなかったとしてもロックの確定を受付ける処理(スピードアップ処理)を実行する。従って、プレーヤPは、オブジェクトのロック後、当該ロックの確定を即座に行いたい場合には、ロック中のオブジェクトを起点とした視線の折り返し移動を伴う所定の確定用アクションを行えばよい。この場合、プレーヤPは、当該オブジェクトのチャージ量が第2閾値Th2に増大するまでオブジェクトの目視を継続する必要が無いので、ロックから確定までの待ち時間を、大幅に削減することができる。つまり、プレーヤPは、オブジェクトをロックした後に、ロックを急いで確定したい場合と、そうでない場合とで、異なるアクションをすればよい。以下、確定用アクション及びスピードアップ処理について説明する。
本実施形態では、ロック中のオブジェクトを起点とした視線の折り返し移動の全て確定用アクションとみなされる訳ではなく、1又は複数の付加的な条件(後述)を満たした視線の折り返し移動が確定用アクションとみなされ、当該付加的な条件を満たさない視線の折り返し移動は確定用アクションとみなされることはない。
4−7−2.文言についての説明
ここで「視線」は、仮想3次元空間OBSのうちプレーヤPの視線が注がれているとみなされる領域のことを指し、当該領域のサイズや形状は適宜に設定することが可能である。例えば、図17に示した視認エリアLSAを「視線」とすることもできるし、視認エリ
アLSAの中心点LSA’を「視線」とすることもできる。以下、視認エリアLSAの中心点LSA’を「視点LSA’」と称し、視点LSA’を視線とみなして説明する。因みに、仮想3次元空間OBSにおける視点LSA’の動き(位置及び姿勢)は、実空間におけるプレーヤPの頭部の動き(位置及び姿勢)、実空間におけるプレーヤPの瞳の動き(位置及び姿勢)、実空間におけるプレーヤPの視軸の動き(位置及び姿勢)のうち少なくとも1つに追従させることができる。但し、本実施形態では、仮想3次元空間OBSにおける視点LSA’の動き(位置及び姿勢)はプレーヤPの頭部の動き(位置及び姿勢)に追従する。
また、「折り返し移動」は、何れかの位置を起点として別の位置(後述する折り返し点)へ移動した後に再び当該起点の方向に向けて移動することを指す。「折り返し移動」には折り返し点から起点の近傍まで完全に戻らない移動や、折り返し点から起点に戻ってから当該近傍を通過する移動や、往路と復路とが完全に重ならない移動も含まれる。
また、「起点」は、移動の開始点のことである。
また、「往路」は、折り返し移動の移動経路のうち折り返し点より前の部分のことである。
また、「復路」は、折り返し移動の移動経路のうち折り返し点より後の部分のことである。
また、「オブジェクトを起点とした移動」は、オブジェクトが存在しているとみなされる領域を起点とした移動のことである。この領域は、オブジェクト自体であってもよいし、オブジェクトの近傍に設けられたヒットエリアOBHAのことであってもよい。但し、本実施形態では、この領域をヒットエリアOBHAとして説明する。
4−7−3.確定用アクション
受付け部110Cとしてのゲーム演算部110は、例えば、起点条件、折り返し条件、時間条件、距離条件、角度条件、直線条件又は円弧条件、戻り条件の7つの条件を満たすような視点LSA’の移動を、確定用アクションとして検出する。なお、7つの条件のうち、起点条件及び折り返し条件以外の5つの条件の少なくとも一部を外すこと(例えば距離条件と時間条件との少なくとも一方を外すこと)も可能であるが、ここでは、7つの条件の全てを満たす移動のみを確定用アクションとする場合を説明する。
(1)起点条件
受付け部110Cとしてのゲーム演算部110は、例えば、「オブジェクトがロックされたタイミングで当該オブジェクトのヒットエリアOBHA内に視点LSA’が属していること」という条件(起点条件)を、確定用アクションの条件の1つとする。
例えば、ゲーム演算部110は、オブジェクトがロックされると、図17に示すとおり、当該オブジェクトのヒットエリアOBHAと視点LSA’との位置関係を参照し、ヒットエリアOBHA内に視点LSA’が属していた場合には、起点条件が満たされたと判定し、そうでない場合には、起点条件が満たされないと判定する。なお、図17に示すのは、起点条件が満たされた状態の一例である。
なお、ゲーム演算部110は、ゲームの進行や予めの設定等に応じて起点条件の精度(厳しさ)を調節してもよい。例えば、視点LSA’からヒットエリアOBHAの中心までの距離が所定範囲内であることを起点条件とすれば、起点条件を緩やかにすることができる。また、ここでは、起点条件を規定するために、ヒットエリアOBHと視点LSA’と
を用いたが、ヒットエリアOBHの代わりにオブジェクトの輪郭を用いることもできるし、視点LSA’の代わりに視認エリアLSAを用いることもできる。
(2)折り返し条件
受付け部110Cとしてのゲーム演算部110は、例えば、「視点LSA’の移動経路に折り返し点が存在すること」という条件(折り返し条件)を、確定用アクションの条件の1つとする。図18に示すのは、移動経路の方向が反転し、折り返し点P3が発生した移動経路の例を示している。
例えば、ゲーム演算部110は、オブジェクトがロックされると、ロック後の1番目のタイミング、2番目のタイミング、3番目のタイミング、・・・の各々における視点LSA’の速度ベクトルV1、V2、V3、・・・を監視し、(i−1)番目の速度ベクトルV(i−1)の逆ベクトル成分がi番目の速度ベクトルViに発生した場合に、i番目のタイミングにおける視点LSA’の位置Piを、折り返し点として検出する。そして、ゲーム演算部110は、折り返し点を検出した場合に、当該視点LSA’の移動が折り返し条件を満たしたと判定する。図18の例は、3番目のタイミングにおける視点LSA’の位置P3が折り返し点と判定される場合の例である。なお、図18に示した速度ベクトルV及び位置Pの番号「i」は、オブジェクトのロック後に撮像カメラ70から出力されたフレームの各番号を表している。
ここで、速度ベクトルVは、仮想3次元空間OBSにおける視点LSA’の移動方向及び移動速度を表すベクトルである。但し、この速度ベクトルは、プレーヤPから見た奥行き方向の成分を有している必要は無いので、二次元のベクトルであって構わない。ゲーム演算部110は、例えば、撮像カメラ70から逐次に出力されるフレーム間差分(マーカ位置のフレーム間差分など)に基づき、速度ベクトルVの算出を行うことができる。また、速度ベクトルVの算出は、撮像カメラ70のフレーム周期で繰り返される。
また、撮像カメラ70のフレーム周期は、第1閾値Th1から第2閾値Th2にチャージ量が達するまでの所要時間と比して十分に短いものとする。よって、ゲーム演算部110は、所要時間と同等の時間内に十分な数の速度ベクトルVを算出することができる。この場合、ゲーム演算部110は、オブジェクトのロック後における視点LSA’の移動経路の形状を、十分な精度で検出することができる。
なお、ゲーム演算部110が検出した視点LSA’の移動経路のうち、折り返し点(図18の位置P3)より前の部分(図18の位置P1〜P3)が前述した「往路」であり、ゲーム演算部110が検出した視点LSA’の移動経路のうち、折り返し点(図18の位置P3)より後の部分(図18の位置P1〜P3)が前述した「復路」である。
(3)時間条件
受付け部110Cとしてのゲーム演算部110は、例えば、「少なくとも往路に要する時間が所定時間内に収められていること」という条件(時間条件)を、確定用アクションの条件の1つとする。
例えば、ゲーム演算部110は、起点P1からの視点LSA’の移動時間を計測し、折り返し点が検出されるよりも前に視点LSA’の移動時間が所定時間に達した場合には、当該視点LSA’の移動が時間条件を満たさないと判定する。例えば、ゲーム演算部110は、ロック後における速度ベクトルViの番号i(フレーム番号)が所定値に達するまでに折り返し点を検出しなかった場合には、当該視点LSA’の移動が時間条件を満たさないと判定する。
ここで、当該所定時間(又は当該所定値)は、チャージ量が第1閾値Th1から第2閾値Th2に増加するまでの所要時間よりも短い時間に設定される。
従って、仮に図18に示す移動経路と似た経路で視点LSA’の折り返し移動が行われたとしても、当該折り返し移動の往路に要する時間が長すぎる場合には、当該視点LSA’の移動が確定用アクションとみなされることはない。つまり、確定用アクションの条件に時間条件を課すことで、確定用アクションの誤検出を防ぐことができる。
なお、ゲーム演算部110は、ゲームの進行や予めの設定等に応じて時間条件の精度(厳しさ)を調節してもよい。当該所定時間を長くすれば、時間条件を緩やかにすることができ、所定時間を短くすれば、時間条件を厳しくすることができる。
(4)距離条件
受付け部110Cとしてのゲーム演算部110は、例えば、「少なくとも往路に要する距離が所定距離内に収められていること」という条件(距離条件)を、確定用アクションの条件の1つとする。
例えば、ゲーム演算部110は、起点P1からの視点LSA’の移動距離を計測し、折り返し点が検出されるよりも前に視点LSA’の移動距離が所定距離に達した場合には、当該視点LSA’の移動が距離条件を満たさないと判定する。例えば、ゲーム演算部110は、ロック後における速度ベクトルViの大きさの和が所定値に達するまでに折り返し点を検出しなかった場合には、当該視点LSA’の移動が距離条件を満たさないと判定する。
従って、仮に視点LSA’の折り返し移動が行われたとしても、折り返し前の移動距離が長すぎる場合には(図19参照)、当該視点LSA’の移動が確定用アクションとみなされることはない。つまり、確定用アクションの条件に距離条件を課すことで、確定用アクションの誤検出を防ぐことができる。
なお、ゲーム演算部110は、ゲームの進行や予めの設定等に応じて距離条件の精度(厳しさ)を調節してもよい。当該所定距離を長くすれば、距離条件を緩やかにすることができ、所定距離を短くすれば、距離条件を厳しくすることができる。また、当該所定距離を、オブジェクトのサイズに応じて設定することも可能である。
(5)角度条件
受付け部110Cとしてのゲーム演算部110は、例えば、「往路から復路への折り返し角度が所定角度内に収められていること」という条件(角度条件)を、確定用アクションの条件の1つとする。
例えば、ゲーム演算部110は、図20に示すとおり折り返し点(図20では位置P3)を検出した場合に、当該折り返し点(図20では位置P3)の前後に算出した速度ベクトル(図20では速度ベクトルV2、V3)に基づき、視点LSA’の移動経路の折り返し角度θを算出し、当該折り返し角度θが所定角度を超える場合には、当該視点LSA’の移動は、角度条件を満たさないと判定する。
ここで「折り返し角度」は、折り返し移動の往路と復路とが成す角度θのことである。また、当該所定角度は、90°よりも小さい所定値、例えば45°に設定される。
従って、仮に視点LSA’の折り返し移動が行われたとしても、図20に示すとおり、当該折り返し移動の折り返し角度θが大きすぎる場合には、当該視点LSA’の移動が確
定用アクションとみなされることはない。従って、確定用アクションの条件に角度条件を課すことで、確定用アクションの誤検出を防ぐことができる。
なお、ゲーム演算部110は、ゲームの進行や予めの設定等に応じて角度条件の精度(厳しさ)を調節してもよい。当該所定角度を大きくすれば、角度条件を緩やかにすることができ、所定角度を小さくすれば、角度条件を厳しくすることができる。
(6)直線条件又は円弧条件
受付け部110Cとしてのゲーム演算部110は、例えば、「少なくとも往路の形状が直線状又は円弧状であること」という条件(直線条件又は円弧条件)を、確定用アクションの条件の1つとする。
例えば、ゲーム演算部110は、オブジェクトのロック後であって折り返し点の検出前における速度ベクトルV1、V2、V3、・・・を連結してなる折れ線を二次曲線にフィッティングし、フィッティング誤差が所定値を超える場合には、視点LSA’の移動が直線条件又は円弧条件を満たさないと判定する。
例えば、ゲーム演算部110は、速度ベクトルV1、V2、V3、・・・の時間微分を監視し、監視中の時間微分に閾値以上の飛びが発生したタイミングで往路の形状が直線条件又は円弧条件を満たさなくなったと判定する。図21の例は、4番目のタイミング(i=4)において移動経路の形状が直線条件又は円弧条件を満たさなくなった場合の例である。また、図21の例では、4番目のタイミング前後における速度ベクトルV3、V4が前述した折り返し条件を満たすこともないので(つまり4番目の位置P4は折り返し点ではないので)、当該視点LSA’の移動が確定用アクションとして検出されることはない。
従って、仮に視点LSA’の折り返し移動が行われたとしても、図21に示すとおり、折り返し点が検出されるより前に移動経路が当初の方向とは異なる方向に曲がった場合には、当該視点LSA’の移動が確定用アクションとみなされることはない。従って、確定用アクションの条件に直線条件又は円弧条件を課すことで、確定用アクションの誤検出を防ぐことができる。
なお、ここでいう「直線条件を満たす移動」は、移動経路が直線とみなせるような移動のことであり、移動経路が完全な直線となった移動だけでなく、移動経路が一定の精度で直線近似できるような移動も含まれる。
また、ここでいう「円弧条件を満たす移動」には、移動経路が円弧とみなせるような移動のことであり、移動経路が完全な円弧となった移動だけでなく、移動経路が一定の精度で所定次数以下の曲線に近似できるような移動も含まれる。
また、ゲーム演算部110は、ゲームの進行や予めの設定等に応じて直線条件又は円弧条件の精度(厳しさ)を調節してもよい。例えば、時間微分の閾値を大きくすれば、直線条件又は円弧条件を緩やかにすることができ、時間微分の閾値を小さくすれば、直線条件又は円弧条件を厳しくすることができる。
(7)戻り条件
受付け部110Cとしてのゲーム演算部110は、例えば、「復路が往路に沿っていること」という条件(戻り条件)を、確定用アクションの条件の1つとする。
例えば、ゲーム演算部110は、折り返し点の検出後、折り返し点から現在点までの移
動経路(復路)と、起点から折り返し点までの移動経路(往路)のうち復路に対応する部分とのずれを算出し、当該ずれの大きさが所定値を超える場合には、往路が復路から逸れたと判定する。また、ゲーム演算部110は、復路が往路から逸れない状態を維持したまま、所定時間内(例えば0.5秒以内)に復路の長さが所定距離(例えば往路の半分程度の距離)に達した場合に、戻り条件が満たされたと判定する。なお、当該所定時間は、スピードアップ処理の趣旨(つまりロックから確定までの時間を短縮するという趣旨)を逸脱しない範囲において適度な値に設定される。
例えば、ゲーム演算部110は、図22に示すとおり、起点P1から折り返し点P3までの速度ベクトルV1、V2を連結してなる折れ線を往路として算出し、折り返し点P3から視点LSA’の現在の位置P5までの速度ベクトルV3、V5を連結してなる折れ線を往路として算出する。図22の例では、復路の長さは往路の長さの半分以上確保されており、往路の後半部分(速度ベクトルV2)と復路の前半部分(速度ベクトルV3)との角度差は小さい。しかし、往路の前半部分(速度ベクトルV1)と復路の後半部分(速度ベクトルV4)との角度差が大きいため、往路と復路とのずれの大きさが所定値を超え、当該視点LSA’の移動は戻り条件を満たさないと判定される。
従って、仮に視点LSA’の折り返し移動が行われたとしても、図22に示すとおり、当該折り返し移動の往路から復路が大きく逸れた場合には、当該視点LSA’の移動が確定用アクションとみなされることはない。つまり、確定用アクションの条件に戻り条件を課すことで、確定用アクションの誤検出を防ぐことができる。
また、プレーヤPは、確定用アクションをしようとして視点LSA’の移動経路を折り返したものの、折り返した直後に確定の意思が無くなった場合には、往路から復路が逸れるように視点LSA’を振ったり(図22参照)、視点LSA’を一定以上に亘って停滞させたりすることにより、即時の確定を回避することができる。
なお、ゲーム演算部110は、ゲームの進行や予めの設定等に応じて戻り条件の精度(厳しさ)を調節してもよい。例えば、当該所定値を大きくすれば、戻り条件を緩やかにすることができ、所定値を小さくすれば、戻り条件を厳しくすることができる。
4−7−4.確定予告
通知部110Dとしてのゲーム演算部110は、視点LSA’の折り返し移動の折り返し点を検出した場合には、確定用アクションが検出される可能性を、プレーヤPへ予告(確定予告)する。
例えば、ゲーム演算部110は、視点LSA’の折り返し移動の移動パターンが図18に示すとおりであった場合には、折り返し点P3を検出した直後のタイミングで、プレーヤPへ確定予告を行う。
プレーヤPへの確定予告は、プレーヤPに対する他の通知と同様、例えば、オブジェクト空間設定部111を制御し、オブジェクトを強調することによって行うことができる。オブジェクトを強調する方法については、前述した各種の強調方法のうち少なくとも1つを採用することができる。また、オブジェクトを強調するために、オブジェクトへ視覚効果を付すことなども可能である。この視覚効果としては、例えば、視点LSA’から起点に向かう矢印マークの表示(図23(f’))などが挙げられる。
ゲーム演算部110が折り返し点を検出したタイミングでこのような矢印マーク(図23(f’))を表示すれば、オブジェクトのロックが確定される可能性をプレーヤPが認識できるだけでなく、確定用アクションを完了するため(前述した戻り条件を満たすため
)に必要な視点LSA’の移動方向を、プレーヤPが認識することもできる。
また、プレーヤPへの確定予告は、音生成部140に効果音を生成させ、通信制御部120及び通信部196を介して当該効果音をHMD20のヘッドフォン61へ出力することにより行うこともできる。
つまり、プレーヤPへの確定予告は、プレーヤPの視覚、聴覚、触覚、嗅覚の少なくとも1つを介して行うことができる。
図23には、プレーヤPへの確定予告が矢印マークとネオンマーク列の状態とによって行われる場合の例を示した。
図23(d)→図23(e)→図23(f)→図23(g)→図23(h)→図23(i)→図23(j)は、オブジェクトのロック後に確定用アクションが何ら行われなかった場合のオブジェクトの状態遷移を示しており、図23(d)→図23(e)→図23(f)→図23(f’)→図23(g’)は、オブジェクトのロック後に確定用アクションが行われた場合のオブジェクトの状態遷移を示している。なお、図23では、確定用アクションの折り返し点が検出されたタイミングを、図23(f)のタイミングとした。
図23に示す例においては、確定用アクションが開始され、折り返し点が検出されると(図23(f))、オブジェクトに矢印マークが表示され、オブジェクトのネオンマーク列の個数が急激に増大し、また、ネオンマーク列が点滅し始める(図23(f’))。
この場合、プレーヤPは、ロック中のオブジェクトに矢印マークが表示されたこと(図23(f)→図23(f’))、ロック中のオブジェクトのネオンマーク列の個数が急激に増大したこと(図23(f)→図23(f’))、又は、ロック中のオブジェクトのネオンマーク列が点滅し始めたこと(図23(f)→図23(f’))により、確定用アクションが検出される可能性(すなわちロック中のオブジェクトが即時に確定される可能性)を認識できる。
よって、この確定予告を受けたプレーヤPは、オブジェクトのロックを即座に確定したい場合には確定用アクションを続行し、オブジェクトのロックを維持したい場合には確定用アクションを中断する(視点を起点から外れた方向に逸らしたり停止させたりする)という判断を、適時に行うことができる。
なお、図23には特に示さなかったが、ゲーム演算部110は、戻り条件が満たされるまでに必要な視点LSA’の残り移動距離を、表示中の矢印マークの長さ(図23(f’)を参照)に反映させてもよい。
4−7−5.検出通知
通知部110Dとしてのゲーム演算部110は、更に、確定用アクションを検出した場合には、その旨をプレーヤPへ通知(検出通知)する。
例えば、ゲーム演算部110は、折り返し移動の移動パターンが図18に示すとおりであった場合には、折り返し点P3を検出した後であって、往路に沿った復路の長さが所定時間内に所定長さとなったタイミング(例えば視点LSA’が位置P5に達したタイミング)で、プレーヤPへ検出通知を行う。
プレーヤPへの検出通知は、プレーヤPに対する他の通知と同様、例えば、オブジェクト空間設定部111を制御し、オブジェクトを強調することによって行うことができる。
オブジェクトを強調する方法については、前述した各種の強調方法のうち少なくとも1つを採用することができる。また、オブジェクトを強調するために、オブジェクトへ視覚効果を付すことなども可能である。
図23には、プレーヤPへの検出通知が矢印マークとネオンマーク列の状態とによって行われる場合の例を示した。
図23(f’)→図23(g’)は、確定予告の後に確定用アクションが続行された場合のオブジェクトの状態遷移を示している。
図23(f’)→図23(g)は、確定予告の後に確定用アクションが中断された場合のオブジェクトの状態遷移を示している。
図23に示す例においては、確定予告(図23(f’))の後に確定用アクションが続行されると、オブジェクトの矢印マークが消滅し、オブジェクトのネオンマーク列の個数が最大となり、また、ネオンマーク列が高速に点滅する(図23(g’))。
一方、図23に示す例においては、確定予告(図23(f’))の後に確定用アクションが中断されると、オブジェクトの矢印マークが消滅し、オブジェクトのネオンマーク列の個数がチャージ量に応じた数となり、また、ネオンマーク列の点滅が終了する(図23(g))。つまり、オブジェクトが元の状態に戻る。
この場合、プレーヤPは、確定予告後に矢印マークが消滅したこと(図23(f’)→図23(g’))、確定予告後にネオンマーク列の個数が最大になったこと(図23(f’)→図23(g’))、又は、確定予告後にネオンマーク列が高速に点滅し始めたこと(図23(f’)→図23(g’))により、確定用アクションが完了したこと(すなわちロック中のオブジェクトが確定されたこと)を認識できる。
また、プレーヤPは、確定予告後にネオンマーク列の個数が元に戻ったこと(図23(f’)→図23(g))、又は確定予告後にネオンマーク列の点滅が終了したこと(図23(f’)→図23(g))により、確定用アクションが中断したこと(すなわちロック中のオブジェクトが確定されなかったこと)を認識できる。
4−8.アイ入力の受付け処理のフロー
次に、図24を用いてゲーム演算部110によるアイ入力の受付け処理のフローを説明する。
アイ入力の受付け処理のフローは、例えば、高所恐怖体験ゲーム(図8、図9)の実行中、実行前、又は実行後において、ゲームシステム1がプレーヤPから1又は複数の指示を受付ける必要が生じた場合に適宜に実行される。このアイ入力の受付け処理のフローは、アイ入力の受付け処理の対象となったオブジェクト(プレーヤPが指定可能なオブジェクト)ごとに実行される。ここでは、セレクト画面(図10)を例に挙げる。
例えば、ゲーム処理のモードが「1人プレーモード」又は「2人プレーモード」に設定済みである場合には、セレクト画面(図10)のうち、押しボタンオブジェクトOB1、OB2の各々は、受付け処理の対象外となり、押しボタンオブジェクトOB3、OB4の各々がアイ入力の受付け処理の対象となる。
また、ゲーム処理のモードが「初級モード」又は「上級モード」に設定済みである場合には、セレクト画面(図10)のうち、押しボタンオブジェクトOB3、OB4は、受付
け処理の対象外となり、 押しボタンオブジェクトOB1、OB2の各々がアイ入力の受付け処理の対象となる。
以下、図24のフローを説明する。
先ず、ゲーム演算部110は、受付け処理の対象となるオブジェクトの表示を開始する(ステップS11)。オブジェクトの表示は、仮想3次元空間に対するオブジェクトの配置によって行われる。
次に、ゲーム演算部110は、オブジェクトの目視判定処理(ステップS13)を実行し、オブジェクトが目視されている場合には(ステップS13Y)、当該オブジェクトの目視時間のチャージを開始し(ステップS15)、そうでない場合には(ステップS13N)、目視判定(ステップS13)を繰り返す。なお、「目視時間のチャージ」は、目視時間の計測のことであって、オブジェクトが目視されている時間に応じてチャージ量を増加させ、オブジェクトから視線が外れている時間に応じてオブジェクトのチャージ量を減少させる処理のことである。なお、ゲーム演算部110は、チャージを開始すると(S15)、目視判定を実行し、かつ目視判定の結果に応じてチャージ量を増減させる処理を、チャージ量がリセットされるまでの期間中に、例えば周期的に繰り返す。繰り返しの周期は、例えばフレーム周期と同じ周期に設定される。
次に、ゲーム演算部110は、チャージ量が第1閾値Th1(=2)を越えることなく(ステップS17N)、オブジェクトから視線が外れない限りは(ステップS19N)、チャージ量が第1閾値Th1(=2)に達したか否かの判定処理(ステップS17)と、オブジェクトから視線が外れたか否かの判定処理(ステップS19)とを、繰り返す。
そして、ゲーム演算部110は、チャージ量が第1閾値Th1(=2)を越える前に(ステップS17N)、オブジェクトから視線が外れた場合(ステップS19Y)には、オブジェクトのチャージ量をゼロにリセットしてから(ステップS20)、目視判定処理(ステップS13)へ戻る。
また、ゲーム演算部110は、チャージ量が第1閾値Th1(=2)を越えた場合には(ステップS17Y)、オブジェクトのロックを受付ける(ステップS21)。これによって、オブジェクトがロックされる。
オブジェクトがロックされると(ステップS21)、ゲーム演算部110は、チャージ量が第2閾値Th2(=5)に達しておらず(ステップS23N)、チャージ量が第3閾値Th3(=ゼロ)まで低下しない(ステップS25N)限り、チャージ量が第2閾値Th2(=5)に達したか否かの判定処理(ステップS23)とチャージ量が第3閾値Th3(=ゼロ)まで低下したか否かの判定処理(ステップS25)とを繰り返す。
その後、チャージ量が第3閾値Th3(=ゼロ)まで低下した場合(ステップS25Y)には、ゲーム演算部110は、オブジェクトのロックの解除を受付け(ステップS29)、当初の目視判定の処理(ステップS13)へ戻る。
また、チャージ量が第2閾値Th2(=5)に達した場合(ステップS23Y)には、ゲーム演算部110は、ロックの確定を受付け(ステップS27)、チャージ量をゼロにリセットしてから(ステップS30)、フローを終了する。これによって、オブジェクトのロックが確定する。
なお、以上のフローには示さなかったが、ゲーム演算部110は、オブジェクトのチャ
ージ量が第1閾値Th1を越えた場合(ステップS17Y)、オブジェクトのチャージ量が第2閾値Th2に達するまでにオブジェクトから視線が外れた場合(ステップS19Y)、オブジェクトのチャージ量が第2閾値Th2に達した場合(ステップS23Y)、オブジェクトのチャージ量が第3閾値Th3まで低下した場合(ステップS25Y)には、オブジェクトの視覚効果の態様(オブジェクト自体の視覚効果の態様)を変化させる処理を実行する(図14などを参照)。
4−9.ロック強度の制御処理のフロー
次に、図25を用いてロック強度の制御処理のフローを説明する。
ロック強度の制御処理のフローは、アイ入力の受付け処理のフロー(図24)と並行して実行される。また、ロック強度の制御処理のフローは、アイ入力の受付け処理の対象となったオブジェクトごとに、繰り返し実行される。
先ず、ゲーム演算部110は、オブジェクトがロックされているか否かを判定する (ステップS51)。
そして、オブジェクトがロックされていない場合(ステップS51N)、ゲーム演算部110は、ヒットエリアのサイズを「標準」に設定し(ステップS53)、かつ、視線が外れた場合におけるチャージ量の減少速度を「高」に設定し(ステップS55)、フローを終了する。但し、チャージ量の減少速度は、チャージ量の増加速度より緩やかである。
一方、オブジェクトがロックされている場合(ステップS51Y)、ゲーム演算部110は、オブジェクトのチャージ量が「3」以上であるか否かを判定する(ステップS57)。
そして、チャージ量が「3」以上でない場合(ステップS57N)、ゲーム演算部110は、ヒットエリアのサイズを「中」に設定し(ステップS59)、かつ、視線が外れた場合におけるチャージ量の減少速度を「高」より緩やかな速度「中」に設定し(ステップS61)、フローを終了する。
一方、チャージ量が「3」以上である場合(ステップS57Y)、ゲーム演算部110は、ヒットエリアのサイズを「大」に設定し(ステップS65)、かつ、視線が外れた場合におけるチャージ量の減少速度を「中」より緩やかな速度「低」に設定し(ステップS67)、フローを終了する。
なお、以上のフローには示さなかったが、ゲーム演算部110は、プレーヤPの上下方向におけるサイズの拡大率よりも、プレーヤPの左右方向におけるサイズの拡大率を大きくする(図16を参照)。また、以上のフローにおいて、ステップの順序は、可能な範囲内で入れ替えが可能である。
4−10.スピードアップ処理のフロー
次に、図26を用いてゲーム演算部110によるスピードアップ処理のフローを説明する。
スピードアップ処理のフローは、アイ入力の受付け処理のフロー(図24)と並行して実行される。また、スピードアップ処理のフローは、アイ入力の受付け処理の対象となったオブジェクトごとに、繰り返し実行される。
先ず、ゲーム演算部110は、オブジェクトがロックされたか否かを判定する(ステッ
プS71)。
オブジェクトがロックされていない場合(ステップS71N)、ゲーム演算部110は、ステップS71の判定を繰り返す。
オブジェクトがロックされると(ステップS71Y)、ゲーム演算部110は、視点LSA’が起点条件を満たすか否かを判定する(ステップS73)。
視点LSA’が起点条件を満たす場合(ステップS73Y)、ゲーム演算部110は、次のステップに進み、そうでない場合(ステップS73N)、ゲーム演算部110は、当初の判定処理(ステップS71)に戻る。
次に、ゲーム演算部110は、視点LSA’の移動が直線条件又は円弧条件を満たすか否かを判定する(ステップS75)。
視点LSA’の移動が直線条件又は円弧条件を満たさない場合(ステップS75N)は、当初の判定処理(ステップS71)に戻り、そうでない場合(ステップS75Y)は、次の処理(ステップS77)へ進む。
次に、ゲーム演算部110は、視点LSA’の移動が時間条件を満たすか否かを判定する(ステップS77)。
視点LSA’の移動が時間条件を満たさない場合(ステップS77N)は、当初の判定処理(ステップS71)に戻り、そうでない場合(ステップS77Y)は、次の処理(ステップS79)へ進む。
次に、ゲーム演算部110は、視点LSA’の移動が距離条件を満たすか否かを判定する(ステップS79)。
視点LSA’の移動が距離条件を満たさない場合(ステップS79N)は、当初の判定処理(ステップS71)に戻り、そうでない場合(ステップS79Y)は、次の処理(ステップS81)へ進む。
次に、ゲーム演算部110は、視点LSA’の移動が折り返し条件を満たすか否かを判定する(ステップS81)。
視点LSA’の移動が折り返し条件を満たさない場合(ステップS81N)は、直線条件等の判定処理(ステップS75)に戻り、そうでない場合(ステップS81Y)は、次の処理(ステップS83)へ進む。
次に、ゲーム演算部110は、視点LSA’の移動が角度条件を満たすか否かを判定する(ステップS83)。
視点LSA’の移動が角度条件を満たさない場合(ステップS83N)は、当初の判定処理(ステップS71)に戻り、そうでない場合(ステップS83Y)は、次の処理(ステップS85)へ進む。
次に、ゲーム演算部110は、確定用アクションを検出する可能性をプレーヤPへ予告(確定予告)し(ステップS85)、次の処理(ステップS87)へ進む。
次に、ゲーム演算部110は、視点LSA’の移動が戻り条件を満たすか否かを判定する(ステップS87)。
視点LSA’の移動が戻り条件を満たさない場合には(ステップS87N)、予告(確定予告)を解除してから当初の判定処理(ステップS71)に戻り、戻り条件を満たした場合(ステップS87Y)は、次の処理(ステップS88)へ進む。
次に、ゲーム演算部110は、確定用アクションを検出した旨をプレーヤPへ通知(検出通知)し(ステップS88)、次の処理(ステップS89)へ進む。
次に、ゲーム演算部110は、検出当該オブジェクトのチャージ量にかかわらず、当該オブジェクトのロックの確定を受付け(ステップS89)、チャージ量をゼロにリセットしてから(ステップS91)、フローを終了する。これによって、オブジェクトのロックが確定する。
4−11.アイ入力の適用例
例えば、本実施形態の高所恐怖体験ゲームには、猫の演出用オブジェクト80を捕獲(救出)することを任務とするモードと、猫の演出用オブジェクト80を捕獲(救出)することを任務としないモードとが用意されている。
この場合、ゲーム演算部110は、ゲーム開始に当たり、例えば、図27に示すとおり「猫を捕獲しますか?」という文字イメージと、猫オブジェクトと、押しボタンオブジェクトOB5、OB6とを、仮想3次元空間OBSに配置する。
このうち、押しボタンオブジェクトOB5は、「YES」の意図をプレーヤPがシミュレーション制御装置100へ入力するための押しボタンオブジェクトであり、押しボタンオブジェクトOB6は、「NO」の意図をプレーヤPがシミュレーション制御装置100へ入力するための押しボタンオブジェクトである。
例えば、プレーヤPが図28に示すとおり「NO」に対応した押しボタンオブジェクトOB6をアイ入力によりロックして確定すると、ゲーム演算部110は、例えば、猫オブジェクトが仮想移動経路から退避するアニメーションを、オブジェクト空間設定部111を介して仮想3次元空間OBSに表示する。また、ゲーム演算部110は、演出制御処理部114を介して、猫の演出用オブジェクト80を、実際の移動経路Rの終点から退避させる。
また、例えば、プレーヤPが「YES」に対応した押しボタンオブジェクトOB5をアイ入力によりロックして確定すると、ゲーム演算部110は、例えば、猫オブジェクトが仮想移動経路の終点へ向かって逃げていくアニメーションを、オブジェクト空間設定部111を介して仮想3次元空間OBSに表示する。また、ゲーム演算部110は、演出制御処理部114を介して、猫の演出用オブジェクト80を実際の移動経路Rの終点へ配置する。
なお、上記の実施形態では、アイ入力によりプレーヤPが指定可能なオブジェクトを、押しボタンオブジェクト(アイコン)としたが、キャラクタ(敵キャラクタ、味方キャラクタ、動物キャラクタ、自分のアバター)、アイテム(宝箱、カード)などであってもよいし、キャラクタやアイテムの一部の部位であってもよい。
5.実施形態の作用効果
以上説明したとおり、本実施形態のシミュレーション制御装置100は、HMD20へ
仮想3次元空間を表示する表示処理部110Aと、仮想3次元空間に配置されたオブジェクトをプレーヤPが目視しているか否かを判定し、オブジェクトに対するプレーヤPの目視時間をチャージし、オブジェクトからプレーヤPの視線が外れた場合には、視線が外れている時間に応じてチャージ量を減少させる計測部110Bと、チャージ量が第1閾値Th1に達した場合にオブジェクトのロックの指示を受付け、チャージ量が第1閾値Th1より大きい第2閾値Th2に達した場合にオブジェクトのロックの確定の指示を受付け、確定の前にチャージ量が第3閾値Th3まで低下した場合にオブジェクトのロックの解除を受付ける受付け部110Cと、チャージ量の大きさの程度をプレーヤPへ通知する通知部110Dと、オブジェクトのロックが確定した場合にオブジェクトに対応付けられた所定の処理を実行する実行部110Eとを備え、受付け部110C(受付け部110Cとしてのゲーム演算部110)は、ロック中のオブジェクトを起点とした視線の折り返し移動を伴う所定の確定用アクションを検出した場合には、チャージ量が第2閾値Th2に達していなかったとしても、ロックの確定を受付ける。
従って、プレーヤPは、オブジェクトのチャージ量が第1閾値Th1に達するまで目視することで、当該オブジェクトをロックすることができる。また、その反対に、第1閾値Th1を越えない範囲でプレーヤPがオブジェクトを目視した場合(一瞥した場合)には、当該オブジェクトの非ロック状態を維持することも可能である。
また、オブジェクトがロックされると、オブジェクトからプレーヤPの視線が外れたとしてもチャージ量が第3閾値Th3に低下するまでの期間中はロックが維持されるので、ロックを維持するためにプレーヤPが視線の固定を強要されることはない。また、その反対に、チャージ量が第3閾値Th3に低下するまでプレーヤPがオブジェクトから視線を外せば、オブジェクトのロックを解除することもできる。
また、オブジェクトのロック後は、チャージ量が第2閾値Th2に達するまでプレーヤPがオブジェクトを目視するだけで、確定の指示をシミュレーション制御装置100へ入力することができる。また、その反対に、オブジェクトのロック後は、第2閾値Th2と第3閾値Th3との間にチャージ量が収まるようにプレーヤPがオブジェクトの目視又は視線外しを行えば、ロック状態を継続することもできる。
従って、プレーヤPは、アイ入力により、オブジェクトの状態を「ロック」、「ロック解除(非ロック)」、「確定」の3状態の間で自由に制御することができる。「アイ入力」は、プレーヤPがオブジェクトを目視するという動作によって自分の指示をシミュレーション制御装置100へ入力することである。
更には、プレーヤPは、オブジェクトのロック後に視線の折り返し移動を伴う所定の確定用アクションを行った場合には、チャージ量が第2閾値Th2に増大するまでオブジェクトの目視を継続せずとも、当該オブジェクトのロックを確定することができる。つまり、本実施形態のシミュレーション制御装置100は、プレーヤPの待ち時間(ロックから確定までの時間)を、必要に応じて短縮することができる。
また、受付け部110Cとしてのゲーム演算部110は、少なくとも往路に要する時間が所定時間内に収められた折り返し移動を、確定用アクションして検出する。つまり、受付け部110Cとしてのゲーム演算部110は、仮に折り返し運動が行われたとしても、少なくとも往路に要する時間が所定時間内に収められていなかった場合には、当該折り返し移動を確定用アクションとして検出しない。
従って、視線の折り返し移動が行われたとしても、折り返し移動の往路に要する時間が長すぎる場合には、当該折り返し移動が確定用アクションとみなされることはない。よっ
て、確定用アクションの誤検出を防ぐことができる。
また、受付け部110Cとしてのゲーム演算部110は、少なくとも往路に要する距離が所定距離内に収められた折り返し移動を、確定用アクションとして検出する。つまり、受付け部110Cとしてのゲーム演算部110は、仮に折り返し移動が行われたとしても、少なくとも往路に要する距離が所定距離内に収められていなかった場合には、当該折り返し移動を確定用アクションとして検出しない。
従って、視線の折り返し移動が行われたとしても、折り返し前の移動距離が長すぎる場合には、当該折り返し移動が確定用アクションとみなされることはない。よって、確定用アクションの誤検出を防ぐことができる。
また、受付け部110Cとしてのゲーム演算部110は、往路から復路への折り返し角度が所定角度内に収められた折り返し移動を、確定用アクションとして検出する。つまり、受付け部110Cとしてのゲーム演算部110は、仮に折り返し移動が行われたとしても、往路から復路への折り返し角度が所定角度内に収められていなかった場合には、当該折り返し移動を確定用アクションとして検出しない。
従って、視線の折り返し移動が行われたとしても、移動経路の折り返し角度が大きすぎる場合には、当該折り返し移動が確定用アクションとみなされることはない。よって、確定用アクションの誤検出を防ぐことができる。
また、受付け部110Cとしてのゲーム演算部110は、少なくとも往路の形状が直線条件又は円弧条件を満たしている折り返し移動を、確定用アクションとして検出する。つまり、受付け部110Cとしてのゲーム演算部110は、仮に折り返し移動が行われたとしても、少なくとも往路の形状が直線条件又は円弧条件を満たしていなかった場合には、当該折り返し移動を確定用アクションとして検出しない。
従って、視線の折り返し移動が行われたとしても、折り返し点より前に移動経路が当初の方向とは異なる方向に曲がった場合に、当該折り返し移動が確定用アクションとみなされることはない。よって、確定用アクションの誤検出を防ぐことができる。
また、通知部110Dとしてのゲーム演算部110は、折り返し移動の折り返し点を検出した場合には、確定用アクションが検出される可能性をプレーヤPへ予告する。
従って、プレーヤPは、当該予告により、確定用アクションが検出される可能性(ロック中のオブジェクトが即時に確定される可能性)を認識できる。また、予告を受けたプレーヤPは、オブジェクトのロックを即座に確定したい場合には、確定用アクションを続行し、オブジェクトのロックを維持したい場合には、確定用アクションを中断するという判断を適時に行うことができる。
また、通知部110Dとしてのゲーム演算部110は、確定用アクションを検出した場合には、その旨をプレーヤPへ通知する。
従って、プレーヤPは、当該通知により、確定用アクションが検出されること(すなわちロック中のオブジェクトが確定されること)を認識できる。また、プレーヤPは、当該通知が無かったことにより、確定用アクションが検出されなかったこと(すなわちロック中のオブジェクトが確定されていないこと)を認識できる。
6.変形例
6−1.モーションセンサについて
上記の実施形態のゲームシステムでは、プレーヤPの頭部の位置及び姿勢を検出するために撮像カメラ70を用いたが、HMD20に搭載されたモーションセンサを用いてもよいし、撮像カメラ70とモーションセンサとの組み合わせを用いてもよい。モーションセンサとしては、加速度センサ、角速度センサ(ジャイロセンサ)などを用いることができる。モーションセンサは、姿勢変化を伴う移動物体(ここではプレーヤPの頭部)の動きを高精度に検出するのに適している。
6−2.視線検出について
上記の実施形態において、ゲーム演算部110は、仮想3次元空間OBSにおける表示エリアDS及び視認エリアLSAの動き(位置及び姿勢)を、プレーヤPの頭部の動き(位置及び姿勢)に追従させたが、プレーヤPの眼球の動き(位置及び姿勢)に追従させてもよい。
或いは、上記の実施形態において、ゲーム演算部110は、仮想3次元空間OBSにおける表示エリアDS及び視認エリアLSAの動き(位置及び姿勢)を、プレーヤPの頭部の動きと眼球の動きとの双方に追従させてもよい。
その場合、例えば、ゲーム演算部110は、仮想3次元空間OBSにおける表示エリアDSの動きを、プレーヤPの頭部に動きに追従させ、かつ、表示エリアDSにおける視認エリアLSAの動きを、プレーヤPの眼球の動きに追従させてもよい。
なお、プレーヤPの眼球の動きを検出するためには、例えば、プレーヤPの視線方向を検出する視線センサをHMD20に搭載し、視線センサの出力を、通信部196及び通信制御部120を介して処理部101(ゲーム演算部110)が受信すればよい。
また、視線センサとしては、以下の視線センサ(1)、(2)のうち少なくとも1つを採用することができる。
(1)プレーヤPの少なくとも一方の眼を撮像するカメラと、カメラが撮影した画像に基づきプレーヤPの瞳の位置(視軸の向きを示す情報)を検出する処理部と、を含む視線センサ。
(2)プレーヤPの少なくとも一方の眼球へ赤外線などの検出光を投光する投光部と、眼球の網膜における当該検出光の反射光量を検出する検出部と、検出部の出力に基づき眼球の視軸の向きを検出する処理部と、を含む視線センサ。
なお、視線センサを利用する場合には、プレーヤPごとに視線センサのキャリブレーションを行うことが望ましい。視線センサのキャリブレーションは、プレーヤPごとの眼球の位置のばらつき、瞳のサイズのばらつき、HMD20の装着姿勢のばらつきなどによらず、プレーヤPの視線方向を正しく検出するための処理であって、例えば、HMD20を装着したプレーヤPに対して幾つかの既知の方向を目視させ、そのときの視線センサの出力に基づき、処理部のパラメータを調整する処理である。
6−3.仮想メカスイッチについて
上記実施形態では、オブジェクトのステータス(チャージ量、ロックの有無、折り返し点の検出の有無など)をプレーヤPへ通知(確定予告、検出通知を含む)するためにゲーム演算部110がオブジェクトの強調度を変化させる例を幾つか説明したが(図14、図15、図23等を参照。)、強調度を変化させるために他の方法を採用することもできる。例えば、オブジェクトの外観を変化させる方法などである。
例えば、ゲーム演算部110は、プレーヤPが指定可能なオブジェクトとして仮想的な押しボタン(仮想メカスイッチ)を採用し、オブジェクトのステータスに応じて仮想メカスイッチの押し下げ量を変化させてもよい。例えば、ゲーム演算部110は、オブジェクトのチャージ量が大きいときほど仮想メカスイッチの押し下げ量を深くすることで、視線の注入で仮想メカスイッチを押し下げるような感覚をプレーヤPに与えることができる。この仮想メカスイッチは、長押し(ここでは長目視)でロックされ、更なる長押し(ここでは長目視)で確定される仮想メカスイッチである。また、例えば、ゲーム演算部110は、確定用アクションが検出される可能性が高いときほど仮想メカスイッチの押し下げ量を深くすることで、視線の折り返し移動で仮想メカスイッチを押し下げるような感覚をプレーヤPに与えることができる。
6−4.オブジェクトの強調の有無による通知
上記実施形態では、オブジェクトのステータスをプレーヤPへ通知(確定予告、検出通知を含む)するためにゲーム演算部110がオブジェクトの強調度を変化させる例を幾つか説明したが(図14、図15、図23等を参照。)、オブジェクトの強調の有無(例えばマークの表示の有無)を切り替えてもよい。
例えば、ゲーム演算部110は、オブジェクトがロックされていない期間にはネオンマーク列を非表示とし、オブジェクトがロックされた場合にネオンマーク列の表示を開始してもよい。
また、例えば、ゲーム演算部110は、オブジェクトのロック後に折り返し点が検出された場合にネオンマーク列を非表示とし、オブジェクトのロック後に折り返し点が検出されない場合にネオンマーク列の表示を継続してもよい。図29(f)→図29(f’)は、折り返し点の検出後にネオンマーク列が非表示となる例を示しており、図29(f)→図29(g)は、折り返し点が検出されずにネオンマーク列の表示が継続される例を示している。
また、例えば、ゲーム演算部110は、折り返し点の検出後に確定用アクションが続行された場合にネオンマーク列の非表示を継続し、折り返し点の検出後に確定用アクションが中断された場合にネオンマーク列の表示を再開してもよい。図29(f’)→図29(g’)は、折り返し点の検出後にネオンマーク列の非表示が継続される例を示しており、図29(f’)→図29(g)は、折り返し点の検出後にネオンマーク列の表示が再開される例を示している。
つまり、ゲーム演算部110は、チャージ量に拘わらずロックの確定が行われる時期(図29(f’)、図29(g’))には、ネオンマーク列を非表示とし、チャージ量に応じてロックの確定が行われる時期(図29(d)〜図29(i))には、ネオンマーク列を表示するというパターンでオブジェクトの強調の有無を切り替えてもよい。なお、ここで挙げたパターンは一例であり、様々に変更することが可能である。また、視覚効果としてネオンマーク列の代わりにゲージを用いることもできる(図30を参照)。
6−5.文言「選択」について
上記実施形態において、ゲーム演算部110は、或るオブジェクトの目視が開始されたタイミングで計測(チャージ)の開始を受付け、チャージ量が第1閾値Th1を超えたタイミングで「選択(ロック)」を受付け、チャージ量が第2閾値Th2に達したタイミングで「選択(ロック)の確定」を受付け、チャージ量が第3閾値Th3に低下したタイミングで「選択(ロック)の解除」を受付けた。しかし、各タイミングでゲーム演算部110が受付けた指示の名称は、あくまでも便宜的なものであって、別の名称に読み替えるこ
とも可能である。
例えば、上記実施形態において、以下のとおり読み替えることも可能である。すなわち、ゲーム演算部110は、或るオブジェクトの目視が開始されたタイミングで「選択」を受付け、チャージ量が第1閾値Th1を超えたタイミングで「選択の維持(ロック)」を受付け、チャージ量が第2閾値Th2に達したタイミングで「選択の確定」を受付け、チャージ量が第3閾値Th3に低下したタイミングで「選択の解除」又は「維持(ロック)の解除」を受付けてもよい。
6−6.機能分担について
本実施形態のゲームシステム1における要素の機能は、効果が損なわれない範囲内で適宜に変形することが可能である。
例えば、上述したHMD20の機能の一部は、シミュレーション制御装置100の側に搭載されてもよいし、シミュレーション制御装置100の機能の一部又は全部は、HMD20の側に搭載されてもよい。また、シミュレーション制御装置100の処理部101に含まれる各要素の機能分担についても適宜に変更可能である。
例えば、表示処理部110Aの処理の一部又は全部は、オブジェクト空間設定部111によって実行されてもよいし、オブジェクト空間設定部111の処理の一部又は全部は、表示処理部110Aによって実行されてもよい。
また、計測部110Bの処理の一部又は全部は、状態検出処理部112によって実行されてもよいし、状態検出処理部112の処理の一部又は全部は、計測部110Bによって実行されてもよい。
また、シミュレーション制御装置100には、処理部101の機能の一部又は全部を実現する専用の回路(ハードウエア)が搭載されてもよい。つまり、処理部101における処理の一部又は全部は、ソフトウェアによって実行されてもよいし、ハードウェアによって実行されてもよい。
6−7.ゲーム機について
上記実施形態では、プレーヤPが移動可能な実空間(以下、単に「実空間」という。)が形成された構造体を含むゲームシステム1(ゲームシステム1のシミュレーション制御装置100)に、HMD20によるアイ入力を適用した例を説明したが、HMD20によるアイ入力は、他のゲームシステムに適用することもできる。
例えば、インターネットなどのネットワーク経由でサーバ装置から端末装置へゲームが提供されるシステムに、HMD20によるアイ入力を適用することもできる。また、その場合、システムにおけるゲームプログラムの実行は、端末装置の側で行われてもよいし、サーバ装置の側で行われてもよい。また、その場合、端末装置は、操作入力とストリーミングによる画像表示を実行することによって、上記のゲームを実現してもよい。
また、また、HMD20によるアイ入力は、ネットワークに接続されないスタンドアローン型のゲーム装置に適用することも可能であるし、ゲーム装置に限らず、スマートフォン、タブレット型情報端末装置、パーソナルコンピュータ、モニター又はテレビなどのタッチパネルを用いて操作入力を実行可能な端末装置に適用することも可能である。
6−8.アイ入力デバイスについて
上記実施形態では、非透過型のHMD20をアイ入力に用いたが、透過型のHMD、単
眼型HMDなど、他種の装着型画像表示装置をアイ入力に用いてもよい。また、プレーヤPに対するHMDの装着方式についても、帽子型、アイグラス型、ヘルメット型、サンバイザー型、ヘアバンド型など、様々な装着方式を採用することができる。
7.その他
本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
本発明は、実施形態で説明した構成と実質的に同一の構成(例えば、機能、方法及び結果が同一の構成、あるいは目的及び効果が同一の構成)を含む。また、本発明は、実施形態で説明した構成の本質的でない部分を置き換えた構成を含む。また、本発明は、実施形態で説明した構成と同一の作用効果を奏する構成又は同一の目的を達成することができる構成を含む。また、本発明は、実施形態で説明した構成に公知技術を付加した構成を含む。
上記のように、本発明の実施形態について詳細に説明したが、本発明の新規事項及び効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。したがって、このような変形例はすべて本発明の範囲に含まれるものとする。