(57)【要約】      （修正有）【課題】ゲームコントローラを空中で振って止める動作をもって操作入力と見なすゲームを実行する際に、プレーヤの感覚に近くなるように、操作入力タイミングを適切に判定することができるプログラムを提供する。【解決手段】加速度及び角速度を計測するセンサを内蔵したコントローラをプレーヤが手に持って振って止めるように動かすモーションを行わせるゲームにおいて、モーションの止める直前に出現する計測値のピークを検出することで入力タイミングを判定し、判定した入力タイミングと規準タイミングとの差に基づいて評価を行う。【選択図】図５
2019118549.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、プレーヤが操作入力した入力タイミングを評価するゲームを実行させるためのプログラムであって、
前記プレーヤに対して加速度及び／又は角速度を計測するセンサを内蔵したコントローラを手に持って振って止めるように動かすモーションを行わせる規準タイミングを提示する提示手段、
前記モーションの止める直前に出現する前記計測値のピークを検出することで前記入力タイミングを判定するタイミング判定手段、
少なくとも前記規準タイミングと前記入力タイミングとの差に基づいて前記評価を行う評価手段、
として前記コンピュータを機能させるためのプログラム。
【請求項２】
前記タイミング判定手段によって前記入力タイミングが判定された場合、直ちに音及び／又は表示による応答出力を行わせる応答出力制御手段、
として前記コンピュータを機能させるための請求項１に記載のプログラム。
【請求項３】
前記提示手段は、複数の前記規準タイミングを到来する順に提示し、
前記タイミング判定手段は、前記規準タイミング毎に、対応する前記入力タイミングを判定し、
前記評価手段は、前記規準タイミング毎に、前記タイミング判定手段によって判定された前記入力タイミングと比較する評価を順次行い、
前記規準タイミング毎に、前記評価手段の評価結果を報知させる評価結果報知制御手段、
として前記コンピュータを機能させるための請求項１又は２に記載のプログラム。
【請求項４】
前記コントローラは、振動デバイスを有し、
前記評価結果報知制御手段は、前記規準タイミング毎に、前記評価手段の評価結果に応じた振動パターン又は振動の大きさで前記振動デバイスを作動させる、
請求項３に記載のプログラム。
【請求項５】
前記コントローラは、正面側に複数の操作ボタンが配置されて片手で握るようにして保持可能な長手形状を有し、
前記センサは、前記コントローラの長手方向および前記コントローラの正面法線方向に直交する方向を第１軸とする加速度を少なくとも計測し、
前記タイミング判定手段は、第１軸方向の加速度のピークを検出することで前記入力タイミングを判定する、
請求項１〜４の何れか一項に記載のプログラム。
【請求項６】
前記コントローラは、正面側に複数の操作ボタンが配置されて片手で握るようにして保持可能な長手形状を有し、
前記センサは、前記コントローラの正面法線方向を第２軸とする第２軸回りの角速度を少なくとも計測し、
前記タイミング判定手段は、第２軸回りの角速度のピークを検出することで前記入力タイミングを判定する、
請求項１〜５の何れか一項に記載のプログラム。
【請求項７】
前記タイミング判定手段は、前記計測値の増減傾向の逆転を検出することで前記ピークを検出し、検出のタイミングに基づいて前記入力タイミングを判定する、
請求項１〜６の何れか一項に記載のプログラム。
【請求項８】
前記タイミング判定手段は、前記ピークを検出したタイミングから、所与の調整時間分、調整したタイミングを前記入力タイミングとして判定する、
請求項１〜７の何れか一項に記載のプログラム。
【請求項９】
前記調整時間を設定する調整時間設定手段、
として前記コンピュータを更に機能させるための請求項８に記載のプログラム。
【請求項１０】
前記モーションは、振り下ろし位置で止めるように手を振り下ろすモーションであり、
前記タイミング判定手段は、
前記計測値に基づいて振り上げ動作に続いて振り下げ動作が連続して開始されたかを判定する前提判定手段を有し、
この前提判定手段により肯定判定された場合の前記振り下げ動作において前記計測値のピークを検出することで前記入力タイミングを判定する、
請求項１〜９の何れか一項に記載のプログラム。
【請求項１１】
前記コントローラは、正面側に複数の操作ボタンが配置されて片手で握るようにして保持可能な長手形状を有し、
前記センサは、前記コントローラの長手方向および前記コントローラの正面法線方向に直交する方向を第１軸とする加速度と、前記コントローラの正面法線方向を第２軸とする第２軸回りの角速度とを少なくとも計測し、
前記前提判定手段は、第１軸方向の加速度及び第２軸回りの角速度に基づいて、振り上げ動作に続いて振り下げ動作が連続して開始されたかを判定する、
請求項１０に記載のプログラム。
【請求項１２】
前記モーションには、振る方向が異なる複数種類のモーションがあり、
前記提示手段は、前記複数種類のモーションのうちの規準種類のモーションを、前記規準タイミングに行わせる旨を提示し、
前記計測値に基づいて、前記複数種類のモーションのうち、何れの種類のモーションが入力されたかを判別する入力種類判別手段として前記コンピュータを機能させ、
前記評価手段は、前記規準タイミングと前記入力タイミングとの差と、前記入力種類判別手段により判別された入力種類と前記規準種類とが同じか否かと、に基づいて前記評価を行う、
請求項１〜１１の何れか一項に記載のプログラム。
【請求項１３】
前記コントローラは、正面側に複数の操作ボタンが配置されて片手で握るようにして保持可能な長手形状を有し、
前記センサは、前記コントローラの長手方向および前記コントローラの正面法線方向に直交する方向を第１軸とする第１軸回りの角速度を少なくとも計測し、
前記複数種類のモーションには、カーブさせて手を振り下ろすカーブ振り下ろしモーションが含まれ、
前記入力種類判別手段は、前記第１軸回りの角速度に基づいて、前記カーブ振り下ろしモーションが入力されたか否かを判別する、
請求項１２に記載のプログラム。
【請求項１４】
前記提示手段は、前記規準タイミングに行わせる前記モーションを、振る強さが大小異なる少なくとも２つの強度レベルのうちの何れで行わせるかを提示し、
前記計測値に基づいて、入力された前記モーションの強度レベルを判別する強度レベル判別手段として前記コンピュータを機能させ、
前記評価手段は、更に、提示した強度レベルと、前記強度レベル判別手段により判別された強度レベルとが同じか否か、に基づいて前記評価を行う、
請求項１〜１３の何れか一項に記載のプログラム。
【請求項１５】
プレーヤが操作入力した入力タイミングを評価するゲームを実行するゲーム装置であって、
前記プレーヤに対して加速度及び／又は角速度を計測するセンサを内蔵したコントローラを手に持って振って止めるように動かすモーションを行わせる規準タイミングを提示する提示手段と、
前記モーションの止める直前に出現する前記計測値のピークを検出することで前記入力タイミングを判定するタイミング判定手段と、
少なくとも前記規準タイミングと前記入力タイミングとの差に基づいて前記評価を行う評価手段と、
を備えたゲーム装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータに、プレーヤが操作入力した入力タイミングを評価するゲームを実行させるためのプログラム等に関する。
【背景技術】
【０００２】
例えば、音楽ゲームや演奏ゲーム、リズムゲーム等と呼ばれるジャンルのゲーム（以下包括して「音楽ゲーム」という）は、再生される音楽のリズム等に合わせた所定のタイミング（規準タイミング：目標とするべきタイミング）で、如何に正確に指示された操作（規準操作：プレーヤに求められている操作入力）を行うかを楽しむタイミングゲームの代表例である。プレーヤは、自身が選んだ好みの楽曲をＢＧＭとして、リズムに合わせた操作入力を楽しむことができるので、１人でプレイするシングルプレイは勿論のこと、複数のプレーヤが参加して協力或いは対戦するマルチプレイでも人気である。
【０００３】
そして、音楽ゲームの興趣を高めるための様々な技術が提案されてきた。例えば、特許文献１では、ゲームで使用するキャラクタやアイテムといったゲーム媒体の選択を受け付け、選択されたゲーム媒体の状態に応じてタイミングゲージ（規準タイミングの評価基準をゲージ形に表示するもの）を変更し、変更されたタイミングゲージに基づいて操作入力を評価することで、音楽ゲームの興趣を向上させる技術が開示されている。
【０００４】
また、一方で、据置型家庭用ゲーム装置或いは携帯型ゲーム装置のゲームコントローラに加速度センサやジャイロセンサが搭載されており、ゲームコントローラを振る動作をそれらで計測して操作入力に用いている。
【０００５】
例えば、特許文献２では、加速度値の増減方向が反転したタイミングにおける加速度の差に着目することで、ゲームコントローラを空中で振る操作と、ゲームコントローラに衝撃を与える操作と、を識別する技術が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１６−１０６４６号公報
【特許文献２】特開２００８−３６１６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
さて、音楽ゲームは、操作入力のレイテンシー或いはレスポンスに極めて厳しいゲームと言われている。すなわち、プレーヤが操作入力したと思っているタイミングと、それがゲームに反映されて操作音が放音されるタイミングとにズレが生じると、演奏している気分を大きく損ねてしまう。
【０００８】
例えば、打楽器演奏をモチーフとした音楽ゲームでは、業務用に専用のゲーム装置が用意される。そうした業務用のゲーム装置では、打楽器演奏用のスティックと当該スティックで叩打する部位（叩打部）とが物理的に用意されており、叩打部への打撃をスイッチ等で物理的に計測可能に構成されており、上述のようなタイミングのズレが問題にならないように設計されている。
【０００９】
しかし、同じ音楽ゲームを、加速度センサやジャイロセンサを搭載したゲームコントローラを有するゲーム装置で実行すると、上述のようなタイミングのズレが体感として明りょうに現れ得る。
【００１０】
すなわち、プレーヤは、ゲームコントローラを把持し、これを打楽器演奏用のスティックと見立て、物理的には存在しない叩打部へ振り下ろすようにしてプレイする。このとき、プレーヤは、叩いている感じを自ら再現すべく、ゲームコントローラを振り切るのではなく、物理的には存在しない叩打部の仮想の被打面で止めるように操作する。
【００１１】
そこで、加速度センサやジャイロセンサによる計測値から、ゲームコントローラが実際に止まった（又は、略止まった）タイミングを判定し、これを操作入力タイミングとして判断するようにプログラムを設計するのが自然であろう。しかし、プレーヤの気持ちとしては「ここで仮想の被打面を叩いた」と思っているタイミングと、実際にゲームコントローラが止まるタイミングとには、ズレが生じている場合が多い。
【００１２】
また、量販される携帯型ゲーム装置や据置型家庭用ゲーム装置のゲームコントローラに使用される加速度センサやジャイロセンサは、比較的安価なセンサであるため、計測精度や分解能が低く、ゼロ点からの累積誤差が大きくなり易いといった問題がある。その為、上述のようなタイミングのズレが更に大きくなる傾向にあり、ズレの解決を難しくしている。
【００１３】
本発明は、加速度センサやジャイロセンサを搭載したゲームコントローラを空中で振って止める動作をもって操作入力と見なすゲームを実行する際に、プレーヤの感覚に近くなるように、操作入力タイミングを適切に判定することができる技術を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上述した課題を解決するための第１の発明は、コンピュータに、プレーヤが操作入力した入力タイミングを評価するゲームを実行させるためのプログラムであって、
前記プレーヤに対して加速度及び／又は角速度を計測するセンサを内蔵したコントローラを手に持って振って止めるように動かすモーションを行わせる規準タイミングを提示する提示手段（例えば、図１の制御基板１４５０、図１２の処理部２００、ゲーム演算部２１０、提示制御部２１４、図３の譜面２０、図１５のステップＳ１８４）、
前記モーションの止める直前に出現する前記計測値のピークを検出することで前記入力タイミングを判定するタイミング判定手段（例えば、図１の制御基板１４５０、図１２の処理部２００、ゲーム演算部２１０、タイミング判定部２２０、図１６のステップＳ５８、図１７のステップＳ１３０）、
少なくとも前記規準タイミングと前記入力タイミングとの差に基づいて前記評価を行う評価手段（例えば、図１の制御基板１４５０、図１２の処理部２００、ゲーム演算部２１０、評価部２３６、図１５のステップＳ１８４）、
として前記コンピュータを機能させるためのプログラムである。
【００１５】
ここで言う「コンピュータ」とは、予め用意された命令（いわゆるプログラム、ソフトウェア）に基づいた演算処理をして、ユーザによる入力と演算結果とに基づいた出力を行うシステムでる。コンピュータは、１）命令や演算結果等の情報を記憶可能な記憶要素、２）記憶要素から命令や演算結果の読み出しや書き込みなどを制御する制御要素、３）演算要素、４）ユーザから入力を受け付ける入力要素、５）出力要素を含むシステムである。これらの各要素は、ハードウェアとして１体的にデザインされていても良いし、ハードウェアとしては別体であるが適宜通信接続されることにより一体的に機能する構成であってもよい。
【００１６】
さて、コントローラを手に持って振って止めるように動かすモーションを操作入力とするゲームとして、例えば、現実には無い仮想の被叩打体を叩く動作を操作入力とするゲームが考えられる。この場合、本人が叩いたと思うタイミングで、あたかも叩打用具が被叩打体に当たって止まる様子を再現するかのように、自然とモーションの最後に制動をかける。しかし実際にコントローラの移動が止まるのは、本人が叩いたと思うタイミングよりも後である。慣性等の影響で、短時間ではあるものの、実際にコントローラが止まるまでに時間を要するからである。故に、モーションが終わったタイミングである、コントローラの移動が止まったタイミングを入力タイミングとしたのでは、本人が叩いたと思うタイミングとは時間的な隔たりが生まれてしまい、遅れている感覚が生じてしまう。
【００１７】
そこで、改めてモーション全体を解析したところ、本人が叩いたと思うタイミングに近い時点で計測値にピークが現れる知見が得られた。第１の発明ではこの知見に着目し、モーションが止まる前に出現する計測値のピークを検出し、当該ピークに基づいて入力タイミングを判定する。
よって、コントローラを振って止める動作をもって操作入力と見なすゲームを実行する際に、プレーヤの感覚に近く、違和感の無い操作入力タイミングを判定することができる。
【００１８】
第２の発明は、前記タイミング判定手段によって前記入力タイミングが判定された場合、直ちに音及び／又は表示による応答出力を行わせる応答出力制御手段（例えば、図１の制御基板１４５０、図１２の処理部２００、ゲーム演算部２１０、応答出力制御部２３２、図１５のステップＳ１８４）、として前記コンピュータを機能させるための第１の発明のプログラムである。
【００１９】
第２の発明によれば、入力タイミングに応じて直ちに音や表示による応答出力が伴うゲーム、つまりレイテンシーやレスポンスの良さが要求されるゲームにおいて、本発明の効果を発揮させることができる。
【００２０】
第３の発明は、前記提示手段が、複数の前記規準タイミングを到来する順に提示し、前記タイミング判定手段は、前記規準タイミング毎に、対応する前記入力タイミングを判定し、前記評価手段は、前記規準タイミング毎に、前記タイミング判定手段によって判定された前記入力タイミングと比較する評価を順次行い、前記規準タイミング毎に、前記評価手段の評価結果を報知させる評価結果報知制御手段（例えば、図１の制御基板１４５０、図１２の処理部２００、ゲーム演算部２１０、評価結果報知制御部２３８、図１５のステップＳ１８４）、として前記コンピュータを機能させるための第１又は第２の発明のプログラムである。
【００２１】
第３の発明によれば、規準タイミングを次々に到来させ、次々に入力タイミングの評価及び報知を繰り返すゲームを実現することができる。
【００２２】
第４の発明は、前記コントローラが、振動デバイス（例えば、図１のバイブレータ１４６３）を有し、前記評価結果報知制御手段は、前記規準タイミング毎に、前記評価手段の評価結果に応じた振動パターン又は振動の大きさで前記振動デバイスを作動させる、第３の発明のプログラムである。
【００２３】
第４の発明によれば、評価結果を、コントローラを振動させるそのパターンや大きさで報せることができる。音や光よりも振動により直接的にコントローラを持つ手で評価結果を感じられるので、タイミングのズレ具合を直感的に理解しやすくなり、ゲームプレイ技量の向上に好適な手助けとなる。
【００２４】
第５の発明は、前記コントローラが、正面側に複数の操作ボタンが配置されて片手で握るようにして保持可能な長手形状を有し、前記センサは、前記コントローラの長手方向および前記コントローラの正面法線方向に直交する方向を第１軸とする加速度を少なくとも計測し、前記タイミング判定手段は、第１軸方向の加速度のピークを検出することで前記入力タイミングを判定する、第１〜第４の何れかの発明のプログラムである。
【００２５】
第５の発明によれば、正面側に操作ボタンが配置された長手形状のコントローラを片手で握って遊ぶ場合に好適な入力タイミングの判定技術を実現することができる。
【００２６】
第６の発明は、前記コントローラが、正面側に複数の操作ボタンが配置されて片手で握るようにして保持可能な長手形状を有し、前記センサは、前記コントローラの正面法線方向を第２軸とする第２軸回りの角速度を少なくとも計測し、前記タイミング判定手段は、第２軸回りの角速度のピークを検出することで前記入力タイミングを判定する、第１〜第５の何れかの発明のプログラムである。
【００２７】
第６の発明によれば、正面側に操作ボタンが配置された長手形状のコントローラを片手で握って操作する場合に、例えば、前腕の振りや手首のスナップ等によるコントローラの姿勢の変化を伴う操作入力においても、適切に入力タイミングを判定する技術を実現することができる。
【００２８】
第７の発明は、前記タイミング判定手段が、前記計測値の増減傾向の逆転を検出することで前記ピークを検出し、検出のタイミングに基づいて前記入力タイミングを判定する、第１〜第６の何れかの発明のプログラムである。
【００２９】
コントローラを手に持って振って止めるように動かすモーションを操作入力とする場合、最後の制動の段階で計測値の増減傾向が逆転する知見が得られた。第７の発明ではこの知見に着目し、プレーヤがモーションを止めにかかるタイミングとして計測値の増減傾向の逆転を検出することで、入力タイミングを適切に判定することができる。
【００３０】
第８の発明は、前記タイミング判定手段が、前記ピークを検出したタイミングから、所与の調整時間分、調整したタイミングを前記入力タイミングとして判定する、第１〜第７の何れかの発明のプログラムである。
【００３１】
第８の発明によれば、ピークを検出したタイミングと入力タイミングとして判定するタイミングまでの時間差を所与の調整時間で調整することができる。
【００３２】
第９の発明は、前記調整時間を設定する調整時間設定手段（例えば、図１の制御基板１４５０、図１２の処理部２００、ゲーム演算部２１０、調整時間設定部２１２、図１４の適用調整時間７０２、図１５のステップＳ１８０）として前記コンピュータを機能させるための第８の発明のプログラムである。
【００３３】
プレーヤによっては、ピークを検出したタイミングが入力タイミングとぴったりだと感じる人もいれば、やや遅い方がぴったりだと感じる人もいる。第９の発明によれば、調整時間を設定することが可能となる。
【００３４】
第１０の発明は、前記モーションが、振り下ろし位置で止めるように手を振り下ろすモーションであり、前記タイミング判定手段は、前記計測値に基づいて振り上げ動作に続いて振り下げ動作が連続して開始されたかを判定する前提判定手段（例えば、図１の制御基板１４５０、図１２の処理部２００、ゲーム演算部２１０、前提判定部２２２）を有し、この前提判定手段により肯定判定された場合の前記振り下げ動作において前記計測値のピークを検出することで前記入力タイミングを判定する、第１〜第９の何れかの発明のプログラムである。
【００３５】
コントローラを持った手を下ろすモーションは、操作入力以外でも起こり得る。
しかし、第１０の発明によれば、入力タイミングを判定する前提として、計測値に基づいて振り上げ動作に続いて振り下げ動作が連続して開始されたかを判定するので、操作入力としてのモーションと、それ以外のモーションとを正しく識別できる。
【００３６】
第１１の発明は、前記コントローラが、正面側に複数の操作ボタンが配置されて片手で握るようにして保持可能な長手形状を有し、前記センサは、前記コントローラの長手方向および前記コントローラの正面法線方向に直交する方向を第１軸とする加速度と、前記コントローラの正面法線方向を第２軸とする第２軸回りの角速度とを少なくとも計測し、前記前提判定手段は、第１軸方向の加速度及び第２軸回りの角速度に基づいて、振り上げ動作に続いて振り下げ動作が連続して開始されたかを判定する、第１０の発明のプログラムである。
【００３７】
第１１の発明によれば、正面側に複数の操作ボタンが配置された長手形状のコントローラを片手で握って操作する場合に、コントローラの上下移動に係る加速度から振り上げ動作に続いて振り下げ動作が連続して開始されたかを適切に判定できる。例えば、前腕の振りや手首のスナップ等に起因するコントローラの姿勢変化に基づいて振り上げ動作に続いて振り下げ動作が連続して開始されたことを適切に判定できる。
【００３８】
第１２の発明は、前記モーションには、振る方向が異なる複数種類のモーションがあり、前記提示手段は、前記複数種類のモーションのうちの規準種類のモーションを、前記規準タイミングに行わせる旨を提示し、前記計測値に基づいて、前記複数種類のモーションのうち、何れの種類のモーションが入力されたかを判別する入力種類判別手段（例えば、図１の制御基板１４５０、図１２の処理部２００、ゲーム演算部２１０、入力種類判別部２３０、図１６のステップＳ６４）として前記コンピュータを機能させ、前記評価手段は、前記規準タイミングと前記入力タイミングとの差と、前記入力種類判別手段により判別された入力種類と前記規準種類とが同じか否かと、に基づいて前記評価を行う、第１〜第１１の何れかの発明のプログラムである。
【００３９】
第１２の発明によれば、更に、振る方向が異なる複数種類のモーションを駆使した操作に多様性のある興趣溢れるゲームを実現できる。
【００４０】
第１３の発明は、前記コントローラが、正面側に複数の操作ボタンが配置されて片手で握るようにして保持可能な長手形状を有し、前記センサが、前記コントローラの長手方向および前記コントローラの正面法線方向に直交する方向を第１軸とする第１軸回りの角速度を少なくとも計測し、前記複数種類のモーションには、カーブさせて手を振り下ろすカーブ振り下ろしモーションが含まれ、前記入力種類判別手段が、前記第１軸回りの角速度に基づいて、前記カーブ振り下ろしモーションが入力されたか否かを判別する、第１２の発明のプログラムである。
【００４１】
第１３の発明によれば、正面側に操作ボタンが配置された長手形状のコントローラを片手で握って操作する場合に、コントローラの姿勢変化に基づいて、カーブ振り下ろしモーションを適切に判別できるので、プレーヤによる振り下ろしカーブの軌跡の違いに影響されずに、カーブ振り下ろしモーションの判別を精度良く実現することが可能になる。
【００４２】
第１４の発明は、前記提示手段が、前記規準タイミングに行わせる前記モーションを、振る強さが大小異なる少なくとも２つの強度レベルのうちの何れで行わせるかを提示し、
前記計測値に基づいて、入力された前記モーションの強度レベルを判別する強度レベル判別手段として前記コンピュータを機能させ、前記評価手段は、更に、提示した強度レベルと、前記強度レベル判別手段により判別された強度レベルとが同じか否か、に基づいて前記評価を行う、第１〜第１３の何れかの発明のプログラムである。
【００４３】
第１４の発明によれば、振る強さが異なるモーションを用いた、操作入力がより多彩なゲームを実現できる。
【００４４】
第１５の発明は、プレーヤが操作入力した入力タイミングを評価するゲームを実行するゲーム装置であって、前記プレーヤに対して加速度及び／又は角速度を計測するセンサを内蔵したコントローラを手に持って振って止めるように動かすモーションを行わせる規準タイミングを提示する提示手段と、前記モーションの止める直前に出現する前記計測値のピークを検出することで前記入力タイミングを判定するタイミング判定手段と、少なくとも前記規準タイミングと前記入力タイミングとの差に基づいて前記評価を行う評価手段と、を備えたゲーム装置である。
【００４５】
第１５の発明によれば、第１の発明と同様の効果が得られるゲーム装置を実現できる。
【図面の簡単な説明】
【００４６】
【図１】ゲームコントローラが着脱自在なゲーム装置の構成例を示す正面図。
【図２】ゲームコントローラを分離した状態のゲーム装置を示す図。
【図３】ゲーム内容を説明するための図であり、ゲーム画面の表示例を示す図。
【図４】規準操作の種類の例を示す図。
【図５】単発モーションについての入力タイミングの判定を説明するための概念図。
【図６】連打モーションについての入力タイミングの判定を説明するための概念図。
【図７】ドンカツパターンにおける操作入力の入力種類判別について説明するための概念図。
【図８】カツカツパターンにおける操作入力の入力種類判別について説明するための概念図。
【図９】カツドンパターンにおける操作入力の入力種類判別について説明するための概念図。
【図１０】調整時間の設定に係る操作画面の表示例を示す図。
【図１１】ゲーム画面における入力タイミングの判定と、入力種類判別のそれぞれの結果の表示例を示す図。
【図１２】ゲーム装置の機能構成例を示す機能ブロック図。
【図１３】記憶部が記憶するプログラムやデータの例を示す図。
【図１４】プレイデータのデータ構成例を示す図。
【図１５】ゲーム装置における処理の流れを説明するためのフローチャート。
【図１６】入力判定処理の流れを説明するためのフローチャート。
【図１７】図１６より続くフローチャート。
【図１８】種類判別処理の流れを説明するためのフローチャート。
【発明を実施するための形態】
【００４７】
以下、本発明の実施形態の例を説明するが、本発明を適用可能な形態が以下の実施形態に限られないことは勿論である。
【００４８】
図１は、本発明が適用された携帯型のゲーム装置であって、ゲームコントローラが着脱自在なゲーム装置の構成例を示す正面図である。図２は、ゲームコントローラを分離した状態の同ゲーム装置を示す図である。
【００４９】
ゲーム装置１４００は、携行性と使用時の利便性とを考慮してデザインされた、携帯型ゲーム装置に分類されるコンピュータである。ゲーム装置１４００は、本体装置１４０１と、少なくとも１つの着脱可能なゲームコントローラ１４６０（右ゲームコントローラ１４６０Ｒ、左ゲームコントローラ１４６０Ｌ）と、を備える。
【００５０】
本体装置１４０１は、画像表示デバイス兼接触位置入力デバイスとして機能するタッチパネル１４０６と、コネクタ１４０７と、内蔵バッテリー１４０９と、スピーカ１４１０と、制御基板１４５０と、を備える。その他、電源ボタン、音量調節ボタン等が適宜設けられている。
【００５１】
コネクタ１４０７は、右ゲームコントローラ１４６０Ｒ及び左ゲームコントローラ１４６０Ｌに対応して本体装置１４０１の左右の端部それぞれに設けられている。そして、右ゲームコントローラ１４６０Ｒや左ゲームコントローラ１４６０Ｌのコネクタと接続されて、ゲームコントローラと本体装置１４０１との間の通信を実現する。
【００５２】
制御基板１４５０は、ＣＰＵ（Central Processing Unit）１４５１やＧＰＵ（Graphics Processing Unit），ＤＳＰ（Digital Signal Processor）などの各種プロセッサ、ＶＲＡＭやＲＡＭ，ＲＯＭ等の各種ＩＣメモリ１４５２、携帯電話基地局や無線ＬＡＮ基地局、近距離無線器を有する他の装置などと無線通信するための通信モジュール１４５３、インターフェース回路１４５７などを搭載する。
【００５３】
インターフェース回路１４５７には、タッチパネル１４０６のドライバ回路、コネクタ１４０７を介して右ゲームコントローラ１４６０Ｒや左ゲームコントローラ１４６０Ｌと信号を送受信する回路、スピーカ１４１０へ音声信号を出力する出力アンプ回路、などが含まれている。
【００５４】
制御基板１４５０に搭載されているこれらの要素は、バス回路などを介して電気的に接続され、データの読み書きや信号の送受信が可能に接続されている。なお、制御基板１４５０の一部または全部をＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field-Programmable Gate Array）、ＳｏＣ（System on a Chip）にて構成してもよい。
【００５５】
制御基板１４５０は、プログラムや各種データをＩＣメモリ１４５２に記憶しており、制御基板１４５０がそれらに基づいて演算処理することにより、本実施形態のゲームを実行する各種機能を実装する。
【００５６】
右ゲームコントローラ１４６０Ｒ及び左ゲームコントローラ１４６０Ｌは、プレーヤがそれぞれ右手・左手に把持されるようにデザインされている。そして、右ゲームコントローラ１４６０Ｒ及び左ゲームコントローラ１４６０Ｌは、それぞれ、ジョイスティック１４６１と、操作ボタンとなる複数のプッシュスイッチ１４６２と、振動発生デバイスであるバイブレータ１４６３と、スピーカ１４６４と、コネクタ１４６７と、コントローラ制御基板１４７０と、内蔵バッテリー（図視略）と、を備える。
【００５７】
コントローラ制御基板１４７０は、当該ゲームコントローラを制御するプロセッサに相当するコントローラ制御ＩＣ１４７１と、通信モジュール１４７３と、３軸加速度センサ１４７５と、３軸ジャイロセンサ１４７６と、インターフェース回路１４７７と、を備える。
【００５８】
勿論、これら以外の要素、例えばイメージセンサモジュールなども適宜含めることができる。或いは、一部の要素で他の要素の機能を兼用させることで、当該他の要素を省略することもできる。例えば、３軸加速度センサ１４７５と３軸ジャイロセンサ１４７６とを１つのセンサで実現する構成、コントローラ制御ＩＣ１４７１とインターフェース回路１４７７とを統合した構成、なども可能である。
【００５９】
通信モジュール１４７３は、本体装置１４０１の通信モジュール１４５３との間で、無線通信を実現する。
【００６０】
図２に示すように、右ゲームコントローラ１４６０Ｒの３軸加速度センサ１４７５は、右手系のローカル座標（Ｘｒ・Ｙｒ・Ｚｒ）を構成している。具体的には、右ゲームコントローラ１４６０Ｒの正面向かって右方向（図２の右側）がＸｒ軸の正方向、コントローラの長手方向上側（図２の上側）がＹｒ軸の正方向、コントローラの正面法線方向つまりコントローラの正面手前側（図２の手前側）がＺｒ軸の正方向となるように構成されている。
【００６１】
右ゲームコントローラ１４６０Ｒの３軸ジャイロセンサ１４７６は、右手系のローカル座標（Ｘｒ・Ｙｒ・Ｚｒ）を構成しており、右ゲームコントローラ１４６０Ｒの３軸加速度センサ１４７５の各軸回りの角速度を検出できるように構成されている。
【００６２】
そして、右ゲームコントローラ１４６０Ｒの左端には、コネクタ１４６７を塞ぐようにアタッチメント１４６８が装着可能とされる。右ゲームコントローラ１４６０Ｒは、当該コントローラの右側を右手の親指及び母指球に当てて、当該コントローラのアタッチメント１４６８を人差し指から小指で包むようにして把持される。換言すると、正面側とは反対の背面側を掌側にして片手で握るようにして保持される。
【００６３】
同様にして、左ゲームコントローラ１４６０Ｌの３軸加速度センサ１４７５は、左手系のローカル座標（Ｘｌ・Ｙｌ・Ｚｌ）を構成している。具体的には、左ゲームコントローラ１４６０Ｌの正面向かって左方向（図２の左側）がＸｌ軸の正方向、コントローラの長手方向上側（図２の上側）がＹｌ軸の正方向、コントローラの正面法線方向つまりコントローラの正面手前側（図２の手前側）がＺｌ軸の正方向となるように構成されている。
【００６４】
左ゲームコントローラ１４６０Ｌの３軸ジャイロセンサ１４７６は、左手系のローカル座標（Ｘｌ・Ｙｌ・Ｚｌ）を構成しており、左ゲームコントローラ１４６０Ｌの３軸加速度センサ１４７５の各軸回りの角速度を検出できるように構成されている。
【００６５】
そして、左ゲームコントローラ１４６０Ｌの左端には、コネクタ１４６７を塞ぐようにアタッチメント１４６８が装着可能とされる。左ゲームコントローラ１４６０Ｌは、当該コントローラの左側を左手の親指及び母指球に当てて、当該コントローラのアタッチメント１４６８を人差し指から小指で包むようにして把持される。換言すると、正面側とは反対の背面側を掌側にして片手で握るようにして保持される。
【００６６】
図２や図５等に座標軸の方向を示す表記をしているが、この表記は各座標軸の方向を示しているだけであり、座標原点を示すものではない。
【００６７】
図１に戻り、インターフェース回路１４７７は、コネクタ１４６７を介した本体装置１４０１の制御基板１４５０との有線通信を実現するための回路を含む。そして、当該コントローラが搭載する各種デバイス（ジョイスティック１４６１、プッシュスイッチ１４６２、バイブレータ１４６３、スピーカ１４６４、３軸加速度センサ１４７５、３軸ジャイロセンサ１４７６、など）と、本体装置１４０１との信号のやり取りを実現する。
【００６８】
次に、本実施形態のゲームについて説明する。
図３は、本実施形態におけるゲーム内容を説明するための図であり、ゲーム画面の表示例を示す図である。本実施形態のゲームは、リズムゲームの１つであって、本体装置１４０１のスピーカ１４１０から放音（再生）される楽曲を聴きながら、そのリズムに合わせて右ゲームコントローラ１４６０Ｒ及び左ゲームコントローラ１４６０Ｌを振って操作入力する仮想打楽器の演奏をテーマとした音楽ゲームである。
【００６９】
プレーヤ２は、右ゲームコントローラ１４６０Ｒ及び左ゲームコントローラ１４６０Ｌを、仮想打楽器の仮想の叩打用具の持ち手部分を持っているつもりで把持する。そして、右ゲームコントローラ１４６０Ｒ及び左ゲームコントローラ１４６０Ｌの先には（見えないけれど）長い棒状のものが有るつもりで、自身の正面に（見えないけれど）仮想打楽器４が有り、これを叩打するように右ゲームコントローラ１４６０Ｒ及び左ゲームコントローラ１４６０Ｌを振り下ろして操作入力をする。ちなみに、本実施形態のゲームでは、仮想打楽器４を和太鼓とし、この和太鼓がプレーヤ２の正面かつ腰高付近に鼓面をプレーヤ側に向けて置かれている設定とする。
【００７０】
ゲームプレイが開始されると、本体装置１４０１のスピーカ１４１０からプレイする楽曲が放音されるとともに、タッチパネル１４０６にはゲーム画面Ｗ３が表示される。
【００７１】
ゲーム画面Ｗ３には、プレイ開始からの経過時間表示部１０と、楽曲名１２と、譜面２０とが表示される。譜面２０のデザインは適宜設定可能であるが、本実施形態では、画面左側に示された基準位置２４と、当該基準位置２４へ向けて流れ表示される指示体２５（２５ａ，２５ｂ）と、小節区切り線２６と、評価結果表示部２７と、スコア表示部２８と、を有する。
【００７２】
基準位置２４は、規準タイミング（目標とする操作入力のタイミング）を示すための基準となる位置を示している。本実施形態では１つの譜面２０に１つだけ表示されるが、複数箇所設ける構成としてもよい。
【００７３】
指示体２５は、規準操作（その時の規準タイミングでなされるべき正しい操作入力）の種類別に異なるデザインで用意されている。そして、本実施形態では譜面２０の右側から出現表示され、小節区切り線２６とともに基準位置２４へ向けてライン状に流れるように左側へ向けて移動表示される。小節区切り線２６の間がプレイ楽曲における１小節を表すことになる。指示体２５が基準位置２４と重なったタイミングが、本実施形態における規準タイミングであり、当該重なった指示体２５の種類が規準操作の種類を示すこととなる。
【００７４】
評価結果表示部２７は、指示体２５の中心が基準位置２４の中心線と重なるタイミングを規準タイミングとし、重なった指示体２５の種類を規準操作として、１）規準タイミングとその時の操作入力の入力タイミングとのズレ、及び、２）規準操作と操作入力との種類の一致／不一致、に基づく入力評価を表示する。例えば、規準操作と操作入力との種類が一致し、且つ、規準タイミングと操作入力タイミングとのズレが小さい程、高評価とされる。
【００７５】
スコア表示部２８には、操作入力の評価結果に応じて付与される得点の累計が表示される。
【００７６】
さて、本実施形態における規準操作とそれに対応する指示体２５は２種類ある。
図４に示すように、１つは、仮想打楽器４（和太鼓）の鼓面を叩打する第１操作入力を表す第１種指示体であるドン２５ａ（白丸）と、鼓面フチや胴部の外周を叩打する第２操作入力を表す第２種指示体であるカツ２５ｂ（網掛け四角）と、を含む。勿論、これら以外の種類の規準操作や指示体も適宜設定することができる。本実施形態では、最初に入力タイミングの判定を行い、入力タイミングが判定されると、操作入力の入力種類判別を行う。そして、判定された入力タイミングおよび操作入力種類を、その時譜面２０で提示されている規準タイミングおよび規準操作と比較して、当該操作入力についての評価が行われる。
【００７７】
では先ず、本実施形態における入力タイミングの判定原理について説明する。
第１操作入力（ドン）であれ、第２操作入力（カツ）であれ、プレーヤ２が行うモーションは、太鼓をバチで叩くが如く「振り上げ動作」「振り下げ動作」を含み、そして仮想打楽器演奏であるが故の「仮想打楽器４の鼓面と思われる振り下ろし切り位置Ｐｓで止める制動動作」との３つの動作が連続する。
【００７８】
そして、更に細部に着目すれば、手首の角速度を伴い手首のスナップを効かせて叩くモーションと、手首の回転は少なくほぼ固定している状態で叩くモーションとに分類できる。前者は断続的で単発的な叩打をする場合によく見られ、後者は短時間で連続的に繰り返すいわゆる連打する場合によく見られる。よって、前者を「単発モーション」、後者を「連打モーション」と呼ぶこととする。
【００７９】
先ず、単発モーションにおける入力タイミングの判定について説明する。
図５は、単発モーションについての入力タイミングの判定を説明するための図である。なお、ここでは、左ゲームコントローラ１４６０Ｌを例に説明するが、右ゲームコントローラ１４６０Ｒについても、ローカル座標を左手系から右手系に読み変えることで同様に適用される。
【００８０】
単発モーションは、左ゲームコントローラ１４６０Ｌの姿勢変化に更に着目すると、当該モーションを構成する３つの動作の開始や遷移を含む。そこで、本実施形態では、３軸ジャイロセンサ１４７６で計測されるＺｌ軸回りの角速度ωｚの変化に基づいて、第１操作入力の単発モーションを正しく識別し、適切な入力タイミングを判定する。
【００８１】
具体的には、先ず、３軸ジャイロセンサ１４７６で計測されるＺ軸回りの角速度ωｚの絶対値が、所定の振り上げ開始判定基準角速度値ωｍを超過すると、「振り上げ動作」が開始されたと判定する。この場合の角速度ωｚは、左手系座標系ではマイナス方向に回転することになるので、振り上げ開始判定基準角速度値ωｍに相当する所定のマイナス基準値を下回ると振り上げ動作が開始されたと判定する構成も可能である。
【００８２】
次に、振り上げ動作が開始された状態で、Ｚｌ軸回りの角速度ωｚが正負反転したことを検出すると、振り上げ動作から振り下げ動作に切り替わったと判定する。換言すると、振り上げ動作に続いて振り下げ動作が連続して開始された、と判定する。これを「前提判定」と呼ぶ。この前提判定があることで、例えば、手首の疲れをほぐすために手首を回したといった操作入力ではないなにげない動作を除去して誤判定を防止する。
【００８３】
そして、この前提判定の後、Ｚｌ軸回りの角速度ωｚの絶対値が、所定の要求勢い判定基準角速度ωｆに達すると、プレーヤが意図的に第１操作入力の単発モーションとして振り下ろし動作をしていると判定する。これにより、プレーヤが単に上げた手を疲れたから下ろす行為と、振り下げ動作とを識別する。なお、この時の角速度ωｚは、左手系座標系では、プラス方向の回転なので、角速度ωｚが要求勢い判定基準角速度ωｆに相当するプラスの所定閾値に達すると、振り下ろし動作をしていると判定する構成とすることもできる。
【００８４】
そして、本実施形態では、要求勢い判定基準角速度ωｆに達したタイミングで、左ゲームコントローラ１４６０Ｌのバイブレータ１４６３で、振動を発生させる。振動強度Ａｍｐは、その時計測されている角速度ωｚに比例して設定され、振り下げ動作により仮想のスティック状の叩打用具が風切りしている感じを演出する。これを「風切り演出振動」と呼ぶ。
【００８５】
次に、振り下げ動作中に、３軸ジャイロセンサ１４７６で計測されるＺ軸回りの角速度ωｚの絶対値の時間変化Δ｜ωｚ｜が負になると、制動動作が開始されたと判定する。角速度ωｚの絶対値の時間変化が正から負になったということは、角速度ωｚの絶対値が増加傾向から低減傾向に変わったことを意味する。よって、角速度ωｚの絶対値のピークを判定することを意味する。換言すると、プレーヤが単発モーションを止める直前に出現する計測値のピークを検出することとなり、このピークを検出すると、制動動作が開始されたと判定する。そして、本実施形態では、基本的にはこの判定タイミングを単発モーションの入力タイミングと見なす。
【００８６】
但し、実際の左手及び左ゲームコントローラ１４６０Ｌの位置は、制動動作が開始された以降もそれまでの勢い（慣性）により、更に下方の振り下ろし位置Ｐｓ、つまりはプレーヤにとっての仮想打楽器４の打面或いはその縁を叩いたと想像している位置かそれよりも下方に達することとなる。
【００８７】
なお、本実施形態では、単発モーションの入力タイミングにおいて、左ゲームコントローラ１４６０Ｌのバイブレータ１４６３にて入力演出振動が発生される。「入力演出振動」は、仮想の叩打用具が仮想打楽器４の打面或いはその縁に当たった感触の再現を狙った振動である。基本的には、操作入力の種類判別結果に応じた異なった振動が発生される。そして、本実施形態では、入力演出振動は評価結果を通知する「評価結果通知振動」を兼ねる。すなわち、当該操作入力の評価結果に応じた振動強度・振動パターンで振動が発生される。
【００８８】
また、上述の風切り演出振動と入力演出振動は、何れかを省略することができる。
【００８９】
次に、連打モーションにおける入力タイミングの判定について説明する。
図６は、連打モーションについての入力タイミングの判定について説明するための概念図である。なお、ここでは、左ゲームコントローラ１４６０Ｌを例に説明するが、右ゲームコントローラ１４６０Ｒについても、ローカル座標を左手系から右手系に読み変えることで同様に適用される。
【００９０】
連打モーションでは、手首の位置が略一定の状態で行われるので、先の単発モーションのように姿勢変化に基づいて識別することはできない。そこで、左ゲームコントローラ１４６０Ｌの３軸加速度センサ１４７５で計測される加速度の変化に基づいて、連打モーションを正しく識別し、適切な入力タイミングを判定する。
【００９１】
具体的には、プレーヤは、コントローラ左端を親指の母指球に当てた当該左端を上にした姿勢で左ゲームコントローラ１４６０Ｌを把持して操作する。そこで、３軸加速度センサ１４７５で計測されるＸｌ軸方向の加速度Ａｘが、それまでの加速度Ａｘの平均値である平均加速度Ａｘ_ａｖｅに所定の振り上げ開始判定係数ｋ１を加えた閾値を超過すると、「振り上げ動作」が開始されたと判定する。
【００９２】
平均加速度Ａｘ_ａｖｅは、３軸加速度センサ１４７５の計測回数１０〜１５程度分の平均値とする。計測サイクルは、採用するセンサの仕様によるが概ね４〜６ｍｓサイクル程度の比較的ゆっくりとしたサイクルでも可能である。
【００９３】
次に、時刻ｔの加速度Ａｘ＠ｔが、１計測サイクル前の加速度Ａｘ＠ｔ-１よりも小さくなったこと、つまりは増減傾向の反転を検出すると、振り上げ動作の終了が間近で、間もなく振り下げ動作に移行する状態にあると判定する。当該判定が、連打モーションにおける前提判定に該当する。
【００９４】
この前提判定の後、振り下げ動作に移行すると、Ｘｌ軸方向の加速度Ａｘは負の値で計測されるようになる。そこで、Ｘｌ軸方向の加速度Ａｘが、平均加速度Ａｘ_ａｖｅに所定の確定判定基準係数ｋ２を加えた閾値を下回ると、プレーヤが意図的に連打モーションとして振り下ろし動作をしていると判定する。これにより、プレーヤが単に上げた手を疲れたから下ろす行為と、振り下げ動作とを識別している。連打モーションにおいても、ここで「風切り演出振動」が実行される。
【００９５】
次に、振り下げ動作から制動動作に移行するが、その際、３軸加速度センサ１４７５で計測されるＸｌ軸方向の加速度Ａｘは、負の値から減速するのに伴って計測値が「０」に向かって大きくなるように変化する。
よって、時刻ｔの加速度Ａｘ＠ｔが１計測サイクル前の加速度Ａｘ＠ｔ-１よりも大きくなったこと、つまりは増減傾向の反転を検出すると、制動動作が開始されたと判定する。換言すると、プレーヤが連打モーションを止める直前に出現する計測値のピークを検出して制動動作が開始されたと判定する。
そして、本実施形態では、基本的にはこの判定タイミングを連打モーションの入力タイミングと見なす。
【００９６】
但し、実際の左手及び左ゲームコントローラ１４６０Ｌの位置は、制動動作が開始された以降もそれまでの勢い（慣性）により、更に下方の振り下ろし位置Ｐｓ、つまりはプレーヤにとっての仮想打楽器４の打面或いはその縁を叩いたと想像している位置或いはその更に下方に達することとなる。
【００９７】
なお、連打モーションの入力タイミングが判定された場合も、左ゲームコントローラ１４６０Ｌのバイブレータ１４６３にて入力演出振動が発生される。
【００９８】
また、入力タイミングの判定時には、更に満たすべき条件として、３軸全てで計測される加速度の絶対値の合計が所定値以上とする条件を追加してもよい。当該追加条件を設けることで、入力タイミングと判定されるときに、振り下げ動作中にプレーヤが手首を曲げてしまう癖があっても、入力タイミングを正しく判定できるようになる。
【００９９】
従来であれば、左ゲームコントローラ１４６０Ｌの３軸加速度センサ１４７５や３軸ジャイロセンサ１４７６による計測値が、ゲームコントローラが止まったと判断される値に達したタイミングをもって入力タイミングとしていたが、プレーヤの気持ちとしては「ここで仮想の被打面を叩いた」と思っているタイミングと、実際にゲームコントローラが止まるタイミングとにはズレが生じるため不具合を生じさせていた。
【０１００】
しかし、本実施形態では、「ここで仮想の被打面を叩いた」と思っているタイミングやその近傍で開始される手の振り下げを止めるための制動を検知して、これを入力タイミングとするので、プレーヤの感覚にマッチした入力タイミングを判定することができる。
【０１０１】
次に、操作入力の入力種類の判別について説明する。
第１操作入力（ドン）と第２操作入力（カツ）それぞれのモーションを、手の振り下ろし方に着目して分けると、前者は縦方向に手を振り下ろす縦振り下ろしモーション、後者は、カーブさせて手を振り下ろすカーブ振り下ろしモーション、であると言える。
そして、更に第２操作入力（カツ）のモーションに着目すると、第１操作入力に続いて第２操作入力するパターン（ドンカツパターン）と、第２操作入力を連続するパターン（カツカツパターン）とがある。また、これらとは逆に第２操作入力に続いて第１操作入力するパターン（カツドンパターン）とがある。
【０１０２】
図７は、ドンカツパターンにおける操作入力の入力種類判別について説明するための概念図である。なお、ここでは、左ゲームコントローラ１４６０Ｌを例に説明するが、右ゲームコントローラ１４６０Ｒについても、ローカル座標を左手系から右手系に読み変えることで同様に適用される。
【０１０３】
ドンカツパターンにおける左ゲームコントローラ１４６０Ｌの軌跡に着目すると、プレーヤは振り上げ動作において、左ゲームコントローラ１４６０Ｌを外側に振り上げる。これをプレーヤの正面から見ると、振り上げ動作の軌跡は上斜めに向けて描かれる。そして、手首をスナップさせながら振り下げ動作をする。
【０１０４】
これを左ゲームコントローラ１４６０Ｌの姿勢に着目して言い換えると、振り上げ動作の終了時点ではＺｌ軸がプレーヤの側を向くように横倒し（図７では左向き）となり、Ｙｌ軸が上向きとなる。そして、振り下げ動作を経ることで、Ｚｌ軸は斜め上向きを経てほぼ真上を向き、Ｙｌ軸はプレーヤの前方を向くように変化する。つまりは、左ゲームコントローラ１４６０ＬがＸｌ軸回りで回転していることになる。こうした動きは、前述の第１操作入力（ドン）のモーションでは現れない。
【０１０５】
そこで、左ゲームコントローラ１４６０Ｌの３軸ジャイロセンサ１４７６で計測されるＸｌ軸回りの角速度ωｘの絶対値が、所定の第３判定基準値ｋ３を超え、且つ角速度ωｘの平均値である平均角速度ωｘ_ａｖｅの絶対値が、所定の第４判定基準値ｋ４を超える場合に、第２操作入力（カツ）が入力されたと判定する。
【０１０６】
この時の角速度ωｘは、左手系のローカル座標系においてマイナス値として計測されるので、角速度ωｘが第３判定基準値ｋ３に相当する所定のマイナス閾値に達し、且つ、平均角速度ωｘ_ａｖｅが第４判定基準値ｋ４に相当するマイナスの閾値に達すると、第２操作入力（カツ）が入力されたと判定する構成とすることも可能である。
【０１０７】
なお、平均角速度ωｘ_ａｖｅは、３軸ジャイロセンサ１４７６の計測回数１０〜１５回程度分の平均値とする。計測サイクルは、採用するセンサの仕様によるが概ね４〜６ｍｓサイクル程度の比較的ゆっくりとしたサイクルでも可能である。
【０１０８】
図８は、カツカツパターンにおける操作入力の入力種類判別について説明するための概念図である。なお、ここでは、左ゲームコントローラ１４６０Ｌを例に説明するが、右ゲームコントローラ１４６０Ｒについても、ローカル座標を左手系から右手系に読み変えることで同様に適用される。
【０１０９】
カツカツパターンにおける左ゲームコントローラ１４６０Ｌの軌跡に着目すると、左ゲームコントローラ１４６０Ｌの正面方向（Ｚｌ軸の正方向）が斜め上向きから上向き姿勢のまま維持される。こうした斜め姿勢のままの斜め移動は、前述の第１操作入力（ドン）のモーションでは現れない。
【０１１０】
そこで、左ゲームコントローラ１４６０Ｌの３軸加速度センサ１４７５で計測されるＸｌ軸方向の平均加速度Ａｘ_ａｖｅの絶対値と、Ｚｌ軸方向の平均加速度Ａｚ_ａｖｅの絶対値との割合が、所定の第５判定基準値ｋ５以下である場合に、第２操作入力（カツ）が入力されたと判定する。
【０１１１】
図９は、カツドンパターンにおける操作入力の入力種類判別について説明するための概念図である。なお、ここでは、左ゲームコントローラ１４６０Ｌを例に説明するが、右ゲームコントローラ１４６０Ｒについても、ローカル座標を左手系から右手系に読み変えることで同様に適用される。
【０１１２】
第２操作入力（カツ）の入力開始位置は、第１操作入力（ドン）の入力開始位置よりも外側となる。更には、第１操作入力の入力開始位置の方が高い位置であるケースが多い。よって、カツドンパターンにおける左ゲームコントローラ１４６０Ｌの軌跡に着目すると、コントローラ正面法線方向への移動を伴うことになる。
【０１１３】
ここで、左ゲームコントローラ１４６０Ｌの３軸加速度センサ１４７５で計測されるＺｌ軸方向の平均加速度Ａｚ_ａｖｅが、所定の第６判定基準値ｋ６を超える場合には、第１操作入力（ドン）が入力されたと判定する。
【０１１４】
そして、本実施形態では、これらの３パターンによる入力種類判別がなされる以外は、入力種類を全て第１操作入力（ドン）として判別するものとする。
【０１１５】
上述の入力タイミング判定と、こうした入力種類判別とによって、プレーヤが叩打したと思っている感覚的な入力タイミングを適切に判定しつつ、入り乱れる複数種類の操作入力を正確に識別することができる。
【０１１６】
なお、上述の入力タイミング判定と入力種類判別とによって基本的な入力判定は実現できる。しかし、振り上げ動作や振り下げ動作の腕の回し方や手首の曲げ方などは上述したのと全く同じとは言えないケースもあるだろう。プレーヤによっては、自身が叩打したと思っているタイミングと、上述の方法で判定した入力タイミングとに、僅かにズレが生じる可能性は否定できない。
【０１１７】
そこで、本実施形態では入力タイミングの判定に係る調整時間を設定するタイミング調整機能が用意されている。
図１０は、調整時間の設定に係る操作画面の表示例を示す図である。調整時間の設定を行うためにタッチパネル１４０６に調整画面Ｗ１０が表示される。調整画面Ｗ１０では、調整の要領を説明する要領説明３２と、調整操作部３４と、各種操作アイコン３６（３６ａ、３６ｂ，…）とを含む。調整操作部３４のデザインは適宜設定可能であるが、本実施形態では設定バー３４ａをタッチ＆スライド操作により移動させるようにデザインされている。
【０１１８】
そして、タイミング調整では、プレーヤに第１操作入力を試しに行ってもらい、入力タイミングから初期調整時間経過後のタイミングで操作音を放音する。プレーヤは、自身がイメージしているタイミングと操作音が放音されるタイミングとのズレをできるだけ小さくするように調整操作部３４を操作する。そして、タイミング調整の結果が、適用調整時間として、ＩＣメモリ１４５２などに記憶されて、これ以降の入力タイミングの判定に適用されることとなる。なお、調整は、基本的に遅らせる方向にしかできないが、初期調整時間として０を超える値を設定しておくことで、この初期調整時間を低減して０に近づけることで、擬似的に入力タイミングの判定を早めているかのような調整が可能となる。
【０１１９】
図１１は、ゲーム画面における入力タイミングの判定と入力種類判別のそれぞれの結果の表示例を示す図である。
プレイ中のゲーム画面では、評価結果表示部２７にて入力タイミングが報知される。具体的には、入力タイミングと判定されるとともに、評価結果を表示する枠の表示形態（表示色、線の太さ、影の有無などのデザイン要素）が標準形態２７ｓから報知形態２７ｈへ一時的に変更される。図１１の例では、輪郭線を強調する報知形態を示している。
【０１２０】
また、ゲーム画面では、入力タイミングの報知とともに、操作入力の入力種類判別結果も報知される。例えば、第１操作入力（ドン）と判定された場合には種類報知マーカ４０が、評価結果表示部２７の上部に一時的に添付表示される。第２操作入力（カツ）と判定された場合には、それが右ゲームコントローラ１４６０Ｒによる操作入力と判定された場合には、種類報知マーカ４０が評価結果表示部２７の右側面に一時的に添付表示される。第２操作入力（カツ）が左ゲームコントローラ１４６０Ｌによる操作入力と判定された場合には、種類報知マーカ４０が評価結果表示部２７の左側面に一時的に添付表示される。
【０１２１】
［機能構成の説明］
図１２は、本実施形態におけるゲーム装置１４００の機能構成例を示す機能ブロック図である。本実施形態におけるゲーム装置１４００は、本体装置１４０１にて、操作入力部１００と、処理部２００と、音出力部３９０と、画像表示部３９２と、通信部３９４と、記憶部５００とを備える。
【０１２２】
そして、ゲームコントローラ１４６０（右ゲームコントローラ１４６０Ｒ、左ゲームコントローラ１４６０Ｌ）において、操作入力部１００ｃと、加速度計測部１１０と、角速度計測部１１２と、コントローラ処理部２００ｃと、通信部３９４ｃと、加振部３９６と、を備える。
【０１２３】
操作入力部１００は、各種操作を入力するための手段である。スイッチ、レバー、ダイヤル、ジョイスティック、タッチパネル、トラックパッド、タッチパッドなどにより実現できる。図１の構成では、タッチパネル１４０６がこれに該当する。
【０１２４】
処理部２００は、例えばＣＰＵやＧＰＵ等のプロセッサや、ＡＳＩＣ、ＦＰＧＡ、ＩＣメモリなどの電子部品によって実現され、操作入力部１００や記憶部５００を含む各機能部との間でデータの入出力制御を行う。そして、所定のプログラムやデータ、操作入力部１００、ゲームコントローラ１４６０からの操作入力信号などに基づいて各種の演算処理を実行してゲーム装置１４００の動作を統合的に制御する。図１の例では、制御基板１４５０がこれに該当する。
【０１２５】
そして、本実施形態の処理部２００は、ゲーム演算部２１０と、計時部２８０と、音生成部２９０と、画像生成部２９２と、通信制御部２９４とを含む。勿論、これら以外の機能部も適宜含めることができる。
【０１２６】
ゲーム演算部２１０は、ゲームの進行制御に関する各種処理を実行する。本実施形態では、調整時間設定部２１２と、提示制御部２１４と、タイミング判定部２２０と、入力種類判別部２３０と、応答出力制御部２３２と、振動制御部２３４と、評価部２３６と、評価結果報知制御部２３８と、を有する。
【０１２７】
調整時間設定部２１２は、入力タイミングの判定を時間調整する調整時間の設定に関する処理を行う。本実施形態では、調整画面Ｗ１０に関する表示制御及び当該画面に係る各種操作入力に応じた調整時間の変更・設定制御がこれに該当する（図１０参照）。
【０１２８】
提示制御部２１４は、プレーヤに対してゲームコントローラ１４６０を手に持って振って止めるように動かすモーションを行わせる規準タイミングを、複数の規準タイミングを到来する順に提示する制御を行う。本実施形態では、譜面２０において第１種指示体２５ａや第２種指示体２５ｂを流れ表示させ、規準タイミングにて指示体を基準位置２４にて重ならせるように制御することがこれに該当する（図３参照）。
【０１２９】
タイミング判定部２２０は、モーションの止める直前に出現するゲームコントローラの状態の計測値のピークを検出することで入力タイミングを規準タイミング毎に判定する。
【０１３０】
具体的には、計測値に基づいて振り上げ動作に続いて振り下げ動作が連続して開始されたかを判定する前提判定部２２２を有する。この前提判定部２２２は、ゲームコントローラの長手方向およびゲームコントローラの正面法線方向に直交する第１軸方向の加速度に基づいて、振り上げ動作に続いて振り下げ動作が連続して開始されたかを判定する。また、前提判定部２２２は、ゲームコントローラの正面法線方向を第２軸とする第２軸回りの角速度に基づいて、振り上げ動作に続いて振り下げ動作が連続して開始されたかを判定する。
【０１３１】
そして、タイミング判定部２２０は、前提判定手段により肯定判定された場合の振り下げ動作において計測された第１軸の加速度のピークを、計測値の増減傾向の逆転を検出することで検出し、当該検出のタイミングに基づいて前記入力タイミングを１次判定する。また、第２軸回りの角速度のピークを検出することで入力タイミングを１次判定することができる。そして、タイミング判定部２２０は、１次判定されたタイミング（ピークを検出したタイミング）から、予め設定された調整時間分、調整したタイミングを入力タイミングとして最終判定する。
【０１３２】
本実施形態では、右ゲームコントローラ１４６０Ｒや左ゲームコントローラ１４６０Ｌの３軸加速度センサ１４７５で計測される加速度（具体的には、Ｘｌ軸やＸｒ軸の方向の加速度）、及び３軸ジャイロセンサ１４７６で計測される角速度（具体的には、Ｚｌ軸、Ｚｒ軸の周りの角速度、角速度）に基づいて入力タイミングを判定することがこれに該当する（図５、図６参照）
【０１３３】
入力種類判別部２３０は、ゲームコントローラのセンサで計測される、当該ゲームコントローラの状態の計測値に基づいて、複数種類のモーションのうち、何れの種類のモーションが入力されたかを判別する。本実施形態では、第１操作入力（ドン）と、第２操作入力（カツ）の何れが入力されたかを判別することがこれに該当する。つまり、縦振り下ろしモーションが入力されたか、カーブ振り下ろしモーションが入力されたかを判別する。
【０１３４】
より具体的には、ゲームコントローラの長手方向およびゲームコントローラの正面法線方向に直交する方向を第１軸とし、正面法線方向を第２軸とすると、縦振り下ろしモーションについては、第２軸の軸方向の加速度に基づいて判別する。カーブ振り下ろしモーションについては、第１軸回りの角速度に基づいて、又は第１軸および前記第２軸の軸方向の加速度の比に基づいて判別する。
【０１３５】
応答出力制御部２３２は、タイミング判定部２２０によって入力タイミングが判定された場合、直ちに音及び／又は表示による応答出力を行わせる。本実施形態では、入力タイミングが判定されて、入力種類判別部２３０により操作入力が種類判別された場合に、応答出力を行う。応答出力は、本体装置１４０１のスピーカ１４１０からの操作音の放音がこれに該当する。また、評価結果表示部２７の表示形態を、標準形態２７ｓから報知形態２７ｈへ一時的に変更する制御と、種類報知マーカ４０の表示制御も含まれる（図１１参照）。また、ゲームコントローラ１４６０のバイブレータ１４６３による入力演出振動の発生がこれに該当する（図５、図６参照）。
【０１３６】
振動制御部２３４は、前提判定部２２２により肯定判定された場合の振り下げ動作において、ゲームコントローラの振動デバイスを作動させる。本実施形態では、ゲームコントローラ１４６０のバイブレータ１４６３による風切り演出振動の発生がこれに該当する（図５、図６参照）。
【０１３７】
評価部２３６は、規準タイミングと判定された入力タイミングとの差に基づく評価を、規準タイミング毎に順次行う。より具体的には、規準タイミングと入力タイミングとの差と、判別された入力種類と規準種類とが同じか否かと、に基づいて評価を行う。
【０１３８】
評価結果報知制御部２３８は、規準タイミング毎に、判定された評価結果を報知するための制御を行う。本実施形態では、評価結果表示部２７での評価結果の表示制御がこれに該当する（図１１参照）。更には、ゲームコントローラ１４６０のバイブレータ１４６３（振動デバイス）にて、評価結果に応じた振動パターン又は振動の大きさによる入力演出振動の発生制御がこれに該当する（図５、図６参照）。
【０１３９】
計時部２８０は、システムクロックを利用して現在日時やプレイ開始からの経過時間、制限時間等の計時を行う。
【０１４０】
音生成部２９０は、音声データの生成、デコードをするＩＣやソフトウェアの実行により実現され、ゲームプレイに係る音、ＢＧＭなどの音声データを生成或いはデコードする。そして、音声信号を音出力部３９０へ出力する。本実施形態では、プレイする楽曲の音楽データに基づく再生・放音制御を実行することができる。また、操作入力の種類別の叩打演出音の再生・放音制御を行うことができる。
【０１４１】
音出力部３９０は、入力された音声信号に基づいて放音する。図１の例ではスピーカ１４１０がこれに該当する。
【０１４２】
画像生成部２９２は、ゲーム画面Ｗ３（図３参照）等の各種表示画面の画像データ等を生成することができる。そして、画像データに基づく画像信号を画像表示部３９２へ出力することができる。
【０１４３】
画像表示部３９２は、画像生成部２９２から入力される画像信号に基づいて各種画像を表示する。例えば、フラットパネルディスプレイ、ブラウン管（ＣＲＴ）、プロジェクター、ヘッドマウントディスプレイといった画像表示装置によって実現できる。図１の例ではタッチパネル１４０６がこれに該当する。
【０１４４】
通信制御部２９４は、データ通信に係るデータ処理を実行し、通信部３９４を介して外部装置とのデータのやりとりを実現する。
【０１４５】
通信部３９４は、通信回線と接続して通信を実現する。通信回線は、データ通信が可能な通信路を意味する。すなわち、通信回線とは、直接接続のための専用線（専用ケーブル）やイーサネット（登録商標）等によるＬＡＮ（Local Area Network）の他、電話通信網やケーブル網、インターネット等の通信網を含む意味であり、また、通信方法については有線／無線を問わない。よって、通信部３９４は、例えば、無線通信機、モデム、ＴＡ（ターミナルアダプタ）、有線用の通信ケーブルのジャックや制御回路等によって実現される。図１の例では通信モジュール１４５３がこれに該当する。
【０１４６】
記憶部５００は、処理部２００にゲーム装置１４００を統合的に制御させるための諸機能を実現するためのプログラムや各種データ等を記憶する。また、処理部２００の作業領域として用いられ、処理部２００が各種プログラムに従って実行した演算結果などを一時的に記憶する。この機能は、例えばＲＡＭやＲＯＭなどのＩＣメモリ、ハードディスク等の磁気ディスク、ＣＤ−ＲＯＭやＤＶＤなどの光学ディスク、オンラインストレージなどによって実現される。図１の例では制御基板１４５０が搭載するＩＣメモリ１４５２がこれに該当する。
【０１４７】
図１３は、本実施形態における記憶部５００が記憶するプログラムやデータの例を示す図である。記憶部５００は、ゲームプログラム５０２と、ゲーム初期設定データ５１０と、を予め記憶する。また、記憶部５００は、逐次生成・管理されるデータとして、プレイデータ７００と、現在日時８００と、を記憶する。その他、タイマーや、カウンタ、各種フラグなどの情報を適宜記憶できる。
【０１４８】
ゲームプログラム５０２は、処理部２００が読み出して実行することで、ゲーム演算部２１０としての機能を実現させるためのプログラムである（図１２参照）。計時部２８０、音生成部２９０、画像生成部２９２、通信制御部２９４として機能させるためのプログラムも適宜これに含めることができる。
【０１４９】
ゲーム初期設定データ５１０は、ゲームを実行させるための各種初期設定データを格納する。本実施形態では、楽曲定義データ５２０と、初期基準値ライブラリ５３０と、報知定義データ５４０と、初期調整時間５４２と、を含む。勿論、これら以外のデータも適宜含めることができる。
【０１５０】
楽曲定義データ５２０は、ゲームでプレイ可能な楽曲毎に用意され、当該楽曲に関する各種初期設定データを格納する。例えば、１つの楽曲定義データ５２０は、固有の楽曲名５２１と、楽曲音声データ５２３と、譜面２０（図３参照）を表示するための譜面定義データ５２５と、を含む。勿論、これら以外のデータも適宜含めることができる。
【０１５１】
譜面定義データ５２５は、譜面２０にて各種指示体を流れ表示するための基礎データである。データ構成は適宜設定可能であるが、例えば、規準タイミング（例えば、プレイ開始からの経過時間で記述）と規準操作の種類（例えば、譜面２０で流れ表示する指示体の種類）の組み合わせを時系列に格納する構成が考えられる。勿論、これら以外のデータも適宜格納することができる。例えば、同じ規準操作の種類でも、要求する強度レベルの区別（例えば、強弱の区別）も対応づけて格納することができる。
【０１５２】
初期基準値ライブラリ５３０は、入力タイミングの判定や、操作入力の入力種類判別に用いられる基準値や閾値を格納する。本実施形態では、当該ライブラリには、振り上げ開始判定基準角速度値５３１（ωｍ）と、要求勢い判定基準角速度値５３２（ωｆ）と、振り上げ開始判定基準係数５３３（ｋ１）と、確定判定基準係数５３４（ｋ２）と、第３判定基準値５３５（ｋ３）と、第４判定基準値５３６（ｋ４）と、第５判定基準値５３７（ｋ５）と、第６判定基準値５３８（ｋ６）と、を含む。勿論、これら以外の基準値や閾値も適宜含めることができる。
【０１５３】
報知定義データ５４０は、プレーヤへ操作入力状況やゲーム進行状況等を報せるための報知を実行するための各種定義データを格納し、報知の手法別に用意されている。本実施形態では、風切り演出振動（図５、図６参照）と、入力演出振動兼評価結果通知振動（図５、図６参照）と、を含む。後者は、操作入力の種類別（本実施形態では、第１操作入力（ドン）と第２操作入力（カツ））に用意される。そして、それぞれの種類において、各評価結果に対応づけて、振動パターンを出力するかを定義するデータが格納されている。
【０１５４】
プレイデータ７００は、ゲームプレイ毎に用意され、当該プレイを実現し、ゲーム進行状況等を記述する各種データを格納する。
【０１５５】
本実施形態では、例えば図１４に示すように、プレイ開始前にプレーヤが選択した楽曲を示すプレイ楽曲名７０１と、適用調整時間７０２と、プレイ開始からの経過時間７０４と、譜面２０の表示を制御するための譜面表示制御データ７１０と、ゲームコントローラ１４６０別に用意される計測履歴データ７２０と、入力タイミングの判定待ち状態を意味するアイドル状態であることを示すアイドル状態フラグ７４０と、角速度利用フラグリスト７４２と、加速度利用フラグリスト７４４と、ピークタイミング７４６と、入力判定履歴データ７５０と、プレイ成績データ７６０と、を含む。勿論、これら以外のデータも適宜含めることができる。
【０１５６】
適用調整時間７０２は、適用される入力タイミングの調整時間の値を格納する。初期調整時間５４２（図１３参照）により初期化されるが、調整画面Ｗ１０（図１０参照）による調整時間の設定操作にともなって変更される。
【０１５７】
計測履歴データ７２０は、ゲームコントローラ１４６０毎に用意され、当該コントローラで計測された値及びそこから演算される入力タイミングの判定や操作入力の種類判別に使用される値を時系列に格納する。本実施形態では、３軸分の加速度計測値を格納する加速度計測履歴データ７２２と、３軸分の平均加速度を格納する平均加速度計測履歴データ７２４と、３軸分の角速度計測値を格納する角速度計測履歴データ７２６と、３軸分の平均角速度を格納する平均角速度計測履歴データ７２８と、を含む。勿論、これら以外のデータも適宜含めることができる。
【０１５８】
角速度利用フラグリスト７４２は、角速度を利用した入力タイミングの判定に利用するための各種フラグを含む。本実施形態では、角速度を利用した入力タイミングの判定中であることを示す判定中フラグと、Ｚ軸回りの角速度ωｚの正負の方向の反転が検出されると立てられる反転フラグと、角速度ωｚが要求されている勢いに達した場合に立てられる要求フラグと、振り下げ動作中に角速度ωｚのピークが検出されると立てられるピークフラグと、を含む。
【０１５９】
加速度利用フラグリスト７４４は、加速度を利用した入力タイミングの判定に利用するための各種フラグを含む。本実施形態では、加速度を利用した入力タイミングの判定中であることを示す判定中フラグと、Ｘ軸の加速度Ａｘの増加傾向の反転が検出されると立てられる反転フラグと、意図的な振り下げ動作であると確定されると立てられる確定フラグと、振り下げ動作中に加速度Ａｘのピークが検出されると立てられるピークフラグと、を含む。
【０１６０】
入力判定履歴データ７５０は、入力タイミング及び操作入力の種類判別の都度に作成されて、判定及び判別の結果を示す情報を格納する。例えば、１つの入力判定履歴データ７５０は、入力判定タイミングと、種類判別結果と、それがどのゲームコントローラ１４６０についての判定及び判別結果であるかを示すコントローラ識別フラグと、を格納する。勿論、これら以外のデータも適宜格納することができる。例えば操作入力に係る判定や種類判別に、入力強度（仮想打楽器４を叩打する強さに相当）の識別が含まれる場合には、判定された強度の情報も含めることができる。
【０１６１】
［動作の説明］
図１５は、本実施形態のゲーム装置１４００における処理の流れを説明するためのフローチャートである。ここで説明する一連の流れは、処理部２００にてゲームプログラム５０２を実行することにより実現される。また、左右のゲームコントローラ１４６０のローカル座標系を共通化してＸ軸、Ｙ軸、Ｚ軸として図示および説明する。
【０１６２】
先ずゲーム装置１４００は、ゲームコントローラ１４６０毎の計測値の記録を開始し（ステップＳ１０）、次いで計測値から入力タイミング及び操作入力の種別判別に使用する値（本実施形態では、平均値）の算出及び記録を開始する（ステップＳ１２）。すなわち、ステップＳ１０とステップＳ１２により計測履歴データ７２０の記録・更新が開始される（図１４参照）。
そして、ゲーム装置１４００は、ゲームコントローラ１４６０別に、周期的な入力判定処理の実行を開始する（ステップＳ１４）。
【０１６３】
図１６〜図１７は、本実施形態における入力判定処理の流れを説明するためのフローチャートである。同処理において、ゲーム装置１４００は、先ずアイドル状態フラグ７４０を「１（アイドル状態）」に、角速度利用フラグリスト７４２及び加速度利用フラグリスト７４４の全てのフラグを「０」にそれぞれ設定する（ステップＳ３０）。
【０１６４】
次に、ゲーム装置１４００は、Ｚ軸回りの角速度ωｚの絶対値が、振り上げ開始判定基準角速度値５３１（ωｍ）よりも大きければ（ステップＳ３２のＹＥＳ）、アイドル状態フラグ７４０を「０（非アイドル状態）」に設定し、角速度利用フラグリスト７４２の判定中フラグを「１（判定中）」に設定する（ステップＳ３４）。そして、タイムアウトカウンタを始動する（ステップＳ３６）。
【０１６５】
次に、ゲーム装置１４００は、タイムアウトカウンタでカウントアップするまでの間、Ｚ軸回りの角速度ωｚの正負反転の検出を待つ。そして、反転を検出すると（ステップＳ５０のＹＥＳ）、振り上げ動作から振り下げ動作に移行したと判断し、角速度利用フラグリスト７４２の反転フラグを「１（反転済み）」に変更する（ステップＳ５２）。
【０１６６】
続いて、ゲーム装置１４００は、反転後、タイムアウトカウンタがカウントアップするまでの間、更にＺ軸回りの角速度ωｚの絶対値が要求勢い判定基準角速度値５３２（ωｆ）を超えるのを待つ。そして、要求勢い判定基準角速度値５３２（ωｆ）を超えると（ステップＳ５４のＹＥＳ）、角速度利用フラグリスト７４２の要求フラグを「１（要求勢いを満たした）」に変更する（ステップＳ５６）。そして、風切り演出振動を発生させる（ステップＳ５７）。
【０１６７】
続いて、ゲーム装置１４００は、要求される勢いに達した後、タイムアウトカウンタがカウントアップするまでの間、更にＺ軸回りの角速度ωｚのピーク検出を待つ（ステップＳ５８）。すなわち、絶対値の時間変化Δ｜ωｚ｜を算出する。そして、それが負になるとピークを検出したと判断して（ステップＳ５８のＹＥＳ）、角速度利用フラグリスト７４２のピークフラグを「１（ピーク検出済み）」に変更するとともにピークタイミング７４６を一時記憶する（ステップＳ６０）。
【０１６８】
次いで、ゲーム装置１４００は、ピークタイミング７４６から適用調整時間７０２（図１４参照；この段階では初期調整時間５４２の「０」に初期化されている。）の経過をもって入力タイミングと認定し（ステップＳ６２）、種類判別処理を実行する（ステップＳ６４）。
【０１６９】
もし、振り上げ開始を検出してから始動されたタイムアウトカウンタがカウントアップするまでに、正負反転と、要求される勢いへの到達、そしてピーク検出がなければ（ステップＳ７０のＮＯ）、タイムアウトカウンタを停止して（ステップＳ７２）、ステップＳ３０に戻る。
【０１７０】
一方、ステップＳ３２にて否定された場合（ステップＳ３２のＹＥＳ）、ゲーム装置１４００は、図１７に移行して、３軸加速度センサ１４７５で計測されるＸｌ軸方向の加速度Ａｘが、平均加速度Ａｘ_ａｖｅに所定の振り上げ開始判定基準係数５３３（ｋ１）を加えた閾値を超過すると、「振り上げ動作」が開始されたと判定する（ステップＳ１００のＹＥＳ）。
【０１７１】
振り上げ動作の開始を判定すると、ゲーム装置１４００は、アイドル状態フラグ７４０を「０」にするとともに、加速度利用フラグリスト７４４の判定中フラグを「１」に設定する（ステップＳ１０２）。そして、タイムアウトカウンタを始動する（ステップＳ１０４）。
【０１７２】
振り上げ動作の開始が判定されたならば、ゲーム装置１４００は、タイムアウトカウンタがカウントアップするまでの間、最新計測のＸ軸方向の加速度Ａｘ＠ｔと、１計測サイクル前の加速度Ａｘ＠ｔ-１とを比較する。
そして、最新計測のＸ軸方向の加速度Ａｘ＠ｔが１計測サイクル前の加速度Ａｘ＠ｔ-１よりも小さくなったこと、つまりは増減傾向の反転を検出すると（ステップＳ１２０のＹＥＳ）、加速度利用フラグリスト７４４の反転フラグを「１（反転検出済み）」に変更する（ステップＳ１２２）。
【０１７３】
続いて、ゲーム装置１４００は、増加傾向の反転検出つまり前提判定が肯定された後、タイムアウトカウンタがカウントアップするまでの間、Ｘ軸方向の加速度Ａｘと、平均加速度Ａｘ_ａｖｅに確定判定基準係数ｋ２を加えた閾値とを比較する。
そして、加速度Ａｘが当該閾値を下回ると（ステップＳ１２４のＹＥＳ）、プレーヤが意図的に振り下げ動作をしていると確定判定し、加速度利用フラグリスト７４４の確定フラグを「１（振り下げ動作確定）」に変更する（ステップＳ１２６）。次いで、風切り演出振動を実行する（ステップＳ１２８）。
【０１７４】
次に、ゲーム装置１４００は、振り下げ動作が確定してから、タイムアウトカウンタがカウントアップするまでの間、最新の加速度Ａｘ＠ｔと１計測サイクル前の加速度Ａｘ＠ｔ-１とを比較する。
そして、最新の加速度Ａｘ＠ｔと１計測サイクル前の加速度Ａｘ＠ｔ-１よりも大きくなったならば（ステップＳ１３０のＹＥＳ）、モーションを止める直前に出現する計測値のピークを検出したので制動動作が開始されたと判定し、加速度利用フラグリスト７４４のピークフラグを「１（ピーク検出済み）」に変更するとともにピークタイミング７４６を一時記憶する（ステップＳ１３２）。
【０１７５】
次いで、ゲーム装置１４００は、ピークタイミング７４６から適用調整時間７０２（図１４参照；この段階では初期調整時間５４２の「０」に初期化されている。）の経過をもって入力タイミングと認定し（ステップＳ１３４）、種類判別処理を実行する（ステップＳ１３６）。
【０１７６】
もし、加速度による振り上げ開始を検出してから始動されたタイムアウトカウンタがカウントアップするまでに、増加傾向の反転と、要求される勢いへの到達、そしてピーク検出がなければ（ステップＳ１４０のＮＯ）、タイムアウトカウンタを停止して（ステップＳ１４４）、ステップＳ３０に戻る。
【０１７７】
図１８は、本実施形態における種類判別処理の流れを説明するためのフローチャートである。同処理において、ゲーム装置１４００は、今回判定された操作入力の動作が、カツドンパターンに該当するかを判定する（図９参照）。
【０１７８】
具体的には、ピークタイミング７４６のＺ軸方向の加速度Ａｚを最新の計測値として含む平均加速度Ａｚ_ａｖｅが、第６判定基準値５３８（ｋ６）に達したならば、ゲーム装置１４００は、カツドンパターンに該当すると判定して（ステップＳ１５０のＹＥＳ）、種別判別の結果を第１操作入力（ドン）とする（ステップＳ１５２）。
【０１７９】
もし、カツドンパターンに該当しなければ（ステップＳ１５０のＮＯ）、ゲーム装置１４００は、次にドンカツパターンに該当するかを判定する（図７参照）。
【０１８０】
具体的には、ピークタイミング７４６における角速度ωｘの絶対値が、所定の第３判定基準値ｋ３を超え、且つピークタイミング７４６における角速度ωｘを最新の計測値として含む平均角速度ωｘ_ａｖｅの絶対値が、所定の第４判定基準値ｋ４を超える場合、ゲーム装置１４００は、ドンカツパターンに該当すると判定して（ステップＳ１５４のＹＥＳ）、種別判別の結果を第２操作入力（カツ）とする（ステップＳ１５８）。
【０１８１】
もし、カツドンパターンにも、ドンカツパターンにも該当しなければ（ステップＳ１５４のＮＯ）、ゲーム装置１４００は、次にカツカツパターンに該当するかを判定する（図８参照）。
【０１８２】
具体的には、ピークタイミング７４６の加速度Ａｘを最新の計測値として含む平均加速度Ａｘ_ａｖｅの絶対値と、ピークタイミング７４６の加速度Ａｚを最新の計測値として含む平均加速度Ａｚ_ａｖｅの絶対値との割合が、所定の第５判定基準値ｋ５以下である場合に、ゲーム装置１４００は、カツカツパターンに該当すると判定して（ステップＳ１５６のＹＥＳ）、種別判別の結果を第２操作入力（カツ）とする（ステップＳ１５８）。
【０１８３】
そして、カツドンパターンにも、ドンカツパターンにも、カツカツパターンにも該当しなければ（ステップＳ１５６のＮＯ）、ゲーム装置１４００は、種別判別の結果を第１操作入力（ドン）とする（ステップＳ１６０）。
【０１８４】
図１５に戻って、ステップＳ１４にて、ゲームコントローラ別の周期的な入力判定処理の実行を開始したので、これでゲームコントローラ１４６０の準備ができたことになる。
そこで、ゲーム装置１４００は、次に調整時間の設定処理を実行する（ステップＳ１８０）。すなわち、タッチパネル１４０６に調整画面Ｗ１０を表示させ（図１０参照）、操作入力に対する応答音の出力時間差が、プレーヤが違和感を覚えないように調整時間の設定を行ってもらう。そして、この結果で適用調整時間７０２を更新する。
【０１８５】
次いで、ゲーム装置１４００は、プレイする楽曲（プレイ曲）の選択を受け付け（ステップＳ１８２）、ゲーム進行制御を開始する（ステップＳ１８４）。これにより、スピーカ１４１０からはプレイ曲の楽曲が放音されるとともに、これと同期するようにしてタッチパネル１４０６では、ゲーム画面Ｗ３（図３参照）が表示される。
【０１８６】
また、ゲーム装置１４００は、操作入力の評価とその報知制御（例えば、種別判定結果の報知表示（図１１参照））、操作入力に応じた応答出力（例えば、操作入力音の放音）、操作入力に応じた振動制御（例えば、風切り演出振動（図５，図６参照）や入力演出振動（図５，図６参照））なども開始する。
【０１８７】
すでに、ステップＳ１４により入力判定が実行されており、ゲームコントローラ１４６０による操作入力の準備が整っている。プレーヤは、プレイ曲を聴きつつ、ゲーム画面Ｗ３の譜面２０を見ながら、提示された規準タイミングで規準操作に合致するようにゲームコントローラ１４６０で操作入力して音楽ゲームをプレイすることができる。
【０１８８】
ゲームプレイが終了したならば（ステップＳ１８６）、プレイ成績の表示を行って（ステップＳ１８８）、一連の処理を終了する。
【０１８９】
以上、本実施形態によれば、加速度センサやジャイロセンサを搭載したゲームコントローラを有するゲーム装置において、当該ゲームコントローラを空中で振って止める動作をもって操作入力と見なすゲームを実行する際に、センサによる計測値を用いて、プレーヤが操作入力したタイミングであると感覚的に感じるタイミングで操作入力タイミングをしたと判定できる技術を実現できる。
【０１９０】
〔変形例〕
以上、本発明を適用した実施形態について説明したが、本発明を適用可能な実施形態は上記に限定されるものではなく、適宜構成要素の追加・省略・変更を施すことができる。
【０１９１】
例えば、上記実施形態では、スタンドアローンで実行可能なゲームを例に挙げて説明したがこれに限らない。上記実施形態のゲームコントローラ１４６０と同様に３軸加速度センサ１４７５と３軸ジャイロセンサ１４７６とをコントローラ部に備えたコンピュータをプレーヤ端末として使用し、ゲームサーバにアクセスしてプレイするオンラインゲームとして実現する形態も可能である。その場合、上記実施形態におけるゲーム演算部２１０（図１２参照）を、ゲームサーバにて実現すれば良い。
【０１９２】
また、ゲームコントローラ１４６０と、これに搭載されるセンサの計測軸との相対関係は、図２の例に限定されるものではなく、適宜変更可能である。
【０１９３】
また、上記実施形態では、操作入力の種類を第１操作入力（ドン）と第２操作入力（カツ）の２種類としたがこれに限らない。例えば、第１操作入力と第２操作入力とでそれぞれ振る強さが大小異なる強度レベルを設けることができる。強度レベルの段階は適宜設定可能であるが、仮に２段階とすれば合計４種類の操作入力を有するゲームとすることができる。そして、この場合、譜面２０に表示する指示体の種類も４種類分用意する必要がある。加えて、入力種類判別部２３０（図１２参照）にて、入力判定時の計測値、例えばピークタイミング７４６における加速度の大きさや角速度の大きさを所定の閾値と比較することで、入力されたモーションの強度レベルを判別させるようにする必要がある。つまり、入力種類判別部２３０を「強度レベル判別部」としても機能させる。
【０１９４】
また、上記実施形態では、本発明の効果が最も顕著となるゲームとして、レイテンシーやレスポンスの良さが要求される音楽ゲームを例示したが、その他のジャンルのゲームにおいても同様に適用することができる。
例えば、仮想のモグラ叩きゲームなど、仮想の被打撃体が出現するゲームが好適である。また、レイテンシーやレスポンスの良さをそれほど要求しない例としては、コントローラをゴルフクラブに見立てて握って振ってプレイするゴルフゲームにも適用することができる。
【０１９５】
そして、ゲーム内容によっては、ゲームコントローラ１４６０から３軸加速度センサ１４７５と、３軸ジャイロセンサ１４７６の何れかを省略し、加速度に基づく入力判定または角速度に基づく入力判定のみに限定した構成も可能である。また、ゲーム内容によっては、入力タイミングが判定された場合、音及び表示による応答出力の何れか一方を省略することができる。
【符号の説明】
【０１９６】
４…仮想打楽器
２０…譜面
２７…評価結果表示部
３４…調整操作部
４０…種類報知マーカ
１１０…加速度計測部
１１２…角速度計測部
２００…処理部
２１０…ゲーム演算部
２１２…調整時間設定部
２１４…提示制御部
２２０…タイミング判定部
２２２…前提判定部
２３０…入力種類判別部
２３２…応答出力制御部
２３４…振動制御部
２３６…評価部
２３８…評価結果報知制御部
３９６…加振部
５００…記憶部
５０２…ゲームプログラム
５１０…ゲーム初期設定データ
５２０…楽曲定義データ
５３０…初期基準値ライブラリ
５３１…振り上げ開始判定基準角速度値
５３２…要求勢い判定基準角速度値
５３３…振り上げ開始判定基準係数
５３４…確定判定基準係数
５３５…第３判定基準値
５３６…第４判定基準値
５３７…第５判定基準値
５３８…第６判定基準値
５４０…報知定義データ
５４２…初期調整時間
７００…プレイデータ
７０２…適用調整時間
７１０…譜面表示制御データ
７２０…計測履歴データ
７２２…加速度計測履歴データ
７２４…平均加速度計測履歴データ
７２６…角速度計測履歴データ
７２８…平均角速度計測履歴データ
７４２…角速度利用フラグリスト
７４４…加速度利用フラグリスト
７４６…ピークタイミング
１４００…ゲーム装置
１４０１…本体装置
１４５０…制御基板
１４６０Ｌ…左ゲームコントローラ
１４６０Ｒ…右ゲームコントローラ
１４７５…３軸加速度センサ
１４７６…３軸ジャイロセンサ
Ａｘ…Ｘ軸方向の加速度
Ａｘ_ａｖｅ…Ｘ軸方向の平均加速度
Ａｚ…Ｚ軸方向の加速度
Ａｚ_ａｖｅ…Ｚ軸方向の平均加速度
ｋ１…振り上げ開始判定係数
ｋ２…確定判定基準係数
ｋ３…第３判定基準値
ｋ４…第４判定基準値
ｋ５…第５判定基準値
ｋ６…第６判定基準値
ωｆ…判定基準角速度
ωｍ…振り上げ開始判定基準角速度値
ωｘ…Ｘ軸回りの角速度
ωｘ_ａｖｅ…Ｘ軸方向の平均角速度
ωｚ…Ｚ軸回りの角速度
【図１】
2019118549.tif 000003
【図２】
2019118549.tif 000004
【図３】
2019118549.tif 000005
【図４】
2019118549.tif 000006
【図５】
2019118549.tif 000007
【図６】
2019118549.tif 000008
【図７】
2019118549.tif 000009
【図８】
2019118549.tif 000010
【図９】
2019118549.tif 000011
【図１０】
2019118549.tif 000012
【図１１】
2019118549.tif 000013
【図１２】
2019118549.tif 000014
【図１３】
2019118549.tif 000015
【図１４】
2019118549.tif 000016
【図１５】
2019118549.tif 000017
【図１６】
2019118549.tif 000018
【図１７】
2019118549.tif 000019
【図１８】
2019118549.tif 000020