(57)【特許請求の範囲】
【請求項１】
第１入力手段及び第２入力手段からの入力の有無を情報処理装置のコンピュータに判定させるための入力判定プログラムであって、
前記コンピュータを、
前記第１入力手段及び前記第２入力手段のうちの一方に対する入力があってから所定の時間が経過するまでに、前記第１入力手段及び前記第２入力手段のうちの他方に対する入力があったか否かを判定する第１判定手段、
前記第１入力手段及び前記第２入力手段のうちの一方に対する入力があった第１タイミングと、前記第１入力手段及び前記第２入力手段のうちの他方に対する入力があった第２タイミングとの何れか一方が、第１特定期間内であるか否かを判定する第２判定手段、及び
前記第１判定手段の判定結果及び前記第２判定手段の判定結果が肯定であるときに、正しいタイミングで前記第１入力手段及び第２入力手段に対する入力があったと判定する第３判定手段、
として機能させるための入力判定プログラム。
【請求項２】
前記第１特定期間は、前記第１入力手段及び前記第２入力手段の両方への略同時の入力をユーザに要求するための期間である、
請求項１に記載の入力判定プログラム。
【請求項３】
前記第２判定手段は、前記第２タイミングが前記第１特定期間内であるか否かを判定する、
請求項１又は２に記載の入力判定プログラム。
【請求項４】
前記コンピュータを、
前記第１特定期間以外の期間が到来しているときには、前記第１入力手段及び前記第２入力手段の何れか一方に対する入力があったときに、当該入力に基づいて正しいタイミングで入力が行われたか否かを判定する第４判定手段
として機能させるための請求項１〜３の何れかに記載の入力判定プログラム。
【請求項５】
前記コンピュータを、
前記情報処理装置に接続された放音部から楽曲を出力するための音声処理を実行する音声処理手段として機能させる、
請求項１に記載の入力判定プログラム。
【請求項６】
前記コンピュータを、
前記第１タイミングを基準として後又は前後の所定期間内に前記第１特定期間があるか否かを判定する第１特定期間判定手段、
として更に機能させ、
前記第１特定期間判定手段による判定結果が肯定であったときにのみ、前記第１判定手段及び前記第２判定手段として前記コンピュータを機能させる、
請求項１に記載の入力判定プログラム。
【請求項７】
第１入力手段及び第２入力手段からの入力の有無を判定する情報処理装置であって、
前記第１入力手段及び前記第２入力手段のうちの一方に対する入力があってから所定の時間が経過するまでに、前記第１入力手段及び前記第２入力手段のうちの他方に対する入力があったか否かを判定する第１判定手段、
前記第１入力手段及び前記第２入力手段のうちの一方に対する入力があった第１タイミングと、前記第１入力手段及び前記第２入力手段のうちの他方に対する入力があった第２タイミングとの何れか一方が、第１特定期間内であるか否かを判定する第２判定手段、及び
前記第１判定手段の判定結果及び前記第２判定手段の判定結果が肯定であるときに、正しいタイミングで前記第１入力手段及び第２入力手段に対する入力があったと判定する第３判定手段、
を備えた情報処理装置。
【請求項８】
第１入力手段及び第２入力手段からの入力の有無を判定するシステムであって、
前記第１入力手段及び前記第２入力手段のうちの一方に対する入力があってから所定の時間が経過するまでに、前記第１入力手段及び前記第２入力手段のうちの他方に対する入力があったか否かを判定する第１判定手段、
前記第１入力手段及び前記第２入力手段のうちの一方に対する入力があった第１タイミングと、前記第１入力手段及び前記第２入力手段のうちの他方に対する入力があった第２タイミングとの何れか一方が、第１特定期間内であるか否かを判定する第２判定手段、及び
前記第１判定手段の判定結果及び前記第２判定手段の判定結果が肯定であるときに、正しいタイミングで前記第１入力手段及び第２入力手段に対する入力があったと判定する第３判定手段、
を備えたシステム。
【請求項９】
情報処理装置を制御するコンピュータが実行する情報処理方法であって、前記コンピュータは、
第１入力手段及び第２入力手段からの入力の有無を判定する入力判定ステップ、
前記第１入力手段及び前記第２入力手段のうちの一方に対する入力があってから所定の時間が経過するまでに、前記第１入力手段及び前記第２入力手段のうちの他方に対する入力があったか否かを判定する第１判定ステップ、
前記第１入力手段及び前記第２入力手段のうちの一方に対する入力があった第１タイミングと、前記第１入力手段及び前記第２入力手段のうちの他方に対する入力があった第２タイミングとの何れか一方が、第１特定期間内であるか否かを判定する第２判定ステップ、及び
前記第１判定ステップの判定結果及び前記第２判定ステップの判定結果が肯定であるときに、正しいタイミングで前記第１入力手段及び第２入力手段に対する入力があったと判定する第３判定ステップ、
を実行する情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力判定プログラム、情報処理装置、システム及び情報処理方法に関し、より特定的には、第１入力手段及び第２入力手段へのユーザからの入力の有無を判定するとともに、入力タイミングが正しいタイミングで行われたかを判定するための入力判定プログラム、情報処理装置、システム及び情報処理方法に関する。
【背景技術】
【０００２】
情報処理装置が、特定の期間において、ユーザに対して２つの操作子を同時に操作することを要求し、同時に操作（同時押し操作）することができたときに限って、所定の処理を実行することは一般的な技術である。例えば、特許文献１には、この様な一般的な技術を適用したゲーム装置が開示されている。このゲーム装置は音楽ゲーム処理を実行する。そして、この音楽ゲーム処理において、ゲーム装置は、Ａボタンと十字キーを同時に押下する操作（第１同時押し操作）、及びＢボタンと十字キーを同時に押下する操作（第２同時押し操作）をユーザに要求している。すなわち、ゲーム装置は、第１同時押し操作又は第２同時押し操作の指示を表示し、ユーザが指示に応じて特定の期間内に同時押し操作できたときに正しい入力が行われたと判定する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−２８２５３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した従来のゲーム装置では、第１同時押し操作又は第２同時押し操作の指示の表示に合わせた特定の期間内（例えば、１小節を４等分した間隔内）に、Ａボタンの押下と十字キーの押下、又はＢボタンの押下と十字キーの押下を同時に行うことをユーザに要求していた。２種類の操作を同時にかつ両方を特定の期間内に行うことは操作に習熟していないユーザにとっては難しい場合があり、操作の種類（十字キーの下押しとＡボタンとを同時に操作する等）によっては特に難度が高くなることがある。そして、ユーザは、要求される２種類の操作のタイミングがずれたときに、これらの操作のうち一方が特定の期間内であれば正しいタイミングで入力を行うことができたと感じ易く、このため、正しいタイミングで入力したと感じているのに正しい入力が行われないと判定される場合があった。この様なユーザの入力に関する感覚と実際の入力の適否のずれは、入力の快適性を損なう場合がある。
【０００５】
それゆえ、本発明の目的は、ユーザの入力の快適性を向上させることができる入力判定プログラム、情報処理装置、システム及び情報処理方法を提供することに関する。
【課題を解決するための手段】
【０００６】
（１）本発明の一例にかかる入力判定プログラムは、上記目的を達成するために、第１入力手段及び第２入力手段からの入力の有無を情報処理装置のコンピュータに判定させ、コンピュータを、第１判定手段、第２判定手段、及び第３判定手段として機能させる。ここで、第１判定手段は、第１入力手段及び第２入力手段のうちの一方に対する入力があってから所定の時間が経過するまでに、第１入力手段及び第２入力手段のうちの他方に対する入力があったか否かを判定する。第２判定手段は、第１入力手段及び第２入力手段のうちの一方に対する入力があった第１タイミングと、第１入力手段及び第２入力手段のうちの他方に対する入力があった第２タイミングとの何れか一方が、第１特定期間内であるか否かを判定する。第３判定手段は、第１判定手段の判定結果及び第２判定手段の判定結果が肯定であるときに、正しいタイミングで第１入力手段及び第２入力手段に対する入力があったと判定する。
【０００７】
上述したように、本発明によれば、第１入力手段への入力及び第２入力手段への入力が全く同時である必要はなく、略同時であると判定可能な所定の時間のずれが許容される。そして、第１入力手段への入力及び第２入力手段への入力のうちの一方が第１特定期間内にあれば正しいタイミングで第１入力手段及び第２入力手段に対する入力があったと判定される。この様に、第１入力手段への入力及び第２入力手段への入力の両方が第１特定期間内にあることが要求されない。このため、操作に習熟していないユーザでも第１入力手段及び第２入力手段への略同時の入力を正しいタイミングで行うことが可能になる。
【０００８】
（２）他の構成例として、上記第１特定期間は、第１入力手段及び第２入力手段の両方への略同時の入力をユーザに要求するための期間であってもよい。本発明によれば、第１入力手段及び第２入力手段への略同時の入力が要求されている第１特定期間において、第１入力手段及び第２入力手段への入力のずれが略同時であると判定可能な所定の時間内であり、かつ何れか一方の入力が第１特定期間内であれば、正しいタイミングで第１入力手段及び第２入力手段に対する入力があったと（略同時にかつ第１特定期間内での操作があったと）判断され、ユーザの第１入力手段及び第２入力手段へ略同時に入力を行うための操作の快適性を向上させることができる。
【０００９】
（３）他の構成例として、上記第２判定手段は、第２タイミングが第１特定期間内であるか否かを判定してもよい。この構成によれば、第１入力手段及び第２入力手段のうち先に入力があった方への入力タイミングではなく後に入力があった方への入力タイミングが第１特定期間内であるか否かが判定される。ここで、先に入力があった方の入力タイミングが第１特定期間内であるか否かが判定される構成を採用したとすると、先に入力があった方の入力タイミングを情報処理装置に記憶させなくてはならない。そして、先の入力から所定の時間が経過する前に後の入力があったときに、記憶している先の入力タイミングに基づいて第１特定期間にあるか否かを判定する必要があり判定の処理が煩雑になる。これに対して、本発明では、後に入力があった方の入力タイミングが第１特定期間内であるかを判定するため、先の入力から所定の時間が経過する前に後の入力があったときに、現時点が第１特定期間内であるかを判定すればよいため、より簡易な処理で判定の処理を行うことが可能になる。
【００１０】
（４）他の構成例として、上記入力判定プログラムは、コンピュータを、第４判定手段として機能させてもよい。第４判定手段は、第１特定期間以外の期間が到来しているときには、第１入力手段及び第２入力手段の何れか一方に対する入力があったときに、当該入力に基づいて、正しいタイミングで入力が行われたか否かを判定してもよい。この構成によれば、第１特定期間においては、第１入力判定手段及び第２入力判定手段のうちの一方に対する入力があってから所定の時間が経過するまでに他方の入力があるか否かを第１判定手段によって判定するため、他方の入力があるまで又は一方の入力があってから所定の時間が経過するまで、正しい入力が行われたか否かの判定が行われない。これに対して、第１特定期間以外の期間が到来しているときには、入力があったときには直ちに正しい入力が行われたか否かが判定される。このため、続く処理を迅速に行うことが可能になる。
【００１１】
（５）他の構成例として、上記第４判定手段は、第１入力手段及び第２入力手段のうちの一方に対する入力があってから所定の時間が経過するまでに、正しい入力が行われたか否かを判定してもよい。この構成によれば、第１特定期間以外の期間においては、所定の時間の経過を待たずして正しい入力が行われたか否かが判定され、この所定の時間分のタイムラグを減少させ迅速に処理を行うことが可能になる。
【００１２】
（６）他の構成例として、上記入力判定プログラムは、コンピュータを、タイミング判定用データを情報処理装置に接続させた記憶部に記憶させる手段として機能させてもよい。ここで、タイミング判定用データは、第１特定期間として第１入力手段及び第２入力手段への略同時の入力をユーザに要求するための期間と、第１入力手段及び第２入力手段の何れか一方への入力をユーザに要求する期間である第２特定期間と、第１入力手段及び第２入力手段の何れにも入力を要求しない期間である第３特定期間を規定したデータである。そして、第４判定手段は、タイミング判定用データに基づいて第２特定期間又は第３特定期間が到来しているときには、第１入力手段及び第２入力手段の何れか一方に対する入力があったときに、当該入力に基づいて正しいタイミングで入力が行われたか否かを判定する。
【００１３】
上記構成によれば、第２特定期間及び第３特定期間については、第１入力手段及び第２入力手段のうちの一方に対する入力があったときに、直ぐに正しいタイミングで入力が行われたか否かの判定を行う。ここで、第１特定期間においては、第１入力手段及び第２入力手段のうちの一方に対する入力があってから所定の時間が経過するまでに他方の入力があるか否かを第１判定手段によって判定するため、他方の入力があるまで又は一方の入力があってから所定の時間が経過するまで、正しい入力が行われたか否かの判定が行われない。
【００１４】
これに対して、第２特定期間では、第１入力手段及び第２入力手段のうちの一方に対する入力があったときには、一旦正しい入力が行われたか否かが判定される。後にこの入力と略同時と判定可能なタイミングで他方に対する入力があれば判定結果が覆る可能性があるが、続く処理を迅速に行うために一旦正しい入力が行われたか否かが判定される。また、第３特定期間では、この期間に入力があったときには必ず不適切な操作となるため、直ちに正しい入力が行われたか否かが判定される。このため、続く処理を迅速に行うことが可能になる。
【００１５】
なお、第２特定期間は、第１入力手段及び第２入力手段の何れか一方への入力をユーザに要求する期間であるが、第１入力手段及び第２入力手段のうちどちらに入力しても正解としてもよいし、どちらか一方（第１入力手段又は第２入力手段）への入力のみを正解としてもよい。
【００１６】
（７）他の構成例として、上記第４判定手段は、入力判定手段、及びキャンセル手段を備えてもよい。ここで、入力判定手段は、タイミング判定用データに基づいて第２特定期間が到来しているときには、第１入力手段及び第２入力手段のうちの一方に対する入力が第２特定期間にあったときに、正しい入力が行われたと暫定的に判定する。そして、キャンセル手段は、第１入力手段及び第２入力手段のうちの一方に対する入力があってから所定の時間が経過するまでに、第１入力手段及び第２入力手段のうちの他方に対する入力があったときには、正しい入力が行われたとの暫定的な判定をキャンセルする。
【００１７】
上記構成によれば、第２特定期間が到来しているときには、第１入力手段及び第２入力手段のうちの一方に対する入力があると直ちに正しい入力が行われたと暫定的に判定される。このため、正しい入力が行われたとして続く処理を迅速に行うことが可能になる。更に、第１入力手段及び第２入力手段のうちの一方に対する入力があってから所定の時間が経過するまでに他方に対する入力があったときには、第１入力手段及び第２入力手段のうち一方の入力のみが要求されていたにも関わらず、誤って略同時のタイミングで両方の入力がなされているため、正しい入力が行われたとの判定がキャンセルされる。この様に、第１入力手段及び第２入力手段のうち一方の入力があったときに暫定的に正しい入力があったと判定され、略同時と判定可能なタイミングで他方の入力が後にあったときにこの判定がキャンセルされる。このため、一方の入力があったときに正しい入力が行われたとして直ちに続く処理を実行することができるとともに、他方が入力されて誤った操作が行われたことが判別されたときに正しい入力が行われたとの判定がキャンセルされて、誤った操作が行われたにも関わらず、正しい入力が行われたと判定されることを防止することが可能になる。
【００１８】
なお、第２特定期間が第１入力手段及び第２入力手段のうちどちらに入力しても正解となる期間であれば、何れか一方の入力があったときに、正しい入力があったと暫定的に判定される。また、第２特定期間がどちらか一方（第１入力手段又は第２入力手段）への入力のみを正解とする期間であれば、この一方に入力があったときに、正しい入力があったと暫定的に判定される。
【００１９】
（８）他の構成例として、上記入力判定プログラムは、コンピュータを、演出処理手段として機能させてもよい。ここで、演出処理手段は、入力判定手段によって正しい入力が行われたと暫定的に判定されたときに、当該入力に応じた第１演出を情報処理装置に接続された表示部に表示させる。この構成によれば、第１入力手段及び第２入力手段のうちの一方に対する入力が第２特定期間にあったときには、他方の入力の有無が確定する前であっても直ちに第１演出が行われる。このため、他方の入力の有無が確定する前であっても演出を出力することが可能になる。
【００２０】
（９）他の構成例として、演出処理手段は、キャンセル手段によって正しい入力が行われたとの暫定的な判定がキャンセルされたときに、第１演出から第１演出に連続する内容の別の第２演出に切り替えてもよい。この構成によれば、正しい入力が行われたとの暫定的な判定がキャンセルされたときには第１演出から第２演出に切り替えられる。この第２演出は第１演出に連続する内容である。このため、第１演出を後に正しい入力が行われたとの暫定的な判定がキャンセルされても違和感のない内容としておき、第２演出を不適切な入力が行われたことを表す内容にしておくことで、不適切な入力が行われたことを表す一連の演出が、第１入力手段及び第２入力手段のうちの一方に対する入力が第２特定期間にあったときから、出力されることになる。
【００２１】
（１０）他の構成例として、上記演出処理手段は、第１入力手段及び第２入力手段のうちの一方に対する入力があってから所定の時間が経過し、かつキャンセル手段によって正しい入力が行われたとの暫定的な判定がキャンセルされなかったときに、第１演出から、第１演出に連続する内容の別の第３演出に切り替えてもよい。この構成によれば、正しい入力が行われたとの暫定的な判定がキャンセルされずに、第１入力手段及び第２入力手段のうちの一方に対する入力があってから所定の時間が経過したとき、すなわち、正しい入力が行われたことが確定的になったときには、第１演出から第３演出に切り替えられる。この第３演出は第１演出に連続する内容である。このため、第１演出を後に正しい入力が行われたとの暫定的な判定がキャンセルされても、またこの判定が確定しても違和感のない内容としておき、かつ、第３演出を適切な入力が行われたことを表す内容にしておくことで、次のような作用効果を奏する。すなわち、適切な入力が行われたことを表す一連の演出が、第１入力手段及び第２入力手段のうちの一方に対する入力が第２特定期間にあったときから、出力されるという作用効果が奏する。
【００２２】
（１１）他の構成例として、上記第４判定手段は、タイミング判定用データに基づいて
第３特定期間が到来しているときには、第１入力手段及び第２入力手段のうちの一方に対する入力があったときに、誤ったタイミングで入力が行われたと判定してもよい。この様に、第３特定期間（第１入力手段及び第２入力手段のうちの何れにも入力を要求しない期間）では、第１入力手段及び第２入力手段のうちの何れに入力があっても不適切な操作であるため、このタイミングで入力があったときには誤ったタイミングで入力が行われたと判定する。
【００２３】
（１２）他の構成例として、上記入力判定プログラムは、コンピュータを音声処理手段として機能させてもよい。この音声処理手段は、情報処理装置に接続された放音部から楽曲を出力するための音声処理を実行する。この構成によれば、楽曲の再生に合わせて、第１入力手段及び第２入力手段を略同時（入力タイミングのずれが所定の時間以内）に、かつ第１入力手段及び第２入力手段のうちの何れか一方への入力が第１特定期間内にあるようにユーザが操作することが要求される。
【００２４】
（１３）他の構成例として、上記入力判定プログラムは、コンピュータを、第１特定期間判定手段として更に機能させるもよい。ここで、第１特定期間判定手段は、第１タイミングを基準として後又は前後の所定期間内に第１特定期間があるか否かを判定する。そして、第１特定期間判定手段による判定結果が肯定であったときにのみ、第１判定手段及び第２判定手段としてコンピュータを機能させる。この構成によれば、第１タイミング（第１入力手段及び第２入力手段のうち先に入力があったタイミング）を基準として後又は前後の所定期間内に第１特定期間があるときにのみ、第１判定手段及び第２判定手段としてコンピュータを機能させる。このため、第１タイミングの後又は前後の所定期間内に第１特定期間がない場合には、第１入力手段及び第２入力手段の何れか一方の入力が第１特定期間内になるように、所定期間を設定することで、この様な場合には、第１判定手段による判定及び第２判定手段による判定も行わず無駄な処理を行うことが防止される。
【００２５】
（１４）本発明の一例にかかる情報処理装置は、上記目的を達成するために、第１入力手段及び第２入力手段からの入力の有無を判定する情報処理装置であって、第１判定手段、第２判定手段、及び第３判定手段を備える。第１判定手段は、第１入力手段及び第２入力手段のうちの一方に対する入力があってから所定の時間が経過するまでに、第１入力手段及び第２入力手段のうちの他方に対する入力があったか否かを判定する。第２判定手段は、第１入力手段及び第２入力手段のうちの一方に対する入力があった第１タイミングと、第１入力手段及び第２入力手段のうちの他方に対する入力があった第２タイミングとの何れか一方が、第１特定期間内であるか否かを判定する。第３判定手段は、第１判定手段の判定結果及び第２判定手段の判定結果が肯定であるときに、正しいタイミングで第１入力手段及び第２入力手段に対する入力があったと判定する。
【００２６】
（１５）本発明の一例にかかるシステムは、上記目的を達成するために、第１入力手段及び第２入力手段からの入力の有無を判定するシステムであって、第１判定手段、第２判定手段、及び第３判定手段を備える。第１判定手段は、第１入力手段及び第２入力手段のうちの一方に対する入力があってから所定の時間が経過するまでに、第１入力手段及び第２入力手段のうちの他方に対する入力があったか否かを判定する。第２判定手段は、第１入力手段及び第２入力手段のうちの一方に対する入力があった第１タイミングと、第１入力手段及び第２入力手段のうちの他方に対する入力があった第２タイミングとの何れか一方が、第１特定期間内であるか否かを判定する。第３判定手段は、第１判定手段の判定結果及び第２判定手段の判定結果が肯定であるときに、正しいタイミングで第１入力手段及び第２入力手段に対する入力があったと判定する。
【００２７】
（１６）本発明の一例にかかる情報処理方法は、上記目的を達成するために、入力判定ステップ、第１判定ステップ第２判定ステップ、及び第３判定ステップを含む。ここで、入力判定ステップでは、第１入力手段及び第２入力手段からの入力の有無を判定する。第１判定ステップでは、第１入力手段及び第２入力手段のうちの一方に対する入力があってから所定の時間が経過するまでに、第１入力手段及び第２入力手段のうちの他方に対する入力があったか否かを判定する。第２判定ステップでは、第１入力手段及び第２入力手段のうちの一方に対する入力があった第１タイミングと、第１入力手段及び第２入力手段のうちの他方に対する入力があった第２タイミングとの何れか一方が、第１特定期間内であるか否かを判定する。第３判定ステップでは、第１判定手段の判定結果及び第２判定手段の判定結果が肯定であるときに、正しいタイミングで第１入力手段及び第２入力手段に対する入力があったと判定する。
【００２８】
上記（１４）〜（１６）の情報処理装置、システム及び情報処理方法は（１）の入力判定プログラムと同様の作用効果を奏する。
【発明の効果】
【００２９】
本発明によれば、第１入力手段への入力及び第２入力手段への入力が全く同時である必要はなく、略同時であると判定可能な所定の時間のずれが許容される。そして、第１入力手段への入力及び第２入力手段への入力のうちの一方が第１特定期間内にあれば正しいタイミングで第１入力手段及び第２入力手段に対する入力があったと判定される。この様に、第１入力手段への入力及び第２入力手段への入力の両方が第１特定期間内にあることが要求されないため、操作に習熟していないユーザでも第１入力手段及び第２入力手段への略同時の入力を正しいタイミングで行うことができる。ユーザは２種類の操作（第１入力手段への入力及び第２入力手段への入力）のうち何れか一方でも第１特定期間内に入力することができれば、正しいタイミングで入力を行うことができたという感覚を持ち易いが、この様なユーザの入力に関する感覚と実際の入力の適否のずれをなくし、ユーザの入力の快適性を向上させることができる。
【図面の簡単な説明】
【００３０】
【図１】ゲームシステムの外観図
【図２】ゲーム装置の構成を示すブロック図
【図３】コントローラの上面後方から見た斜視図
【図４】コントローラを下面前方から見た斜視図
【図５】コントローラの上ハウジングを外した状態を後面側から見た斜視図
【図６】コントローラの下ハウジングを外した状態を前面側から見た斜視図
【図７】コントローラの構成を示すブロック図
【図８Ａ】操作指示決定処理によって表示されるゲーム画像の一例を示す図
【図８Ｂ】操作指示決定処理によって表示されるゲーム画像の一例を示す図
【図９】同時操作の判定方法を説明するための図
【図１０】単独操作の判定方法を説明するための図
【図１１】「操作なし」の期間に不適切な操作を行ったとの判定を行う方法を説明するための図
【図１２】一段階目演出を表示した画面図
【図１３】失敗二段階目演出を表示した画面図
【図１４】成功二段階目演出を表示した画面図
【図１５】内部メインメモリ及び／又は外部メインメモリが記憶するプログラム及び各種データの一例を示す図
【図１６】音楽ゲーム処理におけるメイン処理の一例を示すフローチャート
【図１７】操作内容判定処理の一例を示すフローチャート（その１）
【図１８】操作内容判定処理の一例を示すフローチャート（その２）
【図１９】ステップＳ２４、Ｓ４０において実行される同時操作判定処理の一例を示すフローチャート
【図２０】ステップＳ４２において実行される単独操作判定処理の一例を示すフローチャート
【発明を実施するための形態】
【００３１】
（ゲームシステムの全体構成）
図１を参照して、本発明の実施形態に係るゲーム装置を含むゲームシステム１について説明する。図１は、ゲームシステム１の外観図である。以下、据置型のゲーム装置を一例にして、本実施形態のゲーム装置およびゲームプログラムについて説明する。図１において、ゲームシステム１は、テレビジョン受像器（以下、単に「テレビ」と記載する）２、ゲーム装置３、光ディスク４、コントローラ７、およびマーカ部８を含む。本システムは、コントローラ７を用いたゲーム操作に基づいてゲーム装置３でゲーム処理を実行するものである。
【００３２】
ゲーム装置３には、当該ゲーム装置３に対して交換可能に用いられる情報記憶媒体の一例である光ディスク４が脱着可能に挿入される。光ディスク４には、ゲーム装置３において実行されるためのゲームプログラムが記憶されている。ゲーム装置３の前面には光ディスク４の挿入口が設けられている。ゲーム装置３は、挿入口に挿入された光ディスク４に記憶されたゲームプログラムを読み出して実行することによってゲーム処理を実行する。
【００３３】
ゲーム装置３には、表示装置の一例であるテレビ２が接続コードを介して接続される。テレビ２の画面には、ゲーム装置３において実行されるゲーム処理の結果得られるゲーム画像が表示され、これとともに、テレビ２の２つのスピーカ２ａからゲームに関連する音声が出力される。また、テレビ２の画面の周辺（図１では画面の上側）には、マーカ部８が設置される。マーカ部８は、その両端に２つのマーカ８Ｒおよび８Ｌを備えている。マーカ８Ｒ（マーカ８Ｌも同様）は、具体的には１以上の赤外ＬＥＤであり、テレビ２の前方に向かって赤外光を出力する。マーカ部８はゲーム装置３に接続されており、ゲーム装置３はマーカ部８が備える各赤外ＬＥＤの点灯を制御することが可能である。
【００３４】
コントローラ７は、当該コントローラ７自身に対して行われた操作の内容を示す操作データをゲーム装置３に与える入力装置である。コントローラ７とゲーム装置３とは無線通信によって接続される。本実施形態では、コントローラ７とゲーム装置３との間の無線通信には例えばＢｌｕｅｔｏｏｔｈ（ブルートゥース）（登録商標）の技術が用いられる。なお、他の実施形態においてはコントローラ７とゲーム装置３とは有線で接続されてもよい。
【００３５】
（ゲーム装置３の内部構成）
次に、図２を参照して、ゲーム装置３の内部構成について説明する。図２は、ゲーム装置３の構成を示すブロック図である。ゲーム装置３は、ＣＰＵ１０、システムＬＳＩ１１、外部メインメモリ１２、ＲＯＭ／ＲＴＣ１３、ディスクドライブ１４、およびＡＶ−ＩＣ１５等を有する。
【００３６】
ＣＰＵ１０は、光ディスク４に記憶されたゲームプログラム（例えば音楽ゲームプログラム）を実行することによってゲーム処理（例えば音楽ゲーム処理）を実行するものであり、ゲームプロセッサとして機能する。ＣＰＵ１０は、システムＬＳＩ１１に接続される。システムＬＳＩ１１には、ＣＰＵ１０の他、外部メインメモリ１２、ＲＯＭ／ＲＴＣ１３、ディスクドライブ１４およびＡＶ−ＩＣ１５が接続される。システムＬＳＩ１１は、それに接続される各構成要素間のデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。システムＬＳＩ１１の内部構成については後述する。揮発性の外部メインメモリ１２は、光ディスク４から読み出されたゲームプログラムや、フラッシュメモリ１７から読み出されたゲームプログラム等のプログラムを記憶したり、各種データを記憶したりするものであり、ＣＰＵ１０のワーク領域やバッファ領域として用いられる。ＲＯＭ／ＲＴＣ１３は、ゲーム装置３の起動用のプログラムが組み込まれるＲＯＭ（いわゆるブートＲＯＭ）と、時間をカウントするクロック回路（ＲＴＣ：Ｒｅａｌ  Ｔｉｍｅ  Ｃｌｏｃｋ）とを有する。ディスクドライブ１４は、光ディスク４からプログラムデータやテクスチャデータ等を読み出し、後述する内部メインメモリ１１ｅまたは外部メインメモリ１２に読み出したデータを書き込む。
【００３７】
また、システムＬＳＩ１１には、入出力プロセッサ（Ｉ／Ｏプロセッサ）１１ａ、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）１１ｂ、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）１１ｃ、ＶＲＡＭ１１ｄ、および内部メインメモリ１１ｅが設けられる。図示は省略するが、これらの構成要素１１ａ〜１１ｅは内部バスによって互いに接続される。
【００３８】
ＧＰＵ１１ｂは、描画手段の一部を形成し、ＣＰＵ１０からのグラフィクスコマンド（作画命令）に従って画像を生成する。より具体的には、ＧＰＵ１１ｂは、当該グラフィクスコマンドに従って３Ｄグラフィックスの表示に必要な計算処理、例えば、レンダリングの前処理にあたる３Ｄ座標から２Ｄ座標への座標変換などの処理や、テクスチャの張り込みなどの最終的なレンダリング処理を行うことで、ゲーム画像データを生成する。ここで、ＣＰＵ１０は、グラフィクスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラムをＧＰＵ１１ｂに与える。ＶＲＡＭ１１ｄは、ＧＰＵ１１ｂがグラフィクスコマンドを実行するために必要なデータ（ポリゴンデータやテクスチャデータ等のデータ）を記憶する。画像が生成される際には、ＧＰＵ１１ｂは、ＶＲＡＭ１１ｄに記憶されたデータを用いて画像データを作成する。
【００３９】
ＤＳＰ１１ｃは、オーディオプロセッサとして機能し、内部メインメモリ１１ｅや外部メインメモリ１２に記憶されるサウンドデータや音波形（音色）データを用いて、音声データを生成する。また、ＤＳＰ１１ｃは、入力した音声データ（オーディオデータ）をデコード（再生）する処理を行う。内部メインメモリ１１ｅは、外部メインメモリ１２と同様に、プログラムや各種データを記憶するものであり、ＣＰＵ１０のワーク領域やバッファ領域として用いられる。
【００４０】
上述のように生成された画像データおよび音声データは、ＡＶ−ＩＣ１５によって読み出される。ＡＶ−ＩＣ１５は、読み出した画像データをＡＶコネクタ１６を介してテレビ２に出力するとともに、読み出した音声データを、テレビ２に内蔵されるスピーカ２ａに出力する。これによって、画像がテレビ２に表示されるとともに音がスピーカ２ａから出力される。
【００４１】
入出力プロセッサ１１ａは、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ１１ａは、フラッシュメモリ１７、無線通信モジュール１８、無線コントローラモジュール１９、拡張コネクタ２０、およびメモリカード用コネクタ２１に接続される。無線通信モジュール１８にはアンテナ２２が接続され、無線コントローラモジュール１９にはアンテナ２３が接続される。
【００４２】
入出力プロセッサ１１ａは、無線通信モジュール１８およびアンテナ２２を介してネットワークに接続し、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。入出力プロセッサ１１ａは、定期的にフラッシュメモリ１７にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データが有る場合には、無線通信モジュール１８およびアンテナ２２を介してネットワークに送信する。また、入出力プロセッサ１１ａは、他のゲーム装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ２２および無線通信モジュール１８を介して受信し、受信したデータをフラッシュメモリ１７に記憶する。ＣＰＵ１０はゲームプログラムを実行することにより、フラッシュメモリ１７に記憶されたデータを読み出してゲームプログラムで利用する。フラッシュメモリ１７には、ゲーム装置３と他のゲーム装置や各種サーバとの間で送受信されるデータの他、ゲーム装置３を利用してプレイしたゲームのセーブデータ（ゲームの結果データまたは途中データ）が記憶されてもよい。
【００４３】
また、入出力プロセッサ１１ａは、コントローラ７から送信される操作データをアンテナ２３および無線コントローラモジュール１９を介して受信し、内部メインメモリ１１ｅまたは外部メインメモリ１２のバッファ領域に記憶（一時記憶）する。
【００４４】
さらに、入出力プロセッサ１１ａには、拡張コネクタ２０およびメモリカード用コネクタ２１が接続される。拡張コネクタ２０は、ＵＳＢやＳＣＳＩのようなインターフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したり、有線の通信用コネクタを接続することによって無線通信モジュール１８に替えてネットワークとの通信を行ったりすることができる。メモリカード用コネクタ２１は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ１１ａは、拡張コネクタ２０やメモリカード用コネクタ２１を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
【００４５】
ゲーム装置３には、電源ボタン２４、リセットボタン２５、およびイジェクトボタン２６が設けられる。電源ボタン２４およびリセットボタン２５は、システムＬＳＩ１１に接続される。電源ボタン２４がオンにされると、ゲーム装置３の各構成要素に対して、図示しないＡＣアダプタを経て電源が供給される。また、一旦電源がオンにされた状態で、再度電源ボタン２４を押すと、低電力スタンバイモードへの移行が行われる。この状態でも、ゲーム装置３への通電は行われているため、インターネット等のネットワークに常時接続しておくことができる。なお、一旦電源がオンにされた状態で、電源をオフにしたいときは、電源ボタン２４を所定時間以上長押しすることで、電源をオフとすることが可能である。リセットボタン２５が押されると、システムＬＳＩ１１は、ゲーム装置３の起動プログラムを再起動する。イジェクトボタン２６は、ディスクドライブ１４に接続される。イジェクトボタン２６が押されると、ディスクドライブ１４から光ディスク４が排出される。
【００４６】
次に、図３および図４を参照して、コントローラ７について説明する。なお、図３は、コントローラ７の上面後方から見た斜視図である。図４は、コントローラ７を下面前方から見た斜視図である。
【００４７】
図３および図４において、コントローラ７は、ハウジング７１と、当該ハウジング７１の表面に設けられた複数個の操作ボタンで構成される操作部７２（７２ａ〜７２ｉ）とを備える。本実施例のハウジング７１は、その前後方向を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさであり、例えばプラスチック成型によって形成されている。
【００４８】
ハウジング７１上面の中央前面側に、十字キー７２ａが設けられる。この十字キー７２ａは、十字型の４方向プッシュスイッチであり、４つの方向（前後左右）に対応する操作部分が十字の突出片にそれぞれ９０°間隔で配置される。プレイヤが十字キー７２ａのいずれかの操作部分を押下することによって前後左右いずれかの方向を選択される。例えばプレイヤが十字キー７２ａを操作することによって、複数の選択肢（例えば、複数の楽曲）から選択指示したりすることができる。
【００４９】
なお、十字キー７２ａは、上述したプレイヤの方向入力操作に応じて操作信号を出力する操作部であるが、他の態様の操作部でもかまわない。例えば、十字方向に４つのプッシュスイッチを配設し、プレイヤによって押下されたプッシュスイッチに応じて操作信号を出力する操作部を設けてもかまわない。さらに、上記４つのプッシュスイッチとは別に、上記十字方向が交わる位置にセンタスイッチを配設し、４つのプッシュスイッチとセンタスイッチとを複合した操作部を設けてもかまわない。また、ハウジング７１上面から突出した傾倒可能なスティック（いわゆる、ジョイスティック）を倒すことによって、傾倒方向に応じて操作信号を出力する操作部を上記十字キー７２ａの代わりに設けてもかまわない。さらに、水平移動可能な円盤状部材をスライドさせることによって、当該スライド方向に応じた操作信号を出力する操作部を、上記十字キー７２ａの代わりに設けてもかまわない。また、タッチパッドを、上記十字キー７２ａの代わりに設けてもかまわない。
【００５０】
ハウジング７１上面の十字キー７２ａより後面側に、複数の操作ボタン７２ｂ〜７２ｇが設けられる。操作ボタン７２ｂ〜７２ｇは、プレイヤがボタン頭部を押下することによって、それぞれの操作ボタン７２ｂ〜７２ｇに割り当てられた操作信号を出力する操作部である。例えば、操作ボタン７２ｂ〜７２ｄには、１番ボタン、２番ボタン、およびＡボタン等としての機能が割り当てられる。なお、以下、操作ボタン７２ｄを「Ａボタン７２ｄ」と記載する。また、操作ボタン７２ｅ〜７２ｇには、マイナスボタン、ホームボタン、およびプラスボタン等としての機能が割り当てられる。これら操作ボタン７２ａ〜７２ｇは、ゲーム装置本体３が実行するゲームプログラムに応じてそれぞれの操作機能が割り当てられる。なお、図３に示した配置例では、操作ボタン７２ｂ〜７２ｄは、ハウジング７１上面の中央前後方向に沿って並設されている。また、操作ボタン７２ｅ〜７２ｇは、ハウジング７１上面の左右方向に沿って操作ボタン７２ｂおよび７２ｄの間に並設されている。そして、操作ボタン７２ｆは、その上面がハウジング７１の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
【００５１】
また、ハウジング７１上面の十字キー７２ａより前面側に、操作ボタン７２ｈが設けられる。操作ボタン７２ｈは、遠隔からゲーム装置本体３本体の電源をオン／オフする電源スイッチである。この操作ボタン７２ｈも、その上面がハウジング７１の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
【００５２】
また、ハウジング７１上面の操作ボタン７２ｃより後面側に、複数のＬＥＤ７０２が設けられる。ここで、コントローラ７は、他のコントローラ７と区別するためにコントローラ種別（番号）が設けられている。例えば、ＬＥＤ７０２は、コントローラ７に現在設定されている上記コントローラ種別をプレイヤに通知するために用いられる。具体的には、コントローラ７からゲーム装置３へ送信データを送信する際、上記コントローラ種別に応じて複数のＬＥＤ７０２のうち、種別に対応するＬＥＤが点灯する。
【００５３】
また、ハウジング７１上面には、操作ボタン７２ｂおよび操作ボタン７２ｅ〜７２ｇの間に後述するスピーカ（図５のスピーカ７０６）からの音を外部に放出するための音抜き孔７１ａが形成されている。
【００５４】
一方、ハウジング７１下面には、凹部が形成されている。後述で明らかとなるが、ハウジング７１下面の凹部は、プレイヤがコントローラ７の前面をマーカ８Ｌおよび８Ｒに向けて片手で把持したときに、当該プレイヤの人差し指や中指が位置するような位置に形成される。そして、上記凹部の傾斜面には、操作ボタン７２ｉが設けられる。操作ボタン７２ｉは、例えばＢボタンとして機能する操作部である。以下、操作ボタン７２ｉを「Ｂボタン７２ｉ」と記載する。
【００５５】
また、ハウジング７１前面には、撮像情報演算部７４の一部を構成する撮像素子７４３が設けられる。ここで、撮像情報演算部７４は、コントローラ７が撮像した画像データを解析してその中で輝度が高い場所を判別してその場所の重心位置やサイズなどを検出するためのシステムであり、例えば、最大２００フレーム／秒程度のサンプリング周期であるため比較的高速なコントローラ７の動きでも追跡して解析することができる。この撮像情報演算部７４の詳細な構成については、後述する。また、ハウジング７１の後面には、コネクタ７３が設けられている。コネクタ７３は、例えばエッジコネクタであり、例えば接続ケーブルと嵌合して接続するために利用される。
【００５６】
ここで、以下の説明を具体的にするために、コントローラ７に対して設定する座標系について定義する。図３および図４に示すように、互いに直交するｘｙｚ軸をコントローラ７に対して定義する。具体的には、コントローラ７の前後方向となるハウジング７１の長手方向をｚ軸とし、コントローラ７の前面（撮像情報演算部７４が設けられている面）方向をｚ軸正方向とする。また、コントローラ７の上下方向をｙ軸とし、ハウジング７１の上面（操作ボタン７２ａ等が設けられた面）方向をｙ軸正方向とする。さらに、コントローラ７の左右方向をｘ軸とし、ハウジング７１の左側面（図３では表されずに図４で表されている側面）方向をｘ軸正方向とする。
【００５７】
次に、図５および図６を参照して、コントローラ７の内部構造について説明する。なお、図５は、コントローラ７の上ハウジング（ハウジング７１の一部）を外した状態を後面側から見た斜視図である。図６は、コントローラ７の下ハウジング（ハウジング７１の一部）を外した状態を前面側から見た斜視図である。ここで、図６に示す基板７００は、図５に示す基板７００の裏面から見た斜視図となっている。
【００５８】
図５において、ハウジング７１の内部には基板７００が固設されており、当該基板７００の上主面上に操作ボタン７２ａ〜７２ｈ、加速度センサ７０１、ＬＥＤ７０２、およびアンテナ７５４等が設けられる。そして、これらは、基板７００等に形成された配線（図示せず）によってマイコン７５１等（図６、図７参照）に接続される。マイコン７５１は、操作ボタン７２ａ等の種類に応じた操作データを発生させるように機能する。この仕組みは公知技術であるが、例えばキートップ下側に配置されたタクトスイッチなどのスイッチ機構による配線の接触／切断をマイコン７５１が検出することによって実現されている。より具体的には、操作ボタンが例えば押されると配線が接触して通電するので、この通電がどの操作ボタンにつながっている配線で発生したかをマイコン７５１が検出し、操作ボタンの種類に応じた信号を発生させている。
【００５９】
また、コントローラ７は、無線モジュール７５３（図７参照）およびアンテナ７５４によって、ワイヤレスコントローラとして機能する。なお、ハウジング７１内部には図示しない水晶振動子が設けられており、後述するマイコン７５１の基本クロックを生成する。また、基板７００の上主面上に、スピーカ７０６およびアンプ７０８が設けられる。また、加速度センサ７０１は、操作ボタン７２ｄの左側の基板７００上（つまり、基板７００の中央部ではなく周辺部）に設けられる。したがって、加速度センサ７０１は、コントローラ７の長手方向を軸とした回転に応じて、重力加速度の方向変化に加え、遠心力による成分の含まれる加速度を検出することができるので、所定の演算により、検出される加速度データからコントローラ７の回転を良好な感度でゲーム装置本体３等が判定することができる。
【００６０】
一方、図６において、基板７００の下主面上の前端縁に撮像情報演算部７４が設けられる。撮像情報演算部７４は、コントローラ７の前方から順に赤外線フィルタ７４１、レンズ７４２、撮像素子７４３、および画像処理回路７４４によって構成されており、それぞれ基板７００の下主面に取り付けられる。また、基板７００の下主面上の後端縁にコネクタ７３が取り付けられる。さらに、基板７００の下主面上にサウンドＩＣ７０７およびマイコン７５１が設けられている。サウンドＩＣ７０７は、基板７００等に形成された配線によってマイコン７５１およびアンプ７０８と接続され、ゲーム装置本体３から送信されたサウンドデータに応じてアンプ７０８を介してスピーカ７０６に音声信号を出力する。
【００６１】
そして、基板７００の下主面上には、バイブレータ７０４が取り付けられる。バイブレータ７０４は、例えば振動モータやソレノイドである。バイブレータ７０４は、基板７００等に形成された配線によってマイコン７５１と接続され、ゲーム装置本体３から送信された振動データに応じてその作動をオン／オフする。バイブレータ７０４が作動することによってコントローラ７に振動が発生するので、それを把持しているプレイヤの手にその振動が伝達され、いわゆる振動対応ゲームが実現できる。ここで、バイブレータ７０４は、ハウジング７１のやや前方寄りに配置されるため、プレイヤが把持している状態において、ハウジング７１が大きく振動することになり、振動を感じやすくなる。
【００６２】
次に、図７を参照して、コントローラ７の内部構成について説明する。なお、図７は、コントローラ７の構成を示すブロック図である。
【００６３】
図７において、コントローラ７は、上述した操作部７２、撮像情報演算部７４、加速度センサ７０１、バイブレータ７０４、スピーカ７０６、サウンドＩＣ７０７、およびアンプ７０８の他に、その内部に通信部７５を備えている。なお、図７では、バイブレータ７０４、スピーカ７０６、サウンドＩＣ７０７およびアンプ７０８の図示を省略する。
【００６４】
撮像情報演算部７４は、赤外線フィルタ７４１、レンズ７４２、撮像素子７４３、および画像処理回路７４４を含んでいる。赤外線フィルタ７４１は、コントローラ７の前方から入射する光から赤外線のみを通過させる。レンズ７４２は、赤外線フィルタ７４１を透過した赤外線を集光して撮像素子７４３へ出射する。撮像素子７４３は、例えばＣＭＯＳセンサやあるいはＣＣＤのような固体撮像素子であり、レンズ７４２が集光した赤外線を撮像する。したがって、撮像素子７４３は、赤外線フィルタ７４１を通過した赤外線だけを撮像して画像データを生成する。撮像素子７４３で生成された画像データは、画像処理回路７４４で処理される。具体的には、画像処理回路７４４は、撮像素子７４３から得られた画像データを処理して高輝度部分を検知し、それらの位置座標や面積を検出した結果を示す処理結果データを通信部７５へ出力する。なお、これらの撮像情報演算部７４は、コントローラ７のハウジング７１に固設されており、ハウジング７１自体の方向を変えることによってその撮像方向を変更することができる。この撮像情報演算部７４から出力される処理結果データに基づいて、コントローラ７の位置や動きに応じた信号を得ることができる。
【００６５】
コントローラ７は、３軸（ｘ、ｙ、ｚ軸）の加速度センサ７０１を備えていることが好ましい。この３軸の加速度センサ７０１は、３方向、すなわち、上下方向、左右方向、および前後方向で直線加速度を検知する。また、他の実施形態においては、ゲーム処理に用いる制御信号の種類によっては、上下および左右方向（または他の対になった方向）のそれぞれに沿った直線加速度のみを検知する２軸の加速度検出手段を使用してもよい。例えば、この３軸または２軸の加速度センサ７０１は、アナログ・デバイセズ株式会社（Ａｎａｌｏｇ  Ｄｅｖｉｃｅｓ，  Ｉｎｃ．）またはＳＴマイクロエレクトロニクス社（ＳＴＭｉｃｒｏｅｌｅｃｔｒｏｎｉｃｓ  Ｎ．Ｖ．）から入手可能であるタイプのものでもよい。加速度センサ７０１は、シリコン微細加工されたＭＥＭＳ（Ｍｉｃｒｏ  Ｅｌｅｃｔｒｏ  Ｍｅｃｈａｎｉｃａｌ  Ｓｙｓｔｅｍｓ：微小電子機械システム）の技術に基づいた静電容量式（静電容量結合式）であってもよい。しかしながら、既存の加速度検出手段の技術（例えば、圧電方式や圧電抵抗方式）あるいは将来開発される他の適切な技術を用いて３軸または２軸の加速度センサ７０１が提供されてもよい。
【００６６】
通信部７５は、マイクロコンピュータ（Ｍｉｃｒｏ  Ｃｏｍｐｕｔｅｒ：マイコン）７５１、メモリ７５２、無線モジュール７５３、およびアンテナ７５４を含んでいる。マイコン７５１は、処理の際にメモリ７５２を記憶領域として用いながら、送信データを無線送信する無線モジュール７５３を制御する。また、マイコン７５１は、アンテナ７５４を介して無線モジュール７５３が受信したゲーム装置本体３からのデータに応じて、サウンドＩＣ７０７およびバイブレータ７０４の動作を制御する。サウンドＩＣ７０７は、通信部７５を介してゲーム装置本体３から送信されたサウンドデータ等を処理する。また、マイコン７５１は、通信部７５を介してゲーム装置本体３から送信された振動データ（例えば、バイブレータ７０４をＯＮまたはＯＦＦする信号）等に応じて、バイブレータ７０４を作動させる。
【００６７】
コントローラ７に設けられた操作部７２からの操作信号（キーデータ）、加速度センサ７０１からの加速度信号（ｘ、ｙ、およびｚ軸方向加速度データ；以下、単に加速度データと記載する）、および撮像情報演算部７４からの処理結果データは、マイコン７５１に出力される。マイコン７５１は、入力した各操作データ（キーデータ、加速度データ、処理結果データ）を無線コントローラモジュール１９へ送信する送信データとして一時的にメモリ７５２に格納する。ここで、通信部７５から無線コントローラモジュール１９への無線送信は、所定の周期毎に行われるが、ゲームの処理は１／６０秒を単位として行われることが一般的であるので、それよりも短い周期で送信を行うことが必要となる。具体的には、ゲームの処理単位は１６．７ｍｓ（１／６０秒）であり、ブルートゥース（Ｂｌｕｅｔｏｏｔｈ；登録商標）で構成される通信部７５の送信間隔は例えば５ｍｓである。マイコン７５１は、無線コントローラモジュール１９への送信タイミングが到来すると、メモリ７５２に格納されている送信データを一連の操作情報として出力し、無線モジュール７５３へ出力する。そして、無線モジュール７５３は、例えばブルートゥース（登録商標）の技術に基づいて、所定周波数の搬送波を用いて操作情報で変調し、その電波信号をアンテナ７５４から放射する。つまり、コントローラ７に設けられた操作部７２からのキーデータ、加速度センサ７０１からの加速度データ、および撮像情報演算部７４からの処理結果データが無線モジュール７５３で電波信号に変調されてコントローラ７から送信される。そして、ゲーム装置本体３の無線コントローラモジュール１９でその電波信号を受信し、ゲーム装置本体３で当該電波信号を復調や復号することによって、操作データすなわち一連の操作情報（キーデータ、加速度データ、および処理結果データ）を取得する。そして、ゲーム装置本体３のＣＰＵ１０は、取得した操作情報とゲームプログラムとに基づいて、ゲーム処理を行う。なお、ブルートゥース（登録商標）の技術を用いて通信部７５を構成する場合、通信部７５は、他のデバイスから無線送信された送信データを受信する機能も備えることができる。
【００６８】
（音楽ゲーム処理）
以下に、本実施形態の特徴となる音楽ゲーム処理を説明する。まず、音楽ゲーム処理では、上述した操作ボタン７２のうち何れか１つの特定の操作ボタン７２のみを押下する操作（以下「単独操作」と記載する）と、上述した操作ボタン７２のうちの何れか２つの特定の操作ボタン７２を略同時（数フレーム程度のずれは略同時として許容される）に押下する操作（以下、「同時操作」と記載する）の何れかをユーザに対して要求する。具体的には、音楽ゲーム処理では、楽曲の再生に合わせて単独操作及び同時操作のうち何れかの操作の指示をテレビ２に表示するための処理（操作指示決定処理）が実行される。そして、音楽ゲーム処理では、この指示に応じてユーザが単独操作又は同時操作を正しく行ったか否かを判定し、この判定結果に応じた演出を行うための処理（操作内容判定処理）が実行される。
【００６９】
なお、本実施形態では、Ａボタン７２ｄが単独操作用の操作ボタン７２であり、Ａボタン７２ｄとＢボタン７２ｉが両方操作用の操作ボタン７２である。もっとも、単独操作用の操作ボタン７２及び同時操作用の操作ボタン７２として、Ａボタン７２ｄ以外の何れの操作ボタン７２が割り当てられていてもよい。
【００７０】
以下に、図８Ａ、図８Ｂを用いて、ゲーム装置３が上記操作指示決定処理を実行することでテレビ２の画面に表示されるゲーム画像を説明する。図８Ａ及び図８Ｂは、操作指示決定処理によって表示されるゲーム画像の一例を示す図である。図８Ａを参照して、図８Ａのゲーム画像は、例えば侍キャラクタを表す基準オブジェクトＯ１と黒雲オブジェクトＯ２が表示されている。基準オブジェクトＯ１は、ゲーム画像の所定の位置（本例では左寄りの位置）に配置されており、ユーザの操作に応じて刀を用いた演出用の攻撃アクションを行う。この攻撃アクションの内容についての詳細は、図１２〜図１４を用いて後述する。
【００７１】
そして、図８Ｂに示すように、ユーザが操作すべきタイミングである操作タイミングが近付くと、黒雲オブジェクトＯ２の中から出現するように、例えばお化けキャラクタを表す指示オブジェクトＯ３が楽曲の再生に合わせて順次表示される。指示オブジェクトＯ３は基準オブジェクトＯ１の刀によって切ることが可能な位置に表示された後に消去されるが、この位置に指示オブジェクトＯ３が居るときに（図８Ｂの様に表示されたときに）操作ボタン７２を押下すれば、適切な操作タイミングで操作されたことになる。この様にして、指示オブジェクトＯ３の表示によってユーザに操作タイミングが指示される。また、指示オブジェクトＯ３として、例えば色、形状等の表示態様の異なる２種類が用意されている。この種類によって、同時操作及び単独操作の中から何れの操作を行うべきかユーザに指示している。なお、同時操作を指示する指示オブジェクトＯ３を「同時操作指示オブジェクトＯ３ａ」と記載する場合がある。また、単独操作を指示する指示オブジェクトＯ３を「単独操作指示オブジェクトＯ３ｂ」と記載する場合がある。
【００７２】
なお、上述したゲーム画像はあくまで一例であり、ユーザに対して単独操作及び同時操作のタイミングを指示することができれば如何なるゲーム画像を表示してもよい。また、ゲーム画像の表示によらず、音声の出力等の別の方法によって操作のタイミングを指示してもよい。
【００７３】
次に、図９〜図１１を用いて、操作判定処理におけるユーザの操作が正しいか否かの判定方法を説明する。図９は、同時操作の判定方法を説明するための図である。図１０は、単独操作の判定方法を説明するための図である。図１１は、「操作なし」が正解となるタイミングで不適切な操作を行ったとの判定を行う方法を説明するための図である。
【００７４】
この音楽ゲーム処理では、楽曲の再生期間において一定期間毎（例えば、一拍毎の期間）にユーザに要求される操作が切り替わる。すなわち、図９〜図１１では、各図の上側に要求操作データＤ１（本発明の「タイミング指示データ」の一例に相当する）を図示しているが、この要求操作データＤ１は、楽曲の再生開始時から一定期間毎のユーザに要求する操作を示すデータである。そして、ゲーム装置１は、要求操作データＤ１に基づいて一定期間毎にこの期間で要求される操作内容を指示する（図８Ｂで示すような指示オブジェクトＯ３の表示等によって指示する）。これとともに、ゲーム装置１は、要求される操作内容に合致した操作が一定期間内に行われたか否かで適切な操作が行われたか否かを判定する。
【００７５】
以下に、適切な操作が行われたか否かの判定方法をより具体的に説明する。すなわち、楽曲の再生開始時から楽曲の終了までの一定期間毎にシーケンシャルな番号（本図では１〜９）が割り当てられ、要求操作データＤ１は、各番号（各一定期間）に対応する操作内容を示す。なお、図９〜図１１の例では、「Ａ」が単独操作を示し、「ＡＢ」が同時操作を示し、「なし」が操作なしを示す。そして、この例では、要求操作データＤ１は、番号１（例えば一拍目の期間に相当）に対応付けて単独操作を示しており、番号２及び３（例えば二拍目及び三拍目の期間に相当）に対応付けて「操作なし」を示し、番号４（例えば四拍目の期間に相当）に対応付けて同時操作を示している。このため、楽曲の再生開始時から一定期間経過（一拍目の期間が経過）するまでは単独操作が要求される。更に一定期間経過（二拍目の期間が経過）するまでは「操作なし」が要求され、次の一定期間が経過（三拍目の期間が経過）するまでについても「操作なし」が要求される。続く一定期間経過（四拍目の期間が経過）するまでは、同時操作が要求される。以下に、同時操作が要求される期間を「同時操作期間（本発明の「第１特定期間」の一例に対応）」、単独操作が要求される期間を「単独操作期間（本発明の「第２特定期間」の一例に対応）」、「操作なし」が要求される期間を「操作なし期間（本発明の「第３特定期間」の一例に対応）」と記載する。
【００７６】
上述した前提を踏まえて、図９を参照して、同時操作が正しく行われたかを判定する判定方法の一例を説明する。図９では、要求操作データＤ１の下の矢印は楽曲再生開始からの経過時間を示している。そして、タイミングＴ１は、Ａボタン７２ｄとＢボタン７２ｉのうちの何れかの入力検知タイミングを示す。このタイミングＴ１を中心とした期間ｔ１内に、同時操作期間ｔ２があるかどうかを要求操作データＤ１に基づいてゲーム装置３が判断する。なお、この期間ｔ１は、本実施形態では同時操作期間ｔ２より長い期間に設定されているが、同じであっても短い期間であってもよく、正解となる操作が確実に判定可能な期間に設定されていればよい。すなわち、期間ｔ１は、同時操作期間ｔ２と単独操作期間ｔ２ａ（図１０を参照）が両方含まれないような期間に設定されていればよい。また、期間ｔ１は、タイミングＴ１を中心として前後の期間であるが、同時操作期間ｔ２（又は単独操作期間ｔ２ａ）の到来を判定するための期間であるため、タイミングＴ１の前にこの様な期間を設定することは必ずしも必要ではなく、後にのみ設定していてもよい。そして、上記判断結果が肯定であれば、現時点は同時操作を正解とするタイミングである。図９では、期間ｔ１内に同時操作期間ｔ２（番号４に対応する期間）があるため、現時点は同時操作を正解とするタイミングであると判定される。
【００７７】
現時点が同時操作を正解とするタイミングであると判定したときには、ゲーム装置３は、同時操作期間ｔ２（番号４に対応する期間）内に同時操作があったか否かを、Ａボタン７２ｄとＢボタン７２ｉのうち後に入力が検知された方の入力検知タイミングを用いて判定する。言い換えれば、後に入力が検知された方の入力検知タイミングが同時操作期間ｔ２内であれば、先に入力が検知された方の入力検知タイミングが同時操作期間ｔ２内でなくても同時操作期間ｔ２内に同時操作があったと判定する。加えて、ゲーム装置３は、タイミングＴ１から所定の時間ｔ３（略同時と判定可能な程度の数フレームの時間、以下この時間を「同時操作判定時間ｔ３」と記載する）が経過する前に後の入力が検知されるか否かを判定する。これらの判定結果が肯定であったときには、同時操作期間ｔ２内に略同時にＡボタン７２ｄとＢボタン７２ｉが押下されたとして、正しいタイミングで同時操作があったと判定され、適切な操作が行われたと判定される。すなわち、図９の例では、同時操作期間ｔ２と同時操作判定時間ｔ３とが重なっている期間ｔ４で後の入力があったときにのみ、適切な同時操作が行われたと判定される。
【００７８】
上述した様に、本実施形態では、Ａボタン７２ｄへの入力とＢボタン７２ｉへの入力が同時操作判定時間ｔ３内でずれたとしても、略同時に操作があったとして許容され、かつ後の入力だけが同時操作期間ｔ２内であれば、同時操作期間ｔ２内に同時操作があったと判定される。これによって、操作に習熟していないユーザでも同時操作を快適に行うことが可能になる。一方、先の入力（タイミングＴ１）から同時操作判定時間ｔ３が経過するまでに後の入力がないとき、及び後の入力が同時操作期間ｔ２（番号４に対応する期間）内にないときは、何れも正しいタイミングで同時操作があったと判定されず、適切な入力が行われていないと判断される。
【００７９】
次に、図１０を参照して、単独操作が正しく行われたかを判定する判定方法の一例を説明する。図１０では、タイミングＴ２は、Ａボタン７２ｄの入力検知タイミングを示す。タイミングＴ２を中心とした期間ｔ１内に単独操作期間ｔ２ａがあるか否かをゲーム装置３が要求操作データＤ１に基づいて判断する。この判断結果が肯定であれば、現時点は単独操作を正解とするタイミングであると判定される。図１０では、上側矢印で示す場合も下側矢印で示す場合も、期間ｔ１内に単独操作期間ｔ２ａ（番号９に対応する期間）があるため、現時点は単独操作を正解とするタイミングであると判定される。もっとも、単独操作を正解とするタイミングであっても、Ａボタン７２ｄの入力検知タイミング（タイミングＴ２）が単独操作期間ｔ２ａになければ正しいタイミングで単独操作があったと判定されず、不適切な入力が行われたと判断される。すなわち、上側矢印で示す例では、タイミングＴ２が単独操作期間ｔ２ａにないため、不適切な入力が行われたと判断される。対して、下側矢印で示す例では、タイミングＴ２が単独操作期間ｔ２ａ（番号９に対応する期間）にあるため、適切な入力が行われたと暫定的に判定される。ここで、暫定的に判定されると記載したのは、この適切な入力が行われたとの判定は確定的なものではなく、後にこの判定が覆る可能性があるからである。
【００８０】
なお、本実施形態では、上述のように、期間ｔ１内に単独操作期間ｔ２ａがあるか否かを判定しているが、必ずしもこの判定を行う必要はない。すなわち、タイミングＴ２が単独操作期間ｔ２ａ（番号９に対応する期間）に行われたか否かを判断するだけで、適切な操作があったと暫定的に判定してもよい。
【００８１】
上述した、適切な操作があったとの暫定的な判定は、その後のＢボタン７２ｉの入力検知タイミングがタイミングＴ２から同時操作判定時間ｔ３が経過する前に有ったか否かを待って確定的な判定となる。具体的には、タイミングＴ２から同時操作判定時間ｔ３が経過する前にＢボタン７２ｉの入力が検知されたときには、適切な操作があったという暫定的な判定はキャンセルされ、不適切な操作があったと判定される。この理由は、ユーザが誤って同時操作を行ったと考えられるからである。対して、タイミングＴ２から同時操作判定時間ｔ３が経過する前にＢボタン７２ｉの入力が検知されなかったときには、適切な操作があったという暫定的な判定は確定的な判定となる。
【００８２】
上述したように、単独操作期間ｔ２ａでは、Ａボタン７２ｄの入力が検知されたときに適切な入力があったと暫定的に判定して処理を進めるため、Ａボタン７２ｄの入力を検知してからＢボタン７２ｉの入力を検知するまでのタイムラグを減らすことができる。
【００８３】
次に、図１１を参照して、現時点が「操作なし」を正解とするタイミングであるときに、誤って操作ボタン７２が押下され不適切な操作を行ったと判定する方法を説明する。操作なし期間とは、タイミングＴ１（Ａボタン７２ｄとＢボタン７２ｉのうちの何れかの入力検知タイミング）を中心とした期間ｔ１内に、同時操作期間ｔ２も、単独操作期間ｔ２ａも含まれないタイミングである。このタイミングでは、Ａボタン７２ｄの入力が検知されても、Ｂボタン７２ｉの入力が検知されても、原則不適切な入力が行われたと判定される。
【００８４】
次に、同時操作期間ｔ２において上述した適切な操作があったという暫定的な判定がなされたときに表示される演出（以下「一段階目演出」と記載する。本発明の「第１演出」の一例に相当）を、図１２を用いて説明する。図１２は、一段階目演出を表示した画面図である。図１２では、基準オブジェクトＯ１が刀を振りおろす演出用の攻撃アクションを行う。適切な操作があったという暫定的な判定は、上述したように当該判定がＢボタン７２ｉの検出（同時操作判定時間ｔ３の経過前における検出）によって後にキャンセルされる可能性がある。もっとも、適切な操作があったという暫定的な判定は、Ｂボタン７２ｉの押下が検出（同時操作判定時間ｔ３の経過前における検出）されなければ確定される。従って、適切な操作があったという暫定的な判定が行われた段階では、この判定が確定されるかキャンセルされるか未確定な状態である。このため、一段階目演出のための攻撃アクションは、刀を振り下ろすアクションに限定されないが、適切な操作があったとの暫定的な判定が後に確定的になっても、不適切な操作があったと判定結果が変わっても違和感のないような内容にすることが好ましい。
【００８５】
次に、適切な操作があったとの暫定的な判定が後にキャンセルされたときに一段階演出から切り替えて表示される演出（以下、「失敗二段階目演出」と記載する。本発明の「第２演出」の一例に相当する）を、図１３を用いて説明する。図１３は、失敗二段階目演出を表示した画面図である。この失敗二段階目演出は、一段階目演出に連続する内容の演出であり、かつユーザが不適切な操作を行ったことを表す演出である。失敗演出では、例えば、図１３に示すように、基準オブジェクトＯ１が１段階演出で刀を振り下ろしたにも関わらず、指示オブジェクトＯ３を倒すことができずに、指示オブジェクトＯ３が黒雲オブジェクトＯ２の中に逃げ出すアクションを表示する。
【００８６】
上述した、失敗二段階目演出のアニメーションの内容は、あくまで一例であり、一段階目演出の内容と連続する内容であり、かつユーザが不適切な操作を行ったことを表すことができれば如何なる内容であってもよい。
【００８７】
次に、適切な操作があったとの暫定的な判定が確定されたときに一段階演出から切り替えて表示される演出（以下「成功二段階目演出」と記載する。本発明の「第３演出」の一例に相当する）を、図１４を用いて説明する。図１４は、成功二段階目演出を表示した画面図である。この成功二段階目演出は、一段階目演出に連続する内容の演出であり、かつユーザが適切な操作を行ったことを表す演出である。例えば、図１４に示すように、成功二段階目演出では、基準キャラクタＯ１が一段階目演出で刀を振り下ろしたことにより、指示キャラクタＯ２が切り殺されて退治される様子を表示する。なお、上述した、成功二段階目演出の内容もまた、あくまで一例であり、一段階目演出の内容と連続する内容であり、かつユーザが適切な操作を行ったことを表すことができれば如何なる内容であってもよい。なお、失敗二段階目演出、成功二段階目演出及び一段階目演出は、アニメーションでなくてもよく、静止画であってもよいし音声の出力等であってもよい。
【００８８】
続いて、図１５を参照して、内部メインメモリ１１ｅ及び／又は外部メインメモリ１２に記憶されるプログラム各種プログラムや各種データについて説明する。図１５は、内部メインメモリ１１ｅ及び／又は外部メインメモリ１２が記憶するプログラム及び各種データの一例を示す図である。各種データはプログラムをゲーム装置１が実行することに応じて記憶される。なお、図１５で示すプログラム及び各種データは内部メインメモリ１１ｅと外部メインメモリ１２のうちの何れに記憶されていてもよい。
【００８９】
内部メインメモリ１１ｅ及び／又は外部メインメモリ１２は、プログラム記憶領域１００とデータ記憶領域１０１を備える。プログラム記憶領域１００は、音楽ゲームプログラムＰ１を記憶している。この音楽ゲームプログラムＰ１はＣＰＵ１０に音楽ゲーム処理を実行させるためのプログラムである。
【００９０】
データ記憶領域１０１には、要求操作データＤ１、操作データＤ２、楽曲データＤ３、画像生成用データＤ４（Ｄ４ａ〜Ｄ４ｃ）、スコアデータＤ５、第１判定用フラグＤ６、第２判定用フラグＤ７及び第３判定用フラグＤ８等を記憶している。要求操作データＤ１は、図９〜図１１を用いて上述したように、楽曲の再生開始時から一定期間毎（例えば一拍の期間毎）のユーザに要求する操作を示しているデータである。要求操作データＤ１に基づいて、図８Ｂで示すような指示オブジェクトＯ３（同時操作指示オブジェクトＯ３ａ、単独操作指示オブジェクトＯ３ｂ）が表示される。また、要求操作データＤ１に基づいて、現時点で正解となる操作内容が判定されるとともに、ユーザの操作が適切に行われたか（例えば同時操作が同時操作期間ｔ２内に行われたか又は単独操作が単独操作期間ｔ２ａ内に行われたか）判定される。なお、本実施形態では、ユーザが複数の楽曲から音楽ゲームで採用する１の楽曲を選択することができる構成である。従って、ユーザに選択された楽曲データＤ１に対応する要求操作データＤ１のみが光ディスク４等から読み出されて記憶される。
【００９１】
操作データＤ２は、上述したようにコントローラ７から送信間隔毎に送信されるデータであり、入出力プロセッサ１１ａによって一時的に記憶されるものである。この操作データＤ２は、ＣＰＵ１０で処理された後に破棄されるが、ＣＰＵ１０が処理する間隔（例えば約１／６０秒）よりも送信間隔（例えば５ｍｓ）の方が短いため、複数の操作データＤ２が記憶される場合がある。この操作データＤ２を参照することで、ＣＰＵ１０は直前の上記例えば約１／６０秒の間隔の間にユーザが行った操作種別（例えば、Ａボタン７２ｄの押下、Ｂボタン７２ｉの押下及び操作を行わなかった等）を判定することができる。
【００９２】
楽曲データＤ３は、例えば所定の時間長のフレーム（セクタ）に分割された１曲分のオーディオデータである。上述したように、本実施形態では、ユーザが複数種類の楽曲から音楽ゲームで採用する１の楽曲を選択することができる構成である。このため、複数種類の楽曲データＤ３のうちユーザに選択された楽曲データＤ３のみが光ディスク４等から読み出されて記憶される。この楽曲データＤ３に基づいて、ＤＳＰ１１ｃが音声データを再生する。なお、楽曲データＤ３がｍｉｄｉデータ等であってもよく、ＤＳＰ１１ｃが楽曲データＤ３に基づいて音声データを生成してもよい。画像生成用データＤ４（Ｄ４ａ〜Ｄ４ｃ）は、図８Ａ、図８Ｂ及び図１２〜図１４を用いて説明したようなゲーム画像を生成するためのデータである。画像生成用データＤ４ａは、基準オブジェクトＯ１を生成するためのデータであり、位置情報、向き情報及びオブジェクトのアクション内容を表す情報等である。画像生成用データＤ４ｂは、黒雲オブジェクトＯ２を生成するためのデータであり、例えば、黒雲オブジェクトＯ１の位置情報及び向き情報等を表すデータである。また、画像生成用データＤ４ｃは、指示オブジェクトＯ３を生成するためのデータであり、例えば表示する指示オブジェクトＯ３の種類（同時操作指示オブジェクトＯ３ａか単独操作指示オブジェクトＯ３ｂかの別）、位置情報、向き情報及びオブジェクトのアクション内容を表す情報等である。スコアデータＤ５は、正しい操作（適切な操作）が行われたとの判定が確定したときに所定値ずつ加算されていくユーザの現在の獲得スコアを示すデータである。
【００９３】
第１判定用フラグＤ６は、同時操作が正解となるタイミング（期間）において、Ｂボタン７２ｉの押下後にこの押下と略同時と判定可能なタイミングで（同時操作判定時間ｔ３が経過する前に）Ａボタン７２ｄが押下されるか否かを判定するためのフラグである。また、第２判定用フラグＤ７は、同時操作が正解となるタイミングにおいてＡボタン７２ｄの押下後にこの押下と略同時と判定可能なタイミングでＢボタン７２ｉが押下されるか否かを判定するためのフラグである。第３判定用フラグＤ８は、単独操作が正解となるタイミングにおいて、Ａボタン７２ｄの押下と略同時と判定可能なタイミングでＢボタン７２ｉの押下が検知されるか否かを判定するために用いられるフラグである。
【００９４】
なお、上述した音楽ゲームプログラムＰ１及びデータＤ１〜Ｄ８は、例えば、光ディスク４、フラッシュメモリ２７等から読み出されてプログラム記憶領域１００及びデータ記憶領域１０１に記憶されてもよく、無線通信モジュール１８を介して他の通信機器から受信して記憶されてもよい。なお、要求操作データＤ１及び楽曲データＤ３は光ディスク４、フラッシュメモリ１７及び他の通信機器には複数種類の全てのデータが記憶されている。そして、このうちユーザに選択された楽曲データＤ３と、この楽曲データＤ３に対応する要求操作データＤ１のみがデータ記憶領域１０１に記憶される。
【００９５】
以下に図１６〜図２０を用いて音楽ゲーム処理の詳細を説明する。図１６は、音楽ゲーム処理におけるメイン処理の一例を示すフローチャートである。音楽ゲーム処理は、ユーザによる音楽ゲームプログラムの起動の指示を受けてＣＰＵ１０によって実行開始される。なお、図１６〜図２０のフローチャートは単なる一例に過ぎない。従って、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよい。
【００９６】
まず、ＣＰＵ１０は、ユーザに複数の楽曲から１つの楽曲を選択させるための画像（曲選択用画像）をテレビ２の画面に表示するための表示処理を行う（Ｓ１）。なお、曲選択用画像には、音楽ゲームの終了の指示をガイドするための情報も表示されている。この後、ＣＰＵ１０は、音楽ゲームの終了の指示をユーザから受け付けたかどうかを判断する（Ｓ２）。そして、音楽ゲームの終了の指示をユーザから受け付けたと判断したときには（Ｓ２でＹＥＳ）、ＣＰＵＩ０は本メイン処理を終了させる。一方、音楽ゲームの終了の指示をユーザから受け付けないときには（Ｓ２でＮＯ）、ＣＰＵ１０はユーザから１つの楽曲の選択の指示を受け付けたかどうかを判断する（Ｓ３）。
【００９７】
ここで、１つの楽曲の選択の指示を受け付けていないと判断したときには（Ｓ３でＮＯ）、ＣＰＵ１０は処理をステップＳ２に戻す。一方、１つの楽曲の選択の指示を受け付けたと判断したときには（Ｓ３でＹＥＳ）、ＣＰＵ１０は楽曲データＤ３を光ディスク４等から読み込んでデータ記憶領域１０１に記憶させる（Ｓ４）。続いて、ＣＰＵ１０は、楽曲データＤ３に対応する要求操作データＤ１も光ディスク４等から読み込んでデータ記憶領域１０１に記憶させる（Ｓ５）。
【００９８】
続いて、ＣＰＵ１０は、例えば１フレーム毎にステップＳ６〜ステップＳ１０を実行して、ユーザの選択した楽曲を用いての音楽ゲームをユーザに提供するための処理を実行する。具体的には、ＣＰＵ１０は、ステップＳ４で読み出した楽曲データＤ３に基づいて楽曲を再生するようＤＳＰ１１ｃに指示する処理（サウンド出力処理）を実行する（Ｓ６）。なお、ここでは、楽曲データＤ３のうち再生すべきセクタデータに応じたサウンドを出力するための処理の実行が指示される。
【００９９】
そして、ＣＰＵ１０は、図８Ａ及び図８Ｂで示すようなゲーム画像を表示するための操作指示決定処理を実行する（Ｓ７）。操作指示決定処理は、要求操作データＤ１及び楽曲データＤ３の再生位置に基づいて、ユーザの操作タイミングが到来したときに表示すべき指示オブジェクトＯ１（同時操作指示オブジェクトＯ３ａ及び単独操作指示オブジェクトＯ３ｂの何れか）を決定するための処理である。この処理を具体的に説明する。本実施形態では、ＣＰＵ１０は、操作指示決定処理の初回実行時に基準オブジェクトＯ１と黒雲オブジェクトＯ２を表示するために画像生成用データＤ４ａ、Ｄ５ａを生成してデータ記憶領域１０１に記憶させる。そして、楽曲の再生開始時から一定期間毎（例えば一拍毎）にユーザに要求する操作内容が変わるため、ＣＰＵ１０は、一定期間が経過する直前に次の一定期間の操作内容に合致する種類の指示オブジェクトＯ３を表示するための処理を行う。なお、次の一定期間の操作内容が「操作なし」の場合には、指示オブジェクトＯ３の表示は行われない。図９の例で説明すると、３拍目の「操作なし」の期間が経過する直前に次の４拍目の操作内容である「同時操作」に合致する種類の指示オブジェクトＯ３（すなわち、同時操作指示オブジェクトＯ３ａ）を表示するための処理を行う。なお、指示オブジェクトＯ３の表示を決定したときに、ＣＰＵ１０は画像生成用データＤ４ｃを生成してデータ記憶領域１０１に記憶させる。そして、指示オブジェクトＯ３の表示位置が一定期間内において変化するように、ＣＰＵ１０は画像生成用データＤ４ｃの位置及び向き等を順次更新する。そして、ＣＰＵ１０は、指示オブジェクトＯ３が表示されてから一定期間経過した後に画像生成用データＤ４ｃを削除して、指示オブジェクトＯ３の表示を消去する。
【０１００】
この後、ＣＰＵ１０は操作内容判定処理を実行する（Ｓ８）。この操作内容判定処理において、ＣＰＵ１０は、ユーザの操作が適切であるか否かの判定を行うとともに、この判定結果に応じた演出内容を決定する。この操作内容判定処理についての詳細は図１７〜図２０を用いて後述する。なお、この操作内容判定処理においては、ＣＰＵ１０は判定結果に応じてユーザの獲得スコアを増加させる処理も行う。
【０１０１】
次に、ＣＰＵ１０は、ＧＰＵ１０を用いての描画処理を実行する（Ｓ９）。この描画処理では、上述のステップＳ７、Ｓ８で決定された内容に従って（画像生成用データＤ４に基づいて）ゲーム画像をＶＲＡＭ１１ｄに描画するよう、ＣＰＵ１０がＤＳＰ１１ｃに指示する。この後、ＣＰＵ１０は、楽曲データＤ３における全てのセクタデータのサウンドを出力したかどうかを判断し（Ｓ１０）、全てのセクタデータのサウンドを出力していないときには（Ｓ１０でＮＯ）、処理をステップＳ６に戻す。この様に、全てのセクタデータのサウンドを出力したと判断されるまでは、ステップＳ６〜Ｓ１０が繰り返し実行される。また、全てのセクタデータのサウンドを出力したと判断したときには（Ｓ１０でＹＥＳ）、ＣＰＵ１０はユーザの獲得スコア（スコアデータＤ５）に基づくゲーム結果を表示する（Ｓ１１）。この後、ＣＰＵ１０は本処理をステップＳ１に戻す。
【０１０２】
次に、図１７〜図２０を用いて、上述したステップＳ８における操作内容判定処理の一例を説明する。図１７は、操作内容判定処理の一例を示すフローチャート（その１）である。図１８は、操作内容判定処理の一例を示すフローチャート（その２）である。図１９は、ステップＳ２４、Ｓ４０において実行される同時操作判定処理の一例を示すフローチャートである。図２０は、ステップＳ４２において実行される単独操作判定処理の一例を示すフローチャートである。
【０１０３】
図１７を参照して、まず、初回の処理の際には第１判定用フラグＤ６、第２判定用フラグＤ７及び第３判定用フラグＤ８をオフにした後、ＣＰＵ１０はＡボタン７２ｄが押下されたか否かを操作データＤ２に基づいて判断する（Ｓ２１）。そして、Ａボタン７２ｄが押下されたと判断されたときには（Ｓ２１でＹＥＳ）、ＣＰＵ１０は第１判定用フラグＤ６がオンか否かを判断する（Ｓ２２）。なお、第１判定用フラグＤ６がオンのときとは、先にＢボタン７２ｉが押下されている場合（Ｂボタン７２ｉが押下され、かつこの押下から同時操作判定時間ｔ３の経過が後述のステップＳ３４において判定されていない場合）である。そして、第１判定用フラグＤ６がオンであると判断したときには（Ｓ２２でＹＥＳ）、ＣＰＵ１０は、第１判定用フラグＤ６をオフにするとともに、第１判定用フラグＤ６のオンから開始した計時を終了して（Ｓ２３）、同時操作判定処理を実行する（Ｓ２４）。この同時操作判定処理とは、ＣＰＵ１０が、Ａボタン７２ｄの押下が適切なタイミングで（Ｂボタン７２ｉと略同時であり、かつ同時操作期間ｔ２内に）行われたかを判定し、この判定結果に応じた演出内容を決定する処理である。この同時操作判定処理についての詳細については、図１９を用いて後述する。この後、ＣＰＵ１０は操作内容判定処理を終了させてメイン処理に処理を戻す。
【０１０４】
次に、第１判定用フラグＤ６がオンでないと判断したときには（Ｓ２２でＮＯ）、ＣＰＵ１０は、現時点が同時操作を正解とするタイミングであるか否かを判断する（Ｓ２５）。この現時点が同時操作を正解とするタイミングであるか否かの判断方法としては、例えば図９を用いて上述した方法を用いることができる。具体的には、例えば、ＣＰＵ１０は、楽曲データＤ１０の現在の再生位置（再生するサンプル数等、以下この再生するサンプル数を「再生サンプル数」と記載する）をタイミングＴ１（図９を参照）として取得し、このＴ１を中心とした期間ｔ１内に同時操作期間ｔ２が存在するかを、要求操作データＤ１を用いて判断する。すなわち、要求操作データＤ１は、例えば、各一定の期間に対応する再生サンプル数（一拍目に対応する再生サンプル数が０〜ｎ等というように）の情報を含む。そして、ＣＰＵ１０は、この各一定の期間に対応する再生サンプル数を参照して、タイミングＴ１から前後所定の数（期間ｔ１に対応する数）以内に同時操作期間ｔ２の再生サンプル数が存在するかを判断する。この判断結果が肯定であれば、ＣＰＵ１０は、現時点が同時操作を正解とするタイミングであると判断する。なお、この方法はあくまで一例であり、現時点が同時操作を正解とするタイミングであるか否かを他の方法を使用して判断してもよい。
【０１０５】
また、上述した判定方法と同様の方法は、後述のステップＳ２７及びステップＳ４３等における「現時点が同時操作を正解とするタイミングであるか否か」又は「現時点が単独操作を正解とするタイミングであるか否か」の判断にも使用される。なお、現時点が単独操作を正解とするタイミングであるか否かは、現在の再生位置をタイミングＴ２（図１０を参照）とし、このタイミングＴ２から前後所定の数（期間ｔ１に対応する数）以内に単独操作期間ｔ２ａの再生サンプル数が存在するかを判断する。
【０１０６】
そして、現時点が同時操作を正解とするタイミングであると判断したときには（Ｓ２５でＹＥＳ）、ＣＰＵ１０は第２判定用フラグＤ７をオンする（Ｓ２６）。このとき、ＣＰＵ１０は計時を開始（例えばフレーム数のカウントを開始）する。この後、ＣＰＵ１０は後述のステップＳ３７に処理を進める。一方、現時点が同時操作を正解とするタイミングでないと判断したときには（Ｓ２５でＮＯ）、ＣＰＵ１０は、現時点が単独操作を正解とするタイミングであるか否かを判断する（Ｓ２７）。この現時点が単独操作を正解とするタイミングであるか否かの判断方法としては、例えば図１０を用いて上述した方法を用いることができる。そして、現時点が単独操作を正解とするタイミングであると判断したときには（Ｓ２７でＹＥＳ）、ＣＰＵ１０は、Ａボタン７２ｄの押下を検知したタイミング（すなわち現時点）が許容期間内であるかどうかを判断する（Ｓ２８）。なお、許容期間とは、図１０を用いて説明したような、単独操作期間ｔ２ａのことである。現時点が許容期間内であるかどうかの判断は、例えば次のような方法で行う。ＣＰＵ１０は、現在の再生サンプル数を楽曲データＤ２の総サンプル数で割り、この算出した値と楽曲データＤ２の総拍数とを乗算して、現在何拍目を再生しているかを算出する。ＣＰＵ１０は、この算出した値で要求操作データＤ１を参照し、現在再生している拍に対応する操作内容を取得し、この操作内容が単独操作であれば、現時点が許容期間内であると判定する。
【０１０７】
なお、この方法はあくまで一例であるため、他の方法を採用して現時点が許容期間内であるかどうかを判断してもよい。例えば、上述したように、要求操作データＤ１における各一定期間に対応する再生サンプル数がデータ記憶領域１０１に記憶されているため、楽曲データＤ３における現在の再生サンプリング数が単独操作期間ｔ２ａ（図１０では９拍目）に対応するサンプル数に含まれるか否かで現時点が許容期間内であるかどうかを判断してもよい。また、後述のステップＳ６２における「後の操作ボタン７２の押下を検知したタイミングが許容期間内であるか否か」の判定についても本ステップと同様に行う。
【０１０８】
Ａボタン７２ｄの押下を検知したタイミング（すなわち現時点）が許容期間内であると判断したときには（Ｓ２８でＹＥＳ）、ＣＰＵ１０はスコアデータＤ５に所定値を加算する（Ｓ２９）。そして、ＣＰＵ１０は図１２を用いて上述したような一段階目演出に演出内容を決定する（Ｓ３０）。すなわち、ＣＰＵ１０は一段階目演出に対応するアクションを示すよう画像生成用データＤ４ａ，Ｄ４ｃを更新する。なお、演出内容が一段階目演出に決定されたときには、後のステップＳ９の描画処理において、基準オブジェクトＯ１と指示オブジェクトＯ３とに数フレームをかけて当該アクションを行わせるよう処理される。
【０１０９】
この様に、Ａボタン７２ｄの押下を検知したタイミングで一段階目演出が開始されるため、ユーザの操作と演出開始までのタイムラグを減らすことができる。この後、ＣＰＵ１０は、第３判定用フラグをオンする（Ｓ３１）。このとき、ＣＰＵ１０は計時を開始（例えばフレーム数のカウントを開始）する。そして、ＣＰＵ１０は後述のステップＳ３７に処理を進める。
【０１１０】
なお、現時点が単独操作を正解とするタイミングでないと判断したとき（Ｓ２７でＮＯ）、及びＡボタン７２ｄの押下を検知したタイミング（すなわち現時点）が許容期間内でないと判断したとき（Ｓ２８でＮＯ）には、ＣＰＵ１０は不適切なタイミングでＡボタン７２ｄが押下されたと判定する（Ｓ３２）。この場合には、例えば、不適切な操作が行われたことを表すような効果音を出力するように設定してもよい。この後、ＣＰＵ１０は、本操作内容判定処理を終了させ、メイン処理に処理を戻す。
【０１１１】
次に、ステップＳ２１でＡボタン７２ｄが押下されていないと判断されたときの処理を説明する。このときには（Ｓ２１でＮＯ）、ＣＰＵ１０は第１判定用フラグＤ６がオンか否かを判断する（Ｓ３３）。第１判定用フラグＤ６がオンであると判断したときには（Ｓ３３でＹＥＳ）、ＣＰＵ１０は、Ｂボタン７２ｉの押下から同時操作判定時間ｔ３を経過したかどうかを、第１判定用フラグＤ６をオンしてからの計時時間に基づいて判断する（Ｓ３４）。Ｂボタン７２ｉの押下から同時操作判定時間ｔ３を経過したと判断したときには（Ｓ３４でＹＥＳ）、ＣＰＵ１０はユーザが不適切な操作を行ったことを表す演出（失敗演出）を行うように決定する（Ｓ３５）。すなわち、ＣＰＵ１０は失敗演出に対応するアクションを示すよう画像生成用データＤ４ａ，Ｄ４ｃを更新する。なお、失敗演出に演出内容が決定されたときには、後のステップＳ９の描画処理において、基準オブジェクトＯ１と指示オブジェクトＯ３とに数フレームをかけて当該アクションを行わせるよう処理される。ここで、失敗演出は例えば不適切な操作を行ったことを表す音声の出力及び／又はアニメーション等の表示である。本実施形態では、基準オブジェクトＯ１が刀を振り下ろすアクションをし、このアクションによっても指示オブジェクトＯ３は倒されずに逃げ延びるというアクションを行うように、アニメーションを表示する。
【０１１２】
この様に、Ｂボタン７２ｉが押下された後（第１判定用フラグＤ６がオンしているときに）、この押下から同時操作判定時間ｔ３が経過する前にＡボタン７２ｄの押下がないときには、ユーザが不適切な操作を行った（同時操作が要求されているのに過って単独操作を行った）として、ＣＰＵ１０はステップＳ３５において失敗演出を決定する。なお、同時操作の失敗演出については、同時操作判定時間ｔ３の経過を待って行われるため、ユーザが先の操作（Ｂボタン７２ｉの押下）を行ってから演出開始までには若干のタイムラグが発生する。
【０１１３】
そして、ＣＰＵ１０は、第１判定用フラグＤ６をオフするとともに、第１判定用フラグＤ６のオンから開始した計時を終了する（Ｓ３６）。この後、ＣＰＵ１０は後述のステップＳ３７に処理を進める。
【０１１４】
一方、第１判定用フラグＤ６がオンでないと判断したとき（Ｓ３３でＮＯ）、Ｂボタン７２ｉの押下から同時操作判定時間ｔ３を経過していないと判断したとき（Ｓ３４でＮＯ）には、ＣＰＵ１０はステップＳ３５、Ｓ３６を実行することなく後述のステップＳ３７に処理を進める。
【０１１５】
図１８を参照して、ステップＳ３７においては、ＣＰＵ１０はＢボタン７２ｉが押下されたか否かを操作データＤ２に基づいて判断する（Ｓ３７）。そして、Ｂボタン７２ｉが押下されたと判断したときには（Ｓ３７でＹＥＳ）、ＣＰＵ１０は第２判定用フラグＤ７がオンであるか否かを判断する（Ｓ３８）。なお、第２判定用フラグＤ７がオンのときとは、先にＡボタン７２ｄが押下されている場合（Ａボタン７２ｄが押下され、かつこの押下から同時操作判定時間ｔ３の経過が後述のステップＳ４７において判定されていない場合）である。ここで、第２判定用フラグＤ７がオンであると判断したときには（Ｓ３８でＹＥＳ）、ＣＰＵ１０は、第２判定用フラグＤ７をオフするとともに、第２判定用フラグＤ７のオンから開始した計時を終了する（Ｓ３９）。そして、ＣＰＵ１０は同時操作判定処理を行う（Ｓ４０）。なお、同時操作判定処理とは、ＣＰＵ１０が、Ｂボタン７２ｉの押下が適切なタイミングで（Ａボタン７２ｄの押下と略同時であり、かつ同時操作期間ｔ２内に）行われたかを判定し、この判定結果に応じた演出内容を決定する処理である。この同時操作判定処理についての詳細については、図１９を用いて後述する。この後、ＣＰＵ１０は本操作内容判定処理を終了させメイン処理に処理を戻す。
【０１１６】
一方、第２判定用フラグがオンでないと判断したときには（Ｓ３８でＮＯ）、ＣＰＵ１０は第３判定用フラグＤ８がオンであるかどうかを判断する（Ｓ４１）。第３判定用フラグがオンであると判断したときに（Ｓ４１でＹＥＳ）、ＣＰＵ１０は単独操作判定処理を行う（Ｓ４２）。この単独操作判定処理とは、Ａボタン７２ｄの押下が、単独操作であるか（直後にＢボタン７２ｉが押下されないか）、同時操作であるか（直後にＢボタン７２ｉが押下されるか）を判定し、この判定結果に応じた演出内容を決定するための処理である。なお、単独操作判定処理についての詳細は図２０を用いて後述する。この後、ＣＰＵ１０は本操作内容判定処理を終了させメイン処理に処理を戻す。
【０１１７】
次に、ＣＰＵ１０がステップＳ４１でＮＯと判断したときの処理を説明する。第２判定用フラグがオンでないと判断したときには（Ｓ４１でＮＯ）、ＣＰＵ１０は、現時点が同時操作を正解とするタイミングであるか否かを判断する（Ｓ４３）。ここで、同時操作を正解とするタイミングであるときには（Ｓ４３でＹＥＳ）、Ｂボタン７２ｉの押下が同時操作における先の操作であるとして、ＣＰＵ１０は、第１判定用フラグＤ６をオンする（Ｓ４４）。このとき、ＣＰＵ１０は計時を開始する。そして、ＣＰＵ１０は本操作内容判定処理を終了させメイン処理に処理を戻す。
【０１１８】
同時操作を正解とするタイミングでないときには（Ｓ４３でＮＯ）、ＣＰＵ１０は不適切なタイミングでＢボタン７２ｉが押下されたと判定する（Ｓ４５）。この場合には、例えば、不適切な操作が行われたことを表すような効果音を出力するように設定してもよい。この後、ＣＰＵ１０は本操作内容判定処理を終了させメイン処理に処理を戻す。
【０１１９】
以下に、ＣＰＵ１０がステップＳ３７でＮＯと判断したときの処理を説明する。Ｂボタン７２ｉが押下されていないと判断したときには（Ｓ３７でＮＯ）、ＣＰＵ１０は第２判定用フラグＤ７がオンか否かを判断する（Ｓ４６）。第２判定用フラグＤ７がオンであると判断したとき、すなわち同時操作を正解とするタイミングで先にＡボタンが押下されているときには（Ｓ４６でＹＥＳ）、ＣＰＵ１０はＡボタン７２ｄの押下から同時操作判定時間ｔ３を経過したかどうかを、第２判定用フラグＤ７をオンしてからの計時時間に基づいて判断する（Ｓ４７）。Ａボタン７２ｄの押下から同時操作判定時間ｔ３を経過したと判断したときには（Ｓ４７でＹＥＳ）、ＣＰＵ１０はユーザが不適切な操作を行ったことを表す演出（失敗演出）を行うように決定する（Ｓ４８）。
【０１２０】
上記失敗演出は例えばステップＳ３５で上述したものと同様の演出である。この様に、Ａボタン７２ｄが押下されてから同時操作判定時間ｔ３が経過する前にＢボタン７２ｉの押下がないときには、ユーザが不適切な操作を行った（同時操作が要求されているのに過って単独操作を行った）として、ＣＰＵ１０はステップＳ４８において失敗演出を決定する。なお、この様に、同時操作の失敗演出については、同時操作判定時間ｔ３の経過を待って行われるため、ユーザが先の操作（Ａボタン７２ｄの押下）を行ってから演出開始までには若干のタイムラグが発生することになる。この後、ＣＰＵ１０は、第２判定用フラグＤ７をオフするとともに、第２判定用フラグＤ７のオンから開始していた計時を終了する（Ｓ４９）。この後、ＣＰＵ１０は本操作内容判定処理を終了させメイン処理に処理を戻す。
【０１２１】
一方、Ａボタン７２ｄの押下から同時操作判定時間ｔ３を経過していないと判断したときには（Ｓ４７でＮＯ）、ＣＰＵ１０は、上記ステップＳ４８、Ｓ４９を実行することなく、本操作内容判定処理を終了させメイン処理に処理を戻す。
【０１２２】
次に、ＣＰＵ１０がステップＳ４６でＮＯと判断したときの処理を説明する。第２判定用フラグＤ７がオンでないと判断したとき（Ｓ４６でＮＯ）、ＣＰＵ１０は第３判定用フラグＤ８がオンか否かを判断する（Ｓ５０）。第３判定用フラグＤ８がオンであると判断したときには（Ｓ５０でＹＥＳ）、ＣＰＵ１０は、Ａボタン７２ｄの押下から同時操作判定時間ｔ３が経過したか否かを、第３判定用フラグＤ８をオンしてからの計時時間に基づいて判断する（Ｓ５１）。ここで、Ａボタン７２ｄの押下から同時操作判定時間ｔ３が経過したと判断したときには（Ｓ５１でＹＥＳ）、同時操作が行われず正しく単独操作が行われたときであるため、ＣＰＵ１０は図１４を用いて上述したように成功二段階目演出を演出内容として決定する（Ｓ５２）。すなわち、ＣＰＵ１０は成功二段階目演出に対応するアクションを示すよう画像生成用データＤ４ａ，Ｄ４ｃを更新する。なお、成功二段階目演出に演出内容が決定されたときには、後のステップＳ９の描画処理において、基準オブジェクトＯ１と指示オブジェクトＯ３とに数フレームをかけて当該アクションを行わせるよう処理される。
【０１２３】
上述した様に、Ａボタン７２ｄの押下が検知されたタイミングで一段階目演出が開始され、この一段階目演出は単独操作が行われたと確定したときに操作の成功を表す成功二段階目演出に切り替えられる。これによって、Ａボタン７２ｄの押下から演出開始までのタイムラグを減らすことができながら、操作の適否に応じた演出を行うことができる。そして、ＣＰＵ１０は、第３判定用フラグＤ８をオフするとともに、第３判定用フラグＤ８のオンから開始した計時を終了して（Ｓ５３）、本操作内容判定処理を終了させメイン処理に処理を戻す。
【０１２４】
一方、Ａボタン７２ｄの押下から同時操作判定時間ｔ３が経過していないと判断したときには（Ｓ５１でＮＯ）、ＣＰＵ１０は、上記ステップＳ５２、Ｓ５３を実行することなく、本操作内容判定処理を終了させメイン処理に処理を戻す。
【０１２５】
次に、Ｓ５０でＮＯと判断したとき、すなわち第３判定用フラグＤ８がオンでないと判断したときの処理について説明する。このときには（Ｓ５０でＮＯ）、ＣＰＵ１０は何ら処理を行うことなく本操作内容判定処理を終了させメイン処理に処理を戻す。
【０１２６】
次に、図１９を参照して、同時操作判定処理を説明する。まず、ＣＰＵ１０は、先の操作ボタン７２の押下を検出したタイミングから同時操作判定時間ｔ３が経過しているか否かを、第１判定用フラグＤ７又は第２判定用フラグＤ７をオンしてからの計時時間に基づいて判断する（Ｓ６１）。なお、上記ステップＳ２４における同時操作判定処理では、Ｂボタン７２ｉの押下から同時操作判定時間ｔ３が経過しているか否かを判断し、上記ステップＳ４０における同時操作判定処理では、Ａボタン７２ｄの押下から同時操作判定時間ｔ３が経過しているか否かを判断する。そして、先の操作ボタン７２の押下を検出したタイミングから同時操作判定時間ｔ３が経過していないと判断したときには（Ｓ６１でＮＯ）、ＣＰＵ１０は後の操作ボタン７２の押下の検出タイミング（すなわち現時点）が許容期間内であるか否かを判断する（Ｓ６２）。この許容期間とは、同時操作期間ｔ２（図９の例では４拍目の期間）のことである。なお、上記ステップＳ２４における同時操作判定処理では、後の操作ボタン７２の押下とはＡボタン７２ｄの押下のことであり、上記ステップＳ４０における同時操作判定処理では、後の操作ボタン７２の押下とはＢボタン７２ｉのことである。
【０１２７】
後の操作ボタン７２の押下の検出タイミング（すなわち現時点）が許容期間内であると判断したときには（Ｓ６２でＹＥＳ）、ＣＰＵ１０は演出内容を成功演出に決定する（Ｓ６３）。すなわち、ＣＰＵ１０は、成功演出に対応するアクションを示すよう画像生成用データＤ４ａ，Ｄ４ｃを更新する。例えば、基準オブジェクトＯ１が刀を振り回すアクションに画像生成用データＤ４ａが更新され、指示オブジェクトＯ３が刀によって切断されるアクションに画像生成用データＤ４ｃを更新する。なお、成功演出に演出内容が決定されたときには、後のステップＳ９の描画処理において、基準オブジェクトＯ１と指示オブジェクトＯ３とに数フレームをかけて当該アクションを行わせるよう処理される。なお、成功演出は基準オブジェクトＯ１と指示オブジェクトＯ２に特定のアクションを実行させることに限定されない。成功演出とは、適切な操作を行ったことを表すことができれば、どのような内容であってもよく音声の出力等であってもよい。
【０１２８】
上述したように、本実施形態では、先の操作ボタン７２の押下の検出タイミングが許容期間でなくても後の操作ボタン７２の押下の検出タイミングが許容期間内であれば、適切な操作が行われたと判定される。これによって、同時操作が要求されるときに、要求される２種類の操作のタイミングが両方とも許容期間内でなくても、片方が許容期間内であればよいため、許容期間内に同時操作を行ったと判定されやすくなり操作性を向上させることができる。
【０１２９】
更に、先の操作ボタン７２の押下と後の操作ボタン７２の押下のうち後の操作ボタン７２の押下の検出タイミングを用いて許容期間内であるか否かが判断される。ここで、もし、先の操作ボタン７２の押下の検出タイミングを用いて許容期間内であるか否かを判断すると、後の操作ボタン７２の押下が検出されるまで先の操作ボタンの押下の検出タイミングを記憶しておき、後の操作ボタン７２の押下が検出されたときにこの検出タイミングが許容期間であったかを判断しなければならず処理が煩雑となる。本実施形態では、後の操作ボタン７２の押下の検出タイミングを用いて許容期間であるか否かを判断するため、先の操作ボタン７２の押下の検出タイミングを記憶しておかずとも、後の操作ボタン７２の押下が検出されたときに現時点が許容期間であるか否かを判断するだけで足り簡易な処理で判定を行うことができる。
【０１３０】
この後、ＣＰＵ１０は、スコアデータＤ５に所定値だけ加算して（Ｓ６４）、本同時操作判定処理及び操作内容判定処理を終了させてメイン処理に処理を戻す。
【０１３１】
次に、ステップＳ６１でＹＥＳと判断されたときの処理を説明する。先の操作ボタン７２の押下を検出したタイミングから同時操作判定時間ｔ３が経過していると判断したときには（Ｓ６１でＹＥＳ）、先の操作ボタン７２の押下と略同時に後の操作ボタン７２が押下されたとされず、ＣＰＵ１０は演出内容を失敗演出と決定する（Ｓ６５）。この失敗演出の内容及び本ステップにおける処理内容はステップＳ３５において上述した内容と同じであるため説明を省略する。この後、ＣＰＵ１０は本処理を終了させてメイン処理に処理を戻す。
【０１３２】
そして、ステップＳ６２でＮＯと判断されたときの処理を説明する。後の操作ボタン７２の押下の検出タイミング（すなわち現時点）が許容期間内でないと判断したときには（Ｓ６２でＮＯ）、許容期間内に同時操作を行うことができなかったとして、ＣＰＵ１０は、上述したステップＳ６５を実行して演出内容を失敗演出に決定する（Ｓ６５）。なお、この様に、同時操作が正解となるタイミングでは、Ａボタン７２ｄの押下が検出されてから直ぐに演出開始となる単独操作が正解となるタイミングとは異なり、後の操作ボタン７２の押下を検出するまで又は先の操作ボタン７２の押下から同時操作判定時間ｔ３が経過するまでは演出が開始されない。従って、ユーザが先の操作ボタン７２を押下してから演出が開始するまで若干のタイムラグがある。その後、本同時操作判定処理及び操作内容判定処理を終了させてメイン処理に処理を戻す。
【０１３３】
次に、図２０を参照して、単独操作判定処理を説明する。まず、ＣＰＵ１０は、第３判定用フラグＤ８をオフするとともに、この第３判定用フラグＤ８のオンから開始した計時を終了する（Ｓ７１）。そして、ＣＰＵ１０は、第３判定用フラグＤ８のオンから開始した計時時間に基づいて、Ａボタン７２ｄの押下の検出タイミングから同時操作判定時間ｔ３が経過したかどうかを判断する（Ｓ７２）。ここで、Ａボタン７２ｄの押下の検出タイミングから同時操作判定時間ｔ３が経過していないと判断したときには（Ｓ７２でＮＯ）、ユーザが誤って同時操作を行ったとして、ＣＰＵ１０は図１３を用いて説明したような失敗二段階目演出に演出内容を決定する（Ｓ７３）。具体的には、ＣＰＵ１０は画像生成用データＤ４ａ、Ｄ４ｃを失敗二段階目演出に対応するアクションを示すように更新する。このアクションは、例えば、図１３を用いて説明したように画像生成用データＤ４ａについては基準オブジェクトＯ１が刀を振り下ろした状態を維持するアクションであり、画像生成用データＤ４ｃについては指示オブジェクトＯ３が刀から逃げるアクションである。
【０１３４】
なお、失敗二段階目演出に演出内容が決定されたときには、後のステップＳ９の描画処理において、基準オブジェクトＯ１と指示オブジェクトＯ３とに数フレームをかけて当該アクションを行わせるよう処理される。
【０１３５】
この後、ＣＰＵ１０は、上記ステップＳ２９でスコアデータＤ５に加算したスコアをキャンセルするための処理、すなわちステップＳ２９に加算した所定値をスコアデータＤ５から減算する処理を行う（Ｓ７４）。この様に、単独操作が正解となるタイミングでは、Ａボタン７２ｄの押下が検出された時点で、Ａボタン７２ｄの押下から同時操作判定時間ｔ３の経過を待たずして一旦スコアを加算することで、Ａボタン７２ｄの押下から同時操作判定時間ｔ３が経過するまでの間にＢボタン７２ｉが押下されなかったときに（適切に単独操作を行ったときに）、迅速な処理を行うことができる。そして、Ａボタン７２ｄの押下から同時操作判定時間ｔ３の経過前にＢボタン７２ｉの押下があったときには（誤操作をしたときには）、一旦加算されたスコアをキャンセルすることで、ユーザが誤操作したにも関わらずスコアが確定的に加算されてしまうことを防止することができる。この後、ＣＰＵ１０は、本単独操作判定処理及び操作内容判定処理を終了させてメイン処理に処理を戻す。
【０１３６】
一方、ＣＰＵ１０は、Ａボタン７２ｄの押下の検出タイミングから同時操作判定時間ｔ３が経過していると判断したときには（Ｓ７２でＹＥＳ）、ユーザが正しく単独操作を行ったとして、ＣＰＵ１０は図１４を用いて説明したような成功二段階目演出に演出内容を決定する（Ｓ７５）。具体的には、ＣＰＵ１０は画像生成用データＤ４ａ、Ｄ４ｃを成功二段階目演出に対応するアクションを示すように更新する。このアクションは、例えば、図１３を用いて説明したように画像生成用データＤ４ａについては基準オブジェクトＯ１が刀を振り下ろした状態を維持するアクションであり、画像生成用データＤ４ｃについては指示オブジェクトＯ３が刀に切られるアクションである。
【０１３７】
なお、成功二段階目演出に演出内容が決定されたときには、後のステップＳ９の描画処理において、基準オブジェクトＯ１と指示オブジェクトＯ３とに数フレームをかけて当該アクションを行わせるよう処理される。この後、ＣＰＵ１０は、本単独操作判定処理及び操作内容判定処理を終了させてメイン処理に処理を戻す。
【０１３８】
図１７〜図２０を用いて操作内容判定処理の一例を説明したが、図９〜図１１で示した例では、どのように操作内容判定処理が実行されるかを説明する。まず、図９の例について説明する。図９のような同時操作が正解となるタイミングで先にＡボタン７２ｄが押下されたとき（及びＡボタン７２ｄとＢボタン７２ｉ全く同時に押下されたとき）には、ステップＳ２１（Ｓ２１でＹＥＳ）、ステップＳ２２（Ｓ２２でＮＯ）、ステップＳ２５（Ｓ２５でＹＥＳ）、ステップＳ２６が、実行される。
【０１３９】
この後に、Ａボタン７２ｄの押下から同時操作判定時間ｔ３が経過するまでにＢボタン７２ｉが押下されたときには、次のステップが実行される。すなわち、ステップＳ３７（Ｓ３７でＹＥＳ）、Ｓ３８（Ｓ３８でＹＥＳ）、ステップＳ３９及びＳ４０が実行される。なお、同時操作判定時間ｔ３が経過した直後のフレームの処理でＢボタン７２ｉの押下が検出されたときも同様の処理が実行される。もっとも、このときには、同時操作判定処理（Ｓ４０）において、ステップ６１でＮＯと判断されて、ステップＳ６５が実行される。
【０１４０】
一方、Ａボタン７２ｄの押下から同時操作判定時間ｔ３が経過してもＢボタン７２ｉの押下がないときには、次のステップが実行される。すなわち、ステップＳ３７（Ｓ３７でＮＯ）、ステップＳ４６（Ｓ４６でＹＥＳ）、ステップＳ４７（Ｓ４７でＹＥＳ）、ステップＳ４８及びＳ４９が実行される。
【０１４１】
一方、図９の例で先にＢボタン７２ｉが押下されたときには、ステップＳ２１（Ｓ２１でＮＯ）、ステップＳ３３（Ｓ３３でＮＯ）、ステップＳ３７（Ｓ３７でＹＥＳ）、ステップＳ３８（Ｓ３８でＮＯ）、ステップＳ４１（Ｓ４１でＮＯ）、ステップＳ４３（Ｓ４３でＹＥＳ）、ステップＳ４４が実行される。
【０１４２】
この後に、Ｂボタン７２ｉの押下から同時操作判定時間ｔ３が経過するまでにＡボタン７２ｄが押下されたときには、次のステップが実行される。すなわち、ステップＳ２１（Ｓ２１でＹＥＳ）、ステップＳ２２（Ｓ２２でＹＥＳ）、ステップＳ２３及びステップＳ２４が実行される。なお、同時操作判定時間ｔ３が経過した直後のフレームの処理でＡボタン７２ｄの押下が検出されたときも同様の処理が実行される。もっとも、このときには、同時操作判定処理（Ｓ２４）において、ステップ６１でＮＯと判断されて、ステップＳ６５が実行される。
【０１４３】
一方、Ｂボタン７２ｉの押下から同時操作判定時間ｔ３が経過してもＡボタン７２ｄの押下がないときには、ステップＳ２１（Ｓ２１でＮＯ）、ステップＳ３３（Ｓ３３でＹＥＳ）、ステップＳ３４（Ｓ３４でＹＥＳ）、ステップＳ３５及びＳ３６が実行される。
【０１４４】
次に、図１０の例について説明する。この例では、単独操作が正解となるタイミングにＡボタン７２ｄが押下されたときであるが、ステップＳ２１（Ｓ２１でＹＥＳ）、ステップＳ２２（Ｓ２２でＮＯ）、ステップＳ２５（Ｓ２５でＮＯ）、ステップＳ２７（Ｓ２７でＹＥＳ）、ステップＳ２８が実行される。なお、図１０の上側矢印の例（単独操作期間ｔ２ａ外での押下）では、ステップＳ２８でＮＯとなりステップＳ３２が実行される。一方、図１０の下側矢印の例（単独操作期間ｔ２ａ内での押下）では、ステップＳ２８でＹＥＳとなり、ステップＳ２９〜Ｓ３１が実行される。
【０１４５】
この後に、Ａボタン７２ｄの押下から同時操作判定時間ｔ３が経過するまでにＢボタン７２ｉが押下されなかったときには、ステップＳ３７（Ｓ３７でＮＯ）、ステップＳ４６（Ｓ４６でＮＯ）、ステップＳ５０（Ｓ５０でＹＥＳ）、ステップＳ５１（Ｓ５１でＹＥＳ）、ステップＳ５２及びＳ５３が実行される。
【０１４６】
これに対して、Ａボタン７２ｄの押下から同時操作判定時間ｔ３が経過する前にＢボタン７２ｉが押下されたときには、ステップＳ３７（Ｓ３７でＹＥＳ）、ステップＳ３８（Ｓ３８でＮＯ）、ステップＳ４１（Ｓ４１でＹＥＳ）及びステップＳ４２が実行される。なお、同時操作判定時間ｔ３が経過した直後のフレームの処理でＢボタン７２ｉの押下が検出されたときも同様の処理が実行される。もっとも、このときには、単独操作判定処理（Ｓ４２）において、ステップ７２でＹＥＳと判断されて、ステップＳ７５が実行される。
【０１４７】
次に図１１の例について説明する。図１１の例では、Ｂボタン７２ｉが不適切なタイミングで操作されたときには、ステップＳ３７（Ｓ３７でＹＥＳ）、ステップＳ３８（Ｓ３８でＮＯ）、ステップＳ４１（ステップＳ４１でＮＯ）、ステップＳ４３（Ｓ４３でＮＯ）、及びステップＳ４５が実行される。また、Ａボタン７２ｄが不適切なタイミングで操作されたときには、ステップＳ２１（Ｓ２１でＹＥＳ）、ステップＳ２２（Ｓ２２でＮＯ）、ステップＳ２５（Ｓ２５でＮＯ）、ステップＳ２７（Ｓ２７でＮＯ）、ステップＳ３２が実行される。
【０１４８】
上述したように、本実施形態では、２つの操作ボタン７２（Ａボタン７２ｄ及びＢボタン７２ｉ）の操作タイミングが、多少ずれても同時操作を行ったと判定される。すなわち、Ａボタン７２ｄ及びＢボタン７２ｉの操作のうち先の操作から同時操作判定時間ｔ３が経過するまでに、後の操作を行えば同時操作を行ったことになる。この様に、略同時と判定可能な程度のずれが操作タイミングに存在しても、同時操作を行ったと判定されることができ、ユーザは厳密に同時に２つの操作ボタン７２の操作を行うことに留意しなくてもよくなる。
【０１４９】
更に、同時操作が正解となるタイミングにおいて、２つの操作ボタン７２の操作のうちの後で行われた操作（後の操作）のみが許容期間内（同時操作期間ｔ２内）に検出されれば、同時操作期間ｔ２内に同時操作を行ったと判断される。これによって、厳密に同時に２つの操作ボタン７２の操作を行うことに留意しなくてもよいばかりか、後の操作を許容期間内に行うことに留意すればよくなり、ユーザの操作の快適性が向上する。ユーザは同時操作が要求されていても片方の操作だけでも許容期間内に行うことができれば自己の操作が適切だったと感じる傾向があるため、この様な構成を採用することで、ユーザが適切な操作を行ったと感じているにもかかわらず、操作が不適切であると判定されるという不都合を解消することができる。
【０１５０】
また、本実施形態では、後の操作のみが許容期間内に検出されれば適切な操作を行ったと判断される。ここで、２つの操作ボタン７２の操作のうちの先に行われた操作（先の操作）の検出タイミングが許容期間内であるかを判定すると、先の操作の検出タイミングを記憶する必要が生じ、また、後の操作があったときに、記憶している先の操作の検出タイミングが許容期間内であるか否かを判断するという比較的複雑な処理を行う必要がある。これに対して、本実施形態では、後の操作があった時点で、現時点が許容期間内にあるかどうかを判断するだけの比較的簡易な処理で適切なタイミングで操作が行われたか否かを判定することができる。
【０１５１】
上記実施形態の変形例を以下に記載する。
【０１５２】
（１）本実施形態では、同時操作が許容期間内に行われたか否かを後の操作の検出タイミングを用いて判定しているが、これに代えて先の操作の検出タイミングを用いて判定してもよい。
【０１５３】
（２）本実施形態では、単独操作はＡボタン７２ｄの押下であるが、Ａボタン７２ｄ及びＢボタン７２ｉの何れかの押下であってもよい。また、同時操作及び単独操作は、何れも操作子（操作ボタン７２）の押下であるが、操作は操作子の押下に限定されない。例えば、スティック形状の操作子であれば操作子の傾倒であってもよい。また、操作は、操作子の操作に限定されず、例えば、画面の所定位置をポインティングする操作（例えば、タッチパネルの所定位置をタッチする操作や、テレビ３の画面の所定位置にコントローラ等を向ける操作等を含む）であってもよい。
【０１５４】
（３）本実施形態では、同時操作を２種類の操作（Ａボタン７２ｄの押下と、Ｂボタン７２ｉの押下）を略同時に行う操作として説明したが、３種類以上の操作を略同時に行う操作であってもよい。この場合には、何れか１種類の操作が許容期間内に行われること、及び３種類以上の操作のうち最先に行われた操作が検出されてから全ての操作が同時操作判定時間ｔ３内に行われることを、適切なタイミングで同時操作を行ったことの判定要件として採用すればよい。
【０１５５】
（４）本実施形態では、単独操作と同時操作の２つの操作を行うことをユーザに要求しているが、同時操作のみをユーザに要求する構成であってもよい。
【０１５６】
（５）本実施形態では、音楽ゲームプログラムにおいて本発明を適用したが、必ずしも音楽ゲームプログラムに採用しなくてもよい。すなわち、楽曲に合わせて操作を要求しない他のゲームプログラムに適用してもよい。また、ゲームプログラムの他のプログラムにも採用することができる。
【０１５７】
（６）また、本実施形態では、据置型のゲーム装置に本発明を適用した例を説明したが、本発明は、携帯型ゲーム装置や、携帯電話や、一般的なパーソナルコンピュータ等の任意の情報処理装置に適用することができる。
【０１５８】
（７）音楽ゲーム処理のうち一部の処理がサーバに分担されてもよい。
【符号の説明】
【０１５９】
１…ゲームシステム
２…テレビ
２ａ…スピーカ
３…ゲーム装置
４…光ディスク
７…コントローラ
７１…ハウジング
７２…操作部
７３…コネクタ
７４…撮像情報演算部
７４１…赤外線フィルタ
７４２…レンズ
７４３…撮像素子
７４４…画像処理回路
７５…通信部
７５１…マイコン
７５２…メモリ
７５３…無線モジュール
７５４…アンテナ
７００…基板
７０１…加速度センサ
７０２…ＬＥＤ
７０４…バイブレータ
７０７…サウンドＩＣ
７０８…アンプ
１０…ＣＰＵ
１１…システムＬＳＩ
１１ａ…入出力プロセッサ
１１ｂ…ＧＰＵ
１１ｃ…ＤＳＰ
１１ｄ…ＶＲＡＭ
１１ｅ…内部メインメモリ
１２…外部メインメモリ
１３…ＲＯＭ／ＲＴＣ
１４…ディスクドライブ
１５…ＡＶ−ＩＣ
１６…ＡＶコネクタ
１７…フラッシュメモリ
１８…無線通信モジュール
１９…無線コントローラモジュール
２０…拡張コネクタ
２１…メモリカード用コネクタ
２２、２３…アンテナ
２４…電源ボタン
２５…リセットボタン
２６…イジェクトボタン
８…マーカ
【図１】
0005702585.tif 000002
【図２】
0005702585.tif 000003
【図３】
0005702585.tif 000004
【図４】
0005702585.tif 000005
【図５】
0005702585.tif 000006
【図６】
0005702585.tif 000007
【図７】
0005702585.tif 000008
【図８Ａ】
0005702585.tif 000009
【図８Ｂ】
0005702585.tif 000010
【図９】
0005702585.tif 000011
【図１０】
0005702585.tif 000012
【図１１】
0005702585.tif 000013
【図１２】
0005702585.tif 000014
【図１３】
0005702585.tif 000015
【図１４】
0005702585.tif 000016
【図１５】
0005702585.tif 000017
【図１６】
0005702585.tif 000018
【図１７】
0005702585.tif 000019
【図１８】
0005702585.tif 000020
【図１９】
0005702585.tif 000021
【図２０】
0005702585.tif 000022