(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0015】
以下、本発明の実施の形態について図面を用いて説明する。
【0016】
図1は、本実施の形態におけるゲームプログラム1が実行されるゲーム機3の内部構成を示すブロック図である。
【0017】
ゲーム機3は、バス30に、CPU31、RAM32、ROM33、ストレージ34、画像処理ユニット35、入力インタフェース36、音声処理ユニット37、無線通信ユニット38、およびメディアインタフェース39を接続する。画像処理ユニット35と入力インタフェース36には、タッチパネル40が接続される。タッチパネル40は、画像処理ユニット35により生成されるゲーム画面を表示するとともに、プレイヤーがタッチパネル40に接触した接触座標を入力して入力インタフェース36へ渡す。音声処理ユニット37には、スピーカー41が接続される。スピーカー41は、音声処理ユニット37によりアナログ信号に変換されて増幅された効果音やBGM等の音声を出力する。例えば、ゲーム機3として、タッチパネル40を備えたスマートフォンなどが利用できる。
【0018】
ゲーム機3は、無線通信ユニット38あるいはメディアインタフェース39からゲームプログラム1を受信してストレージ34に格納する。CPU31がストレージ34に格納されたゲームプログラム1をRAM32上に読み出して実行し、上記のハードウェア資源を用いて後述するゲーム装置を構成する。ゲームプログラム1は、磁気ディスク、光ディスク、半導体メモリ等の記録媒体に記録することも、ネットワークを通して提供することも可能である。
【0019】
次に、本実施の形態におけるゲームプログラムによって提供されるゲームについて説明する。
【0020】
本ゲームは、ゲーム画面の端から出現する複数のラインの先端同士が衝突したタイミングにおけるプレイヤーの操作を評価するタイミングゲームである。
【0021】
図2に、ゲーム画面の一例を示す。同図に示すゲーム画面には、ライン51A,51Bと予兆画像52A〜52Cが表示されている。実際のゲーム画面には、スコアなどの情報も表示されるが、ここでは図示していない。また、ゲーム画面の背景として再生される音楽に合わせたプロモーションビデオを表示してもよい。
【0022】
ライン51A,51Bは、ゲーム機3から出力される音楽に合わせてゲーム画面の端から出現して伸び、ゲーム画面内の仮想交点53で先端同士が衝突する。仮想交点53はゲーム画面上には表示されない。
【0023】
予兆画像52A〜52Cは、ライン51A,51Bの先端が互いに近接する予兆を示す画像であり、ライン51A,51Bの出現前、あるいはライン51A,51Bの出現と同時にゲーム画面内に表示され、動きなどの変化を伴ってライン51A,51Bの大まかな衝突タイミングと仮想交点53の位置をプレイヤーに示す。
図2に示す例では、予兆画像52A〜52Cとして、ライン51A,51Bの進行方向を複数の折れ線で表した画像を用い、予兆画像52A〜52Cの折れ点の進行方向で仮想交点53の位置を示し、予兆画像52A〜52C間の間隔の変化でライン51A,51Bの衝突タイミングを示した。
【0024】
ここで、ライン51A,51Bと予兆画像52A〜52Cの動きについて説明する。
図3は、ライン51A,51Bがゲーム画面内に出現して仮想交点53に近接する様子を時系列順に示した図である。
【0025】
図3(a)〜(c)に示すように、ライン51A,51Bは、ゲーム画面の上下端の左側から出現してゲーム画面中央付近の仮想交点53に向かって伸びる。つまり、ライン51Aは右下方向に、ライン51Bは右上方向に伸びる。
【0026】
予兆画像52Aは、ライン51A,51Bの出現より少し前に、ゲーム画面左側から出現して右側に移動する。別の予兆画像52Bは、ライン51A,51Bの出現と同時に、予兆画像52Aの後を追って、ゲーム画面左側から出現して右側に移動する。さらに別の予兆画像52Cは、ライン51A,51Bの出現後、予兆画像52A,52Bの後を追って、ゲーム画面左側から出現して右側に移動する。
【0027】
予兆画像52A〜52Cそれぞれの移動速度は出現の遅いものほど速くなっている。したがって、
図3(a)〜(c)に示すように、予兆画像52A〜52C間の間隔はライン51A,51Bが仮想交点53に近づくに連れて狭くなり、予兆画像52A〜52Cは、時間が経過するとともに、波紋のように仮想交点53に押し寄せ、ライン51A,51Bが仮想交点53で衝突するタイミングで重なる。このとき、予兆画像52A〜52Cの折れ点は仮想交点53で重なっている。
【0028】
プレイヤーは、予兆画像52A〜52Cを観察することで、ライン51A,51Bの先端が衝突する大まかなタイミングと仮想交点53の位置を推測することができる。
【0029】
次に、本実施の形態におけるゲームプログラムがゲーム機3に読み込まれて構成されるゲーム装置について説明する。
【0030】
図4は、本実施の形態におけるゲームプログラムによって構成されるゲーム装置の構成を示す機能ブロック図である。同図に示すゲーム装置は、操作入力部11、予兆画像制御部12、ライン制御部13、タイミング判定部14、スコア処理部15、画像出力部16、音声出力部17、およびゲームデータ蓄積部18を備える。
【0031】
操作入力部11は、プレイヤーの操作を入力する。プレイヤーは、ゲーム機3のタッチパネル40に指などで接触することで操作を入力する。操作の種類には、タップ、フリック、長押し、スワイプなどがある。操作入力部11は、ゲーム画面上の接触座標、操作の種類などの操作情報を取得してタイミング判定部14へ送信する。
【0032】
予兆画像制御部12は、ライン51A,51Bに対応する予兆画像52A〜52Cをゲーム画面上に出現させるとともに、予兆画像52A〜52Cの動きなどを制御し、予兆画像52A〜52Cの位置情報などを画像出力部16へ送信して、ゲーム画面上の予兆画像52A〜52Cを更新させる。予兆画像52A〜52Cの出現タイミング、および動きのデータなどはゲームデータ蓄積部18から読み出す。
【0033】
ライン制御部13は、音声出力部17から出力される音楽に合わせてライン51A,51Bをゲーム画面上に出現させるとともに、ライン51A,51Bの先端同士が衝突するように移動を制御し、ライン51A,51Bの位置情報などを画像出力部16へ送信して、ゲーム画面上のライン51A,51Bを更新させる。また、ライン51A,51Bの先端同士が衝突する位置である仮想交点53の位置情報、ライン51A,51Bの位置情報、およびライン51A,51Bの先端が衝突するまでの時間などの近接情報をタイミング判定部14へ送信する。ライン51A,51Bの出現タイミング、伸びる速度などは、ゲームデータ蓄積部18から読み出す。
【0034】
タイミング判定部14は、操作入力部11から操作情報を受信するとともに、ライン制御部13からライン51A,51Bの先端の近接情報を受信し、適切なタイミングで適切な位置がタップされたか否かを判定し、タップの成否をスコア処理部15へ送信する。
【0035】
スコア処理部15は、タイミング判定部14から受信したタップの成否に基づいてスコアの加算処理を行う。また、スコア処理部15は、スコアなどのパラメータの値を画像出力部16へ送信し、ゲーム画面に表示されている値を更新させる。
【0036】
画像出力部16は、ライン制御部13からライン51A,51Bの位置情報を受信してゲーム画面にライン51A,51Bを表示するとともに、予兆画像制御部12から予兆画像52A〜52Cの位置情報を受信してゲーム画面に予兆画像52A〜52Cを表示する。また、スコアなどのパラメータの値や背景画像などをゲーム画面に表示する。
【0037】
音声出力部17は、ゲームデータ蓄積部18から音楽データを取得して出力する。
【0038】
ゲームデータ蓄積部18は、ゲーム画面に表示する画像データ、再生する音楽や効果音などの音声データ、ライン出現データ、および予兆出現データなどを格納する。
【0039】
ライン出現データは、仮想交点の位置、出現数、ラインの出現タイミング、出現位置、伸びる方向・速さなどの情報で構成される。仮想交点の位置はゲーム画面上の座標を表す。出現数は仮想交点で交差するラインの数を表す。出現タイミングは、音楽の再生を開始してからどのくらいの時間が経過したときにラインを出現させるのかをライン毎に記載したデータである。出現位置は、例えばゲーム画面のいずれかの角を原点としたときの座標をライン毎に記載したデータである。伸びる方向・速さは、ライン毎の伸びる方向及び速さを記載したデータである。ラインの伸びる速さは、ライン毎に異なってもよい。
【0040】
予兆出現データは、ライン出現データに関連付けられており、予兆画像の出現タイミング、出現位置、移動速度、変化情報などの情報で構成される。出現タイミングは、音楽の再生を開始してからどのくらいの時間が経過したときにラインを出現させるのか、あるいは、ラインの出現タイミングから予兆画像の出現タイミングまでの相対時間を記載したデータである。出現位置は、予兆画像を出現させる位置を記載したデータである。移動速度は、予兆画像の移動速度を記載したデータである。変化情報は、例えば予兆画像の色を変化させる場合など、どのように変化させるのかを記載したデータである。
【0041】
次に、上記ゲーム装置の処理の流れについて説明する。
【0042】
図5は、本ゲーム装置の全体的な処理の流れを示すフローチャートである。
【0043】
ゲームが開始されると、初期化処理が行われる(ステップS11)。初期化処理は、例えば、スコアのクリアなどパラメータの初期化や、再生する音楽と使用するライン出現データ、予兆出現データの選択などがある。プレイヤーが選択した音楽や難易度に応じて予め設定された音楽が再生する音楽として選択される。
【0044】
初期化処理が終了すると、音声出力部17が音楽の再生を開始する(ステップS12)。
【0045】
ライン制御部13は、ゲームデータ蓄積部18からライン出現データを読み出し、新たなライン51A,51Bを出現させるか否か判定する(ステップS13)。新たなライン51A,51Bを出現させるか否かは、例えば、音楽の再生時間とライン出現データの出現タイミングとを比較して判定する。音楽の再生時間が出現タイミング以上になっていたときに、新たなライン51A,51Bを出現させると判定する。
【0046】
新たなライン51A,51Bを出現させると判定した場合は、予兆画像52A〜52C、ライン51A,51Bをゲーム画面上に出現させる(ステップS14)。ライン制御部13は、ゲームデータ蓄積部18から読みだしたライン出現データの出現位置にライン51A,51Bを出現させ、予兆画像制御部12は、ライン制御部13が出現させたライン51A,51Bに対応する予兆出現データをゲームデータ蓄積部18から読み出し、予兆画像52A〜52Cをゲーム画面上に出現させる。ライン51A,51Bの出現よりも先に予兆画像52A〜52Cがゲーム画面上に出現する場合もある。この場合、ライン51A,51Bの出現位置をゲーム画面外に設定しておく。
【0047】
所定の間隔で、ライン制御部13がゲーム画面上のライン51A,51Bを移動させ(ステップS15)、予兆画像制御部12が予兆画像52A〜52Cを更新する(ステップS16)。ゲーム画面上に表示されたライン51A,51Bや予兆画像52A〜52Cは、所定の間隔(例えば60fps間隔)で移動、更新される。
【0048】
そして、タイミング判定部14は、プレイヤーが、ライン51A,51Bの先端同士が衝突する仮想交点53を適正な位置及びタイミングでタップしたか否か判定する(ステップS17)。この判定処理の詳細については後述する。
【0049】
さらに、ゲームの終了条件を満たしているか否か判定する(ステップS18)。ゲームの終了条件は、例えば音楽の再生が終了した場合はゲームクリアと判定し、判定処理でミスと判定された回数が所定の値を超えた場合はゲームオーバーと判定する。ゲームの終了条件を満たしていない場合は、ステップS13に戻り、ゲームを継続する。
【0050】
ゲームの終了条件を満たしている場合は、ゲームクリアした旨あるいはゲームオーバーになった旨をゲーム画面に表示してゲームを終了する(ステップS19)。ゲーム終了後は、ゲームクリアの場合はステップS11に戻って新たにゲームを開始し、ゲームオーバーの場合はタイトルに戻る。
【0051】
続いて、判定処理について説明する。判定処理では、ラインの先端同士が衝突するタイミングでゲーム画面上の衝突場所がタップされたか否かを判定する。
【0052】
図6は、判定処理の流れを示すフローチャートである。
【0053】
まず、ゲーム画面がタップされたか否か判定する(ステップS21)。
【0054】
ゲーム画面がタップされた場合(ステップS21のYes)、ゲーム画面上のタップ座標を取得し(ステップS22)、タップ位置が適正範囲内であるか否か判定する(ステップS23)。タップ位置が適正範囲内であるか否かは、タップ座標とラインの先端同士が衝突する位置を示す仮想交点53とを比較して判定する。
【0055】
タップ座標が仮想交点53から所定の範囲内である場合(ステップS23のYes)、タップのタイミングが適正範囲内であるか否か判定する(ステップS24)。タップのタイミングが適正範囲内であるか否かは、ライン51A,51Bの先端が衝突するタイミングをジャストタイミングとしたときに、タップのタイミングのジャストタイミングからのずれを求めて判定する。例えば、衝突までの時間を記載した近接情報を用いて判定する。
【0056】
タップのタイミングが適正範囲内である場合(ステップS24のYes)、タップのタイミングに応じてスコアを加算し(ステップS25)、タップされたライン51A,51Bをゲーム画面上から削除する(ステップS26)。ジャストタイミングでタップされた場合は最大のスコアを加算し、それ以外の場合は、より少ないスコアを加算する。
【0057】
一方、ゲーム画面がタップされていない場合(ステップS21のNo)、あるいはタップ位置が適正範囲外の場合(ステップS23のNo)、仮想交点53をタップすべきタイミングを逃したか否か判定する(ステップS27)。ライン51A,51Bの先端が衝突後、所定の時間経過していた場合はタップのタイミングを逃したと判定する。
【0058】
タップのタイミングを逃していた場合(ステップS27のYes)、ライン51A,51Bの衝突位置を適正なタイミングでタップできなかったので、そのライン51A,51Bに対する操作入力をミスと判定してミス処理を行い(ステップS28)、タップできなかったライン51A,51Bをゲーム画面上から削除する(ステップS26)。
【0059】
次に、ライン、予兆画像のバリエーションについて説明する。
【0060】
図7は、ライン、予兆画像のバリエーションを示す図である。以下、
図7に示した各バリエーションについて説明する。
【0061】
図7(a)は、複数組みのラインが同時に出現する例を示す図である。
図7(a)に示す例では、それぞれ別々の仮想交点53A,53Bで衝突する複数組みのライン51A〜51Dが同時にゲーム画面上に出現する。
図7(a)に示す例の場合、プレイヤーは、仮想交点53A,53Bの順にタップする。
図7(a)に示す例では、各ライン51A〜51Dは、ゲーム画面の辺に対して同じ角度で伸びているが、ゲーム画面の辺に対して異なる角度で伸びるものでもよい。例えば、ライン51Aはゲーム画面の上辺に対して45度の角度で伸び、ライン51Bはゲーム画面の下辺に対して90度の角度で伸びるようにする。また、各ライン51A〜51Dが伸びる速度は同一でもよいし、異なってもよい。例えば、ライン51Aの伸びる速度を速く、ライン51Bの伸びる速度を遅くすることで、タップのタイミングを難しくできる。速度は、一定の速度で出現させてもよいし、出現後、所定のタイミングで速度が変わっても良い。例えば、ラインが一瞬消えたあとに、速度が変わってもよい。
【0062】
図7(b)は、ライン51A,51Bが消えたり現れたりする例を示す図である。
図7(b)に示す例では、ライン51A,51Bが伸びるときに、ライン51A,51Bを一時的に非表示とする。あるいは、ライン51A,51Bの一部を非表示とする。ライン51A,51Bを非表示としたとき、予兆画像も非表示としてもよいし、予兆画像だけを表示してもよい。
【0063】
図7(c)は、色の変化でラインの衝突を予兆させる例を示す図である。同図に示す例では、ライン51A,51Bの衝突時にライン51A,51Bによって区切られる部分に色が変化する予兆画像52(
図7(c)では5角形)を配置した。予兆画像52は、ライン51A,51Bの伸びに応じて色が変化する。例えば、予兆画像52の色を出現時には他の部分との区別が無いように黒あるいは透明とし、徐々に赤くあるいは透明度を減少させていく。プレイヤーは、予兆画像52の色の濃さ、透明度でライン51A,51Bが衝突する大まかなタイミングを知り、予兆画像52の形状でライン51A,51Bの伸びる方向と仮想交点53の位置を知ることができる。
【0064】
図7(d)は、線の太さの変化でラインの衝突を予兆させる例を示す図である。同図に示す例では、ライン51A,51Bと仮想交点53を含む太い線を予兆画像52とした。予兆画像52は、ライン51A,51Bが接近するのに伴って細くなっていく。プレイヤーは、予兆画像52の太さの変化でライン51A,51Bが衝突する大まかなタイミングを知り、予兆画像52の位置でライン51A,51Bの伸びる方向、仮想交点53の大まかな位置を知ることができる。
【0065】
図8は、4つのラインが衝突する例を示す図である。
図8に示すように、衝突するラインの数を2より大きくして、例えば4つのライン51A〜51Dがひとつの仮想交点53で衝突するものでもよい。4つのライン51A〜51Dが衝突するときは、プレイヤーによる操作をタップの変わりにフリック(指で弾く動作)あるいは長押し(しばらく押し続ける)としてもよい。さらに、
図8(b)に示すように、4つのライン51A〜51Dがひとつの仮想交点53で衝突する場合には、プレイヤーが衝突位置を押したときに、プレイヤーが押した位置に球54を出現させるとともに、ゲーム画面上の任意の位置に穴55を出現させる。そして、プレイヤーのフリック操作によって球54を移動させ、球54が穴55に入った場合にはスコアを加算する。球54をゲーム画面の辺で跳ね返るようにしてもよいし、球54を直接穴55に入れるようにしてもよい。球54の動きは、プレイヤーによるフリックのタイミング、角度、速さ、長さなどに基いて決定する。フリックの長さとは、タッチした位置の始点から終点までの距離である。
【0066】
また、衝突するラインの数だけでなく、ライン51A,51Bの別の属性(例えば、太さ、色、表示方法など)に応じてタップ、フリック、長押しなど様々な操作を要求してもよい。
【0067】
次に、本ゲームにより他のプレイヤーと対戦する実施例について説明する。
【0068】
まず、ゲームを開始するときに、サーバに接続して対戦相手をマッチングする。対戦相手は、例えば、自分で登録したプレイヤーの中から選択する方法や、近い腕前のプレイヤーの中からランダムに選択する方法がある。
【0069】
そして、マッチングした対戦相手のプレイデータをサーバから読み出した後、ゲームを開始する。サーバには、プレイヤーの名前やIDなどのプレイヤーまたはゲーム装置を特定する情報のほか、(1)全プレイヤーについて、各曲・各難易度のハイスコアを出した時のプレイデータ(いわゆるゴーストデータ)と、(2)全プレイヤーによる各曲・各難易度の直近数百プレイのプレイデータ(ゴーストデータ)が保存されている。自分で登録したプレイヤーの中から対戦相手を選ぶときは(1)のデータを用い、近い腕前のプレイヤーの中から対戦相手を選ぶときは(2)のデータを用いる。
【0070】
ゲーム中は、ゲーム画面上の自分のスコアの下に対戦相手のスコアとの差を表示する。対戦相手とのスコアの差は、プレイヤーと対戦相手が同時にゲームを開始したとして、読み出したプレイデータを用いて対戦相手のスコアを求め、ゲーム中におけるスコアの差を求めて表示する。
【0071】
ゲーム終了時には、対戦相手との勝敗が表示される。その後、結果表示画面でプレイヤーの対戦結果が数値で表示される。また、直近数百プレイのプレイデータとして用いるために、スコアに関わらず、1プレイ毎にプレイヤーのプレイデータをサーバに送信する。
【0072】
例えば、ゲーム装置3は、プレイデータとして、プレイヤーの操作入力に基づくキーデータ(操作入力情報)を記憶しておき、ゲーム終了時にキーデータをサーバに送信して記憶させる。対戦を行うプレイヤーのゲーム装置3は、サーバに記憶された対戦相手のキーデータを読み込んで対戦相手の操作入力として使用し、ゲームの進行に合わせて対戦相手のスコアを計算する。なお、他のゲーム装置3とは、例えばP2P通信などで接続し、互いのキーデータを送受信することで、リアルタイムに対戦してもよい。
【0073】
以上説明したように、本実施の形態によれば、ライン51A,51Bの先端が衝突するタイミングで衝突した位置をタップするタイミングゲームにおいて、ライン51A,51Bに対応して表示される、ライン51A,51Bの先端が互いに近接する予兆を示す予兆画像52A〜52Cを表示することで、プレイヤーは、予兆画像52A〜52Cによりライン51A,51Bの先端の衝突位置、衝突タイミングを推測できるので、ライン51A,51Bを高速に移動させてゲームにスピード感を出すことができる。また、予兆画像52A〜52Cによりゲーム画面をダイナミックに変化させることができる。