(57)【特許請求の範囲】
【請求項１】
音楽に合わせて設定されたタイミングデータを記憶するタイミングデータ記憶部を備え、リズムゲームを行うゲーム装置のゲームプログラムであって、
前記ゲーム装置のコンピュータを、
プレイヤの操作に基づいて、３次元のゲーム空間内においてプレイヤオブジェクトを移動させるプレイヤオブジェクト制御部と、
判定用オブジェクトの到達位置を設定し、前記タイミングデータが示すタイミングで当該到達位置に着地するように、当該判定用オブジェクトを前記３次元のゲーム空間内において移動させるオブジェクト移動部と、
前記タイミングを含む所定期間に前記プレイヤオブジェクトが前記到達位置から第１所定範囲内に位置するか否かに基づいて、成功判定を行う判定部と、
前記判定部における判定結果に基づいて、音出力を制御する音制御部として機能させる、ゲームプログラム。
【請求項２】
前記オブジェクト移動部は、前記プレイヤオブジェクトの位置から第２所定範囲の位置に前記判定用オブジェクトが着地するように前記到達位置を設定する、請求項１記載のゲームプログラム。
【請求項３】
前記オブジェクト移動部は、前記プレイヤオブジェクトの位置から所定距離の位置に前記判定用オブジェクトが着地するように前記到達位置を設定する、請求項１記載のゲームプログラム。
【請求項４】
前記プレイヤオブジェクト制御部は、操作装置に対する方向入力操作に基づいて前記プレイヤオブジェクトを移動させ、
前記判定部は、前記タイミングまでに前記プレイヤオブジェクトが前記到達位置から第１所定範囲を含む第３所定範囲内に移動し、かつ前記所定期間に操作装置の振り操作が行われたか否かによって前記成功判定を行う、請求項１記載のゲームプログラム。
【請求項５】
前記プレイヤオブジェクト制御部は、操作装置に対する方向入力操作に基づいて前記プレイヤオブジェクトを移動させ、
前記判定部は、前記タイミングまでに前記プレイヤオブジェクトが前記到達位置から第１所定範囲を含む第３所定範囲内に移動し、かつ前記所定期間に操作装置に対する所定のキー操作が行われた否かによって前記成功判定を行う、請求項１記載のゲームプログラム。
【請求項６】
前記音制御部は、前記判定部において成功と判定されたとき、成功を示す効果音を出力させ、失敗と判定されたとき、失敗を示す効果音を出力させる、請求項１記載のゲームプログラム。
【請求項７】
前記音制御部は、前記タイミングデータに関連する前記音楽をＢＧＭとして出力し、
前記判定部において成功と判定されたとき、ＢＧＭの音量およびパートの少なくとも一方を増加させ、失敗と判定されたとき、ＢＧＭの音量およびパートの少なくとも一方を減少させる、請求項１記載のゲームプログラム。
【請求項８】
前記プレイヤオブジェクト制御部は、複数のプレイヤオブジェクトの各々を、複数のプレイヤのそれぞれの操作に従って移動させ、
前記オブジェクト移動部は、前記複数のプレイヤオブジェクトのいずれかの位置に基づいて前記判定用オブジェクトの到達位置を設定する、請求項２または３記載のゲームプログラム。
【請求項９】
前記判定用オブジェクトは、対応するプレイヤオブジェクトを識別可能な外観を有し、
前記オブジェクト移動部は、対応するプレイヤオブジェクトの位置に基づいて到達位置を決定する、請求項８記載のゲームプログラム。
【請求項１０】
前記到達位置に、前記第１所定範囲を示す指標を対応するプレイヤオブジェクトを識別可能に表示させるマーカ表示部として、前記コンピュータをさらに機能させる、請求項９記載のゲームプログラム。
【請求項１１】
前記ゲーム空間に前記判定用オブジェクト以外のアイテムオブジェクトを配置する配置部と、
前記プレイヤオブジェクトが前記アイテムオブジェクトに接触したか否かに応じて前記プレイヤオブジェクトに所定の効果を与えるアイテム処理部として前記コンピュータをさらに機能させる、請求項１または８記載のゲームプログラム。
【請求項１２】
リズムゲームを行うゲーム装置であって、
音楽に合わせて設定されたタイミングデータを記憶するタイミングデータ記憶部と、
プレイヤの操作に基づいて、３次元のゲーム空間内においてプレイヤオブジェクトを移動させるプレイヤオブジェクト制御部と、
判定用オブジェクトの到達位置を設定し、前記タイミングデータが示すタイミングで当該到達位置に着地するように、当該判定用オブジェクトを前記３次元のゲーム空間内において移動させるオブジェクト移動部と、
前記タイミングを含む所定期間に前記プレイヤオブジェクトが前記到達位置から第１所定範囲内に位置するか否かに基づいて、成功判定を行う判定部と、
前記判定部における判定結果に基づいて、音出力を制御する音制御部を備える、ゲーム装置。
【請求項１３】
前記オブジェクト移動部は、前記プレイヤオブジェクトの位置から第２所定範囲の位置に前記判定用オブジェクトが着地するように前記到達位置を設定する、請求項１２記載のゲーム装置。
【請求項１４】
前記オブジェクト移動部は、前記プレイヤオブジェクトの位置から所定距離の位置に前記判定用オブジェクトが着地するように前記到達位置を設定する、請求項１２記載のゲーム装置。
【請求項１５】
前記プレイヤオブジェクト制御部は、操作装置に対する方向入力操作に基づいて前記プレイヤオブジェクトを移動させ、
前記判定部は、前記タイミングまでに前記プレイヤオブジェクトが前記到達位置から第１所定範囲を含む第３所定範囲内に移動し、かつ前記所定期間に操作装置の振り操作が行われたか否かによって前記成功判定を行う、請求項１２記載のゲーム装置。
【請求項１６】
前記プレイヤオブジェクト制御部は、操作装置に対する方向入力操作に基づいて前記プレイヤオブジェクトを移動させ、
前記判定部は、前記タイミングまでに前記プレイヤオブジェクトが前記到達位置から第１所定範囲を含む第３所定範囲内に移動し、かつ前記所定期間に操作装置に対する所定のキー操作が行われた否かによって前記成功判定を行う、請求項１２記載のゲーム装置。
【請求項１７】
前記音制御部は、前記判定部において成功と判定されたとき、成功を示す効果音を出力させ、失敗と判定されたとき、失敗を示す効果音を出力させる、請求項１２記載のゲーム装置
【請求項１８】
前記音制御部は、前記タイミングデータに関連する前記音楽をＢＧＭとして出力し、
前記判定部において成功と判定されたとき、ＢＧＭの音量およびパートの少なくとも一方を増加させ、失敗と判定されたとき、ＢＧＭの音量およびパートの少なくとも一方を減少させる、請求項１２記載のゲーム装置。
【請求項１９】
前記プレイヤオブジェクト制御部は、複数のプレイヤオブジェクトの各々を、複数のプレイヤのそれぞれの操作に従って移動させ、
前記オブジェクト移動部は、前記複数のプレイヤオブジェクトのいずれかの位置に基づいて前記判定用オブジェクトの到達位置を設定する、請求項１３または１４記載のゲーム装置。
【請求項２０】
前記判定用オブジェクトは、対応するプレイヤオブジェクトを識別可能な外観を有し、
前記オブジェクト移動部は、対応するプレイヤオブジェクトの位置に基づいて到達位置を決定する、請求項１９記載のゲーム装置。
【請求項２１】
前記到達位置に、前記第１所定範囲を示す指標を対応するプレイヤオブジェクトを識別可能に表示させるマーカ表示部をさらに備える、請求項２０記載のゲーム装置。
【請求項２２】
前記ゲーム空間に前記判定用オブジェクト以外のアイテムオブジェクトを配置する配置部と、
前記プレイヤオブジェクトが前記アイテムオブジェクトに接触したか否かに応じて前記プレイヤオブジェクトに所定の効果を与えるアイテム処理部をさらに備える、請求項１２または１９記載のゲーム装置。
【請求項２３】
リズムゲームを行うゲームシステムであって、
音楽に合わせて設定されたタイミングデータを記憶するタイミングデータ記憶部と、
プレイヤの操作に基づいて、３次元のゲーム空間内においてプレイヤオブジェクトを移動させるプレイヤオブジェクト制御部と、
判定用オブジェクトの到達位置を設定し、前記タイミングデータが示すタイミングで当該到達位置に着地するように、当該判定用オブジェクトを前記３次元のゲーム空間内において移動させるオブジェクト移動部と、
前記タイミングを含む所定期間に前記プレイヤオブジェクトが前記到達位置から第１所定範囲内に位置するか否かに基づいて、成功判定を行う判定部と、
前記判定部における判定結果に基づいて、音出力を制御する音制御部を備える、ゲームシステム。
【請求項２４】
前記プレイヤオブジェクト制御部は、複数のプレイヤオブジェクトの各々を、複数のプレイヤのそれぞれの操作に従って移動させ、
前記オブジェクト移動部は、前記複数のプレイヤオブジェクトのいずれかの位置に基づいて前記判定用オブジェクトの到達位置を設定する、請求項２３記載のゲームシステム。
【請求項２５】
音楽に合わせて設定されたタイミングデータを記憶するタイミングデータ記憶部を備え、リズムゲームを行うゲーム装置のゲーム制御方法であって、
（ａ）プレイヤの操作に基づいて、３次元のゲーム空間内においてプレイヤオブジェクトを移動させ、
（ｂ）判定用オブジェクトの到達位置を設定し、前記タイミングデータが示すタイミングで当該到達位置に着地するように、当該判定用オブジェクトを前記３次元のゲーム空間内において移動させ、
（ｃ）前記タイミングを含む所定期間に前記プレイヤオブジェクトが前記到達位置から第１所定範囲内に位置するか否かに基づいて、成功判定を行い、
（ｄ）前記ステップ（ｃ）における判定結果に基づいて、音出力を制御する、ゲーム制御方法。
【請求項２６】
前記ステップ（ａ）は、複数のプレイヤオブジェクトの各々を、複数のプレイヤのそれぞれの操作に従って移動させ、
前記ステップ（ｂ）は、前記複数のプレイヤオブジェクトのいずれかの位置に基づいて前記判定用オブジェクトの到達位置を設定する、請求項２５記載のゲーム制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム制御方法に関し、特にたとえば、リズムゲームを行う、ゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム制御方法に関する。
【背景技術】
【０００２】
この種のゲーム装置の一例が特許文献１に開示されている。この特許文献１のゲーム装置では、プレイヤが音楽を演奏するために必要な操作スイッチの操作情報（タイミングおよび種類）が表示部の画面上に表示される。プレイヤがその表示に合わせて適切に操作スイッチを順次操作することによって、正確な音楽が演奏される。
【特許文献１】特許第３３９２１２０号［A63F 13/00,A63F 13/10］
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかし、特許文献１に開示されたゲーム装置では、表示部に表示された操作情報に従ってタイミング良く操作スイッチを操作するだけなので、操作が単調であった。また、別のゲーム要素を加えることも困難であった。
【０００４】
それゆえに、この発明の主たる目的は、新規なリズムゲームを提供できる、ゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム制御方法を提供することである。
【課題を解決するための手段】
【０００５】
第１の発明は、音楽に合わせて設定されたタイミングデータを記憶するタイミングデータ記憶部を備え、リズムゲームを行うゲーム装置のゲームプログラムであって、ゲーム装置のコンピュータを、プレイヤオブジェクト制御部と、オブジェクト移動部と、判定部と、音制御部として機能させる。プレイヤオブジェクト制御部は、プレイヤの操作に基づいて、３次元のゲーム空間内においてプレイヤオブジェクトを移動させる。オブジェクト移動部は、判定用オブジェクトの到達位置を設定し、タイミングデータが示すタイミングで当該到達位置に着地するように、当該判定用オブジェクトを３次元のゲーム空間内において移動させる。判定部は、タイミングを含む所定期間にプレイヤオブジェクトが到達位置から第１所定範囲内に位置するか否かに基づいて、成功判定を行う。音制御部は、判定部における判定結果に基づいて、音出力を制御する。
【０００６】
第１の発明によれば、タイミングデータが示すタイミングで到達位置に着地するように判定用オブジェクトを３次元のゲーム空間内において移動させ、判定用オブジェクトの到達位置から所定範囲内にプレイヤオブジェクトが存在するかどうかで音出力を制御するので、単にタイミングを合わせて操作スイッチを操作するだけのリズムゲームとは異なり、新しい感覚のリズムゲームを提供することができる。
【０００７】
第２の発明は、第１の発明に従属し、オブジェクト移動部は、プレイヤオブジェクトの位置から第２所定範囲の位置に判定用オブジェクトが着地するように到達位置を設定する。
【０００８】
第２の発明によれば、判定用オブジェクトの到達位置をプレイヤオブジェクトの位置から所定範囲の位置に設定するので、到達位置を簡単に決定することができる。また、所定範囲をプレイヤオブジェクトの移動可能な距離で設定しておけば、プレイヤオブジェクトが到達し得ないような位置を判定用オブジェクトの到達位置に設定するような不都合は生じない。
【０００９】
第３の発明は、第１の発明に従属し、オブジェクト移動部は、プレイヤオブジェクトの位置から所定距離の位置に判定用オブジェクトが着地するように到達位置を設定する。
【００１０】
第３の発明によれば、判定用オブジェクトをプレイヤオブジェクトの位置から所定距離離れた位置に着地させるので、第２の発明と同様に、到達位置を簡単に決定することができる。また、プレイヤオブジェクトの近傍に到達位置が設定されることが無いため、何らプレイヤオブジェクトを操作せずに、良い判定結果が得られるような不都合が生じない。
【００１１】
第４の発明は、第１の発明に従属し、プレイヤオブジェクト制御部は、操作装置に対する方向入力操作に基づいてプレイヤオブジェクトを移動させる。また、判定部は、タイミングまでにプレイヤオブジェクトが到達位置から第１所定範囲を含む第３所定範囲内に移動し、かつ所定期間に操作装置の振り操作が行われたか否かによって成功判定を行う。
【００１２】
第４の発明によれば、所定期間に操作装置の振り操作が行われた場合には、第１所定範囲を含む第３所定範囲のような広い範囲で成功判定が行われるため、単にプレイヤオブジェクトを移動させるだけではないため、操作が単調になることがない。
【００１３】
第５の発明は、第１の発明に従属し、プレイヤオブジェクト制御部は、操作装置に対する方向入力操作に基づいてプレイヤオブジェクトを移動させる。判定部は、タイミングまでにプレイヤオブジェクトが到達位置から第１所定範囲を含む第３所定範囲内に移動し、かつ所定期間に操作装置に対する所定のキー操作が行われた否かによって成功判定を行う。
【００１４】
第５の発明においても、第４の発明と同様に、操作が単調になることがなく、ゲームへの興味が減退するのを防止することができる。
【００１５】
第６の発明は、第１の発明に従属し、音制御部は、判定部において成功と判定されたとき、成功を示す効果音を出力させ、失敗と判定されたとき、失敗を示す効果音を出力させる。
【００１６】
第６の発明によれば、成功した場合と失敗した場合とで異なる効果音を出力させるので、たとえば、成功した場合には、音楽に合わせた効果音を出力することにより、プレイヤに爽快感を与えることができ、失敗した場合には、不協和音のような不快な効果音を出力することにより、成功する意欲をもたらすことができる。
【００１７】
第７の発明は、第１の発明に従属し、音制御部は、タイミングデータに関連する音楽をＢＧＭとして出力し、判定部において成功と判定されたとき、ＢＧＭの音量およびパートの少なくとも一方を増加させ、失敗と判定されたとき、ＢＧＭの音量およびパートの少なくとも一方を減少させる。
【００１８】
第７の発明によれば、成功が判定されるとＢＧＭの豪華さを増大させることができ、失敗が判定されるとＢＧＭの豪華さを減少させることができる。
【００１９】
第８の発明は、第２または第３の発明に従属し、プレイヤオブジェクト制御部は、複数のプレイヤオブジェクトの各々を、複数のプレイヤのそれぞれの操作に従って移動させる。また、オブジェクト移動部は、複数のプレイヤオブジェクトのいずれかの位置に基づいて判定用オブジェクトの到達位置を設定する。
【００２０】
第８の発明によれば、複数のプレイヤオブジェクトが存在する場合には、そのいずれかの位置に基づいて判定用オブジェクトの到達位置を設定するので、到達位置の設定が簡単である。また、複数のプレイヤで協力したプレイが可能である。
【００２１】
第９の発明は、第８の発明に従属し、判定用オブジェクトは、対応するプレイヤオブジェクトを識別可能な外観を有している。また、オブジェクト移動部は、対応するプレイヤオブジェクトの位置に基づいて到達位置を決定する。
【００２２】
第９の発明によれば、プレイヤオブジェクトを識別可能な外観の判定用オブジェクトを設けるので、プレイヤは自身のプレイヤオブジェクトに対応する判定用オブジェクトを容易に知ることができる。また、複数のプレイヤオブジェクトが存在する場合であっても、判定用オブジェクトの到達位置を簡単に設定することができる。
【００２３】
第１０の発明は、第９の発明に従属し、到達位置に、第１所定範囲を示す指標を対応するプレイヤオブジェクトを識別可能に表示させるマーカ表示部として、コンピュータをさらに機能させる。
【００２４】
第１０の発明によれば、判定用オブジェクトの到達位置に、第１所定範囲を示す指標を表示させるので、当該指標を見てプレイヤオブジェクトを移動させればよく、操作が比較的簡単である。
【００２５】
第１１の発明は、第１または第８の発明に従属し、ゲームプログラムは、コンピュータを、配置部とアイテム処理部としてさらに機能させる。配置部は、ゲーム空間に判定用オブジェクト以外のアイテムオブジェクトを配置する。アイテム処理部は、プレイヤオブジェクトがアイテムオブジェクトに接触したか否かに応じてプレイヤオブジェクトに所定の効果を与える。
【００２６】
第１１の発明によれば、アイテムを配置し、これにプレイヤオブジェクトが接触した場合には、所定の効果を与えるので、リズムゲームに他のゲーム要素を加えることができる。したがって、ゲームの面白味を増大させることができる。
【００２７】
第１２の発明は、リズムゲームを行うゲーム装置であって、タイミングデータ記憶部と、プレイヤオブジェクト制御部と、オブジェクト移動部と、判定部と、音制御部を備える。タイミングデータ記憶部は、音楽に合わせて設定されたタイミングデータを記憶する。プレイヤオブジェクト制御部は、プレイヤの操作に基づいて、３次元のゲーム空間内においてプレイヤオブジェクトを移動させる。オブジェクト移動部は、判定用オブジェクトの到達位置を設定し、タイミングデータが示すタイミングで当該到達位置に着地するように、当該判定用オブジェクトを３次元のゲーム空間内において移動させる。判定部は、タイミングを含む所定期間にプレイヤオブジェクトが到達位置から第１所定範囲内に位置するか否かに基づいて、成功判定を行う。音制御部は、判定部における判定結果に基づいて、音出力を制御する。
【００２８】
第１３の発明は、リズムゲームを行うゲームシステムであって、タイミングデータ記憶部と、プレイヤオブジェクト制御部と、オブジェクト移動部と、判定部と、音制御部を備える。タイミングデータ記憶部は、音楽に合わせて設定されたタイミングデータを記憶する。プレイヤオブジェクト制御部は、プレイヤの操作に基づいて、３次元のゲーム空間内においてプレイヤオブジェクトを移動させる。オブジェクト移動部は、判定用オブジェクトの到達位置を設定し、タイミングデータが示すタイミングで当該到達位置に着地するように、当該判定用オブジェクトを３次元のゲーム空間内において移動させる。判定部は、タイミングを含む所定期間にプレイヤオブジェクトが到達位置から第１所定範囲内に位置するか否かに基づいて、成功判定を行う。音制御部は、判定部における判定結果に基づいて、音出力を制御する。
【００２９】
第１４の発明は、音楽に合わせて設定されたタイミングデータを記憶するタイミングデータ記憶部を備え、リズムゲームを行うゲーム装置のゲーム制御方法であって、（ａ）プレイヤの操作に基づいて、３次元のゲーム空間内においてプレイヤオブジェクトを移動させ、（ｂ）判定用オブジェクトの到達位置を設定し、タイミングデータが示すタイミングで当該到達位置に着地するように、当該判定用オブジェクトを３次元のゲーム空間内において移動させ、（ｃ）タイミングを含む所定期間にプレイヤオブジェクトが到達位置から第１所定範囲内に位置するか否かに基づいて、成功判定を行い、（ｄ）ステップ（ｃ）における判定結果に基づいて、音出力を制御する。
【００３０】
第１２−第１４の発明においても、第１の発明と同様に、新しい感覚のリズムゲームを提供することができる。
【発明の効果】
【００３１】
この発明によれば、タイミングデータが示すタイミングで到達位置に到達するように判定オブジェクトを移動させ、判定オブジェクトの到達位置から所定範囲内にプレイヤオブジェクトが存在するかどうかで音出力を制御するので、単にタイミングを合わせて操作スイッチを操作するだけのリズムゲームとは異なり、新しい感覚のリズムゲームを提供することができる。
【００３２】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【００３３】
【図１】図１はこの発明のゲームシステムの一実施例を示す図解図である。
【図２】図２はゲームシステムの電気的な構成を示すブロック図である。
【図３】図３は第１コントローラの外観を説明するための図解図である。
【図４】図４は第２コントローラの外観を説明するための図解図である。
【図５】図５はコントローラ（第１コントローラおよび第２コントローラを互いに接続したもの）の電気的な構成を示すブロック図である。
【図６】図６はコントローラを用いて仮想ゲームをプレイするときの状態を概説するための図解図である。
【図７】図７はマーカおよびコントローラの視野角を説明するための図解図である。
【図８】図８はコントローラによる撮像画像の一例を示す図解図である。
【図９】図９は図１のモニタに表示されるゲーム画面の一例を図解図である。
【図１０】図１０は図９に示すゲーム画面に表示されるボールオブジェクトおよびアイテムオブジェクトを示す図解図である。
【図１１】図１１はプレイヤオブジェクトがボールオブジェクトを捕球ないしレシーブしたと判定される範囲を示す図解図である。
【図１２】図１２はＢＧＭの変化テーブルの一例を示す図解図である。
【図１３】図１３はＢＧＭに対応して設定される配球情報の例を示す図解図である。
【図１４】図１４は発射タイミングテーブルの例を示す図解図である。
【図１５】図１５はボールオブジェクトおよびアイテムオブジェクトの着弾点および移動方向の決定方法を示す図解図である。
【図１６】図１６は図２に示すメインメモリのメモリマップを示す図解図である。
【図１７】図１７は図１６に示すメインメモリのデータ記憶領域の具体的な内容を示す図解図である。
【図１８】図１８は図２に示すＣＰＵのゲーム全体処理の第１の一部を示すフロー図である。
【図１９】図１９は図２に示すＣＰＵのゲーム全体処理の第２の一部であって、図１８に後続するフロー図である。
【図２０】図２０は図２に示すＣＰＵのゲーム全体処理の第３の一部であって、図１９に後続するフロー図である。
【図２１】図２１は図２に示すＣＰＵのゲーム全体処理の第４の一部であって、図２０に後続するフロー図である。
【図２２】図２２は図２に示すＣＰＵのゲーム全体処理の第５の一部であって、図２１に後続するフロー図である。
【図２３】図２３は図２に示すＣＰＵのオブジェクトの移動および判定処理（ボールオブジェクト）の一部を示すフロー図である。
【図２４】図２４は図２に示すＣＰＵのオブジェクトの移動および判定処理（ボールオブジェクト）の他の一部であって、図２３に後続するフロー図である。
【図２５】図２５は図２に示すＣＰＵのオブジェクトの移動および判定処理（ボールオブジェクト）のその他の一部であって、図２３に後続するフロー図である。
【図２６】図２６は図２に示すＣＰＵのオブジェクトの移動および判定処理（アイテムオブジェクト）の一部を示すフロー図である。
【図２７】図２７は図２に示すＣＰＵのオブジェクトの移動および判定処理（アイテムオブジェクト）の他の一部であって、図２６に後続するフロー図である。
【図２８】図２８は図２に示すＣＰＵのプレイヤオブジェクト制御処理の一部を示すフロー図である。
【図２９】図２９は図２に示すＣＰＵのプレイヤオブジェクト制御処理の他の一部であって、図２８に後続するフロー図である。
【発明を実施するための形態】
【００３４】
図１を参照して、この発明の一実施例であるゲームシステム１０は、ゲーム装置１２およびコントローラ１４を含む。図示は省略するが、この実施例のゲーム装置１２は、最大４つのコントローラ１４と通信可能に設計されている。また、ゲーム装置１２と各コントローラ１４とは、無線によって接続される。たとえば、無線通信は、Ｂｌｕｅｔｏｏｔｈ（登録商標）規格に従って実行されるが、赤外線や無線ＬＡＮなど他の規格に従って実行されてもよい。さらには、有線で接続されてもよい。
【００３５】
ゲーム装置１２は、略直方体のハウジング１６を含み、ハウジング１６の前面にはディスクスロット１８が設けられる。ディスクスロット１８から、ゲームプログラム等を記憶した情報記憶媒体の一例である光ディスク２４が挿入されて、ハウジング１６内のディスクドライブ５４（図２参照）に装着される。図示は省略するが、ディスクスロット１８の周囲には、ＬＥＤと導光板とが配置され、様々な処理に応答させて、ディスクスロット１８を点灯または点滅させることが可能である。
【００３６】
また、ゲーム装置１２のハウジング１６の前面の上部には、電源ボタン２０ａおよびリセットボタン２０ｂが設けられ、その下部には、イジェクトボタン２０ｃが設けられる。さらに、リセットボタン２０ｂとイジェクトボタン２０ｃとの間であり、ディスクスロット１８の近傍には、外部メモリカード用コネクタカバー２２が設けられる。この外部メモリカード用コネクタカバー２２の内側には、外部メモリカード用コネクタ６２（図２参照）が設けられ、外部メモリカード３８（以下、単に「メモリカード３８」という。）が挿入される。メモリカード３８は、光ディスク２４から読み出したゲームプログラム等をローディングして一時的に記憶したり、このゲームシステム１０を利用してプレイしたゲームのゲームデータ（ゲームの結果データまたは途中データ、あるいは後述するリプレイデータ）を保存（セーブ）しておいたりするために利用される。ただし、上記のゲームデータの保存は、メモリカード３８に対して行うことに代えて、たとえばゲーム装置１２の内部に設けられるフラッシュメモリ４４（図２参照）のような内部メモリに対して行うようにしてもよい。また、メモリカード３８は、内部メモリのバックアップメモリとして用いるようにしてもよい。さらに、ゲーム装置１２では、ゲーム以外の他のアプリケーションを実行することも可能であり、かかる場合には、メモリカード３８には当該他のアプリケーションのデータを保存することができる。
【００３７】
なお、メモリカード３８としては、汎用のＳＤカードを用いることができるが、メモリスティックやマルチメディアカード（登録商標）のような他の汎用のメモリカードを用いることもできる。メモリカード３８は、ゲーム装置１２と同様の構成を有する他のゲーム装置でも利用することができるので、ゲームデータをメモリカード３８を介して他のプレイヤに提供することもできる。
【００３８】
図１では省略するが、ゲーム装置１２のハウジング１６の後面には、ＡＶコネクタ５８（図２参照）が設けられ、そのＡＶコネクタ５８を用いて、ＡＶケーブル２６を通してゲーム装置１２にモニタ２８およびスピーカ３０を接続する。このモニタ２８およびスピーカ３０は典型的にはカラーテレビジョン受像機であり、ＡＶケーブル２６によって、ゲーム装置１２からの映像信号がカラーテレビのビデオ入力端子に入力され、ゲーム装置１２からの音声信号が音声入力端子に入力される。したがって、カラーテレビ（モニタ）２８の画面上にたとえば３次元（３Ｄ）ビデオゲームの仮想３次元ゲーム画像が表示され、左右のスピーカ３０からゲーム音楽や効果音などのステレオゲーム音声が出力される。また、モニタ２８の周辺（この実施例では、モニタ２８の上側）には、２つの赤外ＬＥＤ（マーカ）３２ａおよび３２ｂを備えるマーカ部３２が設けられる。このマーカ部３２は、電源線３２ｃを通してゲーム装置１２に接続される。したがって、マーカ部３２には、ゲーム装置１２から電源が供給される。これによって、マーカ３２ａおよび３２ｂは発光し、それぞれモニタ２８の前方に向けて赤外光を出力する。
【００３９】
なお、ゲーム装置１２の電源は、一般的なＡＣアダプタ（図示せず）によって与えられる。ＡＣアダプタは家庭用の標準的な壁ソケットに差し込まれ、ゲーム装置１２は、家庭用電源（商用電源）を、駆動に適した低いＤＣ電圧信号に変換する。他の実施例では、電源としてバッテリが用いられてもよい。
【００４０】
コントローラ１４は、詳細は後述されるが、第１の操作ユニットおよび第２の操作ユニットとして、それぞれが片手で把持可能な第１コントローラ３４および第２コントローラ３６を含む。第２コントローラ３６の後端から延びるケーブル３６ａの先端にはコネクタ３６ｂが設けられており、当該コネクタ３６ｂは、第１コントローラ３４の後端面に設けられるコネクタ３４ａ（図３、図５）に接続される。第２コントローラ３６において取得される入力データは、ケーブル３６ａを介して第１コントローラ３４に与えられる。第１コントローラ３４は、第１コントローラ３４自身の入力データと第２コントローラ３６の入力データとを含むコントローラデータをゲーム装置１２に送信する。
【００４１】
このゲームシステム１０において、ユーザまたはプレイヤがゲーム（またはゲームに限らず、他のアプリケーション）をプレイするために、ユーザは電源スイッチ２０ａによってまずゲーム装置１２の電源をオンし、次いで、ユーザはビデオゲーム（もしくはプレイしたいと思う他のアプリケーション）のプログラムを記録している適宜の光ディスク２４を選択し、その光ディスク２４をゲーム装置１２のディスクドライブ５４にローディングする。応じて、ゲーム装置１２がその光ディスク２４に記録されているプログラムに基づいてビデオゲームもしくは他のアプリケーションを実行し始める。ユーザはゲーム装置１２に入力を与えるためにコントローラ１４を操作する。たとえば操作部８２のどれかの操作ボタンを操作することによって、ゲームもしくは他のアプリケーションをスタートさせる。また、操作部８２に対する操作以外にも、コントローラ１４自体を動かすことによって、動画オブジェクト（プレイヤオブジェクト）を異なる方向に移動させ、または３Ｄのゲーム世界におけるユーザの視点（仮想カメラの位置）を変化させることができる。
【００４２】
ただし、ビデオゲームや他のアプリケーションのプログラムは、ゲーム装置１２の内部メモリ（フラッシュメモリ４４（図２参照））に記憶（インストール）しておき、当該内部メモリから実行するようにしてもよい。かかる場合には，光ディスク２４のような記憶媒体に記憶されたプログラムを内部メモリにインストールしてもよいし、ダウンロードされたプログラムを内部メモリにインストールしてもよい。
【００４３】
図２は図１実施例のゲームシステム１０の電気的な構成を示すブロック図である。図示は省略するが、ハウジング１６内の各コンポーネントは、プリント基板に実装される。図２に示すように、ゲーム装置１２には、ＣＰＵ４０が設けられ、ゲームプロセッサとして機能する。また、ＣＰＵ４０には、システムＬＳＩ４２が接続される。このシステムＬＳＩ４２には、外部メインメモリ４６、ＲＯＭ／ＲＴＣ４８、ディスクドライブ５４およびＡＶ  ＩＣ５６が接続される。
【００４４】
外部メインメモリ４６は、ゲームプログラム等のプログラムを記憶したり、各種データを記憶したりして、ＣＰＵ４０のワーク領域やバッファ領域として用いられる。ＲＯＭ／ＲＴＣ４８は、いわゆるブートＲＯＭであり、ゲーム装置１２の起動用のプログラムが組み込まれるとともに、時間をカウントする時計回路が設けられる。ディスクドライブ５４は、光ディスク２４からプログラムやテクスチャデータ等を読み出し、ＣＰＵ４０の制御の下で、後述する内部メインメモリ４２ｅまたは外部メインメモリ４６に書き込む。
【００４５】
システムＬＳＩ４２には、入出力プロセッサ４２ａ、ＧＰＵ(Graphics Processor Unit)４２ｂ，ＤＳＰ(Digital Signal Processor)４２ｃ，ＶＲＡＭ４２ｄおよび内部メインメモリ４２ｅが設けられ、図示は省略するが、これらは内部バスによって互いに接続される。入出力プロセッサ（Ｉ／Ｏプロセッサ）４２ａは、データの送受信を実行したり、データのダウンロードを実行したりする。ＧＰＵ４２ｂは、描画手段の一部を形成し、ＣＰＵ４０からのグラフィクスコマンド(作画命令)を受け、そのコマンドに従ってゲーム画像データを生成する。ただし、ＣＰＵ４０は、グラフィクスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラムをＧＰＵ４２ｂに与える。
【００４６】
図示は省略するが、上述したように、ＧＰＵ４２ｂにはＶＲＡＭ４２ｄが接続される。ＧＰＵ４２ｂが作画命令を実行するにあたって必要なデータ（画像データ：ポリゴンデータやテクスチャデータなどのデータ）は、ＧＰＵ４２ｂがＶＲＡＭ４２ｄにアクセスして取得する。ただし、ＣＰＵ４０は、描画に必要な画像データを、ＧＰＵ４２ｂを介してＶＲＡＭ４２ｄに書き込む。ＧＰＵ４２ｂは、ＶＲＡＭ４２ｄにアクセスして描画のためのゲーム画像データを作成する。
【００４７】
なお、この実施例では、ＧＰＵ４２ｂがゲーム画像データを生成する場合について説明するが、ゲームアプリケーション以外の任意のアプリケーションを実行する場合には、ＧＰＵ４２ｂは当該任意のアプリケーションについての画像データを生成する。
【００４８】
また、ＤＳＰ４２ｃは、オーディオプロセッサとして機能し、内部メインメモリ４２ｅや外部メインメモリ４６に記憶されるサウンドデータや音波形（音色）データを用いて、スピーカ３０から出力する音（効果音）、音声或いは音楽（ＢＧＭ）に対応するオーディオデータを生成する。
【００４９】
上述のように生成されたゲーム画像データおよびオーディオデータは、ＡＶ  ＩＣ５６によって読み出され、ＡＶコネクタ５８を介してモニタ２８およびスピーカ３０に出力される。したがって、ゲーム画面がモニタ２８に表示され、ゲームに必要な音（音楽）がスピーカ３０から出力される。
【００５０】
また、入出力プロセッサ４２ａには、フラッシュメモリ４４、無線通信モジュール５０および無線コントローラモジュール５２が接続されるとともに、拡張コネクタ６０およびメモリカード用コネクタ６２が接続される。また、無線通信モジュール５０にはアンテナ５０ａが接続され、無線コントローラモジュール５２にはアンテナ５２ａが接続される。
【００５１】
入出力プロセッサ４２ａは、無線通信モジュール５０を介して、図示は省略するが、ネットワークに接続された他のゲーム装置やサーバと通信することができる。ただし、ネットワークを介さずに、直接的に他のゲーム装置と通信することもできる。入出力プロセッサ４２ａは、定期的にフラッシュメモリ４４にアクセスし、ネットワークへ送信する必要があるデータ（「送信データ」とする）の有無を検出し、当該送信データが有る場合には、無線通信モジュール５０およびアンテナ５０ａを介してネットワークに送信する。また、入出力プロセッサ４２ａは、他のゲーム装置から送信されるデータ（「受信データ」とする）を、ネットワーク、アンテナ５０ａおよび無線通信モジュール５０を介して受信し、当該受信データをフラッシュメモリ４４に記憶する。ただし、受信データが一定の条件を満たさない場合には、当該受信データはそのまま破棄される。さらに、入出力プロセッサ４２ａは、ネットワークに接続されたサーバからダウンロードしたデータ（ダウンロードデータとする）をネットワーク、アンテナ５０ａおよび無線通信モジュール５０を介して受信し、そのダウンロードデータをフラッシュメモリ４４に記憶することもできる。
【００５２】
また、入出力プロセッサ４２ａは、コントローラ１４から送信される入力データをアンテナ５２ａおよび無線コントローラモジュール５２を介して受信し、内部メインメモリ４２ｅまたは外部メインメモリ４６のバッファ領域に記憶（一時記憶）する。入力データは、ＣＰＵ４０の処理（たとえば、ゲーム処理）によって利用された後、バッファ領域から消去される。
【００５３】
さらに、入出力プロセッサ４２ａには、拡張コネクタ６０およびメモリカード用コネクタ６２が接続される。拡張コネクタ６０は、ＵＳＢやＳＣＳＩのようなインタフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、コントローラ１４とは異なる他のコントローラのような周辺機器を接続したりすることができる。また、拡張コネクタ６０に有線ＬＡＮアダプタを接続し、無線通信モジュール５０に代えて当該有線ＬＡＮを利用することもできる。メモリカード用コネクタ６２には、メモリカード３８のような外部記憶媒体を接続することができる。したがって、たとえば、入出力プロセッサ４２ａは、拡張コネクタ６０やメモリカード用コネクタ６２を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
【００５４】
詳細な説明は省略するが、図１にも示したように、ゲーム装置１２（ハウジング１６）には、電源ボタン２０ａ，リセットボタン２０ｂおよびイジェクトボタン２０ｃが設けられる。電源ボタン２０ａは、システムＬＳＩ４２に接続される。この電源ボタン２０ａがオンされると、システムＬＳＩ４２には、ゲーム装置１２の各コンポーネントに図示しないＡＣアダプタを経て電源が供給され、通常の通電状態となるモード（「通常モード」と呼ぶこととする）が設定される。一方、電源ボタン２０ａがオフされると、システムＬＳＩ４２には、ゲーム装置１２の一部のコンポーネントのみに電源が供給され、消費電力を必要最低限に抑えるモード（以下、「スタンバイモード」という）が設定される。
【００５５】
この実施例では、スタンバイモードが設定された場合には、システムＬＳＩ４２は、入出力プロセッサ４２ａ、フラッシュメモリ４４、外部メインメモリ４６、ＲＯＭ／ＲＴＣ４８および無線通信モジュール５０、無線コントローラモジュール５２以外のコンポーネントに対して、電源供給を停止する指示を行う。したがって、この実施例では、スタンバイモードにおいて、ＣＰＵ４０がアプリケーションを実行することはない。
【００５６】
リセットボタン２０ｂもまた、システムＬＳＩ４２に接続される。リセットボタン２０ｂが押されると、システムＬＳＩ４２は、ゲーム装置１２の起動プログラムを再起動する。イジェクトボタン２０ｃは、ディスクドライブ５４に接続される。イジェクトボタン２０ｃが押されると、ディスクドライブ５４から光ディスク２４が排出される。
【００５７】
図３には第１コントローラ３４の外観の一例が示される。図３（Ａ）は、第１コントローラ３４を上面後方から見た斜視図であり、図３（Ｂ）は、第１コントローラ３４を下面前方から見た斜視図である。第１コントローラ３４は、たとえばプラスチック成型によって形成されたハウジング８０を有している。ハウジング８０は、その前後方向（図３に示すＺ軸方向）を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。一例として、ハウジング８０は人間の掌とほぼ同じ長さまたは幅を持つ大きさをしている。プレイヤは、第１コントローラ３４を用いて、それに設けられたボタンを押下することと、第１コントローラ３４自体を動かしてその位置や向きを変えることとによって、ゲーム操作を行うことができる。
【００５８】
ハウジング８０には、複数の操作ボタン（操作キー）が設けられる。すなわち、ハウジング８０の上面には、十字キー８２ａ、１ボタン８２ｂ、２ボタン８２ｃ、Ａボタン８２ｄ、−ボタン８２ｅ、メニューボタン８２ｆ、および＋ボタン８２ｇが設けられる。一方、ハウジング８０の下面には凹部が形成されており、当該凹部の後方側傾斜面にはＢボタン８２ｈが設けられる。これら各ボタン（スイッチ）８２ａ−８２ｈには、ゲーム装置１２が実行するゲームプログラムに応じてそれぞれ適宜な機能が割り当てられる。また、ハウジング８０の上面には、遠隔からゲーム装置１２本体の電源をオン／オフするための電源スイッチ８２ｉが設けられる。第１コントローラ３４に設けられる各ボタン（スイッチ）は、包括的に参照符号８２を用いて示されることもある。
【００５９】
また、ハウジング８０の後面には、上述のコネクタ３４ａが設けられている。コネクタ３４ａは、たとえば３２ピンのエッジコネクタであり、第１コントローラ３４に他の機器を接続するために利用される。この実施例では、コネクタ３４ａには第２コントローラ３６のコネクタ３６ｂが接続される。また、ハウジング８０上面の後端側には複数のＬＥＤ８４が設けられ、この複数のＬＥＤ８４によって当該コントローラ１４のコントローラ番号（コントローラの識別番号）が示される。ゲーム装置１２には、たとえば最大４つのコントローラ１４が接続可能であり、ゲーム装置１２に複数のコントローラ１４が接続される場合には、各コントローラ１４には、たとえば接続順にコントローラ番号が付与される。各ＬＥＤ８４はコントローラ番号と対応付けられており、当該コントローラ番号に対応するＬＥＤ８４が点灯される。
【００６０】
また、第１コントローラ３４のハウジング８０内には加速度センサ８６（図５）が設けられている。加速度センサ８６としては、典型的には静電容量式の加速度センサが用いられ得る。加速度センサ８６は、当該加速度センサの検出部に加わっている加速度のうち、センシング軸ごとの直線成分の加速度や重力加速度を検出する。具体的には、この実施例では、３軸加速度センサが適用され、第１コントローラ３４の上下方向（図３に示すＹ軸方向）、左右方向（図３に示すＸ軸方向）および前後方向（図３に示すＺ軸方向）の３軸方向のそれぞれで加速度を検知する。
【００６１】
なお、加速度センサ８６としては、ハウジング８０の形状または第１コントローラ３４の持たせ方の限定等に応じて、上下方向、左右方向および前後方向のうちいずれか２方向の加速度を検出する２軸加速度センサが用いられてもよい。場合によっては１軸加速度センサが用いられてもよい。
【００６２】
さらに、コントローラ２２は、撮像情報演算部８８（図５参照）を有している。図３（Ｂ）に示すように、ハウジング８０の先端面には撮像情報演算部８８の光入射口９０が設けられ、光入射口９０からはセンサバー４４のマーカ４４ｍ、４４ｎの発する赤外線が取り込まれる。
【００６３】
図４には第２コントローラ３６の外観の一例が示される。図４（Ａ）は、第２コントローラ３６を上面後方から見た斜視図であり、図４（Ｂ）は、第２コントローラ３６を下面前方から見た斜視図である。なお、図４では、第２コントローラ３６のケーブル３６ａは省略されている。
【００６４】
第２コントローラ３６は、たとえばプラスチック成型によって形成されたハウジング９２を有している。ハウジング９２は、平面視では、前後方向（図４のＺ軸方向）に略細長い楕円形状を有し、後端側の左右方向（図４のＸ軸方向）の幅が先端側のそれよりも狭くされている。また、ハウジング９２は、側面視では、全体として湾曲した形状を有しており、先端側の水平部分から後端側に向かって下がるように湾曲している。ハウジング９２は、第１コントローラ３４と同様に、全体として大人や子供の片手で把持可能な大きさであるが、長手方向（Ｚ軸方向）の長さは、第１コントローラ３４のハウジング８０よりもやや短くされている。この第２コントローラ３６でも、プレイヤは、ボタンやスティックを操作することと、コントローラ自体を動かしてその位置や向きを変えることとによって、ゲーム操作を行うことができる。
【００６５】
ハウジング９２の上面の先端側には、アナログジョイスティック９４ａが設けられる。ハウジング９２の先端には、後方にやや傾斜する先端面が設けられており、この先端面には、上下方向（図４に示すＹ軸方向）に並べて、Ｃボタン９４ｂおよびＺボタン９４ｃが設けられる。アナログジョイスティック９４ａおよび各ボタン９４ｂ，９４ｃには、ゲーム装置１２が実行するゲームプログラムに応じてそれぞれ適宜な機能が割り当てられる。第２コントローラ３６に設けられるアナログジョイスティック９４ａおよび各ボタン９４ｂ，９４ｃは、包括的に参照符号９４を用いて示されることもある。
【００６６】
また、第２コントローラ３６のハウジング９２内には加速度センサ９６（図５）が設けられている。この加速度センサ９６としては、第１コントローラ３４の加速度センサ８６と同様の加速度センサが適用される。具体的には、この実施例では３軸加速度センサが適用され、第２コントローラ３６の上下方向（図４に示すＹ軸方向）、左右方向（図４に示すＸ軸方向）および前後方向（図４に示すＺ軸方向）の３軸方向のそれぞれで加速度を検知する。
【００６７】
なお、図３に示した第１コントローラ３４および図４に示した第２コントローラ３６の形状や、ボタン（スイッチまたはスティック等）の形状、数および設置位置等は一例であり、他の形状、数および設置位置等に適宜変更され得る。
【００６８】
また、コントローラ１４の電源は、第１コントローラ３４内に取替可能に収容されるバッテリ（図示せず）によって与えられる。第２コントローラ３６には、コネクタ３４ａ、コネクタ３６ｂおよびケーブル３６ａを介してこの電源が供給される。
【００６９】
図５には、第１コントローラ３４と第２コントローラ３６とが接続されたときのコントローラ１４の電気的構成の一例が示される。第１コントローラ３４は、その内部に通信部９８を備え、通信部９８には、操作部８２、加速度センサ８６、撮像情報演算部８８およびコネクタ３４ａが接続される。操作部８２は、上述の操作ボタンないし操作スイッチ８２ａ‐８２ｉを示す。操作部８２が操作されると、その操作信号（キー情報）が通信部９８に与えられる。加速度センサ８６が検出した加速度を示すデータは、通信部９８へ出力される。加速度センサ８６は、たとえば最大２００フレーム／秒程度のサンプリング周期を有する。ただし、フレームは、画面更新単位時間（１／６０秒）である。
【００７０】
撮像情報演算部８８が取得したデータもまた通信部９８に出力される。撮像情報演算部８８は、赤外線フィルタ１００、レンズ１０２、撮像素子１０４および画像処理回路１０６によって構成される。赤外線フィルタ１００は、第１コントローラ３４の前方の光入射口９０から入射する光から赤外線のみを通過させる。上述したように、モニタ３０の表示面近傍（周辺）に配置されるセンサバー４４のマーカ４４ｍおよび４４ｎは、モニタ３０の前方に向かって赤外光を出力する赤外ＬＥＤである。したがって、赤外線フィルタ１００を設けることによってマーカ４４ｍおよび４４ｎの画像をより正確に撮像することができる。レンズ１０２は、赤外線フィルタ１００を透過した赤外線を集光して撮像素子１０４へ出射する。撮像素子１０４は、たとえばＣＭＯＳセンサあるいはＣＣＤのような固体撮像素子であり、レンズ１０２によって集光された赤外線を撮像する。したがって、撮像素子１０４は、赤外線フィルタ１００を通過した赤外線だけを撮像して画像データを生成する。以下では、撮像素子１０４によって撮像された画像を撮像画像と呼ぶ。撮像素子１０４によって生成された画像データは、画像処理回路１０６で処理される。画像処理回路１０６は、撮像画像内における撮像対象（マーカ４４ｍおよび４４ｎ）の位置を算出し、所定時間（たとえば１フレーム）毎に、当該位置を示す各座標値を含むマーカ座標データを通信部９８に出力する。なお、画像処理回路１０６における処理については後述する。
【００７１】
コネクタ３４ａには、第２コントローラ３６から延びるケーブル３６ａのコネクタ３６ｂが接続される。コネクタ３６ｂには、第２コントローラ３６の操作部９４および加速度センサ９６が接続される。操作部９４は、上述のアナログジョイスティック９４ａおよび操作ボタン９４ｂ、９４ｃを示す。操作部９４が操作されると、その操作信号がケーブル３６ａ、コネクタ３６ｂおよびコネクタ３４ａ等を介して通信部９８に与えられる。また、加速度センサ９６も、加速度センサ８６と同様のサンプリング周期を有しており、検出された加速度を示すデータを通信部９８に与える。
【００７２】
通信部９８は、マイクロコンピュータ（マイコン）１０８、メモリ１１０、無線モジュール７８およびアンテナ１１２を含む。マイコン１０８は、処理の際にメモリ１１０を記憶領域（作業領域やバッファ領域）として用いながら、無線モジュール７８を制御して、取得したデータをゲーム装置１２に送信したりゲーム装置１２からのデータを受信したりする。
【００７３】
第１コントローラ３４の操作部８２、加速度センサ８６および撮像情報演算部８８ならびに第２コントローラ３６の操作部９４および加速度センサ９６からマイコン１０８へ出力されたデータは、一時的にメモリ１１０に格納される。通信部９８からゲーム装置１２のＢｌｕｅｔｏｏｔｈ通信ユニット７６への無線送信は所定の周期毎に行われる。なお、ゲームの処理は１／６０秒を単位として行われることが一般的であるので、第１コントローラ３４からの送信はそれと同等かそれより短い周期で行うことが必要となる。マイコン１０８は、ゲーム装置１２への送信タイミングが到来すると、メモリ１１０に格納されている操作部８２および９４の操作データ、加速度センサ８６および９６の加速度データならびに撮像情報演算部８８のマーカ座標データを含むデータを、コントローラデータとして無線モジュール７８へ出力する。無線モジュール７８は、Ｂｌｕｅｔｏｏｔｈのような近距離無線通信技術を用いて、所定周波数の搬送波をコントローラデータで変調し、その微弱電波信号をアンテナ１１２から放射する。つまり、コントローラデータは、無線モジュール７８で微弱電波信号に変調されて第１コントローラ３４から送信される。微弱電波信号はゲーム装置１２側のＢｌｕｅｔｏｏｔｈ通信ユニット７６で受信される。受信された微弱電波信号について復調や復号を行うことによって、ゲーム装置１２はコントローラデータを取得することができる。ゲーム装置１２のＣＰＵ４６は、コントローラ１４から取得したコントローラデータに基づいてゲーム処理を行う。
【００７４】
なお、加速度センサ８６および９６から出力される加速度の信号に基づいて、ゲーム装置１２のプロセッサ（例えばＣＰＵ４６）またはコントローラ１４のプロセッサ（例えばマイコン１０８）などのコンピュータが処理を行うことによって、コントローラ１４に関するさらなる情報を推測または算出（判定）することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。例えば、加速度センサ８６および９６を搭載する第１コントローラ３４および第２コントローラ３６が静的な状態であることを前提としてコンピュータ側で処理する場合（すなわち、加速度センサ８６および９６によって検出される加速度が重力加速度のみであるとして処理する場合）、第１コントローラ３４および第２コントローラ３６が現実に静的な状態であれば、検出された加速度に基づいて第１コントローラ３４および第２コントローラ３６の姿勢が重力方向に対して傾いているか否か又はどの程度傾いているかをそれぞれ知ることができる。具体的には、加速度センサ８６および９６の検出軸が鉛直下方向を向いている状態を基準としたとき、１Ｇ（重力加速度）がかかっているか否かだけで、第１コントローラ３４および第２コントローラ３６がそれぞれ傾いているか否かを知ることができるし、その大きさによってどの程度傾いているかも知ることができる。また、多軸加速度センサが適用される場合には、さらに各軸の加速度の信号に対して処理を施すことによって、第１コントローラ３４および第２コントローラ３６がそれぞれ重力方向に対してどの程度傾いているかをより詳細に知ることができる。この場合において、加速度センサ８６および９６からの出力に基づいて、コンピュータが第１コントローラ３４および第２コントローラ３６の傾き角度のデータを算出する処理を行ってもよいが、当該傾き角度のデータを算出する処理を行うことなく、加速度センサ８６および９６からの出力に基づいて、おおよその傾き具合を推定するような処理としてもよい。このように、加速度センサ８６および９６をコンピュータと組み合わせて用いることによって、第１コントローラ３４および第２コントローラ３６の傾き、姿勢または位置を判定することができる。
【００７５】
一方、加速度センサ８６および９６が動的な状態であることを前提とする場合には、重力加速度成分に加えて加速度センサ８６および９６の動きに応じた加速度を検出するので、重力加速度成分を所定の処理により除去すれば、動き方向などを知ることができる。具体的には、加速度センサ８６および９６を備える第１コントローラ３４および第２コントローラ３６がユーザの手で動的に加速されて動かされる場合に、加速度センサ８６および９６によって生成される加速度信号を上記コンピュータによって処理することによって、第１コントローラ３４および第２コントローラ３６のさまざまな動きおよび／または位置を算出することができる。なお、加速度センサ８６および９６が動的な状態であることを前提とする場合であっても、加速度センサ８６および９６の動きに応じた加速度を所定の処理により除去すれば、重力方向に対する傾きを知ることが可能である。他の実施例では、加速度センサ８６および９６は、信号をマイコン１０８に出力する前に内蔵の加速度検出手段から出力される加速度信号に対して所望の処理を行うための、組込み式の信号処理装置または他の種類の専用の処理装置を備えていてもよい。例えば、組込み式または専用の処理装置は、加速度センサ８６および９６が静的な加速度（例えば、重力加速度）を検出するためのものである場合、検知された加速度信号をそれに相当する傾斜角（あるいは、他の好ましいパラメータ）に変換するものであってもよい。
【００７６】
このゲームシステム１０では、ユーザがコントローラ１４を動かすことによってゲームに対する操作または入力を行うことができる。ゲームをプレイする際には、たとえば図６に示すように、ユーザは、その右手で第１コントローラ３４を持ち、その左手で第２コントローラ３６を持つ。上述のように、この実施例では、第１コントローラ３４には３軸方向の加速度を検出する加速度センサ８６が内蔵され、第２コントローラ３６にも同様の加速度センサ９６が内蔵されている。第１コントローラ３４および第２コントローラ３６がそれぞれユーザによって動かされると、加速度センサ８６および加速度センサ９６によって、それぞれのコントローラ自身の動きを示す加速度値が検出される。ゲーム装置１２では、当該検出された加速度値に応じてゲーム処理が実行され得る。
【００７７】
また、第１コントローラ３４には撮像情報演算部８８が設けられるので、ユーザは第１コントローラ３４をポインティングデバイスとして使用して操作を行うことができる。この場合、ユーザは、第１コントローラ３４の先端面（光入射口９０）がマーカ４４ｍおよび４４ｎの方を向く状態で第１コントローラ３４を把持する。ただし、図１から分かるように、マーカ４４ｍおよび４４ｎは、モニタ３０の画面の所定の１辺（上辺または下辺）の近傍に、当該所定の１辺に対して平行に配置されている。この状態で、ユーザは、第１コントローラ３４自体を動かして、第１コントローラ３４が指示する画面上の位置を変更したり、第１コントローラ３４と各マーカ４４ｍおよび４４ｎとの距離を変更したりすることによって、ゲーム操作を行うことができる。
【００７８】
図７は、マーカ４４ｍおよび４４ｎと第１コントローラ３４の視野角を説明するための図である。図７に示すように、マーカ４４ｍおよび４４ｎは、それぞれ、視野角αの範囲で赤外光を放射する。また、撮像情報演算部８８の撮像素子１０４は、第１コントローラ３４の視線方向（図３に示すＺ軸方向）を中心とした視野角βの範囲で入射する光を受光することができる。たとえば、マーカ４４ｍおよび４４ｎの視野角αは、共に３４°（半値角）であり、一方、撮像素子１０４の視野角βは４２°である。ユーザは、撮像素子１０４が２つのマーカ４４ｍおよび４４ｎからの赤外光を受光することが可能な位置および向きとなるように、第１コントローラ３４を把持する。具体的には、撮像素子１０４の視野角βの中に少なくとも一方のマーカ４４ｍまたは４４ｎが存在し、かつ、マーカ４４ｍおよび４４ｎの少なくとも一方の視野角αの中に第１コントローラ３４が存在する状態となるように、ユーザは第１コントローラ３４を把持する。この状態にあるとき、第１コントローラ３４は、マーカ４４ｍおよび４４ｎの少なくとも一方を検知することができる。ユーザは、この状態を満たす範囲で第１コントローラ３４の位置および向きを変化させることによってゲーム操作を行うことができる。なお、マーカ４４ｍおよび４４ｎのいずれか一方のみが検出される場合には、たとえば、直前の２つのマーカ４４ｍおよび４４ｎを検出したデータを利用して、検出されない他方のマーカの代わりに仮のマーカ座標を設定することによって、第１コントローラ３４の指示位置を算出することができる。
【００７９】
なお、第１コントローラ３４の位置および向きがこの範囲外となった場合、第１コントローラ３４の位置および向きに基づいたゲーム操作を行うことができなくなる。したがって、上記範囲は「操作可能範囲」と呼ばれる。
【００８０】
操作可能範囲内で第１コントローラ３４が把持される場合、撮像情報演算部８８によってマーカ４４ｍおよび４４ｎの画像が撮像される。すなわち、撮像素子１０４によって得られる撮像画像には、撮像対象であるマーカ４４ｍおよび４４ｎの画像（対象画像）が含まれる。図８は、対象画像を含む撮像画像の一例を示す図である。対象画像４４ｍ’および４４ｎ’を含む撮像画像の画像データを用いて、画像処理回路１０６は、各マーカ４４ｍおよび４４ｎの撮像画像における位置を表す座標（マーカ座標）を算出する。
【００８１】
撮像画像の画像データにおいて対象画像４４ｍ’および４４ｎ’は高輝度部分として現れるため、画像処理回路１０６は、まず、この高輝度部分を対象画像の候補として検出する。次に、画像処理回路１０６は、検出された高輝度部分の大きさに基づいて、その高輝度部分が対象画像であるか否かを判定する。撮像画像には、２つの対象画像（マーカ画像）４４ｍ’および４４ｎ’だけではなく、窓からの太陽光や部屋の蛍光灯の光等のような他の画像が含まれていることがある。高輝度部分が対象画像であるか否かの判定処理は、マーカ４４ｍおよび４４ｎの画像４４ｍ’および４４ｎ’と、それ以外の画像とを区別し、対象画像を正確に検出するために実行される。撮像画像における対象画像４４ｍ’および４４ｎ’と他の画像との区別のために、撮像対象４４ｍおよび４４ｎは既知のものである必要があり、この実施例ではその大きさが予め決められるので、マーカ画像４４ｍ’および４４ｎ’の大きさを予測することができる。したがって、高輝度部分の大きさに基づいて、マーカ画像４４ｍ’および４４ｎ’の判定を行うことができる。具体的には、当該判定処理においては、検出された高輝度部分が、予め定められた所定範囲内の大きさであるか否かが判定される。そして、高輝度部分が所定範囲内の大きさである場合には、当該高輝度部分は対象画像を表すと判定される。逆に、高輝度部分が所定範囲内の大きさでない場合には、当該高輝度部分は対象画像以外の画像を表すと判定される。
【００８２】
さらに、上記の判定処理の結果、対象画像を表すと判定された高輝度部分について、画像処理回路１０６は当該高輝度部分の位置を算出する。具体的には、当該高輝度部分の重心位置を算出する。ここでは、当該重心位置の座標をマーカ座標と呼ぶ。また、重心位置は撮像素子１０４の解像度よりも詳細なスケールで算出することが可能である。ここでは、撮像素子１０４によって撮像された撮像画像の解像度が１２６×９６であるとし、重心位置は１０２４×７６８のスケールで算出されるものとする。つまり、マーカ座標は、（０，０）から（１０２４，７６８）までの整数値で表現される。
【００８３】
なお、図８に示すように、撮像画像における位置は、撮像画像の左上を原点Ｏとし、下向きをＹ軸正方向とし、右向きをＸ軸正方向とする座標系（撮像画像のＸＹ座標系）で表現されるものとする。
【００８４】
また、対象画像４４ｍ’および４４ｎ’が正しく検出される場合には、判定処理によって２つの高輝度部分が対象画像として判定されるので、２箇所のマーカ座標が算出される。画像処理回路１０６は、算出された２箇所のマーカ座標を示すデータ、つまり、撮像対象の位置を示す撮像対象データを通信部９８に出力する。出力された撮像対象データ（マーカ座標データ）は、上述したように、マイコン１０８によってコントローラデータに含められて、ゲーム装置１２に送信される。
【００８５】
ゲーム装置１２（ＣＰＵ４６）は、受信したコントローラデータからマーカ座標データを取得すると、このマーカ座標データに基づいて、モニタ３０の画面上における第１コントローラ３４の指示位置（指示座標）と、第１コントローラ３４からマーカ４４ｍおよび４４ｎまでの各距離とを算出することができる。なお、たとえば、第１コントローラ３４がモニタ３０の画面の左端を指示するとき、対象画像４４ｍ’および４４ｎ’は撮像画像の右側に検出され、第１コントローラ３４が画面の下端を指示するとき、対象画像４４ｍ’および４４ｎ’は撮像画像の上側に検出され、つまり、画面上の第１コントローラ３４の指示位置と逆側に撮像画像上のマーカ座標が検出される。したがって、第１コントローラ３４の指示位置の座標をマーカ座標から算出する際には、座標系が図８の撮像画像の座標系から画面上の位置を表すための座標系に適宜に変換される。
【００８６】
なお、この実施例では、第１コントローラ３４で撮像データに所定の演算処理を行ってマーカ座標を検出して、そのマーカ座標データをゲーム装置１２に送信するようにしている。しかし、他の実施例では、撮像データをコントローラデータとして第１コントローラ３４からゲーム装置１２に送信し、ゲーム装置１２のＣＰＵ４６が撮像データに所定の演算処理を行って、マーカ座標および指示位置の座標を検出するようにしてもよい。
【００８７】
また、撮像画像における対象画像間の距離は、第１コントローラ３４と、マーカ４４ｍおよび４４ｎとの距離に応じて変化する。マーカ４４ｍおよび４４ｎ間の距離、撮像画像の幅、撮像素子１０４の視野角βが予め決まっているので、２つのマーカ座標間の距離を算出することによって、ゲーム装置１２は第１コントローラ３４とマーカ４４ｍおよび４４ｎとの間の現在の距離を算出することができる。
【００８８】
以上のように構成されたゲームシステム１０では、ゲーム装置１２によってゲームプログラムが実行されることにより、対応する仮想ゲーム（この実施例では、リズムゲーム）をプレイすることができる。リズムゲームが開始されると、モニタ２８にメニュー画面（図示せず）が表示され、各プレイヤは使用するプレイヤオブジェクトを選択するとともに、再生（演奏）する１曲のＢＧＭを選択する。
【００８９】
このリズムゲームは、４人（４Ｐ）で協力してプレイする仮想ゲームであり、プレイヤが４人に満たない場合には、足りないプレイヤをコンピュータ（ＣＰＵ４０）が担当する。つまり、３人のプレイヤが存在する場合には、１人のプレイヤをコンピュータが担当し、２人のプレイヤが存在する場合には、２人のプレイヤをコンピュータが担当し、そして、１人のプレイヤが存在する場合には、３人のプレイヤをコンピュータが担当する。
【００９０】
プレイヤオブジェクトおよびＢＧＭの選択が終了すると、ＢＧＭの再生が開始される。すると、図９に示すようなゲーム画面１００がモニタ２８に表示される。図９に示すように、ゲーム画面１００には、ゲームフィールド１００ａが表示され、このゲームフィールド１００ａ内に、第１プレイヤ（１Ｐ）オブジェクト１０２ａ、第２プレイヤ（２Ｐ）オブジェクト１０２ｂ、第３プレイヤ（３Ｐ）オブジェクト１０２ｃおよび第４プレイヤ（４Ｐ）オブジェクト１０２ｄが表示される。ただし、ゲームフィールド１００ａは仮想ゲーム空間内に設けられる。
【００９１】
また、各プレイヤオブジェクト１０２ａ−１０２ｄには、足元を囲むようにリング状の指示画像１０４ａ−１０４ｄが表示されるとともに、１Ｐ−４Ｐの別が文字で表示される。図面では分かり難いが、指示画像１０４ａ−１０４ｄのそれぞれと、対応する１Ｐ−４Ｐの文字のそれぞれとは同じ色で描画され、プレイヤオブジェクト１０２ａ−１０２ｄに割り当てられた色が示される。たとえば、１Ｐに青色が割り当てられ、２Ｐの赤色が割り当てられ、３Ｐに緑色が割り当てられ、そして、４Ｐに黄色が割り当てられる。ただし、これは単なる一例であり、これに限定される必要はない。また、図面では色を付すことができないため、指示画像１０４ａ−１０４ｄ、１Ｐ−４Ｐの文字および後述するカラーボールオブジェクト１１０ａには、模様を付して示してある。したがって、模様が同じであれば、同じ色であることを意味する。
【００９２】
さらに、ゲームフィールド１００ａ内には、発射台オブジェクト１０６が表示され、この右側に連結してベルトコンベアオブジェクト１０８が表示される。図１２に示すように、ベルトコンベアオブジェクト１０８上には、発射台オブジェクト１０６に移送されるボールオブジェクト１１０およびアイテムオブジェクト１１２が載置される。このボールオブジェクト１１０およびアイテムオブジェクト１１２は、ＢＧＭの再生に合わせて、所定のタイミング（発射タイミング）で、発射台オブジェクト１０６から発射される。
【００９３】
図９では分かり難いが、ベルトコンベアオブジェクト１０８上には、ボールオブジェクト１１０およびアイテムオブジェクト１１２が、発射される順番（左端から順）に並んで配置される。この実施例では、ボールオブジェクト１１０およびアイテムオブジェクト１１２は、発射タイミングの所定時間（この実施例では、２秒）前に、ベルトコンベアオブジェクト１０８上の最後尾（右端）に配置され、発射タイミング（２秒後）までの間に、発射台オブジェクト１０６に向けてベルトコンベアオブジェクト１０８上を次第に左方向に移動される。そして、上述したように、発射タイミングで、ボールオブジェクト１１０およびアイテムオブジェクト１１２は発射台オブジェクト１０６の発射口１０６ａから発射される。
【００９４】
ここで、ボールオブジェクト１１０およびアイテムオブジェクト１１２について説明する。図１０（Ａ）−図１０（Ｃ）には、仮想ゲーム中の任意の時点における、ベルトコンベアオブジェクト１０８の一部、およびその上に配置されるボールオブジェクト１１０、アイテムオブジェクト１１２の例が示される。図１０（Ａ）−図１０（Ｃ）に示すように、ボールオブジェクト１１０は、バレーボールを模したオブジェクトであり、プレイヤオブジェクト１０２ａ−１０２ｄに割り当てられた４つの色のいずれか１つと同じ色が付されたカラーボールオブジェクト１１０ａ、およびその４つの色がすべて付されたレインボーボールオブジェクト１１０ｂを含む。
【００９５】
ただし、図１０（Ａ）、図１０（Ｃ）では（図９も同様）、簡単のため、レインボーボールオブジェクト１１０ｂは、白色で示してある。
【００９６】
また、図１０（Ａ）−図１０（Ｃ）に示すように、アイテムオブジェクト１１２は、コインオブジェクト１１２ａ、バナナオブジェクト１１２ｂ、および鉄球オブジェクト１１２ｃを含む。
【００９７】
図９に戻って、ボールオブジェクト１１０は、ＢＧＭに合わせて発射され、ゲームフィールド１００ａ内を飛行する。プレイヤオブジェクト１０２ａ−１０２ｄがボールオブジェクト１１０を捕球ないしレシーブした場合には、その様子が表示された後に、ボールオブジェクト１１０はゲームフィールド１００ａから消去される。ただし、プレイヤオブジェクト１０２ａ−１０２ｄがボールオブジェクト１１０を捕球ないしレシーブしなかった場合には、ボールオブジェクト１１０は、地面に着地すると、所定時間（たとえば、２秒）進行方向にそのまま１回または２回バウンドした後に、ゲームフィールド１００ａから消去される。
【００９８】
また、コインオブジェクト１１２ａ、バナナオブジェクト１１２ｂおよび鉄球オブジェクト１１２ｃは、ボールオブジェクト１１０と同様に、発射台オブジェクト１０６からＢＧＭに合わせて発射され、ゲームフィールド１００ａ内を飛行する。コインオブジェクト１１２ａは、地面に着地すると、所定時間（たとえば、３秒）残留し、その後ゲームフィールド１００ａから消去される。また、バナナオブジェクト１１２ｂは、地面に着地すると、所定時間（たとえば、４秒）残留し、その後ゲームフィールド１００ａから消去される。さらに、鉄球オブジェクト１１２ｃは、地面に着地すると、所定時間（たとえば、２秒）進行方向にそのまま１回または２回バウンドした後に、ゲームフィールド１００ａから消去される。
【００９９】
また、ゲーム画面１００では、スコアを表示する表示領域１２０が画面の右上部に設けられ、“／”を挟んで、左側が現在のスコアを示し、右側がこの仮想ゲームをクリアするためのノルマを示す。さらに、ゲーム画面１００では、捕球ないしレシーブの連続回数（ＣＯＭＢＯ）を表示する表示領域１２２が、画面の右側であって、スコアの表示領域１２０の下方に設けられる。
【０１００】
上述したように、ボールオブジェクト１１０が発射されると、その着弾点を含む所定範囲（着弾点を中心とする所定長さの半径を有する円）を示す指標（着弾マーカ）１１４が表示される。図面では、分かり難いが、着弾マーカ１１４は、対応するカラーボールオブジェクト１１０ａまたはレインボーボールオブジェクト１１０ｂに付された色と同じ色が付される。したがって、プイレヤは、着弾マーカ１１４の色を見て、捕球ないしレシーブするべきボールオブジェクト１１０の着弾点を知ることができる。
【０１０１】
また、アイテムオブジェクト１１２のうち、バナナオブジェクト１１２ｂや鉄球オブジェクト１１２ｃが発射されると、その着弾点を含む所定範囲（着弾点を中心とする所定長さの半径を有する円）を示す黒色の着弾マーカ１１６が表示される。この実施例では、バナナオブジェクト１１２ｂや鉄球オブジェクト１１２ｃに対応して、黒色の着弾マーカ１１６を表示するようにしてあるが、プレイヤオブジェクト１０２ａ−１０２ｄおよびボールオブジェクト１１０に付される色と区別できるのであれば、他の色が付されてもよい。ただし、図９に示すゲーム画面１００では、バナナオブジェクト１１２ｂは地面に着地しているため、着弾マーカ１１６は表示されない（消去されている）。
【０１０２】
各プレイヤの操作に従って、プレイヤオブジェクト１０２ａ−１０２ｄの各々は、ゲームフィールド１００ａ内を移動され、ボールオブジェクト１１０を捕球またはレシーブしたり、コインオブジェクト１１２ａを取得したり、バナナオブジェクト１１２ｂまたは鉄球オブジェクト１１２ｃを避けたりする。各プレイヤは、図６に示したように、第１コントローラ３４および第２コントローラ３６を把持する。したがって、図１では省略したが、プレイヤの人数（この実施例では、最大４人）に応じた数だけ、第１コントローラ３４と第２コントローラ３６とが設けられる。
【０１０３】
各プレイヤは、左手に把持した第２コントローラ３６のアナログジョイスティック９４ａを操作することにより、このアナログジョイスティック９４ａを傾けた方向（上下左右および斜め方向）に、対応するプレイヤオブジェクト１０２ａ−１０２ｄを移動させることができる。したがって、プレイヤオブジェクト１０２ａ−１０２ｄは、ボールオブジェクト１１０ａが落下地点（着弾点）に到達するときに、プレイヤオブジェクト１０２ａ−１０２ｄを中心とする水平方向の所定範囲（以下、「第１所定範囲」という）内に当該ボールオブジェクト１１０ａの着弾点が含まれる場合には、当該ボールオブジェクト１１０を捕球する。この第１所定範囲は、上述した着弾マーカ１１４と同じ大きさであり、したがって、プレイヤオブジェクト１０２ａ−１０２ｄが着弾マーカ１１４上に存在する場合には、ボールオブジェクト１１０を捕球することができる。ただし、着弾点に到達する時（タイミング）のみで捕球したかどうかを判断すると、きわめて短い時間（１フレーム）での判断となるため、ほとんどの場合に捕球できないことになってしまう。このため、この実施例では、捕球（後述するレシーブの場合も同じ）したかどうかについては、所定期間内（着弾するタイミングの前５フレームから着弾するタイミングまでの期間）で判断するようにしてある。
【０１０４】
また、プレイヤは、右手に把持した第１コントローラ３４を（上下または左右の方向などに）振ることにより、対応するプレイヤオブジェクト１０２ａ−１０２ｄを、所定のルールで決定された目標のボールオブジェクト１１０の着弾点に向けてジャンプさせて回転レシーブさせることができる。詳細な説明は省略するが、回転レシーブさせる場合には、同じ距離をアナログジョイスティック９４ａで移動させるよりも、短い時間で移動させることができる。
【０１０５】
ここで、所定のルールは、プレイヤオブジェクト１０２ａ−１０２ｄが目標とするボールオブジェクト１１０を決定するためのルールである。具体的には、プレイヤオブジェクト１０２ａ−１０２ｄは、対応するカラーボールオブジェクト１１０ａがレシーブ可能範囲に有る場合には、当該カラーボールオブジェクト１１０ａを目標に設定する。ただし、レシーブ可能範囲とは、プレイヤオブジェクト１０２ａ−１０２ｄがボールオブジェクト１１０を回転レシーブ可能な最大距離で決定される範囲であり、プレイヤオブジェクト１０２ａ−１０２ｄを中心とする水平方向の所定範囲（以下、「第２所定範囲」という）であって、第１所定範囲よりも大きく設定される。また、プレイヤオブジェクト１０２ａ−１０２ｄは、対応するカラーボールオブジェクト１１０ａがレシーブ可能範囲内に複数存在する場合には、先に着弾するカラーボールオブジェクト１１０ａを目標に設定する。さらに、プレイヤオブジェクト１０２ａ−１０２ｄは、対応するカラーボールオブジェクト１１０ａがレシーブ可能範囲内に無い場合には、最寄りのボールオブジェクト１１０を目標に設定する。
【０１０６】
つまり、図１１に示すように、プレイヤオブジェクト１０２ａ−１０２ｄは、ボールオブジェクト１１０を捕球するための第１所定範囲（半径Ｄ１）と、ボールオブジェクト１１０を回転レシーブするための第２所定範囲（半径Ｄ２＜半径Ｄ１）とを有している。ただし、図１１では、プレイヤオブジェクト１０２ａ−１０２ｄを真上方向から見た図である。したがって、プレイヤオブジェクト１０２ａ−１０２ｄがボールオブジェクト１１０を捕球ないしレシーブしたかどうかを判断する場合には、場合を分けて判断される。
【０１０７】
たとえば、プレイヤが第１コントローラ３４を振っていない場合には、プレイヤオブジェクト１０２ａ−１０２ｄがボールオブジェクト１１０を捕球したかどうかが判断される。具体的には、プレイヤオブジェクト１０２ａ−１０２ｄの位置（現在位置）Ｐから半径Ｄ１で決定される第１所定範囲内に当該ボールオブジェクト１１０の着弾点が設定されているかどうかが判断される。第１所定範囲内にボールオブジェクト１１０の着弾点が設定されている場合には、当該ボールオブジェクト１１０が捕球されたことが判断される。
【０１０８】
一方、プレイヤが第１コントローラ３４を振った場合には、プレイヤオブジェクト１０２ａ−１０２ｄがボールオブジェクト１１０を回転レシーブしたかどうかが判断される。具体的には、プレイヤオブジェクト１０２ａ−１０２ｄの位置Ｐから判定Ｄ２で決定される第２所定範囲内に当該ボールオブジェクト１１０の着弾点が設定されているかどうかが判断される。第２所定範囲内にボールオブジェクト１１０の着弾点が設定されている場合には、当該ボールオブジェクト１１０がレシーブされたことが判断される。
【０１０９】
なお、この実施例では、操作性を考慮して、第２コントローラ３６のアナログジョイスティック９４ａを用いてプレイヤオブジェクト１０２ａ−１０２ｄの移動（歩行ないし走行）を制御し、第１コントローラ３４を振ることによりプレイヤオブジェクト１０２ａ−１０２ｄを回転レシーブさせるようにしてあるが、これに限定される必要はない。たとえば、第１コントローラ３４のみを横持ちで使用する場合には、十字キー８２ａを用いてプレイヤオブジェクト１０２ａ−１０２ｄの移動を制御し、２ボタン８２ｃを用いてプレイヤオブジェクト１０２ａ−１０２ｄに回転レシーブさせるようにしてもよい。
【０１１０】
また、この実施例では、第１コントローラ３４を振ることにより、プレイヤオブジェクト１０２ａ−１０２ｄに回転レシーブさせるようにしてあるが、単に速く移動させたり、身体の一部が延びたり、飛び道具を使ったりするようにしてもよい。ただし、飛び道具を用いる場合には、仮想ゲーム内では、当該飛び道具がボールオブジェクト１１０に当ったことにより、レシーブしたことが判断される。
【０１１１】
また、ボールオブジェクト１１０の各々には、所定のメロディ音が割り当てられており、プレイヤオブジェクト１０２ａ−１０２ｄがボールオブジェクト１１０を捕球ないしレシーブすると、当該メロディ音がＢＧＭに加えて再生される。つまり、ボールオブジェクト１１０の捕球ないしレシーブを成功したことを示す効果音として、所定のメロディ音が出力される。この実施例では、メロディ音は、所定長さ（０．１５秒−０．２５秒程度）のＢＧＭについての主旋律の音（ＢＧＭでは使用されていない楽器についての音）である。ただし、プレイヤオブジェクト１０２ａ−１０２ｄが、自身に割り当てられた色と同じ色の付されたカラーボールオブジェクト１１０ａを捕球ないしレシーブした場合には、当該カラーボールオブジェクト１１０ａに割り当てられたメロディ音が正しい音程で再生される。このとき、たとえば、１０ポイント獲得となり、スコアに加算される。
【０１１２】
また、レインボーボールオブジェクト１１０ｂについては、いずれのプレイヤオブジェクト１０２ａ−１０２ｄが捕球ないしレシーブした場合であっても、当該レインボーボールオブジェクト１１０ｂに割り当てられたメロディ音が正しい音程で再生れる。このとき、たとえば、５０ポイント獲得となり、スコアに加算される。
【０１１３】
一方、プレイヤオブジェクト１０２ａ−１０２ｄが異なる色が付されたカラーボールオブジェクト１１０ａを捕球ないしレシーブした場合には、当該カラーボールオブジェクト１１０ａに割り当てられたメロディ音が異なる音程で再生される。この場合にも、たとえば、１０ポイント獲得となり、スコアに加算される。ただし、コンピュータによって操作されるプレイヤオブジェクト１０２ａ−１０２ｄが、プレイヤが操作するプレイヤオブジェクト１０２ａ−１０２ｄに割り当てられた色のカラーボールオブジェクト１１０を捕球ないしレシーブした場合には、ポイントは加算されない。
【０１１４】
また、ボールオブジェクト１１０が、いずれのプレイヤオブジェクト１０２ａ−１０２ｄにも捕球ないしレシーブされずに、地面に落下した場合には、当該ボールオブジェクト１１０に割り当てられたメロディ音は再生されない。この場合には、失敗を示す効果音（たとえば、不協和音）が再生され、また、たとえば、１０ポイント減点となり、スコアから減算される。
【０１１５】
また、プレイヤオブジェクト１０２は、空中を飛行する、地面に残留するまたは地面をバウンドする、アイテムオブジェクト１１２（コインオブジェクト１１２ａ、バナナオブジェクト１１２ｂおよび鉄球オブジェクト１１２ｃ）に触れると、ポイントを獲得したり、ポイントを失ったり、所定の効果が与えられたりする。この実施例では、プレイヤオブジェクト１０２がコインオブジェクト１１２ａに触れると、当該コインオブジェクト１１２ａに割り当てられた１０ポイントがスコアに加算される。また、プレイヤオブジェクト１０２ａ−１０２ｄがバナナオブジェクト１１２ｂに触れると、それによって、プイレオブジェクト１０２ａ−１０２ｄは、転倒し、所定時間（たとえば、２秒）行動不能になる。たとえば、プレイヤオブジェクト１０２ａ−１０２ｄは、バナナオブジェクト１１２ｂに触れると、転倒し、ダメージを受けて、行動不能になっている様子のアニメーションで表示される。さらに、プレイヤオブジェクト１０２ａ−１０２ｄが鉄球オブジェクト１１２ｃに触れると、それによって、プレイヤオブジェクト１０２ａ−１０２ｄは、ダメージを受け、５０ポイント減算される。また、プレイヤオブジェクト１０２ａ−１０２ｄが鉄球オブジェクト１１２ｃに触れた（当った）場合には、間違って捕球ないしレシーブしたと判定され、連続回数が０に（リセット）される。たとえば、プレイヤオブジェクト１０２ａ−１０２ｄは、鉄球オブジェクト１１２ｃに触れると、ダメージを受けた様子のアニメーションで表示される。
【０１１６】
なお、上述したアイテムオブジェクト１１２は、単なる一例であり、他の種類のアイテムオブジェクト１１２を用意しておき、ポイントを加算または減算したり、プレイヤオブジェクト１０２ａ−１０２ｄに所定の効果を与えたりしてもよい。たとえば、宝石オブジェクトを取得した場合には、ボーナスポイントが加算されるようにしてもよい。また、爆弾オブジェクトの爆風によって、プレイヤオブジェクト１０２ａ−１０２ｄが吹き飛ばされるようにしてよい。このとき、さらにポイントが減算されてもよい。さらに、きのこのような食べ物のオブジェクトを取得すると、所定時間だけ、プレイヤオブジェクト１０２ａ−１０２ｄの大きさを変化（大または小）させたり、プレイヤオブジェクト１０２ａ−１０２ｄの移動速度を速くさせたり、プレイヤオブジェク１０２ａ−１０２ｄをバナナオブジェクト１１２ｂや鉄球オブジェクト１１２ｃなどのお邪魔アイテムの影響を受けない無敵状態にさせたりしてもよい。
【０１１７】
また、プレイヤオブジェクト１０２ａ−１０２ｄが連続してボールオブジェクト１１０を捕球ないしレシーブすると、その連続回数がカウントされる。ただし、コンピュータ（以下、「コンピュータプレイヤ」ということがある）の操作するプレイヤオブジェクト１０２ａ−１０２ｄが、自身に割り当てられた色とは異なる色のカラーボールオブジェクト１１０ａをレシーブした場合には、連続回数は加算されない。また、プレイヤオブジェクト１０２ａ−１０２ｄがボールオブジェクト１１０を捕球ないしレシーブしないと、つまり失敗すると、連続回数はリセットされる。この実施例では、捕球ないしレシーブを継続すると、その連続回数に応じて、豪華さが増すように、ＢＧＭが変化される。一方、捕球ないしレシーブに失敗すると、豪華さが減るように、一気にＢＧＭが変化される。つまり、ゲームプレイの結果に応じて、この実施例では、ＢＧＭのトラック（パート）の数および音量の少なくとも一方を変化させるようにしてある。
【０１１８】
各ＢＧＭは、複数のパートで構成されている。図示は省略するが、ＢＧＭのデータ（ＢＧＭデータ）は、複数（この実施例では６個）のトラックデータで構成され、さらに、各トラックデータは、１または複数のパートについての楽譜データで構成される。ＢＧＭデータを構成する複数のトラックデータのうちの基本となる４つのトラックデータは、各プレイヤの担当（演奏）するパート（トラック）に対応している。この実施例では、各ＢＧＭの豪華さの度合い（豪華度）が、「最低」、「普通」、「グレート」、および「エクセレント」の４段階で変化される。具体的には、図１２に示すＢＧＭの変化テーブルに従って、豪華度が変化される。
【０１１９】
ここで、各ＢＧＭは、基本となるＢＧＭ１と、追加的に再生されるＢＧＭ２、ＢＧＭ３とによって構成される。ＢＧＭ１は、ＢＧＭが有する６つのトラックのうち、基本となる４つのトラックによって構成される。ＢＧＭ２は、６つのトラックから基本となる４つのトラックを除いた２つのトラックのうちの１つのトラックによって構成され、ＢＧＭ３は、残りの１つのトラックによって構成される。
【０１２０】
図１２に示す変化テーブルに従えば、豪華度が「普通」である場合には、ＢＧＭ１が１００％の音量で再生される。また、豪華度が「グレート」である場合には、１００％の音量で再生されるＢＧＭ１に加えて、ＢＧＭ２が１００％の音量で再生される。さらに、豪華度が「エクセレント」である場合には、１００％の音量で再生されるＢＧＭ１およびＢＧＭ２に加えて、ＢＧＭ３が１００％の音量で再生される。ただし、豪華度が「最低」である場合は、ＢＧＭ１が３３％の音量で再生される。
【０１２１】
詳細な説明は省略するが、ここで説明した音量は、カラーテレビ受像機で設定される音量では無く、ゲーム装置１２の内部で設定される音量である。たとえば、ＤＳＰ５２から出力されるオーディオデータのレベルが調整される。または、オーディオデータに対応するアナログの音声信号のレベルがＡＶ  ＩＣ５６で調整され、スピーカ３０に出力される。
【０１２２】
なお、この実施例では、豪華度が「グレート」や「普通」である場合に、「最低」に変化すると、トラック（パート）数が減らされたり（ＢＧＭ１＋ＢＧＭ２からＢＧＭ１に変化されたり）、音量が低く（１００％から３３％に低減）されたりするようにして、トラック（パート）数と音量との両方が変化されることがある。しかし、豪華度が「普通」から「グレート」に変化されたり、「グレート」から「エクセレント」に変化されたりする場合には、ＢＧＭ２やＢＧＭ３が追加的に再生されるだけである。つまり、トラック（パート）数が増加するだけであり、音量は変化されない。したがって、このような場合にも、音量を変化させるようにしてもよい。たとえば、豪華度が「普通」の場合のＢＧＭ１の音量を７０％に設定したり、豪華度が「グレート」の場合のＢＧＭ２の音量を５０％−７０％に設定したりすることが考えられる。
【０１２３】
また、この実施例では、ＢＧＭに対応して、図１３（Ａ）に示すような配球情報が設けられる。図示は省略するが、複数のＢＧＭのそれぞれに対応して、個別に配球情報が設けられる。この配球情報は、ＢＧＭに合わせて設定されたメロディ音を再生するタイミングおよび当該メロディ音が割り当てられるボールオブジェクト１１０やメロディ音が割り当てられていないアイテムオブジェクト１１２の種類や移動制御についての情報（オブジェクト情報）を含む。
【０１２４】
図１３（Ａ）に示すように、配球情報は、４つのトラック（トラック０、トラック１、トラック２、トラック３）を含む。各トラックには、ＢＧＭの再生開始（０フレーム）から再生終了までに対応して、複数の桝目が時系列に並んで設けられる。各桝目には、オブジェクト情報を設定することが可能である。したがって、メロディ音を鳴らしたいタイミングには、ボールオブジェクト１１０についてのオブジェクト情報が記述される。また、アイテムを配置させたいタイミングには、アイテムオブジェクト１１２についてのオブジェクト情報が記述される。図１３（Ａ）では、オブジェクト情報が記述されている桝目に斜線を付してあり、空白の桝目にはオブジェクト情報は記述されていない。
【０１２５】
上述したように、桝目にはオブジェクト情報が設定されるため、１つの桝目の長さはメロディ音の長さに相当する。この実施例では、ＢＧＭの演奏速度に応じて、メロディ音の長さは所定時間（０．１５秒（約１０〜１１フレーム）−０．２５秒（１５フレーム））に設定される。
【０１２６】
図１３（Ｂ）は、オブジェクト情報の具体例が示される。オブジェクト情報は、再生タイミングフレーム、種別、飛行時間、最小距離、最大距離および特殊フラグを含む。再生タイミングフレームは、ボールオブジェクト１１０またはアイテムオブジェクト１１２が着弾点に到達するタイミングを示すフレームであって、ＢＧＭの再生開始（０フレーム）からのフレーム数が記述される。したがって、図１３（Ａ）に示した桝目の並び順は、ボールオブジェクト１１０およびアイテムオブジェクト１１２が着弾点に到達する順（到達順）に相当する。
【０１２７】
種別は、ボールオブジェクト１１０の場合には、当該ボールオブジェクト１１０が捕球ないしレシーブされたときに再生されるメロディ音についての識別情報が記述される。この実施例では、メロディ音の識別情報は、対応するデータについてのＩＤないしファイル名である。一方、アイテムオブジェクト１１２の場合には、種別として、アイテムの種類（コイン、バナナ、鉄球）が記述される。
【０１２８】
飛行時間は、ボールオブジェクト１１０またはアイテムオブジェクト１１２が発射されてから着弾点に到達するまでの時間であって、当該時間に相当するフレーム数が記述される。詳細な説明は省略するが、飛行時間は、３段階（６０フレーム、１２０フレーム、１８０フレーム）で設定される。
【０１２９】
最小距離および最大距離は、ボールオブジェクト１１０またはアイテムオブジェクト１１２の着弾点を決定する際の範囲を規定するための距離であって、ゲームフィールド１００ａすなわち仮想ゲーム空間における長さが記述される。ただし、最小距離および最大距離は、当該オブジェクト情報を含むトラックが割り当てられたプレイヤオブジェクト１０２ａ−１０２ｄの現在位置からの距離である。
【０１３０】
特殊フラグは、レインボーボールオブジェクト１１０ｂであるかどうかを判別するためのフラグであり、成立（オン）または不成立（オフ）が記述される。特殊フラグがオンである場合には、レインボーボールオブジェクト１１０ｂであり、特殊フラグがオフである場合には、当該オブジェクト情報を含むトラックが割り当てられたプレイヤオブジェクト１０２ａ−１０２ｄに割り当てられた色のボールオブジェクト１１０である。つまり、特殊フラグがオンである場合には、カラーボールオブジェクト１１０ａに代えて、レインボーボールオブジェクト１１０ｂが発射されるのである。
【０１３１】
上述したように、ボールオブジェクト１１０およびアイテムオブジェクト１１２は、飛行時間が３段階で設定されるため、到達順と発射順とが入れ替わる場合がある。また、この実施例では、発射タイミングの所定時間前に、ボールオブジェクト１１０およびアイテムオブジェクト１１２をベルトコンベアオブジェクト１０８上に配置するようにしてある。したがって、この実施例では、配球情報に基づいて、発射タイミングについてのテーブル（発射タイミングテーブル）を作成しておき、この発射タイミングテーブルに従って、ボールオブジェクト１１０およびアイテムオブジェクト１１２の発射を制御するようにしてある。
【０１３２】
図１４に示すように、発射タイミングテーブルは、発射タイミングフレームに対応して、配球情報のトラック番号および到達順が記述される。この発射タイミングテーブルは、配球情報に含まれるオブジェクト情報のみに着目して生成される。まず、各オブジェクト情報に含まれる再生タイミングフレームから飛行時間を減算した発射タイミングフレームが算出される。そして、発射タイミングフレームの早い順に、対応するオブジェクト情報が記述されたトラック番号および到達順が記述されるのである。
【０１３３】
ただし、図１４では、簡単のため、発射タイミングフレームをｆｎ（ｎ＝１、２、…、Ｎ）で示してあるが、実際には、ＢＧＭの再生開始からのフレーム数が記述される。また、トラック番号をＴ０−Ｔ３で示してあるが、Ｔは配球情報におけるトラックを意味する。
【０１３４】
この発射タイミングテーブルにしたがって、ボールオブジェクト１１０およびアイテムオブジェクト１１２がベルトコンベアオブジェクト１０８に配置されるとともに、発射台オブジェクト１０６から発射される。
【０１３５】
次に、発射されるボールオブジェクト１１０およびアイテムオブジェクト１１２（以下、これらを「オブジェクト１１０、１１２」ということがある）の移動制御について説明する。図１５（Ａ）は、ゲームフィールド１１０ａを真上から見た図解図である。オブジェクト１１０、１１２が発射される場合には、まず、到達位置すなわち着弾点（２次元平面上の点）が決定される。この着弾点は、対応するプレイヤオブジェクト１０２ａ−１０２ｄの位置（現在位置）Ｐに応じて決定される。ただし、対応するプレイヤオブジェクト１０２ａ−１０２ｄとは、当該オブジェクト１１０、１１２についてのオブジェクト情報が記述されたトラック０−トラック３が割り当てられたプレイヤオブジェクト１０２ａ−１０２ｄを意味する。
【０１３６】
まず、オブジェクト情報に記載の最小距離（半径ｒ）と最大距離（半径Ｒ）とによってドーナツ状の範囲（斜線を付して示す範囲）が規定される。このドーナツ状の範囲内において、任意（ランダム）に着弾点Ｂが決定される。ただし、この実施例では、水平面（ＸＹ平面）内における発射位置Ａは、発射台オブジェクト１０６の中心に固定的に設定されているものとする。着弾点Ｂが決定されると、発射位置Ａと着弾点Ｂとの距離（水平距離）ｄが算出される。具体的には、数１に従って算出される。ただし、水平面における発射位置Ａの座標を（Ｘ１，Ｙ１）とし、着弾点Ｂの座標を（Ｘ２，Ｙ２）とする。また、図１５（Ａ）に示すように、ワールド座標系において、横方向がＸ軸方向であり、縦方向がＹ軸方向であり、高さ方向がＺ軸方向である。また、右方向がＸ軸のプラス方向であり、下方向がＹ軸方向のプラス方向であり、紙面に対して垂直上向きがＺ軸のプラス方向である。
【０１３７】
［数１］
ｄ＝√｛（Ｘ１−Ｘ２）２＋（Ｙ１−Ｙ２）２｝
また、オブジェクト１１０、１１２の発射方向のうちの水平方向の角度φは、数２に従って算出される。ただし、発射位置Ａを通りＹ軸に平行に延びる直線Ｈ上を水平方向の中心（０度）とする。また、発射位置Ａから見て、直線Ｈの右側に開く角度φの符号をマイナスとし、直線Ｈの左側に開く角度φの符号をプラスとする。さらに、Ｌ（＝Ｘ２−Ｘ１）は、着弾点Ｂから直線Ｈに下ろした垂線の長さである。
【０１３８】
[数２]
φ＝ｓｉｎ−１（Ｌ／ｄ）
数１に従って距離ｄが算出されると、飛行時間ｔ（フレーム）が、上述したオブジェクト情報で与えられるため、数３−数５に示す斜方投射の物理計算に基づいて、数６に従って、オブジェクト１１０、１１２の垂直方向の角度θが算出される。さらに、角度θを数３に代入して、発射速度（初速度）ｖが算出される。ただし、ｈは高さ方向（Ｚ軸のプラス方向）の距離である。この実施例では、数５に示すように、オブジェクト１１０、１１２が最高点に達したときの高さｈを、オブジェクト１１０、１１２を発射する際に任意（ランダム）に決定するようにしてある。ただし、最高点の高さｈの範囲は予め決定されている。さらに、ｇは仮想ゲーム空間に設定されるＺ軸のマイナス方向の加速度（重力加速度に相当）である。
【０１３９】
[数３]
ｄ＝ｖ×ｃｏｓθ×ｔ
[数４]
ｈ＝ｖ×ｓｉｎθ×ｔ−１／２×ｇｔ２
[数５]
（ｖ×ｓｉｎθ）２＝２ｇｈ
数４の右辺の第２項を左辺に移行した後、数４の辺々を数３の辺々で割ると、数６に示すように、垂直方向の角度θが算出される。
【０１４０】
【数６】
0005745247.tif 000002
【０１４１】
ただし、図１５（Ｂ）に示すように、発射台オブジェクト１０６の発射位置Ａと着弾点Ｂとは、同一水平面内であり、地面よりも少し高い位置に設定される。これは、プレイヤオブジェクト１０２ａ−１０２ｄが、ボールオブジェクト１１０を捕球ないしレシーブしたときに、メロディ音を再生するようにしてあるためである。したがって、たとえば、発射位置Ａおよび着弾点Ｂの高さ方向の位置（Ｚ座標の値）は、プレイヤオブジェクト１０２ａ−１０２ｄの腰から膝の間の高さに設定される。
【０１４２】
なお、この実施例では、オブジェクト情報に、２つの距離（最小距離と最大距離）を設定しておき、それらによって規定される範囲内で着弾点Ｂを任意に決定するようにしたが、１つの距離のみを設定しておき、プレイヤオブジェクト１０２ａ−１０２ｄの位置と、その距離とよって規定される円内または円上の任意の点を着弾点Ｂに決定するようにしてもよい。このように、１つまたは２つの距離を設定する場合には、プレイヤオブジェクト１０２ａ−１０２ｄが捕球ないしレシーブが不可能な位置に着弾点Ｂが設定されるような不都合を回避することができる。また、プレイヤオブジェクト１０２ａ−１０２ｄの位置Ｐから距離を設定するので、着弾点Ｂを決定する範囲を簡単に設定することができる。ただし、オブジェクト情報に、距離を設定せずに、ゲームフィールド１０２ａ上の任意の点を着弾点Ｂに決定するようにしてもよい。
【０１４３】
また、この実施例では、オブジェクト１１０、１１２を発射する際に、最高点の高さｈを任意に決定するようにしてあるが、これに代えて、垂直方向の角度θを所定範囲（たとえば、１５度−８０度）内においてランダムに決定するようにしてもよい。このようにすれば、数３に従って、初速度ｖを簡単に算出することができる。
【０１４４】
図１６は図２に示したメインメモリ４２ｃ（４６）のメモリマップ５００の例を示す図解図である。図１６に示すように、メインメモリ４２ｃ（４６）は、プログラム記憶領域５０２およびデータ記憶領域５０４を含む。プログラム記憶領域５０２は、ゲームプログラムを記憶し、ゲームプログラムは、メイン処理プログラム５０２ａ、画像生成プログラム５０２ｂ、画像表示プログラム５０２ｃ、音再生プログラム５０２ｄ、ＢＧＭ変化プログラム５０２ｅ、プレイヤオブジェクト制御プログラム５０２ｆ、ボールオブジェクト制御プログラム５０２ｇ、アイテムオブジェクト制御プログラム５０２ｈ、当り判定プログラム５０２ｉ、連続回数カウントプログラム５０２ｊおよびスコア計算プログラム５０２ｋなどによって構成される。
【０１４５】
メイン処理プログラム５０２ａは、この実施例の仮想ゲーム（リズムゲーム）のメインルーチンを処理するためのプログラムである。画像生成プログラム５０２ｂは、後述する画像データ５０４ｂ（図１７参照）を用いて、図９に示したようなゲーム画面１００などの各種画面を表示するための表示画像データを生成するためのプログラムである。画像表示プログラム５０２ｃは、画像生成プログラム５０２ｂに従って生成された表示画像データをモニタ２８に出力するためのプログラムである。
【０１４６】
音再生プログラム５０２ｄは、ＤＳＰ５２を制御して、ＢＧＭについてのＢＧＭデータ（サウンドデータ）からオーディオデータを生成し、スピーカ３０に出力するためのプログラムである。したがって、プレイヤによって選択されたＢＧＭが再生される。また、音再生プログラム５０２ｄは、ＤＳＰ５２を制御して、後述する音データ５０４ｅを用いて、ＢＧＭ以外の音（効果音）、音声ないし音楽についてのオーディオデータを生成し、スピーカ３０に出力するためのプログラムである。したがって、ボールオブジェクト１１０を捕球ないしレシーブした場合のメロディ音が再生されたり、ボールオブジェクト１１０を捕球ないしレシーブできなかった場合の効果音が再生されたりする。ＢＧＭ変化プログラム５０２ｅは、図１２に示したようなＢＧＭの変化テーブルに従うように、ＢＧＭのトラック（パート）数および音量の少なくとも一方を変化させるためのプログラムである。
【０１４７】
プレイヤオブジェクト制御プログラム５０２ｆは、第１コントローラ３４および第２コントローラ１６からのコントローラデータに従って、対応するプレイヤオブジェクト１０２ａ−１０２ｄの移動等を制御するためのプログラムである。ボールオブジェクト制御プログラム５０２ｇは、ボールオブジェクト１１０の移動等を制御するためのプログラムである。アイテムオブジェクト制御プログラム５０２ｈは、アイテムオブジェクト１１２（コインオブジェクト１１２ａ、バナナオブジェクト１１２ｂ、鉄球オブジェクト１１２ｃ）の移動等を制御するためのプログラムである。
【０１４８】
当り判定プログラム５０２ｉは、プレイヤオブジェクト１０２ａ−１０２ｄが、ボールオブジェクト１１０に接触した（当った）かどうかを判定したり、アイテムオブジェクト１１２に接触した（当った）かどうかを判定したりする。ただし、プレイヤオブジェクト１０２ａ−１０２ｄがボールオブジェクト１１０に接触したかどうかは、上述したように、所定時間内に、プレイヤオブジェクト１０２ａ−１０２ｄを中心として、第１所定範囲内または第２所定範囲内に当該ボールオブジェクト１１０の着弾点が存在するかどうかで判断される。ただし、上述したように、第１所定範囲または第２所定範囲は、第１コントローラ３４を振ったかどうかで使い分けられる。
【０１４９】
連続回数カウントプログラム５０２ｊは、プレイヤオブジェクト１０２ａ−１０２ｄがボールオブジェクト１１０の捕球またはレシーブを連続して行っている回数をカウントするためのプログラムである。スコア算出プログラム５０２ｋは、得点や減点に従ってスコアを加算または減算するためのプログラムである。
【０１５０】
なお、図示は省略するが、プログラム記憶領域５０２には、バックアッププログラムなども記憶される。バックアッププログラムは、ゲームデータ（途中データ、結果データ）をメモリカード３８に保存（セーブ）するためのプログラムである。
【０１５１】
図１７に示すように、データ記憶領域５０４には、操作データバッファ５０４ａが設けられる。操作データバッファ５０４ａは、第１コントローラ３４および第２コントローラ３６からのコントローラデータを記憶（一時記憶）するために設けられる。操作データバッファ５０４ａに記憶されたコントローラデータは、ＣＰＵ４０の処理に用いられた後に、削除される。
【０１５２】
また、データ記憶領域５０４には、画像データ５０４ｂ、ＢＧＭデータ５０４ｃ、配球データ５０４ｄ、音データ５０４ｅ、プレイヤ情報データ５０４ｆ、トラック割当データ５０４ｇ、発射データ５０４ｈ、水平角度データ５０４ｉ、垂直角度データ５０４ｊ、速度データ５０４ｋおよびスコアデータ５０４ｍが記憶される。
【０１５３】
画像データ５０４ｂは、表示画像データを生成するためのポリゴンデータやテクスチャデータなどのデータおよびプレイヤオブジェクト１０２ａ−１０２ｄに所定のモーションを実行させるためのアニメーションデータを含む。ＢＧＭデータ５０４ｃは、複数のＢＧＭ（ＢＧＭ１、ＢＧＭ２、…）についてのデータである。ＢＧＭ１データ５０４０、ＢＧＭ２データ５０４２、…のそれぞれは、上述したように、６個のトラックについてのトラックデータを含む。
【０１５４】
配球データ５０４ｄは、複数の配球情報（配球情報１、配球情報２、…）についてのデータである。配球情報１データ５０５０、配球情報２データ５０５０、…のそれぞれは、上述したように、４人のプレイヤ（コンピュータプレイヤを含む場合もある）に対応する４つのトラック（トラック０、トラック１、トラック２、トラック３）について、到達順に従って複数の桝目が設けられ、桝目の一部にオブジェクト情報が記述されたデータである。ただし、配球情報１データ５０５０はＢＧＭ１データ５０４０に対応し、配球情報２データ５０５２はＢＧＭ２データ５０４２に対応する。つまり、ＢＧＭと同数の配球情報が設けられる。
【０１５５】
音データ５０４ｅは、メロディ音を含む効果音、音声またはＢＧＭ以外の音楽についてのサウンドデータや音波形（音色）データであって、各データには識別情報が対応付けられている。プレイヤ情報データ５０４ｆは、各プレイヤ（１Ｐ−４Ｐ）が選択したプレイヤオブジェクト１０２ａ−１０２ｄについての情報（プレイヤ情報）を示すデータである。たとえば、プレイヤ情報では、１Ｐ−４Ｐに対応して、プレイヤオブジェクト１０２ａ−１０２ｄの識別情報が記述される。
【０１５６】
トラック割当データ５０４ｇは、選択されたＢＧＭ（５０４０、５０４２、…）に対応する配球情報（５０５０、５０５２、…）に含まれる４つのトラック（トラック０−トラック３）が、どのプレイヤオブジェクト１０２ａ−１０２ｄに割り当てられているかを示すデータである。発射データ５０４ｈは、選択されたＢＧＭ（５０４０、５０４２、…）に対応する配球情報（５０５０、５０５２、…）から作成した発射タイミングテーブルについてのデータである。水平角度データ５０４ｉは、発射するオブジェクト１１０、１１２について数２に従って算出された水平方向の角度φについてのデータである。垂直角度データ５０４ｊは、発射するオブジェクト１１０、１１２について数６に従って算出された垂直方向の角度θについてのデータである。速度データ５０４ｋは、発射するオブジェクト１１０、１１２について数３および数６に従って算出された発射の速度（初速度）ｖについてのデータである。スコアデータ５０４ｍは、スコアについての数値データである。
【０１５７】
さらに、データ記憶領域５０４には、フレームカウンタ５０４ｎ、連続回数カウンタ５０４ｐ、移動不能時間タイマ５０４ｑ、最低フラグ５０４ｒ、普通フラグ５０４ｓ、グレートフラグ５０４ｔ、エクセレントフラグ５０４ｕ、移動不能フラグ５０４ｖ、ダメージフラグ５０４ｗが設けられる。
【０１５８】
フレームカウンタ５０４ｎは、ＢＧＭの再生開始からのフレーム数をカウントするためのアップカウンタである。連続回数カウンタ５０４ｐは、プレイヤオブジェクト１０２ａ−１０２ｄがボールオブジェクト１１０を連続して捕球ないしレシーブした回数をカウントするためのアップカウンタである。移動不能時間タイマ５０４ｑは、プレイヤオブジェクト１０２ａ−１０２ｄがバナナオブジェクト１０２ｂに接触し、移動不能な状態になっている時間をカウントするためのタイマである。
【０１５９】
最低ブラグ５０４ｒは、ＢＧＭの豪華度が「最低」であるかどうかを判別するためのフラグであり、１ビットのレジスタで構成される。最低フラグ５０４ｒがオンであれば、レジスタにデータ値「１」が設定される。一方、最低フラグ５０４ｒがオフであれば、レジスタにデータ値「０」が設定される。この実施例では、豪華度が「普通」または「グレート」である場合に、プレイヤオブジェクト１０２ａ−１０２ｄが捕球またはレシーブに失敗すると、最低フラグ５０４ｒがオンされる。
【０１６０】
普通フラグ５０４ｓは、ＢＧＭの豪華度が「普通」であるかどうかを判別するためのフラグであり、１ビットのレジスタで構成される。普通フラグ５０４ｓがオンであれば、レジスタにデータ値「１」が設定される。一方、普通フラグ５０４ｓがオフであれば、レジスタにデータ値「０」が設定される。この実施例では、豪華度が「最低」である場合に、連続回数カウンタ５０４ｐのカウント数が第１所定数（この実施例では、１０）を示したときに、普通フラグ５０４ｓがオンされる。また、豪華度が「エクセレント」である場合に、プレイヤオブジェクト１０２ａ−１０２ｄが捕球またはレシーブに失敗すると、普通フラグ５０４ｓがオンされる。ただし、この実施例では、リズムゲームが開始されるとき（またはＢＧＭの再生が開始されるとき）には、普通フラグ５０４ｓがオンされ、ＢＧＭの豪華度は「普通」に設定されている。
【０１６１】
グレートフラグ５０４ｔは、ＢＧＭの豪華度が「グレート」であるかどうかを判別するためのフラグであり、１ビットのレジスタで構成される。グレートフラグ５０４ｔがオンであれば、レジスタにデータ値「１」が設定される。一方、グレートフラグ５０４ｔがオフであれば、レジスタにデータ値「０」が設定される。この実施例では、豪華度が「普通」である場合に、連続回数カウンタ５０４ｐのカウント数が第１所定数または第２所定数（この実施例では、２０）を示したときに、グレートフラグ５０４ｔがオンされる。
【０１６２】
エクセレントフラグ５０４ｕは、ＢＧＭの豪華度が「エクセレント」であるかどうかを判別するためのフラグであり、１ビットのレジスタで構成される。エクセレントフラグ５０４ｕがオンであれば、レジスタにデータ値「１」が設定される。エクセレントフラグ５０４ｕがオフであれば、レジスタにデータ値「０」が設定される。この実施例では、豪華度が「グレート」である場合に、連続カウンタ５０４ｐのカウント数が第２所定数または第３所定数（この実施例では、３０）を示すときに、エクセレントフラグ５０４ｕがオンされる。
【０１６３】
なお、ＢＧＭの豪華度は「最低」、「普通」、「グレート」および「エクセレント」のいずれかに設定されるため、最低フラグ５０４ｒ、普通フラグ５０４ｓ、グレートフラグ５０４ｔ、エクセレントフラグ５０４ｕのいずれか１つがオンである場合には、他の３つはオフである。
【０１６４】
移動不能フラグ５０４ｖは、プレイヤオブジェクト１０２ａ−１０２ｄが移動不能な状態であるかどうかを判別するためのフラグであり、各プレイヤオブジェクト１０２ａ−１０２ｄに対応する４ビットのレジスタで構成される。プレイヤオブジェクト１０２ａ−１０２ｄが移動不能な状態である場合には、当該プレイヤオブジェクト１０２ａ−１０２ｄについての移動不能フラグ５０４ｖはオンされ、レジスタの対応するビットにデータ値「１」が設定される。一方、プレイヤオブジェクト１０２ａ−１０２ｄが移動不能な状態でない場合には、当該プレイヤオブジェクト１０２ａ−１０２ｄについての移動不能フラグ５０４ｖはオフされ、レジスタの対応するビットにデータ値「０」が設定される。この実施例では、プレイヤオブジェクト１０２ａ−１０２ｄがバナナオブジェクト１１２ｂに接触した場合に、移動不能な状態となり、所定時間が経過すると、移動不能な状態が解除される。
【０１６５】
ダメージフラグ５０４ｗは、プレイヤオブジェクト１０２ａ−１０２ｄがダメージを受けた状態であるかどうかを判別するためのフラグであり、各プイレヤオブジェクト１０２ａ−１０２ｄに対応する４ビットのレジスタで構成される。プレイヤオブジェクト１０２ａ−１０２ｄがダメージを受けた状態である場合には、当該プレイヤオブジェクト１０２ａ−１０２ｄについてのダメージフラグ５０４ｗはオンされ、レジスタの対応するビットにデータ値「１」が設定される。一方、プレイヤオブジェクト１０２ａ−１０２ｄがダメージを受けていない状態または回復した状態である場合には、当該プレイヤオブジェクト１０２ａ−１０２ｄについてのダメージフラグ５０４ｗはオフされ、レジスタの対応するビットにデータ値「０」が設定される。この実施例では、プレイヤオブジェクト１０２ａ−１０２ｄが鉄球オブジェクト１１２ｃに接触した場合に、ダメージを受けた状態となり、その後（ダメージのアニメーションを再生した後）、回復した状態になる。
【０１６６】
図１８−図２２は、図２に示したＣＰＵ４０のリズムゲームのゲーム全体処理を示すフロー図である。図１８に示すように、ＣＰＵ４０はゲーム全体処理を開始すると、ステップＳ１で、プレイヤオブジェクト１０２ａ−１０２ｄが選択されたかどうかを判断する。図示は省略するが、リズムゲームのゲーム全体処理が開始されると、プレイヤおよびコンピュータプレイヤの人数が決定された後に、各プレイヤ（コンピュータプレイヤを含む場合がある）が操作（使用）するプレイヤオブジェクト１０２ａ−１０２ｄを選択するための選択画面が表示される。この選択画面において、１Ｐ−４Ｐについてのプレイヤオブジェクト１０２ａ−１０２ｄが選択される。
【０１６７】
ステップＳ１で“ＮＯ”であれば、つまりプレイヤオブジェクト１０２ａ−１０２ｄが選択されていなければ、同じステップＳ１に戻る。一方、ステップＳ１で“ＹＥＳ”であれば、つまりプレイヤオブジェクト１０２ａ−１０２ｄが選択されると、ステップＳ３で、プレイヤ情報を記憶する。つまり、１Ｐ−４Ｐのそれぞれに対応して、選択されたプレイヤオブジェクト１０２ａ−１０２ｄを示すプレイヤ情報データ５０４ｆがデータ記憶領域５０４に記憶される。上述したように、１Ｐ−４Ｐでは、予め色が決定されているため、プレイヤ情報データ５０４ｆが記憶されることにより、プレイヤオブジェクト１０２ａ−１０２ｄに色が割り当てられる。
【０１６８】
続いて、ステップＳ５で、曲（ＢＧＭ）の選択があるかどうかを判断する。図示は省略するが、プレイヤオブジェクト１０２ａ−１０２ｄが選択された後に、ＢＧＭを選択するための選択画面が表示され、この選択画面において、プレイヤの操作に従ってＢＧＭが選択されたかどうかを判断するのである。
【０１６９】
ステップＳ５で“ＮＯ”であれば、つまり曲（ＢＧＭ）が選択されていなければ、そのままステップＳ５に戻る。一方、ステップＳ５で“ＹＥＳ”であれば、つまり曲（ＢＧＭ）が選択されれば、ステップＳ７で、選択された曲（ＢＧＭ１データ５０４０、ＢＧＭ２データ５０４２、…）に対応する配球情報（配球情報１データ５０５０、配球情報２データ５０５２、…）を読み込む。次のステップＳ９では、配球情報に基づいて、発射タイミングテーブルを作成する。つまり、読み込まれた配球情報１データ５０５０、配球情報２データ５０５２、…から、発射データ５０４ｈが生成される。
【０１７０】
続いて、ステップＳ１１では、各プレイヤオブジェクト１０２ａ−１０２ｄにトラックを割り当てる。この実施例では、配球情報に含まれる４つのトラックの各々が、任意（ランダム）にプレイヤオブジェクト１０２ａ−１０２ｄの各々に割り当てられる。つまり、トラック割当データ５０４ｇが決定され、データ記憶領域５０４に記憶される。そして、ステップＳ１３で、曲（ＢＧＭ）の再生を開始する。つまり、ＣＰＵ４０は、選択された曲（ＢＧＭ）の再生指示をＤＳＰ５２に与える。したがって、ＤＳＰ５２は、曲（ＢＧＭ）に対応するＢＧＭデータ５０４ｃ（ＢＧＭ１データ５０４０、ＢＧＭ２データ５０４２、…）からオーディオデータを生成し、ＢＧＭの再生を開始する。ただし、上述したように、ゲーム全体処理（リズムゲーム）を開始したとき、またはＢＧＭの再生を開始したときには、ＢＧＭの豪華度は「普通」に設定される。つまり、普通フラグ５０４ｓがオンされた状態である。したがって、ステップＳ１３では、ＢＧＭ１が１００％の音量で再生されるのである。
【０１７１】
次のステップＳ１５では、フレームカウンタ５０４ｎを初期化（カウント値＝０に設定）する。図１９に示すように、続くステップＳ１７では、発射タイミングの所定時間（この実施例では、２秒（１２０フレーム））前のオブジェクト１１０、１１２をベルトコンベアオブジェクト１０６の最後尾（右端）に配置する。このとき、発射データ５０４ｈに対応する発射タイミングテーブルが参照される。図示は省略するが、このように配置されたオブジェクト１１０、１１２は、ベルトコンベアオブジェクト１０６によって、所定時間（たとえば、１２０フレーム）以内に、発射台オブジェクト１０６の内部に移動される。
【０１７２】
続くステップＳ１９では、発射タイミングのオブジェクト１１０、１１２が有るかどうかを判断する。ここでは、ＣＰＵ４０は、発射データ５０４ｈに対応する発射タイミングテーブルを参照して、フレームカウンタ５０４ｎのカウント値が示すフレーム数と一致する発射タイミングフレームが存在するかどうかを判断する。
【０１７３】
ステップＳ１９で“ＮＯ”であれば、つまり発射タイミングのオブジェクト１１０、１１２が無ければ、そのままステップＳ２３に進む。一方、ステップＳ１９で“ＹＥＳ”であれば、つまり発射タイミングのオブジェクト１１０、１１２が有れば、ステップＳ２１で、該当するオブジェクト１１０、１１２の移動および判定のタスクを起動して、ステップＳ２３に進む。ステップＳ２１では、ＣＰＵ４０は、現フレームと一致する発射タイミングフレームに対応して記載されたトラック番号および到達順に従って、配球データ５０４ｄに対応する配球情報を参照し、該当するオブジェクト情報に含まれる種別が示すオブジェクト１１０、１１２についてのオブジェクトの移動および判定のタスクを起動する。ただし、オブジェクトの移動および判定処理（図２３−図２５、図２６−図２７）については、後で詳細に説明する。
【０１７４】
ステップＳ２３では、連続回数が１０の倍数かどうかを判断する。つまり、ＣＰＵ４０は、連続回数カウンタ５０４ｐのカウント値が１０の倍数かどうかを判断する。ステップＳ２３で“ＮＯ”であれば、つまり連続回数が１０の倍数でなければ、そのまま図２２に示すステップＳ６５に進む。一方、ステップＳ２３で“ＹＥＳ”であれば、つまり連続回数が１０の倍数であれば、ステップＳ２５で、連続回数が第４所定値（たとえば、４０）以上であるかどうかを判断する。
【０１７５】
ステップＳ２５で“ＹＥＳ”であれば、つまり連続回数が第４所定値以上であれば、ＢＧＭの豪華度が「エクセレント」である状態が継続していると判断して、図２２に示すステップＳ６３に進む。一方、ステップＳ２５で“ＮＯ”であれば、つまり連続回数が第４所定値以上でなければ、図２０に示すステップＳ２７で、連続回数が第１所定値（たとえば、１０）であるかどうかを判断する。
【０１７６】
ステップＳ２７で“ＮＯ”であれば、つまり連続回数が第１所定値でなければ、連続回数は第２所定値（たとえば、２０）または第３所定値（たとえば、３０）と判断して、図２１に示すステップＳ４１に進む。一方、ステップＳ２７で“ＹＥＳ”であれば、つまり連続回数が第１所定値であれば、ステップＳ２９で、最低フラグ５０４ｒがオンであるかどうかを判断する。
【０１７７】
ステップＳ２９で“ＹＥＳ”であれば、つまり最低フラグ５０４ｒがオンであれば、ＢＧＭの豪華度が「最低」であると判断して、ステップＳ３１で、通常フラグ５０４ｓをオンし、ステップＳ３３で、ＢＧＭ１を１００％の音量で再生する。つまり、ステップＳ３３では、ＣＰＵ４０の指示に従って、ＤＳＰ５２が、ＢＧＭ１を構成する４つのトラックについての音量を最大（１００％）に変化させるのである。さらに、ステップＳ３５で、第１連続ボーナスポイント（たとえば、５０ポイント）をスコアに加算して、ステップＳ６５に進む。つまり、ステップＳ３５では、ＣＰＵ４０は、スコアデータ５０４ｍが示すスコアに第１連続ボーナスポイントを加算し、スコアデータ５０４ｍを更新する。このとき、ゲーム画面１００に表示されたスコア１２０の表示も更新される。以下、ポイントがスコアに加算される場合について同様である。
【０１７８】
なお、図示は省略するが、ステップＳ３１で、通常フラグ５０４ｓがオンされたとき、最低フラグ５０４ｒはオフされる。
【０１７９】
一方、ステップＳ２９で“ＮＯ”であれば、つまり最低フラグ５０４ｒがオフであれば、通常フラグ５０４ｓがオンであるため、ステップＳ３７で、グレートフラグ５０４ｔをオンし、ステップＳ３９で、ＢＧＭ１およびＢＧＭ２を１００％の音量で再生して、ステップＳ３５に進む。つまり、ステップＳ３９では、ＣＰＵ４０の指示に従って、ＤＳＰ５２が、ＢＧＭ１に追加するように、ＢＧＭ２を１００％の音量で再生する。
【０１８０】
なお、図示は省略するが、ステップＳ３７では、グレートフラグ５０４ｔがオンされたときに、通常フラグ５０４ｓがオフされる。後述するステップＳ４５において同じ。
【０１８１】
図２１に示すように、ステップＳ４１では、連続回数が第２所定値であるかどうかを判断する。つまり、ＣＰＵ４０は、連続回数カウンタ５０４ｐのカウント値が第２所定値であるかどうかを判断する。ステップＳ４１で“ＮＯ”であれば、つまり連続回数が第３所定値であれば、図２２に示すステップＳ５５に進む。一方、ステップＳ４１で“ＹＥＳ”であれば、つまり連続回数が第２所定値であれば、ステップＳ４３で、通常フラグ５０４ｓがオンであるかどうかを判断する。
【０１８２】
ステップＳ４３で“ＹＥＳ”であれば、つまり通常フラグ５０４ｓがオンであれば、ステップＳ４５で、グレートフラグ５０４ｔをオンして、ステップＳ４７で、ＢＧＭ１およびＢＧＭ２を１００％の音量で再生し、ステップＳ４９で、第２連続ボーナスポイント（たとえば、１００ポイント）をスコアに加算して、図２２に示すステップＳ６５に進む。
【０１８３】
一方、ステップＳ４３で“ＮＯ”であれば、つまり通常フラグ５０４ｓがオフであれば、グレートフラグ５０４ｔがオンであるため、ステップＳ５１で、エクセレントフラグ５０４ｕをオンし、ステップＳ５３で、ＢＧＭ１−ＢＧＭ３を１００％の音量で再生して、ステップＳ４９に進む。つまり、ステップＳ５３では、ＣＰＵ４０の指示に従って、ＤＳＰ５２は、ＢＧＭ１およびＢＧＭ２に追加するように、ＢＧＭ３を最大（１００％）の音量で再生する。
【０１８４】
なお、図示は省略するが、ステップＳ５１で、エクセレントフラグ５０４ｕがオンされたとき、グレートフラグ５０４ｔはオフされる。後述するステップＳ５７において同じ。
【０１８５】
図２２に示すように、ステップＳ５５では、エクセレントフラグ５０４ｕがオンであるかどうかを判断する。ステップＳ５５で“ＮＯ”であれば、つまりグレートフラグ５０４ｔがオンであれば、ステップＳ５７で、エクセレントフラグ５０４ｕをオンし、ステップＳ５９で、ＢＧＭ１−ＢＧＭ３を１００％の音量で再生し、ステップＳ６１で、第３連続ボーナスポイント（たとえば、１５０ポイント）をスコアに加算して、ステップＳ６５に進む。
【０１８６】
一方、ステップＳ５５で“ＹＥＳ”であれば、つまりエクセレントフラグ５０４ｕがオンであれば、ステップＳ６３で、第４連続ボーナスポイント（たとえば、２００ポイント）をスコアに加算して、ステップＳ６５に進む。ステップＳ６５では、演奏終了かどうかを判断する。つまり、ＣＰＵ４０は、選択されたＢＧＭ１データ５０４０、ＢＧＭ２データ５０４２、…を最後（最終フレーム）まで再生したかどうかを判断する。
【０１８７】
ステップＳ６５で“ＮＯ”であれば、つまり演奏を終了していなければ、ステップＳ６７で、フレーム数を１加算して、つまりフレームカウンタ５０４ｎのカウント値を１加算して、図１９に示したステップＳ１７に戻る。詳細な説明は省略するが、ステップＳ１７−Ｓ６７のスキャンタイムが１フレームである。一方、ステップＳ６５で“ＹＥＳ”であれば、つまり演奏終了であれば、ゲーム全体処理を終了する。
【０１８８】
図２３−図２５は、オブジェクトの移動および判定処理を示すフロー図である。このオブジェクトの移動および判定処理は、ボールオブジェクト１１０についてのオブジェクトの移動および判定のタスクが起動された場合に処理が開始され、ゲーム全体処理とは並列的に、また、ボールオブジェクト１１０単位で実行される。後述するアイテムオブジェクト１１２についてのオブジェクトの移動および判定処理（図２６−図２７）についても同様である。
【０１８９】
図２３に示すように、ＣＰＵ４０は、オブジェクトの移動および判定処理を開始すると、ステップＳ９１で、再生タイミングフレーム、種別（メロディの識別情報）、飛行時間、最小距離、最大距離および特殊フラグを読み込む。
【０１９０】
詳細な説明は省略するが、オブジェクトの移動および判定処理が開始される時点で、再生タイミングフレーム等を読み出すトラックは決定されており、したがって、当該トラックが割り当てられたプレイヤオブジェクト１０２ａ−１０２ｄおよびカラーボールオブジェクト１１０ａの色も決定されている。ただし、特殊フラグがオンの場合には、レインボーボールオブジェクト１１０ｂに決定される。
【０１９１】
次のステップＳ９３では、プレイヤオブジェクト１０２ａ−１０２ｄの位置に基づいて着弾点Ｂを決定する。ここでは、図１５（Ａ）を用いて説明したように、ＣＰＵ４０は、対応するプレイヤオブジェクト１０２ａ−１０２ｄの現在位置Ｐを中心として、最小距離（半径ｒ）と最大距離（半径Ｒ）とで決定される所定範囲内で任意に着弾点Ｂを決定する。続くステップＳ９５では、発射する水平方向の角度φを数２に従って算出する。さらに、ステップＳ９７で、発射する速度（初速度）ｖおよび垂直方向の角度θを、数３および数６に従って算出する。
【０１９２】
続いて、ステップＳ９９で、ボールオブジェクト１１０を発射する。このとき、特殊フラグがオンであれば、レインボーボールオブジェクト１１０ｂが発射される。一方、特殊フラグがオフであれば、上述したように、予め決定された色のカラーボールオブジェクト１１０ａが発射される。ただし、発射する方向は、水平方向の角度φおよび垂直方向の角度θで決定され、発射する初速度は、速度ｖである。
【０１９３】
さらに、ステップＳ１０１では、着弾点Ｂを含む所定範囲を示す着弾マーカ１１４を表示する。次のステップＳ１０３では、ボールオブジェクト１１０が着弾点Ｂに到達する所定フレーム前であるかどうかを判断する。ここでは、ＣＰＵ４０は、フレームカウンタ５０４ｎのカウント値が、ステップＳ９１で読み込んだ再生タイミングフレームの所定フレーム（５フレーム）前になったかどうかを判断する。ステップＳ１０３で“ＮＯ”であれば、つまりボールオブジェクト１１０が着弾点Ｂに到達する所定フレーム前になっていなければ、同じステップＳ１０３に戻る。ここでは、簡単のため、ステップＳ１０３で“ＮＯ”の場合にはそのままステップＳ１０３に戻るようにしてあるが、実際には、斜方投射の物理計算に従って、ボールオブジェクト１１０の移動が制御され、その様子がゲーム画面１００に表示される。後述するアイテムオブジェクト１１２についても同様である。
【０１９４】
一方、ステップＳ１０３で“ＹＥＳ”であれば、つまりボールオブジェクト１１０が着弾点Ｂに到達する所定フレーム前になると、ステップＳ１０５で、捕球またはレシーブされたかどうかを判断する。上述したように、この実施例では、ＣＰＵ４０は、プレイヤが第１コントローラ３４を振っていない場合には、プレイヤオブジェクト１０２ａ−１０２ｄを中心とする第１所定範囲内に、当該ボールオブジェクト１１０の着弾点Ｂが含まれているかどうかで、当該ボールオブジェクト１１０を捕球したかどうかを判断する。一方、ＣＰＵ４０は、プレイヤが第１コントローラ３４を振った場合には、プレイヤオブジェクト１０２ａ−１０２ｄを中心とする第２所定範囲内に、ボールオブジェクト１１０の着弾点Ｂが含まれているかどうかで、当該ボールオブジェクト１１０をレシーブ（回転レシーブ）したかどうかを判断する。
【０１９５】
ステップＳ１０５で“ＹＥＳ”であれば、つまり捕球またはレシーブされた場合には、図２４に示すステップＳ１０９に進む。一方、ステップＳ１０５で“ＮＯ”であれば、つまり捕球またはレシーブされていない場合には、ステップＳ１０７で、ボールオブジェクト１１０が着弾点Ｂを超えたかどうかを判断する。つまり、ＣＰＵ４０は、フレームカウンタ５０４ｎのカウント値が、ステップＳ９１で読み込んだ再生タイミングフレームを超えたかどうかを判断する。
【０１９６】
ステップＳ１０７で“ＮＯ”であれば、つまりボールオブジェクト１１０が着弾点Ｂを超えていなけければ、そのままステップＳ１０５に戻る。一方、ステップＳ１０７で“ＹＥＳ”であれば、つまりボールオブジェクト１１０が着弾点Ｂを超えていれば、捕球ないしレシーブを失敗したと判断して、図２５に示すステップＳ１２３に進む。
【０１９７】
図２４に示すように、ステップＳ１０９では、カラーボールオブジェクト１１０ａかどうかを判断する。ここでは、ＣＰＵ４０は、ステップＳ９１で読み込んだ特殊フラグがオフであるかどうかを判断する。ステップＳ１０９で“ＮＯ”であれば、つまりレインボーボールオブジェクト１１０ｂであれば、ステップＳ１１１で、レインボーボールについてのポイント（たとえば、５０ポイント）をスコアに加算して、ステップＳ１１７に進む。
【０１９８】
一方、ステップＳ１０９で“ＹＥＳ”であれば、つまりカラーボールオブジェクト１１０ａであれば、ステップＳ１１３で、カラーボールについてのポイント（たとえば、１０ポイント）をスコアに加算して、ステップＳ１１５で、正しいプレイヤオブジェクト１０２ａ−１０２ｄかどうかを判断する。つまり、ＣＰＵ４０は、プレイヤ情報データ５０４ｆを参照して、当該オブジェクト情報を含むトラックが割り当てられたプレイヤオブジェクト１０２ａ−１０２ｄが、当該カラーボールオブジェクト１１０ａを捕球ないしレシーブしたかどうかを判断する。
【０１９９】
ステップＳ１１５で“ＹＥＳ”であれば、つまり正しいプレイヤオブジェクト１０２ａ−１０２ｄであれば、ステップＳ１１７で、割り当てられた音、つまり種別が示すメロディ音を通常再生して、ステップＳ１２１に進む。したがって、ボールオブジェクト１１０を捕球ないしレシーブしたことに応じて、当該プレイヤオブジェクト１０２ａ−１０２ｄが担当するパート（トラック）のメロディ音がそのまま再生される。詳細な説明は省略するが、ステップＳ９１で読み込んだ再生タイミングフレームでメロディ音が再生される。これは、後述するステップＳ１１９においても同じである。
【０２００】
一方、ステップＳ１１５で“ＮＯ”であれば、つまり正しいプレイヤオブジェクト１０２ａ−１０２ｄでなければ、ステップＳ１１９で、割り当てられた音、つまり種別が示すメロディ音を、その音程をずらして再生して、ステップＳ１２１に進む。
【０２０１】
ステップＳ１２１では、連続回数カウンタ５０４ｐのカウント値を１加算して、オブジェクトの移動および判定処理を終了する。ただし、コンピュータプレイヤが操作するプレイヤオブジェクト１０２ａ−１０２ｄが、カラーボールオブジェクト１１０を捕球ないしレシーブした場合には、ステップＳ１１１で、ポイントをスコアに加算しなくてもよいし、ステップＳ１１９で、連続回数カウンタ５０４ｐのカウント数を加算しないようにしてもよい。
【０２０２】
また、図２３で示したように、ステップＳ１０７で“ＹＥＳ”と判断されると、図２５に示すステップＳ１２３で、スコアを減点する。つまり、ＣＰＵ４０は、スコアデータ５０４ｍが示すスコアから捕球ないしレシーブを失敗した場合のポイント（たとえば、１０ポイント）を減算し、スコアデータ５０４ｍを更新する。以下、スコアが減点される場合について同様である。次のステップＳ１２５では、失敗の音（効果音）を再生する。ここでは、ＣＰＵ４０の指示に従って、ＧＰＵ５２は、失敗の効果音に対応する音データ５０４ｅ（サウンドデータ）を読み出して、オーディオデータを生成する。さらに、ステップＳ１２７で、連続回数カウンタ５０４ｐをリセット（カウント値を０に）して、ステップＳ１２９で、エクセレントフラグ５０４ｕがオンであるかどうかを判断する。
【０２０３】
ステップＳ１２９で“ＹＥＳ”であれば、つまりエクセレントフラグ５０４ｕがオンである場合には、ステップＳ１３１で、通常フラグ５０４ｓをオンし、ステップＳ１３３で、ＢＧＭ１を１００％の音量で再生して、オブジェクトの移動および判定処理を終了する。つまり、ステップＳ１３１では、ＤＳＰ５２は、ＢＧＭ２およびＢＧＭ３を構成するトラックについての音量を最小（０％）にする。
【０２０４】
なお、図示は省略するが、ステップＳ１３１で、通常フラグ５０４ｓがオンされると、エクセレントフラグ５０４ｕはオフされる。後述するように、ステップＳ１３５で、最低フラグ５０４ｒがオンされる場合も同様である。
【０２０５】
一方、ステップＳ１２９で“ＮＯ”であれば、つまりエクセレントフラグ５０４ｕがオフであれば、ステップＳ１３５で、最低フラグ５０４ｒをオンし、ステップＳ１３７で、ＢＧＭ１を３３％の音量で再生して、オブジェクトの移動および判定処理を終了する。つまり、ステップＳ１３７では、ＤＳＰ５２は、ＢＧＭ１を１００％の音量で再生している場合には、ＢＧＭ１を構成する４つのトラックの音量を３３％に低減する。または、ＤＳＰ５２は、ＢＧＭ１およびＢＧＭ２を１００％の音量で再生している場合には、ＢＧＭ１を構成する４つのトラックの音量を３３％に低減するとともに、ＢＧＭ２を構成するトラックの音量を最小にする。
【０２０６】
ただし、ＣＰＵ４０は、ステップＳ１２９で“ＮＯ”と判断したときに、最低フラグ５０４ｒがオンである場合には、ステップＳ１３５およびＳ１３７の処理は実行せずに、そのままオブジェクトの移動および判定処理を終了する。
【０２０７】
なお、図２３−図２５に示すオブジェクトの移動および判定処理は、一連の全ての処理が実行されるため、ステップＳ９１−Ｓ１３７のスキャンタイムは１フレームではない。このことは、次のアイテムオブジェクト１１２についてオブジェクトの移動および判定処理も同様である。
【０２０８】
また、図２３−図２５では省略したが、プレイヤオブジェクト１０２ａ−１０２ｄがボールオブジェクト１１０を捕球またはレシーブした場合には、捕球したりレシーブしたりした様子が表示された後に、ボールオブジェクト１１０は消去される。一方、プレイヤオブジェクト１０２ａ−１０２ｄがボールオブジェクト１１０の捕球またはレシーブを失敗した場合には、ボールオブジェクト１１０は地面で１回ないし２回バウンドした後に、消去される。
【０２０９】
図２６および図２７は、アイテムオブジェクト１１２についてのオブジェクトの移動および判定処理を示すフロー図である。なお、アイテムオブジェクト１１２のオブジェクトの移動および判定処理の一部の処理については、上述したボールオブジェクト１１０のオブジェクトの移動および判定処理と同様の処理が存在するため、重複した内容については簡単に説明することにする。また、このオブジェクトの移動および判定処理は、ゲーム全体処理やボールオブジェクト１１０のオブジェクトの移動および判定処理と並列的に、また、アイテムオブジェクト１１２単位で実行される。
【０２１０】
図２６に示すように、ＣＰＵ４０は、オブジェクトの移動および判定処理を開始すると、ステップＳ１５１で、再生タイミングフレーム、飛行時間、最小距離および最大距離を読み込む。
【０２１１】
詳細な説明は省略するが、オブジェクトの移動および判定処理が開始される時点で、再生タイミングフレーム等を読み出すトラックは決定されており、したがって、当該トラックが割り当てられたプレイヤオブジェクト１０２ａ−１０２ｄも決定されている。また、発射タイミングのオブジェクト１１０、１１２についてのタスクを起動する時点（ゲーム全体処理のステップＳ２１）において、アイテムオブジェクト１１２の種類（コインオブジェクト１１２ａ、バナナオブジェクト１１２ｂ、鉄球オブジェクト１１２ｃの別）も特定されている。
【０２１２】
図２６に戻って、ステップＳ１５３では、プレイヤオブジェクト１０２ａ−１０２ｄの位置Ｐに基づいて着弾点Ｂを決定し、ステップＳ１５５で、発射する水平方向の角度φを算出し、さらに、ステップＳ１５７で、発射する速度ｖおよび垂直方向の角度θを算出する。そして、ステップＳ１５９で、アイテムオブジェクト１１２（コインオブジェクト１１２ａ、バナナオブジェクト１１２ｂ、または、鉄球オブジェクト１１２ｃ）を発射する。続くステップＳ１６１では、着弾点を含む所定範囲を示す着弾マーカ１１６を表示する。ただし、コインオブジェクト１１２ａの場合には、着弾マーカ１１６は表示されないため、この処理は実行されない。
【０２１３】
そして、ステップＳ１６３では、アイテムオブジェクト１１２が着弾点を超えたかどうかを判断する。ステップＳ１６３で“ＮＯ”であれば、そのまま同じステップＳ１６３に戻る。一方、ステップＳ１６３で“ＹＥＳ”であれば、ステップＳ１６５で、当ったかどうかを判断する。ここでは、ボールオブジェクト１１０の場合とは異なり、プレイヤオブジェクト１０２ａ−１０２ｄとアイテムオブジェクト１１２との当りが判定される。
【０２１４】
なお、詳細な説明は省略するが、アイテムオブジェクト１１２が着弾点Ｂに到達する直前であっても、プレイヤオオブジェクト１０２ａ−１０２ｄに当たったと判断される場合もある。かかる場合にも、ステップＳ１６５で“ＹＥＳ”と判断される。
【０２１５】
ステップＳ１６５で“ＮＯ”であれば、つまり当っていなければ、ステップＳ１６７で、所定時間が経過したかどうかを判断する。ただし、上述したように、所定時間は、アイテムオブジェクト１１２の種類に応じて異なる。具体的には、コインオブジェクト１１２ａの場合には、所定時間は３秒であり、バナナオブジェクト１１２ｂの場合には、所定時間は４秒であり、鉄球オブジェクト１１２ｃの場合には、所定時間は２秒である。
【０２１６】
ステップＳ１６７で“ＮＯ”であれば、つまり所定時間が経過していなければ、ステップＳ１６５に戻る。図示は省略するが、このとき、コインオブジェクト１１２ａおよびバナナオブジェクト１１２ｂは落下位置に残留し続ける。また、このとき、鉄球オブジェクト１１２ｃは、落下位置でバウンドし、進行方向に移動する。一方、ステップＳ１６７で“ＹＥＳ”であれば、つまり、所定時間が経過すれば、ステップＳ１６９で、アイテムオブジェクト１１２を消滅させて、オブジェクトの移動および判定処理を終了する。
【０２１７】
また、ステップＳ１６５で“ＹＥＳ”であれば、つまり当った場合には、図２７（Ａ）−（Ｃ）に示すように、アイテムオブジェクト１１２の種類に応じた処理を実行する。
【０２１８】
図２７（Ａ）に示すように、コインオブジェクト１１２ａの場合には、ステップＳ１７１で、コインオブジェクト１１２ａのポイント（たとえば、１０ポイント）をスコアに加算し、ステップＳ１７３で、コインオブジェクト１１２ａを消去して、オブジェクトの移動および判定処理を終了する。つまり、プレイヤオブジェクト１０２ａ−１０２ｄによってコインが取得され、それに応じたポイントが加算されるのである。
【０２１９】
図２７（Ｂ）に示すように、バナナオブジェクト１１２ｂの場合には、ステップＳ１８１で、移動不能フラグ５０４ｖをオンし、ステップＳ１８３で、バナナオブジェクト１１２ｂを消去して、オブジェクトの移動および判定処理を終了する。ただし、ステップＳ１８１では、バナナオブジェクト１１２ｂに触れたプレイヤオブジェクト１０２ａ−１０２ｄに対応するレジスタのビットにデータ値「１」が設定される。したがって、この場合には、プレイヤオブジェクト１０２ａ−１０２ｄは、バナナで滑って転び、少しの間移動不能な状態にされる。
【０２２０】
図２７（Ｃ）に示すように、鉄球オブジェクト１１２ｃの場合には、ステップＳ１９１で、ダメージフラグ５０４ｗをオンする。ただし、ここでは、鉄球オブジェクト１１２ｃに触れたプレイヤオブジェクト１０２ａ−１０２ｄに対応するレジスタのビットにデータ値「１」が設定される。次のステップＳ１９３では、鉄球オブジェクト１１２ｃのポイント（たとえば、５０ポイント）をスコアから減算する。さらに、ステップＳ１９５で、連続回数カウンタ５０４ｐをリセットする。そして、ステップＳ１９７で、鉄球オブジェクト１１２ｃを消去して、オブジェクトの移動および判定処理を終了する。
【０２２１】
図２８および図２９は、プレイヤオブジェクト制御処理を示すフロー図である。このプレイヤオブジェクト制御処理は、上述したゲーム全体処理、ボールオブジェクト１１０やアイテムオブジェクト１１２についてのオブジェクトの移動および判定処理と並列して実行されるとともに、各プレイヤオブジェクト１０２ａ−１０２ｄについて個別に実行される。したがって、ここでは、操作する対象のプレイヤオブジェクト１０２ａ−１０２ｄを、「当該プレイヤオブジェクト１０２ａ−１０２ｄ」ということにする。
【０２２２】
図２８に示すように、ＣＰＵ４０は、プレイヤオブジェクト制御処理を開始すると、ステップＳ２２１で、移動不能フラグ５０４ｖがオンであるかどうかを判断する。ここでは、ＣＰＵ４０は、移動不能フラグ５０４ｖを構成する４つのビットのうち、当該プレイヤオブジェクト１０２ａ−１０２ｄに対応するビットにデータ値「１」が設定されているかどうかを判断する。
【０２２３】
ステップＳ２２１で“ＹＥＳ”であれば、つまり移動不能フラグ５０４ｖがオンであれば、プレイヤの操作に従って当該プレイヤオブジェクト１０２ａ−１０２ｄを移動させないと判断して、図２９に示すステップＳ２３１にそのまま進む。一方、ステップＳ２２１で“ＮＯ”であれば、つまり移動不能フラグ５０４ｖがオフであれば、ステップＳ２２３で、ジョイスティック９４ａの操作が有るかどうかを判断する。ここでは、ＣＰＵ４０は、操作データバッファ５０４ａを参照して、コントローラデータに、ジョイスティック９４ａの操作データが含まれているかどうかを判断するのである。
【０２２４】
ステップＳ２２３で“ＮＯ”であれば、つまりジョイスティック９４ａの操作が無ければ、後述するステップＳ２２７に進む。一方、ステップＳ２２３で“ＹＥＳ”であれば、つまりジョイスティック９４ａの操作が有れば、ステップＳ２２５で、指示された方向に、当該プレイヤオブジェクト１０２ａ−１０２ｄを移動させて、ステップＳ２３１に進む。
【０２２５】
ステップＳ２２７では、第１コントローラ３４を振ったかどうかを判断する。ここでは、ＣＰＵ４０は、操作データバッファ５０４ａを参照して、コントローラデータに第１コントローラ３４からの加速度データが含まれている場合に、当該加速度データに基づく加速度値の変化に基づいて第１コントローラ３４自身の動きを検出し、当該第１コントローラ３４を上下または左右等の振ったかどうかを判断するのである。
【０２２６】
ステップＳ２２７で“ＮＯ”であれば、つまり第１コントローラ３４を振っていなければ、そのままステップＳ２３１に進む。一方、ステップＳ２２７で“ＹＥＳ”であれば、つまり第１コントローラ３４を振っていれば、ステップＳ２２９で、上述した所定のルールに従って決定された目標のボールオブジェクト１１０の着弾点Ｂに向かって、当該プレイヤオブジェクト１０２ａ−１０２ｄをジャンプさせて回転レシーブさせて、ステップＳ２３１に進む。つまり、ステップＳ２２９では、着弾点Ｂに向けて当該プレイヤオブジェクト１０２ａ−１０２ｄをジャンプさせて回転レシーブさせる様子のアニメーションの再生が開始される。また、図示は省略するが、ジャンプさせて回転レシーブさせる様子のアニメーションの再生が開始されると、所定時間（所定のコマ数）の再生後に終了される。
【０２２７】
図２９に示すように、ステップＳ２３１では、ダメージフラグ５０４ｗがオンであるかどうかを判断する。ここでは、ＣＰＵ４０は、ダメージフラグ５０４ｗを構成するレジスタの４つのビットのうち、当該プレイヤオブジェクト１０２ａ−１０２ｄに対応するビットにデータ値「１」が設定されているかどうかを判断するのである。
【０２２８】
ステップＳ２３１で“ＮＯ”であれば、つまりダメージフラグ５０４ｗがオフであれば、そのままステップＳ２３７に進む。一方、ステップＳ２３１で“ＹＥＳ”であれば、つまりダメージフラグ５０４ｗがオンであれば、ステップＳ２３３で、当該プレイヤオブジェクト１０２ａ−１０２ｄについて、ダメージを与えられたアニメーションの再生を開始し、ステップＳ２３５で、ダメージフラグ５０４ｗをオフして、ステップＳ２３７に進む。
【０２２９】
ただし、ステップＳ２３５では、ダメージフラグ５０４ｗを構成するレジスタの４つのビットのうち、当該プレイヤオブジェクト１０２ａ−１０２ｄについてのビットにデータ値「０」が設定される。また、図示は省略するが、ダメージを与えるアニメーションの再生が開始されると、所定時間（所定のコマ数）の再生後に終了される。
【０２３０】
ステップＳ２３７では、移動不能フラグ５０４ｖがオフからオンに変化したかどうかを判断する。ここでは、ＣＰＵ４０は、移動不能フラグ５０４ｖを構成する４つのビットのうち、当該プレイヤオブジェクト１０２ａ−１０２ｄに対応するビットにデータ値「１」が設定されており、１つ前のフレームでは、データ値「０」が設定されていたかどうかを判断する。
【０２３１】
ステップＳ２３７で“ＹＥＳ”であれば、つまり移動不能フラグ５０４ｖがオフからオンに変化した場合には、ステップＳ２３９で、移動不能時間タイマ５０４ｑをスタートし、ステップＳ２４１で、当該プレイヤオブジェクト１０２ａ−１０２ｄについて、移動不能のアニメーションの再生を開始して、図２８に示したステップＳ２２１に戻る。
【０２３２】
一方、ステップＳ２３７で“ＮＯ”であれば、つまり移動不能フラグ５０４ｖがオンまたはオフの状態が継続している場合には、ステップＳ２４３で、所定時間が経過したかどうかを判断する。ここでは、ＣＰＵ４０は、移動不能時間タイマ５０４ｑのタイマ値が所定時間（たとえば、２秒）を超えたかどうかを判断する。ステップＳ２４３で“ＮＯ”であれば、つまり所定時間が経過していなければ、移動不能な状態で無い、または移動不能な状態を解除しないと判断して、そのままステップＳ２２１に戻る。
【０２３３】
しかし、ステップＳ２４３で“ＹＥＳ”であれば、つまり所定時間が経過すれば、移動不能な状態を解除すると判断して、ステップＳ２４５で、移動不能のアニメーションの再生を停止し、ステップＳ２４７で、移動不能フラグ５０４ｖをオフして、ステップＳ２２１に戻る。
【０２３４】
ただし、ステップＳ２４７では、移動不能フラグ５０４ｖを構成するレジスタの４つのビットのうち、当該プレイヤオブジェクト１０２ａ−１０２ｄについてのビットにデータ値「０」を設定する。
【０２３５】
なお、図２８および図２９に示すプレイヤオブジェクト制御処理のスキャンタイムは１フレームである。
【０２３６】
この実施例によれば、ＢＧＭに合わせたタイミングで着弾するボールオブジェクトを当該タイミングで着弾するように発射させ、着弾するタイミングでプレイヤオブジェクトがボールオブジェクトを捕球ないしレシーブするように、当該プレイヤオブジェクトを制御すると、ボールオブジェクトに割り当てられたメロディ音が再生されるので、単にボタンを押すタイミングだけでプレイするリズムゲームとは異なる、新しい感覚のリズムゲームを提供することができる。
【０２３７】
また、この実施例では、ボールオブジェクトに種類を設けることより、捕球ないしレシーブしたボールの種類で、メロディ音の音程が変化される場合がある。また、アイテムオブジェクトを設けることにより、コインアイテムを取得することにより、ポイントを獲得できたり、お邪魔アイテム（バナナ、鉄球）によって、ポイントが減ったり、プレイヤオブジェクトが移動できなくなったりする。つまり、リズムゲーム以外のゲーム要素を加えることができるので、ゲームの面白味を増大させることができる。
【０２３８】
なお、この実施例では、バレーボールのようなボールオブジェクトを、プレイヤオブジェクトに捕球ないしレシーブさせることにより、捕球ないしレシーブを成功したことを示す効果音として、ＢＧＭの主旋律についてのメロディ音を出力するようにしたが、副旋律の音を出力するようにしてもよい。
【０２３９】
また、この実施例では、所定期間において、プレイヤオブジェクトを中心とする第１所定範囲内にボールオブジェクトの着弾点が存在する場合には、当該ボールオブジェクトを捕球するようにしたが、このような状態において、所定の操作入力が有る場合に、ボールオブジェクトをレシーブするようにしてもよい。たとえば、所定の操作入力としては、第１コントローラを振る動作であってよいし、所定のキー入力（Ａボタン８２ｄがオン）であってもよい。
【０２４０】
さらに、この実施例では、バレーボールのようなボールオブジェクトを捕球ないしレシーブするようにしたため、対応するプレイヤオブジェクトを識別可能とするために、プレイヤオブジェクトに割り当てた色と同じ色をボールオブジェクトに付すようにしたが、これに限定される必要はない。たとえば、色に代えて、プレイヤオブジェクトを識別可能な模様（たとえば、対応するプレイヤオブジェクトの顔画像）をオブジェクトに付したり、または形状（たとえば、球、三角錐、四角錐、円柱の形状のオブジェクト）や種類（たとえば、バレーボール、野球のボール、テニスボール、サッカーボール）によってプレイヤオブジェクトを識別可能にしたオブジェクトを用いたりするようにしてもよい。
【０２４１】
さらにまた、この実施例では、ゲーム装置のＣＰＵがゲーム処理を実行するようにしたが、そのゲーム処理のための各処理が複数のコンピュータ等によって分散処理されてもよい。
【符号の説明】
【０２４２】
１０  …ゲームシステム
１２  …ゲーム装置
１４  …コントローラ
２８  …モニタ
３８  …メモリカード
４０  …ＣＰＵ
４２ｂ  …ＧＰＵ
４２ｅ，４６  …メインメモリ
４４  …フラッシュメモリ
５０  …無線通信モジュール
６２  …メモリカード用コネクタ
【図１】
0005745247.tif 000003
【図２】
0005745247.tif 000004
【図３】
0005745247.tif 000005
【図４】
0005745247.tif 000006
【図５】
0005745247.tif 000007
【図６】
0005745247.tif 000008
【図７】
0005745247.tif 000009
【図８】
0005745247.tif 000010
【図９】
0005745247.tif 000011
【図１０】
0005745247.tif 000012
【図１１】
0005745247.tif 000013
【図１２】
0005745247.tif 000014
【図１３】
0005745247.tif 000015
【図１４】
0005745247.tif 000016
【図１５】
0005745247.tif 000017
【図１６】
0005745247.tif 000018
【図１７】
0005745247.tif 000019
【図１８】
0005745247.tif 000020
【図１９】
0005745247.tif 000021
【図２０】
0005745247.tif 000022
【図２１】
0005745247.tif 000023
【図２２】
0005745247.tif 000024
【図２３】
0005745247.tif 000025
【図２４】
0005745247.tif 000026
【図２５】
0005745247.tif 000027
【図２６】
0005745247.tif 000028
【図２７】
0005745247.tif 000029
【図２８】
0005745247.tif 000030
【図２９】
0005745247.tif 000031