(58)【調査した分野】(Int.Cl.,DB名)
【図面の簡単な説明】
【0016】
【
図5】本体の制御部が実行するフィールド変動処理のフローチャートを示す。
【
図6】フィールドが移動する直前のゲーム画面の例を示す。
【
図7】フィールドが移動した後のゲーム画面の例を示す。
【0017】
(第1実施例)
(ゲームシステム2の構成;
図1〜
図3)
図1、
図2に示すゲームシステム2は、プレイヤーに、仮想3次元空間内でのゲームを体感及びプレイさせるためのゲームシステムである。
図1、
図2に示すように、ゲームシステム2は、HMD(Head Mount Displayの略)10と、右コントローラ30Rと、左コントローラ30Lと、カメラ50と、本体60と、を備える。HMD10と本体60、及び、カメラ50と本体60は、それぞれ、互いに有線通信可能に接続されている。また、右コントローラ30R及び左コントローラ30Lと、本体60とは互いに無線通信可能に接続されている。以下では、右コントローラ30R及び左コントローラ30Lを区別せずに呼ぶ場合、単に「コントローラ30」と呼ぶ場合がある。
【0018】
(HMD10の構成)
図1、
図2に示すHMD10は、プレイヤーの頭部に装着して用いられる画像表示装置(いわゆる頭部装着型ディスプレイ)である。HMD10は、フレーム11と、マーカ12と、表示部13と、操作部14と、を備える。
【0019】
フレーム11は、眼鏡フレーム状の部材である。プレイヤーは、顔の前面側から眼鏡を装着するようにフレーム11を装着することによって、HMD10を頭部に装着することができる。他の例では、フレーム11は、ヘッドバンド状の部材、ヘルメット状の部材等、頭部に装着可能な形状のフレームであれば任意の形状のフレームであってもよい。
【0020】
表示部13は、遮光性の表示部材である。
図2に示すように、プレイヤーがHMD10を頭部に装着すると、プレイヤーの両眼に対向する位置に表示部13が配置される。プレイヤーがHMD10を装着すると、表示部13によってプレイヤーの視界が遮られる。本実施例では、表示部13には、本体60から供給される画面データによって表されるゲーム画面(
図4等参照)が表示される。
【0021】
マーカ12は、表示部13の表側の面の両端部に配置されている。マーカ12は、フレーム11及び表示部13とは明度の異なる色(例えば蛍光色等の明色)の目印である。後で詳しく説明するが、本体60の制御部70は、カメラ50が撮影する撮影画像中のマーカ12の位置等に応じて、HMD10を装着するプレイヤーの頭の位置及び向きを特定することができる。即ち、マーカ12は、HMD10の位置及び向き(即ちプレイヤーの頭の位置及び向き)を特定するための目印である。
図1、
図2では、マーカ12の形状は、略長方形であるが、他の例では、マーカ12の形状はこれに限らず任意の形状であってもよい。また、他の例では、マーカ12が、
図1、
図2の例とは異なる位置に配置されていてもよい。
【0022】
操作部14は、フレーム11の表面に露出して設けられている。操作部14は、複数個のボタン、ダイヤル等を含む。プレイヤーは、操作部14を操作して、HMD10に様々な操作を入力することができる。他の例では、操作部14は、フレーム11から独立した(即ちフレーム11から離れた位置に設けられた)コントローラとして構成されていてもよい。その場合、コントローラは、有線通信あるいは無線通信によってHMD10と通信可能であってもよい。
【0023】
続いて、
図3を参照して、HMD10の制御構成について説明する。なお以下では、
図1、
図2を参照して既に説明した構成については説明を省略する。
図3に示すように、HMD10は、さらに、有線インターフェース16、制御部20、及び、メモリ22を備える。なお、
図3では、3軸加速度センサ24及び位置検出装置26が破線で図示されているが、本実施例のHMD10は3軸加速度センサ24及び位置検出装置26を備えない。3軸加速度センサ24及び位置検出装置26については後述の第2実施例で言及する。また、以下ではインターフェースのことを「I/F」と記載する。
【0024】
有線I/F16は、本体60と有線通信を実行するためのI/Fである。有線I/F16には、本体60と有線通信するための通信ケーブルが接続される。
【0025】
制御部20は、メモリ22に記憶されたプログラムに従って様々な処理を実行する。本実施例では、ゲーム中、制御部20は、本体60から供給される画面データによって表されるゲーム画面(
図4参照)等を表示部13に表示させる処理を実行する。メモリ22は、ROM、RAM等によって構成される。メモリ22は、制御部20が各種処理を実行するためのプログラムを記憶している。
【0026】
(右コントローラ30R、左コントローラ30Lの構成)
図1、
図2に示す右コントローラ30Rは、プレイヤーがゲームに関する操作を入力するためのコントローラである。右コントローラ30Rは、把持部31Rと、マーカ32Rと、操作部34R、35Rと備える。把持部31Rは、右コントローラ30Rの本体であるとともに、プレイヤーが右手で把持するための部分である(
図2参照)。マーカ32Rは、把持部31Rの上端部に把持部31Rと一体に形成されている略球状の部材である。マーカ32Rは、把持部31Rとは明度の異なる色(例えば蛍光色等の明色)の目印である。マーカ32Rの色は、上述のマーカ12の色と同じであってもよい。後で詳しく説明するが、本体60の制御部70は、カメラ50が撮影する撮影画像中のマーカ32Rの位置等に応じて、右コントローラ30Rを把持するプレイヤーの右手の位置及び動作を特定することができる。即ち、マーカ32Rは、プレイヤーの右手の位置及び動作を特定するための目印である。
図1、
図2では、マーカ32Rの形状は略球状であるが、他の例では、マーカ32Rの形状はこれに限らず任意の形状であってもよい。また、他の例では、マーカ32Rが、
図1、
図2の例とは異なる位置に配置されていてもよい。
【0027】
操作部34R、35Rは、把持部31Rの表面に露出して設けられている。操作部34R、35Rは、複数個のボタン、レバー、ダイヤル等を含む。操作部34Rは、プレイヤーが把持部31Rを右手で把持した際に、右手の親指で操作可能な位置に配置されている。操作部35Rは、プレイヤーが把持部31Rを右手で把持した際に、右手の親指以外の指(例えば人差し指)で操作可能な位置に配置されている。プレイヤーは、操作部34R、35Rを操作して、右コントローラ30Rに様々な操作(特に、ゲームに関連する操作等)を入力することができる。
【0028】
続いて、
図3を参照して、右コントローラ30Rの制御構成について説明する。なお、
図1、
図2を参照して既に説明した構成については説明を省略する。
図3に示すように、右コントローラ30Rは、さらに、無線I/F36R、制御部40R、メモリ42Rを備える。なお、
図3では、3軸加速度センサ44R及び位置検出装置46Rが破線で図示されているが、本実施例の右コントローラ30Rは3軸加速度センサ44R及び位置検出装置46Rを備えない。3軸加速度センサ44R及び位置検出装置46Rについては後述の第2実施例で言及する。
【0029】
無線I/F36Rは、本体60と無線通信を実行するためのI/Fである。制御部40Rは、メモリ42Rに記憶されたプログラムに従って様々な処理を実行する。本実施例では、ゲーム中、制御部40は、操作部34、35に入力される各種操作を示す各種指示信号を、無線通信によって本体60に送信する処理を実行する。メモリ42Rは、ROM,RAM等によって構成されており、制御部40Rが各種処理を実行するためのプログラムを記憶している。
【0030】
図1〜
図3に示すように、左コントローラ30Lは、右コントローラ30Rと左右反対であることを除いて右コントローラ30Rと同様の構成を有する。左コントローラ30Lも、把持部31L、マーカ32L、操作部34L、35L、無線I/F36L、制御部40L、及びメモリ42Lを備えている。
【0031】
(カメラ50の構成)
図1〜
図3に示すカメラ50は、HMD10を装着し、コントローラ30を把持しているプレイヤー(即ち、ゲームプレイ中のプレイヤー)を撮影するためのカメラである。カメラ50は、プレイヤーの略全身を撮影可能な位置に配置される。カメラ50は、通信ケーブルを介して本体60と有線通信を実行可能に接続されている。本実施例では、ゲーム中、カメラ50は、撮影画像を有線通信によって本体60に継続的に供給する。
【0032】
(本体60の構成)
図1〜
図3に示す本体60は、ゲームプログラムに従って、ゲーム画面(
図4参照)を示す画面データ生成する装置である。
図3に示すように、本体60は、有線I/F62と、無線I/F64と、制御部70と、メモリ72と、記録媒体読取部74と、を備える。
【0033】
有線I/F62は、HMD10及びカメラ50と有線通信を実行するためのI/Fである。有線I/F62には、HMD10と有線通信するための通信ケーブル、及び、カメラ50と有線通信するための通信ケーブルが接続されている。無線I/F64は、コントローラ30と無線通信を実行するためのI/Fである。
【0034】
制御部70は、メモリ72に記憶されたOSプログラム73、記録媒体読取部74において読み取られたゲームプログラム90等に従って、ゲーム画面を表わす画面データの生成処理、
図4のフィールド変動処理等、様々な処理を実行する。メモリ72は、ROM、RAM等によって構成される。メモリ72は、OSプログラム73を予め記憶している。本実施例では、記録媒体読取部74は、DVDドライブである。記録媒体読取部74は、ゲームプログラム90が記録されたDVDROM80を読取可能である。他の例では、記録媒体読取部74は、例えばCDROM、フラッシュメモリ等、他の記録媒体を読取可能な読取部であってもよい。
【0035】
(ゲームシステム2の動作)
続いて、ゲームシステム2を利用してプレイヤーがゲームをプレイする場合における各デバイスの動作について説明する。プレイヤーがゲームシステム2を利用してゲームをプレイする場合、まず、プレイヤーは、HMD10、コントローラ30、カメラ50、及び、本体60の電源をオンする。そして、プレイヤーは、本体60の記録媒体読取部74にゲームプログラム90が記録されたDVDROM80を読み取らせる。プレイヤーは、HMD10を頭部に装着し、コントローラ30(即ち右コントローラ30R及び左コントローラ30L)を把持する。これにより、プレイヤーがゲームをプレイする準備が完了する。
【0036】
本体60の制御部70は、記録媒体読取部74によって読み取られたDVDROM80に記録されているゲームプログラム90に基づいて、ゲームを開始する。具体的には、制御部70は、ゲームプログラム90に従って、ゲーム画面(
図4等参照)を表わす画面データを生成し、その画面データを有線通信でHMD10に供給し、HMD10の表示部13にゲーム画面を表示させる処理を行う。以下ではこの処理のことを「表示処理」と呼ぶ場合がある。
【0037】
また、制御部70は、プレイヤーがコントローラ30の操作部34、35に入力した各種操作(例えば、ゲーム操作に関係する各種操作)を示す操作信号を、コントローラ30から取得する。さらに、制御部70は、カメラ50から、カメラ50が撮影する撮影画像を継続的に取得する。制御部70は、カメラ50の撮影画像に含まれるマーカ12、32R、32Lの位置、向き、動きに基づいて、現実のプレイヤーの挙動(頭の向き、頭の位置、両手の位置、両手の動き等)を特定する。そして、制御部70は、コントローラ30から取得された操作信号、及び、特定された現実のプレイヤーの挙動に基づいて、ゲーム内におけるプレイヤーの動作を特定する。制御部70は、特定されたゲーム内におけるプレイヤーの動作に応じて、表示部13に表示されるゲーム画面の表示態様を変更させる(即ち、画面データを変更する)。
【0038】
(ゲーム画面100;
図4)
ここで、
図4を参照して、本実施例において表示部13に表示されるゲーム画面100の一例について説明しておく。
図4に示すゲーム画面100は、ゲームプログラム90によって実現されるゲームを構成する画面である。本実施例では、ゲーム画面100は、ゲームを構成する仮想3次元空間のうち、ゲーム中のプレイヤーの視界に対応する範囲を表わす画面である。
図4に示すように、本実施例のゲームを構成する仮想3次元空間は、背景空間110と、フィールド120と、を含む。背景空間110は、フィールド120が配置される背景を構成する空間である。本実施例では、背景空間110はゲームの進行に応じて変動することはない。フィールド120は、操作対象オブジェクト(例えば、自キャラクターP1〜P3、敵キャラクターE1〜E5等)が配置される場所であり、ゲームの進行に関係する場面を構成する場所である。
図4の例に示されるゲームは、自キャラクターP1〜P3を擁する自軍が、敵キャラクターE1〜E5を擁する敵軍と戦うアクション型シミュレーションゲームである。フィールド120は、自軍と敵軍とが戦う場所(戦場)であり、池、森、山など、様々な地形が配されている。
図4の例に示されるように、本実施例では、フィールド120は、背景空間110内に配置されている。
図4のゲーム画面100では、フィールド120が俯瞰される態様で表示される。
【0039】
また、ゲーム画面100は、手オブジェクト130R、130Lを含む。手オブジェクト130R、130Lは、プレイヤーの右手及び左手を仮想的に表すオブジェクトである。手オブジェクト130R、130Lは、それぞれ、右コントローラ30R、左コントローラ30Lを把持するプレイヤーの右手、左手の動作、及び、操作部34R、35R、34L、35Lに入力される各種操作に応じて、ゲーム画面100内で動かされる(即ち、表示態様が変更される)。例えば、プレイヤーがコントローラ30Rの操作部34Rに、フィールド120内のキャラクターを選択する選択操作を入力する場合、手オブジェクト130Rは、選択対象のキャラクターを指さすように動作する。手オブジェクト130Rに指さされたキャラクターは選択状態となり、操作可能な状態に変わる。このように、ゲーム画面100内に手オブジェクト130R、130Lが表示されることで、プレイヤーに、自分の手を使ってゲームに参加している感覚を直感的に認知させることができる。
【0040】
ゲームのプレイ中、制御部70は、上記の各処理(即ち、表示処理)を繰り返し実行している。また、制御部70は、ゲームのプレイ中、上記の表示処理とともに、さらに、
図5に示すフィールド変動処理を並行して実行している。
【0041】
(フィールド変動処理;
図5)
図5を参照して、制御部70が実行するフィールド変動処理の内容について説明する。
図5に示すフィールド変動処理は、ゲーム内におけるプレイヤーの視座(仮想的な目線(視線)の高さ、目線(視線)の位置、プレイヤーの立ち位置、プレイヤーの観点、プレイヤーの視野、プレイヤーの視点、等と言い換えてもよい)を動かすことなく、プレイヤーが行うフィールド変動動作に合わせて、ゲーム画面100中のフィールド120の表示態様を変更するための処理である。制御部70は、ゲームが開始されると、ゲームプログラム90に従って
図5の処理を開始する。
【0042】
S10では、制御部70は、フィールド把持操作が入力されることを監視する。フィールド把持操作は、プレイヤーが、背景空間110内に存在するフィールド120を仮想的に把持する(掴む)ための操作である。プレイヤーは、コントローラ30の操作部34(右コントローラ30Rの操作部34R、及び、左コントローラ30Lの操作部34L。以下同じ)、及び操作部35(右コントローラ30Rの操作部35R、及び、左コントローラ30Lの操作部35L。以下同じ)に所定のフィールド把持操作を入力することができる。本実施例では、フィールド把持操作は、プレイヤーが、右手の親指と人差し指とで操作部34R,35Rのボタンを同時に押すと共に、左手の親指と人差し指とで操作部34L,35Lのボタンを同時に押す操作である。即ち、本実施例のフィールド把持操作は、プレイヤーが実際にコントローラ30を強く握り込む操作をすることに対応する操作である。本実施例では、コントローラ30が強く握り込まれている間(即ち、操作部34、35のボタンが同時に押されている間)、フィールド把持操作が入力され、コントローラ30の握り込みが解除されると(即ち、操作部34、35のボタン同時押し状態が解除されると)、フィールド把持操作が解除される(即ち、後述の把持解除操作が入力される)。他の例では、フィールド把持操作は、例えば、コントローラ30を把持するプレイヤーの右手及び左手による所定のジェスチャーであってもよい。また、フィールド把持操作は、いずれかの操作部34、35を所定期間以上継続して押す(いわゆる長押しする)ことによって入力されてもよい。その場合、長押しを解除することによってフィールド把持操作が解除されてもよい。コントローラ30においてフィールド把持操作が入力されると、制御部70は、S10でYESと判断し、S12に進む。フィールド把持操作が行われると(S10でYES)、制御部70は、
図6に示すように、ゲーム画面100中の手オブジェクト130R、130Lの態様を、フィールド120を掴んでいる態様に変更する。これにより、プレイヤーが、フィールド把持操作を入力したことによってフィールド120を仮想的に掴んだことを直感的に認識することができる。
【0043】
S12では、制御部70は、続けてフィールド移動操作が入力されたか否かを判断する。フィールド移動操作は、プレイヤーが、上記フィールド把持操作によって仮想的に把持した(掴んだ)フィールド120を、仮想的に移動させるための操作である。プレイヤーは、上記のフィールド把持操作を行った後で(即ち、所定のボタンを押した状態で)、コントローラ30を把持した右手及び左手を所望の挙動で動かすことによって、フィールド移動操作を入力することができる。
【0044】
例えば、プレイヤーがフィールド120を手前に引き寄せたい場合(例えばプレイヤーがフィールド120の奥側を見たい場合)、プレイヤーはコントローラ30を持つ右手及び左手を伸ばし、自身の前方(ゲーム画面100ではフィールドの奥側)に移動させる。これにより、ゲーム画面100に表示されている手オブジェクト130R、130Lも仮想空間における前方(フィールドの奥側)に移動する。そこで、上記したフィールド把持操作を実行する。手オブジェクト130R、130Lがフィールドを掴む動作が表示される。そのまま、プレイヤーがコントローラ30を持つ右手及び左手を、前方から後方に向けて引く動作を行う。これにより、フィールド120の奥側を手前に引き寄せるフィールド移動操作を入力することができる(
図6参照)。ここでは、両手で操作をする場合について説明したが、片手で操作をしてもよい。
【0045】
また、例えば、プレイヤーがフィールド120を奥側に押し出したい場合(例えばプレイヤーがフィールド120の手前側を見たい場合)、プレイヤーは右手及び左手を後方から前方に向けて押し出す動作を行うことで、フィールド120の手前側を奥に送り出すフィールド移動操作を入力することができる。
【0046】
さらに、例えば、プレイヤーがフィールド120を遠ざけたい場合(例えばプレイヤーがフィールド120を広域表示させたい場合)、プレイヤーは右手及び左手を押し下げる動作を行うことで、フィールド120を遠ざけるフィールド移動操作を入力することができる。
【0047】
さらに、例えば、プレイヤーがフィールド120を回転させたい場合(例えばプレイヤーがフィールド120を反対側から見たい場合)、プレイヤーは右手及び左手を互いに同じ回転方向(時計回り又は反時計回り)に回転させる動作を行うことで、フィールド120を回転させるフィールド移動操作を入力することができる。
【0048】
この他にも、プレイヤーは所望のジェスチャーを入力することにより、フィールド120を所望の態様で移動させるフィールド移動操作を入力することができる。なお、フィールド移動操作が入力される場合、ジェスチャーの大きさに応じて、手オブジェクト130R、130Lが一時的にゲーム画面100外に移動(即ちフレームアウト)してもよい。フィールド移動操作が入力されると、制御部70は、S12でYESと判断してS14に進む。一方、フィールド移動操作が入力されていなければ、制御部70は、S12でNOと判断し、S14をスキップしてS16に進む。
【0049】
S14では、制御部70は、S12で入力されたフィールド移動操作において指示された移動方向及び移動量に合わせて、フィールド120の表示態様を変更させる(
図7参照)。
【0050】
S16では、制御部70は、仮想的なフィールドの把持(S10でYES)を解除するための把持解除操作が入力されたか否かを判断する。プレイヤーは、コントローラ30の操作部34に所定の把持解除操作を入力することができる。本実施例では、把持解除操作は、フィールド把持操作の入力の際に押されたボタンの押下を解除する操作である。他の例では、把持解除操作は、例えば、コントローラ30を把持するプレイヤーの右手及び左手による所定のジェスチャーであってもよい。また、他の例では、把持解除操作は、例えば、いずれかの操作部34、35の長押しを解除することであってもよい。コントローラ30において把持解除操作が入力されると、制御部70は、S16でYESと判断する。この場合、フィールド120は、把持解除操作が行われた時点の位置で固定される。S16でYESと判断されると、制御部70は、S10に戻り、再びフィールド把持操作が入力されることを監視する。一方、把持解除操作が未入力である場合、制御部70は、S16でNOと判断し、S12に戻る。この場合、制御部70は、フィールド移動操作が入力されたか否かを再び判断する。
【0051】
(フィールド120の表示態様の変更の具体例;
図4、
図6、
図7)
図4、
図6、
図7を参照して、
図5のフィールド変動処理の実行に伴って、ゲーム画面100内におけるフィールド120の表示態様が変更される具体例を説明する。
【0052】
図4は、フィールド把持操作が入力される前における(
図5のS10でNO)ゲーム画面100の例を示す。このゲーム画面100中では、フィールド120の手前側において、自キャラクターP1と敵キャラクターE1とが交戦中である。プレイヤーは、自キャラクターP1を選択して操作している。フィールド120の中央付近には敵キャラクターE2、E3が待機している。フィールド120の奥側では自キャラクターP2、P3と敵キャラクターE4、E5とが、ある程度距離をおいて存在している。
【0053】
図6は、
図4の後で表示されるゲーム画面100の例を示す。
図6の例では、
図4において手前側で敵キャラクターE1と交戦していた自キャラクターP1が、相手の敵キャラクターE1を倒している。そして、奥側に存在していた自キャラクターP2、P3と、敵キャラクターE4、E5との距離が近くなり、間もなく戦闘が開始されるように見える。また、フィールド120中央付近で待機していた敵キャラクターE2、E3は、奥側の敵キャラクターE4、E5に加勢するべく奥側に向けて移動している。この状況を見たプレイヤーは、フィールド120の奥側を大きく見たい(即ち、フィールド120の奥側を手前に引き寄せて大きく見たい)と考えている。
【0054】
この場合、プレイヤーは、右手及び左手を奥側に動かし、その位置で、フィールド把持操作を入力する(S10でYES)。これにより、
図6に示すように、手オブジェクト130R、130Lが、フィールド120を仮想的に掴んでいる態様に変更される。続いて、プレイヤーは、図中の矢印に示すように、右手及び左手を手前側に引く動作を行ない、フィールド120の奥側を手前に引き寄せるフィールド移動操作を入力する(S12でYES)。プレイヤーは、所望の位置にフィールド120を移動させた後で(S14)、把持解除操作を行う(S16でYES)。
【0055】
図7は、上記のフィールド把持操作及びフィールド移動操作が行われた後のゲーム画面100の例である。
図7のゲーム画面100では、上記のフィールド把持操作及びフィールド移動操作により、フィールド120の奥側が手前側に引き寄せられて大きく表示されている。なお、本実施例では、プレイヤーは、ゲーム上の視座からフィールドを俯瞰しているので、背景空間110には大きな変化はない。
図7では、
図6において奥側に存在していた自キャラクターP2、P3と敵キャラクターE4、E5が交戦している様子が大きく表示されている。そして、敵キャラクターE4、E5に加勢するべく移動していた敵キャラクターE2、E3の一部も表示されている。
図6において手前側に表示されていた自キャラクターP1、敵キャラクターE1はプレイヤーの視界から外れる。このように、
図7のゲーム画面100では、
図4、
図6のゲーム画面100から、フィールド120の表示態様は変わっているが、この表示態様の変更が行われる際に、プレイヤーの視座(プレイヤーの目線、立ち位置等と言い換えてもよい)は動いていない。プレイヤーの視座が変わらないため、プレイヤーは、「フィールド120内を自分が歩行等によって移動する」という感覚ではなく、「自身がフィールドを掴んで引っ張って動かした」とう感覚でフィールド120の表示態様を変更することができる。
【0056】
以上、本実施例のゲームシステム2の構成及び動作を説明した。本実施例では、プレイヤーが、フィールド把持操作及びフィールド移動操作を行うことにより(
図5のS10及びS12でYES)、制御部70は、ゲーム画面100中のフィールド120の表示態様を、ゲーム画面100内におけるプレイヤーの視座を動かすことなく、フィールド移動操作が示す変動態様に合わせて変更することができる(
図4、
図6、
図7参照)。プレイヤーの視座が変わらないため、フィールド把持操作及びフィールド移動操作を行なったプレイヤーは、「フィールド120内を自分が歩行等して移動する」という感覚ではなく、「自身がフィールド120を動かしている」という感覚でフィールド120の表示態様を変更することができる。そのため、プレイヤーの身体が実際にはその場から動かないにも関わらず、画面内ではプレイヤーが歩行等しているように知覚させる従来の技術と比べて、現実のプレイヤーの身体の状況と、プレイヤーが視覚から知覚できるゲーム画面100との間に生じる乖離が小さくなる。従って、本実施例のゲームプログラム90によると、従来の技術に比べて、プレイヤーに不快感(例えばVR酔い等)を与えることを抑制することができるゲームシステム2を実現することができる。
【0057】
また、本実施例では、プレイヤーは、フィールド120の表示態様の変動のために、フィールド把持操作と、フィールド移動操作と、の2つの動作を続けて行う必要がある。これにより、プレイヤーは、フィールド120を仮想的に「掴んで(触って)動かす」という感覚を持ちながらフィールド120の表示態様を変更させることができる。プレイヤーが、フィールド120を「触って動かしている」という感覚を直感的に知覚し易く、現実のプレイヤーの身体の状況と、プレイヤーが視覚から知覚できるゲーム画面100との間に生じる乖離がより小さくなる。従って、本実施例によると、プレイヤーに不快感を与えることをより適切に抑制することができるゲームシステム2を実現することができる。
【0058】
また、本実施例では、ゲーム画面100には、プレイヤーの手を仮想的に表す手オブジェクト130R、130Lが含まれる。手オブジェクト130R、130Lは、プレイヤーの手の動き(即ち、カメラ50で撮影されるコントローラ30のマーカ32の動き)に合わせて動かされる。そのため、例えば、プレイヤーが、フィールド120の表示態様の変動のために、フィールド把持操作とフィールド移動操作とを行う際に、手オブジェクト130R、130Lがフィールド120を掴んで動かすように動けば、プレイヤーがより直感的にフィールド120に「触って動かしている」という感覚を知覚することができる。
【0059】
本実施例では、
図4、
図6、
図7に示すように、ゲームを構成する仮想3次元空間は、背景空間110と、フィールド120と、を含む。フィールド120は、背景空間110内に、俯瞰される態様で配置される。ゲームを構成する仮想3次元空間が、背景空間110と、背景空間110内に配置されるフィールド120とを含み、ゲーム画面100においてフィールド120が俯瞰される態様で表示されるゲームでは、プレイヤーは、背景空間110内からフィールド120を俯瞰している感覚でゲームをプレイすることができる。このようなゲームでは、プレイヤーがフィールド内に立っている(即ちプレイヤーの視線がフィールド内に存在する)と知覚できるゲームに比べて、プレイヤーが、フィールド把持操作及びフィールド移動操作の結果「自身がフィールドを動かしている」という感覚を得やすい。本実施例によると、プレイヤーに不快感を与えることをより適切に抑制することができる。
【0060】
HMD10が「頭部装着型ディスプレイ」の一例である。コントローラ30、カメラ50、及び、制御部70の組合せが「入力受付装置」の一例である。制御部70が「コンピュータ」の一例である。自キャラクターP1〜P3及び敵キャラクターE1〜E5が「操作対象オブジェクト」の一例である。フィールド把持操作及びフィールド移動操作が「フィールド変動動作」の一例である。また、フィールド把持操作が「第1動作」の一例であり、フィールド移動操作が「第2動作」の一例である。
【0061】
(第2実施例)
第2実施例のゲームシステム2について、第1実施例と異なる点を中心に説明する。本実施例では、ゲームシステム2は、カメラ50を備えていない。それに伴い、HMD10はマーカ12を備えていない。コントローラ30もマーカ32を備えていない。ただし、本実施例では、
図3において破線で図示されているように、HMD10が3軸加速度センサ24及び位置検出装置26を備える。そして、右コントローラ30R、左コントローラ30Lが、それぞれ、3軸加速度センサ44R、44L及び位置検出装置46R、46Lを備える。
【0062】
HMD10の3軸加速度センサ24は、X,Y,Zの3軸の加速度を検出する。HMD10の制御部20は、3軸加速度センサ24の検出値を用いて、HMD10の姿勢、及び、運動状態を特定することができる。また、HMD10の位置検出装置26は、GPS(Global Positioning Systemの略)受信機である。位置検出装置26は、GPS衛星からの電波を受信し、HMD10の現在位置を測定する。本実施例では、制御部20は、3軸加速度センサ24によって特定されたHMD10の姿勢及び運動状態と、位置検出装置26によって測定されたHMD10の現在位置と、を示す位置関係情報を、本体60に供給する。
【0063】
右コントローラ30Rの3軸加速度センサ44R、及び、位置検出装置46Rも、上記と同様である。制御部40Rは、3軸加速度センサ44Rによって特定された右コントローラ30Rの姿勢及び運動状態と、位置検出装置46Rによって測定された右コントローラ30Rの現在位置と、を示す位置関係情報を本体60に供給する。左コントローラ30Lの3軸加速度センサ44L、及び、位置検出装置46Lも、上記と同様である。制御部40Lは、3軸加速度センサ44Lによって特定された左コントローラ30Lの姿勢及び運動状態と、位置検出装置46Lによって測定された左コントローラ30Lの現在位置と、を示す位置関係情報を本体60に供給する。
【0064】
本実施例では、本体60の制御部70は、HMD10から取得される位置関係情報と、右コントローラ30Rから取得される位置関係情報と、左コントローラ30Lから取得される位置関係情報と、に基づいて、現実のプレイヤーの挙動(頭の向き、頭の位置、両手の位置、両手の動き等)を特定する。そして、制御部70は、コントローラ30から取得された操作信号、及び、特定された現実のプレイヤーの挙動に基づいて、ゲーム内におけるプレイヤーの動作を特定する。制御部70は、特定されたゲーム内におけるプレイヤーの動作に応じて、表示部13に表示されるゲーム画面の表示態様を変更させる(即ち、画面データを変更する)。
【0065】
このように、本実施例では、現実のプレイヤーの挙動を特定するための手法が第1実施例とは異なる。これ以外の制御部70の処理は、第1実施例と共通するため、詳しい説明を省略する。本実施例のHMD10とコントローラ30の組合せが「入力受付装置」の一例である。
【0066】
以上、実施例を詳細に説明したが、これらは例示に過ぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。例えば、以下の変形例を採用してもよい。
【0067】
(変形例1)本体60が、通信ネットワーク(例えばインターネット)を介して、外部のサーバや他の本体等と通信可能であってもよい。その場合、ゲームプログラム90によって実現されるゲームが、通信ネットワークを介して他のプレイヤーと1つの仮想3次元空間内で1つのゲームをプレイするいわゆるオンライン通信ゲームであってもよい。
【0068】
(変形例2)上記の各実施例では、ゲームプログラム90は、DVDROM80に予め記録されており、本体60の記録媒体読取部74によって読み取られる。これに限られず、ゲームプログラムは、外部のサーバ等から通信ネットワークを介して本体60にダウンロードされてもよい。その場合、ダウンロードされたゲームプログラムは、メモリ72に記憶されてもよい。
【0069】
(変形例3)現実のプレイヤーの挙動を特定するための手法は、第1、第2実施例で説明した手法(カメラ50でマーカ12、32を撮影する手法(第1実施例)、及び、3軸加速度センサ24、44R、44Lと位置検出装置26、46R、46Lを用いる手法(第2実施例))には限られない。例えば、現実のプレイヤーに向かって赤外光を照射し、赤外光カメラで撮影し、撮影された赤外光のパターンを分析することによって、現実のプレイヤーの挙動を特定してもよい。また、例えば、HMD10やコントローラ30が赤外光の受光部を備えており、HMD10やコントローラ30に赤外光を照射し、受光部に赤外光を受光させることによって、HMD10やコントローラ30の位置や向き等を特定し、これによってプレイヤーの挙動を特定してもよい。また、例えば、赤外光以外の光によるによる通信、音等による通信を利用して、プレイヤーの挙動を特定してもよい。
【0070】
(変形例4)上記の各実施例において、本体60とHMD10とが無線通信を実行可能であってもよい。同様に、上記の第1実施例において、本体60とカメラ50とが無線通信を実行可能であってもよい。また、上記の各実施例において、本体60とコントローラ30とが有線通信を実行可能であってもよい。
【0071】
(変形例5)上記の各実施例では、プレイヤーは、フィールド120の表示態様の変動のために、フィールド把持操作とフィールド移動操作とを行う。プレイヤーがフィールド120の表示態様の変動のためにフィールド120に仮想的に接触するための操作は、上記のフィールド把持操作には限られず、任意の操作であってもよい。従って、例えば、プレイヤーは、フィールドの表示態様の変動のために、仮想的にフィールドにタッチするフィールドタッチ操作と、タッチしたフィールドを動かすためのスワイプ操作(又は/及びスライド操作)と、を行うようにしてもよい。
【0072】
(変形例6)上記の各実施例では、ゲームプログラム90によって実現されるゲームでは、ゲームを構成する仮想3次元空間は、背景空間110と、フィールド120と、を含み、フィールド120は、背景空間110内に俯瞰される態様で配置される。しかしながら、ゲームプログラムによって実現されるゲームの態様は、これに限られない。ゲームプログラムによって実現されるゲームにおける仮想3次元空間が、背景空間を有さず、フィールドのみを有していてもよい。即ち、プレイヤーがフィールド内に立っている(即ちプレイヤーの視線がフィールド内に存在する)と知覚できるゲームであってもよい。そのような場合であっても、制御部70が、
図5のフィールド変動処理を実行可能であればよい。
【0073】
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
ゲームシステムのためのゲームプログラムであって、前記ゲームシステムは、プレイヤーの視界を覆うように前記プレイヤーの頭部に装着される頭部装着型ディスプレイと、前記プレイヤーの身体的な動きを検出可能な入力受付装置と、コンピュータと、を備え、前記ゲームプログラムは、前記コンピュータに、ゲームを構成する仮想3次元空間のうち、前記プレイヤーの視界に対応する範囲を表わすゲーム画面を前記頭部装着型ディスプレイに表示させる表示処理であって、前記仮想3次元空間は、操作対象オブジェクトが配置されるフィールドを含む、前記表示処理と、前記入力受付装置がフィールド変動動作を検出する場合に、前記ゲーム画面内における前記プレイヤーの視座を動かすことなく、前記ゲーム画面内に表示される前記フィールドの表示態様を、前記フィールド変動動作が示す変動態様に合わせて変更させる、フィールド変動処理と、を実行させる。