[1.実施形態]
以下、本発明の実施形態の一例について図面に基づき詳細に説明する。本発明の実施形態に係るゲーム装置は、例えば家庭用ゲーム機(据置型ゲーム機)、携帯ゲーム機、携帯電話機、携帯情報端末(PDA)又はパーソナルコンピュータ等によって実現される。ここでは、本発明の実施形態に係るゲーム装置を家庭用ゲーム機によって実現する場合について説明する。
図1は、ゲームをプレイするプレイヤの様子を示す図である。図1に示すように、プレイヤ100は、例えば、位置検出装置1の前方に位置する。位置検出装置1とゲーム装置20とは、データ通信可能に接続される。
[2.位置検出装置の動作]
まず、位置検出装置1について説明する。位置検出装置1は、3次元空間におけるプレイヤの位置に関するプレイヤ位置情報を生成する。本実施形態においては、プレイヤの位置情報が、プレイヤ100の複数の部位の位置に関する情報を含む場合を説明する。プレイヤ100の部位は、例えば、頭や両腕等である。
図1に示すように、位置検出装置1は、例えば、CCDカメラ2、赤外線センサ3、複数のマイクロフォンを含むマイク4等を備える。
CCDカメラ2は、CCDイメージセンサを備えた公知のカメラである。CCDカメラ2は、例えば、所定時間毎(例えば、1/60秒毎)にプレイヤ100を撮影した撮影画像(例えば、RGBデジタル画像)を生成する。
図2は、CCDカメラ2によって生成される撮影画像の一例を示す図である。図2に示すように、撮影画像には、例えば、プレイヤ100が含まれる。撮影画像には、互いに直行するXs軸、Ys軸が設定される。例えば、撮影画像の左上を、原点Os(0,0)とする。また例えば、撮影画像の右下を、座標Pmax(Xmax,Ymax)とする。撮影画像に対応する各画素の位置は、それぞれの画素に割り当てられる2次元座標(Xs−Ys座標)によって特定される。
赤外線センサ3は、例えば、赤外線発光素子及び赤外線受光素子(例えば、赤外線ダイオード)から構成される。赤外線センサ3は、赤外線光を照射して得られる反射光を検出する。赤外線センサ3は、この反射光の検出結果に基づいて被写体(例えば、プレイヤ100)の深度を測定する。
被写体の深度とは、測定基準位置と被写体の位置との距離間隔である。測定基準位置とは、プレイヤ100の位置の深度(奥行き)を測定する際の基準となる位置である。測定基準位置は、位置検出装置1の位置と関連付けられる所定の位置であればよく、例えば、赤外線センサ3の赤外線受光素子の位置である。赤外線センサ3は、例えば、赤外線を照射してから反射光を受光するまでの飛行時間(TOF:Time of Flight)に基づいてプレイヤ100の深度を測定する。
図3は、赤外線センサ3によるプレイヤ100の深度の測定方法を説明するための図である。図3に示すように、赤外線センサ3から所定間隔でパルス状の赤外線光が照射される。赤外線センサ3から照射された赤外線光は、赤外線センサ3の発光位置を中心点として球状に広がる。
赤外線センサ3から照射された赤外線光は、例えば、プレイヤ100の体の表面に当たる。これらの表面に当たった赤外線光は、反射する。反射した赤外線光は、赤外線センサ3の赤外線受光素子により検出される。即ち、赤外線センサ3は、照射した赤外線に対して位相が180度反転した反射光を検出する。
例えば、図3に示すように、プレイヤ100が両手を前方に突き出している場合、突き出された両手は、プレイヤ100の胴体よりも赤外線センサ3に近い。つまり、プレイヤ100の両手によって反射される赤外線光の飛行時間は、プレイヤ100の胴体によって反射される赤外線光の飛行時間よりも短い。
赤外線センサ3が赤外線光を照射してから反射光を検出するまでの時間(つまり、飛行時間)と、赤外線の速度と、を乗算して半分で割った値は、測定基準位置とプレイヤ100との距離間隔(即ち、深度)に相当する。このような処理を行うことにより、赤外線センサ3は、プレイヤ100の深度を測定する。
また、赤外線センサ3は、反射した赤外線光から得られる深度差を検出することにより、被写体(プレイヤ100)の輪郭も検出する。上記のように、赤外線センサ3が赤外線光の反射光を受信することは、この場所に物体が配置されていることを意味する。また、この物体の後方の近い位置に他の物体が配置されていなければ、この物体と、この物体の周囲と、の深度差は大きくなる。例えば、深度差が所定値よりも大きい箇所をつなぎ合わせることによって、プレイヤ100の輪郭を検出する。
なお、プレイヤ100の輪郭を検出する方法は、上記の例に限られない。他にも例えば、CCDカメラ2によって得られる撮影画像の各画素の輝度に基づいて輪郭を検知するようにしてもよい。この場合も、例えば、画素間の輝度差が大きい箇所をつなぎ合わせることによってプレイヤ100の輪郭を検出することができる。
上記のようにして検出されるプレイヤ100の深度に関する情報(深度情報)は、例えば、深度画像として表現される。本実施形態においては、深度情報が、グレースケールの深度画像(例えば、256ビットのグレースケールの画像データ)として表現される例を挙げて説明する。
図4は、赤外線センサ3によって得られる深度画像の一例を示す図である。図4に示すように、例えば、赤外線センサ3に近い物体は明るく(輝度が高く)、遠い物体は暗く(輝度が低く)表現される。プレイヤ100の深度は、深度画像の輝度(画素値)に対応する。
例えば、深度画像が256ビットのグレースケールの画像データとして表される場合、プレイヤ100の深度が2センチメートル異なる毎に深度画像の輝度が1ビット異なる。この場合、赤外線センサ3は、被写体の深度を2センチ単位で検出することが可能であることを示す。プレイヤ100が両手を前方に突き出している場合(図3)、図4に示すように、プレイヤ100の両手に対応する画素は、胴体に対応する画素よりも明るく(輝度が高く)表現される。
本実施形態においては、赤外線センサ3は、CCDカメラ2と同様に所定時間毎(例えば、1/60秒毎)に、深度画像を生成する。CCDカメラ2により得られる撮影画像と、赤外線センサ3により得られる深度画像と、に基づいてプレイヤ100の部位の位置に関するプレイヤ位置情報が生成される。
例えば、CCDカメラ2により得られる撮影画像(RGBデータ)に、深度画像が示す深度情報(Depth)が合算された合成画像(RGBDデータ)が生成される。即ち、合成画像は、各画素ごとに、色情報(RGBそれぞれの明度)と深度情報とを含む。
合成画像に基づいてプレイヤ位置情報が生成される際には、まず、深度画像に基づいてプレイヤ100の輪郭に対応する画素が特定される。次いで、合成画像のうち輪郭によって囲まれた画素の色情報(RGBの明度)が参照される。合成画像の色情報に基づいて、プレイヤ100の体の各部位に対応する画素が特定される。この特定方法としては、例えば、比較画像(教師画像)との比較によって画像の中から対象物(即ち、プレイヤ100の体の各部位)を抽出するパターンマッチング法等、公知の手法を適用可能である。
上記のようにして特定された画素の画素値(RGBD値)に基づいて、プレイヤ100の頭や肩等の3次元座標が算出される。例えば、この画素値に対して所定の行列変換処理が施されることによって、3次元座標が生成される。この行例変換処理は、例えば、3Dグラフィックにおけるワールド座標−スクリーン座標の2つの座標系の変換処理と同様の行例演算によって実行される。つまり、画素の色情報を示すRGB値と奥行きを示すD値と、が所定の行列式に代入されることにより、この画素の3次元座標が算出される。
なお、画素値(RGBD値)から画素に対応する3次元座標が算出される方法は、公知の手法を適用可能であり、この算出方法は、上記の例に限られない。他にも例えば、ルックアップテーブルを用いて座標変換が行われるようにしてもよい。
図5は、位置検出装置1により生成されるプレイヤ位置情報の一例を示す図である。図5に示すように、プレイヤ位置情報は、プレイヤ100の複数の部位の位置に関する複数の情報を含む。プレイヤ位置情報は、例えば、プレイヤ100の各部位と、3次元座標と、が対応付けられて格納される。
図6は、プレイヤ位置情報によって特定されるプレイヤ100の位置を示す図である。本実施形態では、例えば、位置検出装置1に対応する所定位置(例えば、測定基準位置)を原点Opとする。例えば、原点Opは、赤外線センサ3の測定基準位置に対応する3次元座標である。なお、原点Opの位置は、プレイヤ100がいる3次元空間のどこに設定されてもよい。例えば、撮影画像の原点Osに対応する3次元座標が、原点Opとして設定されるようにしてもよい。
図6に示すように、本実施形態では、プレイヤ位置情報がプレイヤ100の複数の部位のうちで少なくとも頭の位置及び腰の位置に関する部位情報を含む場合を説明する。例えば、プレイヤ位置情報は、プレイヤ100の頭P1、肩P2、左上腕P3、右上腕P4、左下腕P5、右下腕P6、背中P7、左ももP8、右ももP9、左すねP10、右すねP11に対応する11個の3次元座標が含まれる。
なお、プレイヤ位置情報によって示されるプレイヤ100の体の部位は、プレイヤの体(骨格)のうちで予め定められた部位のものであってよい。例えば、この部位は、先述したパターンマッチング法によって特定可能な体の部位であればどこでもよい。
例えば、所定間隔毎(例えば、1/60秒毎)に生成されるプレイヤ位置情報は、位置検出装置1からゲーム装置20に対して送信される。ゲーム装置20は、プレイヤ位置情報を位置検出装置1から受信し、プレイヤ(以降、プレイヤの「100」の符号を省略する。)の体の動きを取得してゲームを実行する。
[3.ゲーム装置で実行されるゲーム]
ゲーム装置20は、プレイヤが楽曲に合わせてゲーム操作を行うゲームを実行する。このゲームにおいては、例えば、位置検出装置1から取得される撮影画像に写しだされたプレイヤがゲーム画面に表示される。
図7は、ゲーム画面の一例を示す図である。図7に示すように、ゲーム画面30には、プレイヤを撮影してなるプレイヤ画像32と、プレイヤ画像32の周囲に配置される複数の発生位置マーク34と、が表示される。ここでは、ゲーム画面30に表示されるプレイヤ画像32とプレイヤが向き合った状態でゲームがプレイされるため、プレイヤ画像32は、撮影画像からプレイヤの輪郭を抽出して左右反転処理を施した画像となる。
プレイヤ画像32は撮影画像に基づいて表示されるため、プレイヤが体を動かすと、この動きに合わせるようにプレイヤ画像32の表示も更新される。例えば、プレイヤが右手を上げると、現実空間のプレイヤから見て右側の手が上がるようにプレイヤ画像32の表示が更新される。
発生位置マーク34は、例えば、プレイヤ画像32を囲むように円状に8つ(発生位置マーク34A〜34H)配置される。発生位置マーク34の表示位置は、本発明に係る「発生位置」に相当する。即ち、ゲーム画面30には、複数の発生位置が設定される。ここでは、基準位置(プレイヤ画像32の表示位置)の周囲に複数の発生位置が設定されることになる。
発生位置マーク34の付近には、タイミング案内マーク36が表示される。タイミング案内マーク36は、基準タイミングが近づくと、発生位置マーク34から発生する。そして、図7に示すように、時間経過に伴って当該発生位置マーク34から離れるように移動した後にいったん停止し、当該発生位置マーク34に近づくように移動する。タイミング案内マーク36の折り返し地点が、本発明に係る「折り返し位置」に相当する。基準タイミングが訪れると、タイミング案内マーク36は発生位置マーク34に重なる。
図7に示すように、タイミング案内マーク36が発生位置マーク34に重なったタイミングで、プレイヤ画像32に表示されたプレイヤが当該発生位置マーク34を触るように、プレイヤが実際に体を動かすと、プレイヤには高い評価が与えられる。即ち、本実施形態においては、プレイヤ画像32に表示されたプレイヤが発生位置マーク34を触るように、プレイヤが実際に体を動かすことが「ゲーム操作」に相当する。
このように、ゲーム装置20においては、プレイヤがゲーム操作をすべき基準タイミングが近づくと、タイミング案内マーク36が発生位置マーク34から発生して往復移動する。例えば、タイミング案内マーク36が一方向に向かって移動するような場合に比べて、タイミング案内マーク36の折り返しの動きによって、プレイヤは楽曲のリズムを感じ取りやすくなる。その結果、プレイヤは、基準タイミングを把握しやすくなる。以降、この技術について詳細に説明する。
まず、位置検出装置1とゲーム装置20とのハードウェア構成について説明する。
[4.位置検出装置の構成]
図8は、位置検出装置1のハードウェア構成を示す図である。図8に示すように、位置検出装置1は、制御部10、記憶部11、撮影部12、深度測定部13、音声入力部14、通信インタフェース部15から構成される。位置検出装置1の各構成要素は、バス16によってデータ送受信可能に接続される。
制御部10は、記憶部11に記憶されるオペレーティングシステム、各種プログラムに基づいて位置検出装置1の各部を制御する。
記憶部11は、オペレーティングシステムや撮影部12、深度測定部13を動作させるためのプログラム、各種パラメータを記憶する。また、記憶部11は、撮影画像及び深度画像に基づいてプレイヤ位置情報を生成するためのプログラムを記憶する。
撮影部12は、CCDカメラ2等から構成される。撮影部12は、例えば、プレイヤの撮影画像を生成する。深度測定部13は、赤外線センサ3等から構成される。深度測定部13は、例えば、赤外線センサ3により得られる飛行時間に基づいて深度画像を生成する。制御部10は、先述のように、所定時間毎(例えば、1/60秒毎)に、撮影部12により生成される撮影画像と、深度測定部13により生成される深度画像と、に基づいて、プレイヤ位置情報を生成する。
音声入力部14は、マイク4等から構成される。通信インタフェース部15は、ゲーム装置20に対してプレイヤ位置情報等の各種データを送信するためのインタフェースである。
[5.ゲーム装置の構成]
図9は、ゲーム装置20のハードウェア構成を示す図である。図9に示すように、ゲーム装置20は、制御部21、主記憶部22、補助記憶部23、光ディスク再生部24、通信インタフェース部25、操作部26、表示部27、及び音声出力部28を含む。ゲーム装置20の各部は、バス29によって接続されている。
制御部21は、例えばCPU、GPU(Graphics Processing Unit)、及びSPU(Sound Processing Unit)等を含む。制御部21は、オペレーティングシステムやその他のプログラムに従って各種処理を実行する。
主記憶部22は、例えば、RAM(Random Access Memory)を含む。補助記憶部23は、例えば、ハードディスク装置(情報記億媒体)を含む。主記憶部22は、補助記憶部23又は光ディスク(情報記憶媒体)から読み出されたプログラムやデータを記憶する。また、主記憶部22は、処理の過程で必要なデータを記憶するワークメモリとしても用いられる。また例えば、主記憶部22は、位置検出装置1から受信されるプレイヤ位置情報を、受信時間と対応付けて一時的に記憶する。
光ディスク再生部24は、光ディスクに記憶されたプログラムやデータを読み取る。光ディスクには、例えば、ゲームプログラムが記憶されている。
通信インタフェース部25は、ゲーム装置20を通信ネットワークに通信接続するためのインタフェースである。ゲーム装置20は、通信インタフェース部25を介してプレイヤ位置情報を、位置検出装置1から取得する。
操作部26は、プレイヤが各種操作を行うためのものである。操作部26は、例えばゲームコントローラ、タッチパネル、マウス、又はキーボード等を含む。表示部27は、例えば、家庭用テレビ受像機又は液晶表示パネル等である。表示部27は、制御部21の指示に従って画面を表示する。音声出力部28は、例えば、スピーカ又はヘッドホン等を含む。
本実施形態においては、ゲームの実行に際して必要なプログラムやデータは、光ディスクを介してゲーム装置20に供給される場合を説明する。なお、これらのプログラムやデータは、他の情報記憶媒体(例えば、メモリカード)を介してゲーム装置20に供給されるようにしてもよい。または、プログラムやデータは、通信ネットワークを介して遠隔地からゲーム装置20に供給されるようにしてもよい。
[6.ゲーム装置で実現される機能]
図10は、ゲーム装置20において実現される機能を示す機能ブロック図である。図10に示すように、ゲーム装置20では、ゲーム操作検出部40、ゲームデータ記憶部42、ゲーム実行部44、評価部46、案内部48が実現される。これらの機能は、制御部21が、光ディスクから読み出されたプログラムに従って動作することにより、実現される。
[6−1.ゲーム操作検出部]
ゲーム操作検出部40は、制御部21を主として実現される。ゲーム操作検出部40は、プレイヤによるゲーム操作を検出する。ここでは、ゲーム操作検出部40は、複数種類のゲーム操作(複数種類のゲーム操作)を検出する場合を説明する。例えば、ゲーム操作検出部40は、プレイヤ位置情報が示すプレイヤの各部位の位置が所定領域範囲内にあるか否かを判定することによって、プレイヤのゲーム操作を検出する。
図11は、ゲーム操作の検出方法を説明するための説明図である。図11に示すように、例えば、プレイヤ位置情報が示す3次元座標空間に、ゲーム操作が行われたか否かを判定するための判定領域50が設定される。本実施形態においては、判定領域50は、発生位置マーク34と同じ数(例えば、8つ)だけ設定される。例えば、判定領域50Aは発生位置マーク34Aに対応する。同様に、判定領域50B〜50Hは、発生位置マーク34B〜34Hに対応する。
例えば、3次元空間に設定される判定領域50の位置は、発生位置マーク34の位置に基づいて決定される。例えば、プレイヤ位置情報が示すプレイヤの位置と判定領域50の位置との位置関係と、ゲーム画面30におけるプレイヤ画像32の位置と発生位置マーク34の位置との位置関係と、が対応するように判定領域50が設定される。例えば、図7に示すようにプレイヤ画像32の周囲に発生位置マーク34が設定される場合には、図11に示すように、プレイヤの背中P7の周囲に判定領域50が設定される。
判定領域50の大きさは、予め定められた大きさが設定されるようにしてもよいし、例えば、発生位置マーク34の大きさに基づいて決定されるようにしてもよい。図11に示すように、例えば、判定領域50は所定半径の球であってもよい。
プレイヤ位置情報が示すプレイヤの各部位の3次元座標が判定領域50内にあるか否かが判定されることによって、プレイヤによるゲーム操作が検出される。即ち、プレイヤ位置情報が示すプレイヤの部位の3次元座標が判定領域50内にある場合、プレイヤによるゲーム操作が行われたと判定される。
本実施形態においては、8つの判定領域50A〜50Hに対応する8種類のゲーム操作が検出されることになる。ゲーム操作検出部40は、プレイヤ位置情報が示すプレイヤの部位が、判定領域50A〜50Hの何れにあるか否かを判定することによって、どの種類のゲーム操作が行われたかを判定する。
このように、本実施形態においては、ゲーム操作検出部40は、プレイヤを撮影する撮影部12から得られる撮影画像(図2)と、深度測定部13の測定基準位置とプレイヤとの間隔に関する深度情報(図4)と、に基づいて、3次元空間におけるプレイヤの位置に関する3次元位置情報(例えば、プレイヤ位置情報)を生成する位置情報生成手段(例えば、位置検出装置1)から3次元位置情報を取得する位置取得手段を含み、当該3次元位置情報に基づいてプレイヤのゲーム操作を検出することになる。
なお、3次元座標空間に設定された判定領域50の位置及び大きさを示す情報は、後述するゲームデータ記憶部42に記憶される。更に、位置検出装置1から取得されたプレイヤ位置情報は、時系列順にゲームデータ記憶部42に記憶される。また、ゲーム操作としては、判定領域50を触るものに限られず、判定領域50を一定時間触ることが「ゲーム操作」に相当するようにしてもよい。
[6−2.ゲームデータ記憶部]
ゲームデータ記憶部42は、主記憶部22及び補助記憶部23を主として実現される。ゲームデータ記憶部42は、ゲームを実行するために必要な情報を記憶する。例えば、ゲームデータ記憶部42には、以下のようなデータが格納される。
(1)楽曲データ(一般のポピュラー音楽等を所定のデータ形式で保存したデータ)
(2)基準タイミングデータ
(3)3次元空間に設定された判定領域50を示す判定領域データ
(4)プレイヤ位置情報を時系列的に格納したデータ
(5)実行中のゲームの状況(得点や経過時間等)を示すゲーム状況データ
なお、上記のデータのうち、楽曲データ及び基準タイミングデータは、予めゲーム制作者によって用意されたデータである。判定領域データは、ゲームが実行されると生成されるデータである。プレイヤ位置情報は、位置検出装置1により生成されるデータである。ゲーム状況データは、ゲームプログラムによって生成及び更新されるデータである。
基準タイミングデータは、プレイヤがゲーム操作を行うべき基準タイミングを示すデータである。基準タイミングデータは、例えば、楽曲のテンポ(リズム)を考慮して作成される。ここでは、基準タイミングデータが、複数種類のゲーム操作(例えば、8種類のゲーム操作)の各々に関し、当該ゲーム操作をすべき基準タイミングを示す場合を説明する。
図12は、基準タイミングデータの一例を示す図である。図12に示すt軸は、時間軸である。t軸は、楽曲の再生が開始されてからの時間経過を示している。本実施形態においては、基準タイミングデータは、1/256小節の単位で、プレイヤがゲーム操作をすべきタイミングを示す。なお、図12では、説明を簡略化するために、1小節が8分割されたデータを示す。即ち、1/8小節の単位で基準タイミングが示されている。
図12に示すように、1/8小節の各時点において、プレイヤがゲーム操作をすべきか否かが、8ビットのデータによって表される。即ち、8種類のゲーム操作の各々について、当該ゲーム操作をすべきか否かが定められている。図12において、「A」〜「H」のビットは、それぞれ、プレイヤが判定領域50A〜50Hを触るべきか否かを示している。
「A」のビットが「0」であることは、プレイヤの部位の位置が判定領域50Aに含まれるように、プレイヤが体を動かすべきでないことを示している。一方、「A」のビットが「1」であることは、プレイヤの部位の位置が判定領域50Aに含まれるように、プレイヤが体を動かすべきことを示している。
「B」〜「H」のビットについても同様である。即ち、「B」〜「H」のビットが「0」であることは、それぞれ、プレイヤの部位の位置が判定領域50B〜50Hに含まれるように、プレイヤが体を動かすべきでないことを示している。また、「B」〜「H」のビットが「1」であることは、それぞれ、プレイヤの部位の位置が判定領域50B〜50Hに含まれるように、プレイヤが体を動かすべきであることを示している。
このように、8ビットのデータのうち少なくとも一つが「1」になっているタイミングが基準タイミングであり、この8ビットのデータのうち少なくとも一つが「1」になっているデータが、基準タイミングを示すデータといえる。
即ち、第1の種類のゲーム操作(例えば、判定領域50Aを触るゲーム操作)と第2の種類のゲーム操作(例えば、判定領域50Bを触るゲーム操作)とが検出される場合、基準タイミングデータは、第1の種類のゲーム操作をすべき第1の基準タイミングを示す第1の基準タイミングデータ(例えば、「A」のデータ)と、第2の種類のゲーム操作をすべき第2の基準タイミングを示す第2の基準タイミングデータ(例えば、「B」のデータ)と、を含むことになる。
なお、ゲームデータ記憶部42に記憶されるデータは、上記の例に限られない。ゲームデータ記憶部42は、ゲームを実行する各種データを記憶するようにすればよい。他にも例えば、発生位置マーク34やタイミング案内マーク36の画像データ等が記憶されるようにしてもよい。また、制御部21は、ゲームデータ記憶部42に格納された各種データを取得する手段として機能する。
[6−3.ゲーム実行部]
ゲーム実行部44は、制御部21を主として実現される。ゲーム実行部44は、プレイヤが楽曲に合わせてゲーム操作を行うゲームを実行する。例えば、ゲーム実行部44は、ゲームプログラムに定義されたアルゴリズムに基づいてゲーム状況データを更新することによってゲームを実行する。
[6−4.評価部]
評価部46は、制御部21を主として実現される。評価部46は、プレイヤによりゲーム操作が行われた操作タイミングと、基準タイミングデータが示す基準タイミングと、に基づいてプレイヤによるゲーム操作を評価する。例えば、評価部46は、基準タイミングデータが示す基準タイミングと、プレイヤが実際にゲーム操作を行った操作タイミングと、の間のずれに基づいて、そのゲーム操作を評価する。例えば、基準タイミングと操作タイミングとのずれ時間が小さいほど、ゲーム操作の評価は高くなる。
本実施形態の場合、例えば、発生位置マーク34から出発したタイミング案内マーク36が発生位置マーク34に戻ってきたタイミング(基準タイミング)と、プレイヤ位置情報が示すプレイヤの部位が実際に判定領域50内に入ったタイミング(操作タイミング)と、のずれ時間に基づいて、「MARVELOUS」、「PERFECT」、「GREAT」、「GOOD」、「ALMOST」、又は「BOO」のいずれかが評価として決定される。
図13は、ずれ時間(ΔT)と評価の関係を示す図である。この関係を示すデータは、例えば、ゲームデータ記憶部42に記憶されていてもよい。例えば、ずれ時間(ΔT)は、操作タイミングが基準タイミングよりも早い場合に負の値になる。一方、例えば、ずれ時間(ΔT)は、操作タイミングが基準タイミングよりも遅れた場合に正の値になる。例えば、ずれ時間に関連付けられた評価がプレイヤに与えられる。
[6−5.案内部]
案内部48は、制御部21と表示部27とを主として実現される。案内部48は、基準タイミングデータに基づいて、ゲーム画面30において、案内画像(例えば、タイミング案内マーク36)を発生位置(例えば、発生位置マーク34の表示位置)から折り返し位置まで移動させた後、案内画像を折り返し位置から発生位置に向けて移動させることによって、基準タイミングをプレイヤに案内する。
ここで、「タイミング案内マーク36を折り返し位置から発生位置に向けて移動させる」とは、タイミング案内マーク36を折り返し位置から発生位置又は発生位置に対応する位置(発生位置から所定距離以内の位置)まで移動させることであり、例えば、「タイミング案内マーク36を折り返し位置から発生位置まで戻すように移動させること」、「タイミング案内マーク36を折り返し位置から移動させた後、いったんゲーム画面30から消去させ、発生位置付近(発生位置から所定距離の位置)でタイミング案内マーク36を再び表示させて発生位置まで戻すように移動させること(即ち、タイミング案内マーク36が折り返し位置から発生位置まで移動する経路上の所与の区間においてタイミング案内マーク36を非表示にすること)」、及び、「タイミング案内マーク36を発生位置まで戻さずに途中の所定位置まで移動させること(例えば、タイミング案内マーク36が発生位置の所定距離以内に近づくと消去すること)」を含む意味である。
本実施形態においては、ゲーム画面30には、複数の発生位置(例えば、発生位置マーク34の表示位置)が設定され、当該複数の発生位置の各々は、複数のゲーム操作の何れかに関連付けられている。この関連付けを示すデータは、ゲームデータ記憶部42に記憶されているようにしてもよい。
また、本実施形態においては、案内部48は、複数の発生位置(例えば、発生位置マーク34の表示位置)の各々に関し、当該発生位置に関連付けられたゲーム操作をすべき基準タイミングを案内する案内画像(例えば、タイミング案内マーク36)を、当該発生位置から、ゲーム画面30の基準位置(例えば、プレイヤ画像32の表示位置)から当該発生位置までの線又はその延長線に基づいて設定される折り返し位置まで移動させた後、当該案内画像を当該折り返し位置から当該発生位置に向けて移動させる。
例えば、案内部48は、現時点以降の所定期間内(例えば、現時点から2/8小節後までの期間。以下、案内対象期間という。)に基準タイミングが含まれた場合、ゲーム画面30の発生位置マーク34にタイミング案内マーク36を発生させ、現時点と基準タイミングとの時間差に応じて、折り返し位置に向けて除々に移動させた後、当該タイミング案内マーク36を折り返し位置から発生位置マーク34に向けて除々に移動させることによって、タイミング案内マーク36を往復移動させる。
図14は、タイミング案内マーク36の移動方法を説明するための説明図である。ここでは、基準タイミングデータの「B」が「1」であるタイミングが近づいた場合を説明する。即ち、発生位置マーク34Bからタイミング案内マーク36Bが発生して往復移動する場合を例に挙げて説明する。
図14に示すように、発生位置マーク34Bの表示位置に、発生位置Qが設定される。また、発生位置Qと所定の位置関係を満たす折り返し位置Rがゲーム画面30に設定される。発生位置Qと折り返し位置Rとの位置関係は、予め定められた位置関係であればよい。ここでは、プレイヤ画像32の表示位置Sから発生位置Qへの方向に向けて、発生位置Qから所定距離Lだけ離れた位置が折り返し位置Rとして設定される場合を説明する。
例えば、発生位置Qと折り返し位置Rとを結ぶ線分上をタイミング案内マーク36Bが往復移動する。即ち、タイミング案内マーク36Bは、発生位置Qから折り返し位置Rへ引いた線上を往路として移動した後、折り返し位置Rから発生位置Qへ引いた線上を復路として移動する。
例えば、基準タイミングデータの「B」が「1」である基準タイミングの2/8小節前のタイミングが訪れると、タイミング案内マーク36Bが発生位置Qに発生する。そして、タイミング案内マーク36Bの表示位置Tと発生位置Qとの距離lが除々に大きくなるように、タイミング案内マーク36Bが往路上を移動する。さらに、基準タイミングデータの「B」が「1」である基準タイミングの1/8小節前のタイミングが訪れると、タイミング案内マーク36Bが折り返し位置Rに到達する。
タイミング案内マーク36Bが折り返し位置Rに到達すると、復路の移動が開始される。即ち、距離lが除々に小さくなるように、タイミング案内マーク36Bが復路上を移動する。そして、基準タイミングデータの「B」が「1」である基準タイミングが訪れた場合に、距離lが0になり、タイミング案内マーク36Bが発生位置マーク34Bに重なる。
基準タイミングデータは、楽曲のテンポに基づいて定められているため(例えば、楽曲の拍子が刻まれるタイミングと基準タイミングとが略一致するように基準タイミングデータが定められている)、タイミング案内マーク36Bが折り返し位置Rで折り返すタイミング(例えば、楽曲をn拍子とすると、基準タイミングのk/n小節前のタイミング。ただし、k,nは正整数。)が楽曲のテンポに合うことになるので、ユーザは、タイミング案内マーク36Bの折り返しの動きから楽曲のテンポを感じることができ、タイミングを取りやすくなる。
なお、タイミング案内マーク36Bの速度は一定であってもよいし、移動中に変化するようにしてもよい。例えば、タイミング案内マーク36Bと折り返し位置R又は発生位置Qとの位置関係に応じて、タイミング案内マーク36Bの速度を変化させるようにしてもよい。この場合、タイミング案内マーク36Bが発生位置Q又は折り返し位置Rから離れているほど、タイミング案内マーク36Bの速度を速くさせ、タイミング案内マーク36Bが折り返し位置R又は発生位置Qに近づくほど、タイミング案内マーク36Bの速度を遅くさせるようにしてもよい。
上記においては、タイミング案内マーク36Bが移動する様子を説明したが、他のタイミング案内マーク36の移動についても同様である。即ち、タイミング案内マーク36と発生位置マーク34との間の距離lが、基準タイミングが到来するまでの時間に対応するように、タイミング案内マーク36の表示位置が調整される。
図15は、タイミング案内マーク36が移動する様子を時系列に説明するための図である。例えば、楽曲が再生されている間、案内対象期間(例えば、現時点から2/8小節後までの期間)のデータが基準タイミングデータから読み出される。この読み出されたデータに基づいて、案内対象期間内の基準タイミングを案内するためのタイミング案内マーク36がゲーム画面30に表示される。
図15に示すように、現時点が時間t1である場合には、案内対象期間内(時間t1〜t3)のうち、時間t3における「B」のデータが「1」になっているので、発生位置マーク34Bにタイミング案内マーク36Bが発生する。
現時点が時間t2になった場合、案内対象期間内(時間t2〜t4)のうち、時間t4における「H」のデータが「1」になっているので、発生位置マーク34Hにタイミング案内マーク36Hが発生する。また、時間t1で発生したタイミング案内マーク36Bは、折り返し位置に到達し復路上の移動を開始する。
現時点が時間t3になった場合、案内対象期間内(時間t3〜t5)のうち、時間t5における「D」のデータが「1」になっているので、発生位置マーク34Dにタイミング案内マーク36Dが発生する。また、時間t3における「B」のデータが「1」であり、プレイヤが判定領域50Bを触るべき基準タイミングが訪れたので、復路上を移動していたタイミング案内マーク36Bが発生位置マーク34Bに到達する。なお、当該到達する前に、プレイヤがゲーム操作を行って評価が行われた場合には、タイミング案内マーク36Bを消去するようにしてもよい。また、タイミング案内マーク36Hは、折り返し位置に到達し復路上の移動を開始する。
現時点が時間t4になった場合、時間t4における「H」のデータが「1」であり、プレイヤが判定領域50Hを触るべき基準タイミングが訪れたので、復路上を移動していたタイミング案内マーク36Hが発生位置マーク34Hに到達する。なお、当該到達する前に、プレイヤがゲーム操作を行って評価が行われた場合には、タイミング案内マーク36Hを消去するようにしてもよい。また、タイミング案内マーク36Dは、折り返し位置に到達し復路上の移動を開始する。
以降の時刻においても同様の表示制御が行われる。このように、基準タイミングが近づくと、タイミング案内マーク36が発生位置を起点として放射状に往復移動することによって、プレイヤは楽曲のリズムを感じとりやすくなる。
[7.ゲーム装置において実行される処理]
図16は、ゲーム装置20において実行される処理の一例を示すフロー図である。図16の処理は、制御部21が、光ディスクから読み出されたプログラムに従って動作することにより実行される。
図16に示すように、まず、制御部21は楽曲の再生を開始する(S101)。制御部21は、主記憶部22に3次元空間を構築して判定領域50を設定する(S102)。制御部21は、ゲーム画面30に複数の発生位置を設定し、発生位置マーク34をゲーム画面30に表示させる(S103)。
なお、S102においては、例えば、位置検出装置1から取得されたプレイヤ位置情報が示すプレイヤの背中P7と所定の位置関係を満たすように、判定領域50が設定される。S103においては、プレイヤ画像32の周囲に複数の発生位置マーク34が表示される。即ち、プレイヤ画像32と発生位置マーク34との位置関係は、プレイヤの背中P7と判定領域50との位置関係に対応する。
制御部21は、基準タイミングデータを参照して、ゲーム画面30におけるタイミング案内マーク36の表示制御処理を行う(S104)。
図17は、S104において実行される表示制御処理の一例を示すフロー図である。図17に示す処理は、基準タイミングデータの「A」〜「H」の各々が示す基準タイミングに基づいて行われる。即ち、発生位置マーク34A〜34Hの各々に関連付けられた基準タイミングを案内するタイミング案内マーク36A〜36Hの各々について、下記に説明する表示制御処理が実行される。なお、ここでは、基準タイミングデータの「A」のデータに基づいてタイミング案内マーク36Aの表示制御処理が行われる場合を説明する。
まず、図17に示すように、制御部21は、位置検出装置1から取得された撮影画像に基づいて、プレイヤ画像32をゲーム画面30に表示させる(S201)。
制御部21は、基準タイミングデータを参照し、案内対象期間内に基準タイミングが含まれるか否かを判定する(S202)。例えば、現時点から2/8小節後までの期間において、基準タイミングデータの「A」が「1」になっているか否かが判定される。
案内対象期間内に基準タイミングが含まれると判定されない場合(S202;N)、本処理は終了し、処理はS105に移行する。
案内対象期間内に基準タイミングが含まれると判定された場合(S202;Y)、制御部21は、現時点と、案内対象期間内の基準タイミングと、の時間間隔Uを算出する(S203)。即ち、案内対象期間内において、基準タイミングデータの「A」が「1」になっている時間と現時点との時間間隔Uが算出される。
制御部21は、S203において算出された時間間隔Uが、案内対象期間の長さ(例えば、2/8小節)と同じであるか、案内対象期間の長さよりも短い第1範囲(例えば、2/8小節未満、かつ、1/8小節以上)であるか、第1範囲よりも短い第2範囲(例えば、1/8小節未満、かつ、0小節以上)であるか、を判定する(S204)。
時間間隔Uが案内対象期間の長さと同じであると判定された場合(S204;案内対象期間の長さ)、制御部21は、発生位置マーク34Aの位置にタイミング案内マーク36Aを発生させる(S205)。即ち、案内対象期間に、新たに「A」の基準タイミングが含まれるようになったので、発生位置マーク34Aの位置にタイミング案内マーク36Aを発生させる。
時間間隔Uが第1範囲であると判定された場合(S204;第1範囲)、制御部21は、時間間隔Uと距離lとが対応するように、タイミング案内マーク36Aの往路上の表示位置を決定する(S206)。例えば、時間間隔Uが小さくなるほど、距離lが大きくなるように、タイミング案内マーク36Aの表示位置が決定される。
時間間隔Uが第2範囲であると判定された場合(S204;第2範囲)、制御部21は、時間間隔Uと距離lとが対応するように、タイミング案内マーク36Aの復路上の表示位置を決定する(S207)。例えば、時間間隔Uと基準タイミングとの差異が小さくなるほど、距離lが短くなるように、タイミング案内マーク36Aの表示位置が決定される。
なお、上記においては、タイミング案内マーク36Aの表示制御について説明したが、タイミング案内マーク36B〜36Hについても基準タイミングデータの「B」〜「H」のデータに基づいて上記と同様の表示制御が行われる。即ち、上記の説明の「A」は、「B」〜「H」の何れかに読み替えることができる。
図16に戻り、S104においてタイミング案内マーク36の表示制御が行われると、制御部21は、ゲーム操作の評価処理を行う(S105)。
図18は、ゲーム操作の評価処理の一例を示すフロー図である。図18に示す処理は、判定領域50A〜50Hに対応する8つのゲーム操作について実行される。なお、ここでは、プレイヤが判定領域50Aを触るゲーム操作を評価する場合を説明する。
図18に示すように、まず、制御部21は、現時点が判定期間内であるか否かを判定する(S301)。
図19は、判定期間について説明するための図である。図19においてt軸は時間軸を示す。「X」は、判定領域50Aが触られるべきタイミングを示す。即ち、「X」は、判定領域50Aに対応する基準タイミングを示し、基準タイミングデータの「A」が「1」になっている時間である。「Y1」及び「Y2」は、判定領域50Aが触られたタイミングを示す。即ち、「Y1」及び「Y2」は、操作タイミングを示す。
例えば、基準タイミングごとに判定期間が設定される。図19において、「Z」は判定期間を示している。判定期間(Z)は、基準タイミング(X)と、基準タイミング(X)から所定時間前までの期間と、基準タイミング(X)から所定時間後までの期間と、を含む期間である。図19における判定期間(Z)は、基準タイミング(X)を中心とする一定期間である。
判定期間(Z)では、この期間内の最初の操作タイミングが、評価対象として取り扱われる。例えば、図19に示す例では、判定期間(Z)において、二つの操作タイミング(Y1,Y2)が存在している。この場合、1回目の操作タイミング(Y1)が、基準タイミング(X)との比較対象とされる。2回目以降の操作タイミング(Y2)は、基準タイミング(X)との比較対象から除かれる。このようにする理由は、基準タイミング(X)付近でプレイヤが判定領域50Aを何度も繰り返し触ったような場合であっても、評価が適切に行われるようにするためである。
図18に戻り、現時点が判定期間内でないと判定された場合(S301;N)、制御部21は、本処理を終了する。つまり、制御部21は、図16のS106の処理を実行する。
一方、現時点が判定期間内であると判定された場合(S301;Y)、制御部21は、操作済みフラグが「0」であるか否かを判定する(S302)。操作済みフラグは、主記憶部22等に記憶され、現在の判定期間において判定領域50Aが触られたか否かを示す情報である。操作済みフラグは、0又は1の値をとる。「0」は、判定領域50Aが触られていないことを示す。一方、「1」は、判定領域50Aが触られたことを示す。
操作済みフラグが「0」であると判定されない場合(S302;N)、処理は、S309に移行する。
一方、操作済みフラグが「0」であると判定された場合(S302;Y)、制御部21は、判定領域50Aが触られたか否かを判定する(S303)。この判定は、プレイヤ位置情報が示すプレイヤの各部位の3次元座標が、判定領域50A内にあるか否かが判定されることによって行われる。
判定領域50Aが触られたと判定されない場合(S303;N)、処理は、S309に移行する。一方、判定領域50Aが触られたと判定された場合、制御部21は操作済みフラグを「1」に更新する(S304)。
さらに、制御部21は、基準タイミングと操作タイミングとのずれ時間(ΔT)を取得する(S305)。このずれ時間(ΔT)は、操作タイミングが基準タイミングよりも早い場合に負の値になる。一方、ずれ時間(ΔT)は、操作タイミングが基準タイミングよりも遅れている場合に正の値になる。操作タイミングは、S303において判定領域50Aが触られたと判定されたタイミングであってもよいし、S305の処理が実行される時点であってもよい。
制御部21は、S305で取得されたずれ時間(ΔT)に基づいて評価を決定する(S306)。例えば、図13に示すデータに基づいて評価が決定される。制御部21は、S306において決定された評価に基づいてゲーム処理を行い(S307)、タイミング案内マーク36を消去させる(S308)。ここで行われるゲーム処理は、ゲーム画面30の表示エフェクト処理や、ゲーム状況データが示す得点を増減させる処理である。
制御部21は、判定期間の終了タイミングが到来したか否かを判定する(S309)。判定期間の終了タイミングが到来したと判定されない場合(S309;N)、処理は、S106に移行する。
一方、判定期間の終了タイミングが到来したと判定された場合(S309;Y)、制御部21は、操作済みフラグが「0」であるか否かを判定する(S310)。操作済みフラグが「0」である場合とは、判定期間内に判定領域50Aが触られなかった場合である。
操作済みフラグが「0」であると判定された場合(S310;Y)、制御部21は、評価を最も低いものに決定し(S311)、タイミング案内マーク36Aを消去させる(S312)。この場合、例えば、得点が所定値だけ減少する。そして、処理は、S106に移行する。
一方、操作済みフラグが「0」であると判定されない場合(S310;N)、制御部21は、操作済みフラグを「0」に更新する(S313)。そして、処理は、S106に移行する。
図16に戻り、制御部21は、得点が所定範囲になったか否かを判定する(S106)。得点が所定範囲になったと判定された場合(S106;Y)、制御部21は、ゲームオーバー画面を表示し(S107)、本処理を終了する。
一方、得点が所定範囲になったと判定されない場合(S106;N)、制御部21は、楽曲の再生が終了したか否かを判定する(S108)。楽曲の再生が終了したと判定されない場合(S108;N)、処理はS104に戻る。一方、楽曲の再生が終了したと判定された場合(S108;Y)、制御部21は、ゲーム成績画面を表示し(S109)、本処理を終了する。
以上に説明したゲーム装置20においては、プレイヤがゲーム操作をすべき基準タイミングが近づくと、発生位置マーク34にタイミング案内マーク36を発生させ、タイミング案内マーク36を往復移動させることによって、プレイヤに基準タイミングを案内する。タイミング案内マーク36が往復移動することによって、プレイヤは楽曲のリズムを感じ取りやすくなるため、基準タイミングを把握しやすくなる。
また、ゲーム画面30に複数の発生位置マーク34を表示させ、これら複数の発生位置マーク34の各々に関連付けられたゲーム操作をすべき基準タイミングを、タイミング案内マーク36を放射状に往復移動させて案内することによって、プレイヤがすべきゲーム操作が複数種類あったとしても、プレイヤはどのゲーム操作をすべきかを把握しやすくなる。
[7.変形例]
本発明は、以上説明した実施形態及び変形例に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更可能である。
(1)例えば、多数のタイミング案内マーク36がゲーム画面30に表示されるような場合に、プレイヤは、これらのタイミング案内マーク36がどの発生位置マーク34に戻ってくるかを把握しにくくなってしまうことがある。そこで、タイミング案内マーク36が発生した場合、当該タイミング案内マーク36が戻ってくる発生位置マーク34の色や大きさ等を変化させることによって、タイミング案内マーク36がどの発生位置マーク34に戻ってくるかをプレイヤに把握させやすくしてもよい。
本変形例の案内部48は、ゲーム画面30において発生位置に発生位置画像(例えば、発生位置マーク34)を表示させ、案内画像(例えば、タイミング案内マーク36)が発生位置から折り返し位置への移動を開始する場合、又は、案内画像が折り返し位置から発生位置に向けて移動を開始する場合に、発生位置画像を変化させる。即ち、案内部48は、タイミング案内マーク36が発生した場合、又は、タイミング案内マーク36が折り返し位置に到達した場合、発生位置マーク34を変化させる。
タイミング案内マーク36が発生した場合とは、例えば、案内対象期間に基準タイミングが含まれた場合である。タイミング案内マーク36が折り返し位置に到達した場合とは、タイミング案内マーク36が折り返す場合であり、例えば、基準タイミングから案内対象期間の長さの半分だけ前の時間になった場合であり、時間間隔Uが第1範囲から第2範囲になった場合である。
「発生位置マーク34を変化」とは、発生位置マーク34の表示形態を変化させることであり、例えば、発生位置マーク34の画像データ自体を別の画像データに変えること、発生位置マーク34の形状、大きさ、色、又は輝度を変化させること、発生位置マーク34を点滅させること、の少なくとも一つである。
図20は、変形例(1)において表示されるゲーム画面30を示す図である。図20に示すように、案内対象期間内に基準タイミングが含まれない場合、タイミング案内マーク36はゲーム画面30に表示されないので、発生位置マーク34は変化しない。例えば、案内対象期間内に基準タイミングが含まれた場合、即ち、タイミング案内マーク36が発生して往路の移動を開始した場合、発生位置マーク34が変化する。
図20に示す例では、案内対象期間内における基準タイミングデータの「B」が「1」になっており、タイミング案内マーク36Bが発生位置マーク34Bから発生する。そして、発生位置マーク34Bが丸型の画像から星型の画像に変化する。タイミング案内マーク36Bが往復移動して発生位置マーク34Bに戻ってくると(即ち、基準タイミングが訪れると)、発生位置マーク34が元に戻る。即ち、発生位置マーク34Bが星型の画像から丸型の画像に戻る。
なお、図20では、タイミング案内マーク36が発生したときに発生位置マーク34が変化する場合を説明したが、先述のように、タイミング案内マーク36が折り返し位置に到達した場合に発生位置マーク34が変化するようにしてもよい。即ち、タイミング案内マーク36が往路の移動を終了して折り返す場合に発生位置マーク34が変化するようにしてもよい。
変形例(1)によれば、発生位置マーク34が変化することによって、プレイヤは、タイミング案内マーク36がどの発生位置マーク34に戻るかを把握しやすくなる。その結果、プレイヤは、どの判定領域50を触るべきかを把握しやすくなる。
(2)また例えば、ゲーム画面30に複数のタイミング案内マーク36が表示されている場合、タイミング案内マーク36が往路上を移動しているのか復路上を移動しているのかを把握しにくくなることがある。そこで、往路を移動しているときと復路を移動しているときとでタイミング案内マーク36を変化させるようにしてもよい。
変形例(2)の案内部48は、案内画像(例えば、タイミング案内マーク36)が発生位置から折り返し位置まで移動する場合と、案内画像が折り返し位置から発生位置に向けて移動する場合と、で案内画像を変化させる。即ち、案内部48は、タイミング案内マーク36が往路上を移動している場合と、タイミング案内マーク36が復路上を移動している場合と、でタイミング案内マーク36を異ならしめる。
「タイミング案内マーク36を変化」とは、発生位置マーク34と同様に、タイミング案内マーク36の表示形態を変化させることであり、例えば、タイミング案内マーク36の画像データ自体を別の画像データに変えること、タイミング案内マーク36の形状、大きさ、色、輝度を変化させること、タイミング案内マーク36を点滅させること、の少なくとも一つである。
例えば、時間間隔Uが第1範囲である場合、タイミング案内マーク36は往路上を移動するので、タイミング案内マーク36は第1の表示形態(例えば、丸型)をとる。時間間隔Uが第2範囲である場合、タイミング案内マーク36は復路上を移動するので、タイミング案内マーク36は第1の表示形態とは異なる第2の表示形態(例えば、星型)をとる。
図21は、変形例(2)において表示されるゲーム画面30を示す図である。図21に示すように、タイミング案内マーク36は往路上を移動する場合、タイミング案内マーク36は丸型の画像となる。タイミング案内マーク36が折り返し位置に到達して復路の移動を開始する場合、タイミング案内マーク36が変化して星型の画像となり、復路上を移動する。
変形例(2)によれば、往路と復路とでタイミング案内マーク36が変化することによって、プレイヤは、タイミング案内マーク36が往路上を移動しているか復路上を移動しているかを把握しやすくなる。その結果、プレイヤは、基準タイミングを把握しやすくなる。
(3)また例えば、ある発生位置マーク34から複数のタイミング案内マーク36が移動している場合には、これらタイミング案内マーク36が互いに重なって見えにくくなることがある。そこで、複数のタイミング案内マーク36の移動経路を互いにずらすことによって、タイミング案内マーク36が重なることを防止するようにしてもよい。
(3−1)図22は、変形例(3−1)におけるタイミング案内マーク36Bの移動経路を示す図である。例えば、案内対象期間に、基準タイミングデータの「B」が「1」となっている基準タイミングが2つ含まれている場合を説明する。この2つの基準タイミングのうち、早い方を第1の基準タイミングとし、遅い方を第2の基準タイミングとする。
この場合、案内部48は、第1の案内画像(例えば、タイミング案内マーク36B1)を発生位置Qから折り返し位置R0まで移動させた後、第1の案内画像を折り返し位置R0から発生位置Qに向けて移動させることによって、第1の基準タイミングをプレイヤに案内する。また、案内部48は、第2の案内画像(例えば、タイミング案内マーク36B2)を発生位置Qから折り返し位置R0まで移動させた後、第2の案内画像を折り返し位置R0から発生位置Qに向けて移動させることによって、第1の基準タイミングよりも後に訪れる第2の基準タイミングをプレイヤに案内する。
また、案内部48は、第1の案内画像(例えば、タイミング案内マーク36B1)が折り返し位置R0から発生位置Qに向けて移動している状態において、第2の案内画像(例えば、タイミング案内マーク36B2)が発生位置Qから折り返し位置R0に向けて移動する場合、第1の案内画像が折り返し位置R0から発生位置Qに向けて移動する経路と、第2の案内画像が発生位置Qから折り返し位置R0に向けて移動する経路と、を異ならしめる。
例えば、図22に示すように、ゲーム画面30において、タイミング案内マーク36B1が復路上を移動しており、タイミング案内マーク36B2が往路上を移動する場合、両者の経路が異なる位置に設定される。例えば、発生位置Qと折り返し位置R0とを結ぶ第1の曲線CL1を往路とし、第1の曲線CL1とは異なる第2の曲線CL2を復路とする。第1の曲線CL1と第2の曲線CL2とを示すデータが、予めゲームデータ記憶部42に記憶されているようにしてもよい。
変形例(3−1)によれば、タイミング案内マーク36同士が重なって見えにくくなることを防止することができる。
(3−2)なお、タイミング案内マーク36B1とタイミング案内マーク36B2との経路をずらす方法は、上記の例に限られない。他にも例えば、タイミング案内マーク36B1の折り返し位置と、タイミング案内マーク36B2の折り返し位置と、をずらすことによって、タイミング案内マーク36B1の復路と、タイミング案内マーク36B2の往路と、をずらすようにしてもよい。
図23は、変形例(3−2)におけるタイミング案内マーク36の移動経路の決定方法を示す図である。図23に示すように、タイミング案内マーク36B1の折り返し位置R1と、タイミング案内マーク36B2の折り返し位置R2と、を異ならしめるによって、タイミング案内マーク36B1の往路及び復路と、タイミング案内マーク36B2の往路及び復路と、をずらすようにしてもよい。
例えば、元々の折り返し位置R0から、発生位置Qを基準にして反時計回りに角度θだけ回転させた位置を折り返し位置R1とする。また例えば、元々の折り返し位置R0から、発生位置Qを基準にして時計回りに角度θだけ回転させた位置を折り返し位置R2とする。
変形例(3−2)の案内部48は、第1の案内画像(例えば、タイミング案内マーク36B1)を発生位置Qから第1の折り返し位置R1まで移動させた後、第1の案内画像を第1の折り返し位置R1から発生位置Qに向けて移動させることによって、第1の基準タイミングをプレイヤに案内する。
また、案内部48は、ゲーム画面30に第1の案内画像(例えば、タイミング案内マーク36B1)が表示されている状態において、第1の基準タイミングよりも後に訪れる第2の基準タイミングをプレイヤに案内する場合、第2の案内画像(例えば、タイミング案内マーク36B2)を、発生位置Qから、第1の折り返し位置R1とは異なる第2の折り返し位置R2まで移動させた後、第2の案内画像を第2の折り返し位置R2から発生位置Qに向けて移動させることによって、第2の基準タイミングをプレイヤに案内する。
変形例(3−2)によれば、タイミング案内マーク36同士が重なって見えにくくなることを防止することができる。
(3−3)なお、変形例(3−1)と変形例(3−2)とを組み合わせるようにしてもよい。例えば、基準タイミングデータが示す基準タイミング毎に、タイミング案内マーク36の移動経路を示すデータが関連付けられるようにしてもよい。
図24は、基準タイミングと、当該基準タイミングを案内するタイミング案内マーク36の移動経路と、の関連付けを示す図である。当該関連付けを示すデータは、ゲームデータ記憶部42に記憶されるようにしてもよい。移動経路としては、例えば、変形例(3−1)に示すように往路と復路と異なる経路と、変形例(3−2)に示すように、折り返し位置を変更する経路と、の何れかを示す情報が格納される。
案内部48は、案内対象期間内に複数の基準タイミングが含まれる場合、当該基準タイミングに関連付けられた移動経路に基づいて、これら複数の基準タイミングの各々を案内するタイミング案内マーク36を移動させる。
変形例(3−3)によれば、案内対象期間内に複数の基準タイミングが含まれる場合のタイミング案内マーク36の移動経路を設定することができる。
(4)また例えば、タイミング案内マーク36の往路及び復路を、タイミング案内マーク36以外の他の画像が移動するようにしてもよい。この場合、プレイヤは、当該画像に惑わされることなくゲームをプレイすることになるので、ゲームの趣向性を向上させることができる。
図25は、変形例(4)のゲーム画面30の一例を示す図である。図25に示すように、例えば、タイミング案内マーク36Bの経路上に、妨害マーク38Bが表示される。妨害マーク38Bは、基準タイミングを案内するものではなく、現時点と基準タイミングとの間隔に基づいて移動するものではない。
変形例(4)のゲーム装置20は、ゲーム画面30において、所与の画像(例えば、妨害マーク38B)を、発生位置から折り返し位置までの線及びその延長線上を折り返し位置で折り返させずに移動させる手段を含む。当該手段は、例えば、ゲーム実行部44により実現される。妨害マーク38Bは、タイミング案内マーク36Bの往路上を移動して折り返し位置に到達した後、折り返さずに移動する。即ち、図24に示すように、往路上の移動方向のままゲーム画面30上を進んでゲーム画面30から消去されるようにしてもよい。
妨害マーク38Bは、タイミング案内マーク36Bと同じ形状であってもよいし、異なる形状であってもよい。例えば、妨害マーク38Bは、タイミング案内マーク36Bと同じ形状であるが色だけが異なる画像であってもよい。また、妨害マーク38Bは、例えば、タイミング案内マーク36Bと同じ速度で移動するようにしてもよいし、異なる速度で移動するようにしてもよい。
変形例(4)によれば、妨害マーク38をゲーム画面30に表示させることによって、ゲームの興趣性を向上させることができる。
(5)また例えば、基準タイミングが訪れた場合に行われたゲーム操作の操作量に応じて、以降の基準タイミングを案内するためのタイミング案内マーク36の移動距離が変わることによって、ゲームの興趣性を高めるようにしてもよい。例えば、プレイヤが判定領域50を触った場合の部位の速さに応じて、次の基準タイミングを案内するタイミング案内マーク36の移動距離が変わるようにしてもよい。
変形例(5)のゲーム操作検出部40は、ゲーム操作の操作量を検出する手段を含む。ここでは、プレイヤの部位の変化量が「操作量」に相当する。
案内部48は、ゲーム操作の評価が行われた場合、当該ゲーム操作の操作量に基づいて、発生位置と折り返し位置との距離を決定する手段を含む。案内部48は、当該ゲーム操作が行われた後に訪れる基準タイミングを案内する案内画像(例えば、タイミング案内マーク36)を、発生位置から、決定された距離だけ離れた折り返し位置まで移動させた後、案内画像を当該折り返し位置から発生位置に向けて移動させる。ここでは、プレイヤ位置情報の変化に基づいて、発生位置と折り返し位置との距離が決定される。
図26は、プレイヤ位置情報の変化と、発生位置と折り返し位置との距離と、関連付けを示す図である。当該関連付けを示すデータは、例えば、ゲームデータ記憶部42に記憶される。図26に示すように、例えば、プレイヤ位置情報が示すプレイヤの各部位の変化量(又は、速度)と、距離を示す情報と、が関連付けられる。
プレイヤ位置情報が示すプレイヤの各部位の変化量としては、所定期間におけるプレイヤの部位のうち何れかの位置変化量を示す情報が格納され、即ち、プレイヤの部位の速さに関する情報が格納される。ここでは、プレイヤ位置情報の変化量に応じた「小さい」、「普通」、「大きい」の3種類が格納される場合を説明する。例えば、プレイヤの部位の変化量と閾値とが比較されることによって、プレイヤの部位の位置変化が上記の何れに属するかが判定される。
発生位置と折り返し位置との距離を示す情報としては、例えば、発生位置から見て、どの方向にどれだけ離れた位置に折り返し位置が設定されるかを示す情報が格納される。ここでは、距離を示す情報として、発生位置に「近い」、「普通」、「遠い」の3種類が格納される場合を説明する。例えば、発生位置と折り返し位置との距離Lに関する情報が格納される。
案内部48は、ゲーム操作の評価が行われた場合、ゲームデータ記憶部42に記憶されたプレイヤ位置情報の時系列的な変化を参照し、当該ゲーム操作に対応する部位の変化量を特定する。そして、案内部48は、当該特定された変化量に関連付けられた距離に基づいて、折り返し位置を決定する。
図27は、プレイヤ位置情報の変化に応じた折り返し位置を示す図である。ここでは、基準タイミングデータの「B」が「1」である基準タイミングが訪れたときに、プレイヤが右手で判定領域50Bを触るゲーム操作を行った場合を例に挙げて説明する。まず、プレイヤが判定領域50Bを触った場合における、プレイヤの右下腕P6の3次元座標の時系列的な変化に基づいて、プレイヤの右下腕P6の変化量が取得される。
プレイヤの右下腕P6の変化量が「小さい」場合には、図27に示すように、発生位置Q(発生位置マーク34Bの表示位置)から距離L/2だけ離れた位置に折り返し位置RNが決定される。プレイヤの右下腕P6の変化量が「普通」の場合には、図27に示すように、発生位置Q(発生位置マーク34Bの表示位置)から距離Lだけ離れた位置に折り返し位置R0が決定される。プレイヤの右下腕P6の変化量が「大きい」の場合には、図27に示すように、発生位置Q(発生位置マーク34Bの表示位置)から距離3L/2だけ離れた位置に折り返し位置RFが決定される。
そして、上記のように折り返し位置が決定された以降に訪れる基準タイミングを案内するタイミング案内マーク36Bは、上記のように決定された折り返し位置に向かうように移動することになる。この基準タイミングにおいて行われたゲーム操作に応じて、折り返し位置が再び決定される。
変形例(5)によれば、基準タイミングにおけるプレイヤの部位の位置変化に応じて、次の基準タイミングを案内するタイミング案内マーク36の移動距離を変えることができるので、ゲームの興趣性を向上させることができる。
なお、実施形態においては、プレイヤ位置情報に基づいてゲーム操作が検出される場合を説明したが、操作部26のコントローラに備えられた各ボタンが押下されることが「ゲーム操作」に相当するようにしてもよい。この場合、プレイヤが操作部26のボタンを押下した強さに応じて折り返し位置が決定されるようにしてもよい。例えば、プレイヤが操作部26を強く押すほど、折り返し位置が発生位置から離れるように折り返し位置が設定されるようにしてもよい。
この場合、ゲーム操作検出部40は、プレイヤの操作を検出する操作検出部と当該検出部への圧力を検出する圧力検出部とを含む操作手段(例えば、操作部26)からの検出信号に基づいてプレイヤのゲーム操作を検出する。例えば、操作部26のボタンが、操作検出部に相当する。例えば、操作部26は、プレイヤによる押し込みが可能なボタンを含んでなる。ゲーム操作検出部40は、当該ボタンによる検出信号を操作部26から取得することによって、ゲーム操作が行われたか否かを検出する。
また例えば、操作部26は、当該ボタンの押し込みの圧力を検出する感圧センサを含んでなる。当該感圧センサが、圧力検出部に相当する。ゲーム操作検出部40は、感圧センサによる検出信号を操作部26から取得することによって、ボタンへの圧力を検出する。
この場合も、操作部26のボタンへの圧力と、発生位置と折り返し位置との距離と、の関連付けを記憶しておくことによって、タイミング案内マーク36の移動距離を変えることができるので、ゲームの興趣性を向上させることができる。
また、操作部26のタッチパネルをタッチすることが「ゲーム操作」に相当するようにしてもよい。この場合、操作部26は、タッチパネル内部に、タッチの際の圧力を検出する感圧センサを含む。プレイヤがタッチパネルをタッチした際の圧力に応じてタイミング案内マーク36の移動距離を変えるようにしてもよい。他にも例えば、タッチパネルの接触面積に基づいて圧力が検出されるようにしてもよい。
また、ゲーム操作の「操作量」は、上記説明した部位の速さや圧力に限られない。他にも例えば、プレイヤの部位を判定領域50内に入れた回数や、コントローラのボタンを押下した回数が、「操作量」に相当するようにしてもよい。
(6)また例えば、タイミング案内マーク36が折り返し位置に到達したときにゲーム操作が行われた場合に、タイミング案内マーク36の発生位置や折り返し位置を変化させることによって、ゲームの興趣性を高めるようにしてもよい。
変形例(6)の案内部48は、折り返し位置に案内画像(例えば、タイミング案内マーク36)が到達した場合にゲーム操作が行われたか否かを判定する手段を含む。折り返し位置にタイミング案内マーク36が到達した場合とは、タイミング案内マーク36が往路から復路に折り返して移動を開始する場合である。
例えば、案内部48は、タイミング案内マーク36が折り返し位置に到達したタイミング(例えば、基準タイミングの1/8小節前のタイミング)と、操作タイミングと、を比較して両者のずれ時間を取得する。このずれ時間が所定範囲であった場合に、タイミング案内マーク36が折り返し位置に到達した場合にゲーム操作が行われたと判定される。
また、案内部48は、折り返し位置に案内画像(例えば、タイミング案内マーク36)が到達した場合にゲーム操作が行われたと判定された場合、折り返し位置に基づいて発生位置を変更し、当該変更された発生位置に基づいて折り返し位置を変更する手段を含み、当該ゲーム操作が行われた後に訪れる基準タイミングを案内する案内画像を、変更された発生位置から変更された折り返し位置まで移動させた後、案内画像を前記変更された折り返し位置から変更された発生位置に向けて移動させる。
図28は、発生位置が変更される様子を示す図である。例えば、案内部48は、タイミング案内マーク36Bが折り返し位置に到達した場合に判定領域50Bが触られた場合、発生位置マーク34Bを当該折り返し位置の位置に変更する。発生位置マーク34Bの位置の変更に伴って、折り返し位置も変更される。例えば、変更後の発生位置マーク34Bから距離Lだけ離れた位置を折り返し位置とする。
変形例(6)によれば、タイミング案内マーク36が折り返し位置に到達したときにゲーム操作が行われた場合に、発生位置を変更することによって、ゲームの興趣性を高めることができる。
また、発生位置の変更方法は、上記の例に限られない。タイミング案内マーク36が折り返し位置に到達したときにゲーム操作が行われる前の発生位置とは異なる位置に、発生位置が変更されるようにすればよい。折り返し位置は、この発生位置の変更に応じた位置に決定されるようにすればよい。
(7)また例えば、発生位置マーク34Bに対応する判定領域50Bは、プレイヤは手で触りやすい位置にあるが、発生位置マーク34Aに対応する判定領域50Aは、プレイヤの頭上にあるため、比較的触りにくい位置にある。そこで、ゲームの進行に応じて、基準タイミングデータの「A」のデータを「B」のデータに置き換えることによって、ゲームの難易度を調整するようにしてもよい。
例えば、基準タイミングデータにおいて、判定領域50Aを触るべき基準タイミングがあまり設定されておらず、判定領域50Bを触るべき基準タイミングが連続して訪れるように設定されている場合、両者を入れ替えることによって、プレイヤは、頭上の判定領域50Aを連続して触らなければならなくなる。例えば、プレイヤの得点が比較的増加している場合にはゲームオーバーの可能性が低くなるので、上記のようにしてゲームの難易度を高めるようにしてもよい。
変形例(7)のゲーム装置20は、第1の基準タイミングデータ(例えば、「A」のデータ)を、第2の基準タイミングデータ(例えば、「B」のデータ)に置き換える手段を更に含む。例えば、基準タイミングデータにおいて示されている「A」のデータと「B」のデータとが入れ替わる。
図29は、実行中のゲームの状況に関する条件と基準タイミングの置き換え方法との関係を示す図である。図29の関係を示すデータは、例えば、ゲームデータ記憶部42に記憶される。
ゲームの状況に関する条件とは、ゲーム状況データがとりうる値の範囲を示す情報であり、例えば、ゲーム状況データが示す得点の範囲が格納される。他にも例えば、実行中のゲームにおいて、楽曲の経過時間が所定範囲になったか否か等であってもよい。基準タイミングの置き換え方法としては、どの基準タイミングデータを、何の基準タイミングデータに置き換えるかを示す情報が格納される。
例えば、ゲーム状況データが参照されて、図29に示す条件が満たされるか否かが判定される。条件が満たされる場合、当該条件に関連付けられた置き換え方法に基づいて基準タイミングが置き換わる。例えば、図29に示すデータ格納例の場合、ゲーム状況データが示す得点が所定範囲になった場合に、基準タイミングデータの「A」と「B」が入れ替わる。
図30は、基準タイミングデータが置き換わった場合のデータ格納例を示す図である。図30に示すデータ格納例では、例えば、基準タイミングの変更が行われる前において、「A」のデータが比較的「0」が多く「1」が少ない。また例えば、基準タイミングの変更が行われる前において、「B」のデータが比較的「1」が多く「0」が少ない。このように基準タイミングが設定されている場合には、プレイヤが比較的触りにくい判定領域50Aを触る機会が少なく、プレイヤが比較的触りやすい判定領域50Bを触る機会が多いため、ゲームの難易度が比較的低くなる。
一方、図30に示すように、基準タイミングデータの「A」と「B」とが入れ替わると、「A」のデータが比較的「1」が多く「0」が少なくなり、「B」のデータが比較的「0」が多く「1」が少なくなる。このように基準タイミングが設定されている場合には、プレイヤが比較的触りにくい判定領域50Aを触る機会が多くなり、プレイヤが比較的触りやすい判定領域50Bを触る機会が少なくなるため、入れ替え前に比べてゲームの難易度が高くなる。
変形例(7)の案内部48は、第1の基準タイミングデータ(例えば、「A」のデータ)が第2の基準タイミングデータ(例えば、「B」のデータ)に置き換えられた場合、ゲーム画面30において、第2の発生位置(例えば、発生位置マーク34Bの位置)から第1の発生位置(例えば、発生位置マーク34Aの位置)に所与の画像を移動させることによって、第1の基準タイミングデータが第2の基準タイミングデータに置き換えられたことをプレイヤに案内する。
図31は、基準タイミングデータの入れ替えが行われた場合のゲーム画面30の画面遷移図である。図31に示すように、基準タイミングデータの「A」と「B」とが入れ替わった場合、発生位置マーク34Aと発生位置マーク34Bとが入れ替わるような表示制御処理が行われる。そして、プレイヤ画像32の頭上から連続してタイミング案内マーク36Aが発生する。この場合、プレイヤは、タイミング案内マーク36Aの移動に応じて判定領域50Aを触ることになる。
変形例(7)によれば、ゲームの進行中において、ゲームの難易度を調整することができる。
なお、上記においては、基準タイミングデータの「A」と「B」とが入れ替わる場合を説明したが、一の基準タイミングデータが他の基準タイミングデータに置き換わるようにすればよく、この変更方法は、上記の例に限られない。他にも例えば、基準タイミングデータの「A」が「B」になり、「B」が「C」になり、「C」が「D」になる、というように、発生位置マーク34が時計回りに回転するように、基準タイミングデータが変更されるようにしてもよい。
(8)また例えば、実施形態及び変形例においては、プレイヤ画像32の周囲に発生位置が設定される場合を説明したが、ゲーム画面30に設定される発生位置はこれに限られない。他にも、プレイヤ画像32を基準として扇形に並べられるようにしてもよいし、直線上に並べられるようにしてもよい。また、発生位置は、1つであってもよい。
(9)また例えば、実施形態又は変形例においては、ゲーム操作の一例として、プレイヤが判定領域50を触るように体を動かすこと、又は、プレイヤが操作部26を操作することを挙げて説明したが、ゲーム操作としては、公知の種々の操作が適用可能である。例えば、プレイヤ画像32に写しだされたプレイヤが発生位置マーク34を触るように、プレイヤが体を動かすことがゲーム操作に相当するようにしてもよい。
(10)また例えば、上記では、撮影画像と深度情報(深度画像)とに基づいてプレイヤ位置情報を生成する手段が位置検出装置1に含まれる例を挙げて説明したが、プレイヤ位置情報を生成する手段は、ゲーム装置20に含まれていてもよい。例えば、ゲーム装置20は、位置検出装置1から撮影画像と深度画像とを受信し、これらに基づいてプレイヤ位置情報を生成するようにしてもよい。
(11)また、上記実施形態及び変形例においては、ゲーム装置20がダンスゲームを実行する場合を説明したが、ゲーム装置20は、楽曲に合わせてプレイヤがゲーム操作を行うゲームを実行するようにすればよい。