(57)【特許請求の範囲】
【請求項１】
第１スイッチおよび当該第１スイッチと異なる１つ以上の他スイッチを含む入力手段を利用して仮想ゲーム世界のオブジェクトを動作制御するためのゲームプログラムであって、コンピュータを、
前記オブジェクトを画面に表示する表示制御手段、
前記入力手段による入力が行われたことを検出する入力検出手段、
前記入力検出手段によって前記第１スイッチによる入力が検出される毎に、前記第１スイッチによる入力が連続して行われているか、前記第１スイッチによる入力と前記他スイッチによる入力とが交互に行われているかを判断する第１判断手段、および
（ａ）前記第１スイッチによる入力が連続して行われていると前記第１判断手段が判断したときには、前記オブジェクトに前記第１スイッチに関連付けられた第１動作を行わせ、（ｂ）前記第１スイッチによる入力と前記他スイッチによる入力が交互に行われていると前記第１判断手段が判断したときには、前記オブジェクトに前記第１動作と異なる第２動作を行わせる動作制御手段として機能させ、
前記動作制御手段は、前記第１スイッチによる入力が１回目の入力であるときには、前記オブジェクトに前記第２動作を行わせる、ゲームプログラム。
【請求項２】
前記入力手段は、前記他スイッチとして少なくとも第２スイッチを含み、
前記第１判断手段は、前記入力検出手段によって前記第１スイッチによる入力が検出される毎に、前記第１スイッチによる入力が連続して行われているか、前記第１スイッチによる入力と前記第２スイッチによる入力とが交互に行われているかを判断し、
前記動作制御手段は、（ａ）前記第１スイッチによる入力が連続して行われていると前記第１判断手段が判断したときには、前記オブジェクトに前記第１動作を行わせ、（ｂ）前記第１スイッチによる入力と前記第２スイッチによる入力が交互に行われていると前記第１判断手段が判断したときには、前記オブジェクトに前記第２動作を行わせる、請求項１に記載のゲームプログラム。
【請求項３】
前記ゲームプログラムは、前記入力検出手段によって前記第２スイッチによる入力が検出される毎に、前記第２スイッチによる入力が連続して行われているか、前記第１スイッチによる入力と前記第２スイッチによる入力とが交互に行われているかを判断する第２判断手段として前記コンピュータをさらに機能させ、
前記動作制御手段は、（ｃ）前記第２スイッチによる入力が連続して行われていると前記第２判断手段が判断したときには、前記オブジェクトに前記第２スイッチに関連付けられた第３動作を行わせ、（ｄ）前記第１スイッチによる入力と前記第２スイッチによる入力とが交互に行われていると前記第２判断手段が判断したときには、前記オブジェクトに前記第２動作を行わせる、請求項２に記載のゲームプログラム。
【請求項４】
前記動作制御手段は、（ａ）前記第１スイッチによる入力が連続して行われていると前記第１判断手段が判断したときには、前記仮想ゲーム世界において前記第１スイッチに関連付けられた第１方向に前記オブジェクトを移動又は加速させ、（ｂ）前記第１スイッチによる入力と前記他スイッチによる入力とが交互に行われていると前記第１判断手段が判断したときには、前記仮想ゲーム空間において前記第１方向と異なる第２方向に前記オブジェクトを移動又は加速させる、請求項１に記載のゲームプログラム。
【請求項５】
前記第１判断手段は、前記入力検出手段によって前記第１スイッチによる入力が検出される毎に、過去所定時間以内に行われた入力に基づいて、前記第１スイッチによる入力が連続して行われているか、前記第１スイッチによる入力と前記他スイッチによる入力とが交互に行われているかを判断する、請求項１に記載のゲームプログラム。
【請求項６】
前記第１判断手段は、所定時間以上の間隔を空けることなく継続して行われた一連の入力を参照して、前記第１スイッチによる入力が連続して行われているか、前記第１スイッチによる入力と前記他スイッチによる入力とが交互に行われているかを判断する、請求項１に記載のゲームプログラム。
【請求項７】
前記入力検出手段は、前記第１スイッチ又は前記他スイッチがプレイヤによって押されていない状態から押されている状態に変化したこと、もしくは前記第１スイッチ又は前記他スイッチがプレイヤによって押されている状態から押されていない状態に変化したことを、前記入力手段による入力として検出する、請求項１に記載のゲームプログラム。
【請求項８】
前記第１スイッチが、太鼓型コントローラに設けられた叩き面である、請求項１に記載のゲームプログラム。
【請求項９】
前記動作制御手段は、
前記第１スイッチによる入力と前記第２スイッチによる入力とが交互に行われていると前記第１判断手段または前記第２判断手段が判断したときには、前記仮想ゲーム空間において前記オブジェクトの前進方向に当該オブジェクトを移動又は加速させ、
前記第１スイッチによる入力が連続して行われていると前記第１判断手段が判断したときには、前記仮想ゲーム世界において前記前進方向を基準とした右方向に前記オブジェクトを移動又は加速させ、
前記第２スイッチによる入力が連続して行われていると前記第２判断手段が判断したときには、前記仮想ゲーム空間において前記前進方向を基準とした左方向に前記オブジェクトを移動又は加速させる、請求項３に記載のゲームプログラム。
【請求項１０】
前記コンピュータを、
前記仮想ゲーム空間内の所定のルートを定義したルートデータを、前記オブジェクトの現在位置データに基いて参照することにより、前記前進方向を当該ルートに沿う方向に設定する前進方向設定手段としてさらに機能させる、請求項９に記載のゲームプログラム。
【請求項１１】
前記動作制御手段は、
前記第１スイッチによる入力と前記第２スイッチによる入力とが交互に行われていると前記第１判断手段または前記第２判断手段が判断したときには、前記仮想ゲーム空間において前記オブジェクトの前進方向に当該オブジェクトを移動又は加速させ、
前記第１スイッチによる入力が連続して行われていると前記第１判断手段が判断したときには、前記仮想ゲーム世界において前記前進方向を右方向に変更し、
前記第２スイッチによる入力が連続して行われていると前記第２判断手段が判断したときには、前記仮想ゲーム空間において前記前進方向を左方向に変更する、請求項３に記載のゲームプログラム。
【請求項１２】
前記オブジェクトが、前記仮想ゲーム世界に設けられたレースコース上を移動する移動オブジェクトであり、
前記第１動作が、前記レースコースに対して垂直な第１方向に移動又は加速する動作であり、
前記第２動作が、前記レースコースの進行方向に対応する第２方向に移動又は加速する動作であり、
前記第３動作が、前記第１方向とは逆の第３方向に移動又は加速する動作である、請求項３に記載のゲームプログラム。
【請求項１３】
前記ゲームプログラムは、前記第１スイッチおよび前記第２スイッチの一方または両方が押し続けられているかどうかを判断する長押し判断手段として前記コンピュータをさらに機能させ、
前記動作制御手段は、前記長押し判断手段の判断結果が肯定である場合に、前記オブジェクトを減速する、請求項１２に記載のゲームプログラム。
【請求項１４】
前記動作制御手段は、前記第１スイッチおよび前記第２スイッチのいずれも押されていない場合には、前記オブジェクトの現在の移動速度を維持する、請求項１２に記載のゲームプログラム。
【請求項１５】
前記ゲームプログラムは、前記第１スイッチまたは前記他スイッチの連打速さを検出する連打速さ検出手段として前記コンピュータをさらに機能させ、
前記動作制御手段は、前記連打速さ検出手段の検出結果に応じた速度又は加速度で前記オブジェクトを移動又は加速する、請求項４に記載のゲームプログラム。
【請求項１６】
第１スイッチおよび当該第１スイッチと異なる第２スイッチを含む入力手段を利用して仮想ゲーム世界のオブジェクトを動作制御するためのゲームプログラムであって、コンピュータを、
前記オブジェクトを画面に表示する表示制御手段、
前記入力手段による入力が行われたことを検出する入力検出手段、
（ａ）今回押されたスイッチと前回押されたスイッチが異なり、かつ、今回押されたスイッチと前々回押されたスイッチが同一である場合に、交互入力が行われたと判断して、前記オブジェクトに交互入力に応じた動作を行わせ、（ｂ）今回押されたスイッチと前回押されたスイッチが異なり、今回押されたスイッチと前々回押されたスイッチが異なる場合には、交互入力が行われないと判断する動作制御手段として機能させるためのゲームプログラムであって、
前記動作制御手段は、（ｂ）今回押されたスイッチと前回押されたスイッチが異なり、かつ今回押されたスイッチと前々回押されたスイッチが異なる場合に、前記オブジェクトに動作を行わせない、ゲームプログラム。
【請求項１７】
第１スイッチおよび当該第１スイッチと異なる第２スイッチを含む入力手段を利用して仮想ゲーム世界のオブジェクトを動作制御するためのゲームプログラムであって、コンピュータを、
前記オブジェクトを画面に表示する表示制御手段、
前記入力手段による入力が行われたことを検出する入力検出手段、
（ａ）今回押されたスイッチと前回押されたスイッチが異なり、かつ、今回押されたスイッチと前々回押されたスイッチが同一である場合に、交互入力が行われたと判断して、前記オブジェクトに交互入力に応じた動作を行わせ、（ｂ）今回押されたスイッチと前回押されたスイッチが異なり、今回押されたスイッチと前々回押されたスイッチが異なる場合には、交互入力が行われないと判断する動作制御手段として機能させるためのゲームプログラムであって、
前記動作制御手段は、（ｃ）前記入力検出手段によって前記第１スイッチまたは前記第２スイッチによる入力が検出されたときに、当該入力が１回目の入力である場合、前記オブジェクトに、前記交互入力に応じた動作を行わせる、ゲームプログラム。
【請求項１８】
第１スイッチおよび当該第１スイッチと異なる１つ以上の他スイッチを含む入力手段、
仮想ゲーム世界のオブジェクトを画面に表示する表示制御手段、
前記入力手段による入力が行われたことを検出する入力検出手段、
前記入力検出手段によって前記第１スイッチによる入力が検出される毎に、前記第１スイッチによる入力が連続して行われているか、前記第１スイッチによる入力と前記他スイッチによる入力とが交互に行われているかを判断する第１判断手段、および
（ａ）前記第１スイッチによる入力が連続して行われていると前記第１判断手段が判断したときには、前記オブジェクトに前記第１スイッチに関連付けられた第１動作を行わせ、（ｂ）前記第１スイッチによる入力と前記他スイッチによる入力が交互に行われていると前記第１判断手段が判断したときには、前記オブジェクトに前記第１動作と異なる第２動作を行わせる動作制御手段を備え、
前記動作制御手段は、前記第１スイッチによる入力が１回目の入力であるときには、前記オブジェクトに前記第２動作を行わせる、ゲーム装置。
【請求項１９】
第１スイッチおよび当該第１スイッチと異なる第２スイッチを含む入力手段、
仮想ゲーム世界のオブジェクトを画面に表示する表示制御手段、
前記入力手段による入力が行われたことを検出する入力検出手段、
（ａ）今回押されたスイッチと前回押されたスイッチが異なり、かつ、今回押されたスイッチと前々回押されたスイッチが同一である場合に、交互入力が行われたと判断して、前記オブジェクトに交互入力に応じた動作を行わせ、（ｂ）今回押されたスイッチと前回押されたスイッチが異なり、今回押されたスイッチと前々回押されたスイッチが異なる場合には、交互入力が行われないと判断する動作制御手段を備え、
前記動作制御手段は、（ｂ）今回押されたスイッチと前回押されたスイッチが異なり、かつ今回押されたスイッチと前々回押されたスイッチが異なる場合に、前記オブジェクトに動作を行わせない、ゲーム装置。
【請求項２０】
プレイヤによる第１操作および当該第１操作と異なる第２操作を検出可能な入力手段を利用して仮想ゲーム世界のオブジェクトを動作制御するためのゲームプログラムであって、コンピュータを、
前記オブジェクトを画面に表示する表示制御手段、
前記入力手段による入力が行われたことを検出する入力検出手段、
前記入力検出手段によって前記第１操作が検出される毎に、前記第１操作が連続して行われているか、前記第１操作と前記第２操作とが交互に行われているかを判断する第１判断手段、および
（ａ）前記第１操作が連続して行われていると前記第１判断手段が判断したときには、前記オブジェクトに前記第１操作に関連付けられた第１動作を行わせ、（ｂ）前記第１操作と前記第２操作が交互に行われていると前記第１判断手段が判断したときには、前記オブジェクトに前記第１動作と異なる第２動作を行わせる動作制御手段として機能させ、
前記動作制御手段は、前記第１操作が１回目の操作であるときには、前記オブジェクトに前記第２動作を行わせる、ゲームプログラム。
【請求項２１】
第１操作および当該第１操作と異なる第２操作を検出可能な入力手段、
仮想ゲーム世界のオブジェクトを画面に表示する表示制御手段、
前記入力手段による入力が行われたことを検出する入力検出手段、
前記入力検出手段によって前記第１操作が検出される毎に、前記第１操作が連続して行われているか、前記第１操作と前記第２操作が交互に行われているかを判断する第１判断手段、および
（ａ）前記第１操作が連続して行われていると前記第１判断手段が判断したときには、前記オブジェクトに前記第１操作に関連付けられた第１動作を行わせ、（ｂ）前記第１操作と前記第２操作が交互に行われていると前記第１判断手段が判断したときには、前記オブジェクトに前記第１動作と異なる第２動作を行わせる動作制御手段を備え、
前記動作制御手段は、前記第１操作が１回目の操作であるときには、前記オブジェクトに前記第２動作を行わせる、ゲーム装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はゲームプログラム及びゲーム装置に関し、特に、第１操作および第２操作を検出可能な入力手段を利用して（例えば、第１スイッチおよび当該第１スイッチと異なる１つ以上の他スイッチを含む入力手段を利用する。または、第１の動き入力操作と第２の動き入力操作を検出可能な入力手段を利用する）、仮想ゲーム世界のオブジェクトを動作制御するためのゲームプログラム及びゲーム装置に関する。
【背景技術】
【０００２】
特許文献１には、コンガ型コントローラに設けられた右叩き面および左叩き面の２つの叩き面を操作スイッチとして利用して、画面に表示された仮想ゲーム世界のキャラクタの動作をプレイヤが制御可能なゲームシステムが開示されている。このゲームシステムでは、プレイヤが右のコンガを叩くとプレイヤキャラクタは右へ移動し、左側のコンガを叩くとプレイヤキャラクタは左へ移動する。また、左右のコンガを同時に叩くとプレイヤキャラクタはジャンプし、特定の場面では、左右のコンガを交互に連打するとプレイヤキャラクタは攻撃のアクションを行う。これによりプレイヤは、仮想ゲーム世界のキャラクタに対してスイッチの数よりも多くの種類の動作指示を与えることができる。
【特許文献１】特開２００５−３１９０４０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記特許文献１には、単に、プレイヤが右（左）のコンガを叩くとプレイヤキャラクタが右（左）に移動し、プレイヤが左右のコンガを交互に連打するとプレイヤキャラクタが攻撃のアクションを行うことしか記載されておらず、これら２種の入力が混在した場合、すなわち、例えば、左側のコンガを連続的に叩いた後、左右のコンガを交互に連打し、さらに、右側のコンガを連続的に叩いた場合に、これら一連の操作に基いて、キャラクタをどのように動作させるかについては全く開示されていない。また、移動方向は、右か左の２つの方向しかなく、３次元的な移動を制御できなかった。
【０００４】
それゆえに本発明は、上述の課題の少なくとも１つを解決することを目的とし、仮想ゲーム世界のキャラクタに対して複数種類の操作（複数のスイッチの操作または複数の動き入力操作）の連続した入力により多様な動作指示を与えることができるようなゲームプログラム及びゲーム装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、本発明は以下の構成を採用した。なお、括弧内の参照符号は本発明の理解を助けるために図面との対応関係の一例を示したものであって、本発明の範囲を何ら限定するものではない。
【０００６】
本発明のゲームプログラムは、第１スイッチ（６Ｒ）および当該第１スイッチと異なる１つ以上の他スイッチ（６Ｌ）を含む入力手段を利用して仮想ゲーム世界のオブジェクトを動作制御するためのゲームプログラムである。当該ゲームプログラムは、コンピュータ（３１）を、表示制御手段（Ｓ１０、Ｓ５０）、入力検出手段（Ｓ１２、Ｓ６０、Ｓ６８）、第１判断手段（Ｓ２０、Ｓ２２、Ｓ２４、Ｓ２６、Ｓ６２）、および動作制御手段（Ｓ３０、Ｓ３２、Ｓ６４、Ｓ６６、Ｓ７２、Ｓ７４）として機能させるためのゲームプログラムである。表示制御手段は、前記オブジェクトを画面（２）に表示する表示制御手段である。入力検出手段は、前記入力手段による入力が行われたことを検出する手段である。第１判断手段は、前記入力検出手段によって前記第１スイッチによる入力が検出される毎に、前記第１スイッチによる入力が連続して行われているか、前記第１スイッチによる入力と前記他スイッチによる入力とが交互に行われているかを判断する手段である。動作制御手段は、（ａ）前記第１スイッチによる入力が連続して行われていると前記第１判断手段が判断したときには、前記オブジェクトに前記第１スイッチに関連付けられた第１動作を行わせ、（ｂ）前記第１スイッチによる入力と前記他スイッチによる入力が交互に行われていると前記第１判断手段が判断したときには、前記オブジェクトに前記第１動作と異なる第２動作を行わせる手段である。動作制御手段は、第１スイッチによる入力が１回目の入力であるときには、オブジェクトに第２動作を行わせる。
【０００７】
第１判断手段は、今回の入力と前回の入力を比較することによって、第１スイッチによる入力が連続して行われているか、第１スイッチによる入力と他スイッチによる入力とが交互に行われているかを判断してもよいし、今回の入力とそれ以前の複数回の入力（例えば今回の入力と前回の入力と前々回の入力）に基いて、それらを判断してもよい。後者の場合には、例えば、第１スイッチによる入力が３回以上連続しておこなわれているときに第１スイッチによる入力が連続していると判断してもよいし、第１スイッチによる入力と他スイッチによる入力とが２回以上連続して交互に行なわれているときに交互入力がされたと判断してもよい。
【０００８】
典型的には、入力検出手段によって入力手段からの入力が検出される毎に、入力検出手段によって検出された入力が第１スイッチによる入力であったか他スイッチによる入力であったかを入力履歴情報としてメモリに記憶しておき、その後、入力検出手段によって第１スイッチによる入力が検出されたときにこの入力履歴情報を参照してもよい。
【０００９】
オブジェクトの動作制御に利用される他スイッチは１個であってもよいし複数であってもよい。
【００１０】
他スイッチが１個（仮に第２スイッチと称す）の場合には、第１判断手段は、第１スイッチによる入力が連続して行われているか、第１スイッチによる入力と第２スイッチによる入力とが交互に行われているかを判断する。例えば、「第１スイッチによる入力→第１スイッチによる入力」の順番で入力があったときには、第１スイッチによる入力が連続して行われたと判断し、「第１スイッチによる入力→第２スイッチによる入力→第１スイッチによる入力」の順番で入力があったときには、第１スイッチによる入力と他スイッチによる入力とが交互に行われていると判断してもよい。また、今回の入力と前回の入力だけを参照する場合には、「第２スイッチによる入力→第１スイッチによる入力」の順番で入力があったときに、第１スイッチによる入力と第２スイッチによる入力とが交互に行われていると判断してもよい。
【００１１】
他スイッチが複数ある場合には、第１判断手段は、第１スイッチによる入力と他スイッチの中の特定の１つのスイッチ（例えば第２スイッチ）による入力とが交互に行われているときに、第１スイッチによる入力と他スイッチによる入力とが交互に行われていると判断してもよい。この場合、第１判断手段は、第１スイッチおよび第２スイッチ以外のスイッチ（例えば第３スイッチ）による入力を無視して、第１スイッチによる入力が連続して行われているか、第１スイッチによる入力と他スイッチによる入力とが交互に行われているかを判断してもよいし、第１スイッチおよび第２スイッチ以外のスイッチ（例えば第３スイッチ）による入力を無視することなく、第１スイッチによる入力が連続して行われているか、第１スイッチによる入力と他スイッチによる入力とが交互に行われているかを判断してもよい。第１スイッチおよび第２スイッチ以外のスイッチ（例えば第３スイッチ）による入力を無視する場合には、例えば、「第１スイッチによる入力→第３スイッチによる入力→第１スイッチによる入力」の順番（入力パターンＡ）で入力が行われたときには第１スイッチによる入力が連続して行われたと判断し、「第１スイッチによる入力→第２スイッチによる入力→第３スイッチによる入力→第１スイッチによる入力」の順番（入力パターンＢ）で入力が行われたときには第１スイッチによる入力と他スイッチによる入力とが交互に行われたと判断してもよい。第１スイッチおよび第２スイッチ以外のスイッチ（例えば第３スイッチ）による入力を無視しない場合には、上記入力パターンＡの入力が行われたときにも第１スイッチによる入力が連続して行われたとは判断せず、上記入力パターンＢの入力が行われたときにも第１スイッチによる入力と他スイッチによる入力とが交互に行われたとは判断しない。
【００１２】
また、他スイッチが複数ある場合には、第１判断手段は、第１スイッチによる入力と他スイッチの中のいずれか任意のスイッチ（第１スイッチ以外の任意のスイッチ）による入力とが交互に行われているときに、第１スイッチによる入力と他スイッチによる入力とが交互に行われていると判断してもよい。例えば、「第１スイッチによる入力→第２スイッチによる入力→第１スイッチによる入力」の順番で入力が行われた場合と、「第１スイッチによる入力→第３スイッチによる入力→第１スイッチによる入力」の順番で入力が行われた場合のいずれの場合も、第１スイッチによる入力と他スイッチによる入力とが交互に行われたと判断してもよい。
【００１３】
なお、第１判断手段は、入力検出手段によって第１スイッチによる入力が検出される毎に、第１スイッチによる入力が連続して行われているか、第１スイッチによる入力と他スイッチによる入力とが交互に行われているかを判断し、第１動作または第２動作を行わせる。すなわち、例えば、（ａ）第１スイッチによる入力→（ｂ）第１スイッチによる入力→（ｃ）他スイッチによる入力→（ｄ）第１スイッチによる入力という一連の入力があったとき、（ｂ）の入力について連続入力の判断をして第１動作をおこなわせ、（ｄ）の入力について交互入力の判断をして第２動作をおこなわせる。しかしながら、初回の第１スイッチのよる入力など特定の状況においてはキャラクタに第１動作や第２動作をおこなわせなくてもよい。
【００１４】
なお、第１動作および第２動作は移動動作であってもよいし、他の動作（攻撃動作やジャンプ動作など）であってもよい。
【００１５】
なお、前記入力手段は、前記他スイッチとして少なくとも第２スイッチを含み、前記第１判断手段は、前記入力検出手段によって前記第１スイッチによる入力が検出される毎に、前記第１スイッチによる入力が連続して行われているか、前記第１スイッチによる入力と前記第２スイッチによる入力とが交互に行われているかを判断し、前記動作制御手段は、（ａ）前記第１スイッチによる入力が連続して行われていると前記第１判断手段が判断したときには、前記オブジェクトに前記第１動作を行わせ、（ｂ）前記第１スイッチによる入力と前記第２スイッチによる入力が交互に行われていると前記第１判断手段が判断したときには、前記オブジェクトに前記第２動作を行わせてもよい。
【００１６】
また、前記ゲームプログラムは、前記入力検出手段によって前記第２スイッチによる入力が検出される毎に、前記第２スイッチによる入力が連続して行われているか、前記第１スイッチによる入力と前記第２スイッチによる入力とが交互に行われているかを判断する第２判断手段（Ｓ７０）として前記コンピュータをさらに機能させ、前記動作制御手段は、（ｃ）前記第２スイッチによる入力が連続して行われていると前記第２判断手段が判断したときには、前記オブジェクトに前記第２スイッチに関連付けられた第３動作を行わせ、（ｄ）前記第１スイッチによる入力と前記第２スイッチによる入力とが交互に行われていると前記第２判断手段が判断したときには、前記オブジェクトに前記第２動作を行わせてもよい。
【００１７】
なお、第１判断手段は、入力検出手段によって第１スイッチによる入力が検出される毎に、第１スイッチによる入力が連続して行われているか、第１スイッチによる入力と第２スイッチによる入力とが交互に行われているかを判断し、また、第２判断手段は、入力検出手段によって第２スイッチによる入力が検出される毎に、第２スイッチによる入力が連続して行われているか、第２スイッチによる入力と第１スイッチによる入力とが交互に行われているかを判断し、第１動作、第２動作、または、第３動作を行わせる。すなわち、例えば、（ａ）第１スイッチによる入力→（ｂ）第１スイッチによる入力→（ｃ）第２スイッチによる入力→（ｄ）第２スイッチによる入力という一連の入力があったとき、（ｂ）の入力について第１スイッチの連続入力の判断をして第１動作をおこなわせ、（ｃ）の入力について交互入力の判断をして第２動作をおこなわせ、（ｄ）の入力について第２スイッチの連続入力の判断をして第３動作をおこなわせる。
【００１８】
また、前記動作制御手段は、（ａ）前記第１スイッチによる入力が連続して行われていると前記第１判断手段が判断したときには、前記仮想ゲーム世界において前記第１スイッチに関連付けられた第１方向に前記オブジェクトを移動又は加速させ、（ｂ）前記第１スイッチによる入力と前記他スイッチによる入力とが交互に行われていると前記第１判断手段が判断したときには、前記仮想ゲーム空間において前記第１方向と異なる第２方向に前記オブジェクトを移動又は加速させてもよい。
【００１９】
なお、オブジェクトの移動方向を決定する要因として、第１スイッチと他スイッチの入力以外の要因がある場合（例えば、重力の影響を受けて方向が変わったり、地面や障害物に接触することにより方向が変わったり、プレイヤの他の入力によっても方向が変わる場合など）、それらの要因を考慮して最終的に定まる方向が第１方向や第２方向となることは必須ではなく、第１スイッチによる入力が連続して行われていると第１判断手段が判断したことに応じて第１方向に移動または加速する要因が発生し、また、第１スイッチによる入力と他スイッチによる入力とが交互に行われていると第１判断手段が判断したことに応じて第２方向に移動又は加速する要因が発生する。
【００２０】
また、前記第１判断手段は、前記入力検出手段によって前記第１スイッチによる入力が検出される毎に、過去所定時間以内に行われた入力に基づいて、前記第１スイッチによる入力が連続して行われているか、前記第１スイッチによる入力と前記他スイッチによる入力とが交互に行われているかを判断してもよい。
【００２１】
また、前記第１判断手段は、所定時間以上の間隔を空けることなく継続して行われた一連の入力を参照して、前記第１スイッチによる入力が連続して行われているか、前記第１スイッチによる入力と前記他スイッチによる入力とが交互に行われているかを判断してもよい。すなわち、前回の入力のタイミングと今回の入力のタイミングの間が所定時間より長くなった場合、当該今回の入力は初回の入力として扱い、当該前回の入力との比較による動作をさせなくてもよい。
【００２２】
また、前記入力検出手段は、前記第１スイッチ又は前記他スイッチがプレイヤによって押されていない状態から押されている状態に変化したこと、もしくは前記第１スイッチ又は前記他スイッチがプレイヤによって押されている状態から押されていない状態に変化したことを、前記入力手段による入力として検出してもよい。
【００２３】
また、前記第１スイッチが、太鼓型コントローラに設けられた叩き面であってもよい。
【００２４】
また、前記動作制御手段は、前記第１スイッチによる入力と前記第２スイッチによる入力とが交互に行われていると前記第１判断手段または前記第２判断手段が判断したときには、前記仮想ゲーム空間において前記オブジェクトの前進方向に当該オブジェクトを移動又は加速させ、前記第１スイッチによる入力が連続して行われていると前記第１判断手段が判断したときには、前記仮想ゲーム世界において前記前進方向を基準とした右方向に前記オブジェクトを移動又は加速させ、前記第２スイッチによる入力が連続して行われていると前記第２判断手段が判断したときには、前記仮想ゲーム空間において前記前進方向を基準とした左方向に前記オブジェクトを移動又は加速させてもよい。
【００２５】
なお、「前進方向」はオブジェクトの前方向（オブジェクトが向いている方向）であってもよいし、オブジェクトの向きとは別に前進方向を決定してもよい。前者の場合で仮想３次元空間の場合は、オブジェクトの姿勢マトリクス（オブジェクトの前方向・右方向・上方向を示す）に基く前方向を前進方向としてもよい。後者の場合で、オブジェクトの向きと前進方向を別々に独立して制御する場合には、前進方向を示すベクトル（前進方向ベクトル）やマトリクス（前進方向マトリクス）を姿勢マトリクスとは別に持たせても良い（前進方向ベクトルの場合は前進方向のみを示し、前進方向マトリクスの場合は前進方向と、前進方向を基準とした右方向と、前進方向を基準とした上方向を示す）。また、オブジェクトの３次元空間における現在位置などの条件に応じて自動的に前進方向を決定するようにしてもよい。
【００２６】
「前進方向を基準とした右方向」「前進方向を基準とした左方向」は、前進方向に対して左右対称な（すなわち、前進方向に対して同一角度を成す）右方向・左方向であるのが好ましい。例えば、前進方向に直交する右方向・左方向であってもよい。また、仮想３次元空間の場合は、「前進方向」と「前進方向を基準とした右方向」と「前進方向を基準とした左方向」は、同一仮想平面上にあるのが好ましい。ただし、同一仮想平面上にない場合であっても、水平面またはオブジェクトの現在位置における法線方向に直交する平面または前進方向マトリクスの上方向に直交する平面に、「前進方向」と「前進方向を基準とした右方向」と「前進方向を基準とした左方向」をそれぞれ投影したときに、「前進方向を基準とした右方向」を投影した方向と「前進方向を基準とした左方向」を投影した方向が、「前進方向」を投影した方向を基準として左右にあれば良く、さらに、左右対称であれば好ましい。
【００２７】
また、前記ゲームプログラムは、前記コンピュータを、前記仮想ゲーム空間内の所定のルートを定義したルートデータを、前記オブジェクトの現在位置データに基いて参照することにより、前記前進方向を当該ルートに沿う方向に設定する前進方向設定手段としてさらに機能させてもよい。
【００２８】
また、前記動作制御手段は、前記第１スイッチによる入力と前記第２スイッチによる入力とが交互に行われていると前記第１判断手段または前記第２判断手段が判断したときには、前記仮想ゲーム空間において前記オブジェクトの前進方向に当該オブジェクトを移動又は加速させ、前記第１スイッチによる入力が連続して行われていると前記第１判断手段が判断したときには、前記仮想ゲーム世界において前記前進方向を右方向に変更し、前記第２スイッチによる入力が連続して行われていると前記第２判断手段が判断したときには、前記仮想ゲーム空間において前記前進方向を左方向に変更してもよい。
【００２９】
また、前記オブジェクトが、前記仮想ゲーム世界に設けられたレースコース上を移動する移動オブジェクトであり、前記第１動作が、前記レースコースに対して垂直な第１方向に移動又は加速する動作であり、前記第２動作が、前記レースコースの進行方向に対応する第２方向に移動又は加速する動作であり、前記第３動作が、前記第１方向とは逆の第３方向に移動又は加速する動作であってもよい。
【００３０】
また、前記ゲームプログラムは、前記第１スイッチおよび前記第２スイッチの一方または両方が押し続けられているかどうかを判断する長押し判断手段（Ｓ４０）として前記コンピュータをさらに機能させ、前記動作制御手段は、前記長押し判断手段の判断結果が肯定である場合に、前記オブジェクトを減速してもよい。
【００３１】
また、前記動作制御手段は、前記第１スイッチおよび前記第２スイッチのいずれも押されていない場合には、前記オブジェクトの現在の移動速度を維持してもよい。
【００３２】
また、前記ゲームプログラムは、前記第１スイッチまたは前記他スイッチの連打速さを検出する連打速さ検出手段として前記コンピュータをさらに機能させ、前記動作制御手段は、前記連打速さ検出手段の検出結果に応じた速度又は加速度で前記オブジェクトを移動又は加速してもよい。
【００３３】
本発明の他のゲームプログラムは、第１スイッチ（６Ｒ）および当該第１スイッチと異なる第２スイッチ（６Ｌ）を含む入力手段を利用して仮想ゲーム世界のオブジェクトを動作制御するためのゲームプログラムである。当該ゲームプログラムは、コンピュータ（３１）を、表示制御手段（Ｓ１０、Ｓ５０）、入力検出手段（Ｓ１２）、および動作制御手段（Ｓ３０、Ｓ３２）として機能させるためのゲームプログラムである。表示制御手段は、前記オブジェクトを画面に表示する手段である。入力検出手段は、前記入力手段による入力が行われたことを検出する手段である。動作制御手段は、（ａ）今回押されたスイッチと前回押されたスイッチが異なり、かつ、今回押されたスイッチと前々回押されたスイッチが同一である場合に、交互入力が行われたと判断して、オブジェクトに交互入力に応じた動作を行わせ、（ｂ）今回押されたスイッチと前回押されたスイッチが異なり、今回押されたスイッチと前々回押されたスイッチが異なる場合には、交互入力が行われないと判断する手段である。
【００３４】
なお、前記動作制御手段は、（ｂ）今回押されたスイッチと前回押されたスイッチが異なり、かつ今回押されたスイッチと前々回押されたスイッチが異なる場合に、前記オブジェクトに、交互入力に応じた動作とは異なる、今回押されたスイッチに関連付けられた動作を行わせてもよい。
【００３５】
また、前記動作制御手段は、（ｂ）今回押されたスイッチと前回押されたスイッチが異なり、かつ今回押されたスイッチと前々回押されたスイッチが異なる場合に、前記オブジェクトに動作を行わせないようにしてもよい。
【００３６】
また、前記動作制御手段は、（ｃ）前記入力検出手段によって前記第１スイッチまたは前記第２スイッチによる入力が検出されたときに、当該入力が１回目の入力である場合、前記オブジェクトに、前記交互入力に応じた動作を行わせてもよい。
【００３７】
本発明のさらに他のゲームプログラムは、仮想ゲーム世界に設けられたレースコースに対して垂直な第１方向に関連付けられた第１スイッチ（６Ｒ）と、前記第１方向とは逆の第３方向に関連付けられた第２スイッチ（６Ｌ）の２つのスイッチを利用して前記レースコース上を移動するオブジェクトを制御するためのゲームプログラムである。当該ゲームプログラムは、コンピュータ（３１）を、表示制御手段（Ｓ１０、Ｓ５０）、操作検出手段（Ｓ１２）、操作履歴格納手段（Ｓ１６）、前回入力判断手段（Ｓ２２）、前々回入力判断手段（Ｓ２６）、および動作制御手段（Ｓ３０、Ｓ３２）として機能させるためのゲームプログラムである。表示制御手段は、前記オブジェクトを画面（２）に表示する手段である。操作検出手段は、第１スイッチおよび第２スイッチからの信号に基づいて、第１スイッチまたは第２スイッチのいずれかのスイッチが押されたかどうかを周期的に検出する手段である。操作履歴格納手段は、前記操作検出手段によって押されたことが検出されたスイッチの種類を一時的にメモリ（３２）に格納する手段である。前回入力判断手段は、前記操作検出手段によっていずれかのスイッチが押されたことが検出されたときに、今回押されたスイッチと前回押されたスイッチが同一かどうかを判断する手段である。前々回入力判断手段は、前記前回入力判断手段の判定結果が否定である場合に、今回押されたスイッチと前々回押されたスイッチが同一かどうかを判断する手段である。動作制御手段は、（ａ）前記前回入力判断手段の判断結果が肯定である場合（Ｓ２２でＹＥＳ）には、今回押されたスイッチに関連付けられた方向に前記オブジェクトが移動し、（ｂ）前記前回入力判断手段の判断結果が否定であり、かつ前記前々回入力判断手段の判断結果が肯定である場合（Ｓ２６でＹＥＳ）には、前記レースコースの進行方向に対応する第３方向に前記オブジェクトが加速し、（ｃ）前記前回入力判断手段の判断結果が否定であり、かつ前記前々回入力判断手段の判断結果が否定である場合（Ｓ２６でＮＯ）には、前記第３方向に前記オブジェクトが加速しないように前記オブジェクトの動作を制御する手段である。
【００３８】
なお、前記動作制御手段は、（ｃ）前記前回入力判断手段の判断結果が否定であり、かつ前記前々回入力判断手段の判断結果が否定である場合には、今回押されたスイッチに関連付けられた方向に前記オブジェクトを移動させてもよい。
【００３９】
本発明のゲーム装置は、第１スイッチ（６Ｒ）および当該第１スイッチと異なる１つ以上の他スイッチ（６Ｌ）を含む入力手段、仮想ゲーム世界のオブジェクトを画面に表示する表示制御手段（３１、Ｓ１０、Ｓ５０）、前記入力手段による入力が行われたことを検出する入力検出手段（３１、Ｓ１２、Ｓ６０、Ｓ６８）、前記入力検出手段によって前記第１スイッチによる入力が検出される毎に、前記第１スイッチによる入力が連続して行われているか、前記第１スイッチによる入力と前記他スイッチによる入力とが交互に行われているかを判断する第１判断手段（３１、Ｓ２０、Ｓ２２、Ｓ２４、Ｓ２６、Ｓ６２）、および（ａ）前記第１スイッチによる入力が連続して行われていると前記第１判断手段が判断したときには、前記オブジェクトに前記第１スイッチに関連付けられた第１動作を行わせ、（ｂ）前記第１スイッチによる入力と前記他スイッチによる入力が交互に行われていると前記第１判断手段が判断したときには、前記オブジェクトに前記第１動作と異なる第２動作を行わせる動作制御手段（３１、Ｓ３０、Ｓ３２、Ｓ６４、Ｓ６６、Ｓ７２、Ｓ７４）を備えたゲーム装置である。前記動作制御手段は、前記第１スイッチによる入力が１回目の入力であるときには、前記オブジェクトに前記第２動作を行わせる。
【００４０】
本発明の他のゲーム装置は、第１スイッチ（６Ｒ）および当該第１スイッチと異なる第２スイッチ（６Ｌ）を含む入力手段、仮想ゲーム世界のオブジェクトを画面に表示する表示制御手段（３１、Ｓ１０、Ｓ５０）、前記入力手段による入力が行われたことを検出する入力検出手段（３１、Ｓ１２）、および（ａ）今回押されたスイッチと前回押されたスイッチが異なり、かつ、今回押されたスイッチと前々回押されたスイッチが同一である場合に、交互入力が行われたと判断して、前記オブジェクトに交互入力に応じた動作を行わせ、（ｂ）今回押されたスイッチと前回押されたスイッチが異なり、今回押されたスイッチと前々回押されたスイッチが異なる場合には、交互入力が行われないと判断する動作制御手段（３１、Ｓ３０、Ｓ３２）を備えたゲーム装置である。
【００４１】
本発明のさらに他のゲーム装置は、仮想ゲーム世界に設けられたレースコースに対して垂直な第１方向に関連付けられた第１スイッチ（６Ｒ）、前記第１方向とは逆の第３方向に関連付けられた第２スイッチ（６Ｌ）の２つのスイッチ、前記レースコース上を移動するオブジェクトを画面に表示する表示制御手段（３１、Ｓ１０、Ｓ５０）、第１スイッチおよび第２スイッチからの信号に基づいて、第１スイッチまたは第２スイッチのいずれかのスイッチが押されたかどうかを周期的に検出する操作検出手段（３１、Ｓ１２）、前記操作検出手段によって押されたことが検出されたスイッチの種類を一時的にメモリに格納する操作履歴格納手段（３１、Ｓ１６）、前記操作検出手段によっていずれかのスイッチが押されたことが検出されたときに、今回押されたスイッチと前回押されたスイッチが同一かどうかを判断する前回入力判断手段（３１、Ｓ２２）、前記前回入力判断手段の判定結果が否定である場合に、今回押されたスイッチと前々回押されたスイッチが同一かどうかを判断する前々回入力判断手段（３１、Ｓ２６）、および（ａ）前記前回入力判断手段の判断結果が肯定である場合（Ｓ２２でＹＥＳ）には、今回押されたスイッチに関連付けられた方向に前記オブジェクトが移動し、（ｂ）前記前回入力判断手段の判断結果が否定であり、かつ前記前々回入力判断手段の判断結果が肯定である場合（Ｓ２６でＹＥＳ）には、前記レースコースの進行方向に対応する第３方向に前記オブジェクトが加速し、（ｃ）前記前回入力判断手段の判断結果が否定であり、かつ前記前々回入力判断手段の判断結果が否定である場合（Ｓ２６でＮＯ）には、前記第３方向に前記オブジェクトが加速しないように前記オブジェクトの動作を制御する動作制御手段（３１、Ｓ３０、Ｓ３２）を備えたゲーム装置である。
【００４２】
本発明のさらに他のゲームプログラムは、プレイヤによる第１操作（６Ｒの押し下げ操作、７Ｒの押し下げ操作、または、７Ｒ´の動き入力操作）および当該第１操作と異なる第２操作（６Ｌの押し下げ操作、７Ｌの押し下げ操作、または、７Ｌ´の動き入力操作）を検出可能な入力手段を利用して仮想ゲーム世界のオブジェクトを動作制御するためのゲームプログラムである。当該ゲームプログラムは、コンピュータを、表示制御手段（Ｓ１０、Ｓ５０）、入力検出手段（Ｓ１２、Ｓ６０、Ｓ６８）、第１判断手段（Ｓ２０、Ｓ２２、Ｓ２４、Ｓ２６、Ｓ６２）、および動作制御手段（Ｓ３０、Ｓ３２、Ｓ６４、Ｓ６６、Ｓ７２、Ｓ７４）として機能させるためのゲームプログラムである。表示制御手段は、前記オブジェクトを画面（２）に表示する表示制御手段である。入力検出手段は、前記入力手段による入力が行われたことを検出する手段である。第１判断手段は、前記入力検出手段によって前記第１操作が検出される毎に、前記第１操作が連続して行われているか、前記第１操作と前記第２操作とが交互に行われているかを判断する手段である。動作制御手段は、（ａ）前記第１操作が連続して行われていると前記第１判断手段が判断したときには、前記オブジェクトに前記第１操作に関連付けられた第１動作を行わせ、（ｂ）前記第１操作と前記第２操作が交互に行われていると前記第１判断手段が判断したときには、前記オブジェクトに前記第１動作と異なる第２動作を行わせる手段である。前記動作制御手段は、前記第１操作が１回目の操作であるときには、前記オブジェクトに前記第２動作を行わせる。
【発明の効果】
【００４３】
本発明によれば、仮想ゲーム世界のキャラクタに対して複数の操作（複数のスイッチ操作や複数の動き入力など）の連続した入力により多様な動作指示を与えることができる。
【発明を実施するための最良の形態】
【００４４】
以下、図面を参照して、本発明の一実施形態に係るゲームシステムについて説明する。
【００４５】
図１は、本発明の一実施形態に係るゲームシステムの構成を示す外観図である。図１に示すように、ゲームシステム１は、テレビ２、ゲーム機本体３、ＤＶＤ−ＲＯＭ４、メモリカード５およびコンガ型コントローラ６を備える。ＤＶＤ−ＲＯＭ４およびメモリカード５は、ゲーム機本体３に着脱自在に装着される。コンガ型コントローラ６は、通信ケーブルを介して、ゲーム機本体３に設けられた４つのコントローラポート用コネクタのいずれかに接続される。テレビ２は、ＡＶケーブル等によってゲーム機本体３と接続される。なお、ゲーム機本体３とコントローラ６との通信は無線通信であってもよい。
【００４６】
コンガ型コントローラ６には、スタートボタン６Ｓ、右叩き面６Ｒ、左叩き面６Ｌの３つのスイッチと、マイクロフォン６Ｍが設けられている。後述するように、プレイヤは、右叩き面６Ｒまたは左叩き面６Ｌを叩くことによって、仮想ゲーム世界におけるキャラクタの動作を制御することができる。
【００４７】
なお、コンガ型コントローラ６の替わりに、図２のような一般的なコントローラ７を使用してもよい。このコントローラ７には、スタートボタン７Ｓ、Ａボタン７Ａ、Ｒボタン７Ｒ、Ｌボタン７Ｌなどの複数のスイッチが設けられている。プレイヤは、コンガ型コントローラ６の右叩き面６Ｒおよび左叩き面６Ｌの替わりに、例えばＲボタン７ＲおよびＬボタン７Ｌを利用することができる。
【００４８】
ＤＶＤ−ＲＯＭ４は、ゲームプログラムやゲームデータ等を固定的に記憶している。プレイヤがゲームをプレイするとき、ＤＶＤ−ＲＯＭ４はゲーム機本体３に装着される。なお、ゲームプログラム等を記憶する手段として、ＤＶＤ−ＲＯＭ４の代わりに例えばＣＤ−ＲＯＭ、ＭＯ、メモリカード、ＲＯＭカートリッジ等の外部記憶媒体を用いてもよい。
【００４９】
ゲーム機本体３は、ＤＶＤ−ＲＯＭ４に記録されているゲームプログラムを読み出し、読み出したゲームプログラムに応じた処理を行う。
【００５０】
テレビ２は、ゲーム機本体３から出力された画像データを画面に表示する。
【００５１】
メモリカード５は、例えばフラッシュメモリ等の書き換え可能な記憶媒体をバックアップメモリとして備えており、このバックアップメモリに例えばゲームのセーブデータ等のデータを記録する。
【００５２】
図３は、ゲーム機本体３の内部構成を示すブロック図である。以下、図３を参照しながら、ゲームシステム１の各部についてより詳細に説明する。
【００５３】
図３において、ゲーム機本体３は、ＣＰＵ３１と、ワークメモリ３２と、外部メモリインターフェース（Ｉ／Ｆ）３３と、コントローラインターフェース（Ｉ／Ｆ）３４と、ビデオＲＡＭ（ＶＲＡＭ）３５と、グラフィックスプロセッシングユニット（ＧＰＵ）３６と、光ディスクドライブ３７とを備えている。
【００５４】
ゲーム開始の際、まず、光ディスクドライブ３７は、ゲーム機本体３に装着されたＤＶＤ−ＲＯＭ４を駆動する。ＤＶＤ−ＲＯＭ４に記憶されているゲームプログラムはワークメモリ３２にロードされる。このワークメモリ３２上のプログラムをＣＰＵ３１が実行することによってゲームが開始される。ゲーム開始後、プレイヤは、コンガ型コントローラ６を用いてゲームをプレイする。プレイヤの操作に従い、コンガ型コントローラ６は操作データをゲーム機本体３に出力する。コンガ型コントローラ６から出力される操作データは、コントローラＩ／Ｆ３４を介してＣＰＵ３１に供給される。ＣＰＵ３１は、入力された操作データに応じてゲーム処理を行う。ゲーム処理における画像データ生成等に際して、ＧＰＵ３６が用いられる。
【００５５】
ＧＰＵ３６は、３次元の仮想ゲーム世界に置かれた物体や図形に関する立体モデル（例えばポリゴンで構成されるオブジェクト）の座標についての演算処理（例えば立体モデルの回転・拡大縮小・変形や、ワールド座標系の座標からカメラ座標系やスクリーン座標系の座標への変換）を行う。またＧＰＵ３６は、所定のテクスチャに基づいて、スクリーン座標に投影された立体モデルについて各ピクセルのカラーデータ（ＲＧＢデータ）をＶＲＡＭ３５に書き込むことによって、ゲーム画像を生成する。ＧＰＵ３６は、こうしてテレビ２に表示すべきゲーム画像を生成し、このゲーム画像をテレビ２に適宜出力する。なお本実施形態では、画像処理専用のメモリ（ＶＲＡＭ３５）を別途設けたハードウェア構成としたが、これに限らず例えばワークメモリ３２の一部を画像処理用のメモリとして利用する方式（ＵＭＡ：Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ  Ａｒｃｈｉｔｅｃｔｕｒｅ）を採用してもよい。
【００５６】
ワークメモリ３２には、ＤＶＤ−ＲＯＭ４から読み出された各種プログラムやデータが格納される。これらのデータの中には、仮想ゲーム世界に配置される３次元モデルを構成するポリゴンに関するデータや、ポリゴンに色を貼り付けるためのテクスチャ等が含まれる。
【００５７】
図４は、テレビ２の画面に表示されるゲーム画像の一例である。なお、本実施形態では、本発明をレースゲームに適用した場合の例を説明するが、本発明はこれに限らず、任意のゲームに適用可能である。
【００５８】
テレビ２の画面には、仮想ゲーム世界に設置されたレースコースと、プレイヤによって操作されるプレイヤキャラクタと、レースコース上に配置された障害物やコインが表示される。プレイヤはコンガ型コントローラ６を用いて、できるだけ障害物に当たらないように、かつできるだけ多くのコインを獲得できるように、かつできるだけ早くゴールに到着できるようにプレイヤキャラクタを操作する。
【００５９】
プレイヤがコンガ型コントローラ６を用いて入力することのできる指示としては、例えば、加速指示、右移動指示、左移動指示、減速指示が挙げられる。
【００６０】
加速指示は、コンガ型コントローラ６の右叩き面６Ｒと左叩き面６Ｌを交互に連打することによって入力することができる。加速指示が入力されると、キャラクタは前方（キャラクタの向いている方向またはキャラクタの前進方向）に加速する。
【００６１】
なお、前進方向は、仮想ゲーム世界において常に一定の方向である必要はなく、仮想ゲーム世界の領域毎に前進方向が個別に設定されていてもよい。また、図５に示すように、仮想ゲーム世界に設定された基準ルートに対して常に平行となるように前進方向が随時更新されてもよい。そのような処理を実現するためには、例えば、基準ルートを定義したルートデータを用意しておき、ＣＰＵ３１が、このルートデータとキャラクタの現在位置に基づいて、キャラクタの前進方向を基準ルートに沿う方向に随時更新すればよい。
【００６２】
右移動指示は、コンガ型コントローラ６の右叩き面６Ｒを連打することによって入力することができる。右移動指示が入力されると、キャラクタは右方向（キャラクタの向いている方向を基準とする右方向またはキャラクタの前進方向を基準とする右方向）に移動する。このとき、プレイヤが右叩き面６Ｒを素早く連打するほど、キャラクタは右方向により早く移動する。なお、右方向に移動することに代えて、キャラクタの向きや前進方向を現在の方向から右向きに変更してもよい。
【００６３】
左移動指示は、コンガ型コントローラ６の左叩き面６Ｌを連打することによって入力することができる。左移動指示が入力されると、キャラクタは左方向（キャラクタの向いている方向を基準とする左向またはキャラクタの前進方向を基準とする左方向）に移動する。このとき、プレイヤが左叩き面６Ｌを素早く連打するほど、キャラクタは左方向により早く移動する。なお、左方向に移動することに代えて、キャラクタの向きや前進方向を現在の方向から左向きに変更してもよい。
【００６４】
減速指示は、コンガ型コントローラ６の右叩き面６Ｒと左叩き面６Ｌの両方を一定時間以上長押しすることによって入力することができる。減速指示が入力されると、キャラクタは減速する。
【００６５】
以下、本実施形態におけるゲーム機本体３の動作を詳細に説明する。
【００６６】
図６は、ワークメモリ３２のメモリマップである。ワークメモリ３２には、ゲームプログラム４０、ゲーム画像データ４１、レースコースデータ４２、キャラクタ制御データ４３、操作データ４４、入力履歴情報４５、叩き間隔タイマ４６、および同時押しタイマ４７が格納される。
【００６７】
ゲーム画像データ４１は、テレビ２の画面に表示されるゲーム画像を生成するためのデータであって、キャラクタ画像と背景画像を含んでいる。
【００６８】
レースコースデータ４２は、仮想ゲーム世界に設定されたレースコースの形状を示すデータである。
【００６９】
キャラクタ制御データ４３は、仮想ゲーム世界におけるキャラクタの移動を制御するためのデータであって、現在位置情報と速度情報を含んでいる。現在位置情報はキャラクタの現在位置を示す情報（座標データ）であり、速度情報はキャラクタの移動速度を示す情報（ベクトルデータ）である。
【００７０】
操作データ４４は、コンガ型コントローラ６から出力されるデータであって、具体的には、プレイヤがスタートボタン６Ｓを押しているか否か、右叩き面６Ｒを押しているか否か、左叩き面６Ｌを押しているか否か、等を示すデータである。
【００７１】
入力履歴情報４５は、プレイヤによって叩かれた叩き面の種類（右叩き面６Ｒまたは左叩き面６Ｌ）を過去３回分について示す情報である。
【００７２】
叩き間隔タイマ４６は、プレイヤによる叩き操作（右叩き面６Ｒまたは左叩き面６Ｌを叩く操作）の時間間隔を計測するためのタイマである。
【００７３】
同時押しタイマ４７は、プレイヤによる同時押し操作（右叩き面６Ｒと左叩き面６Ｌの両方を長押しする操作）の継続時間を計測するためのタイマである。
【００７４】
以下、図７および図８のフローチャートを参照して、ゲームプログラム４０に基づくＣＰＵ３１の処理の流れを説明する。
【００７５】
図７において、ゲームプログラム４０の実行が開始されると、ＣＰＵ３１は、まずステップＳ１０で初期画像を表示する。このとき、キャラクタの現在位置や速度には初期値が設定される。
【００７６】
ステップＳ１２では、操作データ４４を参照して、プレイヤによる叩き操作があったかどうかを判断する。ここでは、プレイヤが右叩き面６Ｒまたは左叩き面６Ｌを押している状態から押していない状態に変化したときに、プレイヤによる叩き操作があったと判断する。なお、変形例として、プレイヤが右叩き面６Ｒまたは左叩き面６Ｌを押していない状態から押している状態に変化したときに、プレイヤによる叩き操作があったと判断してもよい。プレイヤによる叩き操作があった場合には処理はステップＳ１６に進み、プレイヤによる叩き操作がなかった場合には処理はステップＳ１４に進む。なお、右叩き面６Ｒと左叩き面６Ｌが両方とも押されている場合には、プレイヤによる叩き操作がなかったと判断し、処理はステップＳ１４に進む。
【００７７】
ステップＳ１４では、叩き間隔タイマ４６に１を加算する。そして、処理は図８のステップＳ３４に進む。
【００７８】
ステップＳ１６では、入力履歴情報４５を更新する。具体的には、今回検出された叩き操作（すなわち直前のステップＳ１２において検出された叩き操作）においてプレイヤによって叩かれた叩き面の種類（右叩き面６Ｒまたは左叩き面６Ｌ）を示す情報を、「今回叩かれた叩き面」として入力履歴情報４５に追加する。ただし、入力履歴情報４５の「今回叩かれた叩き面」または「前回叩かれた叩き面」にすでに叩き面を示す情報が格納されている場合には、それらの情報を「前回叩かれた叩き面」および「前々回叩かれた叩き面」へそれぞれ移動した後で、「今回叩かれた叩き面」の情報を更新する。
【００７９】
ステップＳ１８では、叩き間隔タイマ４６を０にリセットする。
【００８０】
ステップＳ２０では、今回検出された叩き操作が「連打の一打目」かどうかを判断する。具体的には、入力履歴情報４５を参照し、前回叩かれた叩き面に関する情報が保持されていない場合に、今回検出された叩き操作が「連打の一打目」であると判断する。なお、本実施形態では、前回の叩き操作と今回の叩き操作の時間間隔が一定時間（例えば６０フレーム期間）以上空いた場合に、今回の叩き操作を「連打の一打目」とみなしている。今回検出された叩き操作が「連打の一打目」である場合には処理はステップＳ２８に進み、今回検出された叩き操作が「連打の一打目」でない場合には処理はステップＳ２２に進む。
【００８１】
ステップＳ２２では、入力履歴情報４５を参照し、「今回叩かれた叩き面」が「前回叩かれた叩き面」と同じ叩き面かどうかを判断する。「今回叩かれた叩き面」が「前回叩かれた叩き面」と同じ叩き面である場合には処理はステップＳ３２に進み、「今回叩かれた叩き面」が「前回叩かれた叩き面」と同じ叩き面でない場合には処理はステップＳ２４に進む。
【００８２】
ステップＳ２４では、今回検出された叩き操作が「連打の二打目」かどうかを判断する。具体的には、入力履歴情報４５を参照し、前々回叩かれた叩き面に関する情報が保持されていない場合に、今回検出された叩き操作が「連打の二打目」であると判断する。なお、本実施形態では、前々回の叩き操作と前回の叩き操作の時間間隔が一定時間（例えば６０フレーム期間）以上空いており、かつ前回の叩き操作と今回の叩き操作の時間間隔が一定時間未満である場合に、今回の叩き操作を「連打の二打目」とみなしている。今回検出された叩き操作が「連打の二打目」である場合には処理はステップＳ２８に進み、今回検出された叩き操作が「連打の二打目」でない場合には処理はステップＳ２６に進む。
【００８３】
ステップＳ２６では、入力履歴情報４５を参照し、「今回叩かれた叩き面」が「前々回叩かれた叩き面」と同じ叩き面かどうかを判断する。「今回叩かれた叩き面」が「前々回叩かれた叩き面」と同じ叩き面である場合には処理はステップＳ２８に進み、「今回叩かれた叩き面」が「前々回叩かれた叩き面」と同じ叩き面でない場合には処理はステップＳ３２に進む。
【００８４】
ステップＳ２８では、キャラクタ制御データ４３の速度情報（速度ベクトル）を参照し、キャラクタの速度（速度ベクトルの大きさ）が予め設定された上限値にすでに達しているかどうかを判断する。そして、キャラクタの速度がすでに上限値に達している場合には処理は図８のステップＳ３４に進み、キャラクタの速度がまだ上限値に達していない場合には処理はステップＳ３０に進む。
【００８５】
ステップＳ３０では、キャラクタの速度（速度ベクトルの大きさ）が一定量だけ増加するように、キャラクタ制御データ４３の速度情報（速度ベクトル）を更新する。なお、速度を一定量だけ増加させる替わりに、現在速度に応じて速度の増加量を変化させても良いし、コースの形状に応じて速度の増加量を変化させてもよい。ステップＳ３０の後、処理は図８のステップＳ３４に進む。
【００８６】
ステップＳ３２では、「今回叩かれた叩き面」に応じた方向にキャラクタが移動するように、キャラクタ制御データ４３の現在位置情報を更新する。具体的には、今回叩かれた叩き面が右叩き面６Ｒである場合には、キャラクタが右方向に移動するように現在位置情報を更新し、今回叩かれた叩き面が左叩き面６Ｌである場合には、キャラクタが左方向に移動するように現在位置情報を更新する。なお、現在位置情報を更新する替わりに、「今回叩かれた叩き面」に応じて速度ベクトルの向きを変化させてもよい。
【００８７】
図８のステップＳ３４では、右叩き面６Ｒと左叩き面６Ｌの両方とも押されているかどうかを判断し、両方とも押されている場合には処理はステップＳ３８に進み、いずれか一方のみしか押されていない場合もしくは両方とも押されていない場合には処理はステップＳ３６に進む。
【００８８】
ステップＳ３６では、同時押しタイマ４７を０にリセットする。
【００８９】
ステップＳ３８では、同時押しタイマ４７に１を加算する。
【００９０】
ステップＳ４０では、同時押しタイマ４７を参照し、同時押しの状態が一定時間以上続いたかどうかを判断する。例えば、同時押しタイマ４７の値が１０を超えているときに、同時押しの状態が一定時間以上続いたと判断する。同時押しの状態が一定時間以上続いている場合には処理はステップＳ４２に進み、そうでない場合には処理はステップＳ４４に進む。
【００９１】
ステップＳ４２では、キャラクタの速度（速度ベクトルの大きさ）が一定量だけ減少するように、キャラクタ制御データ４３の速度情報（速度ベクトル）を更新する。なお、速度を一定量だけ減少させる替わりに、現在速度に応じて速度の減少量を変化させても良いし、コースの形状に応じて速度の減少量を変化させてもよい。
【００９２】
ステップＳ４４では、叩き間隔タイマ４６を参照し、叩き操作の無い状態が一定時間以上続いているかどうかを判断する。例えば、叩き間隔タイマ４６の値が６０を超えているときに、叩き操作の無い状態が一定時間以上続いたと判断する。叩き操作の無い状態が一定時間以上続いている場合には処理はステップＳ４６に進み、そうでない場合には処理はステップＳ４８に進む。
【００９３】
ステップＳ４６では、入力履歴情報４５をクリアする。
【００９４】
ステップＳ４８では、速度情報に基づいて現在位置情報を更新する。
【００９５】
ステップＳ５０では、更新された現在位置情報に基づいてゲーム画像を更新する。その後、ステップＳ１２に戻る。
【００９６】
こうして、上記のような処理（ステップＳ１２からステップＳ５０までの処理）が１フレーム期間（６０分の１秒）の周期で繰り返される。
【００９７】
図９は、プレイヤによる叩き操作の入力パターンと、キャラクタの動作との対応関係の一例を示している。
【００９８】
なお、本実施形態では、「連打の一打目」の叩き操作が行われたときにキャラクタを加速（すなわち、前進方向に加速）させるようにしているが、本発明はこれに限らず、「連打の一打目」の叩き操作が行われたときに、叩かれた叩き面に応じた方向にキャラクタを移動させてもよい。また、「連打の一打目」の叩き操作が行われたときにキャラクタを加速も右移動も左移動もさせないようにしてもよい。
【００９９】
本実施形態では、プレイヤによる叩き操作のパターンが「右叩き面→右叩き面→左叩き面」のときには、キャラクタを加速させずに左に移動させるようにしているが、これは、プレイヤがキャラクタを右に移動させた直後にキャラクタを加速させる状況よりも、キャラクタを右に移動させた直後にキャラクタを左に移動させる状況（例えば、Ｓ字カーブを曲がるときや、プレイヤがキャラクタを右に移動させ過ぎたためにキャラクタを少し左に戻すときなど）の方が起こりやすいためである。プレイヤによる叩き操作のパターンが「左叩き面→左叩き面→右叩き面」のときにキャラクタを加速させずに右に移動させているのも同様の理由からである。これにより、操作性を向上させることができる。なお、変形例として、プレイヤによる叩き操作のパターンが「右叩き面→右叩き面→左叩き面」のとき、もしくは「左叩き面→左叩き面→右叩き面」のときに、キャラクタを加速させるようにしてもよいし、キャラクタを右移動も左移動も加速もさせないようにしてもよい。
【０１００】
また、本実施形態では、同一の叩き面が連続して２回以上叩かれたときに、叩かれた叩き面に関連づけられた方向にキャラクタが移動するが、このとき、叩き間隔タイマ４６の値が小さいほど（すなわち叩き面が素早く連打されているほど）、キャラクタを大きく（または速く）移動または加速させるようにしてもよい。同様に、本実施形態では、右叩き面６Ｒと左叩き面６Ｌが交互に叩かれたときにキャラクタが加速するが、このとき、叩き間隔タイマ４６の値が小さいほど（すなわち叩き面が素早く連打されているほど）、キャラクタを大きく加速（または移動）させるようにしてもよい。
【０１０１】
なお、図６のメモリマップや図７および図８のフローチャートは単なる一具体例に過ぎず、本実施形態と同様の処理結果を得るために図６と異なるメモリマップや図７および図８と異なるフローチャートを採用し得ることは言うまでもない。
【０１０２】
以上のように、本実施形態によれば、プレイヤは、仮想ゲーム世界のキャラクタに対して、２つの叩き面を叩く操作だけで、少なくとも３種類の動作指示を連続して与えることができる。
【０１０３】
次に、図１０〜図１２を参照して、本発明の他の実施形態について説明する。
【０１０４】
これから説明する実施形態は、第１スイッチおよび第１スイッチと異なる１つ以上の他スイッチを含む入力手段を利用して仮想ゲーム世界のオブジェクトを動作制御するためのゲームプログラムに関するものである。第１スイッチは、例えば図１の右叩き面６Ｒであってもよいし、図２のＲボタン７Ｒであってもよい。他スイッチは、第１スイッチ以外の任意のスイッチである。例えば、図２の例で、Ｒボタン７Ｒを第１スイッチとすると、Ｌボタン７Ｌ、スタートボタン７Ｓ、Ａボタン７Ａはいずれも他スイッチである。
【０１０５】
図１１は、ゲームプログラムに基づいてＣＰＵ３１によって実行されるゲーム処理の一例である。以下、図１１を参照して、このゲーム処理の詳細を説明する。
【０１０６】
ＣＰＵ３１はステップＳ６０で、第１スイッチからの入力があったかどうかを判断する。第１スイッチからの入力があった場合には処理はステップＳ６２に進み、第１スイッチからの入力がない場合には、第１スイッチからの入力があるまでステップＳ６０の処理を繰り返す。
【０１０７】
ステップＳ６０において第１スイッチからの入力があったことが検出されると、ＣＰＵ３１はステップＳ６２で、第１スイッチからの入力が連続して行われたのか、第１スイッチからの入力と他スイッチからの入力が交互に行われたのかを判断する。これは、過去のプレイヤの操作内容に基づいて判断することができる。例えば、ステップＳ６０において第１スイッチからの入力が検出される直前に第１スイッチからの入力が行われていた場合には、第１スイッチからの入力が連続して行われたと判断し、ステップＳ６０において第１スイッチからの入力が検出される直前に他スイッチからの入力が行われていた場合には、第１スイッチからの入力と他スイッチからの入力が交互に行われたと判断してもよい。
【０１０８】
なお、ステップＳ６２において、入力手段が複数の他スイッチを含んでいる場合には、第１スイッチ以外の全てのスイッチからの入力を「他スイッチからの入力」として扱ってもよいし、特定のスイッチ（第２スイッチ）からの入力だけを「他スイッチからの入力」として扱ってもよい。例えば、プレイヤの入力パターンが「第１スイッチからの入力→第３スイッチからの入力→第１スイッチからの入力」であったとすると、第１スイッチ以外の全てのスイッチからの入力を「他スイッチからの入力」として扱う場合には、第１スイッチからの入力と他スイッチからの入力が交互に行われたと判断されるが、第２スイッチからの入力だけを「他スイッチからの入力」として扱う場合には、ステップＳ６２の判断においては第３スイッチからの入力は無視されるので、第１スイッチからの入力が連続して行われたと判断される。
【０１０９】
ステップＳ６２において、第１スイッチからの入力が連続して行われたと判断された場合には処理はステップＳ６４に進み、第１スイッチからの入力と他スイッチからの入力が交互に行われたと判断された場合には処理はステップＳ６６に進む。
【０１１０】
ステップＳ６４では、オブジェクトに第１動作を行わせ、ステップＳ６６では、オブジェクトに第１動作とは異なる第２動作を行わせる。
【０１１１】
図１２は、さらに他の実施形態として、第１スイッチからの入力または第２スイッチからの入力のいずれかが検出される度に、第１スイッチからの入力が連続して行われたのか、第２スイッチからの入力が連続して行われたのか、第１スイッチからの入力と第２スイッチからの入力が交互に行われたのかを判断する場合のフローチャートである。
【０１１２】
図１２のステップＳ６０〜ステップＳ６６の処理は図１１と同じであるので説明を省略する。
【０１１３】
図１２のステップＳ６８では、ＣＰＵ３１は、第２スイッチからの入力があったかどうかを判断する。第２スイッチからの入力があった場合には処理はステップＳ７０に進み、第２スイッチからの入力がない場合には処理はステップＳ６０に戻る。
【０１１４】
ステップＳ６８において第２スイッチからの入力があったことが検出されると、ＣＰＵ３１はステップＳ７０で、第２スイッチからの入力が連続して行われたのか、第２スイッチからの入力と第１スイッチからの入力が交互に行われたのかを判断する。第１スイッチからの入力が連続して行われたと判断された場合には処理はステップＳ７２に進み、第１スイッチからの入力と第２スイッチからの入力が交互に行われたと判断された場合には処理はステップＳ７４に進む。
【０１１５】
ステップＳ７２では、オブジェクトに第１動作および第２動作のいずれとも異なる第３動作を行わせ、ステップＳ７４では、オブジェクトに第２動作を行わせる。
【０１１６】
以上のように、本実施形態では、第１スイッチからの入力または第２スイッチからの入力のいずれかが検出される度に、第１スイッチからの入力が連続して行われたのか、第２スイッチからの入力が連続して行われたのか、第１スイッチからの入力と第２スイッチからの入力が交互に行われたのかを判断し、その判断結果に応じてオブジェクトに異なる動作を行わせることができる。
【０１１７】
なお、コンガ型コントローラ６の替わりに、図１３に示すような、コントローラ７´を使用してもよい。コントローラ７´はコアユニット７Ｒ´およびサブユニット７Ｌ´を含む。コアユニット７Ｒ´およびサブユニット７Ｌ´はそれぞれプレイヤが左右の手それぞれで把持可能な形状およびサイズに形成されている。また、コアユニット７Ｒ´およびサブユニット７Ｌ´の内部にはそれぞれ図示しない加速度センサが設けられる。また、ゲーム装置３には、接続端子を介して受信ユニット８が接続される。さらに、コアユニット７Ｒ´およびサブユニット７Ｌ´の少なくとも一方には、その内部に通信部が備えられ、当該通信部から受信ユニット８が接続されたゲーム装置３に対して、各加速度センサの出力値が送信される。なお、コアユニット７Ｒ´およびサブユニット７Ｌ´の両方が通信部を備えるようにして、コアユニット７Ｒ´の通信部がコアユニット７Ｒ´の加速度センサの出力値を受信ユニット８に送信し、サブユニット７Ｌ´の通信部がサブユニット７Ｌ´の加速度センサの出力値を受信ユニット８に送信するようにしてもよいが、図示するように、コアユニット７Ｒ´およびサブユニット７Ｌ´を有線（または無線）で接続し、各加速度センサの出力値をまとめて１つの通信部が受信ユニット８に対して送信するようにしてもよい。ゲーム装置３は、受信ユニット８を介して受信した各加速度センサの出力値を既知の分析処理により分析して、コアユニット７Ｒ´およびサブユニット７Ｌ´が予め定める所定の動き（例えば上下に振られる動きなど）をしたかどうかをＣＰＵ３１の処理により判断する。これにより、プレイヤがコアユニット７Ｒ´またはサブユニット７Ｌ´を手で把持して例えば上下に振ったかどうかが判断される。なお、この判断のためのプログラムは、典型的にはゲームプログラムとともに光ディスクに記憶され、当該プログラムがワークメモリ３２にロードされてＣＰＵ３１により実行される。そして、例えば、コアユニット７Ｒ´が所定の動きをしたと判断したときに、コンガ型コントローラの右叩き面６Ｒが叩かれたときと同じ処理を行い、サブユニット７Ｌ´が所定の動きをしたと判断したときに、コンガ型コントローラの右叩き面６Ｌが叩かれたときと同じ処理を行うようにすることができる。また、加速度センサ以外の動きセンサを用いてもよく、その場合は、動きセンサの特性に応じて動きを検出する処理をＣＰＵに実行させればよい。
【図面の簡単な説明】
【０１１８】
【図１】本発明の一実施形態に係るゲームシステム１の外観図
【図２】一般的なコントローラを用いる場合のゲームシステム１の外観図
【図３】ゲーム機本体３の内部構成図
【図４】テレビ２の画面に表示されるゲーム画像の一例
【図５】キャラクタの前進方向の設定例
【図６】ワークメモリ３２のメモリマップ
【図７】ＣＰＵ３１の処理の流れを示すフローチャートの一部
【図８】ＣＰＵ３１の処理の流れを示すフローチャートの残りの一部
【図９】叩き操作のパターンとキャラクタの動作との対応関係を示す図
【図１０】本発明の他の実施形態の入力手段について説明するための図
【図１１】本発明の他の実施形態に関するフローチャート
【図１２】本発明のさらに他の実施形態に関するフローチャート
【図１３】動きセンサを備えるコントローラを用いる場合のゲームシステム１の外観図
【符号の説明】
【０１１９】
１  ゲームシステム
２  テレビ
３  ゲーム機本体
４  ＤＶＤ−ＲＯＭ
５  メモリカード
６  コンガ型コントローラ
６Ｌ  左叩き面
６Ｍ  マイクロフォン
６Ｒ  右叩き面
６Ｓ  スタートボタン
７  コントローラ
７Ａ  Ａボタン
７Ｌ  Ｌボタン
７Ｍ  マイクロフォン
７Ｒ  Ｒボタン
７Ｓ  スタートボタン
３１  ＣＰＵ
３２  ワークメモリ
３３  外部メモリＩ／Ｆ
３４  コントローラＩ／Ｆ
３５  ＶＲＡＭ
３６  ＧＰＵ
３７  光ディスクドライブ
４０  ゲームプログラム
４１  ゲーム画像データ
４２  レースコースデータ
４３  キャラクタ制御データ
４４  操作データ
４５  入力履歴情報
４６  叩き間隔タイマ
４７  同時押しタイマ
【図１】
0005396006.tif 000002
【図２】
0005396006.tif 000003
【図３】
0005396006.tif 000004
【図４】
0005396006.tif 000005
【図５】
0005396006.tif 000006
【図６】
0005396006.tif 000007
【図７】
0005396006.tif 000008
【図８】
0005396006.tif 000009
【図９】
0005396006.tif 000010
【図１０】
0005396006.tif 000011
【図１１】
0005396006.tif 000012
【図１２】
0005396006.tif 000013
【図１３】
0005396006.tif 000014