(57)【要約】【課題】特殊なゲーム操作を行なうことなく、ゲーム制御を行なうことができるゲーム装置を提供する。【解決手段】ゲーム装置３にゲーム操作を入力する手段となるコントローラ７は、入力手段に加えられた振動を検知する加速度センサ７３を備えている。ゲーム装置３のゲームを制御する制御手段は、プレイヤーの叩き動作に伴う振動の計測値をコントローラ７から送信されると、その振動値の強弱のレベルを判定する手段と、この判定した時系列順の強弱レベルの配列パターンが予め設定したコマンドと一致するか否かを判定する手段を備えている。そして、予め設定したコマンドと一致していると、一致したコマンドに対応して設定された特殊なゲーム制御を実行する手段を備えている。【選択図】図１
2010046471.tif 000002
【特許請求の範囲】
【請求項１】
ゲームにおける操作入力を操作入力情報として取得することの可能な入力手段と、前記操作入力情報に基づいてゲームの進行を制御する制御手段を備えたゲーム装置であって、
前記入力手段は、前記入力手段に加えられた振動を検知する振動検知手段を備え、
前記制御手段は、前記振動検知手段により検知された振動検知信号のレベルを判定する振動レベル判定手段を備え、
前記制御手段は、前記振動レベル判定手段が判定した判定情報を、前記入力手段から入力された前記操作入力情報としてゲームの制御を実行することを特徴とするゲーム装置。
【請求項２】
ゲームにおける操作入力を操作入力情報として取得することの可能な入力手段と、前記操作入力情報に基づいてゲームの進行を制御する制御手段を備えたゲーム装置であって、
前記入力手段は、
前記入力手段に加えられた振動を検知する振動検知手段と、
前記振動検知手段により検知された振動検知信号のレベルを判定する振動レベル判定手段と、を備え、
前記制御手段は、前記振動レベル判定手段が判定した判定情報を、前記入力手段から入力された前記操作入力情報としてゲームの制御を実行することを特徴とするゲーム装置。
【請求項３】
ゲームにおける操作入力を操作入力情報として取得することの可能な入力手段と、前記操作入力情報に基づいてゲームの進行を制御する制御手段を備えたゲーム装置であって、
前記入力手段は、前記入力手段に加えられた振動を検知する振動検知手段を備え、
前記制御手段は、前記振動検知手段により検知された振動検知信号の１以上のレベルパターンを判定する振動パターン判定手段と、
前記振動パターン判定手段が判定した前記レベルパターンに係る情報の時系列に対応した配列が、予め設定された特殊入力コマンドに一致しているか否かを判定する特殊入力コマンド判定手段と、を備え、
前記制御手段は、前記特殊入力コマンド判定手段が一致している判定した前記特殊入力コマンドを、前記入力手段から入力された前記操作入力情報としてゲームの制御を実行することを特徴とするゲーム装置。
【請求項４】
ゲームにおける操作入力を操作入力情報として取得することの可能な入力手段と、前記操作入力情報に基づいてゲームの進行を制御する制御手段を備えたゲーム装置であって、
前記入力手段は、
前記入力手段に加えられた振動を検知する振動検知手段と、
前記振動検知手段により検知された振動検知信号の１以上のレベルパターンを判定する振動パターン判定手段と、を備え、
前記制御手段は、
前記振動パターン判定手段が判定した前記レベルパターンに係る情報の時系列に対応した配列が、予め設定された特殊入力コマンドに一致しているか否かを判定する特殊入力コマンド判定手段を備え、
前記制御手段は、前記特殊入力コマンド判定手段が一致している判定した前記特殊入力コマンドを、前記入力手段から入力された前記操作入力情報としてゲームの制御を実行することを特徴とするゲーム装置。
【請求項５】
前記入力手段は、振動発生手段を備え、
前記制御手段は、
前記振動検知手段から予め決められた第１の所定値以下の振動検知信号が一定期間入力されると、前記入力手段が設置可能な載置場所に載置されたと判定する載置判定手段と、
前記載置判定手段による判定結果に基づいて、前記載置場所に載置された前記振動発生手段に第１の振動を所定時間発生させる振動発生手段と、
前記振動検知手段が検知した前記第１の振動の振動検知信号から、前記載置場所における固有の振動値を算出する固有振動値算出手段と、
前記振動検知手段が検知した前記操作入力情報として前記載置場所に加えられた第２の振動の振動検知信号を、前記固有の振動値に基づいて補正する振動補正値算出手段と、を備え、
振動レベル判定手段は、前記振動補正値算出手段が補正した第２の振動の振動検知信号に基づいて、前記レベルを判定することを特徴とする請求項１または請求項２のいずれかに記載のゲーム装置。
【請求項６】
前記入力手段は振動発生手段を備え、
前記制御手段は、
前記振動検知手段から予め決められた第１の所定値以下の振動検知信号が一定期間入力されると、前記入力手段が設置可能な載置場所に載置されたと判定する載置判定手段と、
前記載置判定手段による判定結果に基づいて、前記載置場所に載置された前記振動発生手段に第１の振動を所定時間発生させる振動発生手段と、
前記振動検知手段が検知した前記第１の振動の振動検知信号から、前記載置場所における固有の振動値を算出する固有振動値算出手段と、
前記振動検知手段が検知した前記操作入力情報として前記載置場所に加えられた第２の振動の振動検知信号を、前記固有の振動値に基づいて補正する振動補正値算出手段と、を備え、
振動パターン判定手段は、前記振動補正値算出手段が補正した第２の振動の振動検知信号に基づいて、前記レベルパターンを判定することを特徴とする請求項３または請求項４のいずれかに記載のゲーム装置。
【請求項７】
前記振動パターン判定手段は、補正した前記第２の振動の振動検知信号をそのレベルに応じて、強弱を判定基準とした1以上のレベルパターンに分類する入力振動分類手段を備えていることを特徴とする請求項６に記載のゲーム装置。
【請求項８】
前記振動パターン判定手段は、補正した前記第２の振動の振動検知信号のレベルを経過時間軸に対応させて、前記振動検知信号が入力されたと判定するタップ入力区間と、前記振動検知信号が入力されていない休符区間とからなるレベルパターンを設定するタップ休符設定手段を備えていることを特徴とする請求項６に記載のゲーム装置。
【請求項９】
前記ゲーム装置は記憶手段を更に有するものであり、
前記制御手段は
前記振動パターン判定手段は、前記振動補正値算出手段が補正した第２の振動の振動検知信号を、第３の振動検知信号として、順次、時系列順に前記記憶手段に記憶する振動補正値記憶手段と、
前記振動補正値記憶手段が時系列順に記憶した前記第３の振動検知信号の最新の情報を含む１以上の情報に基づいて、前記第３の振動検知信号が前記レベルパターンのいずれに属するかを分類するための閾値を算出するレベルパターン閾値算出手段と、
前記算出した閾値に基づいて、補正された最新の前記第３の振動検知信号が前記レベルパターンのいずれに属するかを判定し、前記判定したレベルパターンに係る情報を時系列順に前記記憶手段に記憶するレベルパターン記憶手段と、
を備えていることを特徴とする請求項７に記載のゲーム装置。
【請求項１０】
前記ゲーム装置は記憶手段を更に有するものであり、
前記制御手段は
前記振動値算出手段が補正した第２の振動の振動検知信号について、時系列的に隣り合う前記第２の振動の振動検知信号が入力された時間間隔を、順次、時系列順に記憶手段に記憶するタップ時間間隔記憶手段と、
前記振動検知信号の入力がないと判定したときに、前記タップ時間間隔記憶手段が記憶した前記時間間隔および／または予め設定された休符判定時間に基づいて、補正された補正休符判定時間を算出する休符判定時間補正手段と、
現在の時間値と最新の前記第２の振動の振動検知信号が入力された時間値との差分時間値Ｓが、前記補正休符判定時間より大と判定された場合に、前記振動検知信号の入力がないと判定した前記経過時間軸を前記休符区間と判定する休符区間判定手段と、
を備えていることを特徴とする請求項８に記載のゲーム装置。
【請求項１１】
前記ゲーム装置は、
前記振動検知手段によって検知される前記振動検知信号が第２の所定値以下である場合、所定の計算式に基づいた変換値を算出する変換値算出手段をさらに備えてなることを特徴とする請求項１から１０のいずれかに記載のゲーム装置。
【請求項１２】
前記ゲーム装置は、
前記振動検知手段によって検知される所定回数の振動検知信号を計測し、該所定回数計測された振動検知信号に基づいて、前記入力手段により1回の振動が検知された場合に、該１回の振動以外に検知される振動を、前記1回の振動に付随した関連振動として設定する関連振動設定手段をさらに備えてなることを特徴とする請求項１から１１のいずれかに記載のゲーム装置。
【請求項１３】
振動を検知する振動検知手段を有する入力手段を備えたゲーム装置においてゲームの進行を制御する方法であって、
前記振動検知手段により検知された振動値のレベルパターンを判定してその判定情報を求める振動レベル判定ステップと、
振動レベル判定ステップにより求めた前記判定情報を、ゲームの制御情報としてゲームの実行を制御する振動レベル判定によるゲーム制御ステップと、
を備えていることを特徴とするゲームの制御方法。
【請求項１４】
振動発生手段と、振動を検知する振動検知手段とを有する入力手段を備えたゲーム装置においてゲームの進行を制御する方法であって、
予め決められた所定値以下の振動値が一定期間、前記振動検知手段により検知されると、前記入力手段が載置可能な載置場所に載置されたと判定する載置判定ステップと、
前記載置判定ステップによる判定結果に基づいて、前記振動発生手段による第１の振動を開始させる振動開始ステップと、
前記振動開始ステップにより前記第１の振動が発生すると、前記振動検知手段を作動させて該振動を検知する振動検知ステップと、
前記振動検知ステップにより検知された前記第１の振動に基づく第１の振動値から前記載置場所における固有の振動値を算出する固有振動値算出ステップと、
前記載置場所に加えられた操作入力に用いる第２の振動が前記振動検知手段により検知されたときに、該第２の振動に基づく第２の振動値と前記固有の振動値に基づいて補正値を算出する補正値算出ステップと、
前記補正値に基づいた操作入力情報をゲームの制御情報とする補正値操作変換ステップと、
を備えていることを特徴とするゲームの制御方法。
【請求項１５】
前記補正値算出ステップが算出した前記補正値を１以上のレベルパターンを判定する振動パターン判定ステップと、
前記振動パターン判定ステップが判定した前記レベルパターンに係る情報の時系列に対応した配列が、予め設定された特殊入力コマンドに一致しているか否かを判定する特殊入力信号判定ステップと、
前記特殊入力信号判定ステップが一致していると判定した前記特殊入力コマンドを、前記入力手段から入力された前記操作入力情報としてゲームの制御を実行するコマンド実行ステップと、
を備えていることを特徴とする請求項１４に記載のゲームの制御方法。
【請求項１６】
前記振動パターン判定ステップは、補正した前記第２の振動の振動検知信号をそのレベルに応じて、強弱を判定基準とした１以上のレベルパターンに分類する入力振動分類ステップを備えていることを特徴とする請求項１４に記載のゲームの制御方法。
【請求項１７】
前記振動パターン判定ステップは、補正した前記第２の振動の振動検知信号のレベルを経過時間軸に対応させて、前記振動検知信号が入力されたと判定するタップ入力区間と、前記振動検知信号が入力されていない休符区間とからなるレベルパターンを設定するタップ休符設定ステップを備えていることを特徴とする請求項１４に記載のゲームの制御方法。
【請求項１８】
振動を検知する振動検知手段を有する入力手段を備えたゲーム装置においてゲームの進行を制御するプログラムであって、
前記振動検知手段により検知された振動値のレベルパターンを判定してその判定情報を求める振動レベル判定プログラムと、
振動レベル判定プログラムにより求めた前記判定情報を、ゲームの制御情報としてゲームの実行を制御する振動レベル判定によるゲーム制御プログラムと、
を備えていることを特徴とするゲームを制御するプログラム。
【請求項１９】
振動発生手段と、振動を検知する振動検知手段とを有する入力手段を備えたゲーム装置においてゲームの進行を制御するプログラムであって、
予め決められた所定値以下の振動値が一定期間、前記振動検知手段により検知されると、前記入力手段が載置可能な載置場所に載置されたと判定するステップを有する載置判定プログラムと、
前記載置判定プログラムによる判定結果に基づいて、前記振動発生手段による第１の振動を開始させるステップを有する振動開始プログラムと、
前記振動開始プログラムにより前記第１の振動が発生すると、前記振動検知手段を作動させて該振動を検知するステップを有する振動検知プログラムと、
前記振動検知プログラムにより検知された前記第１の振動に基づく第１の振動値から前記載置場所における固有の振動値を算出するステップを有する固有振動値算出プログラムと、
前記載置場所に加えられた操作入力に用いる第２の振動が前記振動検知手段により検知されたときに、該第２の振動に基づく第２の振動値と前記固有の振動値に基づいて補正値を算出するステップを有する補正値算出プログラムと、
前記補正値に基づいた操作入力情報をゲームの制御情報とするステップを備えた補正値操作変換プログラムと、
を備えたことを特徴とするゲームを制御するプログラム。
【請求項２０】
前記補正値算出プログラムが算出した前記補正値を、１以上のレベルパターンの何れかに判定するステップを有する振動パターン判定プログラムと、
前記振動パターン判定プログラムが判定した前記レベルパターンに係る情報の時系列に対応した配列が、予め設定された特殊入力コマンドに一致しているか否かを判定するステップを備えた特殊入力コマンド判定プログラムと、
前記特殊入力コマンド判定プログラムが一致していると判定した前記特殊入力コマンドを、前記入力手段から入力された前記操作入力情報としてゲームの制御を実行するステップを有するコマンド実行プログラムと、
を備えていることを特徴とする請求項１９に記載のゲームを制御するプログラム。
【請求項２１】
前記振動パターン判定プログラムは、補正した前記第２の振動の振動検知信号をそのレベルに応じて、強弱を判定基準とした１以上のレベルパターンに分類するステップを有する入力振動分類プログラムを備えていることを特徴とする請求項１９に記載のゲームを制御するプログラム。
【請求項２２】
前記振動パターン判定プログラムは、補正した前記第２の振動の振動検知信号のレベルを、経過時間軸に対応させて、前記振動検知信号が入力されたと判定するタップ入力区間と、前記振動検知信号が入力されていない休符区間とからなるレベルパターンを設定するステップを有するタップ休符設定プログラムを備えていることを特徴とする請求項１９に記載のゲームを制御するプログラム。
【請求項２３】
請求項１８から請求項２２のいずれかに記載のプログラムを記憶したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プレイヤーのゲーム操作を入力信号等により検出し、この検出された入力信号に基づいたゲーム処理をゲーム装置のコンピュータに実行させるゲーム装置、及びこのゲームを制御する制御方法とこのゲームを制御するプログラム、及びこのプログラムを記憶したコンピュータ読み取り可能な記録媒体に関するものである。
【背景技術】
【０００２】
従来、家庭用ゲーム、アーケードゲーム等のゲーム装置において、プレイヤーのゲームを実施するための操作（以下、「操作入力」という）の検出方法としては、ボタンを押す操作による検出、プレイヤーの足踏み操作による検出、カメラでプレイヤーの動作を撮像することによる検出、プレイヤーの叩く動作により生ずる振動を検出する等、複数の操作手段による検出方法が知られている。
【０００３】
上述したプレイヤーのボタンを押す操作、及びプレイヤーの足踏み操作による検出方法においては、操作入力に必要なボタン、あるいは足踏み操作を行なう台の特定の箇所（例えば、ペダルなど）を的確に操作することによって、プレイヤーの意図したゲーム操作を行うことができる（特許文献１および特許文献２参照）。
【０００４】
また、プレイヤーがゲーム操作の入力に必要とするボタン等について、その操作を覚える必要のない方法として、カメラでプレイヤーの動作を検出する方法、あるいは、プレイヤーが操作入力手段を「叩く動作」により、装置に生ずる振動を検出する方法などが提案されている。このような特殊な操作入力の検出方法を用いるとより、正確にプレイヤーの意図するゲーム操作を反映させることができる（特許文献３参照）。
【０００５】
【特許文献１】特開２００１−２３２０６０号公報
【特許文献２】特開２００８−０３６１６７号公報
【特許文献３】特開２００５−２８７７９４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献１および特許文献２に提案されている検出方法を採用したゲーム装置においては、プレイヤーは操作入力に必要な装置（コントローラー）を保持しなければならず、また操作入力に必要なボタンの役割を覚えなければ、操作できないという問題がある。また、台の特定の箇所を的確に操作することによってゲーム操作を行う場合は、台の特定の箇所を覚えなければ、実際のゲームにおいてゲーム操作をすることができないという問題がある。よって、操作入力に必要な装置を手で保持する必要がある、あるいは操作入力を行うための諸動作を覚える必要があるといったことが、何らかの理由によって操作入力に必要な装置を保持することができないプレイヤー、またゲームの初心者にとっては少なからぬ負担となっており、ゲームに対する興味を無くする一要因となっていた。
【０００７】
また、特許文献３に提案されている検出方法を採用したゲーム装置においては、それらの特殊な検出方法を用いることのできる専用の特殊な装置を必要とし、その専用の特殊な装置はその装置を用いた特殊なゲーム以外のゲームに用いることができない、あるいは特殊なゲーム以外に用いることができたとしてもその操作による入力方法では、入力信号に誤差やノイズが含まれるこることが考えられる。また、専用の特殊な装置による入力方法を採用したゲーム装置ではその設置場所が限定されるので、汎用性に乏しいだけではなく、現実性にも乏しいという問題がある。
【０００８】
本発明は、このような従来の問題に鑑みてなされたものであって、上記のような特殊なゲーム装置、特に特殊なゲーム操作装置を用いることなく、広く流通している汎用性の高い操作装置、特に振動を検知する振動検知手段が検出した振動値をゲームを制御する操作信号とすることにより、この操作信号を入力するために必要な各種のボタン、あるいは台の特定の箇所を覚えることなくゲーム操作を可能とする、ゲーム装置及びそのゲーム制御方法、このゲームを制御するプログラム、このプログラムを記憶したコンピュータ読取り可能な記録媒体を提供することを目的としたものである。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、請求項１に記載の発明は、ゲームにおける操作入力を操作入力情報として取得することの可能な入力手段と、前記操作入力情報に基づいてゲームの進行を制御する制御手段を備えたゲーム装置であって、
前記入力手段は、前記入力手段に加えられた振動を検知する振動検知手段を備え、
前記制御手段は、前記振動検知手段により検知された振動検知信号のレベルを判定する振動レベル判定手段を備え、
前記制御手段は、前記振動レベル判定手段が判定した判定情報を、前記入力手段から入力された前記操作入力情報としてゲームの制御を実行することを特徴としている。
【００１０】
請求項２に記載の発明は、ゲームにおける操作入力を操作入力情報として取得することの可能な入力手段と、前記操作入力情報に基づいてゲームの進行を制御する制御手段を備えたゲーム装置であって、
前記入力手段は、
前記入力手段に加えられた振動を検知する振動検知手段と、
前記振動検知手段により検知された振動検知信号のレベルを判定する振動レベル判定手段と、を備え、
前記制御手段は、前記振動レベル判定手段が判定した判定情報を、前記入力手段から入力された前記操作入力情報としてゲームの制御を実行することを特徴としている。
【００１１】
請求項３に記載の発明は、ゲームにおける操作入力を操作入力情報として取得することの可能な入力手段と、前記操作入力情報に基づいてゲームの進行を制御する制御手段を備えたゲーム装置であって、
前記入力手段は、前記入力手段に加えられた振動を検知する振動検知手段を備え、
前記制御手段は、前記振動検知手段により検知された振動検知信号の１以上のレベルパターンを判定する振動パターン判定手段と、
前記振動パターン判定手段が判定した前記レベルパターンに係る情報の時系列に対応した配列が、予め設定された特殊入力コマンドに一致しているか否かを判定する特殊入力コマンド判定手段と、を備え、
前記制御手段は、前記特殊入力コマンド判定手段が一致している判定した前記特殊入力コマンドを、前記入力手段から入力された前記操作入力情報としてゲームの制御を実行することを特徴としている。
【００１２】
請求項４に記載の発明は、ゲームにおける操作入力を操作入力情報として取得することの可能な入力手段と、前記操作入力情報に基づいてゲームの進行を制御する制御手段を備えたゲーム装置であって、
前記入力手段は、
前記入力手段に加えられた振動を検知する振動検知手段と、
前記振動検知手段により検知された振動検知信号の１以上のレベルパターンを判定する振動パターン判定手段と、を備え、
前記制御手段は、
前記振動パターン判定手段が判定した前記レベルパターンに係る情報の時系列に対応した配列が、予め設定された特殊入力コマンドに一致しているか否かを判定する特殊入力信号判定手段を備え、
前記制御手段は、前記特殊入力信号判定手段が一致している判定した前記特殊入力コマンドを、前記入力手段から入力された前記操作入力情報としてゲームの制御を実行することを特徴としている。
【００１３】
請求項５に記載の発明は、請求項１または請求項２のいずれかに記載のゲーム装置に係り、前記入力手段は、振動発生手段を備え、
前記制御手段は、
前記振動検知手段から予め決められた第１の所定値以下の振動検知信号が一定期間入力されると、前記入力手段が設置可能な載置場所に載置されたと判定する載置判定手段と、
前記載置判定手段による判定結果に基づいて、前記載置場所載置台に載置された前記振動発生手段に第１の振動を所定時間発生させる振動発生手段と、
前記振動検知手段が検知した前記第１の振動の振動検知信号から、前記載置場所における固有の振動値を算出する固有振動値算出手段と、
前記振動検知手段が検知した前記操作入力情報として前記載置場所に加えられた第２の振動の振動検知信号を、前記固有の振動値に基づいて補正する振動補正値算出手段と、を備え、
振動レベル判定手段は、前記振動補正値算出手段が補正した第２の振動の振動検知信号に基づいて、前記レベルを判定することを特徴としている。
【００１４】
請求項６に記載の発明は、請求項３または請求項４のいずれかに記載のゲーム装置に係り、前記入力手段は振動発生手段を備え、
前記制御手段は、
前記振動検知手段から予め決められた第１の所定値以下の振動検知信号が一定期間入力されると、前記入力手段が設置可能な載置場所に載置されたと判定する載置判定手段と、
前記載置判定手段による判定結果に基づいて、前記載置場所に載置された前記振動発生手段に第１の振動を所定時間発生させる振動発生手段と、
前記振動検知手段が検知した前記第１の振動の振動検知信号から、前記載置場所における固有の振動値を算出する固有振動値算出手段と、
前記振動検知手段が検知した前記操作入力情報として前記載置場所に加えられた第２の振動の振動検知信号を、前記固有の振動値に基づいて補正する振動補正値算出手段と、を備え、
振動パターン判定手段は、前記振動補正値算出手段が補正した第２の振動の振動検知信号に基づいて、前記レベルパターンを判定することを特徴としている。
【００１５】
請求項７に記載の発明は、請求項６に記載のゲーム装置に係り、前記振動パターン判定手段は、補正した前記第２の振動の振動検知信号をそのレベルに応じて、強弱を判定基準とした１以上のレベルパターンに分類する入力振動分類手段を備えていることを特徴としている。
【００１６】
請求項８に記載の発明は、請求項６に記載のゲーム装置に係り、前記振動パターン判定手段は、補正した前記第２の振動の振動検知信号のレベルを経過時間軸に対応させて、前記振動検知信号が入力されたと判定するタップ入力区間と、前記振動検知信号が入力されていない休符区間とからなるレベルパターンを設定するタップ休符設定手段を備えていることを特徴としている。
【００１７】
請求項９に記載の発明は、請求項７に記載のゲーム装置に係り、前記ゲーム装置は記憶手段を更に有するものであり、
前記制御手段は
前記振動パターン判定手段は、前記振動補正値算出手段が補正した第２の振動の振動検知信号を、第３の振動検知信号として、順次、時系列順に前記記憶手段に記憶する振動補正値記憶手段と、
前記振動補正値記憶手段が時系列順に記憶した前記第３の振動検知信号の最新の情報を含む１以上の情報に基づいて、前記第３の振動検知信号が前記レベルパターンのいずれに属するかを分類するための閾値を算出するレベルパターン閾値算出手段と、
前記算出した閾値に基づいて、補正された最新の前記第３の振動検知信号が前記レベルパターンのいずれに属するかを判定し、前記判定したレベルパターンに係る情報を時系列順に前記記憶手段に記憶するレベルパターン記憶手段と、
を備えていることを特徴としている。
【００１８】
請求項１０に記載の発明は、請求項８に記載のゲーム装置に係り、前記ゲーム装置は記憶手段を更に有するものであり、
前記制御手段は
前記振動値算出手段が補正した第２の振動の振動検知信号について、時系列的に隣り合う前記第２の振動の振動検知信号が入力された時間間隔を、順次、時系列順に記憶手段に記憶するタップ時間間隔記憶手段と、
前記振動検知信号の入力がないと判定したときに、前記タップ時間間隔記憶手段が記憶した前記時間間隔および／または予め設定された休符判定時間に基づいて、補正された補正休符判定時間を算出する休符判定時間補正手段と、
現在の時間値と最新の前記第２の振動の振動検知信号が入力された時間値との差分時間値Ｓが、前記補正休符判定時間より大と判定された場合に、前記振動検知信号の入力がないと判定した前記経過時間軸を前記休符区間と判定する休符区間判定手段と、
を備えていることを特徴としている。
【００１９】
請求項１１に記載の発明は、請求項１から１０のいずれかに記載のゲーム装置に係り、前記ゲーム装置は、
前記振動検知手段によって検知される前記振動検知信号が第２の所定値以下である場合、所定の計算式に基づいた変換値を算出する変換値算出手段をさらに備えてなることを特徴としている。
【００２０】
請求項１２に記載の発明は、請求項１から１１のいずれかに記載のゲーム装置に係り、前記ゲーム装置は、
前記振動検知手段によって検知される所定回数の振動検知信号を計測し、該所定回数計測された振動検知信号に基づいて、前記入力手段により1回の振動が検知された場合に、該１回の振動以外に検知される振動を、前記1回の振動に付随した関連振動として設定する関連振動設定手段をさらに備えてなることを特徴としている。
【００２１】
また、請求項１３に記載の発明は、振動を検知する振動検知手段を有する入力手段を備えたゲーム装置においてゲームの進行を制御する方法であって、
前記振動検知手段により検知された振動値のレベルパターンを判定してその判定情報を求める振動レベル判定ステップと、
振動レベル判定ステップにより求めた前記判定情報を、ゲームの制御情報としてゲームの実行を制御する振動レベル判定によるゲーム制御ステップと、
を備えていることを特徴としている。
【００２２】
また、請求項１４に記載の発明は、振動発生手段と、振動を検知する振動検知手段とを有する入力手段を備えたゲーム装置においてゲームの進行を制御する方法であって、
予め決められた所定値以下の振動値が一定期間、前記振動検知手段により検知されると、前記入力手段が載置可能な載置場所に載置されたと判定する載置判定ステップと、
前記載置判定ステップによる判定結果に基づいて、前記振動発生手段による第１の振動を開始させる振動開始ステップと、
前記振動開始ステップにより前記第１の振動が発生すると、前記振動検知手段を作動させて該振動を検知する振動検知ステップと、
前記振動検知ステップにより検知された前記第１の振動に基づく第１の振動値から前記載置場所における固有の振動値を算出する固有振動値算出ステップと、
前記載置場所に加えられた操作入力に用いる第２の振動が前記振動検知手段により検知されたときに、該第２の振動に基づく第２の振動値と前記固有の振動値に基づいて補正値を算出する補正値算出ステップと、
前記補正値に基づいた操作入力情報をゲームの制御情報とする補正値操作変換ステップと、
を備えていることを特徴としている。
【００２３】
請求項１５に記載の発明は、請求項１４に記載のゲームの制御方法に係り、前記補正値算出ステップが算出した前記補正値を１以上のレベルパターンを判定する振動パターン判定ステップと、
前記振動パターン判定ステップが判定した前記レベルパターンに係る情報の時系列に対応した配列が、予め設定された特殊入力コマンドに一致しているか否かを判定する特殊入力コマンド判定ステップと、
前記特殊入力コマンド判定ステップが一致していると判定した前記特殊入力コマンドを、前記入力手段から入力された前記操作入力情報としてゲームの制御を実行するコマンド実行ステップと、
を備えていることを特徴としている。
【００２４】
請求項１６に記載の発明は、請求項１４に記載のゲームの制御方法に係り、前記振動パターン判定ステップは、補正した前記第２の振動の振動検知信号をそのレベルに応じて、強弱を判定基準とした１以上のレベルパターンに分類する入力振動分類ステップを備えていることを特徴としている。
【００２５】
請求項１７に記載の発明は、請求項１４に記載のゲームの制御方法に係り、前記振動パターン判定ステップは、補正した前記第２の振動の振動検知信号のレベルを経過時間軸に対応させて、前記振動検知信号が入力されたと判定するタップ入力区間と、前記振動検知信号が入力されていない休符区間とからなるレベルパターンを設定するタップ休符設定ステップを備えていることを特徴としている。
【００２６】
また、請求項１８に記載の発明は、振動を検知する振動検知手段を有する入力手段を備えたゲーム装置においてゲームの進行を制御するプログラムであって、
前記振動検知手段により検知された振動値のレベルパターンを判定してその判定情報を求める振動レベル判定プログラムと、
振動レベル判定プログラムにより求めた前記判定情報を、ゲームの制御情報としてゲームの実行を制御する振動レベル判定によるゲーム制御プログラムと、
を備えていることを特徴としている。
【００２７】
また、請求項１９に記載の発明は、振動発生手段と、振動を検知する振動検知手段とを有する入力手段を備えたゲーム装置においてゲームの進行を制御するプログラムであって、
予め決められた所定値以下の振動値が一定期間、前記振動検知手段により検知されると、前記入力手段が載置可能な載置場所に載置されたと判定するステップを有する載置判定プログラムと、
前記載置判定プログラムによる判定結果に基づいて、前記振動発生手段による第１の振動を開始させるステップを有する振動開始プログラムと、
前記振動開始プログラムにより前記第１の振動が発生すると、前記振動検知手段を作動させて該振動を検知するステップを有する振動検知プログラムと、
前記振動検知プログラムにより検知された前記第１の振動に基づく第１の振動値から前記載置場所における固有の振動値を算出するステップを有する固有振動値算出プログラムと、
前記載置場所に加えられた操作入力に用いる第２の振動が前記振動検知手段により検知されたときに、該第２の振動に基づく第２の振動値と前記固有の振動値に基づいて補正値を算出するステップを有する補正値算出プログラムと、
前記補正値に基づいた操作入力情報をゲームの制御情報とするステップを備えた補正値操作変換プログラムと、
を備えたことを特徴としている。
【００２８】
請求項２０に記載の発明は、請求項１９に記載のゲームを制御するプログラムに係り、前記補正値算出プログラムが算出した前記補正値を、１以上のレベルパターンの何れかに判定するステップを有する振動パターン判定プログラムと、
前記振動パターン判定プログラムが判定した前記レベルパターンに係る情報の時系列に対応した配列が、予め設定された特殊入力コマンドに一致しているか否かを判定するステップを備えた特殊入力コマンド判定プログラムと、
前記特殊入力コマンド判定プログラムが一致していると判定した前記特殊入力コマンドを、前記入力手段から入力された前記操作入力情報としてゲームの制御を実行するステップを有するコマンド実行プログラムと、
を備えていることを特徴としている。
【００２９】
請求項２１に記載の発明は、請求項１９に記載のゲームを制御するプログラムに係り、前記振動パターン判定プログラムは、補正した前記第２の振動の振動検知信号をそのレベルに応じて、強弱を判定基準とした１以上のレベルパターンに分類するステップを有する入力振動分類プログラムを備えていることを特徴としている。
【００３０】
請求項２２に記載の発明は、請求項１９に記載のゲームを制御するプログラムに係り、前記振動パターン判定プログラムは、補正した前記第２の振動の振動検知信号のレベルを、経過時間軸に対応させて、前記振動検知信号が入力されたと判定するタップ入力区間と、前記振動検知信号が入力されていない休符区間とからなるレベルパターンを設定するステップを有するタップ休符設定プログラムを備えていることを特徴としている。
【００３１】
また、請求項２３に記載の発明は、請求項１８から請求項２２のいずれかに記載のプログラムを記憶したコンピュータ読み取り可能な記録媒体である。
このコンピュータ読み取り可能な記録媒体は、ＣＤ−ＲＯＭ、ＤＶＤなどの光ディスク、フラッシュメモリ、ＲＡＭ、ＲＯＭ、磁気ディスク装置などのプログラムのデータを記憶可能な記憶媒体を含む。
【００３２】
なお、上記した入力手段とは、プレイヤーによる各種入力操作の可能な入力装置、例えば、リモコンやコントローラなどを含む入力装置である。
【００３３】
また、第１の所定値とは、載置場所に振動開始手段による振動を与えなくても、さらに、プレイヤーの操作とも関係ない原始的（自然発生的）な振動を検知するための閾値を意味し、第２の所定値とは、振動検知手段の検知した振動のうち、載置場所の振動（第１の所定値）以上であり、操作信号として入力するための基準となる値を意味する。また、本発明においては、第１の所定値以下で検知された振動値は、原始的に生ずる振動値であるとして操作入力信号として採用しない処理を行なう。そして、検知された振動値が第１の所定値以上であり、かつ第２の所定値以下である場合には、この振動値をゲーム制御信号として使用するために所定の手順で変換する処理を行なって、この変換した情報を操作入力信号としてゲーム制御を実行する。
【００３４】
また、上記した振動レベル判定によるゲーム制御プログラムとは、前記した振動レベル判定ステップ（又は振動レベルプログラム）が判定した判定情報ごとに、予め設定されているゲームを制御するためのプログラムである。振動レベル判定によるゲーム制御プログラムとしては、判定情報ごとに、例えば、小輪の花火を打ち上げる演出用の動画像をモニタに表示するためのプログラム、あるいは、大輪の花火を連続して打ち上げる演出用の動画像をモニタに表示するためのプログラム、等を示す。
【発明の効果】
【００３５】
本発明によれば、ゲームにおける操作入力を操作入力情報として取得することの可能な入力手段と、前記操作入力情報に基づいてゲームの進行を制御する制御手段を備えたゲーム装置であって、前記入力手段は、前記入力手段に加えられた振動を検知する振動検知手段と、前記振動検知手段により検知された振動値のレベルを判定する判定手段と、を備え、前記制御手段は、前記判定手段による判定結果を前記入力手段における操作入力情報としてゲームの制御情報とすることにより、例えば、検知センサなどに代表される振動検知手段を有する入力手段であれば広く流通している汎用性の高い入力手段を、本発明をゲームシステムに用いることができる。  
【００３６】
また、制御手段が振動値のレベル判定を行う場合には、入力手段は必要最小限の構成（振動検知手段）のみを備えるだけでよくなるため、入力手段の構成を簡素化することができる。
【００３７】
また、入力手段が振動値のレベル判定を行う場合には、入力手段が振動を検知すると、入力手段はこの振動の判定までも行うことができる。したがって、制御手段は入力手段による判定結果（該振動の判定による結果）を操作入力情報として利用するだけでよくなるため、制御手段にかかるゲーム制御処理の負荷を軽減することができる。
【００３８】
載置台等に時系列に順次加えられた振動を、強弱のパターンに分類する手段を備えている。これにより、プレイヤーが載置台等を叩いた強さに対応した強弱のパターンの時系列順の配列が予め設定したコマンドと一致すると、叩く動作の強弱を変更するだけという単純な操作方法でありながら、特殊なゲーム制御を実行することを可能とした新たな興趣を備えたゲーム装置を提供することができる。また、プレイヤーごとに載置台等を叩いたときの各種の状況（力の入れ具合、時間帯、精神状況等）、及びプレイヤー自体の属性（幼児、子供、大人等）によって強さが変化したとしても、プレイヤーごとに強弱を判定することが可能となる。
【００３９】
載置台等に時系列に順次加えられた振動、すなわち、「叩きのリズム」を経過時間に対応させて振動が検出されたタップ区間と、振動が検出されない休符区間とに区分けする手段を備えている。この手段により、プレイヤーの叩きのリズムに対応するタップ区間と休符区間の時系列順の配列が、予め設定したコマンドと一致すると、叩く動作のリズムを変更するだけという単純な操作方法でありながら、特殊なゲーム制御を実行することを可能な新たな興趣を備えたゲーム装置を提供することができる。また、プレイヤーごとに載置台等を叩いたときの各種の状況（力の入れ具合、時間帯、精神状況等）、及びプレイヤー自体の属性（幼児、子供、大人等）によって「叩きのリズム」が変化したとしても、プレイヤーごとに「叩きのリズム」を判定することが可能となる。
【発明を実施するための最良の形態】
【００４０】
以下、本発明の一実施形態について、図面を参照して説明する。図１は、本実施形態に係るゲーム装置を用いたゲームシステム１を説明するための外観図である。
【００４１】
［ゲーム装置の全体構成］
図１において、ゲームシステム１は、家庭用テレビジョン受像機等のスピーカ２ａを備えたディスプレイ（以下「モニタ」という）２に、接続コードを介して接続される据え置き型ゲーム装置（以下「ゲーム装置」という）３、当該ゲーム装置３にゲームの操作情報等を与えるコントローラ７、および、コントローラ７を載置する載置台８によって構成される。
【００４２】
ゲーム装置３は、接続端子を介して受信ユニット６が接続される。受信ユニット６は、コントローラ７から無線通信される送信データを受信し、コントローラ７とゲーム装置３とは無線通信によって接続される。また、ゲーム装置３には、当該ゲーム装置３に対して交換可能に用いられる情報記憶媒体の一例の光ディスク４が脱着されるディスクドライブ４０（図２参照）装置を備えている。さらに、ゲーム装置３には、それぞれ図示しない当該ゲーム装置３の電源をＯＮ／ＯＦＦするためのスイッチ、ゲーム処理のリセットスイッチ、および光ディスク４をディスクドライブ４０に脱着可能なディスクトレーを開かせるＯＰＥＮスイッチが設けられている。ここで、プレイヤーがＯＰＥＮスイッチを押下することによって、ディスクトレーがゲーム装置３の内部から外部に出てきて、光ディスク４の脱着が可能となる。再び、光ディスク４を脱着した後、ディスクトレーをゲーム装置３に格納することで、ゲーム装置３は光ディスク４の読み取りが可能となる。なお、コントローラ７は本実施形態における入力手段に該当する。
【００４３】
また、ゲーム装置３には、セーブデータ等を固定的に記憶するバックアップメモリ等を搭載する外部メモリカード５が必要に応じて着脱可能に装着される。ゲーム装置３は、光ディスク４に記憶されたゲームプログラムや入力手段（コントローラ７）からの入力信号に基づいてゲームを実行し、その結果をゲーム画像として表示手段であるモニタ２に表示する。さらに、ゲーム装置３は、外部メモリカード５が装着された場合に、外部メモリカード５に記憶されたセーブデータを用いて、過去にプレイヤーが実行したゲーム状態を再現して、その結果を、例えば、ゲーム画像として表示手段であるモニタ２に表示することができる。また、本体内部のメインメモリ３３あるいは本体内部にセーブデータ専用の図示しないメモリを備えさせ、外部メモリカード５の代わりとしてセーブデータを記憶させてもよい。そして、プレイヤーは、モニタ２に表示されたゲーム画像を見ながら、コントローラ７を操作することによって、ゲーム進行を引き続き実行することができる。
【００４４】
コントローラ７は、その内部に備える通信部７５（図５参照）から受信ユニット６が接続されたゲーム装置３へ、例えばＢｌｕｅｔｏｏｔｈ（ブルートゥース；登録商標）の技術を用いて送信データを無線通信する。コントローラ７は、主にモニタ２に表示されるゲーム空間に登場するプレイヤーオブジェクトを操作するための操作入力情報を取得するための操作（入力）手段である。コントローラ７は、複数の操作ボタン、キー、および、スティック等の操作部が設けられている。
【００４５】
載置台８は、コントローラ７を設置することが可能な一つの載置場所となるものである。プレイヤーがこの載置台８を叩くことにより載置台８に振動（第２の振動）が生じ、その載置台８の振動がコントローラ７に伝わり、そのコントローラ７に伝わった振動を検知させるためのものである。本実施形態においては、ボール紙等で作られた箱型状の載置台を用いる。なお、載置台８の材質は、プレイヤーが載置台８を叩いたときにコントローラ７に振動が伝わる材質（例えば、ボール紙などで作られた箱、木材などの板状のもの）であれば、特に材質はボール紙等に限定されるものではない。ただし、載置台８にプレイヤーが与えた振動が吸収されてしまうような振動を伝わらせないやわらかい素材は、あまり好ましくない。また形状についても箱型に限定されず、例えば、板状（木材等）のもの、あるいは床そのものを載置場所としてもよい。
【００４６】
［ゲーム装置の制御機構］
次に、図２を参照して、ゲーム装置３の動作を制御する制御機構の構成について説明する。なお、図２は、ゲーム装置３の処理機能を説明するための機能ブロック図である。
【００４７】
図２において、ゲーム装置３は、各種プログラムを実行し制御するための、例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０を備える。ＣＰＵ３０は、図示しないブートＲＯＭに記憶された起動プログラムを実行し、メインメモリ３３等のメモリの初期化等を行った後、光ディスク４に記憶されているゲームプログラムを実行し、そのゲームプログラムに応じたゲーム処理等を行うものである。ＣＰＵ３０には、メモリコントローラ３１を介して、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３２、メインメモリ３３、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）３４、および、ＡＲＡＭ（Ａｕｄｉｏ  ＲＡＭ）３５が接続される。また、メモリコントローラ３１には、所定のバスを介して、コントローラＩ／Ｆ（インターフェース）３６、ビデオＩ／Ｆ３７、外部メモリＩ／Ｆ３８、オーディオＩ／Ｆ３９、および、ディスクＩ／Ｆ４１が接続され、それぞれ受信ユニット６、モニタ２、外部メモリカード５、スピーカ２ａ、および、ディスクドライブ４０が接続されている。
【００４８】
ＧＰＵ３２は、ＣＰＵ３０の命令に基づいて画像処理を行うものであり、例えば、３Ｄグラフィックスの表示に必要な計算処理を行う半導体チップで構成される。ＧＰＵ３２は、図示しない画像処理専用のメモリやメインメモリ３３の一部の記憶領域を用いて画像処理映像を生成し、適宜メモリコントローラ３１およびビデオＩ／Ｆ３７を介してモニタ２に出力する。なお、ＣＰＵ３０ならびにＧＰＵ３２は、本実施形態における制御手段の一例に該当する。
【００４９】
メインメモリ３３は、ＣＰＵ３０で使用される記憶領域であって、図示しないＲＯＭ(Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ)とＲＡＭ(Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ)からなり、ＣＰＵ３０の処理に必要なゲームプログラム等を適宜記憶する。例えば、メインメモリ３３は、ＣＰＵ３０によって光ディスク４から読み出されたゲームプログラムやデータテーブル等の各種データを記憶する。このメインメモリ３３に記憶されたゲームプログラムや各種データ等がＣＰＵ３０によって実行される。このゲームプログラムの構成については後述する。
【００５０】
ＤＳＰ３４は、ゲームプログラムの実行時にＣＰＵ３０において生成されるサウンドデータ等を処理するものであり、そのサウンドデータ等を記憶するためのＡＲＡＭ３５が接続される。ＡＲＡＭ３５は、ＤＳＰ３４が所定の処理（例えば、先読みしておいたゲームプログラムやサウンドデータの記憶）を行う際に用いられる。ＤＳＰ３４は、ＡＲＡＭ３５に記憶されたサウンドデータを読み出し、メモリコントローラ３１およびオーディオＩ／Ｆ３９を介してスピーカ２ａに効果音、音楽、音声として出力させる。このとき、スピーカ２ａはモニタ２に備えられているものを用いてもよい。
【００５１】
メモリコントローラ３１は、データ転送を総括的に制御するものであり、上述した各種Ｉ／Ｆが接続される。コントローラＩ／Ｆ３６は、例えば４つのコントローラＩ／Ｆ３６ａ〜３６ｄで構成され、それらが有するコネクタを介して外部機器とゲーム装置３とを通信可能に接続する。例えば、受信ユニット６は、上記コネクタと嵌合し、コントローラＩ／Ｆ３６を介してゲーム装置３と接続される。上述したように受信ユニット６は、コントローラ７からの送信データを受信し、コントローラＩ／Ｆ３６を介して当該送信データをＣＰＵ３０へ出力する。
【００５２】
ビデオＩ／Ｆ３７には、モニタ２が接続される。外部メモリＩ／Ｆ３８には、外部メモリカード５が接続され、その外部メモリカード５に設けられたバックアップメモリ等とアクセス可能となる。オーディオＩ／Ｆ３９にはモニタ２に備えられているスピーカ２ａが接続され、ＤＳＰ３４がＡＲＡＭ３５から読み出したサウンドデータやディスクドライブ４０から直接出力されるサウンドデータをスピーカ２ａから出力可能に接続される。ディスクＩ／Ｆ４１には、ディスクドライブ４０が接続される。ディスクドライブ４０は、所定の読み出し位置に配置された光ディスク４に記憶されたデータを読み出し、ゲーム装置３のバスやオーディオＩ／Ｆ３９に出力する。なお、図２には図示していないがゲーム装置３は、経時時間を計測するためのタイマーを備えており、プログラム処理により現在の時間値を読み取ることが可能になっている。
【００５３】
［コントローラの構成］
図３を参照して、本発明の入力手段となる入力装置の一例であるコントローラ７について説明する。なお、図３（ａ）は、コントローラ７の上面後方から見た斜視図である。図３（ｂ）は、コントローラ７を下面後方から見た斜視図である。
【００５４】
図３（ａ）および図３（ｂ）において、コントローラ７は、例えばプラスチック成型によって形成されたハウジング７１を有しており、当該ハウジング７１に複数の操作部７２が設けられている。ハウジング７１は、その前後方向を長手方向とした略直方体形状をしており、全体として大人や子供の片手で把持可能な大きさである。
【００５５】
ハウジング７１上面の中央前面側に、十字キー７２ａが設けられる。この十字キー７２ａは、十字型の４方向プッシュスイッチであり、矢印で示す４つの方向（前後左右）に対応する操作部分が十字の突出片にそれぞれ９０°間隔で配置される。プレイヤーが十字キー７２ａのいずれかの操作部分を押下することによって前後左右いずれかの方向が選択される。例えば、プレイヤーが十字キー７２ａを操作することによって、仮想ゲーム世界（空間）に登場するプレイヤーキャラクタ等の移動方向を指示したり、カーソルの移動方向を指示したりすることができる。
【００５６】
なお、十字キー７２ａは、上述したプレイヤーの方向入力操作に応じて操作信号を出力する操作部であるが、他の態様の操作部でもよい。例えば、リング状に４方向の操作部分を備えたプッシュスイッチとその中央に設けられたセンタスイッチとを複合した複合スイッチや、ハウジング７１上面から突出した傾倒可能なスティック等を上記十字キー７２ａの代わりに設けてもよい。さらに、水平移動可能な円盤状部材をスライドさせることによって、当該スライド方向に応じた操作信号を出力する操作部を、上記十字キー７２ａの代わりに設けてもよい。また、少なくとも４つの方向（前後左右）をそれぞれ示すスイッチに対して、プレイヤーによって押下されたスイッチに応じて操作信号を出力する操作部を上記十字キー７２ａの代わりに設けてもよい。
【００５７】
ハウジング７１上面の十字キー７２ａより後面側に、複数の操作ボタン７２ｂ〜７２ｇが設けられている。操作ボタン７２ｂ〜７２ｇは、プレイヤーがボタン頭部を押下することによって、それぞれの操作ボタン７２ｂ〜７２ｇにボタンごとに割り当てられた操作信号を出力する操作部である。例えば、操作ボタン７２ｂ〜７２ｄには、Ｘボタン、Ｙボタン、および、Ｂボタン等としてゲームの内容に応じて、それぞれモニタ２上に新しいウィンドウを表示させる、モニタ２からの操作指示確認の表示に対して、了解あるいは否定するなど、それぞれのボタンごとに割り振られた機能を実行する。また、操作ボタン７２ｅ〜７２ｇには、セレクトスイッチ、メニュースイッチ、および、スタートスイッチ等としての機能が割り当てられる。これらの操作ボタン７２ｂ〜７２ｇは、ゲーム装置３が実行するゲームプログラムに応じてそれぞれの機能が割り当てられるものである。ただし、本実施形態においては、振動発生手段に該当するバイブレータ７４、振動検知手段に該当する加速度センサ７３を有していれば、特にこれらの操作ボタンを全て有していなくともよい。したがって、コントローラ７としては汎用のコントローラに限らず、例えば、マウスのような操作手段であっても載置台８に載置可能な操作手段（入力手段）であればよい。
【００５８】
また、ハウジング７１上面の十字キー７２ａより前面側に、操作ボタン７２ｈが設けられる。操作ボタン７２ｈは、遠隔からゲーム装置３本体の電源をオン／オフする電源スイッチである。あるいは、コントローラ７の電源をオン／オフする電源スイッチとしてもよい。なお、この操作ボタン７２ｈは、その上面をハウジング７１の上面に埋没させることにより、プレイヤーが不意に誤って押下することのないボタンとすることができる。
【００５９】
なお、ハウジング７１上面の操作ボタン７２ｃより後面側に、複数のＬＥＤ７０２が設けられる。このＬＥＤ７０２は、例えば、コントローラ７に現在設定されている上記コントローラ種別をプレイヤーに通知するために用いることが可能である。たとえば複数のプレイヤーによって複数のゲーム画面に表示されているキャラクタ―を操作する場合に、複数のＬＥＤ７０２の発光方法を変えることで、どのコントローラから送信された操作入力信号に基づいて、ゲーム画面上のキャラクタ―が操作されているのかをプレイヤーに通知することが可能である。また、複数のＬＥＤを同時に発光させることで、そのコントローラがゲーム装置に認識されたこと、あるいはなんらかの異常をプレイヤーに通知することが可能となる。
【００６０】
ここで、コントローラ７に対して設定した座標系について説明する。図３（ａ）および図３（ｂ）に示すように、互いに直交する座標系としてＸＹＺ軸をコントローラ７に対して定義する。具体的には、コントローラ７の前後方向となるハウジング７１の長手方向をＺ軸とし、コントローラ７の前面（バイブレータ７４が設けられている面）方向をＺ軸正方向とする。また、コントローラ７の上下方向をＹ軸とし、ハウジング７１の上面（十字キー７２ａが設けられた面）方向をＹ軸正方向とする。さらにコントローラ７の左右方向をＸ軸とし、ハウジング７１の左側面（図３（ａ）では表されずに図３（ｂ）で表されている側面）方向をＸ軸正方向とする。
【００６１】
次に図４を参照して、コントローラ７の内部構造について説明する。なお、図４（ａ）は、コントローラ７の上筐体（ハウジング７１の一部）を外した状態を示す斜視図である。図４（ｂ）は、コントローラ７の下筐体（ハウジング７１の一部）を外した状態を示す斜視図である。ここで、図４（ｂ）に示す基板７００は、図４（ａ）に示す基板７００の裏面から見た斜視図となっている。
【００６２】
図４（ａ）において、ハウジング７１の内部には基板７００が固設されており、当該基板７００の上主面上に操作ボタン７２ａ〜７２ｈ、加速度センサ７３、ＬＥＤ７０２、水晶振動子７０３、無線モジュール５３、および、アンテナ５４等が設けられる。そして、これらは、基板７００等に形成された配線（図示しない）によってマイクロコンピュータ５１（以下「マイコン」と記載する。図５参照）に接続される。加速度センサ７３は、コントローラ７が配置された３次元空間における傾きや振動等の算出に用いることができる加速度を検出して出力する。なお、加速度センサ７３は、後述する振動検知プログラムＰ３とともに、本実施形態における振動検知手段に該当する。
【００６３】
本実施形態において、図５に示すように、コントローラ７は３軸の加速度センサ７３を備えている。この３軸の加速度センサ７３は、３方向、すなわち、上下方向（図３に示すＹ軸）、左右方向（図３に示すＸ軸）、および前後方向（図３に示すＺ軸）で直線加速度を検知する。
また、加速度センサ７３をマイコン５１（または他のプロセッサ）と組み合わせて用いることによって、例えば、静的な加速度（重力加速度）が検知されると、加速度センサ７３からの出力をマイコン５１に入力することにより、マイコン５１のプログラム処理により、傾斜角度と検知された加速度とを用いた演算によって重力ベクトルに対する対象（コントローラ７）の傾きを判定することができる。このように、加速度センサ７３をマイコン５１（または他のプロセッサ）と組み合わせて用いることによって、コントローラ７の傾き、姿勢または位置を判定することができる。
【００６４】
また、無線モジュール５３およびアンテナ５４を有する通信部７５によって、コントローラ７がワイヤレスコントローラとして機能する。なお、水晶振動子７０３は、後述するマイコン５１の動作の基本となるクロック信号を生成する。
【００６５】
一方、図４（ｂ）において、基板７００の下主面上の後端に電池７６が収容される。また、基板７００の下主面上には、バイブレータ７４が取り付けられる。このバイブレータ７４は、例えば振動モータやソレノイドであってよい。バイブレータ７４が作動することによってコントローラ７に振動が発生する。なお、バイブレータ７４は本実施形態において第１の振動を発生させる振動発生手段に該当する。
【００６６】
［コントローラの制御機構］
続いて、図５を参照して、コントローラ７の動作を制御する内部構成（制御機構の構成）について説明する。なお、図５は、コントローラ７の機能構成を示すブロック図である。
【００６７】
加速度センサ７３は、上述したようにコントローラ７の上下方向（Ｙ軸方向）、左右方向（Ｘ軸方向）、および前後方向（Ｚ軸方向）の３軸成分に分けてそれぞれ加速度を検知して出力するセンサである。加速度センサ７３が検知した３軸成分の加速度を示すデータは、それぞれ通信部７５へ出力される。この加速度センサ７３から出力される加速度データに基づいて、コントローラ７の動きを判定することができる。なお、加速度センサ７３は、特定のアプリケーションで必要なデータに応じて何れか２軸に対してそれぞれ加速度を検出する加速度センサが用いられてもかまわない。
【００６８】
通信部７５は、マイコン５１、メモリ５２、無線モジュール５３、およびアンテナ５４を含んでいる。マイコン５１は、処理の際にメモリ５２を記憶領域として用いながら、送信データを無線送信する無線モジュール５３を制御する。
【００６９】
コントローラ７に設けられた操作部７２からの操作信号（キーデータ）、加速度センサ７３からの３軸方向の加速度信号（Ｘ、Ｙ、およびＺ軸方向加速度データ）が、マイコン５１に出力される。マイコン５１は、入力した各データ（キーデータ、Ｘ、Ｙ、およびＺ軸方向加速度データを受信ユニット６へ送信する送信データとして一時的にメモリ５２に格納する。ここで、通信部７５から受信ユニット６への無線送信は、所定の時間周期毎に行われるが、ゲームの処理は１／６０秒を単位として行われることが一般的であるので、それよりも短い周期で送信を行うことが必要となる。具体的には、ゲームの処理単位は１６．７ｍｓ（１／６０秒）で行われ、Ｂｌｕｅｔｏｏｔｈ（ブルートゥース；登録商標）で構成される通信部７５の送信間隔は、例えば５ｍｓで行われる。
【００７０】
マイコン５１は、メモリ５２に記憶されているプログラムに基づいて、受信ユニット６への送信タイミングが到来したと判定すると、メモリ５２に格納されている送信データを一連の操作情報として無線モジュール５３へ出力する。これにより、無線モジュール５３は、例えばＢｌｕｅｔｏｏｔｈ（登録商標）の技術を用いて、所定周波数の搬送波を用いて操作情報をその電波信号としてアンテナ５４から発信する。つまり、コントローラ７に設けられた操作部７２からのキーデータ、加速度センサ７３からのＸ、Ｙ、およびＺ軸方向加速度データ（振動の計測値）がコントローラ７からゲーム装置３へ送信される。
【００７１】
そして、ゲーム装置３の受信ユニット６でその電波信号を受信し、ゲーム装置３で当該電波信号を復調や復号処理を行なうことによって、一連の操作情報（キーデータ）、Ｘ、Ｙ、およびＺ軸方向の加速度データを取得する。続いて、ゲーム装置３のＣＰＵ３０は、取得した操作情報とゲームプログラムとに基づいて、ゲーム処理を行う。なお、Ｂｌｕｅｔｏｏｔｈ（登録商標）の技術を用いて通信部７５を構成する場合、通信部７５は、他のデバイスから無線送信された送信データを受信する機能も備えることができる。
【００７２】
［適用可能なゲーム例］
次に、図６および図７を用いて、本実施形態で想定するゲームの概要について説明する。図６および図７は、本実施形態で想定するゲームの画面の一例である。
図６（ａ）において、モニタ２には、人間を模したキャラクタ（以下「キャラクタＣ１」という）が地面（３次元空間内に存在する床面）に立っている様子が表示されている。このゲームにおいては、プレイヤーが、コントローラ７が載置された載置台８をトントンと叩くことによりその振動がコントローラ７に検知される。そして、コントローラ７により検知された振動の強さの度合い（強弱のレベル）、すなわち、プレイヤーの動作（載置台８を叩く動作、以下「動作」で統一する）によって、キャラクタＣ１が動作（「歩く」、「走る」、「ジャンプする（飛ぶ）」）を開始するものである。また、図中において、上記地面の下方に表記される数字（「ＳｔａＧｅ１−１」の横に表記される数字）は、ゲーム開始からの経過時間（ミリ秒（ｍｓ）単位で表示）を表している。
【００７３】
図６（ａ）では、ゲーム開始時の様子を表している。このとき、キャラクタＣ１は地面に立ったままの状態で静止している。すなわち、この時点においては、プレイヤーによる動作がなされる前であり、コントローラ７ではいずれの振動も検知されていない状態である。
図６（ｂ）では、図６（ａ）から時間が５秒ほど経過した段階におけるＣ１の様子を表している。このとき、キャラクタＣ１は歩いている状態となっている。すなわち、この時点においては、プレイヤーによる動作がなされており、コントローラ７ではこの動作に基づく振動が検知された状態である。なお、このときのプレイヤーによる動作は弱入力の振動として認識される（後述の図１７参照）。
【００７４】
そして、図７（ａ）では、図６（ａ）から時間が１２秒ほど経過した段階におけるＣ１の様子を表している。このとき、キャラクタＣ１は走り出している状態となっている。すなわち、この時点においては、図６（ｂ）における動作よりも強い動作がプレイヤーによってなされており、コントローラ７ではこのときの強い動作に基づく振動が検知された状態である。なお、このときのプレイヤーによる動作は中入力の振動として認識される。
【００７５】
さらに、図７（ｂ）では、図６（ａ）からさらに時間が２０秒ほど経過した段階におけるキャラクタＣ１の様子を表している。このとき、キャラクタＣ１は障害物（ハードルと模したもの）を飛び越えている状態となっている。すなわち、この時点においては、図６（ｂ）および図７（ａ）における動作よりもさらに強い動作がプレイヤーによってなされており、コントローラ７ではこのときの強い動作に基づく振動が検知された状態である。なお、このときのプレイヤーによる動作は強入力の振動として認識される。あるいは、プレイヤーが載置台８を強く叩かなくとも、コリジョンを持つ障害物（ハードルと模したもの）の領域内にキャラクタＣ１が入ったときに、プレイヤーが載置台８にたいして継続して中入力をしている状態にされていれば、キャラクタＣ１が自動的にジャンプするようにしてもよい。これらはゲームの内容に基づいて、適宜変更が可能である。
【００７６】
このように、本実施形態で想定するゲームでは、プレイヤーが載置台８を叩く動作の度合い（強・中・弱入力）に基づく振動が図６（ｂ）〜図７（ｂ）に示すようにキャラクタＣ１の動作に反映される。そして、キャラクタＣ１がゴールにたどり着くまでプレイヤーの動作によって生ずる振動がゲームに反映されるものである。このように、図６〜図７に示すゲーム例は、プレイヤーがいかに早くゴールにキャラクタＣ１をたどり着かせることができるかを競うゲームである。
【００７７】
本発明は、上記した図６〜図７に示すようなキャラクタの競争ゲームの他に、一般に「ビジュアライザ」といわれるゲームにも広く適用することができる。本願における「ビジュアライザ」とは、ゲーム装置３が備える入力手段によって入力された操作入力信号やサウンドデータの波形などに対応して、表示画面に模様などを動的に作り出すプログラムをさす。また、本願における「ビジュアライザ」は観賞用ソフトウェアとしても用いてもよいし、後述するコマンドが成立した回数をカウントするなどして、その成果を得点化し、模様などと共に表示してもよい。例えば、プレイヤーが載置台８を叩いた強さ、すなわち、検出された振動値の強さのレベル、あるいは、時系列的に、順次連続的に入力される振動値の強さのレベルのパターン、あるいは、時系列的に順次連続的に入力される振動値のリズム（後述する「叩きのリズム」）のパターン（振動の入力と休符のパターン）が、予め設定した１以上のパターンの組み合わせからなるコマンドに一致すると、モニタ２に各種の特別な映像（動画を含む）を表示させる処理を行なうゲームにも適用することができる。
【００７８】
［プログラムの構成］
続いて、ゲーム装置３のメインメモリ３３に記憶される制御プログラム（ゲーム制御プログラム）の構成について説明する。
【００７９】
本発明において、制御手段となる制御プログラムＰは、少なくとも図８に示す各種のプログラムを備えている。図８に示すように、制御プログラムＰは、メイン制御プログラムＰ０と、載置判定プログラムＰ１と、振動開始プログラムＰ２と、振動検知プログラムＰ３と、固有振動値算出プログラムＰ４と、補正値算出プログラムＰ５と、補正値操作変換プログラムＰ６と、関連振動設定プログラムＰ７、振動パターン判定プログラムＰ８、特殊入力コマンド判定プログラムＰ９と、演出処理プログラムＰ１０を備えている。ＣＰＵ３０は、これらのプログラムを適宜読み込んで各種の処理を実行する。
【００８０】
メイン制御プログラムＰ０は、ゲームシステム１の動作を統括して制御するためのプログラムであって、コントローラ７との通信プログラムを備えている。
【００８１】
載置判定プログラムＰ１は、ゲームスタート時に加速度センサ７３が所定時間、一定の所定値（閾値）（第１の振動値）以下の振動検出信号（第１の振動検出信号）が一定期間入力されると、載置台８にコントローラ７が載置されたことを確認するためのプログラムである。なお、載置されたことが確認できなかった場合、上記に加えてモニタ２にコントローラ７の載置を促すメッセージを適宜表示させることも可能である。
【００８２】
振動開始プログラムＰ２は、上記載置判定プログラムＰ１の起動後に、振動検知プログラムＰ３が振動を検知するために必要なプログラムである。この振動開始プログラムＰ２が起動することによって、振動発生手段（バイブレータ７４）による作動が開始され、加速度センサ７３が検知した振動をマイコン５１に取り込み、さらにゲーム装置３はこの振動の計測値を取得することが可能となる。
【００８３】
本発明においては、ゲームの初期段階において、コントローラ７が載置台８に置かれた際に、その載置台８がどの程度揺れるものであるのか、すなわち、載置台８の固有振動値を判定するようにしている。振動発生手段(バイブレータ７４)から与えられる振動は、予め定められた一定の強さで機械的に振動するので、載置台８に一定の強さの振動が与えられたときに加速度センサ７３が検知した値に基づいて、ゲーム装置３は載置台８がどの程度揺れるものであるかを判定するようにしている。
【００８４】
振動検知プログラムＰ３は、上記振動開始プログラムＰ２の制御により発生した振動の計測値を、コントローラ７から受信してメインメモリに記憶するためのプログラムである。ゲームシステム１は、この振動検知プログラムＰ３により、コントローラ７に振動が与えられたか否かを検知することが可能になる。さらに、振動検知プログラムＰ３は、ゲームの初期段階において載置台８がどの程度揺れるものであるかを判定するためだけに用いるのではなく、ゲーム全体の振動を検知する手段として使用される。
【００８５】
固有振動値算出プログラムＰ４は、上記した載置台８の固有振動値を判定する処理を行なうプログラムであって、振動検知プログラムＰ３の検知した振動の計測値に基づいて、固有振動値を算出する。この固有振動値算出プログラムＰ４が算出した固有振動値は、ゲーム中においてプレイヤーが載置台８を叩くことにより発生した振動の計測値が入力されると、この計測値を補正するために使用される。なお、固有振動値算出プログラムＰ４は、固有振動値算出手段になる。
【００８６】
補正値算出プログラムＰ５は、上記振動検知プログラムＰ３により、ゲーム中においてプレイヤーが載置台８を叩くことにより発生した振動の計測値（第２の振動値）を、上記した振動検知プログラムＰ３が取得したときに、この振動の計測値に補正を加える処理を行なうプログラムである。具体的には、載置台８における振動値に補正値を加えることで、載置台８が素材によって、プレイヤー自身が載置台８に与える振動の強さを変更（加減）する必要がなくなる。例えば、やわらかい素材(振動しにくい素材)、あるいは硬い素材(振動が伝わりやすい素材)であっても、プレイヤーは意識して叩く強さを手加減する必要がないという効果が生じる。
【００８７】
補正値操作変換プログラムＰ６は、補正値算出プログラムＰ５が補正処理を行なった振動の計測値について、ゲーム制御に使用するために変換処理を行なうためのプログラムである。すなわち、プレイヤーが載置台８を叩いた動作（操作）を、ゲームに反映させるための処理を行なうプログラムである。
【００８８】
関連振動設定プログラムＰ７は、プレイヤーが載置台８を１回叩いた動作に伴ってコントローラ７から送信された振動の計測値のうち、プレイヤーのこの１回の叩き動作に付随する関連振動を判定する処理を行なうプログラムである。この関連振動設定プログラムＰ７により、プレイヤーの１回の叩き動作に伴う振動を、この叩き動作に対応つけて確実に取得することが可能になる。なお、関連振動設定プログラムＰ７は、補正値操作変換プログラムＰ６のサブプログラムとして備えるようにしてもよい。
【００８９】
振動パターン判定手段を構成する振動パターン判定プログラムＰ８は、強弱閾値算出・分類プログラムＰ８ａと、タップ・休符判定プログラムＰ８ｂを備えている。
強弱閾値算出・分類プログラムＰ８ａは、時系列的に操作信号として入力された振動の計測値（振動検知信号）を、その振動の強さのレベルに応じて、この振動を「強弱」、あるいは「強中弱」などの少なくとも１つ以上のパターンに分類する処理を行なうプログラムである。なお、強弱閾値算出・分類プログラムＰ８ａは、入力振動分類手段を構成する。
また、タップ・休符判定プログラムＰ８ｂは、さらに振動検知信号が入力されない時間間隔（以下、「休符間隔」という）を判定して、時系列上の時間軸を振動検知信号が入力された時間間隔（以下、「タップ入力区間」という）と、振動検知信号が入力されない休符区間との２種のパターンに分類する処理を行なうプログラムである。タップ・休符判定プログラムＰ８ｂは、タップ休符設定手段となる。
【００９０】
特殊入力コマンド判定プログラムＰ９は、強弱閾値算出・分類プログラムＰ８ａ、あるいはタップ休符設定プログラムＰ８ｂが分類付けしたパターンの時系列な配列が、予め設定された複数の特殊入力コマンドのいずれかに一致しているか否かを判定する処理を行なうプログラムである。そして、予め設定された複数種の特殊入力コマンドのいずれかに一致していると判定されると、メイン制御プログラムＰ０は、この一致した特殊入力コマンドに対応して予め設定されたゲーム制御のプログラム（振動レベル判定によるゲーム制御プログラム）を実行する処理を行なう。例えば、一致した特殊入力コマンドに対応させてモニタ２に、大輪、中輪あるいは小輪の花火を連続して打ち上げる動画を表示する処理を行なう。なお、特殊入力コマンド判定プログラムＰ９は、特殊入力コマンド判定手段となる。
【００９１】
演出処理プログラムＰ１０は、メイン制御プログラムＰ０の制御により作動するプログラムであって、モニタ２に各種の演出画像を表示する制御を行なう演出画像表示制御プログラムＰ１０ａと、スピーカ２ａに音楽や効果音及び音声を出力する演出音出力処理プログラムＰ１０ｂを備えている。
【００９２】
［ゲームの制御］
続いて、本実施形態におけるゲームシステム１によって実行されるゲームの実行の制御について説明する。図９〜図１１は、ゲーム装置３のメインメモリ３３に記憶されているメイン制御プログラムＰ０がゲームを制御するときに、そのゲーム処理の基本的な制御の流れを示すフローチャートである。
なお、ゲーム装置３の電源が投入されると、ゲーム装置３のＣＰＵ３０は、図示しないブートＲＯＭに記憶されている起動プログラムを実行し、これによってメインメモリ３３等の各ユニットが初期化される。そして、光ディスク４に記憶されたゲーム制御プログラムと、各種の演出用画像データ、音声データ及び予め設定された基準データ（各種のデータテーブル等）に関する情報がメインメモリ３３等に読み込まれ、ＣＰＵ３０によって当該ゲーム制御プログラムの実行が開始される。
【００９３】
まず、ゲーム処理についてその全体制御の概要を、図９（ａ）に示すフローチャートのステップごとに説明する。
【００９４】
［ゲーム制御の概要］
（ステップＳ１）
ゲーム制御プログラムのメイン制御プログラムＰ０が立ち上がると、モニタ２に図９（ｂ）に示すようなゲームのメニュー画面を表示する処理を行なう。プレイヤーがコントローラ７を操作して、メニュー画面に表示されたゲームのメニューのうち、「ゲームＡ」、「ゲームＢ」、「ゲームＣ」から一つのメニューを選択すると、メイン制御プログラムＰ０は、選択されたゲームの初期画面をモニタ２に表示し、さらに各種の初期設定を行なうためのプログラムを作動させる。
【００９５】
初期設定の処理においては、前記した載置判定プログラムＰ１、振動開始プログラムＰ２、振動検知プログラムＰ３、固有振動数値算出プログラムＰ４を作動させて、載置台８の固有振動値を求める処理を行なう。また、この初期設定の処理においては、演出画像表示プログラムＰ１０ａにより演出用の初期画面をモニタ２に表示するとともに、演出用の音楽をスピーカ２ａから出力する処理を行なう。なお、この載置台８の固有振動値を求める処理の詳細については後述する。
【００９６】
（ステップＳ２）
ゲームを実施するために、プレイヤーが載置台８を叩く動作を行なうことにより発生した振動を、コントローラ７から振動検知信号（計測値）として入力して、ゲームの進行を制御する処理（進行メイン処理）を行なう。この進行メイン処理においては、補正値算出プログラムＰ５、補正値操作変換プログラムＰ６、関連振動設定プログラムＰ７により、プレイヤーが載置台８を叩く操作を行なうことにより入力された振動の振動検知信号を、ゲームに反映させるための前処理を行なう。続いて、この前処理により得た情報が、ゲームの進行を制御するための有効な操作入力情報および／または特殊入力コマンドと一致するか否かを判定する処理を行なう。そして、操作入力情報および／または特殊入力コマンドであると判定されると、操作入力情報および／または特殊入力コマンドごとに予め設定されたゲーム制御、例えば、特殊入力コマンドごとに設定された演出動画をモニタ２に所定時間、あるいは次の特殊入力コマンドと一致するまで操作入力情報に基づいて継続して表示する処理を行なう。この進行メイン処理の前処理の詳細については後述する。
【００９７】
（ステップＳ３）
プレイヤーが、例えば、コントローラ７を操作することによりゲーム終了信号が入力されたか否かを判定し、入力されていない場合にはステップＳ２の処理に戻ってゲームを継続する処理を行なう。一方、ゲーム終了信号が入力されたと判定した場合には、ステップＳ４に進む。
【００９８】
（ステップＳ４）
ゲーム終了の演出処理を行なって当該ゲームを終了させる。ゲーム終了の演出処理としては、例えば、ゲーム時間と、プレイヤーが載置台８を叩く動作が、有効な特殊入力コマンドと一致したと判定された回数等、をモニタ２に表示する処理を行なう。
【００９９】
［載置台の固有振動値を求める処理］
続いて、上記したステップＳ１の処理において、固有振動値算出プログラムＰ４が載置台８の固有振動値を求める処理の詳細を、図１２のフローチャートに示すステップごとに説明する。
図１２は、ゲーム開始に際して載置場所（本実施形態では載置台８）の固有の振動値を検出する処理を示している。なお、本実施形態における振動値（計測値）とは、加速度センサ７３により計測されたＸ、Ｙ、およびＺ軸方向の加速度データの成分（Ｘ、Ｙ、およびＺ成分ごとの計測値）それぞれを合計した値のことをいう。あるいは、Ｘ、Ｙ、およびＺ成分ごとの計測値から合成したベクトルの値をもって振動値とすることもでき、それらはゲームの内容に応じて適宜選択が可能である。
【０１００】
（ステップＳ１０１）（ステップＳ１０２）
ゲーム開始時には、コントローラ７は載置台８に載置された状態となっており、ＣＰＵ３０は、Ｎ＝１にするとともに、現在の最大振動値をクリアする（メインメモリ３３に記憶されている最大値振動値がある場合、これをクリアする）。なお、この「Ｎ」は、予め指定した所定の回数（Ｎ回）だけ最大振動値を計測するときに用いる変数である。
【０１０１】
（ステップＳ１０３）
次に、ＣＰＵ３０は、振動開始プログラムＰ２を作動させて、コントローラ７に発振動作を開始させる。具体的には、ＣＰＵ３０が、コントローラ７のマイコン５１を介してバイブレータ７４を作動する信号を送信し、コントローラ７のマイコン５１がバイブレータ７４を作動させることによりコントローラ７の発振動作を開始させる。
【０１０２】
（ステップＳ１０４）
そして、コントローラ７において、マイコン５１は、バイブレータ７４の発振動作によるコントローラ７の振動を加速度センサ７３によって計測された振動の値を計測値（振動値）として、マイコン５１から無線モジュール５３を介してゲーム装置３に所定の時間間隔で送信する。これにより、ＣＰＵ３０はこの計測値（振動値）を取得する。
【０１０３】
（ステップＳ１０５）
次に、ＣＰＵ３０は、取得した現在の振動値が、現時点（現在）において、メインメモリ３３に記憶されている最大振動値以上であるか否かを比較する処理を行なう。なお、最大振動値は、「Ｎ」が２以上の場合にのみ比較判定の処理を行なうものである。したがって、「Ｎ」＝１の場合には、ステップＳ１０５における判定は肯定（ステップＳ１０５＝ＹＥＳ）されるものとしている。
【０１０４】
（ステップＳ１０６）
上記ステップＳ１０５において、取得した現在の振動値が現在の最大振動値以上であると判定された場合、ＣＰＵ３０は、この現在の振動値を現在の最大振動値としてメインメモリ３３に記憶する。
【０１０５】
一方、上記ステップＳ１０５において、取得した現在の振動値が現在の最大振動値に満たないと判定された場合、上記ステップＳ１０６の処理は行われず、ステップＳ１０７に進む。
【０１０６】
（ステップＳ１０７）
次に、ＣＰＵ３０は、コントローラ７の発振動作が作動中であり、かつ、発振動作時間が規定時間（例えば、５ｍｓ）以上であるかを判定する。
【０１０７】
（ステップＳ１０８）
上記ステップＳ１０７において、コントローラ７の発振動作が作動中であり、かつ、発振動作時間が規定時間以上であると判定された場合、ＣＰＵ３０は、コントローラ７に発振動作（つまり、バイブレータ７４の作動）を停止させる信号を送信する。
【０１０８】
（ステップＳ１０９）
上記ステップＳ１０８においてコントローラ７の発振動作が停止状態となった場合、および、上記ステップＳ１０７においてコントローラ７の発振動作中であり発振動作時間が規定時間未満であると判定された場合、ＣＰＵ３０は、振動値を計測している計測時間が予め設定された所定時間以上であるかを判定する。なお、この計測時間が所定時間に到達していた場合はステップＳ１１０に進み、計測時間が所定時間に到達していない場合はステップＳ１０４に戻り、以降の処理が繰り返し行われる。
【０１０９】
（ステップＳ１１０）
上記ステップＳ１０９において、計測時間が所定時間に到達したと判定された場合、ＣＰＵ３０は、現在の最大振動値（メインメモリ３３に記憶されている最大振動値）を「Ｎ」回目の最大振動値としてメインメモリ３３に記憶する。
【０１１０】
（ステップＳ１１１）（ステップＳ１１２）
次に、ＣＰＵ３０は、「Ｎ」を「Ｎ＋１」にインクリメントするとともに、「Ｎ」が所定値以上であるかを判定する。なお、「Ｎ」が所定値に到達するまで、上記ステップＳ１０２以降ステップＳ１１２までの処理が繰り返し行われる。
【０１１１】
（ステップＳ１１３）
上記ステップＳ１１２において、「Ｎ」が所定値以上であると判定された場合、ＣＰＵ３０は、メインメモリ３３に記憶された「Ｎ」回分の最大振動値、すなわち、「Ｎ」個の最大振動値のうち、最大値および最小値となる値を除く「Ｎ−２」個の最大振動値の平均を算出し、算出された平均値を単位振動値（固有振動値）としてメインメモリ３３に記憶する。
【０１１２】
（ステップＳ１１４）
メインメモリ３３に予め記憶されている振動変換テーブルを参照して、ステップＳ１１３で求めた固有振動値に対応して振動変換テーブルに記憶されている振動値の補正係数を求めて、メインメモリ３３に記憶する。なお、振動変換テーブルは、予めコントローラ７を各種の設置場所に置いたときに測定した固有振動値ごとに、振動値を補正するための係数を実験により求めたデータテーブルである。補正係数は、０．７〜１．３で示される値である。
【０１１３】
このように振動値の補正係数を予め求めておくと、載置場所の環境に応じてプレイヤーの動作に対応する振動の計測値を、この補正係数を用いて補正してゲーム制御に反映させることが可能となる。すなわち、このような振動の計測値を補正する手段を備えていると、絶えず振動やノイズが生じているような載置場所においても、該振動やノイズが、プレイヤーの動作と混同して検出されてしまうといったことが極力回避される。
なお、この振動値の補正係数を予め求める処理は、コントローラ７のマイコン５１が実施するようにしてもよい。
【０１１４】
コントローラ７を載置場所に載置して振動を与えると、載置場所の固（硬）さ（例えば、載置場所としての地面の固さ、載置台の素材の固さ等）に応じた振動値の推移を得ることができる。図１３（ａ）は、コントローラ７を載置した載置場所が固い場合（例えば、アスファルト上、鉄板など）の振動値の推移を示しており、図１３（ｂ）は、載置場所が柔らかい場合（例えば、ボール紙など）の振動値の推移を示している。なお、図１３（ａ）及び（ｂ）において、縦軸は振動値、横軸は時間を表している。
【０１１５】
このように、載置場所の固さ等が振動値の推移によって計測できる。従って、プレイヤーが同じ強さで叩いても、入力される振動値はコントローラ７が載置された載置場所の固さ等の特性に応じて変化する。本実施形体におけるゲームシステムでは、さらに、補正値算出プログラムＰ５を実行することにより、プレイヤーが載置台８を叩くことにより入力される振動に応じて、その振動値を補正するための補正値をあらかじめ求めた上で、実際のゲーム実行中にプレイヤーが与えた振動を操作入力信号として特定することが可能になる。これにより、コントローラ７が安定して載置できる場所であれば、載置場所の環境に応じてゲームを楽しむことができる。
【０１１６】
［進行メイン処理］
続いて、図９に示したステップＳ２の処理である進行メイン処理の処理内容について説明する。進行メイン処理は、プレイヤーが載置台８を叩いたことにより発生した振動をコントローラ７が計測し、この計測した振動値をゲーム装置３に取り込む処理と、この取り込んだ振動値を補正し、さらにゲームに反映させるために変換する処理と、この変換した情報に基づいて、ゲームの制御を実行する部分が含まれている。
【０１１７】
図１０は、この進行メイン処理の処理手順の概要を示している。以下、進行メイン処理の概要を、図１０に基づいて説明する。
【０１１８】
（ステップＳ２１）
プレイヤーが載置台８を叩いたことにより発生した振動に対応する入力信号を、プレイヤーによる操作入力情報とする処理を行なって、この情報をメインメモリ３３に順次、時系列順に記憶する。また、ステップＳ２１においては、後述する「休符」に係る情報も、プレイヤーによる操作入力情報とする処理を行なう。これらの処理の詳細については後述するが、メイン制御プログラムＰ０の制御に基づいて、前記した補正値算出プログラムＰ５、補正値操作変換プログラムＰ６、関連振動設定プログラムＰ７、振動パターン判定プログラムＰ８、特殊入力コマンド判定プログラムＰ９等が作動される。なお、上記した休符」とは、プレイヤーが載置台８を叩かない動作、すなわち、載置台８を叩かない時間間隔を示す。
【０１１９】
（ステップＳ２２）
コントローラ７、あるいはモニタ２の画面を介して、叩く動作以外の何らかの「入力信号」が入力されたか否かを判定する。この判定の結果、例えば、何も入力がなかった場合には、進行メイン処理に関するステップＳ２３ならびにステップＳ２４の処理は行われず、この進行メイン処理を終了させる。
【０１２０】
（ステップＳ２３）
ステップＳ２１により、プレイヤーが載置台８を叩いたことにより発生した振動に対応する操作信号（振動の計測値）が入力されたので、メイン制御プログラムＰ０は予め設定された演出画像（動画を含んでもよい）をモニタ２に表示する通常の演出画像を表示する処理を行なう。この通常の演出画像を表示する処理としては、例えば、振動レベル判定によるゲーム制御ステップとして、小輪の花火を間欠的に打ち上げる動画を表示する処理を行なう。
【０１２１】
（ステップＳ２４）
プレイヤーが順次、連続的に載置台８を叩いたことにより取得した操作信号について、ステップＳ２１の処理でメインメモリ３３に順次記憶した操作入力情報の時系列的な配列が、予め設定した複数種の特殊入力コマンドの何れかに一致しているか否かを判定する。この判定の結果、特殊入力コマンドの何れかに一致している場合には、特殊入力コマンドごとに予め設定したゲーム制御の処理を実行する。このゲーム制御の処理としては、例えば、振動レベル判定によるゲーム制御ステップとして、前記した大輪の花火を連続して打ち上げる動画をモニタ２に表示する処理を行なう。
【０１２２】
なお、前記ステップＳ１の処理において、プレイヤーがゲームのメニュー画面から選択したゲーム名によっては、上記した特殊入力コマンドによるステップＳ２４の処理を備えていない場合もあり得る。従って、このようなゲームを実行するプログラムにおいてこのステップＳ２４の処理は、例えば、プレイヤーが載置台８を１回叩いたことにより取得した振動ごとに、その振動値の強さのレベルを判定してその強さのレベルに応じたゲーム制御を実行する処理を行なうようにする。
例えば、１回の叩き動作に対応する振動の強弱のレベルが「強」と判定された場合には、大輪の花火を連続して打ち上げる動画をモニタ２に表示する処理を行ない、強弱のレベルが「弱」と判定された場合には、小輪の花火を１回打ち上げる動画をモニタ２に表示する処理を行なう。
【０１２３】
図１４及び図１５は、上記進行メイン処理のステップＳ２１において、ゲーム実行中にコントローラ７によって検出された振動値を、補正値算出プログラムＰ５、補正値操作変換プログラムＰ６、関連振動設定プログラムＰ７により、補正処理と変換処理を行なうときの処理の流れを示している。以下、図１４及び図１５に基づいて、この振動値の補正と変換を行う処理について説明する。
【０１２４】
［振動値の補正処理］
図１４は、補正値算出プログラムＰ５による振動値の補正処理の一例を示している。以下、処理手順をステップごとに説明すると、次のようになる。
【０１２５】
（ステップＳ２０１）（ステップＳ２０２）
先ず、ＣＰＵ３０は、計測された振動値に基づいて振動率Ｒを算出する。この振動率Ｒは図中に示すように、「計測された振動値から平均振動値を引いた値」を「予測最大振動値から平均振動値を引いた値」で割ることにより算出される。
ここで、平均振動値とは、詳細は後述するが、コントローラ７を載置台８の上において静止状態を保った時に計測される振動値のことをいう。また、予測最大振動値とは、図１２に示す処理により計測された載置場所（載置台８）においてゲーム実行中のプレイヤーの叩く動作によって操作入力信号として許容される最大振動値のことをいい、発振機能を用いて計測した載置場所の環境に応じて求められる。
なお、計測された振動値は、前記した固有振動値から求めた補正係数を乗じて得た振動値を、必要に応じて採用する。
【０１２６】
（ステップＳ２０３）
次に、ＣＰＵ３０は、上記ステップＳ２０２において算出された振動率Ｒが振動率閾値Ｒ０以下であるかを判定する。この振動率閾値Ｒ０としては、予め所定値（例えば、０．５）が決められている。
【０１２７】
（ステップＳ２０４）
上記ステップＳ２０３において、振動率Ｒが振動率閾値Ｒ０以下であると判定された場合、ＣＰＵ３０は、図示した計算式にしたがって変換値を算出する。すなわち、振動率Ｒが振動率閾値Ｒ０以下であるときは、対数変換を用いたデータ処理が行われる。これにより、検出された振動値が微小値であってもゲームにおけるプレイヤーの動作として反映させることができる。
なお、図中のＡ０は、振動率閾値Ｒ０を変換した値（振動率閾値における変換値）のことをいい、このＡ０としては、予め所定値（例えば、０．６）が決められている。
【０１２８】
（ステップＳ２０５）
一方、上記ステップＳ２０３において、振動率Ｒが振動率閾値Ｒ０以下ではないと判定された場合、ＣＰＵ３０は、図示した計算式にしたがって変換値を算出する。すなわち、振動率Ｒが振動率閾値Ｒ０を越えるときは、対数変換を用いずにデータ処理が行われる。
このことから、振動率閾値Ｒ０は振動値が微小値であるか否かを判定する基準値（閾値）といえる。
【０１２９】
上記ステップＳ２０２で説明したように、振動率Ｒは、平均振動値に基づき算出される。図１５は、平均振動値の算出方法を示すフローチャートである。この平均振動値は、上述したとおり、コントローラ７を載置台８に置いて静止状態としたときの振動値のことである。以下、図１５に基づいて、この平均振動値を算出する手順について説明する。なお、この平均振動値を算出するためのプログラムは前記した固有振動値算出プログラムＰ４にサブプログラムとして備えておき、固有振動値を算出するときに、この平均振動値を算出するようにすることが望ましい。
【０１３０】
［平均振動値の算出手順］
続いて、上記した平均振動値の算出手順を図１５に示すフローチャートに基づいて説明する。
【０１３１】
（ステップＳ３０１）（ステップＳ３０２）
先ず、ＣＰＵ３０は、既にメインメモリ３３に記憶されている振動値のデータがある場合、これをクリアする（初期化する）とともに、コントローラ７において、加速度センサ７３によって計測された振動値を送信データとして取得し、メインメモリ３３に記憶する。
【０１３２】
（ステップＳ３０３）
次に、ＣＰＵ３０は、振動値の計測回数が予め設定された所定回数以上であるかを判定する。ここで、計測回数が所定回数に到達するまでは上記ステップＳ３０２以降の処理が繰り返される。
【０１３３】
（ステップＳ３０４）（ステップＳ３０５）
上記ステップＳ３０３において、振動値の計測回数が予め設定された所定回数以上であると判定された場合、ＣＰＵ３０は、ステップＳ３０２〜ステップＳ３０３においてメインメモリ３３に記憶された振動値の平均値を算出しこれを平均振動値とする。さらに該記憶された振動値のうち、最大の振動値を最大振動値とする。
【０１３４】
（ステップＳ３０６）
次に、ＣＰＵ３０は、上記ステップＳ３０５において決定された最大振動値から、上記ステップＳ３０４において算出された平均振動値を減算し、このとき得られた値（誤差）が一定値以下であるかを判定する。なお、ここでいう「一定値」は、例えば、最大振動値と平均振動値との誤差を極力微小な差に近似させる値とすることが望ましい（本実施形態では、０．００１としている）。したがって、この一定値は０に近づけるほど平均振動値の精度を高めることができる。
【０１３５】
（ステップＳ３０７）
上記ステップＳ３０６において、誤差が一定値以下であると判定された場合、ＣＰＵ３０は、上記ステップＳ３０４で算出された平均振動値を、載置台８における平均振動値としてメインメモリ３３に記憶する。
【０１３６】
一方、上記ステップＳ３０６における判定が満たされない場合、ステップＳ３０１に戻り、ステップＳ３０１以降ステップＳ３０６までの処理が繰り返される。
【０１３７】
［振動値の変換処理］
ゲームが開始となってから、プレイヤーによる載置台８を叩く動作が受け付けられたときに、補正値操作変換プログラムＰ６により振動値を変換する処理、及びノイズ振動を検出する処理について説明する。図１６はこの補正値操作変換プログラムＰ６の処理手順の一例を示している。以下、図１６に示す処理ステップごとにその処理内容を説明する。
【０１３８】
（ステップＳ４０１）
先ず、ＣＰＵ３０は、「Ｍ」を０にする。なお、この「Ｍ」は、振動値の補正に際して使用する補正種別フラグであって、以下の処理において、その処理の判定結果に関する情報を保持しておくためのフラグである。
【０１３９】
（ステップＳ４０２）（ステップＳ４０３）
次に、ＣＰＵ３０は、コントローラ７における加速度センサ７３により計測された振動値を送信データとして取得するとともに、加速度の変化量（以下「加速度変化量」として統一する）を算出する。この「加速度変化量」とは、加速度センサ７３によって計測されたＸ、Ｙ、およびＺ軸方向加速度データの成分それぞれの１フレーム（例えば、１／６０秒）に４回計測するその回数ごとの過去との差分を合計した値のことをいう。なお、この差分は絶対値ではなく符号を考慮した値を採用する。この差分を算出することにより、プレイヤーによる１回の叩く動作による操作入力信号を１回の叩きとして正確に検知することが可能となる。
なお、ここでいう「過去」とは１フレームに４回計測した場合において、２回目の計測をした場合には１回目の計測時のことをいい、３回目の計測をした場合には２回目の計測時のことをいう。
【０１４０】
（ステップＳ４０４）
次に、ＣＰＵ３０は、上記ステップＳ４０３で算出された加速度変化量から、１フレーム（例えば、１／６０秒）の間に計測された加速度変化量の最大値をフレーム加速度変化量としてメインメモリ３３に記憶する。
【０１４１】
（ステップＳ４０５）（ステップＳ４０６）
次に、ＣＰＵ３０は、振動トリガーフラグ（以下、単に「振動トリガー」という）を一度ＯＦＦにする（例えば、「０」を記憶する）とともに、図示した計算式に従ってフレーム間の加速度変化量の差Ｄを算出する。なお、差Ｄは、当該フレームにおける加速度変化量から、当該フレームの一つ前のフレームにおける加速度変化量（図中では前フレーム加速度変化量と記載）を減算することにより算出される。なお、振動トリガーとは、プレイヤーの叩き動作に伴う振動が入力されたこと、すなわち、振動値の変化の立ち上がりがあったことを示す情報を記憶しておくために、メインメモリ３３に設定したフラグである。
【０１４２】
（ステップＳ４０７）
上記ステップＳ４０６において、差Ｄが算出されると、ＣＰＵ３０は、「Ｍ」が０（Ｍ＝０）であるかを判定する。
【０１４３】
（ステップＳ４０８）
上記ステップＳ４０７において、Ｍ＝０であると判定された場合、ＣＰＵ３０は、差Ｄが所定値（第１の所定値）より大きいか（越えているか）否かを判定する。
【０１４４】
（ステップＳ４０９）（ステップＳ４１０）
上記ステップＳ４０８において、差Ｄが所定値より大きいと判定された場合、ＣＰＵ３０は、Ｍ＝１とするとともに、振動変化の立ち上がりがあったとして振動トリガーをＯＮにする（「１」を記憶する）。このときの時間値も記憶する。さらに、振動トリガーをＯＮした後のフレームにおいてフレーム加速度変化量が増加したときのその最大の加速度変化量を、この振動トリガーをＯＮした処理に対応する加速度変化量としてメインメモリ３３に記憶する。そして、上記ステップＳ４０２に戻る。また、上記ステップＳ４０８において、差Ｄが所定値以下であると判定された場合には、上記ステップＳ４０９〜ステップＳ４１０の処理は行われず、ステップＳ４０２に戻る。
【０１４５】
このように、振動トリガーの判定によって、振動トリガーがＯＮになったときには、次々と入力される振動値について、上記した最大の加速度変化量を求める。そして、この最大の加速度変化量の大きさに応じて、次の再振動受付時間（再計測までの時間）を設定する処理を行なう。これにより、操作入力信号として用いられる信号以外の信号(たとえそれが操作入力信号よりも強いと判定される値であったとしても)を、操作入力信号とせず、キャンセルすることが可能になる。
【０１４６】
（ステップＳ４１１）
一方、上記ステップＳ４０７において、Ｍ＝０ではないと判定された場合、ＣＰＵ３０は、Ｍ＝１であるかを判定する。
【０１４７】
（ステップＳ４１２）
上記ステップＳ４１１において、Ｍ＝１であると判定された場合、ＣＰＵ３０は、差Ｄが０以下であるか否かを判定する。
【０１４８】
（ステップＳ４１３）（ステップＳ４１４）
上記ステップＳ４１２において、差Ｄが０以下であると判定された場合、ＣＰＵ３０は、Ｍ＝２とするとともに、再振動受付時間を決定する。この再振動受付時間は、前フレーム加速度変化量の大きさに応じて決定される。そして、上記ステップＳ４０２に戻る。
また、上記ステップＳ４１２において、差Ｄが０を超えると判定された場合には、上記ステップＳ４１３〜ステップＳ４１４の処理は行われず、ステップＳ４０２に戻る。
【０１４９】
（ステップＳ４１５）
また、上記ステップＳ４１１において、Ｍ＝１ではないと判定された場合、ＣＰＵ３０は、差Ｄが０以上であるか否かを判定する。
【０１５０】
（ステップＳ４１６）
上記ステップＳ４１５において、差Ｄが０以上であると判定された場合、すなわち、このときは、当該フレーム加速度変化量が前フレーム加速度変化量よりも大きくなるため、新たなプレイヤーの動作が検出された可能性が高くなる。このとき、ＣＰＵ３０は、再振動受付時間が経過しており、かつ、差Ｄが所定値以上であるかを判定する。
【０１５１】
（ステップＳ４１７）（ステップＳ４１８）
上記ステップＳ４１６において、再振動受付時間が経過しており、かつ、差Ｄが所定値以上であると判定された場合、ＣＰＵ３０は、Ｍ＝１とするとともに、振動トリガーをＯＮ（「１」を記憶）する。なお、このときの時間値も記憶するようにする。さらに、ステップＳ４１０と同様に、振動トリガーをＯＮした後のフレームにおいてフレーム加速度変化量が増加したときのその最大の加速度変化量を、この振動トリガーをＯＮした処理に対応する加速度変化量としてメインメモリ３３に記憶する。そして、上記ステップＳ４０２に戻る。
【０１５２】
（ステップＳ４１９）
一方、上記ステップＳ４１６において、再振動受付時間が経過していないか、あるいは、差Ｄが所定値以上ではないと判定された場合には、ＣＰＵ３０は、再振動受付時間のカウンタを０にし、ステップＳ４０２に戻る。
【０１５３】
（ステップＳ４２０）
一方、上記ステップＳ４１５において、差Ｄが０未満であると判定された場合には、ＣＰＵ３０は、差Ｄが所定値以下であるかを判定する。
【０１５４】
（ステップＳ４２１）
上記ステップＳ４２０において、差Ｄが所定値以下であると判定された場合、ＣＰＵ３０は、Ｍ＝０として、上記ステップＳ４０２に戻る。
また、上記ステップＳ４２０において、差Ｄが所定値を越えると判定された場合には、上記ステップＳ４２１の処理は行われず、ステップＳ４０２に戻る。
【０１５５】
図１７〜図１９は、上述した図１６に示す手順により振動値の補正が実際に行われた場合の推移を示すグラフである。なお、図１７はプレイヤーによる動作が弱入力として検知された場合、同様に図１８は中入力として検知された場合、図１９は強入力として検知された場合のそれぞれの推移を示したものである。また、図中における下方に向かって延びる実線は振動トリガーとしてプレイヤーによる１回の動作が検知されたことを示しており、点線は加速度変化量、二点鎖線は１フレーム内における最大加速度変化量をそれぞれ示している。
【０１５６】
例えば、図１９において灰色と白い色とに区分されているそれぞれを１フレームとしているが、振動トリガーがＯＮになった後、振動トリガーがＯＮになってから４フレーム後に最大加速度変化量が減少し、振動トリガーがＯＮになってから５フレーム後に最大加速度変化量が上昇しているが、この５フレーム後の最大加速度変化量は振動トリガーとしてはとらない。このようにすることで、振動トリガーとしてプレイヤーによる１回の動作を正確に検知することができる。
【０１５７】
前記したステップＳ４０７〜ステップＳ４１９、及びステップＳ４２０〜ステップＳ２１の処理は、関連振動設定プログラムＰ７が実行する処理に該当する。関連振動設定プログラムＰ７は、プレイヤーの１回の叩き動作に伴う振動が検知された場合、この検知された振動値に基づいて以後検知される振動をこの１回の叩きに関連した関連振動となるノイズとして設定することにより、プレイヤーによる動作が１回だけ受け付けられたにも拘らず、該１回の動作の余韻（余波、ぶり返し）を別の動作として検知してしまうことを回避する処理を行なう。すなわち、１回のプレイヤーの動作が、複数回の叩き動作として検出されてしまうことを無くするため、プレイヤーの叩き動作に対する検知の精度を高めることができる。
【０１５８】
続いて、図１０に示した進行メイン処理において、そのステップＳ２１の処理のうち、振動パターン判定プログラムＰ８が実行する処理について説明する。振動パターン判定プログラムＰ８は、図８に示すように強弱閾値算出・分類プログラムＰ８ａと、タップ・休符判定プログラムＰ８ｂを備えている。メイン制御プログラムＰ０は、上記したステップＳ１の処理においてプレイヤーがメニュー画面から選択したゲームＡ、Ｂ、Ｃのゲーム内容に応じて、これらのプログラムの実行を制御することになる。
【０１５９】
上記したように、ゲーム装置３は、コントローラ７から取得した振動の計測値が、プレイヤーが載置台８を叩いたことにより発生した振動の計測値と判定されると、取得した振動値を前記した補正値算出プログラムＰ５、補正値操作変換プログラムＰ６、及び関連振動設定プログラムＰ７により補正と変換処理を行なって、プレイヤーの１回ごとの叩く動作に対応した振動値に関する情報を、ゲーム制御に使用する情報（以下、「タップ操作入力情報」という）を得るための処理を行なう。
【０１６０】
このタップ操作入力情報を得る処理を行なうプログラムとして、前記した強弱閾値算出・分類プログラムＰ８ａと、タップ・休符判定プログラムＰ８ｂを設けている。
【０１６１】
強弱閾値算出・分類プログラムＰ８ａは、時系列的に順次入力される振動の計測値を、順次、上記した変換処理を行なって得たタップ操作入力情報から、ゲーム制御に反映させるための情報を得るための処理を行なうプログラムである。このゲーム制御に反映させるための情報を得るために、タップ操作入力情報を「強弱」の２種、あるいは「強中弱」の３種等の強さのレベルに分類する処理を行なう。すなわち、プレイヤーが載置台８を叩く都度発生した１回ごとの叩きに対応する振動のタップ操作入力情報を、プレイヤーが載置台８を叩いたときの各種の状況（力の入れ具合、時間帯、精神状況等）、及びプレイヤー自体の属性（幼児、子供、大人等）によって変化する強さに応じて、２種以上の強弱のレベルのパターン（強弱レベルパターン）のいずれかに分類する処理を行なう。
【０１６２】
［強弱レベルパターンの判定処理］
図２０は、強弱閾値算出・分類プログラムＰ８ａにより、上記したプレイヤーがゲームを実施するために載置台８を叩くごとに発生した１回ごとの叩きに対応するタップ操作入力情報を、その強さに応じて２種以上のレベルのいずれかに分類する処理を行なう手順の一例を示すフローチャートである。以下、図２０に基づいて強弱閾値算出・分類プログラムＰ８ａの処理手順について説明する。なお、強弱閾値算出・分類プログラムＰ８ａは、メイン制御プログラムＰ０の制御に従って、所定の時間間隔ごとに実行される。
【０１６３】
（ステップＳ５０１）
プレイヤーがゲームを実施するために載置台８を叩くごとに発生した１回ごとの叩きに対応するタップ操作入力情報を、メイン制御プログラムＰ０の制御に従って、メインメモリ３３の保存データ記憶領域に記憶する処理を行なうようにしている。ステップＳ５０１では、保存データ記憶領域に記憶したタップ操作入力情報の数（Ｒ）をカウントするために設定したカウント記憶領域を、「０」に初期化する。
【０１６４】
（ステップＳ５０２）
プレイヤーがゲームを実施するために載置台８を叩く操作を行なったことにより、その振動がゲーム装置３に入力されたか否か、すなわち、前記した振動トリガーが「ＯＮ」になっているか否かを判定する。この判定処理の結果、「振動トリガー」に「１」（＝ＯＮ）が記憶されていると次のステップＳ５０３に進み、「０」（＝ＯＦＦ）が記憶されているとステップＳ５０２に戻る。なお、ステップＳ５０２以降の処理が所定の時間間隔ごとに実行される。
【０１６５】
（ステップＳ５０３）
前記した図１６に示すステップＳ４１０又はＳ４１８の処理において、「振動トリガー」をＯＮした後のフレームに対応する加速度変化量を、現時点においてプレイヤーの１回の叩き操作に対応して入力された現在の振動値の強さ（Ｅ）とする処理を行なう。そして、この現在の振動値の強さ（Ｅ）をメインメモリ３３に一旦記憶する。
【０１６６】
（ステップＳ５０４）
上記したカウント数Ｒが、予め設定した上限値（強さ保存最大数）を越えたか否かを判定する。この判定処理の結果、上限値を越えていないと判定された場合にはステップＳ５０６に進み、上限値を越えていると判定された場合にはステップＳ５０５に進む。なお、この上限値は、プレイヤーの叩く動作の癖を把握するためには７〜１５程度に設定するとよい。
【０１６７】
（ステップＳ５０５）
現在の振動値の強さ（Ｅ）を順次記憶するためにメインメモリ３３に設定した保存データ記憶領域について、時系列的に一番古い振動値の強さ（Ｅ）を削除する処理を行なう。そして、カウント数Ｒを「１」減算する処理を行なって、ステップＳ５０６に進む。
【０１６８】
（ステップＳ５０６）
ステップＳ５０３においてメインメモリ３３に一旦記憶した現在の振動値の強さ（Ｅ）を、メインメモリ３３に設定した保存データ記憶領域にこの現在の振動値の強さ（Ｅ）を時系列順に記憶する。そして、カウント数（Ｒ）を「１」加算する処理を行なう。
【０１６９】
（ステップＳ５０７）
カウント数（Ｒ）が、予め設定した計算有効最小値Ｒ０より少ないか否かを判定する。この判定処理の結果、Ｒ＞Ｒ０の場合にはステップＳ５０８に進み、ＲがＲ０以下と判定されるとステップＳ５１４に進む。なお、計算有効最小値Ｒ０の値は、「３」又は「４」以上のいずれかの値を設定するようにする。
【０１７０】
（ステップＳ５０８）
保存データ記憶領域に順次記憶した現在の振動値の強さ（Ｅ）について、その中央値（Ｃ）を求めて、その中央値（Ｃ）の値をメインメモリ３３に記憶する。
【０１７１】
（ステップＳ５０９）
保存データ記憶領域に順次記憶した振動値の強さ（Ｅ）について、ステップＳ５０８で求めた中央値（Ｃ）より大きな値の平均値（Ｕ）と、同じく中央値（Ｃ）より小さな値の平均値（Ｌ）を求めて、それぞれの値をメインメモリ３３に記憶する。
【０１７２】
（ステップＳ５１０）
全体の中央値（Ｃ）を「０．５」、平均値（Ｕ）が中央値（Ｃ）以上の中央値である「０．７５」、振動の「中強」のレベルを判定するための閾値を「０７」、同じく振動の「弱中」のレベルを判定するための閾値を「０．３」と仮定したときに、ゲーム制御において、振動を「強中弱」のレベルに分類するための閾値Ｙ１とＹ２を求める処理を行なう。
ステップＳ５１０においては、全体の中央値（Ｃ）を「０．５」としたときにこの「０．５」以上となる閾値Ｙ１を、下記の比例配分による計算式１により求める処理を行なう。
０７．５−０．５：（０．７−０．５）＝
平均値（Ｕ）−中央値（Ｃ）：Ｙ１−中央値（Ｃ）・・・・・・（１）
この閾値Ｙ１は、振動を「中強」のレベルに分類するための閾値であって例えば、振動値が閾値Ｙ１を超える「強レベル」、閾値Ｙ１以下であると「中レベル」と判定する。
【０１７３】
（ステップＳ５１１）
ステップＳ５１１においては、全体の中央値（Ｃ）を「０．５」としたときにこの「０．５」以下となる閾値Ｙ２を、下記の比例配分による計算式（２）により求める処理を行なう。
０．５０−０．２５：（０．５−０．３）＝
中央値（Ｃ）−平均値（Ｌ）：中央値（Ｃ）−Ｙ２・・・・・・（２）
この閾値Ｙ２は、振動を「弱中」のレベルに分類するための閾値であって例えば、振動値が閾値Ｙ２を超える「中レベル」、閾値Ｙ２以下であると「弱レベル」と判定する。
【０１７４】
（ステップＳ５１２）
上記計算式（１）、（２）で求めた閾値Ｙ１及びＹ２を参照して、現在の振動値の強さ（Ｅ）が、「強中弱」パターンのどのレベルに該当するかを判定する。この判定処理は、例えば次の処理を行なう。
【０１７５】
（１）現在の振動値の強さ（Ｅ）が閾値Ｙ１を越えている場合には、現在の振動値の強さ（Ｅ）を「強中弱」のパターンの「強」のレベルと判定する。
（２）現在の振動値の強さ（Ｅ）が閾値Ｙ１以下であって、かつ、閾値Ｙ２を越えている場合には、現在の振動値の強さ（Ｅ）を「強中弱」のパターンの「中」のレベルと判定する。
（３）現在の振動値の強さ（Ｅ）が閾値Ｙ２より小さい場合には、現在の振動値の強さ（Ｅ）を「強中弱」のパターンの「弱」のレベルと判定する。
ステップＳ５１２の処理が終るとステップＳ５１４に進む。
【０１７６】
（ステップＳ５１３）
現在の振動値の強さ（Ｅ）が、上記した振動の「中強」のレベルを判定するための仮の閾値「０．７」、同じく振動の「弱中」のレベルを判定するための仮の閾値「０．３」と比較してどの範囲に含まれるかを判定し、現在の振動値の強さ（Ｅ）が、「強中弱」パターンのどのレベルに該当するかを決定する。この判定処理においては、例えば次の処理を行なう。
【０１７７】
（１）現在の振動値の強さ（Ｅ）が「０．７」を越えている場合には、現在の振動値の強さ（Ｅ）を「強中弱」のパターンの「強」のレベルと判定する。
（２）現在の振動値の強さ（Ｅ）が閾値「０．７」以下であって、かつ、閾値「０．３」を越えている場合には、現在の振動値の強さ（Ｅ）を「強中弱」のパターンの「中」のレベルと判定する。
（３）現在の振動値の強さ（Ｅ）が「０．３」より小さい場合には、現在の振動値の強さ（Ｅ）を「強中弱」のパターンの「弱」のレベルと判定する。
ステップＳ５１３の処理が終るとステップＳ５１４に進む。
【０１７８】
（ステップＳ５１４）
上記ステップＳ５１２又はステップＳ５１３の処理で判定した「強中弱」のパターンのレベルに関する情報をメインメモリ３３に設定した強さの種類保存メモリに記憶し、強さの種類保存メモリに記憶されたパターンのレベルに関する情報に基づいて判定された、入力された値がそのパターンのどの値に該当するのか（「弱」なのか、「中」なのか、「強」なのか）という情報を、コマンド判定用テーブルに時系列順に記憶する。
【０１７９】
上記したステップＳ５０１〜Ｓ５１４の処理を実行することにより、プレイヤーがゲームを行なうために載置台８を１回叩く度に発生した振動を、「強中弱」のレベルパターンの何れか一つに分類したレベルパターンに関する情報が設定され、この設定したレベルパターンに基づいて判定された情報がメインメモリ３３のコマンド判定用テーブルに時系列順に順次記憶されることになる。このコマンド判定用テーブルに「強中弱」のいずれかのレベルパターンを記憶する処理手順は、後述するステップＳ２４ａ〜ステップＳ２４ｃに記載している手順になる。
【０１８０】
［コマンド判定処理］
続いて、図１０に示した前記ステップＳ２４の処理である「コマンド判定処理」の手順を図１１に示すフローチャートに基づいて説明する。このコマンド判定処理は、特殊入力コマンド判定プログラムＰ９が実行する。
【０１８１】
（ステップＳ２４ａ）（ステップＳ２４ｂ）
前記したコマンド判定用テーブルに記憶した「強中弱」のレベルパターンの数が上限値に達しているか否かを判定する。この上限値の値としては、例えば、「７」〜「１５」程度の適切な値を設定する。この判定処理の結果、上限値に達していると判定された場合には、ステップＳ２４ｂに進んでコマンド判定用テーブルに記憶した「強中弱」のレベルパターンに係る情報のうち、時系列順で一番古い情報を削除する処理を行なってコマンド判定用テーブルに記憶されている情報を時系列順にシフト（再配置）する処理を行なう。一方、上限値に達していないと判定された場合には、ステップＳ２４ｃに進む。
【０１８２】
（ステップＳ２４ｃ）
上記したステップＳ５１２又はステップＳ５１３の処理で判定した「強中弱」のパターンのレベルに関する情報をコマンド判定用テーブルに記憶する。コマンド処理用テーブルには、プレイヤーがゲームを行なうために載置台８を叩く動作を行なう都度、その叩く動作に対応した振動の「強中弱」のレベルパターンに関する情報のいずれか一つが時系列順に記憶されることになる。図２２（ａ）は、このコマンド判定用テーブル（ＴＣ１）のデータ構成の一例を説明するための図である。図２２（ａ）に示すコマンド判定用テーブル（ＴＣ１）は、「強中弱」のレベルパターンに係る情報を記憶する数の上限値を１０に設定した例を示し、現時点においてレベルパターンが３個記憶されていることを示している。なお、図２２（ａ）においては、記憶順序の番号が大きいほど時系列的に古い「強中弱」のレベルパターンに係る情報が記憶されていることを示す。
【０１８３】
（ステップＳ２４ｄ）
コマンド判定用テーブル（ＴＣ１）に記憶されている「強中弱」のレベルパターンに係る情報の時系列順の配列（古い順の配列）が、特殊入力コマンドテーブルを参照して、特殊入力コマンドテーブルに予め登録されている特殊入力コマンドの何れか一つに一致しているか否か、すなわち、プレイヤーが載置台８を複数回連続的に叩く動作を行なったことにより発生した振動をゲーム装置３が順次取得したときに、この振動がゲームを制御するためのコマンド（特殊入力コマンド）として成立するか否かを判定する。この判定処理の結果、一致していると判定されるとステップＳ２４ｅに進み、一致していない場合には本コマンド判定処理を終了する。
【０１８４】
なお、この特殊入力コマンドとは、ゲーム制御を実行するために予め設定した１以上のパターンの組み合わせからなる複数の制御コマンドを示し、入力された複数の振動値に関する情報のうち、コマンド判定用テーブルに順次時系列順に記憶された情報の配列が、予め定められた制御コマンドと一致するものを、特殊入力コマンドとして入力されたと判定し、この特殊入力コマンドごとに、例えば、メイン制御プログラムＰ０はモニタ２に予め設定した特有の映像を表示する処理を行なう。図２３（ａ）は、予め設定した複数種の特殊入力コマンドごとに、ゲーム制御を実行するために予め設定した特殊入力コマンドテーブル（ＴＴ１）のデータ構成の一例を示す。
【０１８５】
図２３（ａ）に示す特殊入力コマンドテーブル（ＴＴ１）は、予め設定した複数種の特殊入力コマンドの識別情報ごとに、これら個々の特殊入力コマンドを示す前記した「強中弱」のレベルパターンに係る情報の複数を配列した情報と、個々の特殊入力コマンドに対応してゲーム制御を実行するためのコマンド実行プログラム名（プログラムのスタート番地）を記憶したデータテーブルである。
【０１８６】
（ステップＳ２４ｅ）
ステップＳ２４ｄにより、プレイヤーが載置台８を複数回連続的に叩いた動作が、ゲームを制御するための特殊入力コマンドとして成立すると判定されたので、メイン制御プログラムＰ０は、成立した特殊コマンドに対応して特殊入力コマンドテーブル（ＴＴ１）に登録されているコマンド実行プログラム名を実行する処理を行なう。例えば、プレイヤーが載置台８を複数回連続的に叩いた動作に対応する「強中弱」のレベルパターンの時系列順の配列が「強」「強」「強」「弱」（特殊入力コマンドの識別情報が「０２」）と判定されると、メイン制御プログラムＰ０は特殊入力コマンドテーブル（ＴＴ１）に示す「大輪花火打上げ」のプログラムを実行させる。それにより、モニタ２には大輪花火の打上げの動画像とその効果声が出力されることになる。
【０１８７】
このとき、プレイヤーに対して、どの配列によって特殊入力コマンドが成立したかを知らせるために、特殊入力コマンドが成立したときに限定して、この成立した特殊入力コマンドを図や文字等によってモニタ２に表示してもよい。このような制御を行なうことで、プレイヤーが叩いた動作に対応した振動値に関する情報が特殊入力コマンドに一致すると、プレイヤーは見たい画像を見ることが可能になる。
【０１８８】
（ステップＳ２４ｆ）
コマンド判定用テーブルＴＣ１の記録内容をクリア（リセット）する処理を行なって、コマンド判定処理を終了する。このようにして、プレイヤーが引き続いて載置台８を叩く動作を行なうと、上記したステップＳ２４ａ〜ステップＳ２４ｆの処理が繰り返して実行されることになる。
【０１８９】
上記した特殊入力コマンドテーブル（ＴＴ１）は、例えば、図９（ｂ）に示す本ゲーム装置３で実行することができるゲームメニューのうちゲームＢで採用するようにする。
【０１９０】
［叩くリズムを考慮したゲーム制御例］
続いて、プレイヤーが載置台８を連続的に叩いたときに、その「叩いたリズム」を判定し、この「判定した叩いたリズム」が予め設定した特殊入力コマンドに一致していると、この一致した特殊入力コマンドに対応して予め設定されたゲーム制御を行なう手段を備えた実施形態について説明する。
【０１９１】
このプレイヤーが載置台８を叩いたときの「叩いたリズム」を判定するためには、時系列の経過時間軸について、載置台８を叩いたときの振動（振動検知信号）がゲーム装置３に入力された時間区間（以下、「タップ入力区間」という）と、振動検知信号が入力されていない時間区間（以下、「休符区間」という）とに区分することにより実現できる。さらに、この「叩いたリズム」を構成する「タップ入力区間」と「休符区間」は、プレイヤーが載置台８を叩いたときの各種の状況（力の入れ具合、時間帯、精神状況等）、及びプレイヤー自体の属性（幼児、子供、大人等）によって長くなったり短くなったりする。従って、「叩いたリズム」を判定するとき、特に「休符区間」の判定はこれらの状況や属性の影響を極力受けないような判定処理を採用すると、正確な「休符区間」を判定することが可能になると考えられる。  
【０１９２】
本発明の実施形態においては、この「休符区間」を図２１に示す手順に従って正確に判定する手段を備えている。
以下、この「休符区間」の判定方法を、図２１に示すフローチャートに基づいて説明する。なお、この「休符区間」を判定する処理は、図８に示すタップ・休符コマンド判定プログラムＰ９ｂが実行する。
【０１９３】
（ステップＳ６０１）
初期設定処理として、後記するＳ（（現在の時間）−（一つ前のタップ時間））を記憶した数（Ｉ）をカウントするためにメインメモリ３３に設定したカウント領域に「０」を記憶し、さらに、本判定処理においてその判定結果である「タップ入力区間」か、あるいは「休符区間」を記憶するためにメインメモリ３３に設定したタップ・休符フラグ（図２１では「ＦＬＡＧ」と記載）に「休符区間」を示す「０」を記憶する（図２１では「ＯＦＦ」と記載している）。
なお、ＦＬＡＧがＯＮになることで、ＦＬＡＧが「ＯＮなる以降に入力された「叩いたリズム」をコマンド（特殊入力コマンド）として認識するようになる。従って、後述するが、休符区間が定められた一定の時間以上の長さであると判定された場合には、ＦＬＡＧはＯＦＦになるため、コマンドとして認識できない間隔で入力された「叩いたリズム」は、コマンドとして認識されない。
【０１９４】
（ステップＳ６０２）
前記したステップＳ５０２の処理と同じ処理を実行する、すなわち、プレイヤーがゲームを実施するために載置台８を叩く操作を行なったことにより、コントローラ７から取得された振動の計測値がゲーム装置３に操作信号として入力されたか否かを判定する。この判定は、例えば、図１６に示す補正値操作変換プログラムＰ６の処理を示すステップＳ４０５、Ｓ４１０、又はＳ４１８において処理した「振動トリガー」の記憶内容がＯＮ（「１」）であるか否かを判定する。
この判定処理の結果、「振動トリガー」に「１」が記憶されていると次のステップＳ６０３に進み、「０」が記憶されているとステップＳ６１１に進む。なお、メイン制御プログラムＰ０は、ステップＳ６０２以降の処理を所定の時間間隔ごとに実行するように制御する。
【０１９５】
（ステップＳ６０３）（ステップＳ６０４）
タップ・休符フラグに「ＯＮ」を示す「１」が記憶されているか否かを判定し、「１」が記憶されていない場合にはタップ・休符フラグに改めて「１」を記憶する処理を行なってステップＳ６０２に戻る。そして、所定時間経過後にステップＳ６０２の処理が実行される。
【０１９６】
（ステップＳ６０５）
「Ｓ＝（現在の時間）−（一つ前のタップの時間）」の処理を行なって、このＳの値を、一旦、メインメモリ３３に記憶する。このＳとは、現在の時間（時間値）と一つ前のタップの時間値との差分（タップ間隔）のことである。なお、一つ前のタップの時間とは、現時点から時系列的に遡って最新の振動トリガーをＯＮしたときの時間値を示す。
【０１９７】
（ステップＳ６０６）（ステップＳ６０７）
カウント数（Ｉ）が予め設定した最大数（上限値）を越えているか否かを判定する。なお、Ｉとは入力の間隔時間を確保しておくための間隔保存メモリに記憶されているタップ間隔の数のことである。この判定処理の結果、上限値を越えていると判定された場合にはステップＳ６０７に進んで、間隔保存メモリから一番古い時間を削除し、越えていない場合にはステップＳ６０８に進む。
このカウント数（Ｉ）の上限値としては「２」又は「２〜５」程度の値を設定する。なお、この上限値は「２」又は「２」以上であって「２」に近い値を採用した方が、入力の後にＦＬＡＧがＯＦＦになるかどうかを判定するための基準となる時間である休符判定時間に必要な値であるカウント数（Ｉ）がプレイヤーの載置台８を叩く動作に伴う最新の叩きのリズムによって判定されることになる。
【０１９８】
（ステップＳ６０７）
ステップＳ６０５の処理で求めたＳの値を順次記憶するためにメインメモリ３３に設定した保存データ記憶領域について、時系列的に一番古いＳを削除する処理を行なう。そして、カウント数Ｉを「１」減算する処理を行なって、ステップＳ６０８に進む。
【０１９９】
（ステップＳ６０８）
ステップＳ６０５の処理で求めたＳの値をメインメモリ３３に設定した保存データ記憶領域に記憶する。なお、保存データ記憶領域にはＳの値を時系列順に記憶する処理を行なう。さらに、カウント数（Ｉ）を「１」加算する処理を行なう。
【０２００】
（ステップＳ６０９）
タップ・休符フラグを「ＯＮ」、すなわち、タップ信号が入力された（加速度センサ７３により検知された計測値が、プレイヤーが叩いたと判定できる値であった）と判定して、「タップ区間」を示す「２」を記憶する。
【０２０１】
（ステップＳ６１０）
タップ・休符フラグに記憶されている情報を、メインメモリ３３に設定したコマンド判定用テーブル（ＴＣ２）に時系列順に記憶する。図２２（ｂ）は、このコマンド判定用テーブルＴＣ２のデータ構成の一例を示している。図２２（ｂ）に示すコマンド判定用テーブル（ＴＣ２）には、時系列順（新しい順）に、タップ・休符フラグに係る情報「０２（タップ入力区間）」、「０２（タップ入力区間）」、「０１（休符区間）」が記憶されていることを示している。
【０２０２】
（ステップＳ６１１）
タップ・休符フラグに「ＯＮ」を示す「２」が記憶されているか否かを判定し、「２」が記憶されている場合にはステップＳ６１２に進み、「ＯＦＦ」を示す「１」が記憶されている場合にはステップＳ６１９に進む。
【０２０３】
（ステップＳ６１２）（ステップＳ６１３）
カウント数（Ｉ）が「０」より大きいか否か、すなわち、保存データ記憶領域にＳの値が記憶されているか否かを判定する。この判定の結果、カウント数（Ｉ）が「０」と判定された場合にはステップＳ６１３に進んで、メインメモリ３３に設定した休符判定時間（Ｔ）を記憶する領域に、予め設定した休符判定時間（Ｔ０）を記憶して、ステップＳ６１６に進む。なお、この休符判定時間（Ｔ０）は、プレイヤーが通常の叩く動作間の時間間隔であると想定される値、すなわち、タップ入力の後（タップ入力区間と判定した後）にＦＬＡＧをＯＦＦにするかどうかを判定するための基準となる時間である。休符判定時間（Ｔ０）としては、例えば、０．３〜０．５秒程度の値を設定する。
【０２０４】
（ステップＳ６１４）
保存データ記憶領域に記憶されている全ての時間値（Ｓ）と休符判定時間（Ｔ０）との差分の平均値（Ａ）を算出してメインメモリ３３に記憶する。
【０２０５】
（ステップＳ６１５）
下記の計算式（３）の計算処理を行なって、休符判定時間（Ｔ）の値を求める。
Ｔ＝休符判定時間（Ｔ０）−Ａ×（休符判定補正値）・・・・・・（３）
なお、上記「Ａ」はステップＳ６１４により算出された値であり、また「休符判定補正値」は、時間軸が休符区間であるか否かを判定するために予め設定した調整用の時間値である。
なお、上記計算式（３）の代わりに、「Ｔ＝Ａ×（休符判定補正値）」を採用してもよい。また、  保存データ記憶領域に記憶されている最も新しい全ての時間値（Ｓ）と休符判定時間（Ｔ０）との差分の平均値（Ａ）を（Ａ１）としたときに、下記の計算式を採用してもよい。
Ｔ＝休符判定時間（Ｔ０）−Ａ１×（休符判定補正値）
【０２０６】
（ステップＳ６１６）
Ｓａ＝（現在の時間）−（一つ前のタップの時間）の処理を行なって、このＳａの値を、一旦、メインメモリ３３に記憶する。
【０２０７】
（ステップＳ６１７）
Ｓａ＞Ｔが成立するか否かを判定する。この判定の結果、Ｓａ＞Ｔが成立しない場合にはステップＳ６０２に戻り、成立した場合にはステップＳ６１８に進む。Ｓａ＞Ｔが成立する場合、コマンドとして認定されている以上の休符区間があったと認められるため、ステップＳ６１８の処理が行われる。Ｓａ＞Ｔが成立しない場合、まだコマンドとして認定されるための休符区間中として、ステップＳ６０２に戻る。
【０２０８】
（ステップＳ６１８）
タップ・休符フラグを「ＯＦＦ」にする処理（「１」を記憶する）、すなわち、コマンドとして認定される時間を越えた休符区間であると認定する。従って、コマンドとして認識できない間隔で入力された「叩いたリズム」であり、タップ入力区間としてのコマンドとしての判定がされない。すなわち、図１１におけるステップＳ２４ｄの「ＮＯ」に該当し、コマンド判定処理が終了する。
【０２０９】
（ステップＳ６１９）
「Ｓｂ＝（現在の時間）−（一つ前の休符の時間）」の処理を行なって、このＳｂの値を、一旦、メインメモリ３３に記憶する。なお、一つ前の休符の時間は、例えば、タップ・休符フラグを「ＯＦＦ」した時間値と「ＯＮ」した時間値を順次記憶する処理を行なうことにより算出することができる。
【０２１０】
（ステップＳ６２０）
「Ｓｂ＞最大休符時間（Ｔｍ）」が成立するか否かを判定する、この判定の結果、Ｓｂ＞Ｔｍが成立した場合には、前記したステップＳ６１８に進み、成立しない場合にはステップＳ６０２に戻る。なお、最大休符時間（Ｔｍ）は、休符区間と判定した区間の後に、さらに休符区間が続いたことを判定するために予め設定した時間値であって、休符の後にもう一度休符となるかどうかを判定するための時間である。最大休符時間（Ｔｍ）としては、例えば、０．６秒〜１．２秒程度の値を設定する。また、ステップＳ６２０からステップＳ６１８の処理が実行されると、コマンドとして認定される時間を越えた休符区間であると認定される。従って、コマンドとして認識できない間隔で入力された「叩いたリズム」であり、タップ入力区間としてのコマンドとしての判定がされない。
【０２１１】
上記した図２１に示す手順に従ってタップ・休符コマンド判定プログラムＰ９ｂが実行されると、上記したステップＳ６１０の処理により、コマンド判定用テーブルＴＣ２にはタップ区間と休符区間を示す情報が時系列順に記憶される。なお、このタップ区間は、入力された振動の強さ（強弱）のレベルを考慮していない区間になる。このことは、コマンド判定用テーブルＴＣ２には、プレイヤーが載置台８を連続的に叩いたときのタップと休符のリズムに係る情報が記憶されていることになる。
【０２１２】
本実施形態においては、プレイヤーが載置台８を連続的に叩いたときにその「叩いたリズム」が予め設定したリズム、すなわち、タップ入力区間及び休符区間の時系列順の並びが、予め設定した配列（特殊入力コマンド）と一致すると、メイン制御プログラムＰ０はこの一致した特殊入力コマンドに設定されたゲーム制御を実行する。図２３（ｂ）は、この予め設定した複数種の特殊入力コマンドを、特殊入力コマンドテーブル（ＴＴ２）として設定したときにそのデータ構成の一例を示している。
【０２１３】
図２３（ｂ）に示すように、特殊入力コマンドテーブル（ＴＴ２）は、予め設定した複数種の特殊入力コマンドの識別情報ごとに、これら個々の特殊入力コマンドとなる、前記したタップ入力区間と休符区間を示す情報を配列したパターンと、個々の特殊入力コマンドに対応してゲーム制御を実行するためのコマンド実行プログラム名（プログラムのスタート番地）を記憶したデータテーブルである。
【０２１４】
図２３（ｂ）に示す特殊入力コマンドテーブル（ＴＴ２）において、特殊入力コマンドの識別情報（Ａ１）は、プレイヤーが載置台８を連続的に叩いたときにその「叩いたリズム」が時系列的に「タ」「タ」「休」「タ」、すなわち、「叩く「（タップ入力区間）、「叩く」（タップ入力区間）、「休符」（休符区間）、「叩く」（タップ入力区間）と一致すると、モニタ２にはメダカの遊泳する動画が表示される。また、特殊入力コマンドテーブル（ＴＴ２）に示すように、プレイヤーが載置台８を連続的に叩いたときの「叩いたリズム」が「３・３・７拍子」のリズム（特殊入力コマンド識別情報が「Ａ３」）と一致したときには、メイン制御プログラムＰ０は、鯨の遊泳とジャンプに関する動画をモニタ２に表示する処理を行なう。
【０２１５】
上記した叩くリズムを考慮したゲーム制御に関する実施形態では、タップ入力区間はプレイヤーが載置台８を叩いた強さのレベルは判定しない制御例について説明したが、前記した図２０の手順に示す強弱のレベルの判定手段を採用すると、叩くリズムに、プレイヤーの叩く動作の強弱のレベルを反映したゲーム制御を実施することも可能になる。
【０２１６】
また、上記した本発明の実施形態はプレイヤーの叩き動作に伴って発生する振動をゲームに応用する例について説明したが、本発明は、病院や診療所等の待合室、あるいは休憩室等において、例えば、壁などを軽く叩く動作のパターンに応じて、気分をリラックスさせるような各種の映像を、音楽とともに液晶表示装置に演出表示する装置にも適用することができる。
【０２１７】
また、本発明に用いるコントローラとしては、３次元加速度センサと赤外線通信機能を備えた携帯電話機に、３次元加速度センサが検出した振動を赤外線通信により通信するためのアプリケーションプログラムをインストールすることにより、この携帯電話機を本発明に用いるコントローラとして使用することが可能になる。また、以上に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【図面の簡単な説明】
【０２１８】
【図１】本発明の一実施形態に係るゲームシステム１を説明するための外観図である。
【図２】本実施形態に係るゲームシステム１を構成するゲーム装置３について、そのハードウエア構成を説明するための機能ブロック図である。
【図３】本実施形態に係るゲームシステム１を構成するコントローラ７について、その上面後方および下面後方から見た斜視図である。
【図４】同じく、本実施形態に係るゲームシステム１を構成するコントローラ７について、その上筐体および下筐体を外した状態を示す斜視図である。
【図５】同じく、本実施形態に係るゲームシステム１を構成するコントローラ７について、そのハードウエア構成を説明するための機能ブロック図である。
【図６】本実施形態に係るゲームシステム１で想定するゲームの画面の一例を説明する説明図である。
【図７】同じく、本実施形態に係るゲームシステム１で想定するゲームの画面の一例を説明する説明図である。
【図８】本実施形態に係るゲームシステム１を構成するゲーム装置３が備えているゲームを制御するプログラムについて、そのプログラム構成に一例を説明するための図である。
【図９】（ａ）は、本実施形態に係るゲームシステム１を構成するゲーム装置３が備えている制御プログラムが、ゲームを制御する手順の一例を説明するためのフローチャート、（ｂ）は制御プログラムがモニタに表示するメニュー画面例を説明するための図である。
【図１０】同じく、制御プログラムがゲームを制御する手順の一例を説明するためのフローチャートである。
【図１１】同じく、制御プログラムがゲームを制御する手順の一例を説明するためのフローチャートである。
【図１２】同じく、制御プログラムがゲームを制御する手順の一例を説明するためのフローチャートである。
【図１３】本実施形態に係るゲームシステム１のコントローラ７の載置場所ごとの振動値の推移を示すグラフであって、（ａ）はコントローラ７を固い場所に置いた場合、（ｂ）は柔らかい場所に置いた場合を示す。
【図１４】本実施形態に係るゲームシステム１を構成するゲーム装置３が備えている制御プログラムが、ゲームを制御する手順の一例を説明するためのフローチャートである。
【図１５】同じく、制御プログラムがゲームを制御する手順の一例を説明するためのフローチャートである。
【図１６】同じく、制御プログラムがゲームを制御する手順の一例を説明するためのフローチャートである。
【図１７】本実施形態に係るゲームシステム１のコントローラ７により検知されたプレイヤーの叩く動作に伴う振動値（弱入力）をゲーム装置３に入力して、補正処理した結果の時系列的な変化の一例を示すグラフである。
【図１８】本実施形態に係るゲームシステム１のコントローラ７により検知されたプレイヤーの叩く動作に伴う振動値（中入力）をゲーム装置３に入力して、補正処理した結果の時系列的な変化の一例を示すグラフである。
【図１９】本実施形態に係るゲームシステム１のコントローラ７により検知されたプレイヤーの叩く動作に伴う振動値（強入力）をゲーム装置３に入力して、補正処理した結果の時系列的な変化の一例を示すグラフである。
【図２０】本実施形態に係るゲームシステム１を構成するゲーム装置３が備えている制御プログラムが、ゲームを制御する手順の一例を説明するためのフローチャートである。
【図２１】同じく、本実施形態に係るゲームシステム１を構成するゲーム装置３が備えている制御プログラムが、ゲームを制御する手順の一例を説明するためのフローチャートである。
【図２２】同じく、制御プログラムがゲームを制御するために作成するコマンド判定用テーブルについてそのデータ構成例を説明するための図であって、（ａ）は振動値の強弱に係るコマンドを判定するためのテーブル、（ｂ）は振動の発生と休符に係るリズムを判定するためのテーブルである。
【図２３】同じく、制御プログラムが備えている特殊入力コマンドテーブルについてそのデータ構成例を説明するための図であって、（ａ）は振動値の強弱に係る特殊コマンドを登録したテーブル、（ｂ）は振動の発生と休符に係る特殊コマンドを登録したテーブルである。
【符号の説明】
【０２１９】
１：ゲームシステム
２：モニタ
２ａ：スピーカ
３：ゲーム装置
６：受信ユニット
７：コントローラ
３０：ＣＰＵ
３１：メモリコントローラ
３２：ＧＰＵ
３３：メインメモリ（記憶手段）
５１：マイコン
５２：メモリ
５３：無線モジュール
７３：加速度センサ
７４  バイブレータ
Ｐ０：メイン制御プログラム
Ｐ３：振動検知プログラム
Ｐ４：固有振動値算出プログラム
Ｐ５：補正値算出プログラム
Ｐ６：補正値操作変換プログラム
Ｐ８：振動パターン判定プログラム
Ｐ９：特殊入力コマンド判定プログラム
Ｐ１０：演出処理プログラム
【図１】
2010046471.tif 000003
【図２】
2010046471.tif 000004
【図３】
2010046471.tif 000005
【図４】
2010046471.tif 000006
【図５】
2010046471.tif 000007
【図６】
2010046471.tif 000008
【図７】
2010046471.tif 000009
【図８】
2010046471.tif 000010
【図９】
2010046471.tif 000011
【図１０】
2010046471.tif 000012
【図１１】
2010046471.tif 000013
【図１２】
2010046471.tif 000014
【図１３】
2010046471.tif 000015
【図１４】
2010046471.tif 000016
【図１５】
2010046471.tif 000017
【図１６】
2010046471.tif 000018
【図２０】
2010046471.tif 000019
【図２１】
2010046471.tif 000020
【図２２】
2010046471.tif 000021
【図２３】
2010046471.tif 000022
【図１７】
2010046471.tif 000023
【図１８】
2010046471.tif 000024
【図１９】
2010046471.tif 000025