ゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム制御方法
【構成】 ゲーム装置12は、CPU40を含み、CPU40は、BGMデータに従ってBGMを再生する。所定のタイミングで、ボールオブジェクト(110)やアイテムオブジェクト(112)が発射され、着弾点において、プレイヤオブジェクト(102)がボールオブジェクトを捕球ないしレシーブすると、BGMの主旋律の一部のメロディ音が出力される。各プレイヤオブジェクトが、自身に割り当てられた色と同じ色のボールオブジェクトを捕球ないしレシーブした場合には、正しいメロディ音が出力されるが、異なる色のボールオブジェクトを捕球ないしレシーブした場合には、音程の違ったメロディ音が出力される。また、ボールオブジェクトを捕球ないしレシーブできない場合には、メロディ音は出力されない。
【効果】 新しいプレイ感覚のリズムゲームを提供することができる。
【効果】 新しいプレイ感覚のリズムゲームを提供することができる。
【発明の詳細な説明】
【技術分野】
【0001】
この発明はゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム制御方法に関し、特にたとえば、リズムゲームを行う、ゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム制御方法に関する。
【背景技術】
【0002】
この種のゲーム装置の一例が特許文献1に開示されている。この特許文献1のゲーム装置では、プレイヤが音楽を演奏するために必要な操作スイッチの操作情報(タイミングおよび種類)が表示部の画面上に表示される。プレイヤがその表示に合わせて適切に操作スイッチを順次操作することによって、正確な音楽が演奏される。
【特許文献1】特許第3392120号[A63F 13/00,A63F 13/10]
【発明の概要】
【発明が解決しようとする課題】
【0003】
しかし、特許文献1に開示されたゲーム装置では、表示部に表示された操作情報に従ってタイミング良く操作スイッチを操作するだけなので、操作が単調であった。また、別のゲーム要素を加えることも困難であった。
【0004】
それゆえに、この発明の主たる目的は、新規なリズムゲームを提供できる、ゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム制御方法を提供することである。
【課題を解決するための手段】
【0005】
第1の発明は、音楽に合わせて設定されたタイミングデータを記憶するタイミングデータ記憶部を備え、リズムゲームを行うゲーム装置のゲームプログラムであって、ゲーム装置のコンピュータを、プレイヤオブジェクト制御部と、オブジェクト移動部と、判定部と、音制御部として機能させる。プレイヤオブジェクト制御部は、プレイヤの操作に基づいて、ゲーム空間内においてプレイヤオブジェクトを移動させる。オブジェクト移動部は、判定用オブジェクトの到達位置を設定し、タイミングデータが示すタイミングで当該到達位置に到達するように、当該判定用オブジェクトを移動させる。判定部は、タイミングを含む所定期間にプレイヤオブジェクトが到達位置から第1所定範囲内に位置するか否かに基づいて、成功判定を行う。音制御部は、判定部における判定結果に基づいて、音出力を制御する。
【0006】
第1の発明によれば、タイミングデータが示すタイミングで到達位置に到達するように判定オブジェクトを移動させ、判定オブジェクトの到達位置から所定範囲内にプレイヤオブジェクトが存在するかどうかで音出力を制御するので、単にタイミングを合わせて操作スイッチを操作するだけのリズムゲームとは異なり、新しい感覚のリズムゲームを提供することができる。
【0007】
第2の発明は、第1の発明に従属し、オブジェクト移動部は、プレイヤオブジェクトの位置から第2所定範囲の位置に判定用オブジェクトが到達するように到達位置を設定する。
【0008】
第2の発明によれば、判定用オブジェクトの到達位置をプレイヤオブジェクトの位置から所定範囲の位置に設定するので、到達位置を簡単に決定することができる。また、所定範囲をプレイヤオブジェクトの移動可能な距離で設定しておけば、プレイヤオブジェクトが到達し得ないような位置を判定用オブジェクトの到達位置に設定するような不都合は生じない。
【0009】
第3の発明は、第1の発明に従属し、オブジェクト移動部は、プレイヤオブジェクトの位置から所定距離の位置に判定用オブジェクトが到達するように到達位置を設定する。
【0010】
第3の発明によれば、判定用オブジェクトをプレイヤオブジェクトの位置から所定距離離れた位置に到達させるので、第2の発明と同様に、到達位置を簡単に決定することができる。また、プレイヤオブジェクトの近傍に到達位置が設定されることが無いため、何らプレイヤオブジェクトを操作せずに、良い判定結果が得られるような不都合が生じない。
【0011】
第4の発明は、第1の発明に従属し、プレイヤオブジェクト制御部は、操作装置に対する方向入力操作に基づいてプレイヤオブジェクトを移動させる。また、判定部は、タイミングまでにプレイヤオブジェクトが到達位置から第1所定範囲を含む第3所定範囲内に移動し、かつ所定期間に操作装置の振り操作が行われたか否かによって成功判定を行う。
【0012】
第4の発明によれば、所定期間に操作装置の振り操作が行われた場合には、第1所定範囲を含む第3所定範囲のような広い範囲で成功判定が行われるため、単にプレイヤオブジェクトを移動させるだけではないため、操作が単調になることがない。
【0013】
第5の発明は、第1の発明に従属し、プレイヤオブジェクト制御部は、操作装置に対する方向入力操作に基づいてプレイヤオブジェクトを移動させる。判定部は、タイミングまでにプレイヤオブジェクトが到達位置から第1所定範囲を含む第3所定範囲内に移動し、かつ所定期間に操作装置に対する所定のキー操作が行われた否かによって成功判定を行う。
【0014】
第5の発明においても、第4の発明と同様に、操作が単調になることがなく、ゲームへの興味が減退するのを防止することができる。
【0015】
第6の発明は、第1の発明に従属し、音制御部は、判定部において成功と判定されたとき、成功を示す効果音を出力させ、失敗と判定されたとき、失敗を示す効果音を出力させる。
【0016】
第6の発明によれば、成功した場合と失敗した場合とで異なる効果音を出力させるので、たとえば、成功した場合には、音楽に合わせた効果音を出力することにより、プレイヤに爽快感を与えることができ、失敗した場合には、不協和音のような不快な効果音を出力することにより、成功する意欲をもたらすことができる。
【0017】
第7の発明は、第1の発明に従属し、音制御部は、タイミングデータに関連する音楽をBGMとして出力し、判定部において成功と判定されたとき、BGMの音量およびパートの少なくとも一方を増加させ、失敗と判定されたとき、BGMの音量およびパートの少なくとも一方を減少させる。
【0018】
第7の発明によれば、成功が判定されるとBGMの豪華さを増大させることができ、失敗が判定されるとBGMの豪華さを減少させることができる。
【0019】
第8の発明は、第2または第3の発明に従属し、プレイヤオブジェクト制御部は、複数のプレイヤオブジェクトの各々を、複数のプレイヤのそれぞれの操作に従って移動させる。また、オブジェクト移動部は、複数のプレイヤオブジェクトのいずれかの位置に基づいて判定用オブジェクトの到達位置を設定する。
【0020】
第8の発明によれば、複数のプレイヤオブジェクトが存在する場合には、そのいずれかの位置に基づいて判定用オブジェクトの到達位置を設定するので、到達位置の設定が簡単である。また、複数のプレイヤで協力したプレイが可能である。
【0021】
第9の発明は、第8の発明に従属し、判定用オブジェクトは、対応するプレイヤオブジェクトを識別可能な外観を有している。また、オブジェクト移動部は、対応するプレイヤオブジェクトの位置に基づいて到達位置を決定する。
【0022】
第9の発明によれば、プレイヤオブジェクトを識別可能な外観の判定用オブジェクトを設けるので、プレイヤは自身のプレイヤオブジェクトに対応する判定用オブジェクトを容易に知ることができる。また、複数のプレイヤオブジェクトが存在する場合であっても、判定用オブジェクトの到達位置を簡単に設定することができる。
【0023】
第10の発明は、第9の発明に従属し、到達位置に、第1所定範囲を示す指標を対応するプレイヤオブジェクトを識別可能に表示させるマーカ表示部として、コンピュータをさらに機能させる。
【0024】
第10の発明によれば、判定用オブジェクトの到達位置に、第1所定範囲を示す指標を表示させるので、当該指標を見てプレイヤオブジェクトを移動させればよく、操作が比較的簡単である。
【0025】
第11の発明は、第1または第8の発明に従属し、ゲームプログラムは、コンピュータを、配置部とアイテム処理部としてさらに機能させる。配置部は、ゲーム空間に判定用オブジェクト以外のアイテムオブジェクトを配置する。アイテム処理部は、プレイヤオブジェクトがアイテムオブジェクトに接触したか否かに応じてプレイヤオブジェクトに所定の効果を与える。
【0026】
第11の発明によれば、アイテムを配置し、これにプレイヤオブジェクトが接触した場合には、所定の効果を与えるので、リズムゲームに他のゲーム要素を加えることができる。したがって、ゲームの面白味を増大させることができる。
【0027】
第12の発明は、リズムゲームを行うゲーム装置であって、タイミングデータ記憶部と、プレイヤオブジェクト制御部と、オブジェクト移動部と、判定部と、音制御部を備える。タイミングデータ記憶部は、音楽に合わせて設定されたタイミングデータを記憶する。プレイヤオブジェクト制御部は、プレイヤの操作に基づいて、ゲーム空間内においてプレイヤオブジェクトを移動させる。オブジェクト移動部は、判定用オブジェクトの到達位置を設定し、タイミングデータが示すタイミングで当該到達位置に到達するように、当該判定用オブジェクトを移動させる。判定部は、タイミングを含む所定期間にプレイヤオブジェクトが到達位置から第1所定範囲内に位置するか否かに基づいて、成功判定を行う。音制御部は、判定部における判定結果に基づいて、音出力を制御する。
【0028】
第13の発明は、リズムゲームを行うゲームシステムであって、タイミングデータ記憶部と、プレイヤオブジェクト制御部と、オブジェクト移動部と、判定部と、音制御部を備える。タイミングデータ記憶部は、音楽に合わせて設定されたタイミングデータを記憶する。プレイヤオブジェクト制御部は、プレイヤの操作に基づいて、ゲーム空間内においてプレイヤオブジェクトを移動させる。オブジェクト移動部は、判定用オブジェクトの到達位置を設定し、タイミングデータが示すタイミングで当該到達位置に到達するように、当該判定用オブジェクトを移動させる。判定部は、タイミングを含む所定期間にプレイヤオブジェクトが到達位置から第1所定範囲内に位置するか否かに基づいて、成功判定を行う。音制御部は、判定部における判定結果に基づいて、音出力を制御する。
【0029】
第14の発明は、音楽に合わせて設定されたタイミングデータを記憶するタイミングデータ記憶部を備え、リズムゲームを行うゲーム装置のゲーム制御方法であって、(a)プレイヤの操作に基づいて、ゲーム空間内においてプレイヤオブジェクトを移動させ、(b)判定用オブジェクトの到達位置を設定し、タイミングデータが示すタイミングで当該到達位置に到達するように、当該判定用オブジェクトを移動させ、(c)タイミングを含む所定期間にプレイヤオブジェクトが到達位置から第1所定範囲内に位置するか否かに基づいて、成功判定を行い、(d)ステップ(c)における判定結果に基づいて、音出力を制御する。
【0030】
第12−第14の発明においても、第1の発明と同様に、新しい感覚のリズムゲームを提供することができる。
【発明の効果】
【0031】
この発明によれば、タイミングデータが示すタイミングで到達位置に到達するように判定オブジェクトを移動させ、判定オブジェクトの到達位置から所定範囲内にプレイヤオブジェクトが存在するかどうかで音出力を制御するので、単にタイミングを合わせて操作スイッチを操作するだけのリズムゲームとは異なり、新しい感覚のリズムゲームを提供することができる。
【0032】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【0033】
【図1】図1はこの発明のゲームシステムの一実施例を示す図解図である。
【図2】図2はゲームシステムの電気的な構成を示すブロック図である。
【図3】図3は第1コントローラの外観を説明するための図解図である。
【図4】図4は第2コントローラの外観を説明するための図解図である。
【図5】図5はコントローラ(第1コントローラおよび第2コントローラを互いに接続したもの)の電気的な構成を示すブロック図である。
【図6】図6はコントローラを用いて仮想ゲームをプレイするときの状態を概説するための図解図である。
【図7】図7はマーカおよびコントローラの視野角を説明するための図解図である。
【図8】図8はコントローラによる撮像画像の一例を示す図解図である。
【図9】図9は図1のモニタに表示されるゲーム画面の一例を図解図である。
【図10】図10は図9に示すゲーム画面に表示されるボールオブジェクトおよびアイテムオブジェクトを示す図解図である。
【図11】図11はプレイヤオブジェクトがボールオブジェクトを捕球ないしレシーブしたと判定される範囲を示す図解図である。
【図12】図12はBGMの変化テーブルの一例を示す図解図である。
【図13】図13はBGMに対応して設定される配球情報の例を示す図解図である。
【図14】図14は発射タイミングテーブルの例を示す図解図である。
【図15】図15はボールオブジェクトおよびアイテムオブジェクトの着弾点および移動方向の決定方法を示す図解図である。
【図16】図16は図2に示すメインメモリのメモリマップを示す図解図である。
【図17】図17は図16に示すメインメモリのデータ記憶領域の具体的な内容を示す図解図である。
【図18】図18は図2に示すCPUのゲーム全体処理の第1の一部を示すフロー図である。
【図19】図19は図2に示すCPUのゲーム全体処理の第2の一部であって、図18に後続するフロー図である。
【図20】図20は図2に示すCPUのゲーム全体処理の第3の一部であって、図19に後続するフロー図である。
【図21】図21は図2に示すCPUのゲーム全体処理の第4の一部であって、図20に後続するフロー図である。
【図22】図22は図2に示すCPUのゲーム全体処理の第5の一部であって、図21に後続するフロー図である。
【図23】図23は図2に示すCPUのオブジェクトの移動および判定処理(ボールオブジェクト)の一部を示すフロー図である。
【図24】図24は図2に示すCPUのオブジェクトの移動および判定処理(ボールオブジェクト)の他の一部であって、図23に後続するフロー図である。
【図25】図25は図2に示すCPUのオブジェクトの移動および判定処理(ボールオブジェクト)のその他の一部であって、図23に後続するフロー図である。
【図26】図26は図2に示すCPUのオブジェクトの移動および判定処理(アイテムオブジェクト)の一部を示すフロー図である。
【図27】図27は図2に示すCPUのオブジェクトの移動および判定処理(アイテムオブジェクト)の他の一部であって、図26に後続するフロー図である。
【図28】図28は図2に示すCPUのプレイヤオブジェクト制御処理の一部を示すフロー図である。
【図29】図29は図2に示すCPUのプレイヤオブジェクト制御処理の他の一部であって、図28に後続するフロー図である。
【発明を実施するための形態】
【0034】
図1を参照して、この発明の一実施例であるゲームシステム10は、ゲーム装置12およびコントローラ14を含む。図示は省略するが、この実施例のゲーム装置12は、最大4つのコントローラ14と通信可能に設計されている。また、ゲーム装置12と各コントローラ14とは、無線によって接続される。たとえば、無線通信は、Bluetooth(登録商標)規格に従って実行されるが、赤外線や無線LANなど他の規格に従って実行されてもよい。さらには、有線で接続されてもよい。
【0035】
ゲーム装置12は、略直方体のハウジング16を含み、ハウジング16の前面にはディスクスロット18が設けられる。ディスクスロット18から、ゲームプログラム等を記憶した情報記憶媒体の一例である光ディスク24が挿入されて、ハウジング16内のディスクドライブ54(図2参照)に装着される。図示は省略するが、ディスクスロット18の周囲には、LEDと導光板とが配置され、様々な処理に応答させて、ディスクスロット18を点灯または点滅させることが可能である。
【0036】
また、ゲーム装置12のハウジング16の前面の上部には、電源ボタン20aおよびリセットボタン20bが設けられ、その下部には、イジェクトボタン20cが設けられる。さらに、リセットボタン20bとイジェクトボタン20cとの間であり、ディスクスロット18の近傍には、外部メモリカード用コネクタカバー22が設けられる。この外部メモリカード用コネクタカバー22の内側には、外部メモリカード用コネクタ62(図2参照)が設けられ、外部メモリカード38(以下、単に「メモリカード38」という。)が挿入される。メモリカード38は、光ディスク24から読み出したゲームプログラム等をローディングして一時的に記憶したり、このゲームシステム10を利用してプレイしたゲームのゲームデータ(ゲームの結果データまたは途中データ、あるいは後述するリプレイデータ)を保存(セーブ)しておいたりするために利用される。ただし、上記のゲームデータの保存は、メモリカード38に対して行うことに代えて、たとえばゲーム装置12の内部に設けられるフラッシュメモリ44(図2参照)のような内部メモリに対して行うようにしてもよい。また、メモリカード38は、内部メモリのバックアップメモリとして用いるようにしてもよい。さらに、ゲーム装置12では、ゲーム以外の他のアプリケーションを実行することも可能であり、かかる場合には、メモリカード38には当該他のアプリケーションのデータを保存することができる。
【0037】
なお、メモリカード38としては、汎用のSDカードを用いることができるが、メモリスティックやマルチメディアカード(登録商標)のような他の汎用のメモリカードを用いることもできる。メモリカード38は、ゲーム装置12と同様の構成を有する他のゲーム装置でも利用することができるので、ゲームデータをメモリカード38を介して他のプレイヤに提供することもできる。
【0038】
図1では省略するが、ゲーム装置12のハウジング16の後面には、AVコネクタ58(図2参照)が設けられ、そのAVコネクタ58を用いて、AVケーブル26を通してゲーム装置12にモニタ28およびスピーカ30を接続する。このモニタ28およびスピーカ30は典型的にはカラーテレビジョン受像機であり、AVケーブル26によって、ゲーム装置12からの映像信号がカラーテレビのビデオ入力端子に入力され、ゲーム装置12からの音声信号が音声入力端子に入力される。したがって、カラーテレビ(モニタ)28の画面上にたとえば3次元(3D)ビデオゲームの仮想3次元ゲーム画像が表示され、左右のスピーカ30からゲーム音楽や効果音などのステレオゲーム音声が出力される。また、モニタ28の周辺(この実施例では、モニタ28の上側)には、2つの赤外LED(マーカ)32aおよび32bを備えるマーカ部32が設けられる。このマーカ部32は、電源線32cを通してゲーム装置12に接続される。したがって、マーカ部32には、ゲーム装置12から電源が供給される。これによって、マーカ32aおよび32bは発光し、それぞれモニタ28の前方に向けて赤外光を出力する。
【0039】
なお、ゲーム装置12の電源は、一般的なACアダプタ(図示せず)によって与えられる。ACアダプタは家庭用の標準的な壁ソケットに差し込まれ、ゲーム装置12は、家庭用電源(商用電源)を、駆動に適した低いDC電圧信号に変換する。他の実施例では、電源としてバッテリが用いられてもよい。
【0040】
コントローラ14は、詳細は後述されるが、第1の操作ユニットおよび第2の操作ユニットとして、それぞれが片手で把持可能な第1コントローラ34および第2コントローラ36を含む。第2コントローラ36の後端から延びるケーブル36aの先端にはコネクタ36bが設けられており、当該コネクタ36bは、第1コントローラ34の後端面に設けられるコネクタ34a(図3、図5)に接続される。第2コントローラ36において取得される入力データは、ケーブル36aを介して第1コントローラ34に与えられる。第1コントローラ34は、第1コントローラ34自身の入力データと第2コントローラ36の入力データとを含むコントローラデータをゲーム装置12に送信する。
【0041】
このゲームシステム10において、ユーザまたはプレイヤがゲーム(またはゲームに限らず、他のアプリケーション)をプレイするために、ユーザは電源スイッチ20aによってまずゲーム装置12の電源をオンし、次いで、ユーザはビデオゲーム(もしくはプレイしたいと思う他のアプリケーション)のプログラムを記録している適宜の光ディスク24を選択し、その光ディスク24をゲーム装置12のディスクドライブ54にローディングする。応じて、ゲーム装置12がその光ディスク24に記録されているプログラムに基づいてビデオゲームもしくは他のアプリケーションを実行し始める。ユーザはゲーム装置12に入力を与えるためにコントローラ14を操作する。たとえば操作部82のどれかの操作ボタンを操作することによって、ゲームもしくは他のアプリケーションをスタートさせる。また、操作部82に対する操作以外にも、コントローラ14自体を動かすことによって、動画オブジェクト(プレイヤオブジェクト)を異なる方向に移動させ、または3Dのゲーム世界におけるユーザの視点(仮想カメラの位置)を変化させることができる。
【0042】
ただし、ビデオゲームや他のアプリケーションのプログラムは、ゲーム装置12の内部メモリ(フラッシュメモリ44(図2参照))に記憶(インストール)しておき、当該内部メモリから実行するようにしてもよい。かかる場合には,光ディスク24のような記憶媒体に記憶されたプログラムを内部メモリにインストールしてもよいし、ダウンロードされたプログラムを内部メモリにインストールしてもよい。
【0043】
図2は図1実施例のゲームシステム10の電気的な構成を示すブロック図である。図示は省略するが、ハウジング16内の各コンポーネントは、プリント基板に実装される。図2に示すように、ゲーム装置12には、CPU40が設けられ、ゲームプロセッサとして機能する。また、CPU40には、システムLSI42が接続される。このシステムLSI42には、外部メインメモリ46、ROM/RTC48、ディスクドライブ54およびAV IC56が接続される。
【0044】
外部メインメモリ46は、ゲームプログラム等のプログラムを記憶したり、各種データを記憶したりして、CPU40のワーク領域やバッファ領域として用いられる。ROM/RTC48は、いわゆるブートROMであり、ゲーム装置12の起動用のプログラムが組み込まれるとともに、時間をカウントする時計回路が設けられる。ディスクドライブ54は、光ディスク24からプログラムやテクスチャデータ等を読み出し、CPU40の制御の下で、後述する内部メインメモリ42eまたは外部メインメモリ46に書き込む。
【0045】
システムLSI42には、入出力プロセッサ42a、GPU(Graphics Processor Unit)42b,DSP(Digital Signal Processor)42c,VRAM42dおよび内部メインメモリ42eが設けられ、図示は省略するが、これらは内部バスによって互いに接続される。入出力プロセッサ(I/Oプロセッサ)42aは、データの送受信を実行したり、データのダウンロードを実行したりする。GPU42bは、描画手段の一部を形成し、CPU40からのグラフィクスコマンド(作画命令)を受け、そのコマンドに従ってゲーム画像データを生成する。ただし、CPU40は、グラフィクスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラムをGPU42bに与える。
【0046】
図示は省略するが、上述したように、GPU42bにはVRAM42dが接続される。GPU42bが作画命令を実行するにあたって必要なデータ(画像データ:ポリゴンデータやテクスチャデータなどのデータ)は、GPU42bがVRAM42dにアクセスして取得する。ただし、CPU40は、描画に必要な画像データを、GPU42bを介してVRAM42dに書き込む。GPU42bは、VRAM42dにアクセスして描画のためのゲーム画像データを作成する。
【0047】
なお、この実施例では、GPU42bがゲーム画像データを生成する場合について説明するが、ゲームアプリケーション以外の任意のアプリケーションを実行する場合には、GPU42bは当該任意のアプリケーションについての画像データを生成する。
【0048】
また、DSP42cは、オーディオプロセッサとして機能し、内部メインメモリ42eや外部メインメモリ46に記憶されるサウンドデータや音波形(音色)データを用いて、スピーカ30から出力する音(効果音)、音声或いは音楽(BGM)に対応するオーディオデータを生成する。
【0049】
上述のように生成されたゲーム画像データおよびオーディオデータは、AV IC56によって読み出され、AVコネクタ58を介してモニタ28およびスピーカ30に出力される。したがって、ゲーム画面がモニタ28に表示され、ゲームに必要な音(音楽)がスピーカ30から出力される。
【0050】
また、入出力プロセッサ42aには、フラッシュメモリ44、無線通信モジュール50および無線コントローラモジュール52が接続されるとともに、拡張コネクタ60およびメモリカード用コネクタ62が接続される。また、無線通信モジュール50にはアンテナ50aが接続され、無線コントローラモジュール52にはアンテナ52aが接続される。
【0051】
入出力プロセッサ42aは、無線通信モジュール50を介して、図示は省略するが、ネットワークに接続された他のゲーム装置やサーバと通信することができる。ただし、ネットワークを介さずに、直接的に他のゲーム装置と通信することもできる。入出力プロセッサ42aは、定期的にフラッシュメモリ44にアクセスし、ネットワークへ送信する必要があるデータ(「送信データ」とする)の有無を検出し、当該送信データが有る場合には、無線通信モジュール50およびアンテナ50aを介してネットワークに送信する。また、入出力プロセッサ42aは、他のゲーム装置から送信されるデータ(「受信データ」とする)を、ネットワーク、アンテナ50aおよび無線通信モジュール50を介して受信し、当該受信データをフラッシュメモリ44に記憶する。ただし、受信データが一定の条件を満たさない場合には、当該受信データはそのまま破棄される。さらに、入出力プロセッサ42aは、ネットワークに接続されたサーバからダウンロードしたデータ(ダウンロードデータとする)をネットワーク、アンテナ50aおよび無線通信モジュール50を介して受信し、そのダウンロードデータをフラッシュメモリ44に記憶することもできる。
【0052】
また、入出力プロセッサ42aは、コントローラ14から送信される入力データをアンテナ52aおよび無線コントローラモジュール52を介して受信し、内部メインメモリ42eまたは外部メインメモリ46のバッファ領域に記憶(一時記憶)する。入力データは、CPU40の処理(たとえば、ゲーム処理)によって利用された後、バッファ領域から消去される。
【0053】
さらに、入出力プロセッサ42aには、拡張コネクタ60およびメモリカード用コネクタ62が接続される。拡張コネクタ60は、USBやSCSIのようなインタフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、コントローラ14とは異なる他のコントローラのような周辺機器を接続したりすることができる。また、拡張コネクタ60に有線LANアダプタを接続し、無線通信モジュール50に代えて当該有線LANを利用することもできる。メモリカード用コネクタ62には、メモリカード38のような外部記憶媒体を接続することができる。したがって、たとえば、入出力プロセッサ42aは、拡張コネクタ60やメモリカード用コネクタ62を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
【0054】
詳細な説明は省略するが、図1にも示したように、ゲーム装置12(ハウジング16)には、電源ボタン20a,リセットボタン20bおよびイジェクトボタン20cが設けられる。電源ボタン20aは、システムLSI42に接続される。この電源ボタン20aがオンされると、システムLSI42には、ゲーム装置12の各コンポーネントに図示しないACアダプタを経て電源が供給され、通常の通電状態となるモード(「通常モード」と呼ぶこととする)が設定される。一方、電源ボタン20aがオフされると、システムLSI42には、ゲーム装置12の一部のコンポーネントのみに電源が供給され、消費電力を必要最低限に抑えるモード(以下、「スタンバイモード」という)が設定される。
【0055】
この実施例では、スタンバイモードが設定された場合には、システムLSI42は、入出力プロセッサ42a、フラッシュメモリ44、外部メインメモリ46、ROM/RTC48および無線通信モジュール50、無線コントローラモジュール52以外のコンポーネントに対して、電源供給を停止する指示を行う。したがって、この実施例では、スタンバイモードにおいて、CPU40がアプリケーションを実行することはない。
【0056】
リセットボタン20bもまた、システムLSI42に接続される。リセットボタン20bが押されると、システムLSI42は、ゲーム装置12の起動プログラムを再起動する。イジェクトボタン20cは、ディスクドライブ54に接続される。イジェクトボタン20cが押されると、ディスクドライブ54から光ディスク24が排出される。
【0057】
図3には第1コントローラ34の外観の一例が示される。図3(A)は、第1コントローラ34を上面後方から見た斜視図であり、図3(B)は、第1コントローラ34を下面前方から見た斜視図である。第1コントローラ34は、たとえばプラスチック成型によって形成されたハウジング80を有している。ハウジング80は、その前後方向(図3に示すZ軸方向)を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。一例として、ハウジング80は人間の掌とほぼ同じ長さまたは幅を持つ大きさをしている。プレイヤは、第1コントローラ34を用いて、それに設けられたボタンを押下することと、第1コントローラ34自体を動かしてその位置や向きを変えることとによって、ゲーム操作を行うことができる。
【0058】
ハウジング80には、複数の操作ボタン(操作キー)が設けられる。すなわち、ハウジング80の上面には、十字キー82a、1ボタン82b、2ボタン82c、Aボタン82d、−ボタン82e、メニューボタン82f、および+ボタン82gが設けられる。一方、ハウジング80の下面には凹部が形成されており、当該凹部の後方側傾斜面にはBボタン82hが設けられる。これら各ボタン(スイッチ)82a−82hには、ゲーム装置12が実行するゲームプログラムに応じてそれぞれ適宜な機能が割り当てられる。また、ハウジング80の上面には、遠隔からゲーム装置12本体の電源をオン/オフするための電源スイッチ82iが設けられる。第1コントローラ34に設けられる各ボタン(スイッチ)は、包括的に参照符号82を用いて示されることもある。
【0059】
また、ハウジング80の後面には、上述のコネクタ34aが設けられている。コネクタ34aは、たとえば32ピンのエッジコネクタであり、第1コントローラ34に他の機器を接続するために利用される。この実施例では、コネクタ34aには第2コントローラ36のコネクタ36bが接続される。また、ハウジング80上面の後端側には複数のLED84が設けられ、この複数のLED84によって当該コントローラ14のコントローラ番号(コントローラの識別番号)が示される。ゲーム装置12には、たとえば最大4つのコントローラ14が接続可能であり、ゲーム装置12に複数のコントローラ14が接続される場合には、各コントローラ14には、たとえば接続順にコントローラ番号が付与される。各LED84はコントローラ番号と対応付けられており、当該コントローラ番号に対応するLED84が点灯される。
【0060】
また、第1コントローラ34のハウジング80内には加速度センサ86(図5)が設けられている。加速度センサ86としては、典型的には静電容量式の加速度センサが用いられ得る。加速度センサ86は、当該加速度センサの検出部に加わっている加速度のうち、センシング軸ごとの直線成分の加速度や重力加速度を検出する。具体的には、この実施例では、3軸加速度センサが適用され、第1コントローラ34の上下方向(図3に示すY軸方向)、左右方向(図3に示すX軸方向)および前後方向(図3に示すZ軸方向)の3軸方向のそれぞれで加速度を検知する。
【0061】
なお、加速度センサ86としては、ハウジング80の形状または第1コントローラ34の持たせ方の限定等に応じて、上下方向、左右方向および前後方向のうちいずれか2方向の加速度を検出する2軸加速度センサが用いられてもよい。場合によっては1軸加速度センサが用いられてもよい。
【0062】
さらに、コントローラ22は、撮像情報演算部88(図5参照)を有している。図3(B)に示すように、ハウジング80の先端面には撮像情報演算部88の光入射口90が設けられ、光入射口90からはセンサバー44のマーカ44m、44nの発する赤外線が取り込まれる。
【0063】
図4には第2コントローラ36の外観の一例が示される。図4(A)は、第2コントローラ36を上面後方から見た斜視図であり、図4(B)は、第2コントローラ36を下面前方から見た斜視図である。なお、図4では、第2コントローラ36のケーブル36aは省略されている。
【0064】
第2コントローラ36は、たとえばプラスチック成型によって形成されたハウジング92を有している。ハウジング92は、平面視では、前後方向(図4のZ軸方向)に略細長い楕円形状を有し、後端側の左右方向(図4のX軸方向)の幅が先端側のそれよりも狭くされている。また、ハウジング92は、側面視では、全体として湾曲した形状を有しており、先端側の水平部分から後端側に向かって下がるように湾曲している。ハウジング92は、第1コントローラ34と同様に、全体として大人や子供の片手で把持可能な大きさであるが、長手方向(Z軸方向)の長さは、第1コントローラ34のハウジング80よりもやや短くされている。この第2コントローラ36でも、プレイヤは、ボタンやスティックを操作することと、コントローラ自体を動かしてその位置や向きを変えることとによって、ゲーム操作を行うことができる。
【0065】
ハウジング92の上面の先端側には、アナログジョイスティック94aが設けられる。ハウジング92の先端には、後方にやや傾斜する先端面が設けられており、この先端面には、上下方向(図4に示すY軸方向)に並べて、Cボタン94bおよびZボタン94cが設けられる。アナログジョイスティック94aおよび各ボタン94b,94cには、ゲーム装置12が実行するゲームプログラムに応じてそれぞれ適宜な機能が割り当てられる。第2コントローラ36に設けられるアナログジョイスティック94aおよび各ボタン94b,94cは、包括的に参照符号94を用いて示されることもある。
【0066】
また、第2コントローラ36のハウジング92内には加速度センサ96(図5)が設けられている。この加速度センサ96としては、第1コントローラ34の加速度センサ86と同様の加速度センサが適用される。具体的には、この実施例では3軸加速度センサが適用され、第2コントローラ36の上下方向(図4に示すY軸方向)、左右方向(図4に示すX軸方向)および前後方向(図4に示すZ軸方向)の3軸方向のそれぞれで加速度を検知する。
【0067】
なお、図3に示した第1コントローラ34および図4に示した第2コントローラ36の形状や、ボタン(スイッチまたはスティック等)の形状、数および設置位置等は一例であり、他の形状、数および設置位置等に適宜変更され得る。
【0068】
また、コントローラ14の電源は、第1コントローラ34内に取替可能に収容されるバッテリ(図示せず)によって与えられる。第2コントローラ36には、コネクタ34a、コネクタ36bおよびケーブル36aを介してこの電源が供給される。
【0069】
図5には、第1コントローラ34と第2コントローラ36とが接続されたときのコントローラ14の電気的構成の一例が示される。第1コントローラ34は、その内部に通信部98を備え、通信部98には、操作部82、加速度センサ86、撮像情報演算部88およびコネクタ34aが接続される。操作部82は、上述の操作ボタンないし操作スイッチ82a‐82iを示す。操作部82が操作されると、その操作信号(キー情報)が通信部98に与えられる。加速度センサ86が検出した加速度を示すデータは、通信部98へ出力される。加速度センサ86は、たとえば最大200フレーム/秒程度のサンプリング周期を有する。ただし、フレームは、画面更新単位時間(1/60秒)である。
【0070】
撮像情報演算部88が取得したデータもまた通信部98に出力される。撮像情報演算部88は、赤外線フィルタ100、レンズ102、撮像素子104および画像処理回路106によって構成される。赤外線フィルタ100は、第1コントローラ34の前方の光入射口90から入射する光から赤外線のみを通過させる。上述したように、モニタ30の表示面近傍(周辺)に配置されるセンサバー44のマーカ44mおよび44nは、モニタ30の前方に向かって赤外光を出力する赤外LEDである。したがって、赤外線フィルタ100を設けることによってマーカ44mおよび44nの画像をより正確に撮像することができる。レンズ102は、赤外線フィルタ100を透過した赤外線を集光して撮像素子104へ出射する。撮像素子104は、たとえばCMOSセンサあるいはCCDのような固体撮像素子であり、レンズ102によって集光された赤外線を撮像する。したがって、撮像素子104は、赤外線フィルタ100を通過した赤外線だけを撮像して画像データを生成する。以下では、撮像素子104によって撮像された画像を撮像画像と呼ぶ。撮像素子104によって生成された画像データは、画像処理回路106で処理される。画像処理回路106は、撮像画像内における撮像対象(マーカ44mおよび44n)の位置を算出し、所定時間(たとえば1フレーム)毎に、当該位置を示す各座標値を含むマーカ座標データを通信部98に出力する。なお、画像処理回路106における処理については後述する。
【0071】
コネクタ34aには、第2コントローラ36から延びるケーブル36aのコネクタ36bが接続される。コネクタ36bには、第2コントローラ36の操作部94および加速度センサ96が接続される。操作部94は、上述のアナログジョイスティック94aおよび操作ボタン94b、94cを示す。操作部94が操作されると、その操作信号がケーブル36a、コネクタ36bおよびコネクタ34a等を介して通信部98に与えられる。また、加速度センサ96も、加速度センサ86と同様のサンプリング周期を有しており、検出された加速度を示すデータを通信部98に与える。
【0072】
通信部98は、マイクロコンピュータ(マイコン)108、メモリ110、無線モジュール78およびアンテナ112を含む。マイコン108は、処理の際にメモリ110を記憶領域(作業領域やバッファ領域)として用いながら、無線モジュール78を制御して、取得したデータをゲーム装置12に送信したりゲーム装置12からのデータを受信したりする。
【0073】
第1コントローラ34の操作部82、加速度センサ86および撮像情報演算部88ならびに第2コントローラ36の操作部94および加速度センサ96からマイコン108へ出力されたデータは、一時的にメモリ110に格納される。通信部98からゲーム装置12のBluetooth通信ユニット76への無線送信は所定の周期毎に行われる。なお、ゲームの処理は1/60秒を単位として行われることが一般的であるので、第1コントローラ34からの送信はそれと同等かそれより短い周期で行うことが必要となる。マイコン108は、ゲーム装置12への送信タイミングが到来すると、メモリ110に格納されている操作部82および94の操作データ、加速度センサ86および96の加速度データならびに撮像情報演算部88のマーカ座標データを含むデータを、コントローラデータとして無線モジュール78へ出力する。無線モジュール78は、Bluetoothのような近距離無線通信技術を用いて、所定周波数の搬送波をコントローラデータで変調し、その微弱電波信号をアンテナ112から放射する。つまり、コントローラデータは、無線モジュール78で微弱電波信号に変調されて第1コントローラ34から送信される。微弱電波信号はゲーム装置12側のBluetooth通信ユニット76で受信される。受信された微弱電波信号について復調や復号を行うことによって、ゲーム装置12はコントローラデータを取得することができる。ゲーム装置12のCPU46は、コントローラ14から取得したコントローラデータに基づいてゲーム処理を行う。
【0074】
なお、加速度センサ86および96から出力される加速度の信号に基づいて、ゲーム装置12のプロセッサ(例えばCPU46)またはコントローラ14のプロセッサ(例えばマイコン108)などのコンピュータが処理を行うことによって、コントローラ14に関するさらなる情報を推測または算出(判定)することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。例えば、加速度センサ86および96を搭載する第1コントローラ34および第2コントローラ36が静的な状態であることを前提としてコンピュータ側で処理する場合(すなわち、加速度センサ86および96によって検出される加速度が重力加速度のみであるとして処理する場合)、第1コントローラ34および第2コントローラ36が現実に静的な状態であれば、検出された加速度に基づいて第1コントローラ34および第2コントローラ36の姿勢が重力方向に対して傾いているか否か又はどの程度傾いているかをそれぞれ知ることができる。具体的には、加速度センサ86および96の検出軸が鉛直下方向を向いている状態を基準としたとき、1G(重力加速度)がかかっているか否かだけで、第1コントローラ34および第2コントローラ36がそれぞれ傾いているか否かを知ることができるし、その大きさによってどの程度傾いているかも知ることができる。また、多軸加速度センサが適用される場合には、さらに各軸の加速度の信号に対して処理を施すことによって、第1コントローラ34および第2コントローラ36がそれぞれ重力方向に対してどの程度傾いているかをより詳細に知ることができる。この場合において、加速度センサ86および96からの出力に基づいて、コンピュータが第1コントローラ34および第2コントローラ36の傾き角度のデータを算出する処理を行ってもよいが、当該傾き角度のデータを算出する処理を行うことなく、加速度センサ86および96からの出力に基づいて、おおよその傾き具合を推定するような処理としてもよい。このように、加速度センサ86および96をコンピュータと組み合わせて用いることによって、第1コントローラ34および第2コントローラ36の傾き、姿勢または位置を判定することができる。
【0075】
一方、加速度センサ86および96が動的な状態であることを前提とする場合には、重力加速度成分に加えて加速度センサ86および96の動きに応じた加速度を検出するので、重力加速度成分を所定の処理により除去すれば、動き方向などを知ることができる。具体的には、加速度センサ86および96を備える第1コントローラ34および第2コントローラ36がユーザの手で動的に加速されて動かされる場合に、加速度センサ86および96によって生成される加速度信号を上記コンピュータによって処理することによって、第1コントローラ34および第2コントローラ36のさまざまな動きおよび/または位置を算出することができる。なお、加速度センサ86および96が動的な状態であることを前提とする場合であっても、加速度センサ86および96の動きに応じた加速度を所定の処理により除去すれば、重力方向に対する傾きを知ることが可能である。他の実施例では、加速度センサ86および96は、信号をマイコン108に出力する前に内蔵の加速度検出手段から出力される加速度信号に対して所望の処理を行うための、組込み式の信号処理装置または他の種類の専用の処理装置を備えていてもよい。例えば、組込み式または専用の処理装置は、加速度センサ86および96が静的な加速度(例えば、重力加速度)を検出するためのものである場合、検知された加速度信号をそれに相当する傾斜角(あるいは、他の好ましいパラメータ)に変換するものであってもよい。
【0076】
このゲームシステム10では、ユーザがコントローラ14を動かすことによってゲームに対する操作または入力を行うことができる。ゲームをプレイする際には、たとえば図6に示すように、ユーザは、その右手で第1コントローラ34を持ち、その左手で第2コントローラ36を持つ。上述のように、この実施例では、第1コントローラ34には3軸方向の加速度を検出する加速度センサ86が内蔵され、第2コントローラ36にも同様の加速度センサ96が内蔵されている。第1コントローラ34および第2コントローラ36がそれぞれユーザによって動かされると、加速度センサ86および加速度センサ96によって、それぞれのコントローラ自身の動きを示す加速度値が検出される。ゲーム装置12では、当該検出された加速度値に応じてゲーム処理が実行され得る。
【0077】
また、第1コントローラ34には撮像情報演算部88が設けられるので、ユーザは第1コントローラ34をポインティングデバイスとして使用して操作を行うことができる。この場合、ユーザは、第1コントローラ34の先端面(光入射口90)がマーカ44mおよび44nの方を向く状態で第1コントローラ34を把持する。ただし、図1から分かるように、マーカ44mおよび44nは、モニタ30の画面の所定の1辺(上辺または下辺)の近傍に、当該所定の1辺に対して平行に配置されている。この状態で、ユーザは、第1コントローラ34自体を動かして、第1コントローラ34が指示する画面上の位置を変更したり、第1コントローラ34と各マーカ44mおよび44nとの距離を変更したりすることによって、ゲーム操作を行うことができる。
【0078】
図7は、マーカ44mおよび44nと第1コントローラ34の視野角を説明するための図である。図7に示すように、マーカ44mおよび44nは、それぞれ、視野角αの範囲で赤外光を放射する。また、撮像情報演算部88の撮像素子104は、第1コントローラ34の視線方向(図3に示すZ軸方向)を中心とした視野角βの範囲で入射する光を受光することができる。たとえば、マーカ44mおよび44nの視野角αは、共に34°(半値角)であり、一方、撮像素子104の視野角βは42°である。ユーザは、撮像素子104が2つのマーカ44mおよび44nからの赤外光を受光することが可能な位置および向きとなるように、第1コントローラ34を把持する。具体的には、撮像素子104の視野角βの中に少なくとも一方のマーカ44mまたは44nが存在し、かつ、マーカ44mおよび44nの少なくとも一方の視野角αの中に第1コントローラ34が存在する状態となるように、ユーザは第1コントローラ34を把持する。この状態にあるとき、第1コントローラ34は、マーカ44mおよび44nの少なくとも一方を検知することができる。ユーザは、この状態を満たす範囲で第1コントローラ34の位置および向きを変化させることによってゲーム操作を行うことができる。なお、マーカ44mおよび44nのいずれか一方のみが検出される場合には、たとえば、直前の2つのマーカ44mおよび44nを検出したデータを利用して、検出されない他方のマーカの代わりに仮のマーカ座標を設定することによって、第1コントローラ34の指示位置を算出することができる。
【0079】
なお、第1コントローラ34の位置および向きがこの範囲外となった場合、第1コントローラ34の位置および向きに基づいたゲーム操作を行うことができなくなる。したがって、上記範囲は「操作可能範囲」と呼ばれる。
【0080】
操作可能範囲内で第1コントローラ34が把持される場合、撮像情報演算部88によってマーカ44mおよび44nの画像が撮像される。すなわち、撮像素子104によって得られる撮像画像には、撮像対象であるマーカ44mおよび44nの画像(対象画像)が含まれる。図8は、対象画像を含む撮像画像の一例を示す図である。対象画像44m’および44n’を含む撮像画像の画像データを用いて、画像処理回路106は、各マーカ44mおよび44nの撮像画像における位置を表す座標(マーカ座標)を算出する。
【0081】
撮像画像の画像データにおいて対象画像44m’および44n’は高輝度部分として現れるため、画像処理回路106は、まず、この高輝度部分を対象画像の候補として検出する。次に、画像処理回路106は、検出された高輝度部分の大きさに基づいて、その高輝度部分が対象画像であるか否かを判定する。撮像画像には、2つの対象画像(マーカ画像)44m’および44n’だけではなく、窓からの太陽光や部屋の蛍光灯の光等のような他の画像が含まれていることがある。高輝度部分が対象画像であるか否かの判定処理は、マーカ44mおよび44nの画像44m’および44n’と、それ以外の画像とを区別し、対象画像を正確に検出するために実行される。撮像画像における対象画像44m’および44n’と他の画像との区別のために、撮像対象44mおよび44nは既知のものである必要があり、この実施例ではその大きさが予め決められるので、マーカ画像44m’および44n’の大きさを予測することができる。したがって、高輝度部分の大きさに基づいて、マーカ画像44m’および44n’の判定を行うことができる。具体的には、当該判定処理においては、検出された高輝度部分が、予め定められた所定範囲内の大きさであるか否かが判定される。そして、高輝度部分が所定範囲内の大きさである場合には、当該高輝度部分は対象画像を表すと判定される。逆に、高輝度部分が所定範囲内の大きさでない場合には、当該高輝度部分は対象画像以外の画像を表すと判定される。
【0082】
さらに、上記の判定処理の結果、対象画像を表すと判定された高輝度部分について、画像処理回路106は当該高輝度部分の位置を算出する。具体的には、当該高輝度部分の重心位置を算出する。ここでは、当該重心位置の座標をマーカ座標と呼ぶ。また、重心位置は撮像素子104の解像度よりも詳細なスケールで算出することが可能である。ここでは、撮像素子104によって撮像された撮像画像の解像度が126×96であるとし、重心位置は1024×768のスケールで算出されるものとする。つまり、マーカ座標は、(0,0)から(1024,768)までの整数値で表現される。
【0083】
なお、図8に示すように、撮像画像における位置は、撮像画像の左上を原点Oとし、下向きをY軸正方向とし、右向きをX軸正方向とする座標系(撮像画像のXY座標系)で表現されるものとする。
【0084】
また、対象画像44m’および44n’が正しく検出される場合には、判定処理によって2つの高輝度部分が対象画像として判定されるので、2箇所のマーカ座標が算出される。画像処理回路106は、算出された2箇所のマーカ座標を示すデータ、つまり、撮像対象の位置を示す撮像対象データを通信部98に出力する。出力された撮像対象データ(マーカ座標データ)は、上述したように、マイコン108によってコントローラデータに含められて、ゲーム装置12に送信される。
【0085】
ゲーム装置12(CPU46)は、受信したコントローラデータからマーカ座標データを取得すると、このマーカ座標データに基づいて、モニタ30の画面上における第1コントローラ34の指示位置(指示座標)と、第1コントローラ34からマーカ44mおよび44nまでの各距離とを算出することができる。なお、たとえば、第1コントローラ34がモニタ30の画面の左端を指示するとき、対象画像44m’および44n’は撮像画像の右側に検出され、第1コントローラ34が画面の下端を指示するとき、対象画像44m’および44n’は撮像画像の上側に検出され、つまり、画面上の第1コントローラ34の指示位置と逆側に撮像画像上のマーカ座標が検出される。したがって、第1コントローラ34の指示位置の座標をマーカ座標から算出する際には、座標系が図8の撮像画像の座標系から画面上の位置を表すための座標系に適宜に変換される。
【0086】
なお、この実施例では、第1コントローラ34で撮像データに所定の演算処理を行ってマーカ座標を検出して、そのマーカ座標データをゲーム装置12に送信するようにしている。しかし、他の実施例では、撮像データをコントローラデータとして第1コントローラ34からゲーム装置12に送信し、ゲーム装置12のCPU46が撮像データに所定の演算処理を行って、マーカ座標および指示位置の座標を検出するようにしてもよい。
【0087】
また、撮像画像における対象画像間の距離は、第1コントローラ34と、マーカ44mおよび44nとの距離に応じて変化する。マーカ44mおよび44n間の距離、撮像画像の幅、撮像素子104の視野角βが予め決まっているので、2つのマーカ座標間の距離を算出することによって、ゲーム装置12は第1コントローラ34とマーカ44mおよび44nとの間の現在の距離を算出することができる。
【0088】
以上のように構成されたゲームシステム10では、ゲーム装置12によってゲームプログラムが実行されることにより、対応する仮想ゲーム(この実施例では、リズムゲーム)をプレイすることができる。リズムゲームが開始されると、モニタ28にメニュー画面(図示せず)が表示され、各プレイヤは使用するプレイヤオブジェクトを選択するとともに、再生(演奏)する1曲のBGMを選択する。
【0089】
このリズムゲームは、4人(4P)で協力してプレイする仮想ゲームであり、プレイヤが4人に満たない場合には、足りないプレイヤをコンピュータ(CPU40)が担当する。つまり、3人のプレイヤが存在する場合には、1人のプレイヤをコンピュータが担当し、2人のプレイヤが存在する場合には、2人のプレイヤをコンピュータが担当し、そして、1人のプレイヤが存在する場合には、3人のプレイヤをコンピュータが担当する。
【0090】
プレイヤオブジェクトおよびBGMの選択が終了すると、BGMの再生が開始される。すると、図9に示すようなゲーム画面100がモニタ28に表示される。図9に示すように、ゲーム画面100には、ゲームフィールド100aが表示され、このゲームフィールド100a内に、第1プレイヤ(1P)オブジェクト102a、第2プレイヤ(2P)オブジェクト102b、第3プレイヤ(3P)オブジェクト102cおよび第4プレイヤ(4P)オブジェクト102dが表示される。ただし、ゲームフィールド100aは仮想ゲーム空間内に設けられる。
【0091】
また、各プレイヤオブジェクト102a−102dには、足元を囲むようにリング状の指示画像104a−104dが表示されるとともに、1P−4Pの別が文字で表示される。図面では分かり難いが、指示画像104a−104dのそれぞれと、対応する1P−4Pの文字のそれぞれとは同じ色で描画され、プレイヤオブジェクト102a−102dに割り当てられた色が示される。たとえば、1Pに青色が割り当てられ、2Pの赤色が割り当てられ、3Pに緑色が割り当てられ、そして、4Pに黄色が割り当てられる。ただし、これは単なる一例であり、これに限定される必要はない。また、図面では色を付すことができないため、指示画像104a−104d、1P−4Pの文字および後述するカラーボールオブジェクト110aには、模様を付して示してある。したがって、模様が同じであれば、同じ色であることを意味する。
【0092】
さらに、ゲームフィールド100a内には、発射台オブジェクト106が表示され、この右側に連結してベルトコンベアオブジェクト108が表示される。図12に示すように、ベルトコンベアオブジェクト108上には、発射台オブジェクト106に移送されるボールオブジェクト110およびアイテムオブジェクト112が載置される。このボールオブジェクト110およびアイテムオブジェクト112は、BGMの再生に合わせて、所定のタイミング(発射タイミング)で、発射台オブジェクト106から発射される。
【0093】
図9では分かり難いが、ベルトコンベアオブジェクト108上には、ボールオブジェクト110およびアイテムオブジェクト112が、発射される順番(左端から順)に並んで配置される。この実施例では、ボールオブジェクト110およびアイテムオブジェクト112は、発射タイミングの所定時間(この実施例では、2秒)前に、ベルトコンベアオブジェクト108上の最後尾(右端)に配置され、発射タイミング(2秒後)までの間に、発射台オブジェクト106に向けてベルトコンベアオブジェクト108上を次第に左方向に移動される。そして、上述したように、発射タイミングで、ボールオブジェクト110およびアイテムオブジェクト112は発射台オブジェクト106の発射口106aから発射される。
【0094】
ここで、ボールオブジェクト110およびアイテムオブジェクト112について説明する。図10(A)−図10(C)には、仮想ゲーム中の任意の時点における、ベルトコンベアオブジェクト108の一部、およびその上に配置されるボールオブジェクト110、アイテムオブジェクト112の例が示される。図10(A)−図10(C)に示すように、ボールオブジェクト110は、バレーボールを模したオブジェクトであり、プレイヤオブジェクト102a−102dに割り当てられた4つの色のいずれか1つと同じ色が付されたカラーボールオブジェクト110a、およびその4つの色がすべて付されたレインボーボールオブジェクト110bを含む。
【0095】
ただし、図10(A)、図10(C)では(図9も同様)、簡単のため、レインボーボールオブジェクト110bは、白色で示してある。
【0096】
また、図10(A)−図10(C)に示すように、アイテムオブジェクト112は、コインオブジェクト112a、バナナオブジェクト112b、および鉄球オブジェクト112cを含む。
【0097】
図9に戻って、ボールオブジェクト110は、BGMに合わせて発射され、ゲームフィールド100a内を飛行する。プレイヤオブジェクト102a−102dがボールオブジェクト110を捕球ないしレシーブした場合には、その様子が表示された後に、ボールオブジェクト110はゲームフィールド100aから消去される。ただし、プレイヤオブジェクト102a−102dがボールオブジェクト110を捕球ないしレシーブしなかった場合には、ボールオブジェクト110は、地面に着地すると、所定時間(たとえば、2秒)進行方向にそのまま1回または2回バウンドした後に、ゲームフィールド100aから消去される。
【0098】
また、コインオブジェクト112a、バナナオブジェクト112bおよび鉄球オブジェクト112cは、ボールオブジェクト110と同様に、発射台オブジェクト106からBGMに合わせて発射され、ゲームフィールド100a内を飛行する。コインオブジェクト112aは、地面に着地すると、所定時間(たとえば、3秒)残留し、その後ゲームフィールド100aから消去される。また、バナナオブジェクト112bは、地面に着地すると、所定時間(たとえば、4秒)残留し、その後ゲームフィールド100aから消去される。さらに、鉄球オブジェクト112cは、地面に着地すると、所定時間(たとえば、2秒)進行方向にそのまま1回または2回バウンドした後に、ゲームフィールド100aから消去される。
【0099】
また、ゲーム画面100では、スコアを表示する表示領域120が画面の右上部に設けられ、“/”を挟んで、左側が現在のスコアを示し、右側がこの仮想ゲームをクリアするためのノルマを示す。さらに、ゲーム画面100では、捕球ないしレシーブの連続回数(COMBO)を表示する表示領域122が、画面の右側であって、スコアの表示領域120の下方に設けられる。
【0100】
上述したように、ボールオブジェクト110が発射されると、その着弾点を含む所定範囲(着弾点を中心とする所定長さの半径を有する円)を示す指標(着弾マーカ)114が表示される。図面では、分かり難いが、着弾マーカ114は、対応するカラーボールオブジェクト110aまたはレインボーボールオブジェクト110bに付された色と同じ色が付される。したがって、プイレヤは、着弾マーカ114の色を見て、捕球ないしレシーブするべきボールオブジェクト110の着弾点を知ることができる。
【0101】
また、アイテムオブジェクト112のうち、バナナオブジェクト112bや鉄球オブジェクト112cが発射されると、その着弾点を含む所定範囲(着弾点を中心とする所定長さの半径を有する円)を示す黒色の着弾マーカ116が表示される。この実施例では、バナナオブジェクト112bや鉄球オブジェクト112cに対応して、黒色の着弾マーカ116を表示するようにしてあるが、プレイヤオブジェクト102a−102dおよびボールオブジェクト110に付される色と区別できるのであれば、他の色が付されてもよい。ただし、図9に示すゲーム画面100では、バナナオブジェクト112bは地面に着地しているため、着弾マーカ116は表示されない(消去されている)。
【0102】
各プレイヤの操作に従って、プレイヤオブジェクト102a−102dの各々は、ゲームフィールド100a内を移動され、ボールオブジェクト110を捕球またはレシーブしたり、コインオブジェクト112aを取得したり、バナナオブジェクト112bまたは鉄球オブジェクト112cを避けたりする。各プレイヤは、図6に示したように、第1コントローラ34および第2コントローラ36を把持する。したがって、図1では省略したが、プレイヤの人数(この実施例では、最大4人)に応じた数だけ、第1コントローラ34と第2コントローラ36とが設けられる。
【0103】
各プレイヤは、左手に把持した第2コントローラ36のアナログジョイスティック94aを操作することにより、このアナログジョイスティック94aを傾けた方向(上下左右および斜め方向)に、対応するプレイヤオブジェクト102a−102dを移動させることができる。したがって、プレイヤオブジェクト102a−102dは、ボールオブジェクト110aが落下地点(着弾点)に到達するときに、プレイヤオブジェクト102a−102dを中心とする水平方向の所定範囲(以下、「第1所定範囲」という)内に当該ボールオブジェクト110aの着弾点が含まれる場合には、当該ボールオブジェクト110を捕球する。この第1所定範囲は、上述した着弾マーカ114と同じ大きさであり、したがって、プレイヤオブジェクト102a−102dが着弾マーカ114上に存在する場合には、ボールオブジェクト110を捕球することができる。ただし、着弾点に到達する時(タイミング)のみで捕球したかどうかを判断すると、きわめて短い時間(1フレーム)での判断となるため、ほとんどの場合に捕球できないことになってしまう。このため、この実施例では、捕球(後述するレシーブの場合も同じ)したかどうかについては、所定期間内(着弾するタイミングの前5フレームから着弾するタイミングまでの期間)で判断するようにしてある。
【0104】
また、プレイヤは、右手に把持した第1コントローラ34を(上下または左右の方向などに)振ることにより、対応するプレイヤオブジェクト102a−102dを、所定のルールで決定された目標のボールオブジェクト110の着弾点に向けてジャンプさせて回転レシーブさせることができる。詳細な説明は省略するが、回転レシーブさせる場合には、同じ距離をアナログジョイスティック94aで移動させるよりも、短い時間で移動させることができる。
【0105】
ここで、所定のルールは、プレイヤオブジェクト102a−102dが目標とするボールオブジェクト110を決定するためのルールである。具体的には、プレイヤオブジェクト102a−102dは、対応するカラーボールオブジェクト110aがレシーブ可能範囲に有る場合には、当該カラーボールオブジェクト110aを目標に設定する。ただし、レシーブ可能範囲とは、プレイヤオブジェクト102a−102dがボールオブジェクト110を回転レシーブ可能な最大距離で決定される範囲であり、プレイヤオブジェクト102a−102dを中心とする水平方向の所定範囲(以下、「第2所定範囲」という)であって、第1所定範囲よりも大きく設定される。また、プレイヤオブジェクト102a−102dは、対応するカラーボールオブジェクト110aがレシーブ可能範囲内に複数存在する場合には、先に着弾するカラーボールオブジェクト110aを目標に設定する。さらに、プレイヤオブジェクト102a−102dは、対応するカラーボールオブジェクト110aがレシーブ可能範囲内に無い場合には、最寄りのボールオブジェクト110を目標に設定する。
【0106】
つまり、図11に示すように、プレイヤオブジェクト102a−102dは、ボールオブジェクト110を捕球するための第1所定範囲(半径D1)と、ボールオブジェクト110を回転レシーブするための第2所定範囲(半径D2<半径D1)とを有している。ただし、図11では、プレイヤオブジェクト102a−102dを真上方向から見た図である。したがって、プレイヤオブジェクト102a−102dがボールオブジェクト110を捕球ないしレシーブしたかどうかを判断する場合には、場合を分けて判断される。
【0107】
たとえば、プレイヤが第1コントローラ34を振っていない場合には、プレイヤオブジェクト102a−102dがボールオブジェクト110を捕球したかどうかが判断される。具体的には、プレイヤオブジェクト102a−102dの位置(現在位置)Pから半径D1で決定される第1所定範囲内に当該ボールオブジェクト110の着弾点が設定されているかどうかが判断される。第1所定範囲内にボールオブジェクト110の着弾点が設定されている場合には、当該ボールオブジェクト110が捕球されたことが判断される。
【0108】
一方、プレイヤが第1コントローラ34を振った場合には、プレイヤオブジェクト102a−102dがボールオブジェクト110を回転レシーブしたかどうかが判断される。具体的には、プレイヤオブジェクト102a−102dの位置Pから判定D2で決定される第2所定範囲内に当該ボールオブジェクト110の着弾点が設定されているかどうかが判断される。第2所定範囲内にボールオブジェクト110の着弾点が設定されている場合には、当該ボールオブジェクト110がレシーブされたことが判断される。
【0109】
なお、この実施例では、操作性を考慮して、第2コントローラ36のアナログジョイスティック94aを用いてプレイヤオブジェクト102a−102dの移動(歩行ないし走行)を制御し、第1コントローラ34を振ることによりプレイヤオブジェクト102a−102dを回転レシーブさせるようにしてあるが、これに限定される必要はない。たとえば、第1コントローラ34のみを横持ちで使用する場合には、十字キー82aを用いてプレイヤオブジェクト102a−102dの移動を制御し、2ボタン82cを用いてプレイヤオブジェクト102a−102dに回転レシーブさせるようにしてもよい。
【0110】
また、この実施例では、第1コントローラ34を振ることにより、プレイヤオブジェクト102a−102dに回転レシーブさせるようにしてあるが、単に速く移動させたり、身体の一部が延びたり、飛び道具を使ったりするようにしてもよい。ただし、飛び道具を用いる場合には、仮想ゲーム内では、当該飛び道具がボールオブジェクト110に当ったことにより、レシーブしたことが判断される。
【0111】
また、ボールオブジェクト110の各々には、所定のメロディ音が割り当てられており、プレイヤオブジェクト102a−102dがボールオブジェクト110を捕球ないしレシーブすると、当該メロディ音がBGMに加えて再生される。つまり、ボールオブジェクト110の捕球ないしレシーブを成功したことを示す効果音として、所定のメロディ音が出力される。この実施例では、メロディ音は、所定長さ(0.15秒−0.25秒程度)のBGMについての主旋律の音(BGMでは使用されていない楽器についての音)である。ただし、プレイヤオブジェクト102a−102dが、自身に割り当てられた色と同じ色の付されたカラーボールオブジェクト110aを捕球ないしレシーブした場合には、当該カラーボールオブジェクト110aに割り当てられたメロディ音が正しい音程で再生される。このとき、たとえば、10ポイント獲得となり、スコアに加算される。
【0112】
また、レインボーボールオブジェクト110bについては、いずれのプレイヤオブジェクト102a−102dが捕球ないしレシーブした場合であっても、当該レインボーボールオブジェクト110bに割り当てられたメロディ音が正しい音程で再生れる。このとき、たとえば、50ポイント獲得となり、スコアに加算される。
【0113】
一方、プレイヤオブジェクト102a−102dが異なる色が付されたカラーボールオブジェクト110aを捕球ないしレシーブした場合には、当該カラーボールオブジェクト110aに割り当てられたメロディ音が異なる音程で再生される。この場合にも、たとえば、10ポイント獲得となり、スコアに加算される。ただし、コンピュータによって操作されるプレイヤオブジェクト102a−102dが、プレイヤが操作するプレイヤオブジェクト102a−102dに割り当てられた色のカラーボールオブジェクト110を捕球ないしレシーブした場合には、ポイントは加算されない。
【0114】
また、ボールオブジェクト110が、いずれのプレイヤオブジェクト102a−102dにも捕球ないしレシーブされずに、地面に落下した場合には、当該ボールオブジェクト110に割り当てられたメロディ音は再生されない。この場合には、失敗を示す効果音(たとえば、不協和音)が再生され、また、たとえば、10ポイント減点となり、スコアから減算される。
【0115】
また、プレイヤオブジェクト102は、空中を飛行する、地面に残留するまたは地面をバウンドする、アイテムオブジェクト112(コインオブジェクト112a、バナナオブジェクト112bおよび鉄球オブジェクト112c)に触れると、ポイントを獲得したり、ポイントを失ったり、所定の効果が与えられたりする。この実施例では、プレイヤオブジェクト102がコインオブジェクト112aに触れると、当該コインオブジェクト112aに割り当てられた10ポイントがスコアに加算される。また、プレイヤオブジェクト102a−102dがバナナオブジェクト112bに触れると、それによって、プイレオブジェクト102a−102dは、転倒し、所定時間(たとえば、2秒)行動不能になる。たとえば、プレイヤオブジェクト102a−102dは、バナナオブジェクト112bに触れると、転倒し、ダメージを受けて、行動不能になっている様子のアニメーションで表示される。さらに、プレイヤオブジェクト102a−102dが鉄球オブジェクト112cに触れると、それによって、プレイヤオブジェクト102a−102dは、ダメージを受け、50ポイント減算される。また、プレイヤオブジェクト102a−102dが鉄球オブジェクト112cに触れた(当った)場合には、間違って捕球ないしレシーブしたと判定され、連続回数が0に(リセット)される。たとえば、プレイヤオブジェクト102a−102dは、鉄球オブジェクト112cに触れると、ダメージを受けた様子のアニメーションで表示される。
【0116】
なお、上述したアイテムオブジェクト112は、単なる一例であり、他の種類のアイテムオブジェクト112を用意しておき、ポイントを加算または減算したり、プレイヤオブジェクト102a−102dに所定の効果を与えたりしてもよい。たとえば、宝石オブジェクトを取得した場合には、ボーナスポイントが加算されるようにしてもよい。また、爆弾オブジェクトの爆風によって、プレイヤオブジェクト102a−102dが吹き飛ばされるようにしてよい。このとき、さらにポイントが減算されてもよい。さらに、きのこのような食べ物のオブジェクトを取得すると、所定時間だけ、プレイヤオブジェクト102a−102dの大きさを変化(大または小)させたり、プレイヤオブジェクト102a−102dの移動速度を速くさせたり、プレイヤオブジェク102a−102dをバナナオブジェクト112bや鉄球オブジェクト112cなどのお邪魔アイテムの影響を受けない無敵状態にさせたりしてもよい。
【0117】
また、プレイヤオブジェクト102a−102dが連続してボールオブジェクト110を捕球ないしレシーブすると、その連続回数がカウントされる。ただし、コンピュータ(以下、「コンピュータプレイヤ」ということがある)の操作するプレイヤオブジェクト102a−102dが、自身に割り当てられた色とは異なる色のカラーボールオブジェクト110aをレシーブした場合には、連続回数は加算されない。また、プレイヤオブジェクト102a−102dがボールオブジェクト110を捕球ないしレシーブしないと、つまり失敗すると、連続回数はリセットされる。この実施例では、捕球ないしレシーブを継続すると、その連続回数に応じて、豪華さが増すように、BGMが変化される。一方、捕球ないしレシーブに失敗すると、豪華さが減るように、一気にBGMが変化される。つまり、ゲームプレイの結果に応じて、この実施例では、BGMのトラック(パート)の数および音量の少なくとも一方を変化させるようにしてある。
【0118】
各BGMは、複数のパートで構成されている。図示は省略するが、BGMのデータ(BGMデータ)は、複数(この実施例では6個)のトラックデータで構成され、さらに、各トラックデータは、1または複数のパートについての楽譜データで構成される。BGMデータを構成する複数のトラックデータのうちの基本となる4つのトラックデータは、各プレイヤの担当(演奏)するパート(トラック)に対応している。この実施例では、各BGMの豪華さの度合い(豪華度)が、「最低」、「普通」、「グレート」、および「エクセレント」の4段階で変化される。具体的には、図12に示すBGMの変化テーブルに従って、豪華度が変化される。
【0119】
ここで、各BGMは、基本となるBGM1と、追加的に再生されるBGM2、BGM3とによって構成される。BGM1は、BGMが有する6つのトラックのうち、基本となる4つのトラックによって構成される。BGM2は、6つのトラックから基本となる4つのトラックを除いた2つのトラックのうちの1つのトラックによって構成され、BGM3は、残りの1つのトラックによって構成される。
【0120】
図12に示す変化テーブルに従えば、豪華度が「普通」である場合には、BGM1が100%の音量で再生される。また、豪華度が「グレート」である場合には、100%の音量で再生されるBGM1に加えて、BGM2が100%の音量で再生される。さらに、豪華度が「エクセレント」である場合には、100%の音量で再生されるBGM1およびBGM2に加えて、BGM3が100%の音量で再生される。ただし、豪華度が「最低」である場合は、BGM1が33%の音量で再生される。
【0121】
詳細な説明は省略するが、ここで説明した音量は、カラーテレビ受像機で設定される音量では無く、ゲーム装置12の内部で設定される音量である。たとえば、DSP52から出力されるオーディオデータのレベルが調整される。または、オーディオデータに対応するアナログの音声信号のレベルがAV IC56で調整され、スピーカ30に出力される。
【0122】
なお、この実施例では、豪華度が「グレート」や「普通」である場合に、「最低」に変化すると、トラック(パート)数が減らされたり(BGM1+BGM2からBGM1に変化されたり)、音量が低く(100%から33%に低減)されたりするようにして、トラック(パート)数と音量との両方が変化されることがある。しかし、豪華度が「普通」から「グレート」に変化されたり、「グレート」から「エクセレント」に変化されたりする場合には、BGM2やBGM3が追加的に再生されるだけである。つまり、トラック(パート)数が増加するだけであり、音量は変化されない。したがって、このような場合にも、音量を変化させるようにしてもよい。たとえば、豪華度が「普通」の場合のBGM1の音量を70%に設定したり、豪華度が「グレート」の場合のBGM2の音量を50%−70%に設定したりすることが考えられる。
【0123】
また、この実施例では、BGMに対応して、図13(A)に示すような配球情報が設けられる。図示は省略するが、複数のBGMのそれぞれに対応して、個別に配球情報が設けられる。この配球情報は、BGMに合わせて設定されたメロディ音を再生するタイミングおよび当該メロディ音が割り当てられるボールオブジェクト110やメロディ音が割り当てられていないアイテムオブジェクト112の種類や移動制御についての情報(オブジェクト情報)を含む。
【0124】
図13(A)に示すように、配球情報は、4つのトラック(トラック0、トラック1、トラック2、トラック3)を含む。各トラックには、BGMの再生開始(0フレーム)から再生終了までに対応して、複数の桝目が時系列に並んで設けられる。各桝目には、オブジェクト情報を設定することが可能である。したがって、メロディ音を鳴らしたいタイミングには、ボールオブジェクト110についてのオブジェクト情報が記述される。また、アイテムを配置させたいタイミングには、アイテムオブジェクト112についてのオブジェクト情報が記述される。図13(A)では、オブジェクト情報が記述されている桝目に斜線を付してあり、空白の桝目にはオブジェクト情報は記述されていない。
【0125】
上述したように、桝目にはオブジェクト情報が設定されるため、1つの桝目の長さはメロディ音の長さに相当する。この実施例では、BGMの演奏速度に応じて、メロディ音の長さは所定時間(0.15秒(約10〜11フレーム)−0.25秒(15フレーム))に設定される。
【0126】
図13(B)は、オブジェクト情報の具体例が示される。オブジェクト情報は、再生タイミングフレーム、種別、飛行時間、最小距離、最大距離および特殊フラグを含む。再生タイミングフレームは、ボールオブジェクト110またはアイテムオブジェクト112が着弾点に到達するタイミングを示すフレームであって、BGMの再生開始(0フレーム)からのフレーム数が記述される。したがって、図13(A)に示した桝目の並び順は、ボールオブジェクト110およびアイテムオブジェクト112が着弾点に到達する順(到達順)に相当する。
【0127】
種別は、ボールオブジェクト110の場合には、当該ボールオブジェクト110が捕球ないしレシーブされたときに再生されるメロディ音についての識別情報が記述される。この実施例では、メロディ音の識別情報は、対応するデータについてのIDないしファイル名である。一方、アイテムオブジェクト112の場合には、種別として、アイテムの種類(コイン、バナナ、鉄球)が記述される。
【0128】
飛行時間は、ボールオブジェクト110またはアイテムオブジェクト112が発射されてから着弾点に到達するまでの時間であって、当該時間に相当するフレーム数が記述される。詳細な説明は省略するが、飛行時間は、3段階(60フレーム、120フレーム、180フレーム)で設定される。
【0129】
最小距離および最大距離は、ボールオブジェクト110またはアイテムオブジェクト112の着弾点を決定する際の範囲を規定するための距離であって、ゲームフィールド100aすなわち仮想ゲーム空間における長さが記述される。ただし、最小距離および最大距離は、当該オブジェクト情報を含むトラックが割り当てられたプレイヤオブジェクト102a−102dの現在位置からの距離である。
【0130】
特殊フラグは、レインボーボールオブジェクト110bであるかどうかを判別するためのフラグであり、成立(オン)または不成立(オフ)が記述される。特殊フラグがオンである場合には、レインボーボールオブジェクト110bであり、特殊フラグがオフである場合には、当該オブジェクト情報を含むトラックが割り当てられたプレイヤオブジェクト102a−102dに割り当てられた色のボールオブジェクト110である。つまり、特殊フラグがオンである場合には、カラーボールオブジェクト110aに代えて、レインボーボールオブジェクト110bが発射されるのである。
【0131】
上述したように、ボールオブジェクト110およびアイテムオブジェクト112は、飛行時間が3段階で設定されるため、到達順と発射順とが入れ替わる場合がある。また、この実施例では、発射タイミングの所定時間前に、ボールオブジェクト110およびアイテムオブジェクト112をベルトコンベアオブジェクト108上に配置するようにしてある。したがって、この実施例では、配球情報に基づいて、発射タイミングについてのテーブル(発射タイミングテーブル)を作成しておき、この発射タイミングテーブルに従って、ボールオブジェクト110およびアイテムオブジェクト112の発射を制御するようにしてある。
【0132】
図14に示すように、発射タイミングテーブルは、発射タイミングフレームに対応して、配球情報のトラック番号および到達順が記述される。この発射タイミングテーブルは、配球情報に含まれるオブジェクト情報のみに着目して生成される。まず、各オブジェクト情報に含まれる再生タイミングフレームから飛行時間を減算した発射タイミングフレームが算出される。そして、発射タイミングフレームの早い順に、対応するオブジェクト情報が記述されたトラック番号および到達順が記述されるのである。
【0133】
ただし、図14では、簡単のため、発射タイミングフレームをfn(n=1、2、…、N)で示してあるが、実際には、BGMの再生開始からのフレーム数が記述される。また、トラック番号をT0−T3で示してあるが、Tは配球情報におけるトラックを意味する。
【0134】
この発射タイミングテーブルにしたがって、ボールオブジェクト110およびアイテムオブジェクト112がベルトコンベアオブジェクト108に配置されるとともに、発射台オブジェクト106から発射される。
【0135】
次に、発射されるボールオブジェクト110およびアイテムオブジェクト112(以下、これらを「オブジェクト110、112」ということがある)の移動制御について説明する。図15(A)は、ゲームフィールド110aを真上から見た図解図である。オブジェクト110、112が発射される場合には、まず、到達位置すなわち着弾点(2次元平面上の点)が決定される。この着弾点は、対応するプレイヤオブジェクト102a−102dの位置(現在位置)Pに応じて決定される。ただし、対応するプレイヤオブジェクト102a−102dとは、当該オブジェクト110、112についてのオブジェクト情報が記述されたトラック0−トラック3が割り当てられたプレイヤオブジェクト102a−102dを意味する。
【0136】
まず、オブジェクト情報に記載の最小距離(半径r)と最大距離(半径R)とによってドーナツ状の範囲(斜線を付して示す範囲)が規定される。このドーナツ状の範囲内において、任意(ランダム)に着弾点Bが決定される。ただし、この実施例では、水平面(XY平面)内における発射位置Aは、発射台オブジェクト106の中心に固定的に設定されているものとする。着弾点Bが決定されると、発射位置Aと着弾点Bとの距離(水平距離)dが算出される。具体的には、数1に従って算出される。ただし、水平面における発射位置Aの座標を(X1,Y1)とし、着弾点Bの座標を(X2,Y2)とする。また、図15(A)に示すように、ワールド座標系において、横方向がX軸方向であり、縦方向がY軸方向であり、高さ方向がZ軸方向である。また、右方向がX軸のプラス方向であり、下方向がY軸方向のプラス方向であり、紙面に対して垂直上向きがZ軸のプラス方向である。
【0137】
[数1]
d=√{(X1−X2)2+(Y1−Y2)2}
また、オブジェクト110、112の発射方向のうちの水平方向の角度φは、数2に従って算出される。ただし、発射位置Aを通りY軸に平行に延びる直線H上を水平方向の中心(0度)とする。また、発射位置Aから見て、直線Hの右側に開く角度φの符号をマイナスとし、直線Hの左側に開く角度φの符号をプラスとする。さらに、L(=X2−X1)は、着弾点Bから直線Hに下ろした垂線の長さである。
【0138】
[数2]
φ=sin−1(L/d)
数1に従って距離dが算出されると、飛行時間t(フレーム)が、上述したオブジェクト情報で与えられるため、数3−数5に示す斜方投射の物理計算に基づいて、数6に従って、オブジェクト110、112の垂直方向の角度θが算出される。さらに、角度θを数3に代入して、発射速度(初速度)vが算出される。ただし、hは高さ方向(Z軸のプラス方向)の距離である。この実施例では、数5に示すように、オブジェクト110、112が最高点に達したときの高さhを、オブジェクト110、112を発射する際に任意(ランダム)に決定するようにしてある。ただし、最高点の高さhの範囲は予め決定されている。さらに、gは仮想ゲーム空間に設定されるZ軸のマイナス方向の加速度(重力加速度に相当)である。
【0139】
[数3]
d=v×cosθ×t
[数4]
h=v×sinθ×t−1/2×gt2
[数5]
(v×sinθ)2=2gh
数4の右辺の第2項を左辺に移行した後、数4の辺々を数3の辺々で割ると、数6に示すように、垂直方向の角度θが算出される。
【0140】
【数6】
【0141】
ただし、図15(B)に示すように、発射台オブジェクト106の発射位置Aと着弾点Bとは、同一水平面内であり、地面よりも少し高い位置に設定される。これは、プレイヤオブジェクト102a−102dが、ボールオブジェクト110を捕球ないしレシーブしたときに、メロディ音を再生するようにしてあるためである。したがって、たとえば、発射位置Aおよび着弾点Bの高さ方向の位置(Z座標の値)は、プレイヤオブジェクト102a−102dの腰から膝の間の高さに設定される。
【0142】
なお、この実施例では、オブジェクト情報に、2つの距離(最小距離と最大距離)を設定しておき、それらによって規定される範囲内で着弾点Bを任意に決定するようにしたが、1つの距離のみを設定しておき、プレイヤオブジェクト102a−102dの位置と、その距離とよって規定される円内または円上の任意の点を着弾点Bに決定するようにしてもよい。このように、1つまたは2つの距離を設定する場合には、プレイヤオブジェクト102a−102dが捕球ないしレシーブが不可能な位置に着弾点Bが設定されるような不都合を回避することができる。また、プレイヤオブジェクト102a−102dの位置Pから距離を設定するので、着弾点Bを決定する範囲を簡単に設定することができる。ただし、オブジェクト情報に、距離を設定せずに、ゲームフィールド102a上の任意の点を着弾点Bに決定するようにしてもよい。
【0143】
また、この実施例では、オブジェクト110、112を発射する際に、最高点の高さhを任意に決定するようにしてあるが、これに代えて、垂直方向の角度θを所定範囲(たとえば、15度−80度)内においてランダムに決定するようにしてもよい。このようにすれば、数3に従って、初速度vを簡単に算出することができる。
【0144】
図16は図2に示したメインメモリ42c(46)のメモリマップ500の例を示す図解図である。図16に示すように、メインメモリ42c(46)は、プログラム記憶領域502およびデータ記憶領域504を含む。プログラム記憶領域502は、ゲームプログラムを記憶し、ゲームプログラムは、メイン処理プログラム502a、画像生成プログラム502b、画像表示プログラム502c、音再生プログラム502d、BGM変化プログラム502e、プレイヤオブジェクト制御プログラム502f、ボールオブジェクト制御プログラム502g、アイテムオブジェクト制御プログラム502h、当り判定プログラム502i、連続回数カウントプログラム502jおよびスコア計算プログラム502kなどによって構成される。
【0145】
メイン処理プログラム502aは、この実施例の仮想ゲーム(リズムゲーム)のメインルーチンを処理するためのプログラムである。画像生成プログラム502bは、後述する画像データ504b(図17参照)を用いて、図9に示したようなゲーム画面100などの各種画面を表示するための表示画像データを生成するためのプログラムである。画像表示プログラム502cは、画像生成プログラム502bに従って生成された表示画像データをモニタ28に出力するためのプログラムである。
【0146】
音再生プログラム502dは、DSP52を制御して、BGMについてのBGMデータ(サウンドデータ)からオーディオデータを生成し、スピーカ30に出力するためのプログラムである。したがって、プレイヤによって選択されたBGMが再生される。また、音再生プログラム502dは、DSP52を制御して、後述する音データ504eを用いて、BGM以外の音(効果音)、音声ないし音楽についてのオーディオデータを生成し、スピーカ30に出力するためのプログラムである。したがって、ボールオブジェクト110を捕球ないしレシーブした場合のメロディ音が再生されたり、ボールオブジェクト110を捕球ないしレシーブできなかった場合の効果音が再生されたりする。BGM変化プログラム502eは、図12に示したようなBGMの変化テーブルに従うように、BGMのトラック(パート)数および音量の少なくとも一方を変化させるためのプログラムである。
【0147】
プレイヤオブジェクト制御プログラム502fは、第1コントローラ34および第2コントローラ16からのコントローラデータに従って、対応するプレイヤオブジェクト102a−102dの移動等を制御するためのプログラムである。ボールオブジェクト制御プログラム502gは、ボールオブジェクト110の移動等を制御するためのプログラムである。アイテムオブジェクト制御プログラム502hは、アイテムオブジェクト112(コインオブジェクト112a、バナナオブジェクト112b、鉄球オブジェクト112c)の移動等を制御するためのプログラムである。
【0148】
当り判定プログラム502iは、プレイヤオブジェクト102a−102dが、ボールオブジェクト110に接触した(当った)かどうかを判定したり、アイテムオブジェクト112に接触した(当った)かどうかを判定したりする。ただし、プレイヤオブジェクト102a−102dがボールオブジェクト110に接触したかどうかは、上述したように、所定時間内に、プレイヤオブジェクト102a−102dを中心として、第1所定範囲内または第2所定範囲内に当該ボールオブジェクト110の着弾点が存在するかどうかで判断される。ただし、上述したように、第1所定範囲または第2所定範囲は、第1コントローラ34を振ったかどうかで使い分けられる。
【0149】
連続回数カウントプログラム502jは、プレイヤオブジェクト102a−102dがボールオブジェクト110の捕球またはレシーブを連続して行っている回数をカウントするためのプログラムである。スコア算出プログラム502kは、得点や減点に従ってスコアを加算または減算するためのプログラムである。
【0150】
なお、図示は省略するが、プログラム記憶領域502には、バックアッププログラムなども記憶される。バックアッププログラムは、ゲームデータ(途中データ、結果データ)をメモリカード38に保存(セーブ)するためのプログラムである。
【0151】
図17に示すように、データ記憶領域504には、操作データバッファ504aが設けられる。操作データバッファ504aは、第1コントローラ34および第2コントローラ36からのコントローラデータを記憶(一時記憶)するために設けられる。操作データバッファ504aに記憶されたコントローラデータは、CPU40の処理に用いられた後に、削除される。
【0152】
また、データ記憶領域504には、画像データ504b、BGMデータ504c、配球データ504d、音データ504e、プレイヤ情報データ504f、トラック割当データ504g、発射データ504h、水平角度データ504i、垂直角度データ504j、速度データ504kおよびスコアデータ504mが記憶される。
【0153】
画像データ504bは、表示画像データを生成するためのポリゴンデータやテクスチャデータなどのデータおよびプレイヤオブジェクト102a−102dに所定のモーションを実行させるためのアニメーションデータを含む。BGMデータ504cは、複数のBGM(BGM1、BGM2、…)についてのデータである。BGM1データ5040、BGM2データ5042、…のそれぞれは、上述したように、6個のトラックについてのトラックデータを含む。
【0154】
配球データ504dは、複数の配球情報(配球情報1、配球情報2、…)についてのデータである。配球情報1データ5050、配球情報2データ5050、…のそれぞれは、上述したように、4人のプレイヤ(コンピュータプレイヤを含む場合もある)に対応する4つのトラック(トラック0、トラック1、トラック2、トラック3)について、到達順に従って複数の桝目が設けられ、桝目の一部にオブジェクト情報が記述されたデータである。ただし、配球情報1データ5050はBGM1データ5040に対応し、配球情報2データ5052はBGM2データ5042に対応する。つまり、BGMと同数の配球情報が設けられる。
【0155】
音データ504eは、メロディ音を含む効果音、音声またはBGM以外の音楽についてのサウンドデータや音波形(音色)データであって、各データには識別情報が対応付けられている。プレイヤ情報データ504fは、各プレイヤ(1P−4P)が選択したプレイヤオブジェクト102a−102dについての情報(プレイヤ情報)を示すデータである。たとえば、プレイヤ情報では、1P−4Pに対応して、プレイヤオブジェクト102a−102dの識別情報が記述される。
【0156】
トラック割当データ504gは、選択されたBGM(5040、5042、…)に対応する配球情報(5050、5052、…)に含まれる4つのトラック(トラック0−トラック3)が、どのプレイヤオブジェクト102a−102dに割り当てられているかを示すデータである。発射データ504hは、選択されたBGM(5040、5042、…)に対応する配球情報(5050、5052、…)から作成した発射タイミングテーブルについてのデータである。水平角度データ504iは、発射するオブジェクト110、112について数2に従って算出された水平方向の角度φについてのデータである。垂直角度データ504jは、発射するオブジェクト110、112について数6に従って算出された垂直方向の角度θについてのデータである。速度データ504kは、発射するオブジェクト110、112について数3および数6に従って算出された発射の速度(初速度)vについてのデータである。スコアデータ504mは、スコアについての数値データである。
【0157】
さらに、データ記憶領域504には、フレームカウンタ504n、連続回数カウンタ504p、移動不能時間タイマ504q、最低フラグ504r、普通フラグ504s、グレートフラグ504t、エクセレントフラグ504u、移動不能フラグ504v、ダメージフラグ504wが設けられる。
【0158】
フレームカウンタ504nは、BGMの再生開始からのフレーム数をカウントするためのアップカウンタである。連続回数カウンタ504pは、プレイヤオブジェクト102a−102dがボールオブジェクト110を連続して捕球ないしレシーブした回数をカウントするためのアップカウンタである。移動不能時間タイマ504qは、プレイヤオブジェクト102a−102dがバナナオブジェクト102bに接触し、移動不能な状態になっている時間をカウントするためのタイマである。
【0159】
最低ブラグ504rは、BGMの豪華度が「最低」であるかどうかを判別するためのフラグであり、1ビットのレジスタで構成される。最低フラグ504rがオンであれば、レジスタにデータ値「1」が設定される。一方、最低フラグ504rがオフであれば、レジスタにデータ値「0」が設定される。この実施例では、豪華度が「普通」または「グレート」である場合に、プレイヤオブジェクト102a−102dが捕球またはレシーブに失敗すると、最低フラグ504rがオンされる。
【0160】
普通フラグ504sは、BGMの豪華度が「普通」であるかどうかを判別するためのフラグであり、1ビットのレジスタで構成される。普通フラグ504sがオンであれば、レジスタにデータ値「1」が設定される。一方、普通フラグ504sがオフであれば、レジスタにデータ値「0」が設定される。この実施例では、豪華度が「最低」である場合に、連続回数カウンタ504pのカウント数が第1所定数(この実施例では、10)を示したときに、普通フラグ504sがオンされる。また、豪華度が「エクセレント」である場合に、プレイヤオブジェクト102a−102dが捕球またはレシーブに失敗すると、普通フラグ504sがオンされる。ただし、この実施例では、リズムゲームが開始されるとき(またはBGMの再生が開始されるとき)には、普通フラグ504sがオンされ、BGMの豪華度は「普通」に設定されている。
【0161】
グレートフラグ504tは、BGMの豪華度が「グレート」であるかどうかを判別するためのフラグであり、1ビットのレジスタで構成される。グレートフラグ504tがオンであれば、レジスタにデータ値「1」が設定される。一方、グレートフラグ504tがオフであれば、レジスタにデータ値「0」が設定される。この実施例では、豪華度が「普通」である場合に、連続回数カウンタ504pのカウント数が第1所定数または第2所定数(この実施例では、20)を示したときに、グレートフラグ504tがオンされる。
【0162】
エクセレントフラグ504uは、BGMの豪華度が「エクセレント」であるかどうかを判別するためのフラグであり、1ビットのレジスタで構成される。エクセレントフラグ504uがオンであれば、レジスタにデータ値「1」が設定される。エクセレントフラグ504uがオフであれば、レジスタにデータ値「0」が設定される。この実施例では、豪華度が「グレート」である場合に、連続カウンタ504pのカウント数が第2所定数または第3所定数(この実施例では、30)を示すときに、エクセレントフラグ504uがオンされる。
【0163】
なお、BGMの豪華度は「最低」、「普通」、「グレート」および「エクセレント」のいずれかに設定されるため、最低フラグ504r、普通フラグ504s、グレートフラグ504t、エクセレントフラグ504uのいずれか1つがオンである場合には、他の3つはオフである。
【0164】
移動不能フラグ504vは、プレイヤオブジェクト102a−102dが移動不能な状態であるかどうかを判別するためのフラグであり、各プレイヤオブジェクト102a−102dに対応する4ビットのレジスタで構成される。プレイヤオブジェクト102a−102dが移動不能な状態である場合には、当該プレイヤオブジェクト102a−102dについての移動不能フラグ504vはオンされ、レジスタの対応するビットにデータ値「1」が設定される。一方、プレイヤオブジェクト102a−102dが移動不能な状態でない場合には、当該プレイヤオブジェクト102a−102dについての移動不能フラグ504vはオフされ、レジスタの対応するビットにデータ値「0」が設定される。この実施例では、プレイヤオブジェクト102a−102dがバナナオブジェクト112bに接触した場合に、移動不能な状態となり、所定時間が経過すると、移動不能な状態が解除される。
【0165】
ダメージフラグ504wは、プレイヤオブジェクト102a−102dがダメージを受けた状態であるかどうかを判別するためのフラグであり、各プイレヤオブジェクト102a−102dに対応する4ビットのレジスタで構成される。プレイヤオブジェクト102a−102dがダメージを受けた状態である場合には、当該プレイヤオブジェクト102a−102dについてのダメージフラグ504wはオンされ、レジスタの対応するビットにデータ値「1」が設定される。一方、プレイヤオブジェクト102a−102dがダメージを受けていない状態または回復した状態である場合には、当該プレイヤオブジェクト102a−102dについてのダメージフラグ504wはオフされ、レジスタの対応するビットにデータ値「0」が設定される。この実施例では、プレイヤオブジェクト102a−102dが鉄球オブジェクト112cに接触した場合に、ダメージを受けた状態となり、その後(ダメージのアニメーションを再生した後)、回復した状態になる。
【0166】
図18−図22は、図2に示したCPU40のリズムゲームのゲーム全体処理を示すフロー図である。図18に示すように、CPU40はゲーム全体処理を開始すると、ステップS1で、プレイヤオブジェクト102a−102dが選択されたかどうかを判断する。図示は省略するが、リズムゲームのゲーム全体処理が開始されると、プレイヤおよびコンピュータプレイヤの人数が決定された後に、各プレイヤ(コンピュータプレイヤを含む場合がある)が操作(使用)するプレイヤオブジェクト102a−102dを選択するための選択画面が表示される。この選択画面において、1P−4Pについてのプレイヤオブジェクト102a−102dが選択される。
【0167】
ステップS1で“NO”であれば、つまりプレイヤオブジェクト102a−102dが選択されていなければ、同じステップS1に戻る。一方、ステップS1で“YES”であれば、つまりプレイヤオブジェクト102a−102dが選択されると、ステップS3で、プレイヤ情報を記憶する。つまり、1P−4Pのそれぞれに対応して、選択されたプレイヤオブジェクト102a−102dを示すプレイヤ情報データ504fがデータ記憶領域504に記憶される。上述したように、1P−4Pでは、予め色が決定されているため、プレイヤ情報データ504fが記憶されることにより、プレイヤオブジェクト102a−102dに色が割り当てられる。
【0168】
続いて、ステップS5で、曲(BGM)の選択があるかどうかを判断する。図示は省略するが、プレイヤオブジェクト102a−102dが選択された後に、BGMを選択するための選択画面が表示され、この選択画面において、プレイヤの操作に従ってBGMが選択されたかどうかを判断するのである。
【0169】
ステップS5で“NO”であれば、つまり曲(BGM)が選択されていなければ、そのままステップS5に戻る。一方、ステップS5で“YES”であれば、つまり曲(BGM)が選択されれば、ステップS7で、選択された曲(BGM1データ5040、BGM2データ5042、…)に対応する配球情報(配球情報1データ5050、配球情報2データ5052、…)を読み込む。次のステップS9では、配球情報に基づいて、発射タイミングテーブルを作成する。つまり、読み込まれた配球情報1データ5050、配球情報2データ5052、…から、発射データ504hが生成される。
【0170】
続いて、ステップS11では、各プレイヤオブジェクト102a−102dにトラックを割り当てる。この実施例では、配球情報に含まれる4つのトラックの各々が、任意(ランダム)にプレイヤオブジェクト102a−102dの各々に割り当てられる。つまり、トラック割当データ504gが決定され、データ記憶領域504に記憶される。そして、ステップS13で、曲(BGM)の再生を開始する。つまり、CPU40は、選択された曲(BGM)の再生指示をDSP52に与える。したがって、DSP52は、曲(BGM)に対応するBGMデータ504c(BGM1データ5040、BGM2データ5042、…)からオーディオデータを生成し、BGMの再生を開始する。ただし、上述したように、ゲーム全体処理(リズムゲーム)を開始したとき、またはBGMの再生を開始したときには、BGMの豪華度は「普通」に設定される。つまり、普通フラグ504sがオンされた状態である。したがって、ステップS13では、BGM1が100%の音量で再生されるのである。
【0171】
次のステップS15では、フレームカウンタ504nを初期化(カウント値=0に設定)する。図19に示すように、続くステップS17では、発射タイミングの所定時間(この実施例では、2秒(120フレーム))前のオブジェクト110、112をベルトコンベアオブジェクト106の最後尾(右端)に配置する。このとき、発射データ504hに対応する発射タイミングテーブルが参照される。図示は省略するが、このように配置されたオブジェクト110、112は、ベルトコンベアオブジェクト106によって、所定時間(たとえば、120フレーム)以内に、発射台オブジェクト106の内部に移動される。
【0172】
続くステップS19では、発射タイミングのオブジェクト110、112が有るかどうかを判断する。ここでは、CPU40は、発射データ504hに対応する発射タイミングテーブルを参照して、フレームカウンタ504nのカウント値が示すフレーム数と一致する発射タイミングフレームが存在するかどうかを判断する。
【0173】
ステップS19で“NO”であれば、つまり発射タイミングのオブジェクト110、112が無ければ、そのままステップS23に進む。一方、ステップS19で“YES”であれば、つまり発射タイミングのオブジェクト110、112が有れば、ステップS21で、該当するオブジェクト110、112の移動および判定のタスクを起動して、ステップS23に進む。ステップS21では、CPU40は、現フレームと一致する発射タイミングフレームに対応して記載されたトラック番号および到達順に従って、配球データ504dに対応する配球情報を参照し、該当するオブジェクト情報に含まれる種別が示すオブジェクト110、112についてのオブジェクトの移動および判定のタスクを起動する。ただし、オブジェクトの移動および判定処理(図23−図25、図26−図27)については、後で詳細に説明する。
【0174】
ステップS23では、連続回数が10の倍数かどうかを判断する。つまり、CPU40は、連続回数カウンタ504pのカウント値が10の倍数かどうかを判断する。ステップS23で“NO”であれば、つまり連続回数が10の倍数でなければ、そのまま図22に示すステップS65に進む。一方、ステップS23で“YES”であれば、つまり連続回数が10の倍数であれば、ステップS25で、連続回数が第4所定値(たとえば、40)以上であるかどうかを判断する。
【0175】
ステップS25で“YES”であれば、つまり連続回数が第4所定値以上であれば、BGMの豪華度が「エクセレント」である状態が継続していると判断して、図22に示すステップS63に進む。一方、ステップS25で“NO”であれば、つまり連続回数が第4所定値以上でなければ、図20に示すステップS27で、連続回数が第1所定値(たとえば、10)であるかどうかを判断する。
【0176】
ステップS27で“NO”であれば、つまり連続回数が第1所定値でなければ、連続回数は第2所定値(たとえば、20)または第3所定値(たとえば、30)と判断して、図21に示すステップS41に進む。一方、ステップS27で“YES”であれば、つまり連続回数が第1所定値であれば、ステップS29で、最低フラグ504rがオンであるかどうかを判断する。
【0177】
ステップS29で“YES”であれば、つまり最低フラグ504rがオンであれば、BGMの豪華度が「最低」であると判断して、ステップS31で、通常フラグ504sをオンし、ステップS33で、BGM1を100%の音量で再生する。つまり、ステップS33では、CPU40の指示に従って、DSP52が、BGM1を構成する4つのトラックについての音量を最大(100%)に変化させるのである。さらに、ステップS35で、第1連続ボーナスポイント(たとえば、50ポイント)をスコアに加算して、ステップS65に進む。つまり、ステップS35では、CPU40は、スコアデータ504mが示すスコアに第1連続ボーナスポイントを加算し、スコアデータ504mを更新する。このとき、ゲーム画面100に表示されたスコア120の表示も更新される。以下、ポイントがスコアに加算される場合について同様である。
【0178】
なお、図示は省略するが、ステップS31で、通常フラグ504sがオンされたとき、最低フラグ504rはオフされる。
【0179】
一方、ステップS29で“NO”であれば、つまり最低フラグ504rがオフであれば、通常フラグ504sがオンであるため、ステップS37で、グレートフラグ504tをオンし、ステップS39で、BGM1およびBGM2を100%の音量で再生して、ステップS35に進む。つまり、ステップS39では、CPU40の指示に従って、DSP52が、BGM1に追加するように、BGM2を100%の音量で再生する。
【0180】
なお、図示は省略するが、ステップS37では、グレートフラグ504tがオンされたときに、通常フラグ504sがオフされる。後述するステップS45において同じ。
【0181】
図21に示すように、ステップS41では、連続回数が第2所定値であるかどうかを判断する。つまり、CPU40は、連続回数カウンタ504pのカウント値が第2所定値であるかどうかを判断する。ステップS41で“NO”であれば、つまり連続回数が第3所定値であれば、図22に示すステップS55に進む。一方、ステップS41で“YES”であれば、つまり連続回数が第2所定値であれば、ステップS43で、通常フラグ504sがオンであるかどうかを判断する。
【0182】
ステップS43で“YES”であれば、つまり通常フラグ504sがオンであれば、ステップS45で、グレートフラグ504tをオンして、ステップS47で、BGM1およびBGM2を100%の音量で再生し、ステップS49で、第2連続ボーナスポイント(たとえば、100ポイント)をスコアに加算して、図22に示すステップS65に進む。
【0183】
一方、ステップS43で“NO”であれば、つまり通常フラグ504sがオフであれば、グレートフラグ504tがオンであるため、ステップS51で、エクセレントフラグ504uをオンし、ステップS53で、BGM1−BGM3を100%の音量で再生して、ステップS49に進む。つまり、ステップS53では、CPU40の指示に従って、DSP52は、BGM1およびBGM2に追加するように、BGM3を最大(100%)の音量で再生する。
【0184】
なお、図示は省略するが、ステップS51で、エクセレントフラグ504uがオンされたとき、グレートフラグ504tはオフされる。後述するステップS57において同じ。
【0185】
図22に示すように、ステップS55では、エクセレントフラグ504uがオンであるかどうかを判断する。ステップS55で“NO”であれば、つまりグレートフラグ504tがオンであれば、ステップS57で、エクセレントフラグ504uをオンし、ステップS59で、BGM1−BGM3を100%の音量で再生し、ステップS61で、第3連続ボーナスポイント(たとえば、150ポイント)をスコアに加算して、ステップS65に進む。
【0186】
一方、ステップS55で“YES”であれば、つまりエクセレントフラグ504uがオンであれば、ステップS63で、第4連続ボーナスポイント(たとえば、200ポイント)をスコアに加算して、ステップS65に進む。ステップS65では、演奏終了かどうかを判断する。つまり、CPU40は、選択されたBGM1データ5040、BGM2データ5042、…を最後(最終フレーム)まで再生したかどうかを判断する。
【0187】
ステップS65で“NO”であれば、つまり演奏を終了していなければ、ステップS67で、フレーム数を1加算して、つまりフレームカウンタ504nのカウント値を1加算して、図19に示したステップS17に戻る。詳細な説明は省略するが、ステップS17−S67のスキャンタイムが1フレームである。一方、ステップS65で“YES”であれば、つまり演奏終了であれば、ゲーム全体処理を終了する。
【0188】
図23−図25は、オブジェクトの移動および判定処理を示すフロー図である。このオブジェクトの移動および判定処理は、ボールオブジェクト110についてのオブジェクトの移動および判定のタスクが起動された場合に処理が開始され、ゲーム全体処理とは並列的に、また、ボールオブジェクト110単位で実行される。後述するアイテムオブジェクト112についてのオブジェクトの移動および判定処理(図26−図27)についても同様である。
【0189】
図23に示すように、CPU40は、オブジェクトの移動および判定処理を開始すると、ステップS91で、再生タイミングフレーム、種別(メロディの識別情報)、飛行時間、最小距離、最大距離および特殊フラグを読み込む。
【0190】
詳細な説明は省略するが、オブジェクトの移動および判定処理が開始される時点で、再生タイミングフレーム等を読み出すトラックは決定されており、したがって、当該トラックが割り当てられたプレイヤオブジェクト102a−102dおよびカラーボールオブジェクト110aの色も決定されている。ただし、特殊フラグがオンの場合には、レインボーボールオブジェクト110bに決定される。
【0191】
次のステップS93では、プレイヤオブジェクト102a−102dの位置に基づいて着弾点Bを決定する。ここでは、図15(A)を用いて説明したように、CPU40は、対応するプレイヤオブジェクト102a−102dの現在位置Pを中心として、最小距離(半径r)と最大距離(半径R)とで決定される所定範囲内で任意に着弾点Bを決定する。続くステップS95では、発射する水平方向の角度φを数2に従って算出する。さらに、ステップS97で、発射する速度(初速度)vおよび垂直方向の角度θを、数3および数6に従って算出する。
【0192】
続いて、ステップS99で、ボールオブジェクト110を発射する。このとき、特殊フラグがオンであれば、レインボーボールオブジェクト110bが発射される。一方、特殊フラグがオフであれば、上述したように、予め決定された色のカラーボールオブジェクト110aが発射される。ただし、発射する方向は、水平方向の角度φおよび垂直方向の角度θで決定され、発射する初速度は、速度vである。
【0193】
さらに、ステップS101では、着弾点Bを含む所定範囲を示す着弾マーカ114を表示する。次のステップS103では、ボールオブジェクト110が着弾点Bに到達する所定フレーム前であるかどうかを判断する。ここでは、CPU40は、フレームカウンタ504nのカウント値が、ステップS91で読み込んだ再生タイミングフレームの所定フレーム(5フレーム)前になったかどうかを判断する。ステップS103で“NO”であれば、つまりボールオブジェクト110が着弾点Bに到達する所定フレーム前になっていなければ、同じステップS103に戻る。ここでは、簡単のため、ステップS103で“NO”の場合にはそのままステップS103に戻るようにしてあるが、実際には、斜方投射の物理計算に従って、ボールオブジェクト110の移動が制御され、その様子がゲーム画面100に表示される。後述するアイテムオブジェクト112についても同様である。
【0194】
一方、ステップS103で“YES”であれば、つまりボールオブジェクト110が着弾点Bに到達する所定フレーム前になると、ステップS105で、捕球またはレシーブされたかどうかを判断する。上述したように、この実施例では、CPU40は、プレイヤが第1コントローラ34を振っていない場合には、プレイヤオブジェクト102a−102dを中心とする第1所定範囲内に、当該ボールオブジェクト110の着弾点Bが含まれているかどうかで、当該ボールオブジェクト110を捕球したかどうかを判断する。一方、CPU40は、プレイヤが第1コントローラ34を振った場合には、プレイヤオブジェクト102a−102dを中心とする第2所定範囲内に、ボールオブジェクト110の着弾点Bが含まれているかどうかで、当該ボールオブジェクト110をレシーブ(回転レシーブ)したかどうかを判断する。
【0195】
ステップS105で“YES”であれば、つまり捕球またはレシーブされた場合には、図24に示すステップS109に進む。一方、ステップS105で“NO”であれば、つまり捕球またはレシーブされていない場合には、ステップS107で、ボールオブジェクト110が着弾点Bを超えたかどうかを判断する。つまり、CPU40は、フレームカウンタ504nのカウント値が、ステップS91で読み込んだ再生タイミングフレームを超えたかどうかを判断する。
【0196】
ステップS107で“NO”であれば、つまりボールオブジェクト110が着弾点Bを超えていなけければ、そのままステップS105に戻る。一方、ステップS107で“YES”であれば、つまりボールオブジェクト110が着弾点Bを超えていれば、捕球ないしレシーブを失敗したと判断して、図25に示すステップS123に進む。
【0197】
図24に示すように、ステップS109では、カラーボールオブジェクト110aかどうかを判断する。ここでは、CPU40は、ステップS91で読み込んだ特殊フラグがオフであるかどうかを判断する。ステップS109で“NO”であれば、つまりレインボーボールオブジェクト110bであれば、ステップS111で、レインボーボールについてのポイント(たとえば、50ポイント)をスコアに加算して、ステップS117に進む。
【0198】
一方、ステップS109で“YES”であれば、つまりカラーボールオブジェクト110aであれば、ステップS113で、カラーボールについてのポイント(たとえば、10ポイント)をスコアに加算して、ステップS115で、正しいプレイヤオブジェクト102a−102dかどうかを判断する。つまり、CPU40は、プレイヤ情報データ504fを参照して、当該オブジェクト情報を含むトラックが割り当てられたプレイヤオブジェクト102a−102dが、当該カラーボールオブジェクト110aを捕球ないしレシーブしたかどうかを判断する。
【0199】
ステップS115で“YES”であれば、つまり正しいプレイヤオブジェクト102a−102dであれば、ステップS117で、割り当てられた音、つまり種別が示すメロディ音を通常再生して、ステップS121に進む。したがって、ボールオブジェクト110を捕球ないしレシーブしたことに応じて、当該プレイヤオブジェクト102a−102dが担当するパート(トラック)のメロディ音がそのまま再生される。詳細な説明は省略するが、ステップS91で読み込んだ再生タイミングフレームでメロディ音が再生される。これは、後述するステップS119においても同じである。
【0200】
一方、ステップS115で“NO”であれば、つまり正しいプレイヤオブジェクト102a−102dでなければ、ステップS119で、割り当てられた音、つまり種別が示すメロディ音を、その音程をずらして再生して、ステップS121に進む。
【0201】
ステップS121では、連続回数カウンタ504pのカウント値を1加算して、オブジェクトの移動および判定処理を終了する。ただし、コンピュータプレイヤが操作するプレイヤオブジェクト102a−102dが、カラーボールオブジェクト110を捕球ないしレシーブした場合には、ステップS111で、ポイントをスコアに加算しなくてもよいし、ステップS119で、連続回数カウンタ504pのカウント数を加算しないようにしてもよい。
【0202】
また、図23で示したように、ステップS107で“YES”と判断されると、図25に示すステップS123で、スコアを減点する。つまり、CPU40は、スコアデータ504mが示すスコアから捕球ないしレシーブを失敗した場合のポイント(たとえば、10ポイント)を減算し、スコアデータ504mを更新する。以下、スコアが減点される場合について同様である。次のステップS125では、失敗の音(効果音)を再生する。ここでは、CPU40の指示に従って、GPU52は、失敗の効果音に対応する音データ504e(サウンドデータ)を読み出して、オーディオデータを生成する。さらに、ステップS127で、連続回数カウンタ504pをリセット(カウント値を0に)して、ステップS129で、エクセレントフラグ504uがオンであるかどうかを判断する。
【0203】
ステップS129で“YES”であれば、つまりエクセレントフラグ504uがオンである場合には、ステップS131で、通常フラグ504sをオンし、ステップS133で、BGM1を100%の音量で再生して、オブジェクトの移動および判定処理を終了する。つまり、ステップS131では、DSP52は、BGM2およびBGM3を構成するトラックについての音量を最小(0%)にする。
【0204】
なお、図示は省略するが、ステップS131で、通常フラグ504sがオンされると、エクセレントフラグ504uはオフされる。後述するように、ステップS135で、最低フラグ504rがオンされる場合も同様である。
【0205】
一方、ステップS129で“NO”であれば、つまりエクセレントフラグ504uがオフであれば、ステップS135で、最低フラグ504rをオンし、ステップS137で、BGM1を33%の音量で再生して、オブジェクトの移動および判定処理を終了する。つまり、ステップS137では、DSP52は、BGM1を100%の音量で再生している場合には、BGM1を構成する4つのトラックの音量を33%に低減する。または、DSP52は、BGM1およびBGM2を100%の音量で再生している場合には、BGM1を構成する4つのトラックの音量を33%に低減するとともに、BGM2を構成するトラックの音量を最小にする。
【0206】
ただし、CPU40は、ステップS129で“NO”と判断したときに、最低フラグ504rがオンである場合には、ステップS135およびS137の処理は実行せずに、そのままオブジェクトの移動および判定処理を終了する。
【0207】
なお、図23−図25に示すオブジェクトの移動および判定処理は、一連の全ての処理が実行されるため、ステップS91−S137のスキャンタイムは1フレームではない。このことは、次のアイテムオブジェクト112についてオブジェクトの移動および判定処理も同様である。
【0208】
また、図23−図25では省略したが、プレイヤオブジェクト102a−102dがボールオブジェクト110を捕球またはレシーブした場合には、捕球したりレシーブしたりした様子が表示された後に、ボールオブジェクト110は消去される。一方、プレイヤオブジェクト102a−102dがボールオブジェクト110の捕球またはレシーブを失敗した場合には、ボールオブジェクト110は地面で1回ないし2回バウンドした後に、消去される。
【0209】
図26および図27は、アイテムオブジェクト112についてのオブジェクトの移動および判定処理を示すフロー図である。なお、アイテムオブジェクト112のオブジェクトの移動および判定処理の一部の処理については、上述したボールオブジェクト110のオブジェクトの移動および判定処理と同様の処理が存在するため、重複した内容については簡単に説明することにする。また、このオブジェクトの移動および判定処理は、ゲーム全体処理やボールオブジェクト110のオブジェクトの移動および判定処理と並列的に、また、アイテムオブジェクト112単位で実行される。
【0210】
図26に示すように、CPU40は、オブジェクトの移動および判定処理を開始すると、ステップS151で、再生タイミングフレーム、飛行時間、最小距離および最大距離を読み込む。
【0211】
詳細な説明は省略するが、オブジェクトの移動および判定処理が開始される時点で、再生タイミングフレーム等を読み出すトラックは決定されており、したがって、当該トラックが割り当てられたプレイヤオブジェクト102a−102dも決定されている。また、発射タイミングのオブジェクト110、112についてのタスクを起動する時点(ゲーム全体処理のステップS21)において、アイテムオブジェクト112の種類(コインオブジェクト112a、バナナオブジェクト112b、鉄球オブジェクト112cの別)も特定されている。
【0212】
図26に戻って、ステップS153では、プレイヤオブジェクト102a−102dの位置Pに基づいて着弾点Bを決定し、ステップS155で、発射する水平方向の角度φを算出し、さらに、ステップS157で、発射する速度vおよび垂直方向の角度θを算出する。そして、ステップS159で、アイテムオブジェクト112(コインオブジェクト112a、バナナオブジェクト112b、または、鉄球オブジェクト112c)を発射する。続くステップS161では、着弾点を含む所定範囲を示す着弾マーカ116を表示する。ただし、コインオブジェクト112aの場合には、着弾マーカ116は表示されないため、この処理は実行されない。
【0213】
そして、ステップS163では、アイテムオブジェクト112が着弾点を超えたかどうかを判断する。ステップS163で“NO”であれば、そのまま同じステップS163に戻る。一方、ステップS163で“YES”であれば、ステップS165で、当ったかどうかを判断する。ここでは、ボールオブジェクト110の場合とは異なり、プレイヤオブジェクト102a−102dとアイテムオブジェクト112との当りが判定される。
【0214】
なお、詳細な説明は省略するが、アイテムオブジェクト112が着弾点Bに到達する直前であっても、プレイヤオオブジェクト102a−102dに当たったと判断される場合もある。かかる場合にも、ステップS165で“YES”と判断される。
【0215】
ステップS165で“NO”であれば、つまり当っていなければ、ステップS167で、所定時間が経過したかどうかを判断する。ただし、上述したように、所定時間は、アイテムオブジェクト112の種類に応じて異なる。具体的には、コインオブジェクト112aの場合には、所定時間は3秒であり、バナナオブジェクト112bの場合には、所定時間は4秒であり、鉄球オブジェクト112cの場合には、所定時間は2秒である。
【0216】
ステップS167で“NO”であれば、つまり所定時間が経過していなければ、ステップS165に戻る。図示は省略するが、このとき、コインオブジェクト112aおよびバナナオブジェクト112bは落下位置に残留し続ける。また、このとき、鉄球オブジェクト112cは、落下位置でバウンドし、進行方向に移動する。一方、ステップS167で“YES”であれば、つまり、所定時間が経過すれば、ステップS169で、アイテムオブジェクト112を消滅させて、オブジェクトの移動および判定処理を終了する。
【0217】
また、ステップS165で“YES”であれば、つまり当った場合には、図27(A)−(C)に示すように、アイテムオブジェクト112の種類に応じた処理を実行する。
【0218】
図27(A)に示すように、コインオブジェクト112aの場合には、ステップS171で、コインオブジェクト112aのポイント(たとえば、10ポイント)をスコアに加算し、ステップS173で、コインオブジェクト112aを消去して、オブジェクトの移動および判定処理を終了する。つまり、プレイヤオブジェクト102a−102dによってコインが取得され、それに応じたポイントが加算されるのである。
【0219】
図27(B)に示すように、バナナオブジェクト112bの場合には、ステップS181で、移動不能フラグ504vをオンし、ステップS183で、バナナオブジェクト112bを消去して、オブジェクトの移動および判定処理を終了する。ただし、ステップS181では、バナナオブジェクト112bに触れたプレイヤオブジェクト102a−102dに対応するレジスタのビットにデータ値「1」が設定される。したがって、この場合には、プレイヤオブジェクト102a−102dは、バナナで滑って転び、少しの間移動不能な状態にされる。
【0220】
図27(C)に示すように、鉄球オブジェクト112cの場合には、ステップS191で、ダメージフラグ504wをオンする。ただし、ここでは、鉄球オブジェクト112cに触れたプレイヤオブジェクト102a−102dに対応するレジスタのビットにデータ値「1」が設定される。次のステップS193では、鉄球オブジェクト112cのポイント(たとえば、50ポイント)をスコアから減算する。さらに、ステップS195で、連続回数カウンタ504pをリセットする。そして、ステップS197で、鉄球オブジェクト112cを消去して、オブジェクトの移動および判定処理を終了する。
【0221】
図28および図29は、プレイヤオブジェクト制御処理を示すフロー図である。このプレイヤオブジェクト制御処理は、上述したゲーム全体処理、ボールオブジェクト110やアイテムオブジェクト112についてのオブジェクトの移動および判定処理と並列して実行されるとともに、各プレイヤオブジェクト102a−102dについて個別に実行される。したがって、ここでは、操作する対象のプレイヤオブジェクト102a−102dを、「当該プレイヤオブジェクト102a−102d」ということにする。
【0222】
図28に示すように、CPU40は、プレイヤオブジェクト制御処理を開始すると、ステップS221で、移動不能フラグ504vがオンであるかどうかを判断する。ここでは、CPU40は、移動不能フラグ504vを構成する4つのビットのうち、当該プレイヤオブジェクト102a−102dに対応するビットにデータ値「1」が設定されているかどうかを判断する。
【0223】
ステップS221で“YES”であれば、つまり移動不能フラグ504vがオンであれば、プレイヤの操作に従って当該プレイヤオブジェクト102a−102dを移動させないと判断して、図29に示すステップS231にそのまま進む。一方、ステップS221で“NO”であれば、つまり移動不能フラグ504vがオフであれば、ステップS223で、ジョイスティック94aの操作が有るかどうかを判断する。ここでは、CPU40は、操作データバッファ504aを参照して、コントローラデータに、ジョイスティック94aの操作データが含まれているかどうかを判断するのである。
【0224】
ステップS223で“NO”であれば、つまりジョイスティック94aの操作が無ければ、後述するステップS227に進む。一方、ステップS223で“YES”であれば、つまりジョイスティック94aの操作が有れば、ステップS225で、指示された方向に、当該プレイヤオブジェクト102a−102dを移動させて、ステップS231に進む。
【0225】
ステップS227では、第1コントローラ34を振ったかどうかを判断する。ここでは、CPU40は、操作データバッファ504aを参照して、コントローラデータに第1コントローラ34からの加速度データが含まれている場合に、当該加速度データに基づく加速度値の変化に基づいて第1コントローラ34自身の動きを検出し、当該第1コントローラ34を上下または左右等の振ったかどうかを判断するのである。
【0226】
ステップS227で“NO”であれば、つまり第1コントローラ34を振っていなければ、そのままステップS231に進む。一方、ステップS227で“YES”であれば、つまり第1コントローラ34を振っていれば、ステップS229で、上述した所定のルールに従って決定された目標のボールオブジェクト110の着弾点Bに向かって、当該プレイヤオブジェクト102a−102dをジャンプさせて回転レシーブさせて、ステップS231に進む。つまり、ステップS229では、着弾点Bに向けて当該プレイヤオブジェクト102a−102dをジャンプさせて回転レシーブさせる様子のアニメーションの再生が開始される。また、図示は省略するが、ジャンプさせて回転レシーブさせる様子のアニメーションの再生が開始されると、所定時間(所定のコマ数)の再生後に終了される。
【0227】
図29に示すように、ステップS231では、ダメージフラグ504wがオンであるかどうかを判断する。ここでは、CPU40は、ダメージフラグ504wを構成するレジスタの4つのビットのうち、当該プレイヤオブジェクト102a−102dに対応するビットにデータ値「1」が設定されているかどうかを判断するのである。
【0228】
ステップS231で“NO”であれば、つまりダメージフラグ504wがオフであれば、そのままステップS237に進む。一方、ステップS231で“YES”であれば、つまりダメージフラグ504wがオンであれば、ステップS233で、当該プレイヤオブジェクト102a−102dについて、ダメージを与えられたアニメーションの再生を開始し、ステップS235で、ダメージフラグ504wをオフして、ステップS237に進む。
【0229】
ただし、ステップS235では、ダメージフラグ504wを構成するレジスタの4つのビットのうち、当該プレイヤオブジェクト102a−102dについてのビットにデータ値「0」が設定される。また、図示は省略するが、ダメージを与えるアニメーションの再生が開始されると、所定時間(所定のコマ数)の再生後に終了される。
【0230】
ステップS237では、移動不能フラグ504vがオフからオンに変化したかどうかを判断する。ここでは、CPU40は、移動不能フラグ504vを構成する4つのビットのうち、当該プレイヤオブジェクト102a−102dに対応するビットにデータ値「1」が設定されており、1つ前のフレームでは、データ値「0」が設定されていたかどうかを判断する。
【0231】
ステップS237で“YES”であれば、つまり移動不能フラグ504vがオフからオンに変化した場合には、ステップS239で、移動不能時間タイマ504qをスタートし、ステップS241で、当該プレイヤオブジェクト102a−102dについて、移動不能のアニメーションの再生を開始して、図28に示したステップS221に戻る。
【0232】
一方、ステップS237で“NO”であれば、つまり移動不能フラグ504vがオンまたはオフの状態が継続している場合には、ステップS243で、所定時間が経過したかどうかを判断する。ここでは、CPU40は、移動不能時間タイマ504qのタイマ値が所定時間(たとえば、2秒)を超えたかどうかを判断する。ステップS243で“NO”であれば、つまり所定時間が経過していなければ、移動不能な状態で無い、または移動不能な状態を解除しないと判断して、そのままステップS221に戻る。
【0233】
しかし、ステップS243で“YES”であれば、つまり所定時間が経過すれば、移動不能な状態を解除すると判断して、ステップS245で、移動不能のアニメーションの再生を停止し、ステップS247で、移動不能フラグ504vをオフして、ステップS221に戻る。
【0234】
ただし、ステップS247では、移動不能フラグ504vを構成するレジスタの4つのビットのうち、当該プレイヤオブジェクト102a−102dについてのビットにデータ値「0」を設定する。
【0235】
なお、図28および図29に示すプレイヤオブジェクト制御処理のスキャンタイムは1フレームである。
【0236】
この実施例によれば、BGMに合わせたタイミングで着弾するボールオブジェクトを当該タイミングで着弾するように発射させ、着弾するタイミングでプレイヤオブジェクトがボールオブジェクトを捕球ないしレシーブするように、当該プレイヤオブジェクトを制御すると、ボールオブジェクトに割り当てられたメロディ音が再生されるので、単にボタンを押すタイミングだけでプレイするリズムゲームとは異なる、新しい感覚のリズムゲームを提供することができる。
【0237】
また、この実施例では、ボールオブジェクトに種類を設けることより、捕球ないしレシーブしたボールの種類で、メロディ音の音程が変化される場合がある。また、アイテムオブジェクトを設けることにより、コインアイテムを取得することにより、ポイントを獲得できたり、お邪魔アイテム(バナナ、鉄球)によって、ポイントが減ったり、プレイヤオブジェクトが移動できなくなったりする。つまり、リズムゲーム以外のゲーム要素を加えることができるので、ゲームの面白味を増大させることができる。
【0238】
なお、この実施例では、バレーボールのようなボールオブジェクトを、プレイヤオブジェクトに捕球ないしレシーブさせることにより、捕球ないしレシーブを成功したことを示す効果音として、BGMの主旋律についてのメロディ音を出力するようにしたが、副旋律の音を出力するようにしてもよい。
【0239】
また、この実施例では、所定期間において、プレイヤオブジェクトを中心とする第1所定範囲内にボールオブジェクトの着弾点が存在する場合には、当該ボールオブジェクトを捕球するようにしたが、このような状態において、所定の操作入力が有る場合に、ボールオブジェクトをレシーブするようにしてもよい。たとえば、所定の操作入力としては、第1コントローラを振る動作であってよいし、所定のキー入力(Aボタン82dがオン)であってもよい。
【0240】
さらに、この実施例では、バレーボールのようなボールオブジェクトを捕球ないしレシーブするようにしたため、対応するプレイヤオブジェクトを識別可能とするために、プレイヤオブジェクトに割り当てた色と同じ色をボールオブジェクトに付すようにしたが、これに限定される必要はない。たとえば、色に代えて、プレイヤオブジェクトを識別可能な模様(たとえば、対応するプレイヤオブジェクトの顔画像)をオブジェクトに付したり、または形状(たとえば、球、三角錐、四角錐、円柱の形状のオブジェクト)や種類(たとえば、バレーボール、野球のボール、テニスボール、サッカーボール)によってプレイヤオブジェクトを識別可能にしたオブジェクトを用いたりするようにしてもよい。
【0241】
さらにまた、この実施例では、ゲーム装置のCPUがゲーム処理を実行するようにしたが、そのゲーム処理のための各処理が複数のコンピュータ等によって分散処理されてもよい。
【符号の説明】
【0242】
10 …ゲームシステム
12 …ゲーム装置
14 …コントローラ
28 …モニタ
38 …メモリカード
40 …CPU
42b …GPU
42e,46 …メインメモリ
44 …フラッシュメモリ
50 …無線通信モジュール
62 …メモリカード用コネクタ
【技術分野】
【0001】
この発明はゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム制御方法に関し、特にたとえば、リズムゲームを行う、ゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム制御方法に関する。
【背景技術】
【0002】
この種のゲーム装置の一例が特許文献1に開示されている。この特許文献1のゲーム装置では、プレイヤが音楽を演奏するために必要な操作スイッチの操作情報(タイミングおよび種類)が表示部の画面上に表示される。プレイヤがその表示に合わせて適切に操作スイッチを順次操作することによって、正確な音楽が演奏される。
【特許文献1】特許第3392120号[A63F 13/00,A63F 13/10]
【発明の概要】
【発明が解決しようとする課題】
【0003】
しかし、特許文献1に開示されたゲーム装置では、表示部に表示された操作情報に従ってタイミング良く操作スイッチを操作するだけなので、操作が単調であった。また、別のゲーム要素を加えることも困難であった。
【0004】
それゆえに、この発明の主たる目的は、新規なリズムゲームを提供できる、ゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム制御方法を提供することである。
【課題を解決するための手段】
【0005】
第1の発明は、音楽に合わせて設定されたタイミングデータを記憶するタイミングデータ記憶部を備え、リズムゲームを行うゲーム装置のゲームプログラムであって、ゲーム装置のコンピュータを、プレイヤオブジェクト制御部と、オブジェクト移動部と、判定部と、音制御部として機能させる。プレイヤオブジェクト制御部は、プレイヤの操作に基づいて、ゲーム空間内においてプレイヤオブジェクトを移動させる。オブジェクト移動部は、判定用オブジェクトの到達位置を設定し、タイミングデータが示すタイミングで当該到達位置に到達するように、当該判定用オブジェクトを移動させる。判定部は、タイミングを含む所定期間にプレイヤオブジェクトが到達位置から第1所定範囲内に位置するか否かに基づいて、成功判定を行う。音制御部は、判定部における判定結果に基づいて、音出力を制御する。
【0006】
第1の発明によれば、タイミングデータが示すタイミングで到達位置に到達するように判定オブジェクトを移動させ、判定オブジェクトの到達位置から所定範囲内にプレイヤオブジェクトが存在するかどうかで音出力を制御するので、単にタイミングを合わせて操作スイッチを操作するだけのリズムゲームとは異なり、新しい感覚のリズムゲームを提供することができる。
【0007】
第2の発明は、第1の発明に従属し、オブジェクト移動部は、プレイヤオブジェクトの位置から第2所定範囲の位置に判定用オブジェクトが到達するように到達位置を設定する。
【0008】
第2の発明によれば、判定用オブジェクトの到達位置をプレイヤオブジェクトの位置から所定範囲の位置に設定するので、到達位置を簡単に決定することができる。また、所定範囲をプレイヤオブジェクトの移動可能な距離で設定しておけば、プレイヤオブジェクトが到達し得ないような位置を判定用オブジェクトの到達位置に設定するような不都合は生じない。
【0009】
第3の発明は、第1の発明に従属し、オブジェクト移動部は、プレイヤオブジェクトの位置から所定距離の位置に判定用オブジェクトが到達するように到達位置を設定する。
【0010】
第3の発明によれば、判定用オブジェクトをプレイヤオブジェクトの位置から所定距離離れた位置に到達させるので、第2の発明と同様に、到達位置を簡単に決定することができる。また、プレイヤオブジェクトの近傍に到達位置が設定されることが無いため、何らプレイヤオブジェクトを操作せずに、良い判定結果が得られるような不都合が生じない。
【0011】
第4の発明は、第1の発明に従属し、プレイヤオブジェクト制御部は、操作装置に対する方向入力操作に基づいてプレイヤオブジェクトを移動させる。また、判定部は、タイミングまでにプレイヤオブジェクトが到達位置から第1所定範囲を含む第3所定範囲内に移動し、かつ所定期間に操作装置の振り操作が行われたか否かによって成功判定を行う。
【0012】
第4の発明によれば、所定期間に操作装置の振り操作が行われた場合には、第1所定範囲を含む第3所定範囲のような広い範囲で成功判定が行われるため、単にプレイヤオブジェクトを移動させるだけではないため、操作が単調になることがない。
【0013】
第5の発明は、第1の発明に従属し、プレイヤオブジェクト制御部は、操作装置に対する方向入力操作に基づいてプレイヤオブジェクトを移動させる。判定部は、タイミングまでにプレイヤオブジェクトが到達位置から第1所定範囲を含む第3所定範囲内に移動し、かつ所定期間に操作装置に対する所定のキー操作が行われた否かによって成功判定を行う。
【0014】
第5の発明においても、第4の発明と同様に、操作が単調になることがなく、ゲームへの興味が減退するのを防止することができる。
【0015】
第6の発明は、第1の発明に従属し、音制御部は、判定部において成功と判定されたとき、成功を示す効果音を出力させ、失敗と判定されたとき、失敗を示す効果音を出力させる。
【0016】
第6の発明によれば、成功した場合と失敗した場合とで異なる効果音を出力させるので、たとえば、成功した場合には、音楽に合わせた効果音を出力することにより、プレイヤに爽快感を与えることができ、失敗した場合には、不協和音のような不快な効果音を出力することにより、成功する意欲をもたらすことができる。
【0017】
第7の発明は、第1の発明に従属し、音制御部は、タイミングデータに関連する音楽をBGMとして出力し、判定部において成功と判定されたとき、BGMの音量およびパートの少なくとも一方を増加させ、失敗と判定されたとき、BGMの音量およびパートの少なくとも一方を減少させる。
【0018】
第7の発明によれば、成功が判定されるとBGMの豪華さを増大させることができ、失敗が判定されるとBGMの豪華さを減少させることができる。
【0019】
第8の発明は、第2または第3の発明に従属し、プレイヤオブジェクト制御部は、複数のプレイヤオブジェクトの各々を、複数のプレイヤのそれぞれの操作に従って移動させる。また、オブジェクト移動部は、複数のプレイヤオブジェクトのいずれかの位置に基づいて判定用オブジェクトの到達位置を設定する。
【0020】
第8の発明によれば、複数のプレイヤオブジェクトが存在する場合には、そのいずれかの位置に基づいて判定用オブジェクトの到達位置を設定するので、到達位置の設定が簡単である。また、複数のプレイヤで協力したプレイが可能である。
【0021】
第9の発明は、第8の発明に従属し、判定用オブジェクトは、対応するプレイヤオブジェクトを識別可能な外観を有している。また、オブジェクト移動部は、対応するプレイヤオブジェクトの位置に基づいて到達位置を決定する。
【0022】
第9の発明によれば、プレイヤオブジェクトを識別可能な外観の判定用オブジェクトを設けるので、プレイヤは自身のプレイヤオブジェクトに対応する判定用オブジェクトを容易に知ることができる。また、複数のプレイヤオブジェクトが存在する場合であっても、判定用オブジェクトの到達位置を簡単に設定することができる。
【0023】
第10の発明は、第9の発明に従属し、到達位置に、第1所定範囲を示す指標を対応するプレイヤオブジェクトを識別可能に表示させるマーカ表示部として、コンピュータをさらに機能させる。
【0024】
第10の発明によれば、判定用オブジェクトの到達位置に、第1所定範囲を示す指標を表示させるので、当該指標を見てプレイヤオブジェクトを移動させればよく、操作が比較的簡単である。
【0025】
第11の発明は、第1または第8の発明に従属し、ゲームプログラムは、コンピュータを、配置部とアイテム処理部としてさらに機能させる。配置部は、ゲーム空間に判定用オブジェクト以外のアイテムオブジェクトを配置する。アイテム処理部は、プレイヤオブジェクトがアイテムオブジェクトに接触したか否かに応じてプレイヤオブジェクトに所定の効果を与える。
【0026】
第11の発明によれば、アイテムを配置し、これにプレイヤオブジェクトが接触した場合には、所定の効果を与えるので、リズムゲームに他のゲーム要素を加えることができる。したがって、ゲームの面白味を増大させることができる。
【0027】
第12の発明は、リズムゲームを行うゲーム装置であって、タイミングデータ記憶部と、プレイヤオブジェクト制御部と、オブジェクト移動部と、判定部と、音制御部を備える。タイミングデータ記憶部は、音楽に合わせて設定されたタイミングデータを記憶する。プレイヤオブジェクト制御部は、プレイヤの操作に基づいて、ゲーム空間内においてプレイヤオブジェクトを移動させる。オブジェクト移動部は、判定用オブジェクトの到達位置を設定し、タイミングデータが示すタイミングで当該到達位置に到達するように、当該判定用オブジェクトを移動させる。判定部は、タイミングを含む所定期間にプレイヤオブジェクトが到達位置から第1所定範囲内に位置するか否かに基づいて、成功判定を行う。音制御部は、判定部における判定結果に基づいて、音出力を制御する。
【0028】
第13の発明は、リズムゲームを行うゲームシステムであって、タイミングデータ記憶部と、プレイヤオブジェクト制御部と、オブジェクト移動部と、判定部と、音制御部を備える。タイミングデータ記憶部は、音楽に合わせて設定されたタイミングデータを記憶する。プレイヤオブジェクト制御部は、プレイヤの操作に基づいて、ゲーム空間内においてプレイヤオブジェクトを移動させる。オブジェクト移動部は、判定用オブジェクトの到達位置を設定し、タイミングデータが示すタイミングで当該到達位置に到達するように、当該判定用オブジェクトを移動させる。判定部は、タイミングを含む所定期間にプレイヤオブジェクトが到達位置から第1所定範囲内に位置するか否かに基づいて、成功判定を行う。音制御部は、判定部における判定結果に基づいて、音出力を制御する。
【0029】
第14の発明は、音楽に合わせて設定されたタイミングデータを記憶するタイミングデータ記憶部を備え、リズムゲームを行うゲーム装置のゲーム制御方法であって、(a)プレイヤの操作に基づいて、ゲーム空間内においてプレイヤオブジェクトを移動させ、(b)判定用オブジェクトの到達位置を設定し、タイミングデータが示すタイミングで当該到達位置に到達するように、当該判定用オブジェクトを移動させ、(c)タイミングを含む所定期間にプレイヤオブジェクトが到達位置から第1所定範囲内に位置するか否かに基づいて、成功判定を行い、(d)ステップ(c)における判定結果に基づいて、音出力を制御する。
【0030】
第12−第14の発明においても、第1の発明と同様に、新しい感覚のリズムゲームを提供することができる。
【発明の効果】
【0031】
この発明によれば、タイミングデータが示すタイミングで到達位置に到達するように判定オブジェクトを移動させ、判定オブジェクトの到達位置から所定範囲内にプレイヤオブジェクトが存在するかどうかで音出力を制御するので、単にタイミングを合わせて操作スイッチを操作するだけのリズムゲームとは異なり、新しい感覚のリズムゲームを提供することができる。
【0032】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【0033】
【図1】図1はこの発明のゲームシステムの一実施例を示す図解図である。
【図2】図2はゲームシステムの電気的な構成を示すブロック図である。
【図3】図3は第1コントローラの外観を説明するための図解図である。
【図4】図4は第2コントローラの外観を説明するための図解図である。
【図5】図5はコントローラ(第1コントローラおよび第2コントローラを互いに接続したもの)の電気的な構成を示すブロック図である。
【図6】図6はコントローラを用いて仮想ゲームをプレイするときの状態を概説するための図解図である。
【図7】図7はマーカおよびコントローラの視野角を説明するための図解図である。
【図8】図8はコントローラによる撮像画像の一例を示す図解図である。
【図9】図9は図1のモニタに表示されるゲーム画面の一例を図解図である。
【図10】図10は図9に示すゲーム画面に表示されるボールオブジェクトおよびアイテムオブジェクトを示す図解図である。
【図11】図11はプレイヤオブジェクトがボールオブジェクトを捕球ないしレシーブしたと判定される範囲を示す図解図である。
【図12】図12はBGMの変化テーブルの一例を示す図解図である。
【図13】図13はBGMに対応して設定される配球情報の例を示す図解図である。
【図14】図14は発射タイミングテーブルの例を示す図解図である。
【図15】図15はボールオブジェクトおよびアイテムオブジェクトの着弾点および移動方向の決定方法を示す図解図である。
【図16】図16は図2に示すメインメモリのメモリマップを示す図解図である。
【図17】図17は図16に示すメインメモリのデータ記憶領域の具体的な内容を示す図解図である。
【図18】図18は図2に示すCPUのゲーム全体処理の第1の一部を示すフロー図である。
【図19】図19は図2に示すCPUのゲーム全体処理の第2の一部であって、図18に後続するフロー図である。
【図20】図20は図2に示すCPUのゲーム全体処理の第3の一部であって、図19に後続するフロー図である。
【図21】図21は図2に示すCPUのゲーム全体処理の第4の一部であって、図20に後続するフロー図である。
【図22】図22は図2に示すCPUのゲーム全体処理の第5の一部であって、図21に後続するフロー図である。
【図23】図23は図2に示すCPUのオブジェクトの移動および判定処理(ボールオブジェクト)の一部を示すフロー図である。
【図24】図24は図2に示すCPUのオブジェクトの移動および判定処理(ボールオブジェクト)の他の一部であって、図23に後続するフロー図である。
【図25】図25は図2に示すCPUのオブジェクトの移動および判定処理(ボールオブジェクト)のその他の一部であって、図23に後続するフロー図である。
【図26】図26は図2に示すCPUのオブジェクトの移動および判定処理(アイテムオブジェクト)の一部を示すフロー図である。
【図27】図27は図2に示すCPUのオブジェクトの移動および判定処理(アイテムオブジェクト)の他の一部であって、図26に後続するフロー図である。
【図28】図28は図2に示すCPUのプレイヤオブジェクト制御処理の一部を示すフロー図である。
【図29】図29は図2に示すCPUのプレイヤオブジェクト制御処理の他の一部であって、図28に後続するフロー図である。
【発明を実施するための形態】
【0034】
図1を参照して、この発明の一実施例であるゲームシステム10は、ゲーム装置12およびコントローラ14を含む。図示は省略するが、この実施例のゲーム装置12は、最大4つのコントローラ14と通信可能に設計されている。また、ゲーム装置12と各コントローラ14とは、無線によって接続される。たとえば、無線通信は、Bluetooth(登録商標)規格に従って実行されるが、赤外線や無線LANなど他の規格に従って実行されてもよい。さらには、有線で接続されてもよい。
【0035】
ゲーム装置12は、略直方体のハウジング16を含み、ハウジング16の前面にはディスクスロット18が設けられる。ディスクスロット18から、ゲームプログラム等を記憶した情報記憶媒体の一例である光ディスク24が挿入されて、ハウジング16内のディスクドライブ54(図2参照)に装着される。図示は省略するが、ディスクスロット18の周囲には、LEDと導光板とが配置され、様々な処理に応答させて、ディスクスロット18を点灯または点滅させることが可能である。
【0036】
また、ゲーム装置12のハウジング16の前面の上部には、電源ボタン20aおよびリセットボタン20bが設けられ、その下部には、イジェクトボタン20cが設けられる。さらに、リセットボタン20bとイジェクトボタン20cとの間であり、ディスクスロット18の近傍には、外部メモリカード用コネクタカバー22が設けられる。この外部メモリカード用コネクタカバー22の内側には、外部メモリカード用コネクタ62(図2参照)が設けられ、外部メモリカード38(以下、単に「メモリカード38」という。)が挿入される。メモリカード38は、光ディスク24から読み出したゲームプログラム等をローディングして一時的に記憶したり、このゲームシステム10を利用してプレイしたゲームのゲームデータ(ゲームの結果データまたは途中データ、あるいは後述するリプレイデータ)を保存(セーブ)しておいたりするために利用される。ただし、上記のゲームデータの保存は、メモリカード38に対して行うことに代えて、たとえばゲーム装置12の内部に設けられるフラッシュメモリ44(図2参照)のような内部メモリに対して行うようにしてもよい。また、メモリカード38は、内部メモリのバックアップメモリとして用いるようにしてもよい。さらに、ゲーム装置12では、ゲーム以外の他のアプリケーションを実行することも可能であり、かかる場合には、メモリカード38には当該他のアプリケーションのデータを保存することができる。
【0037】
なお、メモリカード38としては、汎用のSDカードを用いることができるが、メモリスティックやマルチメディアカード(登録商標)のような他の汎用のメモリカードを用いることもできる。メモリカード38は、ゲーム装置12と同様の構成を有する他のゲーム装置でも利用することができるので、ゲームデータをメモリカード38を介して他のプレイヤに提供することもできる。
【0038】
図1では省略するが、ゲーム装置12のハウジング16の後面には、AVコネクタ58(図2参照)が設けられ、そのAVコネクタ58を用いて、AVケーブル26を通してゲーム装置12にモニタ28およびスピーカ30を接続する。このモニタ28およびスピーカ30は典型的にはカラーテレビジョン受像機であり、AVケーブル26によって、ゲーム装置12からの映像信号がカラーテレビのビデオ入力端子に入力され、ゲーム装置12からの音声信号が音声入力端子に入力される。したがって、カラーテレビ(モニタ)28の画面上にたとえば3次元(3D)ビデオゲームの仮想3次元ゲーム画像が表示され、左右のスピーカ30からゲーム音楽や効果音などのステレオゲーム音声が出力される。また、モニタ28の周辺(この実施例では、モニタ28の上側)には、2つの赤外LED(マーカ)32aおよび32bを備えるマーカ部32が設けられる。このマーカ部32は、電源線32cを通してゲーム装置12に接続される。したがって、マーカ部32には、ゲーム装置12から電源が供給される。これによって、マーカ32aおよび32bは発光し、それぞれモニタ28の前方に向けて赤外光を出力する。
【0039】
なお、ゲーム装置12の電源は、一般的なACアダプタ(図示せず)によって与えられる。ACアダプタは家庭用の標準的な壁ソケットに差し込まれ、ゲーム装置12は、家庭用電源(商用電源)を、駆動に適した低いDC電圧信号に変換する。他の実施例では、電源としてバッテリが用いられてもよい。
【0040】
コントローラ14は、詳細は後述されるが、第1の操作ユニットおよび第2の操作ユニットとして、それぞれが片手で把持可能な第1コントローラ34および第2コントローラ36を含む。第2コントローラ36の後端から延びるケーブル36aの先端にはコネクタ36bが設けられており、当該コネクタ36bは、第1コントローラ34の後端面に設けられるコネクタ34a(図3、図5)に接続される。第2コントローラ36において取得される入力データは、ケーブル36aを介して第1コントローラ34に与えられる。第1コントローラ34は、第1コントローラ34自身の入力データと第2コントローラ36の入力データとを含むコントローラデータをゲーム装置12に送信する。
【0041】
このゲームシステム10において、ユーザまたはプレイヤがゲーム(またはゲームに限らず、他のアプリケーション)をプレイするために、ユーザは電源スイッチ20aによってまずゲーム装置12の電源をオンし、次いで、ユーザはビデオゲーム(もしくはプレイしたいと思う他のアプリケーション)のプログラムを記録している適宜の光ディスク24を選択し、その光ディスク24をゲーム装置12のディスクドライブ54にローディングする。応じて、ゲーム装置12がその光ディスク24に記録されているプログラムに基づいてビデオゲームもしくは他のアプリケーションを実行し始める。ユーザはゲーム装置12に入力を与えるためにコントローラ14を操作する。たとえば操作部82のどれかの操作ボタンを操作することによって、ゲームもしくは他のアプリケーションをスタートさせる。また、操作部82に対する操作以外にも、コントローラ14自体を動かすことによって、動画オブジェクト(プレイヤオブジェクト)を異なる方向に移動させ、または3Dのゲーム世界におけるユーザの視点(仮想カメラの位置)を変化させることができる。
【0042】
ただし、ビデオゲームや他のアプリケーションのプログラムは、ゲーム装置12の内部メモリ(フラッシュメモリ44(図2参照))に記憶(インストール)しておき、当該内部メモリから実行するようにしてもよい。かかる場合には,光ディスク24のような記憶媒体に記憶されたプログラムを内部メモリにインストールしてもよいし、ダウンロードされたプログラムを内部メモリにインストールしてもよい。
【0043】
図2は図1実施例のゲームシステム10の電気的な構成を示すブロック図である。図示は省略するが、ハウジング16内の各コンポーネントは、プリント基板に実装される。図2に示すように、ゲーム装置12には、CPU40が設けられ、ゲームプロセッサとして機能する。また、CPU40には、システムLSI42が接続される。このシステムLSI42には、外部メインメモリ46、ROM/RTC48、ディスクドライブ54およびAV IC56が接続される。
【0044】
外部メインメモリ46は、ゲームプログラム等のプログラムを記憶したり、各種データを記憶したりして、CPU40のワーク領域やバッファ領域として用いられる。ROM/RTC48は、いわゆるブートROMであり、ゲーム装置12の起動用のプログラムが組み込まれるとともに、時間をカウントする時計回路が設けられる。ディスクドライブ54は、光ディスク24からプログラムやテクスチャデータ等を読み出し、CPU40の制御の下で、後述する内部メインメモリ42eまたは外部メインメモリ46に書き込む。
【0045】
システムLSI42には、入出力プロセッサ42a、GPU(Graphics Processor Unit)42b,DSP(Digital Signal Processor)42c,VRAM42dおよび内部メインメモリ42eが設けられ、図示は省略するが、これらは内部バスによって互いに接続される。入出力プロセッサ(I/Oプロセッサ)42aは、データの送受信を実行したり、データのダウンロードを実行したりする。GPU42bは、描画手段の一部を形成し、CPU40からのグラフィクスコマンド(作画命令)を受け、そのコマンドに従ってゲーム画像データを生成する。ただし、CPU40は、グラフィクスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラムをGPU42bに与える。
【0046】
図示は省略するが、上述したように、GPU42bにはVRAM42dが接続される。GPU42bが作画命令を実行するにあたって必要なデータ(画像データ:ポリゴンデータやテクスチャデータなどのデータ)は、GPU42bがVRAM42dにアクセスして取得する。ただし、CPU40は、描画に必要な画像データを、GPU42bを介してVRAM42dに書き込む。GPU42bは、VRAM42dにアクセスして描画のためのゲーム画像データを作成する。
【0047】
なお、この実施例では、GPU42bがゲーム画像データを生成する場合について説明するが、ゲームアプリケーション以外の任意のアプリケーションを実行する場合には、GPU42bは当該任意のアプリケーションについての画像データを生成する。
【0048】
また、DSP42cは、オーディオプロセッサとして機能し、内部メインメモリ42eや外部メインメモリ46に記憶されるサウンドデータや音波形(音色)データを用いて、スピーカ30から出力する音(効果音)、音声或いは音楽(BGM)に対応するオーディオデータを生成する。
【0049】
上述のように生成されたゲーム画像データおよびオーディオデータは、AV IC56によって読み出され、AVコネクタ58を介してモニタ28およびスピーカ30に出力される。したがって、ゲーム画面がモニタ28に表示され、ゲームに必要な音(音楽)がスピーカ30から出力される。
【0050】
また、入出力プロセッサ42aには、フラッシュメモリ44、無線通信モジュール50および無線コントローラモジュール52が接続されるとともに、拡張コネクタ60およびメモリカード用コネクタ62が接続される。また、無線通信モジュール50にはアンテナ50aが接続され、無線コントローラモジュール52にはアンテナ52aが接続される。
【0051】
入出力プロセッサ42aは、無線通信モジュール50を介して、図示は省略するが、ネットワークに接続された他のゲーム装置やサーバと通信することができる。ただし、ネットワークを介さずに、直接的に他のゲーム装置と通信することもできる。入出力プロセッサ42aは、定期的にフラッシュメモリ44にアクセスし、ネットワークへ送信する必要があるデータ(「送信データ」とする)の有無を検出し、当該送信データが有る場合には、無線通信モジュール50およびアンテナ50aを介してネットワークに送信する。また、入出力プロセッサ42aは、他のゲーム装置から送信されるデータ(「受信データ」とする)を、ネットワーク、アンテナ50aおよび無線通信モジュール50を介して受信し、当該受信データをフラッシュメモリ44に記憶する。ただし、受信データが一定の条件を満たさない場合には、当該受信データはそのまま破棄される。さらに、入出力プロセッサ42aは、ネットワークに接続されたサーバからダウンロードしたデータ(ダウンロードデータとする)をネットワーク、アンテナ50aおよび無線通信モジュール50を介して受信し、そのダウンロードデータをフラッシュメモリ44に記憶することもできる。
【0052】
また、入出力プロセッサ42aは、コントローラ14から送信される入力データをアンテナ52aおよび無線コントローラモジュール52を介して受信し、内部メインメモリ42eまたは外部メインメモリ46のバッファ領域に記憶(一時記憶)する。入力データは、CPU40の処理(たとえば、ゲーム処理)によって利用された後、バッファ領域から消去される。
【0053】
さらに、入出力プロセッサ42aには、拡張コネクタ60およびメモリカード用コネクタ62が接続される。拡張コネクタ60は、USBやSCSIのようなインタフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、コントローラ14とは異なる他のコントローラのような周辺機器を接続したりすることができる。また、拡張コネクタ60に有線LANアダプタを接続し、無線通信モジュール50に代えて当該有線LANを利用することもできる。メモリカード用コネクタ62には、メモリカード38のような外部記憶媒体を接続することができる。したがって、たとえば、入出力プロセッサ42aは、拡張コネクタ60やメモリカード用コネクタ62を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
【0054】
詳細な説明は省略するが、図1にも示したように、ゲーム装置12(ハウジング16)には、電源ボタン20a,リセットボタン20bおよびイジェクトボタン20cが設けられる。電源ボタン20aは、システムLSI42に接続される。この電源ボタン20aがオンされると、システムLSI42には、ゲーム装置12の各コンポーネントに図示しないACアダプタを経て電源が供給され、通常の通電状態となるモード(「通常モード」と呼ぶこととする)が設定される。一方、電源ボタン20aがオフされると、システムLSI42には、ゲーム装置12の一部のコンポーネントのみに電源が供給され、消費電力を必要最低限に抑えるモード(以下、「スタンバイモード」という)が設定される。
【0055】
この実施例では、スタンバイモードが設定された場合には、システムLSI42は、入出力プロセッサ42a、フラッシュメモリ44、外部メインメモリ46、ROM/RTC48および無線通信モジュール50、無線コントローラモジュール52以外のコンポーネントに対して、電源供給を停止する指示を行う。したがって、この実施例では、スタンバイモードにおいて、CPU40がアプリケーションを実行することはない。
【0056】
リセットボタン20bもまた、システムLSI42に接続される。リセットボタン20bが押されると、システムLSI42は、ゲーム装置12の起動プログラムを再起動する。イジェクトボタン20cは、ディスクドライブ54に接続される。イジェクトボタン20cが押されると、ディスクドライブ54から光ディスク24が排出される。
【0057】
図3には第1コントローラ34の外観の一例が示される。図3(A)は、第1コントローラ34を上面後方から見た斜視図であり、図3(B)は、第1コントローラ34を下面前方から見た斜視図である。第1コントローラ34は、たとえばプラスチック成型によって形成されたハウジング80を有している。ハウジング80は、その前後方向(図3に示すZ軸方向)を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。一例として、ハウジング80は人間の掌とほぼ同じ長さまたは幅を持つ大きさをしている。プレイヤは、第1コントローラ34を用いて、それに設けられたボタンを押下することと、第1コントローラ34自体を動かしてその位置や向きを変えることとによって、ゲーム操作を行うことができる。
【0058】
ハウジング80には、複数の操作ボタン(操作キー)が設けられる。すなわち、ハウジング80の上面には、十字キー82a、1ボタン82b、2ボタン82c、Aボタン82d、−ボタン82e、メニューボタン82f、および+ボタン82gが設けられる。一方、ハウジング80の下面には凹部が形成されており、当該凹部の後方側傾斜面にはBボタン82hが設けられる。これら各ボタン(スイッチ)82a−82hには、ゲーム装置12が実行するゲームプログラムに応じてそれぞれ適宜な機能が割り当てられる。また、ハウジング80の上面には、遠隔からゲーム装置12本体の電源をオン/オフするための電源スイッチ82iが設けられる。第1コントローラ34に設けられる各ボタン(スイッチ)は、包括的に参照符号82を用いて示されることもある。
【0059】
また、ハウジング80の後面には、上述のコネクタ34aが設けられている。コネクタ34aは、たとえば32ピンのエッジコネクタであり、第1コントローラ34に他の機器を接続するために利用される。この実施例では、コネクタ34aには第2コントローラ36のコネクタ36bが接続される。また、ハウジング80上面の後端側には複数のLED84が設けられ、この複数のLED84によって当該コントローラ14のコントローラ番号(コントローラの識別番号)が示される。ゲーム装置12には、たとえば最大4つのコントローラ14が接続可能であり、ゲーム装置12に複数のコントローラ14が接続される場合には、各コントローラ14には、たとえば接続順にコントローラ番号が付与される。各LED84はコントローラ番号と対応付けられており、当該コントローラ番号に対応するLED84が点灯される。
【0060】
また、第1コントローラ34のハウジング80内には加速度センサ86(図5)が設けられている。加速度センサ86としては、典型的には静電容量式の加速度センサが用いられ得る。加速度センサ86は、当該加速度センサの検出部に加わっている加速度のうち、センシング軸ごとの直線成分の加速度や重力加速度を検出する。具体的には、この実施例では、3軸加速度センサが適用され、第1コントローラ34の上下方向(図3に示すY軸方向)、左右方向(図3に示すX軸方向)および前後方向(図3に示すZ軸方向)の3軸方向のそれぞれで加速度を検知する。
【0061】
なお、加速度センサ86としては、ハウジング80の形状または第1コントローラ34の持たせ方の限定等に応じて、上下方向、左右方向および前後方向のうちいずれか2方向の加速度を検出する2軸加速度センサが用いられてもよい。場合によっては1軸加速度センサが用いられてもよい。
【0062】
さらに、コントローラ22は、撮像情報演算部88(図5参照)を有している。図3(B)に示すように、ハウジング80の先端面には撮像情報演算部88の光入射口90が設けられ、光入射口90からはセンサバー44のマーカ44m、44nの発する赤外線が取り込まれる。
【0063】
図4には第2コントローラ36の外観の一例が示される。図4(A)は、第2コントローラ36を上面後方から見た斜視図であり、図4(B)は、第2コントローラ36を下面前方から見た斜視図である。なお、図4では、第2コントローラ36のケーブル36aは省略されている。
【0064】
第2コントローラ36は、たとえばプラスチック成型によって形成されたハウジング92を有している。ハウジング92は、平面視では、前後方向(図4のZ軸方向)に略細長い楕円形状を有し、後端側の左右方向(図4のX軸方向)の幅が先端側のそれよりも狭くされている。また、ハウジング92は、側面視では、全体として湾曲した形状を有しており、先端側の水平部分から後端側に向かって下がるように湾曲している。ハウジング92は、第1コントローラ34と同様に、全体として大人や子供の片手で把持可能な大きさであるが、長手方向(Z軸方向)の長さは、第1コントローラ34のハウジング80よりもやや短くされている。この第2コントローラ36でも、プレイヤは、ボタンやスティックを操作することと、コントローラ自体を動かしてその位置や向きを変えることとによって、ゲーム操作を行うことができる。
【0065】
ハウジング92の上面の先端側には、アナログジョイスティック94aが設けられる。ハウジング92の先端には、後方にやや傾斜する先端面が設けられており、この先端面には、上下方向(図4に示すY軸方向)に並べて、Cボタン94bおよびZボタン94cが設けられる。アナログジョイスティック94aおよび各ボタン94b,94cには、ゲーム装置12が実行するゲームプログラムに応じてそれぞれ適宜な機能が割り当てられる。第2コントローラ36に設けられるアナログジョイスティック94aおよび各ボタン94b,94cは、包括的に参照符号94を用いて示されることもある。
【0066】
また、第2コントローラ36のハウジング92内には加速度センサ96(図5)が設けられている。この加速度センサ96としては、第1コントローラ34の加速度センサ86と同様の加速度センサが適用される。具体的には、この実施例では3軸加速度センサが適用され、第2コントローラ36の上下方向(図4に示すY軸方向)、左右方向(図4に示すX軸方向)および前後方向(図4に示すZ軸方向)の3軸方向のそれぞれで加速度を検知する。
【0067】
なお、図3に示した第1コントローラ34および図4に示した第2コントローラ36の形状や、ボタン(スイッチまたはスティック等)の形状、数および設置位置等は一例であり、他の形状、数および設置位置等に適宜変更され得る。
【0068】
また、コントローラ14の電源は、第1コントローラ34内に取替可能に収容されるバッテリ(図示せず)によって与えられる。第2コントローラ36には、コネクタ34a、コネクタ36bおよびケーブル36aを介してこの電源が供給される。
【0069】
図5には、第1コントローラ34と第2コントローラ36とが接続されたときのコントローラ14の電気的構成の一例が示される。第1コントローラ34は、その内部に通信部98を備え、通信部98には、操作部82、加速度センサ86、撮像情報演算部88およびコネクタ34aが接続される。操作部82は、上述の操作ボタンないし操作スイッチ82a‐82iを示す。操作部82が操作されると、その操作信号(キー情報)が通信部98に与えられる。加速度センサ86が検出した加速度を示すデータは、通信部98へ出力される。加速度センサ86は、たとえば最大200フレーム/秒程度のサンプリング周期を有する。ただし、フレームは、画面更新単位時間(1/60秒)である。
【0070】
撮像情報演算部88が取得したデータもまた通信部98に出力される。撮像情報演算部88は、赤外線フィルタ100、レンズ102、撮像素子104および画像処理回路106によって構成される。赤外線フィルタ100は、第1コントローラ34の前方の光入射口90から入射する光から赤外線のみを通過させる。上述したように、モニタ30の表示面近傍(周辺)に配置されるセンサバー44のマーカ44mおよび44nは、モニタ30の前方に向かって赤外光を出力する赤外LEDである。したがって、赤外線フィルタ100を設けることによってマーカ44mおよび44nの画像をより正確に撮像することができる。レンズ102は、赤外線フィルタ100を透過した赤外線を集光して撮像素子104へ出射する。撮像素子104は、たとえばCMOSセンサあるいはCCDのような固体撮像素子であり、レンズ102によって集光された赤外線を撮像する。したがって、撮像素子104は、赤外線フィルタ100を通過した赤外線だけを撮像して画像データを生成する。以下では、撮像素子104によって撮像された画像を撮像画像と呼ぶ。撮像素子104によって生成された画像データは、画像処理回路106で処理される。画像処理回路106は、撮像画像内における撮像対象(マーカ44mおよび44n)の位置を算出し、所定時間(たとえば1フレーム)毎に、当該位置を示す各座標値を含むマーカ座標データを通信部98に出力する。なお、画像処理回路106における処理については後述する。
【0071】
コネクタ34aには、第2コントローラ36から延びるケーブル36aのコネクタ36bが接続される。コネクタ36bには、第2コントローラ36の操作部94および加速度センサ96が接続される。操作部94は、上述のアナログジョイスティック94aおよび操作ボタン94b、94cを示す。操作部94が操作されると、その操作信号がケーブル36a、コネクタ36bおよびコネクタ34a等を介して通信部98に与えられる。また、加速度センサ96も、加速度センサ86と同様のサンプリング周期を有しており、検出された加速度を示すデータを通信部98に与える。
【0072】
通信部98は、マイクロコンピュータ(マイコン)108、メモリ110、無線モジュール78およびアンテナ112を含む。マイコン108は、処理の際にメモリ110を記憶領域(作業領域やバッファ領域)として用いながら、無線モジュール78を制御して、取得したデータをゲーム装置12に送信したりゲーム装置12からのデータを受信したりする。
【0073】
第1コントローラ34の操作部82、加速度センサ86および撮像情報演算部88ならびに第2コントローラ36の操作部94および加速度センサ96からマイコン108へ出力されたデータは、一時的にメモリ110に格納される。通信部98からゲーム装置12のBluetooth通信ユニット76への無線送信は所定の周期毎に行われる。なお、ゲームの処理は1/60秒を単位として行われることが一般的であるので、第1コントローラ34からの送信はそれと同等かそれより短い周期で行うことが必要となる。マイコン108は、ゲーム装置12への送信タイミングが到来すると、メモリ110に格納されている操作部82および94の操作データ、加速度センサ86および96の加速度データならびに撮像情報演算部88のマーカ座標データを含むデータを、コントローラデータとして無線モジュール78へ出力する。無線モジュール78は、Bluetoothのような近距離無線通信技術を用いて、所定周波数の搬送波をコントローラデータで変調し、その微弱電波信号をアンテナ112から放射する。つまり、コントローラデータは、無線モジュール78で微弱電波信号に変調されて第1コントローラ34から送信される。微弱電波信号はゲーム装置12側のBluetooth通信ユニット76で受信される。受信された微弱電波信号について復調や復号を行うことによって、ゲーム装置12はコントローラデータを取得することができる。ゲーム装置12のCPU46は、コントローラ14から取得したコントローラデータに基づいてゲーム処理を行う。
【0074】
なお、加速度センサ86および96から出力される加速度の信号に基づいて、ゲーム装置12のプロセッサ(例えばCPU46)またはコントローラ14のプロセッサ(例えばマイコン108)などのコンピュータが処理を行うことによって、コントローラ14に関するさらなる情報を推測または算出(判定)することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。例えば、加速度センサ86および96を搭載する第1コントローラ34および第2コントローラ36が静的な状態であることを前提としてコンピュータ側で処理する場合(すなわち、加速度センサ86および96によって検出される加速度が重力加速度のみであるとして処理する場合)、第1コントローラ34および第2コントローラ36が現実に静的な状態であれば、検出された加速度に基づいて第1コントローラ34および第2コントローラ36の姿勢が重力方向に対して傾いているか否か又はどの程度傾いているかをそれぞれ知ることができる。具体的には、加速度センサ86および96の検出軸が鉛直下方向を向いている状態を基準としたとき、1G(重力加速度)がかかっているか否かだけで、第1コントローラ34および第2コントローラ36がそれぞれ傾いているか否かを知ることができるし、その大きさによってどの程度傾いているかも知ることができる。また、多軸加速度センサが適用される場合には、さらに各軸の加速度の信号に対して処理を施すことによって、第1コントローラ34および第2コントローラ36がそれぞれ重力方向に対してどの程度傾いているかをより詳細に知ることができる。この場合において、加速度センサ86および96からの出力に基づいて、コンピュータが第1コントローラ34および第2コントローラ36の傾き角度のデータを算出する処理を行ってもよいが、当該傾き角度のデータを算出する処理を行うことなく、加速度センサ86および96からの出力に基づいて、おおよその傾き具合を推定するような処理としてもよい。このように、加速度センサ86および96をコンピュータと組み合わせて用いることによって、第1コントローラ34および第2コントローラ36の傾き、姿勢または位置を判定することができる。
【0075】
一方、加速度センサ86および96が動的な状態であることを前提とする場合には、重力加速度成分に加えて加速度センサ86および96の動きに応じた加速度を検出するので、重力加速度成分を所定の処理により除去すれば、動き方向などを知ることができる。具体的には、加速度センサ86および96を備える第1コントローラ34および第2コントローラ36がユーザの手で動的に加速されて動かされる場合に、加速度センサ86および96によって生成される加速度信号を上記コンピュータによって処理することによって、第1コントローラ34および第2コントローラ36のさまざまな動きおよび/または位置を算出することができる。なお、加速度センサ86および96が動的な状態であることを前提とする場合であっても、加速度センサ86および96の動きに応じた加速度を所定の処理により除去すれば、重力方向に対する傾きを知ることが可能である。他の実施例では、加速度センサ86および96は、信号をマイコン108に出力する前に内蔵の加速度検出手段から出力される加速度信号に対して所望の処理を行うための、組込み式の信号処理装置または他の種類の専用の処理装置を備えていてもよい。例えば、組込み式または専用の処理装置は、加速度センサ86および96が静的な加速度(例えば、重力加速度)を検出するためのものである場合、検知された加速度信号をそれに相当する傾斜角(あるいは、他の好ましいパラメータ)に変換するものであってもよい。
【0076】
このゲームシステム10では、ユーザがコントローラ14を動かすことによってゲームに対する操作または入力を行うことができる。ゲームをプレイする際には、たとえば図6に示すように、ユーザは、その右手で第1コントローラ34を持ち、その左手で第2コントローラ36を持つ。上述のように、この実施例では、第1コントローラ34には3軸方向の加速度を検出する加速度センサ86が内蔵され、第2コントローラ36にも同様の加速度センサ96が内蔵されている。第1コントローラ34および第2コントローラ36がそれぞれユーザによって動かされると、加速度センサ86および加速度センサ96によって、それぞれのコントローラ自身の動きを示す加速度値が検出される。ゲーム装置12では、当該検出された加速度値に応じてゲーム処理が実行され得る。
【0077】
また、第1コントローラ34には撮像情報演算部88が設けられるので、ユーザは第1コントローラ34をポインティングデバイスとして使用して操作を行うことができる。この場合、ユーザは、第1コントローラ34の先端面(光入射口90)がマーカ44mおよび44nの方を向く状態で第1コントローラ34を把持する。ただし、図1から分かるように、マーカ44mおよび44nは、モニタ30の画面の所定の1辺(上辺または下辺)の近傍に、当該所定の1辺に対して平行に配置されている。この状態で、ユーザは、第1コントローラ34自体を動かして、第1コントローラ34が指示する画面上の位置を変更したり、第1コントローラ34と各マーカ44mおよび44nとの距離を変更したりすることによって、ゲーム操作を行うことができる。
【0078】
図7は、マーカ44mおよび44nと第1コントローラ34の視野角を説明するための図である。図7に示すように、マーカ44mおよび44nは、それぞれ、視野角αの範囲で赤外光を放射する。また、撮像情報演算部88の撮像素子104は、第1コントローラ34の視線方向(図3に示すZ軸方向)を中心とした視野角βの範囲で入射する光を受光することができる。たとえば、マーカ44mおよび44nの視野角αは、共に34°(半値角)であり、一方、撮像素子104の視野角βは42°である。ユーザは、撮像素子104が2つのマーカ44mおよび44nからの赤外光を受光することが可能な位置および向きとなるように、第1コントローラ34を把持する。具体的には、撮像素子104の視野角βの中に少なくとも一方のマーカ44mまたは44nが存在し、かつ、マーカ44mおよび44nの少なくとも一方の視野角αの中に第1コントローラ34が存在する状態となるように、ユーザは第1コントローラ34を把持する。この状態にあるとき、第1コントローラ34は、マーカ44mおよび44nの少なくとも一方を検知することができる。ユーザは、この状態を満たす範囲で第1コントローラ34の位置および向きを変化させることによってゲーム操作を行うことができる。なお、マーカ44mおよび44nのいずれか一方のみが検出される場合には、たとえば、直前の2つのマーカ44mおよび44nを検出したデータを利用して、検出されない他方のマーカの代わりに仮のマーカ座標を設定することによって、第1コントローラ34の指示位置を算出することができる。
【0079】
なお、第1コントローラ34の位置および向きがこの範囲外となった場合、第1コントローラ34の位置および向きに基づいたゲーム操作を行うことができなくなる。したがって、上記範囲は「操作可能範囲」と呼ばれる。
【0080】
操作可能範囲内で第1コントローラ34が把持される場合、撮像情報演算部88によってマーカ44mおよび44nの画像が撮像される。すなわち、撮像素子104によって得られる撮像画像には、撮像対象であるマーカ44mおよび44nの画像(対象画像)が含まれる。図8は、対象画像を含む撮像画像の一例を示す図である。対象画像44m’および44n’を含む撮像画像の画像データを用いて、画像処理回路106は、各マーカ44mおよび44nの撮像画像における位置を表す座標(マーカ座標)を算出する。
【0081】
撮像画像の画像データにおいて対象画像44m’および44n’は高輝度部分として現れるため、画像処理回路106は、まず、この高輝度部分を対象画像の候補として検出する。次に、画像処理回路106は、検出された高輝度部分の大きさに基づいて、その高輝度部分が対象画像であるか否かを判定する。撮像画像には、2つの対象画像(マーカ画像)44m’および44n’だけではなく、窓からの太陽光や部屋の蛍光灯の光等のような他の画像が含まれていることがある。高輝度部分が対象画像であるか否かの判定処理は、マーカ44mおよび44nの画像44m’および44n’と、それ以外の画像とを区別し、対象画像を正確に検出するために実行される。撮像画像における対象画像44m’および44n’と他の画像との区別のために、撮像対象44mおよび44nは既知のものである必要があり、この実施例ではその大きさが予め決められるので、マーカ画像44m’および44n’の大きさを予測することができる。したがって、高輝度部分の大きさに基づいて、マーカ画像44m’および44n’の判定を行うことができる。具体的には、当該判定処理においては、検出された高輝度部分が、予め定められた所定範囲内の大きさであるか否かが判定される。そして、高輝度部分が所定範囲内の大きさである場合には、当該高輝度部分は対象画像を表すと判定される。逆に、高輝度部分が所定範囲内の大きさでない場合には、当該高輝度部分は対象画像以外の画像を表すと判定される。
【0082】
さらに、上記の判定処理の結果、対象画像を表すと判定された高輝度部分について、画像処理回路106は当該高輝度部分の位置を算出する。具体的には、当該高輝度部分の重心位置を算出する。ここでは、当該重心位置の座標をマーカ座標と呼ぶ。また、重心位置は撮像素子104の解像度よりも詳細なスケールで算出することが可能である。ここでは、撮像素子104によって撮像された撮像画像の解像度が126×96であるとし、重心位置は1024×768のスケールで算出されるものとする。つまり、マーカ座標は、(0,0)から(1024,768)までの整数値で表現される。
【0083】
なお、図8に示すように、撮像画像における位置は、撮像画像の左上を原点Oとし、下向きをY軸正方向とし、右向きをX軸正方向とする座標系(撮像画像のXY座標系)で表現されるものとする。
【0084】
また、対象画像44m’および44n’が正しく検出される場合には、判定処理によって2つの高輝度部分が対象画像として判定されるので、2箇所のマーカ座標が算出される。画像処理回路106は、算出された2箇所のマーカ座標を示すデータ、つまり、撮像対象の位置を示す撮像対象データを通信部98に出力する。出力された撮像対象データ(マーカ座標データ)は、上述したように、マイコン108によってコントローラデータに含められて、ゲーム装置12に送信される。
【0085】
ゲーム装置12(CPU46)は、受信したコントローラデータからマーカ座標データを取得すると、このマーカ座標データに基づいて、モニタ30の画面上における第1コントローラ34の指示位置(指示座標)と、第1コントローラ34からマーカ44mおよび44nまでの各距離とを算出することができる。なお、たとえば、第1コントローラ34がモニタ30の画面の左端を指示するとき、対象画像44m’および44n’は撮像画像の右側に検出され、第1コントローラ34が画面の下端を指示するとき、対象画像44m’および44n’は撮像画像の上側に検出され、つまり、画面上の第1コントローラ34の指示位置と逆側に撮像画像上のマーカ座標が検出される。したがって、第1コントローラ34の指示位置の座標をマーカ座標から算出する際には、座標系が図8の撮像画像の座標系から画面上の位置を表すための座標系に適宜に変換される。
【0086】
なお、この実施例では、第1コントローラ34で撮像データに所定の演算処理を行ってマーカ座標を検出して、そのマーカ座標データをゲーム装置12に送信するようにしている。しかし、他の実施例では、撮像データをコントローラデータとして第1コントローラ34からゲーム装置12に送信し、ゲーム装置12のCPU46が撮像データに所定の演算処理を行って、マーカ座標および指示位置の座標を検出するようにしてもよい。
【0087】
また、撮像画像における対象画像間の距離は、第1コントローラ34と、マーカ44mおよび44nとの距離に応じて変化する。マーカ44mおよび44n間の距離、撮像画像の幅、撮像素子104の視野角βが予め決まっているので、2つのマーカ座標間の距離を算出することによって、ゲーム装置12は第1コントローラ34とマーカ44mおよび44nとの間の現在の距離を算出することができる。
【0088】
以上のように構成されたゲームシステム10では、ゲーム装置12によってゲームプログラムが実行されることにより、対応する仮想ゲーム(この実施例では、リズムゲーム)をプレイすることができる。リズムゲームが開始されると、モニタ28にメニュー画面(図示せず)が表示され、各プレイヤは使用するプレイヤオブジェクトを選択するとともに、再生(演奏)する1曲のBGMを選択する。
【0089】
このリズムゲームは、4人(4P)で協力してプレイする仮想ゲームであり、プレイヤが4人に満たない場合には、足りないプレイヤをコンピュータ(CPU40)が担当する。つまり、3人のプレイヤが存在する場合には、1人のプレイヤをコンピュータが担当し、2人のプレイヤが存在する場合には、2人のプレイヤをコンピュータが担当し、そして、1人のプレイヤが存在する場合には、3人のプレイヤをコンピュータが担当する。
【0090】
プレイヤオブジェクトおよびBGMの選択が終了すると、BGMの再生が開始される。すると、図9に示すようなゲーム画面100がモニタ28に表示される。図9に示すように、ゲーム画面100には、ゲームフィールド100aが表示され、このゲームフィールド100a内に、第1プレイヤ(1P)オブジェクト102a、第2プレイヤ(2P)オブジェクト102b、第3プレイヤ(3P)オブジェクト102cおよび第4プレイヤ(4P)オブジェクト102dが表示される。ただし、ゲームフィールド100aは仮想ゲーム空間内に設けられる。
【0091】
また、各プレイヤオブジェクト102a−102dには、足元を囲むようにリング状の指示画像104a−104dが表示されるとともに、1P−4Pの別が文字で表示される。図面では分かり難いが、指示画像104a−104dのそれぞれと、対応する1P−4Pの文字のそれぞれとは同じ色で描画され、プレイヤオブジェクト102a−102dに割り当てられた色が示される。たとえば、1Pに青色が割り当てられ、2Pの赤色が割り当てられ、3Pに緑色が割り当てられ、そして、4Pに黄色が割り当てられる。ただし、これは単なる一例であり、これに限定される必要はない。また、図面では色を付すことができないため、指示画像104a−104d、1P−4Pの文字および後述するカラーボールオブジェクト110aには、模様を付して示してある。したがって、模様が同じであれば、同じ色であることを意味する。
【0092】
さらに、ゲームフィールド100a内には、発射台オブジェクト106が表示され、この右側に連結してベルトコンベアオブジェクト108が表示される。図12に示すように、ベルトコンベアオブジェクト108上には、発射台オブジェクト106に移送されるボールオブジェクト110およびアイテムオブジェクト112が載置される。このボールオブジェクト110およびアイテムオブジェクト112は、BGMの再生に合わせて、所定のタイミング(発射タイミング)で、発射台オブジェクト106から発射される。
【0093】
図9では分かり難いが、ベルトコンベアオブジェクト108上には、ボールオブジェクト110およびアイテムオブジェクト112が、発射される順番(左端から順)に並んで配置される。この実施例では、ボールオブジェクト110およびアイテムオブジェクト112は、発射タイミングの所定時間(この実施例では、2秒)前に、ベルトコンベアオブジェクト108上の最後尾(右端)に配置され、発射タイミング(2秒後)までの間に、発射台オブジェクト106に向けてベルトコンベアオブジェクト108上を次第に左方向に移動される。そして、上述したように、発射タイミングで、ボールオブジェクト110およびアイテムオブジェクト112は発射台オブジェクト106の発射口106aから発射される。
【0094】
ここで、ボールオブジェクト110およびアイテムオブジェクト112について説明する。図10(A)−図10(C)には、仮想ゲーム中の任意の時点における、ベルトコンベアオブジェクト108の一部、およびその上に配置されるボールオブジェクト110、アイテムオブジェクト112の例が示される。図10(A)−図10(C)に示すように、ボールオブジェクト110は、バレーボールを模したオブジェクトであり、プレイヤオブジェクト102a−102dに割り当てられた4つの色のいずれか1つと同じ色が付されたカラーボールオブジェクト110a、およびその4つの色がすべて付されたレインボーボールオブジェクト110bを含む。
【0095】
ただし、図10(A)、図10(C)では(図9も同様)、簡単のため、レインボーボールオブジェクト110bは、白色で示してある。
【0096】
また、図10(A)−図10(C)に示すように、アイテムオブジェクト112は、コインオブジェクト112a、バナナオブジェクト112b、および鉄球オブジェクト112cを含む。
【0097】
図9に戻って、ボールオブジェクト110は、BGMに合わせて発射され、ゲームフィールド100a内を飛行する。プレイヤオブジェクト102a−102dがボールオブジェクト110を捕球ないしレシーブした場合には、その様子が表示された後に、ボールオブジェクト110はゲームフィールド100aから消去される。ただし、プレイヤオブジェクト102a−102dがボールオブジェクト110を捕球ないしレシーブしなかった場合には、ボールオブジェクト110は、地面に着地すると、所定時間(たとえば、2秒)進行方向にそのまま1回または2回バウンドした後に、ゲームフィールド100aから消去される。
【0098】
また、コインオブジェクト112a、バナナオブジェクト112bおよび鉄球オブジェクト112cは、ボールオブジェクト110と同様に、発射台オブジェクト106からBGMに合わせて発射され、ゲームフィールド100a内を飛行する。コインオブジェクト112aは、地面に着地すると、所定時間(たとえば、3秒)残留し、その後ゲームフィールド100aから消去される。また、バナナオブジェクト112bは、地面に着地すると、所定時間(たとえば、4秒)残留し、その後ゲームフィールド100aから消去される。さらに、鉄球オブジェクト112cは、地面に着地すると、所定時間(たとえば、2秒)進行方向にそのまま1回または2回バウンドした後に、ゲームフィールド100aから消去される。
【0099】
また、ゲーム画面100では、スコアを表示する表示領域120が画面の右上部に設けられ、“/”を挟んで、左側が現在のスコアを示し、右側がこの仮想ゲームをクリアするためのノルマを示す。さらに、ゲーム画面100では、捕球ないしレシーブの連続回数(COMBO)を表示する表示領域122が、画面の右側であって、スコアの表示領域120の下方に設けられる。
【0100】
上述したように、ボールオブジェクト110が発射されると、その着弾点を含む所定範囲(着弾点を中心とする所定長さの半径を有する円)を示す指標(着弾マーカ)114が表示される。図面では、分かり難いが、着弾マーカ114は、対応するカラーボールオブジェクト110aまたはレインボーボールオブジェクト110bに付された色と同じ色が付される。したがって、プイレヤは、着弾マーカ114の色を見て、捕球ないしレシーブするべきボールオブジェクト110の着弾点を知ることができる。
【0101】
また、アイテムオブジェクト112のうち、バナナオブジェクト112bや鉄球オブジェクト112cが発射されると、その着弾点を含む所定範囲(着弾点を中心とする所定長さの半径を有する円)を示す黒色の着弾マーカ116が表示される。この実施例では、バナナオブジェクト112bや鉄球オブジェクト112cに対応して、黒色の着弾マーカ116を表示するようにしてあるが、プレイヤオブジェクト102a−102dおよびボールオブジェクト110に付される色と区別できるのであれば、他の色が付されてもよい。ただし、図9に示すゲーム画面100では、バナナオブジェクト112bは地面に着地しているため、着弾マーカ116は表示されない(消去されている)。
【0102】
各プレイヤの操作に従って、プレイヤオブジェクト102a−102dの各々は、ゲームフィールド100a内を移動され、ボールオブジェクト110を捕球またはレシーブしたり、コインオブジェクト112aを取得したり、バナナオブジェクト112bまたは鉄球オブジェクト112cを避けたりする。各プレイヤは、図6に示したように、第1コントローラ34および第2コントローラ36を把持する。したがって、図1では省略したが、プレイヤの人数(この実施例では、最大4人)に応じた数だけ、第1コントローラ34と第2コントローラ36とが設けられる。
【0103】
各プレイヤは、左手に把持した第2コントローラ36のアナログジョイスティック94aを操作することにより、このアナログジョイスティック94aを傾けた方向(上下左右および斜め方向)に、対応するプレイヤオブジェクト102a−102dを移動させることができる。したがって、プレイヤオブジェクト102a−102dは、ボールオブジェクト110aが落下地点(着弾点)に到達するときに、プレイヤオブジェクト102a−102dを中心とする水平方向の所定範囲(以下、「第1所定範囲」という)内に当該ボールオブジェクト110aの着弾点が含まれる場合には、当該ボールオブジェクト110を捕球する。この第1所定範囲は、上述した着弾マーカ114と同じ大きさであり、したがって、プレイヤオブジェクト102a−102dが着弾マーカ114上に存在する場合には、ボールオブジェクト110を捕球することができる。ただし、着弾点に到達する時(タイミング)のみで捕球したかどうかを判断すると、きわめて短い時間(1フレーム)での判断となるため、ほとんどの場合に捕球できないことになってしまう。このため、この実施例では、捕球(後述するレシーブの場合も同じ)したかどうかについては、所定期間内(着弾するタイミングの前5フレームから着弾するタイミングまでの期間)で判断するようにしてある。
【0104】
また、プレイヤは、右手に把持した第1コントローラ34を(上下または左右の方向などに)振ることにより、対応するプレイヤオブジェクト102a−102dを、所定のルールで決定された目標のボールオブジェクト110の着弾点に向けてジャンプさせて回転レシーブさせることができる。詳細な説明は省略するが、回転レシーブさせる場合には、同じ距離をアナログジョイスティック94aで移動させるよりも、短い時間で移動させることができる。
【0105】
ここで、所定のルールは、プレイヤオブジェクト102a−102dが目標とするボールオブジェクト110を決定するためのルールである。具体的には、プレイヤオブジェクト102a−102dは、対応するカラーボールオブジェクト110aがレシーブ可能範囲に有る場合には、当該カラーボールオブジェクト110aを目標に設定する。ただし、レシーブ可能範囲とは、プレイヤオブジェクト102a−102dがボールオブジェクト110を回転レシーブ可能な最大距離で決定される範囲であり、プレイヤオブジェクト102a−102dを中心とする水平方向の所定範囲(以下、「第2所定範囲」という)であって、第1所定範囲よりも大きく設定される。また、プレイヤオブジェクト102a−102dは、対応するカラーボールオブジェクト110aがレシーブ可能範囲内に複数存在する場合には、先に着弾するカラーボールオブジェクト110aを目標に設定する。さらに、プレイヤオブジェクト102a−102dは、対応するカラーボールオブジェクト110aがレシーブ可能範囲内に無い場合には、最寄りのボールオブジェクト110を目標に設定する。
【0106】
つまり、図11に示すように、プレイヤオブジェクト102a−102dは、ボールオブジェクト110を捕球するための第1所定範囲(半径D1)と、ボールオブジェクト110を回転レシーブするための第2所定範囲(半径D2<半径D1)とを有している。ただし、図11では、プレイヤオブジェクト102a−102dを真上方向から見た図である。したがって、プレイヤオブジェクト102a−102dがボールオブジェクト110を捕球ないしレシーブしたかどうかを判断する場合には、場合を分けて判断される。
【0107】
たとえば、プレイヤが第1コントローラ34を振っていない場合には、プレイヤオブジェクト102a−102dがボールオブジェクト110を捕球したかどうかが判断される。具体的には、プレイヤオブジェクト102a−102dの位置(現在位置)Pから半径D1で決定される第1所定範囲内に当該ボールオブジェクト110の着弾点が設定されているかどうかが判断される。第1所定範囲内にボールオブジェクト110の着弾点が設定されている場合には、当該ボールオブジェクト110が捕球されたことが判断される。
【0108】
一方、プレイヤが第1コントローラ34を振った場合には、プレイヤオブジェクト102a−102dがボールオブジェクト110を回転レシーブしたかどうかが判断される。具体的には、プレイヤオブジェクト102a−102dの位置Pから判定D2で決定される第2所定範囲内に当該ボールオブジェクト110の着弾点が設定されているかどうかが判断される。第2所定範囲内にボールオブジェクト110の着弾点が設定されている場合には、当該ボールオブジェクト110がレシーブされたことが判断される。
【0109】
なお、この実施例では、操作性を考慮して、第2コントローラ36のアナログジョイスティック94aを用いてプレイヤオブジェクト102a−102dの移動(歩行ないし走行)を制御し、第1コントローラ34を振ることによりプレイヤオブジェクト102a−102dを回転レシーブさせるようにしてあるが、これに限定される必要はない。たとえば、第1コントローラ34のみを横持ちで使用する場合には、十字キー82aを用いてプレイヤオブジェクト102a−102dの移動を制御し、2ボタン82cを用いてプレイヤオブジェクト102a−102dに回転レシーブさせるようにしてもよい。
【0110】
また、この実施例では、第1コントローラ34を振ることにより、プレイヤオブジェクト102a−102dに回転レシーブさせるようにしてあるが、単に速く移動させたり、身体の一部が延びたり、飛び道具を使ったりするようにしてもよい。ただし、飛び道具を用いる場合には、仮想ゲーム内では、当該飛び道具がボールオブジェクト110に当ったことにより、レシーブしたことが判断される。
【0111】
また、ボールオブジェクト110の各々には、所定のメロディ音が割り当てられており、プレイヤオブジェクト102a−102dがボールオブジェクト110を捕球ないしレシーブすると、当該メロディ音がBGMに加えて再生される。つまり、ボールオブジェクト110の捕球ないしレシーブを成功したことを示す効果音として、所定のメロディ音が出力される。この実施例では、メロディ音は、所定長さ(0.15秒−0.25秒程度)のBGMについての主旋律の音(BGMでは使用されていない楽器についての音)である。ただし、プレイヤオブジェクト102a−102dが、自身に割り当てられた色と同じ色の付されたカラーボールオブジェクト110aを捕球ないしレシーブした場合には、当該カラーボールオブジェクト110aに割り当てられたメロディ音が正しい音程で再生される。このとき、たとえば、10ポイント獲得となり、スコアに加算される。
【0112】
また、レインボーボールオブジェクト110bについては、いずれのプレイヤオブジェクト102a−102dが捕球ないしレシーブした場合であっても、当該レインボーボールオブジェクト110bに割り当てられたメロディ音が正しい音程で再生れる。このとき、たとえば、50ポイント獲得となり、スコアに加算される。
【0113】
一方、プレイヤオブジェクト102a−102dが異なる色が付されたカラーボールオブジェクト110aを捕球ないしレシーブした場合には、当該カラーボールオブジェクト110aに割り当てられたメロディ音が異なる音程で再生される。この場合にも、たとえば、10ポイント獲得となり、スコアに加算される。ただし、コンピュータによって操作されるプレイヤオブジェクト102a−102dが、プレイヤが操作するプレイヤオブジェクト102a−102dに割り当てられた色のカラーボールオブジェクト110を捕球ないしレシーブした場合には、ポイントは加算されない。
【0114】
また、ボールオブジェクト110が、いずれのプレイヤオブジェクト102a−102dにも捕球ないしレシーブされずに、地面に落下した場合には、当該ボールオブジェクト110に割り当てられたメロディ音は再生されない。この場合には、失敗を示す効果音(たとえば、不協和音)が再生され、また、たとえば、10ポイント減点となり、スコアから減算される。
【0115】
また、プレイヤオブジェクト102は、空中を飛行する、地面に残留するまたは地面をバウンドする、アイテムオブジェクト112(コインオブジェクト112a、バナナオブジェクト112bおよび鉄球オブジェクト112c)に触れると、ポイントを獲得したり、ポイントを失ったり、所定の効果が与えられたりする。この実施例では、プレイヤオブジェクト102がコインオブジェクト112aに触れると、当該コインオブジェクト112aに割り当てられた10ポイントがスコアに加算される。また、プレイヤオブジェクト102a−102dがバナナオブジェクト112bに触れると、それによって、プイレオブジェクト102a−102dは、転倒し、所定時間(たとえば、2秒)行動不能になる。たとえば、プレイヤオブジェクト102a−102dは、バナナオブジェクト112bに触れると、転倒し、ダメージを受けて、行動不能になっている様子のアニメーションで表示される。さらに、プレイヤオブジェクト102a−102dが鉄球オブジェクト112cに触れると、それによって、プレイヤオブジェクト102a−102dは、ダメージを受け、50ポイント減算される。また、プレイヤオブジェクト102a−102dが鉄球オブジェクト112cに触れた(当った)場合には、間違って捕球ないしレシーブしたと判定され、連続回数が0に(リセット)される。たとえば、プレイヤオブジェクト102a−102dは、鉄球オブジェクト112cに触れると、ダメージを受けた様子のアニメーションで表示される。
【0116】
なお、上述したアイテムオブジェクト112は、単なる一例であり、他の種類のアイテムオブジェクト112を用意しておき、ポイントを加算または減算したり、プレイヤオブジェクト102a−102dに所定の効果を与えたりしてもよい。たとえば、宝石オブジェクトを取得した場合には、ボーナスポイントが加算されるようにしてもよい。また、爆弾オブジェクトの爆風によって、プレイヤオブジェクト102a−102dが吹き飛ばされるようにしてよい。このとき、さらにポイントが減算されてもよい。さらに、きのこのような食べ物のオブジェクトを取得すると、所定時間だけ、プレイヤオブジェクト102a−102dの大きさを変化(大または小)させたり、プレイヤオブジェクト102a−102dの移動速度を速くさせたり、プレイヤオブジェク102a−102dをバナナオブジェクト112bや鉄球オブジェクト112cなどのお邪魔アイテムの影響を受けない無敵状態にさせたりしてもよい。
【0117】
また、プレイヤオブジェクト102a−102dが連続してボールオブジェクト110を捕球ないしレシーブすると、その連続回数がカウントされる。ただし、コンピュータ(以下、「コンピュータプレイヤ」ということがある)の操作するプレイヤオブジェクト102a−102dが、自身に割り当てられた色とは異なる色のカラーボールオブジェクト110aをレシーブした場合には、連続回数は加算されない。また、プレイヤオブジェクト102a−102dがボールオブジェクト110を捕球ないしレシーブしないと、つまり失敗すると、連続回数はリセットされる。この実施例では、捕球ないしレシーブを継続すると、その連続回数に応じて、豪華さが増すように、BGMが変化される。一方、捕球ないしレシーブに失敗すると、豪華さが減るように、一気にBGMが変化される。つまり、ゲームプレイの結果に応じて、この実施例では、BGMのトラック(パート)の数および音量の少なくとも一方を変化させるようにしてある。
【0118】
各BGMは、複数のパートで構成されている。図示は省略するが、BGMのデータ(BGMデータ)は、複数(この実施例では6個)のトラックデータで構成され、さらに、各トラックデータは、1または複数のパートについての楽譜データで構成される。BGMデータを構成する複数のトラックデータのうちの基本となる4つのトラックデータは、各プレイヤの担当(演奏)するパート(トラック)に対応している。この実施例では、各BGMの豪華さの度合い(豪華度)が、「最低」、「普通」、「グレート」、および「エクセレント」の4段階で変化される。具体的には、図12に示すBGMの変化テーブルに従って、豪華度が変化される。
【0119】
ここで、各BGMは、基本となるBGM1と、追加的に再生されるBGM2、BGM3とによって構成される。BGM1は、BGMが有する6つのトラックのうち、基本となる4つのトラックによって構成される。BGM2は、6つのトラックから基本となる4つのトラックを除いた2つのトラックのうちの1つのトラックによって構成され、BGM3は、残りの1つのトラックによって構成される。
【0120】
図12に示す変化テーブルに従えば、豪華度が「普通」である場合には、BGM1が100%の音量で再生される。また、豪華度が「グレート」である場合には、100%の音量で再生されるBGM1に加えて、BGM2が100%の音量で再生される。さらに、豪華度が「エクセレント」である場合には、100%の音量で再生されるBGM1およびBGM2に加えて、BGM3が100%の音量で再生される。ただし、豪華度が「最低」である場合は、BGM1が33%の音量で再生される。
【0121】
詳細な説明は省略するが、ここで説明した音量は、カラーテレビ受像機で設定される音量では無く、ゲーム装置12の内部で設定される音量である。たとえば、DSP52から出力されるオーディオデータのレベルが調整される。または、オーディオデータに対応するアナログの音声信号のレベルがAV IC56で調整され、スピーカ30に出力される。
【0122】
なお、この実施例では、豪華度が「グレート」や「普通」である場合に、「最低」に変化すると、トラック(パート)数が減らされたり(BGM1+BGM2からBGM1に変化されたり)、音量が低く(100%から33%に低減)されたりするようにして、トラック(パート)数と音量との両方が変化されることがある。しかし、豪華度が「普通」から「グレート」に変化されたり、「グレート」から「エクセレント」に変化されたりする場合には、BGM2やBGM3が追加的に再生されるだけである。つまり、トラック(パート)数が増加するだけであり、音量は変化されない。したがって、このような場合にも、音量を変化させるようにしてもよい。たとえば、豪華度が「普通」の場合のBGM1の音量を70%に設定したり、豪華度が「グレート」の場合のBGM2の音量を50%−70%に設定したりすることが考えられる。
【0123】
また、この実施例では、BGMに対応して、図13(A)に示すような配球情報が設けられる。図示は省略するが、複数のBGMのそれぞれに対応して、個別に配球情報が設けられる。この配球情報は、BGMに合わせて設定されたメロディ音を再生するタイミングおよび当該メロディ音が割り当てられるボールオブジェクト110やメロディ音が割り当てられていないアイテムオブジェクト112の種類や移動制御についての情報(オブジェクト情報)を含む。
【0124】
図13(A)に示すように、配球情報は、4つのトラック(トラック0、トラック1、トラック2、トラック3)を含む。各トラックには、BGMの再生開始(0フレーム)から再生終了までに対応して、複数の桝目が時系列に並んで設けられる。各桝目には、オブジェクト情報を設定することが可能である。したがって、メロディ音を鳴らしたいタイミングには、ボールオブジェクト110についてのオブジェクト情報が記述される。また、アイテムを配置させたいタイミングには、アイテムオブジェクト112についてのオブジェクト情報が記述される。図13(A)では、オブジェクト情報が記述されている桝目に斜線を付してあり、空白の桝目にはオブジェクト情報は記述されていない。
【0125】
上述したように、桝目にはオブジェクト情報が設定されるため、1つの桝目の長さはメロディ音の長さに相当する。この実施例では、BGMの演奏速度に応じて、メロディ音の長さは所定時間(0.15秒(約10〜11フレーム)−0.25秒(15フレーム))に設定される。
【0126】
図13(B)は、オブジェクト情報の具体例が示される。オブジェクト情報は、再生タイミングフレーム、種別、飛行時間、最小距離、最大距離および特殊フラグを含む。再生タイミングフレームは、ボールオブジェクト110またはアイテムオブジェクト112が着弾点に到達するタイミングを示すフレームであって、BGMの再生開始(0フレーム)からのフレーム数が記述される。したがって、図13(A)に示した桝目の並び順は、ボールオブジェクト110およびアイテムオブジェクト112が着弾点に到達する順(到達順)に相当する。
【0127】
種別は、ボールオブジェクト110の場合には、当該ボールオブジェクト110が捕球ないしレシーブされたときに再生されるメロディ音についての識別情報が記述される。この実施例では、メロディ音の識別情報は、対応するデータについてのIDないしファイル名である。一方、アイテムオブジェクト112の場合には、種別として、アイテムの種類(コイン、バナナ、鉄球)が記述される。
【0128】
飛行時間は、ボールオブジェクト110またはアイテムオブジェクト112が発射されてから着弾点に到達するまでの時間であって、当該時間に相当するフレーム数が記述される。詳細な説明は省略するが、飛行時間は、3段階(60フレーム、120フレーム、180フレーム)で設定される。
【0129】
最小距離および最大距離は、ボールオブジェクト110またはアイテムオブジェクト112の着弾点を決定する際の範囲を規定するための距離であって、ゲームフィールド100aすなわち仮想ゲーム空間における長さが記述される。ただし、最小距離および最大距離は、当該オブジェクト情報を含むトラックが割り当てられたプレイヤオブジェクト102a−102dの現在位置からの距離である。
【0130】
特殊フラグは、レインボーボールオブジェクト110bであるかどうかを判別するためのフラグであり、成立(オン)または不成立(オフ)が記述される。特殊フラグがオンである場合には、レインボーボールオブジェクト110bであり、特殊フラグがオフである場合には、当該オブジェクト情報を含むトラックが割り当てられたプレイヤオブジェクト102a−102dに割り当てられた色のボールオブジェクト110である。つまり、特殊フラグがオンである場合には、カラーボールオブジェクト110aに代えて、レインボーボールオブジェクト110bが発射されるのである。
【0131】
上述したように、ボールオブジェクト110およびアイテムオブジェクト112は、飛行時間が3段階で設定されるため、到達順と発射順とが入れ替わる場合がある。また、この実施例では、発射タイミングの所定時間前に、ボールオブジェクト110およびアイテムオブジェクト112をベルトコンベアオブジェクト108上に配置するようにしてある。したがって、この実施例では、配球情報に基づいて、発射タイミングについてのテーブル(発射タイミングテーブル)を作成しておき、この発射タイミングテーブルに従って、ボールオブジェクト110およびアイテムオブジェクト112の発射を制御するようにしてある。
【0132】
図14に示すように、発射タイミングテーブルは、発射タイミングフレームに対応して、配球情報のトラック番号および到達順が記述される。この発射タイミングテーブルは、配球情報に含まれるオブジェクト情報のみに着目して生成される。まず、各オブジェクト情報に含まれる再生タイミングフレームから飛行時間を減算した発射タイミングフレームが算出される。そして、発射タイミングフレームの早い順に、対応するオブジェクト情報が記述されたトラック番号および到達順が記述されるのである。
【0133】
ただし、図14では、簡単のため、発射タイミングフレームをfn(n=1、2、…、N)で示してあるが、実際には、BGMの再生開始からのフレーム数が記述される。また、トラック番号をT0−T3で示してあるが、Tは配球情報におけるトラックを意味する。
【0134】
この発射タイミングテーブルにしたがって、ボールオブジェクト110およびアイテムオブジェクト112がベルトコンベアオブジェクト108に配置されるとともに、発射台オブジェクト106から発射される。
【0135】
次に、発射されるボールオブジェクト110およびアイテムオブジェクト112(以下、これらを「オブジェクト110、112」ということがある)の移動制御について説明する。図15(A)は、ゲームフィールド110aを真上から見た図解図である。オブジェクト110、112が発射される場合には、まず、到達位置すなわち着弾点(2次元平面上の点)が決定される。この着弾点は、対応するプレイヤオブジェクト102a−102dの位置(現在位置)Pに応じて決定される。ただし、対応するプレイヤオブジェクト102a−102dとは、当該オブジェクト110、112についてのオブジェクト情報が記述されたトラック0−トラック3が割り当てられたプレイヤオブジェクト102a−102dを意味する。
【0136】
まず、オブジェクト情報に記載の最小距離(半径r)と最大距離(半径R)とによってドーナツ状の範囲(斜線を付して示す範囲)が規定される。このドーナツ状の範囲内において、任意(ランダム)に着弾点Bが決定される。ただし、この実施例では、水平面(XY平面)内における発射位置Aは、発射台オブジェクト106の中心に固定的に設定されているものとする。着弾点Bが決定されると、発射位置Aと着弾点Bとの距離(水平距離)dが算出される。具体的には、数1に従って算出される。ただし、水平面における発射位置Aの座標を(X1,Y1)とし、着弾点Bの座標を(X2,Y2)とする。また、図15(A)に示すように、ワールド座標系において、横方向がX軸方向であり、縦方向がY軸方向であり、高さ方向がZ軸方向である。また、右方向がX軸のプラス方向であり、下方向がY軸方向のプラス方向であり、紙面に対して垂直上向きがZ軸のプラス方向である。
【0137】
[数1]
d=√{(X1−X2)2+(Y1−Y2)2}
また、オブジェクト110、112の発射方向のうちの水平方向の角度φは、数2に従って算出される。ただし、発射位置Aを通りY軸に平行に延びる直線H上を水平方向の中心(0度)とする。また、発射位置Aから見て、直線Hの右側に開く角度φの符号をマイナスとし、直線Hの左側に開く角度φの符号をプラスとする。さらに、L(=X2−X1)は、着弾点Bから直線Hに下ろした垂線の長さである。
【0138】
[数2]
φ=sin−1(L/d)
数1に従って距離dが算出されると、飛行時間t(フレーム)が、上述したオブジェクト情報で与えられるため、数3−数5に示す斜方投射の物理計算に基づいて、数6に従って、オブジェクト110、112の垂直方向の角度θが算出される。さらに、角度θを数3に代入して、発射速度(初速度)vが算出される。ただし、hは高さ方向(Z軸のプラス方向)の距離である。この実施例では、数5に示すように、オブジェクト110、112が最高点に達したときの高さhを、オブジェクト110、112を発射する際に任意(ランダム)に決定するようにしてある。ただし、最高点の高さhの範囲は予め決定されている。さらに、gは仮想ゲーム空間に設定されるZ軸のマイナス方向の加速度(重力加速度に相当)である。
【0139】
[数3]
d=v×cosθ×t
[数4]
h=v×sinθ×t−1/2×gt2
[数5]
(v×sinθ)2=2gh
数4の右辺の第2項を左辺に移行した後、数4の辺々を数3の辺々で割ると、数6に示すように、垂直方向の角度θが算出される。
【0140】
【数6】
【0141】
ただし、図15(B)に示すように、発射台オブジェクト106の発射位置Aと着弾点Bとは、同一水平面内であり、地面よりも少し高い位置に設定される。これは、プレイヤオブジェクト102a−102dが、ボールオブジェクト110を捕球ないしレシーブしたときに、メロディ音を再生するようにしてあるためである。したがって、たとえば、発射位置Aおよび着弾点Bの高さ方向の位置(Z座標の値)は、プレイヤオブジェクト102a−102dの腰から膝の間の高さに設定される。
【0142】
なお、この実施例では、オブジェクト情報に、2つの距離(最小距離と最大距離)を設定しておき、それらによって規定される範囲内で着弾点Bを任意に決定するようにしたが、1つの距離のみを設定しておき、プレイヤオブジェクト102a−102dの位置と、その距離とよって規定される円内または円上の任意の点を着弾点Bに決定するようにしてもよい。このように、1つまたは2つの距離を設定する場合には、プレイヤオブジェクト102a−102dが捕球ないしレシーブが不可能な位置に着弾点Bが設定されるような不都合を回避することができる。また、プレイヤオブジェクト102a−102dの位置Pから距離を設定するので、着弾点Bを決定する範囲を簡単に設定することができる。ただし、オブジェクト情報に、距離を設定せずに、ゲームフィールド102a上の任意の点を着弾点Bに決定するようにしてもよい。
【0143】
また、この実施例では、オブジェクト110、112を発射する際に、最高点の高さhを任意に決定するようにしてあるが、これに代えて、垂直方向の角度θを所定範囲(たとえば、15度−80度)内においてランダムに決定するようにしてもよい。このようにすれば、数3に従って、初速度vを簡単に算出することができる。
【0144】
図16は図2に示したメインメモリ42c(46)のメモリマップ500の例を示す図解図である。図16に示すように、メインメモリ42c(46)は、プログラム記憶領域502およびデータ記憶領域504を含む。プログラム記憶領域502は、ゲームプログラムを記憶し、ゲームプログラムは、メイン処理プログラム502a、画像生成プログラム502b、画像表示プログラム502c、音再生プログラム502d、BGM変化プログラム502e、プレイヤオブジェクト制御プログラム502f、ボールオブジェクト制御プログラム502g、アイテムオブジェクト制御プログラム502h、当り判定プログラム502i、連続回数カウントプログラム502jおよびスコア計算プログラム502kなどによって構成される。
【0145】
メイン処理プログラム502aは、この実施例の仮想ゲーム(リズムゲーム)のメインルーチンを処理するためのプログラムである。画像生成プログラム502bは、後述する画像データ504b(図17参照)を用いて、図9に示したようなゲーム画面100などの各種画面を表示するための表示画像データを生成するためのプログラムである。画像表示プログラム502cは、画像生成プログラム502bに従って生成された表示画像データをモニタ28に出力するためのプログラムである。
【0146】
音再生プログラム502dは、DSP52を制御して、BGMについてのBGMデータ(サウンドデータ)からオーディオデータを生成し、スピーカ30に出力するためのプログラムである。したがって、プレイヤによって選択されたBGMが再生される。また、音再生プログラム502dは、DSP52を制御して、後述する音データ504eを用いて、BGM以外の音(効果音)、音声ないし音楽についてのオーディオデータを生成し、スピーカ30に出力するためのプログラムである。したがって、ボールオブジェクト110を捕球ないしレシーブした場合のメロディ音が再生されたり、ボールオブジェクト110を捕球ないしレシーブできなかった場合の効果音が再生されたりする。BGM変化プログラム502eは、図12に示したようなBGMの変化テーブルに従うように、BGMのトラック(パート)数および音量の少なくとも一方を変化させるためのプログラムである。
【0147】
プレイヤオブジェクト制御プログラム502fは、第1コントローラ34および第2コントローラ16からのコントローラデータに従って、対応するプレイヤオブジェクト102a−102dの移動等を制御するためのプログラムである。ボールオブジェクト制御プログラム502gは、ボールオブジェクト110の移動等を制御するためのプログラムである。アイテムオブジェクト制御プログラム502hは、アイテムオブジェクト112(コインオブジェクト112a、バナナオブジェクト112b、鉄球オブジェクト112c)の移動等を制御するためのプログラムである。
【0148】
当り判定プログラム502iは、プレイヤオブジェクト102a−102dが、ボールオブジェクト110に接触した(当った)かどうかを判定したり、アイテムオブジェクト112に接触した(当った)かどうかを判定したりする。ただし、プレイヤオブジェクト102a−102dがボールオブジェクト110に接触したかどうかは、上述したように、所定時間内に、プレイヤオブジェクト102a−102dを中心として、第1所定範囲内または第2所定範囲内に当該ボールオブジェクト110の着弾点が存在するかどうかで判断される。ただし、上述したように、第1所定範囲または第2所定範囲は、第1コントローラ34を振ったかどうかで使い分けられる。
【0149】
連続回数カウントプログラム502jは、プレイヤオブジェクト102a−102dがボールオブジェクト110の捕球またはレシーブを連続して行っている回数をカウントするためのプログラムである。スコア算出プログラム502kは、得点や減点に従ってスコアを加算または減算するためのプログラムである。
【0150】
なお、図示は省略するが、プログラム記憶領域502には、バックアッププログラムなども記憶される。バックアッププログラムは、ゲームデータ(途中データ、結果データ)をメモリカード38に保存(セーブ)するためのプログラムである。
【0151】
図17に示すように、データ記憶領域504には、操作データバッファ504aが設けられる。操作データバッファ504aは、第1コントローラ34および第2コントローラ36からのコントローラデータを記憶(一時記憶)するために設けられる。操作データバッファ504aに記憶されたコントローラデータは、CPU40の処理に用いられた後に、削除される。
【0152】
また、データ記憶領域504には、画像データ504b、BGMデータ504c、配球データ504d、音データ504e、プレイヤ情報データ504f、トラック割当データ504g、発射データ504h、水平角度データ504i、垂直角度データ504j、速度データ504kおよびスコアデータ504mが記憶される。
【0153】
画像データ504bは、表示画像データを生成するためのポリゴンデータやテクスチャデータなどのデータおよびプレイヤオブジェクト102a−102dに所定のモーションを実行させるためのアニメーションデータを含む。BGMデータ504cは、複数のBGM(BGM1、BGM2、…)についてのデータである。BGM1データ5040、BGM2データ5042、…のそれぞれは、上述したように、6個のトラックについてのトラックデータを含む。
【0154】
配球データ504dは、複数の配球情報(配球情報1、配球情報2、…)についてのデータである。配球情報1データ5050、配球情報2データ5050、…のそれぞれは、上述したように、4人のプレイヤ(コンピュータプレイヤを含む場合もある)に対応する4つのトラック(トラック0、トラック1、トラック2、トラック3)について、到達順に従って複数の桝目が設けられ、桝目の一部にオブジェクト情報が記述されたデータである。ただし、配球情報1データ5050はBGM1データ5040に対応し、配球情報2データ5052はBGM2データ5042に対応する。つまり、BGMと同数の配球情報が設けられる。
【0155】
音データ504eは、メロディ音を含む効果音、音声またはBGM以外の音楽についてのサウンドデータや音波形(音色)データであって、各データには識別情報が対応付けられている。プレイヤ情報データ504fは、各プレイヤ(1P−4P)が選択したプレイヤオブジェクト102a−102dについての情報(プレイヤ情報)を示すデータである。たとえば、プレイヤ情報では、1P−4Pに対応して、プレイヤオブジェクト102a−102dの識別情報が記述される。
【0156】
トラック割当データ504gは、選択されたBGM(5040、5042、…)に対応する配球情報(5050、5052、…)に含まれる4つのトラック(トラック0−トラック3)が、どのプレイヤオブジェクト102a−102dに割り当てられているかを示すデータである。発射データ504hは、選択されたBGM(5040、5042、…)に対応する配球情報(5050、5052、…)から作成した発射タイミングテーブルについてのデータである。水平角度データ504iは、発射するオブジェクト110、112について数2に従って算出された水平方向の角度φについてのデータである。垂直角度データ504jは、発射するオブジェクト110、112について数6に従って算出された垂直方向の角度θについてのデータである。速度データ504kは、発射するオブジェクト110、112について数3および数6に従って算出された発射の速度(初速度)vについてのデータである。スコアデータ504mは、スコアについての数値データである。
【0157】
さらに、データ記憶領域504には、フレームカウンタ504n、連続回数カウンタ504p、移動不能時間タイマ504q、最低フラグ504r、普通フラグ504s、グレートフラグ504t、エクセレントフラグ504u、移動不能フラグ504v、ダメージフラグ504wが設けられる。
【0158】
フレームカウンタ504nは、BGMの再生開始からのフレーム数をカウントするためのアップカウンタである。連続回数カウンタ504pは、プレイヤオブジェクト102a−102dがボールオブジェクト110を連続して捕球ないしレシーブした回数をカウントするためのアップカウンタである。移動不能時間タイマ504qは、プレイヤオブジェクト102a−102dがバナナオブジェクト102bに接触し、移動不能な状態になっている時間をカウントするためのタイマである。
【0159】
最低ブラグ504rは、BGMの豪華度が「最低」であるかどうかを判別するためのフラグであり、1ビットのレジスタで構成される。最低フラグ504rがオンであれば、レジスタにデータ値「1」が設定される。一方、最低フラグ504rがオフであれば、レジスタにデータ値「0」が設定される。この実施例では、豪華度が「普通」または「グレート」である場合に、プレイヤオブジェクト102a−102dが捕球またはレシーブに失敗すると、最低フラグ504rがオンされる。
【0160】
普通フラグ504sは、BGMの豪華度が「普通」であるかどうかを判別するためのフラグであり、1ビットのレジスタで構成される。普通フラグ504sがオンであれば、レジスタにデータ値「1」が設定される。一方、普通フラグ504sがオフであれば、レジスタにデータ値「0」が設定される。この実施例では、豪華度が「最低」である場合に、連続回数カウンタ504pのカウント数が第1所定数(この実施例では、10)を示したときに、普通フラグ504sがオンされる。また、豪華度が「エクセレント」である場合に、プレイヤオブジェクト102a−102dが捕球またはレシーブに失敗すると、普通フラグ504sがオンされる。ただし、この実施例では、リズムゲームが開始されるとき(またはBGMの再生が開始されるとき)には、普通フラグ504sがオンされ、BGMの豪華度は「普通」に設定されている。
【0161】
グレートフラグ504tは、BGMの豪華度が「グレート」であるかどうかを判別するためのフラグであり、1ビットのレジスタで構成される。グレートフラグ504tがオンであれば、レジスタにデータ値「1」が設定される。一方、グレートフラグ504tがオフであれば、レジスタにデータ値「0」が設定される。この実施例では、豪華度が「普通」である場合に、連続回数カウンタ504pのカウント数が第1所定数または第2所定数(この実施例では、20)を示したときに、グレートフラグ504tがオンされる。
【0162】
エクセレントフラグ504uは、BGMの豪華度が「エクセレント」であるかどうかを判別するためのフラグであり、1ビットのレジスタで構成される。エクセレントフラグ504uがオンであれば、レジスタにデータ値「1」が設定される。エクセレントフラグ504uがオフであれば、レジスタにデータ値「0」が設定される。この実施例では、豪華度が「グレート」である場合に、連続カウンタ504pのカウント数が第2所定数または第3所定数(この実施例では、30)を示すときに、エクセレントフラグ504uがオンされる。
【0163】
なお、BGMの豪華度は「最低」、「普通」、「グレート」および「エクセレント」のいずれかに設定されるため、最低フラグ504r、普通フラグ504s、グレートフラグ504t、エクセレントフラグ504uのいずれか1つがオンである場合には、他の3つはオフである。
【0164】
移動不能フラグ504vは、プレイヤオブジェクト102a−102dが移動不能な状態であるかどうかを判別するためのフラグであり、各プレイヤオブジェクト102a−102dに対応する4ビットのレジスタで構成される。プレイヤオブジェクト102a−102dが移動不能な状態である場合には、当該プレイヤオブジェクト102a−102dについての移動不能フラグ504vはオンされ、レジスタの対応するビットにデータ値「1」が設定される。一方、プレイヤオブジェクト102a−102dが移動不能な状態でない場合には、当該プレイヤオブジェクト102a−102dについての移動不能フラグ504vはオフされ、レジスタの対応するビットにデータ値「0」が設定される。この実施例では、プレイヤオブジェクト102a−102dがバナナオブジェクト112bに接触した場合に、移動不能な状態となり、所定時間が経過すると、移動不能な状態が解除される。
【0165】
ダメージフラグ504wは、プレイヤオブジェクト102a−102dがダメージを受けた状態であるかどうかを判別するためのフラグであり、各プイレヤオブジェクト102a−102dに対応する4ビットのレジスタで構成される。プレイヤオブジェクト102a−102dがダメージを受けた状態である場合には、当該プレイヤオブジェクト102a−102dについてのダメージフラグ504wはオンされ、レジスタの対応するビットにデータ値「1」が設定される。一方、プレイヤオブジェクト102a−102dがダメージを受けていない状態または回復した状態である場合には、当該プレイヤオブジェクト102a−102dについてのダメージフラグ504wはオフされ、レジスタの対応するビットにデータ値「0」が設定される。この実施例では、プレイヤオブジェクト102a−102dが鉄球オブジェクト112cに接触した場合に、ダメージを受けた状態となり、その後(ダメージのアニメーションを再生した後)、回復した状態になる。
【0166】
図18−図22は、図2に示したCPU40のリズムゲームのゲーム全体処理を示すフロー図である。図18に示すように、CPU40はゲーム全体処理を開始すると、ステップS1で、プレイヤオブジェクト102a−102dが選択されたかどうかを判断する。図示は省略するが、リズムゲームのゲーム全体処理が開始されると、プレイヤおよびコンピュータプレイヤの人数が決定された後に、各プレイヤ(コンピュータプレイヤを含む場合がある)が操作(使用)するプレイヤオブジェクト102a−102dを選択するための選択画面が表示される。この選択画面において、1P−4Pについてのプレイヤオブジェクト102a−102dが選択される。
【0167】
ステップS1で“NO”であれば、つまりプレイヤオブジェクト102a−102dが選択されていなければ、同じステップS1に戻る。一方、ステップS1で“YES”であれば、つまりプレイヤオブジェクト102a−102dが選択されると、ステップS3で、プレイヤ情報を記憶する。つまり、1P−4Pのそれぞれに対応して、選択されたプレイヤオブジェクト102a−102dを示すプレイヤ情報データ504fがデータ記憶領域504に記憶される。上述したように、1P−4Pでは、予め色が決定されているため、プレイヤ情報データ504fが記憶されることにより、プレイヤオブジェクト102a−102dに色が割り当てられる。
【0168】
続いて、ステップS5で、曲(BGM)の選択があるかどうかを判断する。図示は省略するが、プレイヤオブジェクト102a−102dが選択された後に、BGMを選択するための選択画面が表示され、この選択画面において、プレイヤの操作に従ってBGMが選択されたかどうかを判断するのである。
【0169】
ステップS5で“NO”であれば、つまり曲(BGM)が選択されていなければ、そのままステップS5に戻る。一方、ステップS5で“YES”であれば、つまり曲(BGM)が選択されれば、ステップS7で、選択された曲(BGM1データ5040、BGM2データ5042、…)に対応する配球情報(配球情報1データ5050、配球情報2データ5052、…)を読み込む。次のステップS9では、配球情報に基づいて、発射タイミングテーブルを作成する。つまり、読み込まれた配球情報1データ5050、配球情報2データ5052、…から、発射データ504hが生成される。
【0170】
続いて、ステップS11では、各プレイヤオブジェクト102a−102dにトラックを割り当てる。この実施例では、配球情報に含まれる4つのトラックの各々が、任意(ランダム)にプレイヤオブジェクト102a−102dの各々に割り当てられる。つまり、トラック割当データ504gが決定され、データ記憶領域504に記憶される。そして、ステップS13で、曲(BGM)の再生を開始する。つまり、CPU40は、選択された曲(BGM)の再生指示をDSP52に与える。したがって、DSP52は、曲(BGM)に対応するBGMデータ504c(BGM1データ5040、BGM2データ5042、…)からオーディオデータを生成し、BGMの再生を開始する。ただし、上述したように、ゲーム全体処理(リズムゲーム)を開始したとき、またはBGMの再生を開始したときには、BGMの豪華度は「普通」に設定される。つまり、普通フラグ504sがオンされた状態である。したがって、ステップS13では、BGM1が100%の音量で再生されるのである。
【0171】
次のステップS15では、フレームカウンタ504nを初期化(カウント値=0に設定)する。図19に示すように、続くステップS17では、発射タイミングの所定時間(この実施例では、2秒(120フレーム))前のオブジェクト110、112をベルトコンベアオブジェクト106の最後尾(右端)に配置する。このとき、発射データ504hに対応する発射タイミングテーブルが参照される。図示は省略するが、このように配置されたオブジェクト110、112は、ベルトコンベアオブジェクト106によって、所定時間(たとえば、120フレーム)以内に、発射台オブジェクト106の内部に移動される。
【0172】
続くステップS19では、発射タイミングのオブジェクト110、112が有るかどうかを判断する。ここでは、CPU40は、発射データ504hに対応する発射タイミングテーブルを参照して、フレームカウンタ504nのカウント値が示すフレーム数と一致する発射タイミングフレームが存在するかどうかを判断する。
【0173】
ステップS19で“NO”であれば、つまり発射タイミングのオブジェクト110、112が無ければ、そのままステップS23に進む。一方、ステップS19で“YES”であれば、つまり発射タイミングのオブジェクト110、112が有れば、ステップS21で、該当するオブジェクト110、112の移動および判定のタスクを起動して、ステップS23に進む。ステップS21では、CPU40は、現フレームと一致する発射タイミングフレームに対応して記載されたトラック番号および到達順に従って、配球データ504dに対応する配球情報を参照し、該当するオブジェクト情報に含まれる種別が示すオブジェクト110、112についてのオブジェクトの移動および判定のタスクを起動する。ただし、オブジェクトの移動および判定処理(図23−図25、図26−図27)については、後で詳細に説明する。
【0174】
ステップS23では、連続回数が10の倍数かどうかを判断する。つまり、CPU40は、連続回数カウンタ504pのカウント値が10の倍数かどうかを判断する。ステップS23で“NO”であれば、つまり連続回数が10の倍数でなければ、そのまま図22に示すステップS65に進む。一方、ステップS23で“YES”であれば、つまり連続回数が10の倍数であれば、ステップS25で、連続回数が第4所定値(たとえば、40)以上であるかどうかを判断する。
【0175】
ステップS25で“YES”であれば、つまり連続回数が第4所定値以上であれば、BGMの豪華度が「エクセレント」である状態が継続していると判断して、図22に示すステップS63に進む。一方、ステップS25で“NO”であれば、つまり連続回数が第4所定値以上でなければ、図20に示すステップS27で、連続回数が第1所定値(たとえば、10)であるかどうかを判断する。
【0176】
ステップS27で“NO”であれば、つまり連続回数が第1所定値でなければ、連続回数は第2所定値(たとえば、20)または第3所定値(たとえば、30)と判断して、図21に示すステップS41に進む。一方、ステップS27で“YES”であれば、つまり連続回数が第1所定値であれば、ステップS29で、最低フラグ504rがオンであるかどうかを判断する。
【0177】
ステップS29で“YES”であれば、つまり最低フラグ504rがオンであれば、BGMの豪華度が「最低」であると判断して、ステップS31で、通常フラグ504sをオンし、ステップS33で、BGM1を100%の音量で再生する。つまり、ステップS33では、CPU40の指示に従って、DSP52が、BGM1を構成する4つのトラックについての音量を最大(100%)に変化させるのである。さらに、ステップS35で、第1連続ボーナスポイント(たとえば、50ポイント)をスコアに加算して、ステップS65に進む。つまり、ステップS35では、CPU40は、スコアデータ504mが示すスコアに第1連続ボーナスポイントを加算し、スコアデータ504mを更新する。このとき、ゲーム画面100に表示されたスコア120の表示も更新される。以下、ポイントがスコアに加算される場合について同様である。
【0178】
なお、図示は省略するが、ステップS31で、通常フラグ504sがオンされたとき、最低フラグ504rはオフされる。
【0179】
一方、ステップS29で“NO”であれば、つまり最低フラグ504rがオフであれば、通常フラグ504sがオンであるため、ステップS37で、グレートフラグ504tをオンし、ステップS39で、BGM1およびBGM2を100%の音量で再生して、ステップS35に進む。つまり、ステップS39では、CPU40の指示に従って、DSP52が、BGM1に追加するように、BGM2を100%の音量で再生する。
【0180】
なお、図示は省略するが、ステップS37では、グレートフラグ504tがオンされたときに、通常フラグ504sがオフされる。後述するステップS45において同じ。
【0181】
図21に示すように、ステップS41では、連続回数が第2所定値であるかどうかを判断する。つまり、CPU40は、連続回数カウンタ504pのカウント値が第2所定値であるかどうかを判断する。ステップS41で“NO”であれば、つまり連続回数が第3所定値であれば、図22に示すステップS55に進む。一方、ステップS41で“YES”であれば、つまり連続回数が第2所定値であれば、ステップS43で、通常フラグ504sがオンであるかどうかを判断する。
【0182】
ステップS43で“YES”であれば、つまり通常フラグ504sがオンであれば、ステップS45で、グレートフラグ504tをオンして、ステップS47で、BGM1およびBGM2を100%の音量で再生し、ステップS49で、第2連続ボーナスポイント(たとえば、100ポイント)をスコアに加算して、図22に示すステップS65に進む。
【0183】
一方、ステップS43で“NO”であれば、つまり通常フラグ504sがオフであれば、グレートフラグ504tがオンであるため、ステップS51で、エクセレントフラグ504uをオンし、ステップS53で、BGM1−BGM3を100%の音量で再生して、ステップS49に進む。つまり、ステップS53では、CPU40の指示に従って、DSP52は、BGM1およびBGM2に追加するように、BGM3を最大(100%)の音量で再生する。
【0184】
なお、図示は省略するが、ステップS51で、エクセレントフラグ504uがオンされたとき、グレートフラグ504tはオフされる。後述するステップS57において同じ。
【0185】
図22に示すように、ステップS55では、エクセレントフラグ504uがオンであるかどうかを判断する。ステップS55で“NO”であれば、つまりグレートフラグ504tがオンであれば、ステップS57で、エクセレントフラグ504uをオンし、ステップS59で、BGM1−BGM3を100%の音量で再生し、ステップS61で、第3連続ボーナスポイント(たとえば、150ポイント)をスコアに加算して、ステップS65に進む。
【0186】
一方、ステップS55で“YES”であれば、つまりエクセレントフラグ504uがオンであれば、ステップS63で、第4連続ボーナスポイント(たとえば、200ポイント)をスコアに加算して、ステップS65に進む。ステップS65では、演奏終了かどうかを判断する。つまり、CPU40は、選択されたBGM1データ5040、BGM2データ5042、…を最後(最終フレーム)まで再生したかどうかを判断する。
【0187】
ステップS65で“NO”であれば、つまり演奏を終了していなければ、ステップS67で、フレーム数を1加算して、つまりフレームカウンタ504nのカウント値を1加算して、図19に示したステップS17に戻る。詳細な説明は省略するが、ステップS17−S67のスキャンタイムが1フレームである。一方、ステップS65で“YES”であれば、つまり演奏終了であれば、ゲーム全体処理を終了する。
【0188】
図23−図25は、オブジェクトの移動および判定処理を示すフロー図である。このオブジェクトの移動および判定処理は、ボールオブジェクト110についてのオブジェクトの移動および判定のタスクが起動された場合に処理が開始され、ゲーム全体処理とは並列的に、また、ボールオブジェクト110単位で実行される。後述するアイテムオブジェクト112についてのオブジェクトの移動および判定処理(図26−図27)についても同様である。
【0189】
図23に示すように、CPU40は、オブジェクトの移動および判定処理を開始すると、ステップS91で、再生タイミングフレーム、種別(メロディの識別情報)、飛行時間、最小距離、最大距離および特殊フラグを読み込む。
【0190】
詳細な説明は省略するが、オブジェクトの移動および判定処理が開始される時点で、再生タイミングフレーム等を読み出すトラックは決定されており、したがって、当該トラックが割り当てられたプレイヤオブジェクト102a−102dおよびカラーボールオブジェクト110aの色も決定されている。ただし、特殊フラグがオンの場合には、レインボーボールオブジェクト110bに決定される。
【0191】
次のステップS93では、プレイヤオブジェクト102a−102dの位置に基づいて着弾点Bを決定する。ここでは、図15(A)を用いて説明したように、CPU40は、対応するプレイヤオブジェクト102a−102dの現在位置Pを中心として、最小距離(半径r)と最大距離(半径R)とで決定される所定範囲内で任意に着弾点Bを決定する。続くステップS95では、発射する水平方向の角度φを数2に従って算出する。さらに、ステップS97で、発射する速度(初速度)vおよび垂直方向の角度θを、数3および数6に従って算出する。
【0192】
続いて、ステップS99で、ボールオブジェクト110を発射する。このとき、特殊フラグがオンであれば、レインボーボールオブジェクト110bが発射される。一方、特殊フラグがオフであれば、上述したように、予め決定された色のカラーボールオブジェクト110aが発射される。ただし、発射する方向は、水平方向の角度φおよび垂直方向の角度θで決定され、発射する初速度は、速度vである。
【0193】
さらに、ステップS101では、着弾点Bを含む所定範囲を示す着弾マーカ114を表示する。次のステップS103では、ボールオブジェクト110が着弾点Bに到達する所定フレーム前であるかどうかを判断する。ここでは、CPU40は、フレームカウンタ504nのカウント値が、ステップS91で読み込んだ再生タイミングフレームの所定フレーム(5フレーム)前になったかどうかを判断する。ステップS103で“NO”であれば、つまりボールオブジェクト110が着弾点Bに到達する所定フレーム前になっていなければ、同じステップS103に戻る。ここでは、簡単のため、ステップS103で“NO”の場合にはそのままステップS103に戻るようにしてあるが、実際には、斜方投射の物理計算に従って、ボールオブジェクト110の移動が制御され、その様子がゲーム画面100に表示される。後述するアイテムオブジェクト112についても同様である。
【0194】
一方、ステップS103で“YES”であれば、つまりボールオブジェクト110が着弾点Bに到達する所定フレーム前になると、ステップS105で、捕球またはレシーブされたかどうかを判断する。上述したように、この実施例では、CPU40は、プレイヤが第1コントローラ34を振っていない場合には、プレイヤオブジェクト102a−102dを中心とする第1所定範囲内に、当該ボールオブジェクト110の着弾点Bが含まれているかどうかで、当該ボールオブジェクト110を捕球したかどうかを判断する。一方、CPU40は、プレイヤが第1コントローラ34を振った場合には、プレイヤオブジェクト102a−102dを中心とする第2所定範囲内に、ボールオブジェクト110の着弾点Bが含まれているかどうかで、当該ボールオブジェクト110をレシーブ(回転レシーブ)したかどうかを判断する。
【0195】
ステップS105で“YES”であれば、つまり捕球またはレシーブされた場合には、図24に示すステップS109に進む。一方、ステップS105で“NO”であれば、つまり捕球またはレシーブされていない場合には、ステップS107で、ボールオブジェクト110が着弾点Bを超えたかどうかを判断する。つまり、CPU40は、フレームカウンタ504nのカウント値が、ステップS91で読み込んだ再生タイミングフレームを超えたかどうかを判断する。
【0196】
ステップS107で“NO”であれば、つまりボールオブジェクト110が着弾点Bを超えていなけければ、そのままステップS105に戻る。一方、ステップS107で“YES”であれば、つまりボールオブジェクト110が着弾点Bを超えていれば、捕球ないしレシーブを失敗したと判断して、図25に示すステップS123に進む。
【0197】
図24に示すように、ステップS109では、カラーボールオブジェクト110aかどうかを判断する。ここでは、CPU40は、ステップS91で読み込んだ特殊フラグがオフであるかどうかを判断する。ステップS109で“NO”であれば、つまりレインボーボールオブジェクト110bであれば、ステップS111で、レインボーボールについてのポイント(たとえば、50ポイント)をスコアに加算して、ステップS117に進む。
【0198】
一方、ステップS109で“YES”であれば、つまりカラーボールオブジェクト110aであれば、ステップS113で、カラーボールについてのポイント(たとえば、10ポイント)をスコアに加算して、ステップS115で、正しいプレイヤオブジェクト102a−102dかどうかを判断する。つまり、CPU40は、プレイヤ情報データ504fを参照して、当該オブジェクト情報を含むトラックが割り当てられたプレイヤオブジェクト102a−102dが、当該カラーボールオブジェクト110aを捕球ないしレシーブしたかどうかを判断する。
【0199】
ステップS115で“YES”であれば、つまり正しいプレイヤオブジェクト102a−102dであれば、ステップS117で、割り当てられた音、つまり種別が示すメロディ音を通常再生して、ステップS121に進む。したがって、ボールオブジェクト110を捕球ないしレシーブしたことに応じて、当該プレイヤオブジェクト102a−102dが担当するパート(トラック)のメロディ音がそのまま再生される。詳細な説明は省略するが、ステップS91で読み込んだ再生タイミングフレームでメロディ音が再生される。これは、後述するステップS119においても同じである。
【0200】
一方、ステップS115で“NO”であれば、つまり正しいプレイヤオブジェクト102a−102dでなければ、ステップS119で、割り当てられた音、つまり種別が示すメロディ音を、その音程をずらして再生して、ステップS121に進む。
【0201】
ステップS121では、連続回数カウンタ504pのカウント値を1加算して、オブジェクトの移動および判定処理を終了する。ただし、コンピュータプレイヤが操作するプレイヤオブジェクト102a−102dが、カラーボールオブジェクト110を捕球ないしレシーブした場合には、ステップS111で、ポイントをスコアに加算しなくてもよいし、ステップS119で、連続回数カウンタ504pのカウント数を加算しないようにしてもよい。
【0202】
また、図23で示したように、ステップS107で“YES”と判断されると、図25に示すステップS123で、スコアを減点する。つまり、CPU40は、スコアデータ504mが示すスコアから捕球ないしレシーブを失敗した場合のポイント(たとえば、10ポイント)を減算し、スコアデータ504mを更新する。以下、スコアが減点される場合について同様である。次のステップS125では、失敗の音(効果音)を再生する。ここでは、CPU40の指示に従って、GPU52は、失敗の効果音に対応する音データ504e(サウンドデータ)を読み出して、オーディオデータを生成する。さらに、ステップS127で、連続回数カウンタ504pをリセット(カウント値を0に)して、ステップS129で、エクセレントフラグ504uがオンであるかどうかを判断する。
【0203】
ステップS129で“YES”であれば、つまりエクセレントフラグ504uがオンである場合には、ステップS131で、通常フラグ504sをオンし、ステップS133で、BGM1を100%の音量で再生して、オブジェクトの移動および判定処理を終了する。つまり、ステップS131では、DSP52は、BGM2およびBGM3を構成するトラックについての音量を最小(0%)にする。
【0204】
なお、図示は省略するが、ステップS131で、通常フラグ504sがオンされると、エクセレントフラグ504uはオフされる。後述するように、ステップS135で、最低フラグ504rがオンされる場合も同様である。
【0205】
一方、ステップS129で“NO”であれば、つまりエクセレントフラグ504uがオフであれば、ステップS135で、最低フラグ504rをオンし、ステップS137で、BGM1を33%の音量で再生して、オブジェクトの移動および判定処理を終了する。つまり、ステップS137では、DSP52は、BGM1を100%の音量で再生している場合には、BGM1を構成する4つのトラックの音量を33%に低減する。または、DSP52は、BGM1およびBGM2を100%の音量で再生している場合には、BGM1を構成する4つのトラックの音量を33%に低減するとともに、BGM2を構成するトラックの音量を最小にする。
【0206】
ただし、CPU40は、ステップS129で“NO”と判断したときに、最低フラグ504rがオンである場合には、ステップS135およびS137の処理は実行せずに、そのままオブジェクトの移動および判定処理を終了する。
【0207】
なお、図23−図25に示すオブジェクトの移動および判定処理は、一連の全ての処理が実行されるため、ステップS91−S137のスキャンタイムは1フレームではない。このことは、次のアイテムオブジェクト112についてオブジェクトの移動および判定処理も同様である。
【0208】
また、図23−図25では省略したが、プレイヤオブジェクト102a−102dがボールオブジェクト110を捕球またはレシーブした場合には、捕球したりレシーブしたりした様子が表示された後に、ボールオブジェクト110は消去される。一方、プレイヤオブジェクト102a−102dがボールオブジェクト110の捕球またはレシーブを失敗した場合には、ボールオブジェクト110は地面で1回ないし2回バウンドした後に、消去される。
【0209】
図26および図27は、アイテムオブジェクト112についてのオブジェクトの移動および判定処理を示すフロー図である。なお、アイテムオブジェクト112のオブジェクトの移動および判定処理の一部の処理については、上述したボールオブジェクト110のオブジェクトの移動および判定処理と同様の処理が存在するため、重複した内容については簡単に説明することにする。また、このオブジェクトの移動および判定処理は、ゲーム全体処理やボールオブジェクト110のオブジェクトの移動および判定処理と並列的に、また、アイテムオブジェクト112単位で実行される。
【0210】
図26に示すように、CPU40は、オブジェクトの移動および判定処理を開始すると、ステップS151で、再生タイミングフレーム、飛行時間、最小距離および最大距離を読み込む。
【0211】
詳細な説明は省略するが、オブジェクトの移動および判定処理が開始される時点で、再生タイミングフレーム等を読み出すトラックは決定されており、したがって、当該トラックが割り当てられたプレイヤオブジェクト102a−102dも決定されている。また、発射タイミングのオブジェクト110、112についてのタスクを起動する時点(ゲーム全体処理のステップS21)において、アイテムオブジェクト112の種類(コインオブジェクト112a、バナナオブジェクト112b、鉄球オブジェクト112cの別)も特定されている。
【0212】
図26に戻って、ステップS153では、プレイヤオブジェクト102a−102dの位置Pに基づいて着弾点Bを決定し、ステップS155で、発射する水平方向の角度φを算出し、さらに、ステップS157で、発射する速度vおよび垂直方向の角度θを算出する。そして、ステップS159で、アイテムオブジェクト112(コインオブジェクト112a、バナナオブジェクト112b、または、鉄球オブジェクト112c)を発射する。続くステップS161では、着弾点を含む所定範囲を示す着弾マーカ116を表示する。ただし、コインオブジェクト112aの場合には、着弾マーカ116は表示されないため、この処理は実行されない。
【0213】
そして、ステップS163では、アイテムオブジェクト112が着弾点を超えたかどうかを判断する。ステップS163で“NO”であれば、そのまま同じステップS163に戻る。一方、ステップS163で“YES”であれば、ステップS165で、当ったかどうかを判断する。ここでは、ボールオブジェクト110の場合とは異なり、プレイヤオブジェクト102a−102dとアイテムオブジェクト112との当りが判定される。
【0214】
なお、詳細な説明は省略するが、アイテムオブジェクト112が着弾点Bに到達する直前であっても、プレイヤオオブジェクト102a−102dに当たったと判断される場合もある。かかる場合にも、ステップS165で“YES”と判断される。
【0215】
ステップS165で“NO”であれば、つまり当っていなければ、ステップS167で、所定時間が経過したかどうかを判断する。ただし、上述したように、所定時間は、アイテムオブジェクト112の種類に応じて異なる。具体的には、コインオブジェクト112aの場合には、所定時間は3秒であり、バナナオブジェクト112bの場合には、所定時間は4秒であり、鉄球オブジェクト112cの場合には、所定時間は2秒である。
【0216】
ステップS167で“NO”であれば、つまり所定時間が経過していなければ、ステップS165に戻る。図示は省略するが、このとき、コインオブジェクト112aおよびバナナオブジェクト112bは落下位置に残留し続ける。また、このとき、鉄球オブジェクト112cは、落下位置でバウンドし、進行方向に移動する。一方、ステップS167で“YES”であれば、つまり、所定時間が経過すれば、ステップS169で、アイテムオブジェクト112を消滅させて、オブジェクトの移動および判定処理を終了する。
【0217】
また、ステップS165で“YES”であれば、つまり当った場合には、図27(A)−(C)に示すように、アイテムオブジェクト112の種類に応じた処理を実行する。
【0218】
図27(A)に示すように、コインオブジェクト112aの場合には、ステップS171で、コインオブジェクト112aのポイント(たとえば、10ポイント)をスコアに加算し、ステップS173で、コインオブジェクト112aを消去して、オブジェクトの移動および判定処理を終了する。つまり、プレイヤオブジェクト102a−102dによってコインが取得され、それに応じたポイントが加算されるのである。
【0219】
図27(B)に示すように、バナナオブジェクト112bの場合には、ステップS181で、移動不能フラグ504vをオンし、ステップS183で、バナナオブジェクト112bを消去して、オブジェクトの移動および判定処理を終了する。ただし、ステップS181では、バナナオブジェクト112bに触れたプレイヤオブジェクト102a−102dに対応するレジスタのビットにデータ値「1」が設定される。したがって、この場合には、プレイヤオブジェクト102a−102dは、バナナで滑って転び、少しの間移動不能な状態にされる。
【0220】
図27(C)に示すように、鉄球オブジェクト112cの場合には、ステップS191で、ダメージフラグ504wをオンする。ただし、ここでは、鉄球オブジェクト112cに触れたプレイヤオブジェクト102a−102dに対応するレジスタのビットにデータ値「1」が設定される。次のステップS193では、鉄球オブジェクト112cのポイント(たとえば、50ポイント)をスコアから減算する。さらに、ステップS195で、連続回数カウンタ504pをリセットする。そして、ステップS197で、鉄球オブジェクト112cを消去して、オブジェクトの移動および判定処理を終了する。
【0221】
図28および図29は、プレイヤオブジェクト制御処理を示すフロー図である。このプレイヤオブジェクト制御処理は、上述したゲーム全体処理、ボールオブジェクト110やアイテムオブジェクト112についてのオブジェクトの移動および判定処理と並列して実行されるとともに、各プレイヤオブジェクト102a−102dについて個別に実行される。したがって、ここでは、操作する対象のプレイヤオブジェクト102a−102dを、「当該プレイヤオブジェクト102a−102d」ということにする。
【0222】
図28に示すように、CPU40は、プレイヤオブジェクト制御処理を開始すると、ステップS221で、移動不能フラグ504vがオンであるかどうかを判断する。ここでは、CPU40は、移動不能フラグ504vを構成する4つのビットのうち、当該プレイヤオブジェクト102a−102dに対応するビットにデータ値「1」が設定されているかどうかを判断する。
【0223】
ステップS221で“YES”であれば、つまり移動不能フラグ504vがオンであれば、プレイヤの操作に従って当該プレイヤオブジェクト102a−102dを移動させないと判断して、図29に示すステップS231にそのまま進む。一方、ステップS221で“NO”であれば、つまり移動不能フラグ504vがオフであれば、ステップS223で、ジョイスティック94aの操作が有るかどうかを判断する。ここでは、CPU40は、操作データバッファ504aを参照して、コントローラデータに、ジョイスティック94aの操作データが含まれているかどうかを判断するのである。
【0224】
ステップS223で“NO”であれば、つまりジョイスティック94aの操作が無ければ、後述するステップS227に進む。一方、ステップS223で“YES”であれば、つまりジョイスティック94aの操作が有れば、ステップS225で、指示された方向に、当該プレイヤオブジェクト102a−102dを移動させて、ステップS231に進む。
【0225】
ステップS227では、第1コントローラ34を振ったかどうかを判断する。ここでは、CPU40は、操作データバッファ504aを参照して、コントローラデータに第1コントローラ34からの加速度データが含まれている場合に、当該加速度データに基づく加速度値の変化に基づいて第1コントローラ34自身の動きを検出し、当該第1コントローラ34を上下または左右等の振ったかどうかを判断するのである。
【0226】
ステップS227で“NO”であれば、つまり第1コントローラ34を振っていなければ、そのままステップS231に進む。一方、ステップS227で“YES”であれば、つまり第1コントローラ34を振っていれば、ステップS229で、上述した所定のルールに従って決定された目標のボールオブジェクト110の着弾点Bに向かって、当該プレイヤオブジェクト102a−102dをジャンプさせて回転レシーブさせて、ステップS231に進む。つまり、ステップS229では、着弾点Bに向けて当該プレイヤオブジェクト102a−102dをジャンプさせて回転レシーブさせる様子のアニメーションの再生が開始される。また、図示は省略するが、ジャンプさせて回転レシーブさせる様子のアニメーションの再生が開始されると、所定時間(所定のコマ数)の再生後に終了される。
【0227】
図29に示すように、ステップS231では、ダメージフラグ504wがオンであるかどうかを判断する。ここでは、CPU40は、ダメージフラグ504wを構成するレジスタの4つのビットのうち、当該プレイヤオブジェクト102a−102dに対応するビットにデータ値「1」が設定されているかどうかを判断するのである。
【0228】
ステップS231で“NO”であれば、つまりダメージフラグ504wがオフであれば、そのままステップS237に進む。一方、ステップS231で“YES”であれば、つまりダメージフラグ504wがオンであれば、ステップS233で、当該プレイヤオブジェクト102a−102dについて、ダメージを与えられたアニメーションの再生を開始し、ステップS235で、ダメージフラグ504wをオフして、ステップS237に進む。
【0229】
ただし、ステップS235では、ダメージフラグ504wを構成するレジスタの4つのビットのうち、当該プレイヤオブジェクト102a−102dについてのビットにデータ値「0」が設定される。また、図示は省略するが、ダメージを与えるアニメーションの再生が開始されると、所定時間(所定のコマ数)の再生後に終了される。
【0230】
ステップS237では、移動不能フラグ504vがオフからオンに変化したかどうかを判断する。ここでは、CPU40は、移動不能フラグ504vを構成する4つのビットのうち、当該プレイヤオブジェクト102a−102dに対応するビットにデータ値「1」が設定されており、1つ前のフレームでは、データ値「0」が設定されていたかどうかを判断する。
【0231】
ステップS237で“YES”であれば、つまり移動不能フラグ504vがオフからオンに変化した場合には、ステップS239で、移動不能時間タイマ504qをスタートし、ステップS241で、当該プレイヤオブジェクト102a−102dについて、移動不能のアニメーションの再生を開始して、図28に示したステップS221に戻る。
【0232】
一方、ステップS237で“NO”であれば、つまり移動不能フラグ504vがオンまたはオフの状態が継続している場合には、ステップS243で、所定時間が経過したかどうかを判断する。ここでは、CPU40は、移動不能時間タイマ504qのタイマ値が所定時間(たとえば、2秒)を超えたかどうかを判断する。ステップS243で“NO”であれば、つまり所定時間が経過していなければ、移動不能な状態で無い、または移動不能な状態を解除しないと判断して、そのままステップS221に戻る。
【0233】
しかし、ステップS243で“YES”であれば、つまり所定時間が経過すれば、移動不能な状態を解除すると判断して、ステップS245で、移動不能のアニメーションの再生を停止し、ステップS247で、移動不能フラグ504vをオフして、ステップS221に戻る。
【0234】
ただし、ステップS247では、移動不能フラグ504vを構成するレジスタの4つのビットのうち、当該プレイヤオブジェクト102a−102dについてのビットにデータ値「0」を設定する。
【0235】
なお、図28および図29に示すプレイヤオブジェクト制御処理のスキャンタイムは1フレームである。
【0236】
この実施例によれば、BGMに合わせたタイミングで着弾するボールオブジェクトを当該タイミングで着弾するように発射させ、着弾するタイミングでプレイヤオブジェクトがボールオブジェクトを捕球ないしレシーブするように、当該プレイヤオブジェクトを制御すると、ボールオブジェクトに割り当てられたメロディ音が再生されるので、単にボタンを押すタイミングだけでプレイするリズムゲームとは異なる、新しい感覚のリズムゲームを提供することができる。
【0237】
また、この実施例では、ボールオブジェクトに種類を設けることより、捕球ないしレシーブしたボールの種類で、メロディ音の音程が変化される場合がある。また、アイテムオブジェクトを設けることにより、コインアイテムを取得することにより、ポイントを獲得できたり、お邪魔アイテム(バナナ、鉄球)によって、ポイントが減ったり、プレイヤオブジェクトが移動できなくなったりする。つまり、リズムゲーム以外のゲーム要素を加えることができるので、ゲームの面白味を増大させることができる。
【0238】
なお、この実施例では、バレーボールのようなボールオブジェクトを、プレイヤオブジェクトに捕球ないしレシーブさせることにより、捕球ないしレシーブを成功したことを示す効果音として、BGMの主旋律についてのメロディ音を出力するようにしたが、副旋律の音を出力するようにしてもよい。
【0239】
また、この実施例では、所定期間において、プレイヤオブジェクトを中心とする第1所定範囲内にボールオブジェクトの着弾点が存在する場合には、当該ボールオブジェクトを捕球するようにしたが、このような状態において、所定の操作入力が有る場合に、ボールオブジェクトをレシーブするようにしてもよい。たとえば、所定の操作入力としては、第1コントローラを振る動作であってよいし、所定のキー入力(Aボタン82dがオン)であってもよい。
【0240】
さらに、この実施例では、バレーボールのようなボールオブジェクトを捕球ないしレシーブするようにしたため、対応するプレイヤオブジェクトを識別可能とするために、プレイヤオブジェクトに割り当てた色と同じ色をボールオブジェクトに付すようにしたが、これに限定される必要はない。たとえば、色に代えて、プレイヤオブジェクトを識別可能な模様(たとえば、対応するプレイヤオブジェクトの顔画像)をオブジェクトに付したり、または形状(たとえば、球、三角錐、四角錐、円柱の形状のオブジェクト)や種類(たとえば、バレーボール、野球のボール、テニスボール、サッカーボール)によってプレイヤオブジェクトを識別可能にしたオブジェクトを用いたりするようにしてもよい。
【0241】
さらにまた、この実施例では、ゲーム装置のCPUがゲーム処理を実行するようにしたが、そのゲーム処理のための各処理が複数のコンピュータ等によって分散処理されてもよい。
【符号の説明】
【0242】
10 …ゲームシステム
12 …ゲーム装置
14 …コントローラ
28 …モニタ
38 …メモリカード
40 …CPU
42b …GPU
42e,46 …メインメモリ
44 …フラッシュメモリ
50 …無線通信モジュール
62 …メモリカード用コネクタ
【特許請求の範囲】
【請求項1】
音楽に合わせて設定されたタイミングデータを記憶するタイミングデータ記憶部を備え、リズムゲームを行うゲーム装置のゲームプログラムであって、
前記ゲーム装置のコンピュータを、
プレイヤの操作に基づいて、ゲーム空間内においてプレイヤオブジェクトを移動させるプレイヤオブジェクト制御部と、
判定用オブジェクトの到達位置を設定し、前記タイミングデータが示すタイミングで当該到達位置に到達するように、当該判定用オブジェクトを移動させるオブジェクト移動部と、
前記タイミングを含む所定期間に前記プレイヤオブジェクトが前記到達位置から第1所定範囲内に位置するか否かに基づいて、成功判定を行う判定部と、
前記判定部における判定結果に基づいて、音出力を制御する音制御部として機能させる、ゲームプログラム。
【請求項2】
前記オブジェクト移動部は、前記プレイヤオブジェクトの位置から第2所定範囲の位置に前記判定用オブジェクトが到達するように前記到達位置を設定する、請求項1記載のゲームプログラム。
【請求項3】
前記オブジェクト移動部は、前記プレイヤオブジェクトの位置から所定距離の位置に前記判定用オブジェクトが到達するように前記到達位置を設定する、請求項1記載のゲームプログラム。
【請求項4】
前記プレイヤオブジェクト制御部は、操作装置に対する方向入力操作に基づいて前記プレイヤオブジェクトを移動させ、
前記判定部は、前記タイミングまでに前記プレイヤオブジェクトが前記到達位置から第1所定範囲を含む第3所定範囲内に移動し、かつ前記所定期間に操作装置の振り操作が行われたか否かによって前記成功判定を行う、請求項1記載のゲームプログラム。
【請求項5】
前記プレイヤオブジェクト制御部は、操作装置に対する方向入力操作に基づいて前記プレイヤオブジェクトを移動させ、
前記判定部は、前記タイミングまでに前記プレイヤオブジェクトが前記到達位置から第1所定範囲を含む第3所定範囲内に移動し、かつ前記所定期間に操作装置に対する所定のキー操作が行われた否かによって前記成功判定を行う、請求項1記載のゲームプログラム。
【請求項6】
前記音制御部は、前記判定部において成功と判定されたとき、成功を示す効果音を出力させ、失敗と判定されたとき、失敗を示す効果音を出力させる、請求項1記載のゲームプログラム。
【請求項7】
前記音制御部は、前記タイミングデータに関連する前記音楽をBGMとして出力し、
前記判定部において成功と判定されたとき、BGMの音量およびパートの少なくとも一方を増加させ、失敗と判定されたとき、BGMの音量およびパートの少なくとも一方を減少させる、請求項1記載のゲームプログラム。
【請求項8】
前記プレイヤオブジェクト制御部は、複数のプレイヤオブジェクトの各々を、複数のプレイヤのそれぞれの操作に従って移動させ、
前記オブジェクト移動部は、前記複数のプレイヤオブジェクトのいずれかの位置に基づいて前記判定用オブジェクトの到達位置を設定する、請求項2または3記載のゲームプログラム。
【請求項9】
前記判定用オブジェクトは、対応するプレイヤオブジェクトを識別可能な外観を有し、
前記オブジェクト移動部は、対応するプレイヤオブジェクトの位置に基づいて到達位置を決定する、請求項8記載のゲームプログラム。
【請求項10】
前記到達位置に、前記範囲を示す指標を対応するプレイヤオブジェクトを識別可能に表示させるマーカ表示部として、前記コンピュータをさらに機能させる、請求項9記載のゲームプログラム。
【請求項11】
前記ゲーム空間に前記判定用オブジェクト以外のアイテムオブジェクトを配置する配置部と、
前記プレイヤオブジェクトが前記アイテムオブジェクトに接触したか否かに応じて前記プレイヤオブジェクトに所定の効果を与えるアイテム処理部として前記コンピュータをさらに機能させる、請求項1または8記載のゲームプログラム。
【請求項12】
リズムゲームを行うゲーム装置であって、
音楽に合わせて設定されたタイミングデータを記憶するタイミングデータ記憶部と、
プレイヤの操作に基づいて、ゲーム空間内においてプレイヤオブジェクトを移動させるプレイヤオブジェクト制御部と、
判定用オブジェクトの到達位置を設定し、前記タイミングデータが示すタイミングで当該到達位置に到達するように、当該判定用オブジェクトを移動させるオブジェクト移動部と、
前記タイミングを含む所定期間に前記プレイヤオブジェクトが前記到達位置から第1所定範囲内に位置するか否かに基づいて、成功判定を行う判定部と、
前記判定部における判定結果に基づいて、音出力を制御する音制御部を備える、ゲーム装置。
【請求項13】
前記オブジェクト移動部は、前記プレイヤオブジェクトの位置から第2所定範囲の位置に前記判定用オブジェクトが到達するように前記到達位置を設定する、請求項12記載のゲーム装置。
【請求項14】
前記オブジェクト移動部は、前記プレイヤオブジェクトの位置から所定距離の位置に前記判定用オブジェクトが到達するように前記到達位置を設定する、請求項12記載のゲーム装置。
【請求項15】
前記プレイヤオブジェクト制御部は、操作装置に対する方向入力操作に基づいて前記プレイヤオブジェクトを移動させ、
前記判定部は、前記タイミングまでに前記プレイヤオブジェクトが前記到達位置から第1所定範囲を含む第3所定範囲内に移動し、かつ前記所定期間に操作装置の振り操作が行われたか否かによって前記成功判定を行う、請求項12記載のゲーム装置。
【請求項16】
前記プレイヤオブジェクト制御部は、操作装置に対する方向入力操作に基づいて前記プレイヤオブジェクトを移動させ、
前記判定部は、前記タイミングまでに前記プレイヤオブジェクトが前記到達位置から第1所定範囲を含む第3所定範囲内に移動し、かつ前記所定期間に操作装置に対する所定のキー操作が行われた否かによって前記成功判定を行う、請求項12記載のゲーム装置。
【請求項17】
前記音制御部は、前記判定部において成功と判定されたとき、成功を示す効果音を出力させ、失敗と判定されたとき、失敗を示す効果音を出力させる、請求項12記載のゲーム装置
【請求項18】
前記音制御部は、前記タイミングデータに関連する前記音楽をBGMとして出力し、
前記判定部において成功と判定されたとき、BGMの音量およびパートの少なくとも一方を増加させ、失敗と判定されたとき、BGMの音量およびパートの少なくとも一方を減少させる、請求項12記載のゲーム装置。
【請求項19】
前記プレイヤオブジェクト制御部は、複数のプレイヤオブジェクトの各々を、複数のプレイヤのそれぞれの操作に従って移動させ、
前記オブジェクト移動部は、前記複数のプレイヤオブジェクトのいずれかの位置に基づいて前記判定用オブジェクトの到達位置を設定する、請求項13または14記載のゲーム装置。
【請求項20】
前記判定用オブジェクトは、対応するプレイヤオブジェクトを識別可能な外観を有し、
前記オブジェクト移動部は、対応するプレイヤオブジェクトの位置に基づいて到達位置を決定する、請求項19記載のゲーム装置。
【請求項21】
前記到達位置に、前記範囲を示す指標を対応するプレイヤオブジェクトを識別可能に表示させるマーカ表示部をさらに備える、請求項20記載のゲーム装置。
【請求項22】
前記ゲーム空間に前記判定用オブジェクト以外のアイテムオブジェクトを配置する配置部と、
前記プレイヤオブジェクトが前記アイテムオブジェクトに接触したか否かに応じて前記プレイヤオブジェクトに所定の効果を与えるアイテム処理部をさらに備える、請求項12または19記載のゲーム装置。
【請求項23】
リズムゲームを行うゲームシステムであって、
音楽に合わせて設定されたタイミングデータを記憶するタイミングデータ記憶部と、
プレイヤの操作に基づいて、ゲーム空間内においてプレイヤオブジェクトを移動させるプレイヤオブジェクト制御部と、
判定用オブジェクトの到達位置を設定し、前記タイミングデータが示すタイミングで当該到達位置に到達するように、当該判定用オブジェクトを移動させるオブジェクト移動部と、
前記タイミングを含む所定期間に前記プレイヤオブジェクトが前記到達位置から第1所定範囲内に位置するか否かに基づいて、成功判定を行う判定部と、
前記判定部における判定結果に基づいて、音出力を制御する音制御部を備える、ゲームシステム。
【請求項24】
前記プレイヤオブジェクト制御部は、複数のプレイヤオブジェクトの各々を、複数のプレイヤのそれぞれの操作に従って移動させ、
前記オブジェクト移動部は、前記複数のプレイヤオブジェクトのいずれかの位置に基づいて前記判定用オブジェクトの到達位置を設定する、請求項23記載のゲームシステム。
【請求項25】
音楽に合わせて設定されたタイミングデータを記憶するタイミングデータ記憶部を備え、リズムゲームを行うゲーム装置のゲーム制御方法であって、
(a)プレイヤの操作に基づいて、ゲーム空間内においてプレイヤオブジェクトを移動させ、
(b)判定用オブジェクトの到達位置を設定し、前記タイミングデータが示すタイミングで当該到達位置に到達するように、当該判定用オブジェクトを移動させ、
(c)前記タイミングを含む所定期間に前記プレイヤオブジェクトが前記到達位置から第1所定範囲内に位置するか否かに基づいて、成功判定を行い、
(d)前記ステップ(c)における判定結果に基づいて、音出力を制御する、ゲーム制御方法。
【請求項26】
前記ステップ(a)は、複数のプレイヤオブジェクトの各々を、複数のプレイヤのそれぞれの操作に従って移動させ、
前記ステップ(b)は、前記複数のプレイヤオブジェクトのいずれかの位置に基づいて前記判定用オブジェクトの到達位置を設定する、請求項25記載のゲーム制御方法。
【請求項1】
音楽に合わせて設定されたタイミングデータを記憶するタイミングデータ記憶部を備え、リズムゲームを行うゲーム装置のゲームプログラムであって、
前記ゲーム装置のコンピュータを、
プレイヤの操作に基づいて、ゲーム空間内においてプレイヤオブジェクトを移動させるプレイヤオブジェクト制御部と、
判定用オブジェクトの到達位置を設定し、前記タイミングデータが示すタイミングで当該到達位置に到達するように、当該判定用オブジェクトを移動させるオブジェクト移動部と、
前記タイミングを含む所定期間に前記プレイヤオブジェクトが前記到達位置から第1所定範囲内に位置するか否かに基づいて、成功判定を行う判定部と、
前記判定部における判定結果に基づいて、音出力を制御する音制御部として機能させる、ゲームプログラム。
【請求項2】
前記オブジェクト移動部は、前記プレイヤオブジェクトの位置から第2所定範囲の位置に前記判定用オブジェクトが到達するように前記到達位置を設定する、請求項1記載のゲームプログラム。
【請求項3】
前記オブジェクト移動部は、前記プレイヤオブジェクトの位置から所定距離の位置に前記判定用オブジェクトが到達するように前記到達位置を設定する、請求項1記載のゲームプログラム。
【請求項4】
前記プレイヤオブジェクト制御部は、操作装置に対する方向入力操作に基づいて前記プレイヤオブジェクトを移動させ、
前記判定部は、前記タイミングまでに前記プレイヤオブジェクトが前記到達位置から第1所定範囲を含む第3所定範囲内に移動し、かつ前記所定期間に操作装置の振り操作が行われたか否かによって前記成功判定を行う、請求項1記載のゲームプログラム。
【請求項5】
前記プレイヤオブジェクト制御部は、操作装置に対する方向入力操作に基づいて前記プレイヤオブジェクトを移動させ、
前記判定部は、前記タイミングまでに前記プレイヤオブジェクトが前記到達位置から第1所定範囲を含む第3所定範囲内に移動し、かつ前記所定期間に操作装置に対する所定のキー操作が行われた否かによって前記成功判定を行う、請求項1記載のゲームプログラム。
【請求項6】
前記音制御部は、前記判定部において成功と判定されたとき、成功を示す効果音を出力させ、失敗と判定されたとき、失敗を示す効果音を出力させる、請求項1記載のゲームプログラム。
【請求項7】
前記音制御部は、前記タイミングデータに関連する前記音楽をBGMとして出力し、
前記判定部において成功と判定されたとき、BGMの音量およびパートの少なくとも一方を増加させ、失敗と判定されたとき、BGMの音量およびパートの少なくとも一方を減少させる、請求項1記載のゲームプログラム。
【請求項8】
前記プレイヤオブジェクト制御部は、複数のプレイヤオブジェクトの各々を、複数のプレイヤのそれぞれの操作に従って移動させ、
前記オブジェクト移動部は、前記複数のプレイヤオブジェクトのいずれかの位置に基づいて前記判定用オブジェクトの到達位置を設定する、請求項2または3記載のゲームプログラム。
【請求項9】
前記判定用オブジェクトは、対応するプレイヤオブジェクトを識別可能な外観を有し、
前記オブジェクト移動部は、対応するプレイヤオブジェクトの位置に基づいて到達位置を決定する、請求項8記載のゲームプログラム。
【請求項10】
前記到達位置に、前記範囲を示す指標を対応するプレイヤオブジェクトを識別可能に表示させるマーカ表示部として、前記コンピュータをさらに機能させる、請求項9記載のゲームプログラム。
【請求項11】
前記ゲーム空間に前記判定用オブジェクト以外のアイテムオブジェクトを配置する配置部と、
前記プレイヤオブジェクトが前記アイテムオブジェクトに接触したか否かに応じて前記プレイヤオブジェクトに所定の効果を与えるアイテム処理部として前記コンピュータをさらに機能させる、請求項1または8記載のゲームプログラム。
【請求項12】
リズムゲームを行うゲーム装置であって、
音楽に合わせて設定されたタイミングデータを記憶するタイミングデータ記憶部と、
プレイヤの操作に基づいて、ゲーム空間内においてプレイヤオブジェクトを移動させるプレイヤオブジェクト制御部と、
判定用オブジェクトの到達位置を設定し、前記タイミングデータが示すタイミングで当該到達位置に到達するように、当該判定用オブジェクトを移動させるオブジェクト移動部と、
前記タイミングを含む所定期間に前記プレイヤオブジェクトが前記到達位置から第1所定範囲内に位置するか否かに基づいて、成功判定を行う判定部と、
前記判定部における判定結果に基づいて、音出力を制御する音制御部を備える、ゲーム装置。
【請求項13】
前記オブジェクト移動部は、前記プレイヤオブジェクトの位置から第2所定範囲の位置に前記判定用オブジェクトが到達するように前記到達位置を設定する、請求項12記載のゲーム装置。
【請求項14】
前記オブジェクト移動部は、前記プレイヤオブジェクトの位置から所定距離の位置に前記判定用オブジェクトが到達するように前記到達位置を設定する、請求項12記載のゲーム装置。
【請求項15】
前記プレイヤオブジェクト制御部は、操作装置に対する方向入力操作に基づいて前記プレイヤオブジェクトを移動させ、
前記判定部は、前記タイミングまでに前記プレイヤオブジェクトが前記到達位置から第1所定範囲を含む第3所定範囲内に移動し、かつ前記所定期間に操作装置の振り操作が行われたか否かによって前記成功判定を行う、請求項12記載のゲーム装置。
【請求項16】
前記プレイヤオブジェクト制御部は、操作装置に対する方向入力操作に基づいて前記プレイヤオブジェクトを移動させ、
前記判定部は、前記タイミングまでに前記プレイヤオブジェクトが前記到達位置から第1所定範囲を含む第3所定範囲内に移動し、かつ前記所定期間に操作装置に対する所定のキー操作が行われた否かによって前記成功判定を行う、請求項12記載のゲーム装置。
【請求項17】
前記音制御部は、前記判定部において成功と判定されたとき、成功を示す効果音を出力させ、失敗と判定されたとき、失敗を示す効果音を出力させる、請求項12記載のゲーム装置
【請求項18】
前記音制御部は、前記タイミングデータに関連する前記音楽をBGMとして出力し、
前記判定部において成功と判定されたとき、BGMの音量およびパートの少なくとも一方を増加させ、失敗と判定されたとき、BGMの音量およびパートの少なくとも一方を減少させる、請求項12記載のゲーム装置。
【請求項19】
前記プレイヤオブジェクト制御部は、複数のプレイヤオブジェクトの各々を、複数のプレイヤのそれぞれの操作に従って移動させ、
前記オブジェクト移動部は、前記複数のプレイヤオブジェクトのいずれかの位置に基づいて前記判定用オブジェクトの到達位置を設定する、請求項13または14記載のゲーム装置。
【請求項20】
前記判定用オブジェクトは、対応するプレイヤオブジェクトを識別可能な外観を有し、
前記オブジェクト移動部は、対応するプレイヤオブジェクトの位置に基づいて到達位置を決定する、請求項19記載のゲーム装置。
【請求項21】
前記到達位置に、前記範囲を示す指標を対応するプレイヤオブジェクトを識別可能に表示させるマーカ表示部をさらに備える、請求項20記載のゲーム装置。
【請求項22】
前記ゲーム空間に前記判定用オブジェクト以外のアイテムオブジェクトを配置する配置部と、
前記プレイヤオブジェクトが前記アイテムオブジェクトに接触したか否かに応じて前記プレイヤオブジェクトに所定の効果を与えるアイテム処理部をさらに備える、請求項12または19記載のゲーム装置。
【請求項23】
リズムゲームを行うゲームシステムであって、
音楽に合わせて設定されたタイミングデータを記憶するタイミングデータ記憶部と、
プレイヤの操作に基づいて、ゲーム空間内においてプレイヤオブジェクトを移動させるプレイヤオブジェクト制御部と、
判定用オブジェクトの到達位置を設定し、前記タイミングデータが示すタイミングで当該到達位置に到達するように、当該判定用オブジェクトを移動させるオブジェクト移動部と、
前記タイミングを含む所定期間に前記プレイヤオブジェクトが前記到達位置から第1所定範囲内に位置するか否かに基づいて、成功判定を行う判定部と、
前記判定部における判定結果に基づいて、音出力を制御する音制御部を備える、ゲームシステム。
【請求項24】
前記プレイヤオブジェクト制御部は、複数のプレイヤオブジェクトの各々を、複数のプレイヤのそれぞれの操作に従って移動させ、
前記オブジェクト移動部は、前記複数のプレイヤオブジェクトのいずれかの位置に基づいて前記判定用オブジェクトの到達位置を設定する、請求項23記載のゲームシステム。
【請求項25】
音楽に合わせて設定されたタイミングデータを記憶するタイミングデータ記憶部を備え、リズムゲームを行うゲーム装置のゲーム制御方法であって、
(a)プレイヤの操作に基づいて、ゲーム空間内においてプレイヤオブジェクトを移動させ、
(b)判定用オブジェクトの到達位置を設定し、前記タイミングデータが示すタイミングで当該到達位置に到達するように、当該判定用オブジェクトを移動させ、
(c)前記タイミングを含む所定期間に前記プレイヤオブジェクトが前記到達位置から第1所定範囲内に位置するか否かに基づいて、成功判定を行い、
(d)前記ステップ(c)における判定結果に基づいて、音出力を制御する、ゲーム制御方法。
【請求項26】
前記ステップ(a)は、複数のプレイヤオブジェクトの各々を、複数のプレイヤのそれぞれの操作に従って移動させ、
前記ステップ(b)は、前記複数のプレイヤオブジェクトのいずれかの位置に基づいて前記判定用オブジェクトの到達位置を設定する、請求項25記載のゲーム制御方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【公開番号】特開2012−75770(P2012−75770A)
【公開日】平成24年4月19日(2012.4.19)
【国際特許分類】
【出願番号】特願2010−225484(P2010−225484)
【出願日】平成22年10月5日(2010.10.5)
【出願人】(000233778)任天堂株式会社 (1,115)
【出願人】(308033283)株式会社スクウェア・エニックス (173)
【Fターム(参考)】
【公開日】平成24年4月19日(2012.4.19)
【国際特許分類】
【出願日】平成22年10月5日(2010.10.5)
【出願人】(000233778)任天堂株式会社 (1,115)
【出願人】(308033283)株式会社スクウェア・エニックス (173)
【Fターム(参考)】
[ Back to top ]