(57)【特許請求の範囲】
【請求項１】
加速度センサを含む操作手段を備える音出力装置の音出力プログラムであって、
前記音出力装置のプロセッサを、
前記加速度センサの出力に基づいて前記操作手段の振り動作を検出する振り動作検出手段、
前記振り動作検出手段によって振り動作が検出された後に、前記加速度センサの出力に基づいて当該振り動作が終了したかどうかを判断する振り動作終了判断手段、
前記振り動作終了判断手段によって振り動作が終了したと判断した後の前記加速度センサの出力に基づいて前記操作手段の姿勢を検出する姿勢検出手段、および
前記姿勢検出手段の検出結果に応じて、記憶手段に記憶された音色データに基づく音を出力する音出力手段として機能させる、音出力プログラム。
【請求項２】
前記加速度センサは多軸加速度センサであり、
前記音出力プログラムは、前記プロセッサを、前記多軸加速度センサの２つの軸についての加速度に基づいて前記振り動作の方向を判定する方向判定手段としてさらに機能させ、
前記姿勢検出手段は、前記方向判定手段の判定結果が縦方向を示すとき、前記２つの軸に直交する軸の加速度に基づいて前記操作手段と水平面との縦方向の傾きを検出する縦方向傾き検出手段を含み、
前記音出力手段は、前記縦方向傾き検出手段によって検出された傾きに従う縦方向の位置に応じた音色データを記憶手段から読み出す、請求項１記載の音出力プログラム。
【請求項３】
前記音出力手段は、前記方向判定手段の判定結果が右方向を示すとき、当該右方向に応じた音色データを記憶手段から読み出し、前記方向判定手段の判定結果が左方向を示すとき、当該左方向に応じた音色データを記憶手段から読み出す、請求項１または２記載の音出力プログラム。
【請求項４】
前記音出力装置は表示手段をさらに備え、
前記音出力プログラムは、前記プロセッサを、前記振る動作を誘導する誘導画面を前記表示手段に表示する誘導画面表示手段として機能させ、
前記方向判定手段の判定結果が示す方向は、前記誘導画面における方向に対応する、請求項２または３記載の音出力プログラム。
【請求項５】
加速度センサを含む操作手段を備える音出力装置であって、
前記加速度センサの出力に基づいて前記操作手段の振り動作を検出する振り動作検出手段、
前記振り動作検出手段によって振り動作が検出された後に、前記加速度センサの出力に基づいて当該振り動作が終了したかどうかを判断する振り動作終了判断手段、
前記振り動作終了判断手段によって振り動作が終了したと判断した後の前記加速度センサの出力に基づいて前記操作手段の姿勢を検出する姿勢検出手段、および
前記姿勢検出手段の検出結果に応じて、記憶手段に記憶された音色データに基づく音を出力する音出力手段を備える、音出力装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は音出力プログラムおよび音出力装置に関し、特にたとえば、加速度センサを含む操作手段の振り動作に応じて楽器の音を出力する、音出力プログラムおよび音出力装置に関する。
【背景技術】
【０００２】
この種の背景技術の一例が特許文献１に開示される。この特許文献１によれば、ドラム・スティックの一端部に３つの加速度センサが取り付けられ、Ｘ，Ｙ，Ｚの３方向の加速度が検出される。また、各方向に対応して異なる楽器の音が割り当てられる。したがって、加速度センサの出力から振る動作を検出して、対応する楽器の音を出力することができる。
【０００３】
また、背景技術の他の例が特許文献２に開示される。この特許文献２によれば、スティックの把持部に角度検出器が組み込まれる。この角度検出器を構成する複数の水銀スイッチのオン／オフ状態に基づいて角度検出器の地面に対する角度、すなわちスティックの振り上げ角度を検出し、この検出結果に対応した音高データを楽音信号形成回路へ出力する。
【特許文献１】特開昭６３−１３２２９５号
【特許文献２】特開昭６３−１９２０９６号
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１に記載の技術では、１つの振り方向に対して、１つの音色しか出力することができないため、スティックのような操作具の振り方が音色の出力に関連付けされることがない。このため、操作が単調になる恐れがある。
【０００５】
また、特許技術文献２に記載の技術では、スティックの振り上げ角度（スティックの傾き）を水銀スイッチで検出するため、コストと、水銀の使用による危険性とを考慮すると、現実的な技術とは言えない。
【０００６】
それゆえに、この発明の主たる目的は、新規な、音出力プログラムおよび音出力装置を提供することである。
【０００７】
また、この発明の他の目的は、ユーザの振り動作に応じて出力される音を楽しむことができる、音出力プログラムおよび音出力装置を提供することである。
【課題を解決するための手段】
【０００８】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【０００９】
請求項１の発明は、加速度センサを含む操作手段を備える音出力装置の音出力プログラムであって、音出力装置のプロセッサを、振り動作検出手段、振り動作終了判断手段、姿勢検出手段、および音出力手段として機能させる。振り動作検出手段は、加速度センサの出力に基づいて操作手段の振り動作を検出する。振り動作終了判断手段は、振り動作検出手段によって振り動作が検出された後に、加速度センサの出力に基づいて当該振り動作が終了したかどうかを判断する。姿勢検出手段は、振り動作終了判断手段によって振り動作が終了したと判断した後の加速度センサの出力に基づいて操作手段の姿勢を検出する。音出力手段は、姿勢検出手段の検出結果に応じて、記憶手段に記憶された音色データに基づく音を出力する。
【００１０】
請求項１の発明では、音出力プログラムは、加速度センサ（７４）を含む操作手段（２２）を備える音出力装置（１２）に組み込まれる。この音出力プログラムは、音出力装置のプロッサ（３６）を、振り動作検出手段（３６，Ｓ２３，Ｓ４３，Ｓ６１，Ｓ６３，Ｓ６５，Ｓ６７，Ｓ６９，Ｓ９５，Ｓ９９）、振り動作終了判断手段（３６，Ｓ２７，Ｓ４７，Ｓ６９，Ｓ１０５）、姿勢検出手段（３６，Ｓ７１）および音出力手段（３６，Ｓ２９，Ｓ４９，Ｓ７３，Ｓ７５，Ｓ１０９，Ｓ１１１）として機能させる。振り動作検出手段は、加速度センサの出力に基づいて操作手段の振り動作を検出する。たとえば、横方向（左右）の振り動作または縦方向（上下）の振り動作が検出される。振り動作終了判断手段は、振り動作検出手段によって振り動作が検出された後に、加速度センサの出力に基づいて当該振り動作が終了したかどうかを判断する。たとえば、加速度センサからの出力の変化を検出し、変化の方向が変わらない場合には、振り動作は終了していないと判断する。一方、加速度センサの出力の変化が無ければ、つまり加速度センサの出力が一定値またはほぼ一定値となれば、振り動作は終了したと判断する。姿勢検出手段は、振り動作終了判断手段によって振り動作が終了したと判断した後の加速度センサの出力に基づいて操作手段の姿勢を検出する。たとえば、振り動作における操作手段の位置（高さ）を検出する。音出力手段は、姿勢検出手段の検出結果に応じて、記憶手段に記憶された音色データに基づく音を出力する。たとえば、操作手段の位置に応じた音が出力される。
【００１１】
請求項１の発明によれば、操作手段の振り方に応じた音を出力するので、ユーザの振り動作に応じて出力される音を楽しむことができる。また、操作手段の振り方に応じて異なる音が出力されるため、ユーザが実際の楽器を演奏しているような感覚を味わうことができる。
【００１２】
請求項２の発明は請求項１に従属し、加速度センサは多軸加速度センサであり、音出力プログラムは、プロセッサを、多軸加速度センサの２つの軸についての加速度に基づいて振り動作の方向を判定する方向判定手段としてさらに機能させ、姿勢検出手段は、方向判定手段の判定結果が縦方向を示すとき、２つの軸に直交する軸の加速度に基づいて操作手段と水平面との縦方向の傾きを検出する縦方向傾き検出手段を含み、音出力手段は、縦方向傾き検出手段によって検出された傾きに従う縦方向の位置に応じた音色データを記憶手段から読み出す。
【００１３】
請求項２の発明では、また、加速度センサは多軸加速度センサである。音出力プログラムは、音出力装置のプロセッサを、方向判定手段（３６、Ｓ２１，Ｓ２３，Ｓ２５，Ｓ４１，Ｓ４３，Ｓ４５，Ｓ６１，Ｓ６３，Ｓ６５，Ｓ６７，Ｓ６９）としてさらに機能させる。方向判定手段は、多軸加速度センサの２つの軸（２２のｘ軸，ｙ軸）についての加速度に基づいて振り動作の方向を判定する。縦方向傾き検出手段（３６，Ｓ７１）は、方向判定手段の判定結果が縦方向を示すとき（Ｓ６９で“ＹＥＳ”）、２つの軸（ｘ軸，ｙ軸）に直交する軸（ｚ軸）の加速度に基づいて操作手段と水平面との縦方向の傾きを検出する。音出力手段は、縦方向傾き検出手段によって検出された傾きに従う縦方向の位置に応じた音色データを記憶手段から読み出す。たとえば、縦方向に操作手段を振った場合には、振り終わりの操作手段の傾きに応じて操作手段の縦方向の位置（高さ）が判断され、その高さに応じた音色の音が出力される。
【００１４】
請求項２の発明によれば、操作手段を縦方向に振る場合には、その振り終わりの位置に応じた音を出力することができる。
【００１５】
請求項３の発明は請求項１または２に従属し、音出力手段は、方向判定手段の判定結果が右方向を示すとき、右方向に応じた音色データを記憶手段から読み出し、方向判定手段の判定結果が左方向を示すとき、左方向に応じた音色データを記憶手段から読み出す。
【００１６】
請求項３の発明では、音出力手段は、方向判定手段の判定結果が右方向を示すとき、右方向に応じた音色データを記憶手段から読み出す。一方、音出力手段は、方向判定手段の判定結果が左方向を示すとき、左方向に応じた音色データを記憶手段から読み出す。つまり、音出力手段によって、右方向の振り動作または左方向の振り動作に応じた音が出力される。
【００１７】
なお、かかる場合には、振り終わりの姿勢は関係ないため、姿勢検出手段による処理は実行されない。
【００１８】
請求項３の発明によれば、操作手段の左右の振り分けに応じた音を出力することができる。
【００１９】
請求項４の発明は請求項２または３に従属し、音出力装置は表示手段をさらに備え、音出力プログラムは、プロセッサを、振る動作を誘導する誘導画面を表示手段に表示する誘導画面表示手段として機能させ、方向判定手段の判定結果が示す方向は、誘導画面における方向に対応する。
【００２０】
請求項４の発明では、音出力プログラムは、音出力装置のプロセッサを、誘導画面表示手段（３６、Ｓ３）としてさらに機能させる。誘導画面表示手段は、振る動作を誘導する誘導画面（１００）を表示手段に表示する。方向判定手段の判定結果が示す方向（縦、右または左）は、誘導画面における方向に対応する。たとえば、振り動作の上下左右が誘導画面の上下左右に対応する。
【００２１】
請求項４の発明によれば、振り動作の方向と誘導画面の方向とが対応するので、たとえば、誘導画面の上下左右に楽器の画像を表示しておけば、プレイヤは、その楽器の画像を見て操作手段の振り動作によって、所望の楽器を演奏することができる。つまり、振り動作に応じた音を楽しむことができる。
【００２２】
請求項５の発明は、加速度センサを含む操作手段を備える音出力装置であって、振り動作検出手段、振り動作終了判断手段、姿勢検出手段、および音出力手段を備える。振り動作検出手段は、加速度センサの出力に基づいて操作手段の振り動作を検出する。振り動作終了判断手段は、振り動作検出手段によって振り動作が検出された後に、加速度センサの出力に基づいて当該振り動作が終了したかどうかを判断する。姿勢検出手段は、振り動作終了判断手段によって振り動作が終了したと判断した後の加速度センサの出力に基づいて操作手段の姿勢を検出する。音出力手段は、姿勢検出手段の検出結果に応じて、記憶手段に記憶された音色データに基づく音を出力する。
【００２３】
請求項５の発明においても、請求項１の発明と同様に、ユーザの振り動作に応じて出力される音を楽しむことができる。
【発明の効果】
【００２４】
この発明によれば、操作手段の振り方に応じた音を出力するので、ユーザの振り動作に応じて出力される音を楽しむことができる。また、操作手段の振り方に応じて異なる音が出力されるため、ユーザが実際の楽器を演奏しているような感覚を味わうことができる。
【００２５】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【００２６】
図１を参照して、この発明の一実施例であるゲームシステム１０は、ビデオゲーム装置１２を含む。ビデオゲーム装置１２は、音楽演奏プログラム（ゲームプログラム）が組み込まれることにより、音楽演奏装置（音出力装置）として機能する。このビデオゲーム装置１２は、略立方体のハウジング１４を含み、ハウジング１４の上端には光ディスクドライブ１６が設けられる。光ディスクドライブ１６には、ゲームプログラム等を記憶した情報記憶媒体の一例である光ディスク１８が装着される。ハウジング１４の前面には複数の（実施例では４つの）コネクタ２０が設けられる。これらコネクタ２０は、ケーブル（図示せず）または受信ユニット２４を介して、有線または無線によって、コントローラ２２をビデオゲーム装置１２に接続するためのものである。図１に示すように、この実施例では、コネクタ２０に受信ユニット２４が接続され、受信ユニット２４を介して、無線でコントローラ２２がビデオゲーム装置１２に接続される。コントローラ２２の詳細については後述する。
【００２７】
なお、この実施例では、ビデオゲーム装置１２とコントローラ２２との間では無線通信を実行するため、本来的には「接続」の用語を用いるべきではない。しかしながら、ビデオゲーム装置１２とコントローラ２２との間での通信可能な連係状態を表す用語として、有線通信の場合の用語を借りて、便宜上「接続」と表現することとする。
【００２８】
また、ビデオゲーム装置１２のハウジング１４の前面であり、コネクタ２０の下方には、１つまたは複数の（この実施例では２つの）メモリスロット２８が設けられる。このメモリスロット２８にはメモリカード３０が挿入される。メモリカード３０は、光ディスク１８から読み出したゲームプログラム等をローディングして一時的に記憶したり、このゲームシステム１０を利用してプレイしたゲームのゲームデータ（ゲームの結果データまたは途中データ）を保存（セーブ）しておいたりするために利用される。
【００２９】
さらに、ビデオゲーム装置１２のハウジング１４の後面には、ＡＶケーブルコネクタ（図示せず）が設けられ、そのコネクタを用いて、ＡＶケーブル３２を通してビデオゲーム装置１２にモニタ３４を接続する。このモニタ３４は典型的にはカラーテレビジョン受像機であり、ＡＶケーブル３２は、ビデオゲーム装置１２からの映像信号をカラーテレビのビデオ入力端子に入力し、音声信号を音声入力端子に入力する。したがって、カラーテレビ（モニタ）３４の画面上にたとえば３次元（３Ｄ）ビデオゲームのゲーム画像が表示され、左右のスピーカ３４ａからゲーム音楽や効果音などのステレオゲーム音声が出力される。
【００３０】
このゲームシステム１０において、ユーザまたはプレイヤがゲーム（または他のアプリケーション）をプレイするために、ユーザはまずビデオゲーム装置１２の電源をオンし、次いで、ユーザはビデオゲーム（もしくはプレイしたいと思う他のアプリケーション）をストアしている適宜の光ディスク１８を選択し、その光ディスク１８をビデオゲーム装置１２のディスクドライブ１６にローディングする。応じて、ビデオゲーム装置１２がその光ディスク１８にストアされているソフトウェアに基づいてビデオゲームもしくは他のアプリケーションを実行し始めるようにする。ユーザはビデオゲーム装置１２に入力を与えるためにコントローラ２２を操作する。たとえば、入力手段２６のどれかを操作することによってゲームもしくは他のアプリケーションをスタートさせる。入力手段２６の他のものを動かすことによって、動画オブジェクト（プレイヤオブジェクト）を異なる方向に移動させ、または３Ｄのゲーム世界におけるユーザの視点（カメラ位置）を変化させることができる。
【００３１】
図２は図１実施例のビデオゲームシステム１０の電気的な構成を示すブロック図である。ビデオゲーム装置１２には、ＣＰＵ３６が設けられる。このＣＰＵ３６は、ビデオゲーム装置１２の全体的な制御を担当する。ＣＰＵ３６は、ゲームプロセッサとして機能し、このＣＰＵ３６には、バスを介して、メモリコントローラ３８が接続される。メモリコントローラ３８は主として、ＣＰＵ３６の制御の下で、バスを介して接続されるメインメモリ４０の書込みや読出しを制御する。このメモリコントローラ３８にはＧＰＵ(Graphics Processing Unit) ４２が接続される。
【００３２】
ＧＰＵ４２は、描画手段の一部を形成し、たとえばシングルチップＡＳＩＣで構成され、メモリコントローラ３８を介してＣＰＵ３６からのグラフィクスコマンド(作画命令)を受け、そのコマンドに従って、ジオメトリユニット４４およびレンダリングユニット４６によって３Ｄのゲーム画像を生成する。つまり、ジオメトリユニット４４は、３次元座標系の各種オブジェクト（複数のポリゴンで構成されている。そして、ポリゴンとは少なくとも３つの頂点座標によって定義される多角形平面をいう。）の回転，移動，変形等の座標演算処理を行う。レンダリングユニット４６は、各種オブジェクトの各ポリゴンにテクスチャ（模様画像）を貼り付けるなどの画像生成処理を施す。したがって、ＧＰＵ４２によって、ゲーム画面上に表示すべき３Ｄの画像データが作成され、その画像データがフレームバッファ４８内に記憶される。
【００３３】
なお、ＧＰＵ４２が作画コマンドを実行するにあたって必要なデータ（プリミティブまたはポリゴンやテクスチャ等）は、ＧＰＵ４２がメモリコントローラ３８を介して、メインメモリ４０から入手する。
【００３４】
フレームバッファ４８は、たとえばラスタスキャンモニタ３４の１フレーム分の画像データを描画（蓄積）しておくためのメモリであり、ＧＰＵ４２によって１フレーム毎に書き換えられる。具体的には、フレームバッファ４８は、１画素（ピクセル）毎に、画像の色情報を順序立てて記憶している。ここで、色情報は、Ｒ，Ｇ，Ｂ，Ａについてのデータであり、たとえば、８ビットのＲ（赤）データ、８ビットのＧ（緑）データ、８ビットのＢ（青）データおよび８ビットのＡ（アルファ）データである。なお、Ａデータは、マスク（マット画像）についてのデータである。後述のビデオＩ／Ｆ５８がメモリコントローラ３８を介してフレームバッファ４８のデータを読み出すことによって、モニタ３４の画面上に３Ｄのゲーム画像が表示される。
【００３５】
また、Ｚバッファ５０は、フレームバッファ４８に対応する画素数×１画素当たりの奥行きデータのビット数に相当する記憶容量を有し、フレームバッファ４８の各記憶位置に対応するドットの奥行き情報または奥行きデータ（Ｚ値）を記憶するものである。
【００３６】
なお、フレームバッファ４８およびＺバッファ５０は、ともにメインメモリ４０の一部を用いて構成されてもよく、また、これらはＧＰＵ４２の内部に設けられてもよい。
【００３７】
メモリコントローラ３８はまた、ＤＳＰ(Digital Signal Processor)５２を介して、オーディオ用のＲＡＭ（以下、「ＡＲＡＭ」という。）５４に接続される。したがって、メモリコントローラ３８は、メインメモリ４０だけでなく、サブメモリとしてのＡＲＡＭ５４の書込みおよび／または読出しを制御する。
【００３８】
ＤＳＰ５２は、サウンドプロセッサとして働き、メインメモリ４０に記憶されたサウンドデータ（図示せず）を用いたり、ＡＲＡＭ５４に書き込まれている音波形（音色）データ（図１１参照）を用いたりして、ゲームに必要な音、音声或いは音楽に対応するオーディオデータを生成する。
【００３９】
メモリコントローラ３８は、さらに、バスによって、各インタフェース（Ｉ／Ｆ）５６，５８，６０，６２および６４に接続される。コントローラＩ／Ｆ５６は、ビデオゲーム装置１２に受信ユニット２４を介して接続されるコントローラ２２のためのインタフェースである。具体的に言うと、受信ユニット２４は、コントローラ２２から送信される入力情報データを受信し、コントローラＩ／Ｆ５６は、受信ユニット２４によって受信された入力情報データを、メモリコントローラ３８を通してＣＰＵ３６に与える。ただし、この実施例では、入力情報データは、後述する操作データおよび加速度データの少なくとも一方を含むデータを意味する。ビデオＩ／Ｆ５８は、フレームバッファ４８にアクセスし、ＧＰＵ４２で作成した画像データを読み出して、画像信号または画像データ（ディジタルＲＧＢＡピクセル値）をＡＶケーブル３２（図１）を介してモニタ３４に与える。
【００４０】
外部メモリＩ／Ｆ６０は、ビデオゲーム装置１２の前面に挿入されるメモリカード３０（図１）をメモリコントローラ３８に連係させる。それによって、メモリコントローラ３８を介して、ＣＰＵ３６がこのメモリカード３０にデータを書込み、またはメモリカード３０からデータを読み出すことができる。オーディオＩ／Ｆ６２は、メモリコントローラ３８を通してＤＳＰ５２から与えられるオーディオデータまたは光ディスク１８から読み出されたオーディオストリームを受け、それらに応じたオーディオ信号（音声信号）をモニタ３４のスピーカ３４ａに与える。
【００４１】
そして、ディスクＩ／Ｆ６４は、ディスクドライブ１６をメモリコントローラ３８に接続し、したがって、ＣＰＵ３６がディスクドライブ１６を制御する。このディスクドライブ１６によって光ディスク１８から読み出されたプログラムデータやテクスチャデータ等が、ＣＰＵ３６の制御の下で、メインメモリ４０に書き込まれる。
【００４２】
図３（Ａ）および図３（Ｂ）は、コントローラ２２の外観構成を示す斜視図である。図３（Ａ）および図３（Ｂ）を参照して、コントローラ２２は、たとえばプラスチック成型によって形成されたハウジング２２ａを有している。ハウジング２２ａは、略直方体形状であり、ユーザが片手で把持可能な大きさである。上述したように、ハウジング２２ａ（コントローラ２２）には、操作手段（複数のボタンないしスイッチ）２６が設けられる。具体的には、図３（Ａ）に示すように、ハウジング２２ａ（コントローラ２２）の上面には、十字キー２６ａ，Ｘボタン２６ｂ，Ｙボタン２６ｃ，Ａボタン２６ｄ，セレクトスイッチ２６ｅ，メニュー（ホーム）スイッチ２６ｆ，スタートスイッチ２６ｇおよび電源スイッチ２６ｈが設けられる。また、図３（Ｂ）に示すように、ハウジング２２ａの下面に凹部が形成されており、この凹部の後方傾斜面に、Ｂトリガースイッチ２６ｉが設けられる。
【００４３】
十字キー２６ａは、４方向プッシュスイッチであり、矢印で示す４つの方向、前（または上）、後ろ（または下）、右および左の操作部を含む。この操作部のいずれか１つを操作することによって、プレイヤによって操作可能なキャラクタまたはオブジェクト（プレイヤキャラクタまたはプレイヤオブジェクト）の移動方向を指示したり、カーソルの移動方向を指示したりすることができる。
【００４４】
Ｘボタン２６ｂおよびＹボタン２６ｃは、それぞれ、押しボタンスイッチであり、３次元ゲーム画像を表示する際の視点位置や視点方向、すなわち仮想カメラの位置や画角を調整するために使用される。または、Ｘボタン２６ｂおよびＹボタン２６ｃは、Ａボタン２６ｄおよびＢトリガースイッチ２６ｉと同じ操作或いは補助的な操作をする場合に用いることもあり得る。
【００４５】
Ａボタンスイッチ２６ｄは、押しボタンスイッチであり、プレイヤキャラクタまたはプレイヤオブジェクトに、方向指示以外の動作、すなわち、打つ（パンチ）、投げる、つかむ（取得）、乗る、ジャンプするなどの任意のアクションをさせるために使用される。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かすなどを指示することができる。また、ロールプレイングゲーム（ＲＰＧ）やシミュレーションＲＰＧにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。
【００４６】
セレクトスイッチ２６ｅ、メニュースイッチ２６ｆ、スタートスイッチ２６ｇおよび電源スイッチ２６ｈもまた、押しボタンスイッチである。セレクトスイッチ２６ｅは、ゲームモードを選択するために使用される。メニュースイッチ２６ｆは、ゲームメニュー（メニュー画面）を表示するために使用される。スタートスイッチ２６ｇは、開始（再開）したり、一時提示したりするなどのために使用される。電源スイッチ２６ｈは、ビデオゲーム装置１２の電源を遠隔操作によってオン／オフするために使用される。
【００４７】
なお、この実施例では、コントローラ２２自体をオン／オフするための電源スイッチは設けておらず、コントローラ２２の入力手段２６のいずれかを操作することによってコントローラ２２はオンとなり、一定時間（たとえば、３０秒）以上操作しなければ自動的にオフとなるようにしてある。
【００４８】
Ｂトリガースイッチ２６ｉもまた、押しボタンスイッチであり、主として、弾を撃つなどのトリガーを入力するために使用される。一定の場合には、通常のＢボタンと同様に機能し、Ａボタン２６ｄによって決定したアクションを取り消すなどのために使用される。
【００４９】
また、コントローラ２２には、外部拡張コネクタ２２ｂおよびインジケータ２２ｃが設けられる。外部拡張コネクタ２２ｂは、図示しない別のコントローラを接続するためなどに使用される。インジケータ２２ｃは、たとえば、４つのＬＥＤで構成され、４つのうちのいずれか１つを点灯することにより、コントローラ２２の識別情報（コントローラ番号）を示す。
【００５０】
なお、図３に示したコントローラ２２の形状や、各入力手段２６の形状、数および設置位置等は単なる一例に過ぎず、それらが適宜改変された場合であっても、本発明を実現できることは言うまでもない。
【００５１】
図４はコントローラ２２の電気的な構成を示すブロック図である。この図４を参照して、コントローラ２２はマイコン７０を含み、このマイコン７０には、内部バス（図示せず）によって、入力手段２６、メモリ７２、加速度センサ７４および無線モジュール７６が接続される。また、無線モジュール７６には、アンテナ７８が接続される。
【００５２】
なお、図示は省略するが、上述した拡張コネクタ２２ｂおよびインジケータ２２ｃ（ＬＥＤ）もインタフェースまたはドライバを介してマイコン７０に接続される。
【００５３】
マイコン７０は、コントローラ２２の全体制御を司り、入力手段２６および加速度センサ７４のような入力手段によって入力された情報（入力情報）を、入力情報データとして無線モジュール７６およびアンテナ７８を介してビデオゲーム装置１２に送信（入力）する。このとき、マイコン７０は、メモリ７２を作業領域ないしバッファ領域として用いる。
【００５４】
上述した入力手段２６（２６ａ−２６ｉ）からの操作信号（操作データ）は、マイコン７０に入力され、マイコン７０は操作データを一旦メモリ７２に記憶する。
【００５５】
また、加速度センサ７４は、コントローラ２２の縦方向（図３に示すｙ軸方向）、横方向（図３に示すｘ軸方向）および前後方向（図３に示すｚ軸方向）の３軸で各々の加速度を検出する。この加速度センサ７４は、典型的には、静電容量式の加速度センサであるが、他の方式のものを用いるようにしてもよい。図３（Ａ）および図３（Ｂ）からも分かるように、この実施例では、コントローラ２２の上面の垂直上方を、ｙ軸の正の方向とし、ｙ軸に垂直であり、コントローラ２２の右方向をｘ軸の正の方向とし、ｘ軸とｙ軸とに垂直であり、コントローラ２２の長手方向であり、Ｘボタン２６ｂから十字スイッチ２６ａに向かう方向をｚ軸の正の方向としてある。
【００５６】
たとえば、加速度センサ７４は、第１所定時間（たとえば、２００ｍｓｅｃ）毎に、ｘ軸，ｙ軸，ｚ軸の各々についての加速度（ａｘ，ａｙ，ａｚ）を検出し、検出した加速度のデータ（加速度データ）をマイコン７０に入力する。たとえば、加速度センサ７４は、各軸方向の加速度を、−２．０ｇ〜２．０ｇ（ｇは重力加速度である。以下、同じ。）の範囲で検出する。マイコン７０は、加速度センサ７４から与えられる加速度データを、第２所定時間（たとえば、１フレーム：画面更新単位時間（１／６０ｓｅｃ））毎に検出し、一旦メモリ７２の記憶する。マイコン７０は、操作データおよび加速度データの少なくとも一方を含む入力情報データを作成し、作成した入力情報データを、第３所定時間（１フレーム）毎にビデオゲーム装置１２に送信する。
【００５７】
なお、図３では省略したが、この実施例では、加速度センサ７４は、ハウジング２２ａの内部であり、十字キー２６ａが配置される付近に設けられる。
【００５８】
無線モジュール７６は、たとえばＢｌｕｅｔｏｏｔｈ（登録商標）の技術を用いて、所定周波数の搬送波を入力情報データで変調し、その微弱電波信号をアンテナ７８から放射する。つまり、入力情報データは、無線モジュール７６によって微弱電波信号に変調されてアンテナ７８（コントローラ２２）から送信される。この微弱電波信号が上述したビデオゲーム装置１２に装着された受信ユニット２４によって受信される。受信された微弱電波は、復調および復号の処理を施され、したがって、ビデオゲーム装置１２（ＣＰＵ３６）は、コントローラ２２からの入力情報データを取得することができる。そして、ＣＰＵ３６は、取得した入力情報データとプログラム（ゲームプログラム）とに従ってゲーム処理を行う。
【００５９】
図５（Ａ）は、モニタ３４に表示される演奏画面（ゲーム画面）１００の一例を示す。また、図５（Ｂ）は、図５（Ａ）に示すゲーム画面１００を見て、疑似的に楽器を演奏する場合におけるコントローラ２２の操作方法の一例を示す。すなわち、プレイヤは、ゲーム画面１００に誘導されて、コントローラ２２を操作する。
【００６０】
図５（Ａ）に示すように、ゲーム画面１００では、４つの楽器の画像１０２，１０４，１０６，１０８が表示される。たとえば、ゲーム画面１００の上部には、クラッシュシンバルの画像１０２が表示される。また、ゲーム画面１００の左部には、ハイハットシンバルの画像１０４が表示される。さらに、ゲーム画面１００の下部には、バスドラムの画像１０６が表示される。さらにまた、ゲーム画面１００の右部には、スネアドラムの画像１０８が表示される。
【００６１】
プレイヤは、コントローラ２２を横方向（右方向または左方向）または縦方向（上方向または下方向）に振ることにより、ゲーム画面１００に表示される楽器を叩く（打撃する）。ただし、この実施例では、コントローラ２２を用いてゲーム画面１００に表示される楽器を叩くように操作するため、縦方向においては、下方向に振る場合にのみ、楽器を叩いたと判断するようにしてある。なお、コントローラ２２を縦に振る場合に、上方向へ振る動作であるか、下方向へ振る動作であるかの判定方法は後で詳細に説明する。
【００６２】
たとえば、プレイヤがコントローラ２２を右方向に振ると、スネアドラム（画像１０８）を叩くことができる。また、プレイヤがコントローラ２２を左方向に振ると、ハイハットシンバル（画像１０４）を叩くことができる。さらに、プレイヤがコントローラ２２を下方向に振り、比較的高い位置（上部）で振り動作を止めると、クラッシュシンバル（画像１０２）を叩くことができる。さらにまた、プレイヤがコントローラ２２を下方向に振り、水平位置付近ないしそれよりも低い位置（下部）で振り動作を止めると、バスドラム（画像１０６）を叩くことができる。
【００６３】
以下、図６−図１０を参照して、コントローラ２２の操作方法（振り動作）および振り方向の判定方法について説明する。図６に示すように、横方向（左右）にコントローラ２２を振る場合には、コントローラ２２の上面側の向きが実空間座標系のＺ軸のマイナス方向に設定される。つまり、コントローラ２２の上面は、図５（Ｂ）に示したゲーム画面１００（モニタ３４）と同じ向きである。したがって、図６に示すように、コントローラ２２を横方向に振る場合には、コントローラ２２は、実空間座標系のＸＹ平面内でＺ軸を中心として回動される。具体的には、コントローラ２２を右方向に振る場合には、コントローラ２２のｚ軸のプラス方向が実空間座標系のＸ軸のプラス方向と成す角度が小さくなるように、コントローラ２２が傾けられる。一方、コントローラ２２を左方向に振る場合には、コントローラ２２のｚ軸のプラス方向が実空間座標系のＸ軸のマイナス方向と成す角度が小さくなるように、コントローラ２２が傾けられる。
【００６４】
ここで、図６で示すように、この実施例では、コントローラ２２のｘ軸のプラス方向が実空間座標系のＸ軸のプラス方向と一致し、コントローラ２２のｙ軸のプラス方向が実空間座標系のＺ軸のマイナス方向と一致し、コントローラ２２のｚ軸のプラス方向がＹ軸のプラス方向と一致する場合を、コントローラ２２の基準姿勢とする。ただし、基本姿勢では、コントローラ２２は、十字キー２６ａが上側になるように、その方向（姿勢）が決定される。また、この実施例では、簡単のため、基準姿勢からコントローラ２２を振る場合について説明するが、実際には、基準姿勢からコントローラ２２を振る必要はない。以下、同じ。
【００６５】
また、図７に示すように、下方向にコントローラ２２を振る場合には、コントローラ２２は、実空間座標系におけるＹＺ平面内でＸ軸を中心に回動される。図７の（１）では、コントローラ２２を下向きに振り、比較的高い位置（上部）で止めた状態を示す。つまり、コントローラ２２は、そのｚ軸が実空間座標系のＹ軸に対して少し傾いた位置で停止される。このような場合に、上述したように、ゲーム画面１００の上部に表示されたクラッシュシンバルを叩くことができる。一方、図７の（２）では、コントローラ２２を下向きに振り、水平位置で止めた状態を示す。つまり、コントローラ２２は、そのｚ軸が実空間座標系のＺ軸に平行になるまで傾けた位置で停止される。このような場合に、上述したように、ゲーム画面１００の下部に表示されたバスドラムを叩くことができる。
【００６６】
図８（Ａ１）は、コントローラ２２を右方向に振る場合のコントローラ２２の軸方向の変化を示す。上述したように、コントローラ２２を右方向に振る場合には、コントローラ２２のｚ軸のプラス方向が実空間座標系のＸ軸のプラス方向と成す角度が小さくなるように、コントローラ２２が傾けられる。ただし、図８（Ａ１）では、コントローラ２２を基本姿勢から右方向に振った場合についての軸方向の変化が示される。かかる場合には、コントローラ２２のｘ軸およびｙ軸に現れる加速度ａｘ，ａｚは、図８（Ａ２）に示すように、変化する。つまり、コントローラ２２を振る前では、コントローラ２２には、ｚ軸のマイナス方向に重力加速度ｇの大きさの加速度ａｚが現れる。そして、コントローラ２２を振った後では、ｘ軸のプラス方向およびｚ軸のマイナス方向に、振り動作が終了したときのコントローラ２２の傾きに応じて重力加速度ｇの大きさが分解された加速度ａｘおよび加速度ａｚが現れる。ただし、図８（Ａ１）からも分かるように、コントローラ２２を右方向に振る場合には、コントローラ２２のｙ軸は、重力が働く実空間座標系のＹ軸に直交するため、ｙ軸方向には加速度は現れない（ａｙ＝０）。これは、コントローラ２２を左方向に振る場合も同じである。
【００６７】
また、図８（Ｂ１）は、コントローラ２２を左方向に振る場合のコントローラ２２の軸方向の変化を示す。上述したように、コントローラ２２を左方向に振る場合には、コントローラ２２のｚ軸のプラス方向が実空間座標系のＸ軸のマイナス方向と成す角度が小さくなるように、コントローラ２２が傾けられる。ただし、図８（Ａ１）では、コントローラ２２を基本姿勢から左方向に振った場合についての軸方向の変化が示される。かかる場合には、コントローラ２２のｘ軸およびｙ軸に現れる加速度ａｘ，ａｚは、図８（Ｂ２）に示すように、変化する。つまり、コントローラ２２を振る前では、コントローラ２２には、ｚ軸のマイナス方向に重力加速度ｇの大きさの加速度ａｚが現れる。そして、コントローラ２２を振った後では、ｘ軸のマイナス方向およびｚ軸のマイナス方向に、振り動作が終了したときのコントローラ２２の傾きに応じて重力加速度ｇの大きさが分解された加速度ａｘおよび加速度ａｚが現れる。
【００６８】
したがって、コントローラ２２の振り終わりを検出して、振り終わり時におけるコントローラ２２のｘ軸の加速度ａｘの数値またはその符号（プラス，マイナス）によって、右方向または左方向に振ったことを判定することが考えられる。
【００６９】
しかし、上述したように、この実施例では、コントローラ２２で楽器を叩くように操作するため、振り終わり時におけるコントローラ２２のｘ軸方向の加速度ａｘの数値またはその符号のみで、右方向または左方向の振り動作を判定した場合には、プレイヤが叩き操作をしていないにも拘わらず、誤って叩き操作をしたと判断してしまう恐れがある。たとえば、ゆっくりとコントローラ２２を右方向または左方向に傾けた場合であっても、コントローラ２２のｘ軸方向には、重力加速度ｇによって、加速度ａｘが現れるからである。また、単なる手ぶれを叩き操作（振り動作）と判断しないようにするためでもある。
【００７０】
そこで、この実施例では、右方向または左方向の振り動作は、振り動作の初期ないしは途中におけるｘ軸方向の加速度ａｘの値に応じて、右方向または左方向への振り動作を判定するようにしてある。具体的には、重力加速度ｇを考慮して、ｘ軸の加速度ａｘが第１閾値（たとえば、１．２ｇ）以上になると、右方向への振り動作であると判定する。また、同様に、重力加速度ｇを考慮して、ｘ軸の加速度ａｘが第２閾値（たとえば、−１．２ｇ）以下になると、左方向への振り動作であると判定する。
【００７１】
なお、詳細な説明は省略するが、コントローラ２２を右方向および左方向に振る場合には、遠心力による加速度がｚ軸方向に現れるが、これはコントローラ２２を縦方向に振る場合も同じであるため、ｚ軸方向の加速度ａｚによって、コントローラ２２を振る方向を判定することはできない。
【００７２】
また、図示は省略するが、右方向または左方向にコントローラ２２を振る場合には、その振り終わりを加速度ａｘの増加または減少が終了したか否かで判断する。そして、コントローラ２２を振り終わったときに、楽器を叩いたと判定して（当たったと判定して）、コントローラ２２を振った方向に応じた楽器の音を出力したり、ゲーム画面１００の表示を更新したりする。
【００７３】
図９（Ａ１）は、コントローラ２２を下方向に振り、上部で止めた場合のコントローラ２２の軸方向の変化を示す。つまり、図７の（１）に示したように、コントローラ２２は、基本姿勢から実空間座標系のＸ軸を中心に回動するように振られ、そのｚ軸が実空間座標系のＹ軸に対して少し傾いた位置で停止される。かかる場合には、コントローラ２２のｙ軸およびｚ軸に現れる加速度ａｙ，ａｚは、図９（Ａ２）に示すように、変化する。つまり、コントローラ２２を振る前では、コントローラ２２には、z軸のマイナス方向に重力加速度ｇの大きさの加速度ａｚが現れる。そして、コントローラ２２を振った後では、ｙ軸のマイナス方向およびｚ軸のマイナス方向に、振り動作が終了したときのコントローラ２２の傾きに応じて重力加速度ｇの大きさが分解された加速度ａｙおよび加速度ａｚが現れる。ただし、図９（Ａ１）からも分かるように、コントローラ２２を下方向に振る場合には、コントローラ２２のｘ軸は、重力が働く実空間座標系のＹ軸に直交するため、ｘ軸方向には加速度は現れない（ａｘ＝０）。
【００７４】
また、図９（Ｂ１）は、コントローラ２２を下方向に振り、水平位置で止めた場合のコントローラ２２の軸方向の変化を示す。つまり、図７の（２）に示したように、コントローラ２２は、基本姿勢から実空間座標系のＸ軸を中心に回動するように振られ、そのｚ軸が実空間座標系のＺ軸に平行になるまで傾けた位置で停止される。かかる場合には、コントローラ２２のｙ軸およびｚ軸に現れる加速度ａｙ，ａｚは、図９（Ｂ２）に示すように、変化する。つまり、コントローラ２２を振る前では、コントローラ２２には、z軸のマイナス方向に重力加速度ｇの大きさの加速度ａｚが現れる。そして、コントローラ２２を振った後では、ｙ軸のマイナス方向に、重力加速度ｇの大きさの加速度ａｙが現れる。ただし、コントローラ２２のｚ軸は、重力が働く実空間座標系のＹ軸に直交するため、ｚ軸方向には加速度は現れない（ａｚ＝０）。
【００７５】
ここで、コントローラ２２を下方向に振る場合には、コントローラ２２を横方向に振る場合とは異なり、比較的上部でコントローラ２２を止める場合および水平位置付近或いは下部でコントローラ２２を止める場合のいずれの場合であっても、コントローラ２２を同じ方向に振る。このため、コントローラ２２を比較的上部で止めたか、水平位置付近或いは下部で止めたかを判定するには、横方向に振る場合のような判定方法を適用することはできない。つまり、たとえば、ｙ軸方向の加速度ａｙのみで、その判定をすることは難しいと言える。
【００７６】
したがって、この実施例では、下方向にコントローラ２２を振った場合には、その振り終わりを判断し、振り終わったときのコントローラ２２の姿勢に応じて、比較的上部で止めたか、水平位置付近或いは下部で止めたかを判別するようにしてある。具体的には、図９（Ａ２）および図９（Ｂ２）を比較して分かるように、コントローラ２２の振り終わりにおけるｚ軸方向の加速度ａｚに基づいて、その姿勢が判断される。つまり、図９（Ａ２）に示すように、比較的上部でコントローラ２２が停止された場合には、その停止状態において、重力による加速度ａｚがマイナス方向に大きく現れる。一方、図９（Ｂ）に示すように、水平位置でコントローラ２２が停止された場合には、その停止状態において、ｚ軸のマイナス方向に現れる加速度ａｚは、図９（Ａ）に示す場合よりも大きい。図示は省略するが、コントローラ２２が水平位置よりもさらに下方向に振られた位置で停止された場合には、ｚ軸のプラス方向に加速度ａｚが現れる。つまり、さらに加速度ａｚは大きくなる。
【００７７】
したがって、この実施例では、コントローラ２２を下方向に振る場合には、第３閾値（たとえば、−０．５ｇ）が設定され、この第３閾値を用いて、コントローラ２２の停止位置を判定する。具体的には、コントローラ２２が停止した時のｚ軸方向の加速度ａｚを検出する。そして、加速度ａｚが第３閾値よりも小さい場合には、比較的上部でコントローラ２２が停止されたと判断する。逆に、加速度ａｚが第３閾値以上である場合には、水平位置付近または下部でコントローラ２２が停止されたと判断する。
【００７８】
なお、縦方向にコントローラ２２を振っているか否かは、ｙ軸方向の加速度の変化によって知ることができる。
【００７９】
また、図１０は、コントローラ２２を下から上向き（上向き）に振った後に、コントローラ２２を上から下向き（下向き）に振った場合に、ｙ軸方向に現れる加速度ａｙの時間変化を示すグラフである。このグラフは、実施例で示されるコントローラ２２の実機を実際に上下（縦方向）に振った場合に得られたものである。
【００８０】
図１０に示すグラフから分かるように、コントローラ２２を上向きに振る場合と、コントローラ２２を下向きに振る場合とでは、ｙ軸方向に現れる加速度ａｙの時間変化は、いずれも、負のピーク値が現れた後に、正のピーク値が現れる。つまり、互いに類似している。
【００８１】
ここで、上述したように、この実施例では、ゲーム画面１００に表示された楽器を叩くように、コントローラ２２を振る。したがって、コントローラ２２を上向きに振った場合に、楽器の音が鳴ると、プレイヤは違和感を覚えてしまう。このため、この実施例では、コントローラ２２を縦方向に振る場合には、コントローラ２２を下向きに振ったときだけ、楽器の音を鳴らすようにしてある。
【００８２】
この実施例では、図１０の丸印Ｐで示す局所的なピーク値を検出した場合に、コントローラ２２が下向きに振られたと判定するようにしてある。その後、丸印Ｑで示す負のピーク値を検出したときに、コントローラ２２の振り終わりを判断するようにしてある。
【００８３】
具体的には、コントローラ２２のｙ軸方向の加速度ａｙが−０．３ｇ以上になった後に、所定値（０．８ｇ）を超えることなく、丸印Ｑで示す負のピーク値を検出したかどうかを判断する。ここで、負のピーク値を検出することなく、加速度ａｙが所定値を超えた場合には、丸印Ｐで示すピーク値が無いため、上方向への振り動作であると判定する。一方、負のピーク値を検出すると、下方向への振り動作であると判定する。
【００８４】
また、負のピーク値は、最新（現フレーム）の加速度ａｙを含む過去３フレーム分の加速度ａｙを用いて検出される。具体的に説明すると、３つの加速度ａｙの値をα，β，γ（いずれも負の数）とし、α，β，γの順で検出されたと仮定する。つまり、γが現フレームの加速度ａｙである。このとき、数１を満たせば、負のピーク値が検出される。
【００８５】
［数１］
α−β＞０かつγ−β＞０
なお、この実施例では、丸印Ｑで示す負のピーク値を検出したときに、コントローラ２２の振り終わりを判断するようにした。しかし、これに限定される必要はなく、丸印Ｒで示すピーク値を検出したときに、コントローラ２２の振り終わりを判断するようにしてもよい。いずれを選択するかは、開発者ないし設計者が任意に選択すべき事項である。
【００８６】
図１１は、図２に示したメインメモリ４０のメモリマップである。この図１１を参照して、メインメモリ４０は、プログラム記憶領域９０およびデータ記憶領域９２を含む。プログラム記憶領域９０には、音楽演奏プログラム（ゲームプログラム）が記憶され、この音楽演奏プログラムは、加速度検出プログラム９０ａ、振り方向判定プログラム９０ｂ、音色選択プログラム９０ｃ、音出力プログラム９０ｄ、画像生成プログラム９０ｅおよび画像表示プログラム９０ｆなどによって構成される。
【００８７】
加速度検出プログラム９０ａは、コントローラ２２から入力される入力情報データから加速度データを検出し、検出した加速度データをデータ記憶領域９２に時系列に従って記憶（一時記憶）するためのプログラムである。振り方向判定プログラム９０ｂは、加速度データに基づいてコントローラ２２の振り方向を判定するためのプログラムである。また、この振り方向判定プログラム９０ｂは、振り方向の判定に際して、後述する右方向フラグ９２ｂ、左方向フラグ９２ｃおよび下方向フラグ９２ｄの各々の成立（オン）および不成立（オフ）を実行する。
【００８８】
音色選択プログラム９０ｃは、コントローラ２２によって叩かれた楽器すなわち画像（１０２，１０４，１０６，１０８）を判定（当たり判定）し、判定結果に応じた楽器の音色を選択するためのプログラムである。音出力プログラム９０ｄは、音色選択プログラム９０ｃに従って選択された音色の音を出力するためのプログラムである。また、音出力プログラム９０ｄは、必要に応じて、ＢＧＭやオーケストラのような音も出力する。
【００８９】
なお、図示は省略するが、ＢＧＭやオーケストラのような音に対応するデータ（サウンドデータ）は、データ記憶領域９２に記憶される。
【００９０】
画像生成プログラム９０ｅは、後述する画像データ９２ｆを用いて、楽器のようなオブジェクトを含むゲーム画像を生成するためのプログラムである。また、画像生成プログラム９０ｅは、アニメーションデータに従って楽器の画像（１０２，１０４，１０６，１０８）を変化させる。画像表示プログラム９０ｆは、画像生成プログラム９０ｅに従って生成されたゲーム画像をモニタ３４に表示（出力）するためのプログラムである。
【００９１】
なお、図示は省略するが、プログラム記憶領域９０には、バックアッププログラムなども記憶される。バックアッププログラムは、音楽演奏ゲームの途中データや結果データをメモリカード３０にセーブするためのプログラムである。
【００９２】
データ記憶領域９２には、加速度データ９２ａ、右方向フラグ９２ｂ、左方向フラグ９２ｃ、下方向フラグ９２ｄおよび画像データ９２ｅなどが記憶される。
【００９３】
加速度データ９２ａは、コントローラ２２に対して固定的に決定される各軸（ｘ軸，ｙ軸，ｚ軸）に現れる加速度（ａｘ，ａｙ，ａｚ）の数値データであり、上述したように、加速度検出プログラム９０ａに従って時系列に記憶される。ただし、この実施例では、加速度ａｘ，ａｙ，ａｚは、重力加速度ｇを用いて現される。右方向フラグ９２ｂは、コントローラ２２が右方向に振られたか否かを判断するためのフラグであり、振り方向判定プログラム９０ｂに従ってオン／オフされる。たとえば、右方向フラグ９２ｂ（他のフラグ９２ｃ，９２ｄも同じ。）は、１ビットのレジスタで構成され、フラグがオンされると、レジスタにデータ値「１」が設定され、フラグがオフされると、レジスタにデータ値「０」が設定される。たとえば、右方向フラグ９２ｂは、コントローラ２２の振り方向が右方向であると判定されたときにオンされ、それ以外ではオフされる。
【００９４】
左方向フラグ９２ｂは、コントローラ２２が左方向に振られたか否かを判断するためのフラグであり、振り方向判定プログラム９０ｂに従ってオン／オフされる。たとえば、左方向フラグ９２ｂは、コントローラ２２の振り方向が左方向であると判定されたときにオンされ、それ以外ではオフされる。下方向フラグ９０ｄは、コントローラ２２が下向きに振られたか否かを判断するためのフラグであり、振り方向判定プログラム９０ｂに従ってオン／オフされる。たとえば、下方向フラグ９０ｄは、コントローラ２２の振り方向が下方向であると判定されたときにオンされ、それ以外ではオフされる。
【００９５】
画像データ９２ｅは、上述したように、ゲーム画像を生成するためのデータ（ポリゴンデータ、テクスチャデータなど）である。また、画像データ９２ｅには、オブジェクト（たとえば、楽器）をアニメーション表示するためのアニメーションデータも含まれる。
【００９６】
なお、図示は省略するが、データ記憶領域９２には、他のデータや他のフラグなども記憶される。
【００９７】
図１２は図２に示したＡＲＡＭ５４のメモリマップを示す。ＡＲＡＭ５４は、音色データ（音波形データ）を記憶する。たとえば、音色データは、光ディスク１８から読み出され、一旦メインメモリ４０の所定領域に書き込まれた後、一度に全部または部分的かつ順次的に、ＡＲＡＭ５４に書き込まれる。図１２に示すように、ＡＲＡＭ５４には、スネアドラムの音色についての音色Ａデータ５４ａ、クラッシュシンバルの音色についての音色Ｂデータ５４ｂ、ハイハットシンバルの音色についての音色Ｃデータ５４ｃおよびバスドラムの音色についての音色Ｄデータ５４ｄなどが記憶される。したがって、ＣＰＵ３６は、上述した音出力プログラム９０ｃに従って、音色選択プログラム９０ｃに従って選択された音色データ５４ａ，５４ｂ，５４ｃ，５４ｄ，…を読み出し、読み出した音色データ５４ａ，５４ｂ，５４ｃ，５４ｄ，…をＤＳＰ４４に与える。ＤＳＰ４４は、ＣＰＵ３６の指示の下、音色データ５４ａ，５４ｂ，５４ｃ，５４ｄに所定の処理を施して、メインメモリ４０およびオーディオＩ／Ｆ６２を介してスピーカ３４ａに出力する。
【００９８】
具体的には、図２に示すＣＰＵ３６が図１３に示すフロー図に従って音楽演奏処理を実行する。図１３に示すように、ＣＰＵ３６は音楽演奏処理を開始すると、ステップＳ１で、初期化処理を実行する。つまり、ＣＰＵ３６は、各フラグ９２ｂ，９２ｃ，９２ｄをオフしたり、バッファ領域をクリアしたりする。次のステップＳ３では、演奏画面すなわちゲーム画面１００を生成し、モニタ３４に表示する。続いて、ステップＳ５では、加速度の検出を開始する。つまり、ＣＰＵ３６は、コントローラ２２から入力される入力情報データから加速度データ９２ａを検出し、検出した加速度データ９２ａのデータ記憶領域９２への記憶を開始する。したがって、図示は省略するが、音楽演奏処理の実行中では、加速度データ９２ａが時系列に従ってデータ記憶領域９２に記憶される。
【００９９】
続くステップＳ７では、後述する振り方向判定および音出力処理（図１４−図１６参照）を実行する。そして、ステップＳ９では、演奏終了かどうかを判断する。ここでは、ＣＰＵ３６は、プレイヤから音楽演奏の終了指示があるかどうかを判断する。ただし、この実施例では、コントローラ２２から入力情報データが入力されない状態が所定時間以上続いた場合にも、音楽演奏を終了したと判断するようにしてある。ステップＳ９で“ＮＯ”であれば、つまり演奏終了でなければ、そのままステップＳ７に戻る。一方、ステップＳ９で“ＹＥＳ”であれば、つまり演奏終了であれば、音楽演奏処理を終了する。
【０１００】
図１３のステップＳ７に示した振り方向判定および音出力処理は、図１４−図１６の各々に示すフロー図に従って並列的に（マルチタスクで）実行される。図１４は、コントローラ２２を右に振る動作であるか否かを判定し、判定結果に応じた音を出力するための、振り方向判定および音出力処理を示すフロー図である。
【０１０１】
図１４に示すように、ＣＰＵ３６は、振り方向判定および音出力処理を開始すると、ステップＳ２１で、右方向フラグ９２ｂがオンであるかどうかを判断する。ステップＳ２１で“ＹＥＳ”であれば、つまり右方向フラグ９２ｂがオンであれば、そのままステップＳ２７に進む。しかし、ステップＳ２１で“ＮＯ”であれば、つまり右方向フラグ９２ｂがオフであれば、ステップＳ２３で、コントローラ２２のｘ軸方向の加速度ａｘが１．２ｇ以上であるかどうかを判断する。
【０１０２】
ステップＳ２３で“ＮＯ”であれば、つまり加速度ａｘが１．２ｇ未満であれば、コントローラ２２を右方向に振っていないと判定して、図１３に示した音楽演奏処理にリターンする。一方、ステップＳ２３で“ＹＥＳ”であれば、つまり加速度ａｘが１．２ｇ以上であれば、コントローラ２２を右方向に振ったと判定し、ステップＳ２５で、右方向フラグ９２ｂをオンして、ステップＳ２７に進む。
【０１０３】
なお、右方向フラグ９２ｂ、左方向フラグ９２ｃおよび下方向フラグ９２ｃのいずれか２つ以上が同時にオンされることはないため、ＣＰＵ３６は、右方向フラグ９２ｂをオンするときに、他のすべてのフラグ（９２ｃ，９２ｄ）をオフするようにしてある。以下、同様である。
【０１０４】
ステップＳ２７では、コントローラ２２のｘ軸方向の加速度ａｘの増加が終了したかどうかを判断する。ここでは、ＣＰＵ３６は、たとえば、数フレーム前から現フレームまでの加速度ａｘを検出し、加速度ａｘが変化（増加）しているか否かを判断する。加速度ａｘが増加している場合には、振り動作を終了していないと判断する。しかし、加速度ａｘが増加していない場合には、つまり加速度ａｘが一定値またはほぼ一定値である場合には、振り動作を終了したと判断する。
【０１０５】
ステップＳ２７で“ＮＯ”であれば、つまり加速度ａｘの増加が終了していなければ、そのまま音楽演奏処理にリターンする。一方、ステップＳ２７で“ＹＥＳ”であれば、つまり加速度ａｘの増加が終了すれば、右方向への振り動作を終了したと判断する。すなわち、ＣＰＵ３６は、右方向への振り動作によって楽器を叩いたと判断する。したがって、ステップＳ２９で、プレイヤから見て右側に配置（表示）される楽器（図５のゲーム画面１００では、スネアドラム）の音を鳴らす処理を実行する。
【０１０６】
具体的には、ＣＰＵ３６は、プレイヤから見てゲーム画面１００の右部に表示される楽器を判断し、当該楽器に応じた音色データを選択する。次に、ＣＰＵ３６の指示の下、ＤＳＰ５２が、選択された音色データに所定の処理を施し、所定の処理を施した音色データを出力する。以下、音を出力する場合について同様である。また、ＣＰＵ３６は、楽器の音を出力するとともに、当該楽器が叩かれた様子を表現すべくゲーム画面１００の表示を変化させる。つまり、ＣＰＵ３６は、音を鳴らす楽器に対応するアニメーションデータに従って当該楽器の画像（オブジェクト）をアニメーション表示する。以下、ゲーム画面１００の表示を変化させる場合について同様である。
【０１０７】
続いて、ステップＳ３１では、バッファをクリアする。つまり、データ記憶領域９２に記憶される加速度データ９２ａを消去する。そして、ステップＳ３３で、右方向フラグ９２ｂをオフして、音楽演奏処理にリターンする。
【０１０８】
図１５は、コントローラ２２を左に振る動作であるか否かを判定し、判定結果に応じた音を出力するための、振り方向判定および音出力処理を示すフロー図である。この処理は、図１４に示した処理と同様であるため、重複する内容については簡単に説明することにする。
【０１０９】
図１５に示すように、ＣＰＵ３６は、振り方向判定および音出力処理を開始すると、ステップＳ４１で、左方向フラグ９２ｃがオンであるかどうかを判断する。ステップＳ４１で“ＹＥＳ”であれば、つまり左方向フラグ９２ｃがオンであれば、そのままステップＳ４７に進む。しかし、ステップＳ４１で“ＮＯ”であれば、つまり左方向フラグ９２ｃがオフであれば、ステップＳ４３で、コントローラ２２のｘ軸方向の加速度ａｘが−１．２ｇ以下であるかどうかを判断する。
【０１１０】
ステップＳ４３で“ＮＯ”であれば、つまり加速度ａｘが−１．２ｇよりも大きければ、コントローラ２２を左方向に振っていないと判定して、図１３に示した音楽演奏処理にリターンする。一方、ステップＳ４３で“ＹＥＳ”であれば、つまり加速度ａｘが−１．２ｇ以下であれば、コントローラ２２を左方向に振ったと判定し、ステップＳ４５で、左方向フラグ９２ｃをオンして、ステップＳ４７に進む。図示は省略するが、このとき、右方向フラグ９２ｂおよび下方向フラグ９２ｄはオフされる。
【０１１１】
ステップＳ４７では、コントローラ２２のｘ軸方向の加速度ａｘの減少が終了したかどうかを判断する。ここでは、ＣＰＵ３６は、たとえば、数フレーム前から現フレームまでの加速度ａｘを検出し、加速度ａｘが変化（減少）しているか否かを判断する。加速度ａｘが減少している場合には、左方向への振り動作が終了していないと判断する。しかし、加速度ａｘが減少していない場合、すなわち加速度ａｘが一定値またはほぼ一定値であれば、左方向への振り動作が終了したと判断する。
【０１１２】
ステップＳ４７で“ＮＯ”であれば、つまり加速度ａｘの減少が終了していなければ、そのまま音楽演奏処理にリターンする。一方、ステップＳ４７で“ＹＥＳ”であれば、つまり加速度ａｘの減少が終了すれば、左方向への振り動作を終了したと判断する。すなわち、左方向への振り動作によって楽器が叩かれたと判断する。したがって、ステップＳ４９で、プレイヤから見て左側に配置（表示）される楽器（図５のゲーム画面１００では、ハイハットシンバル）の音を鳴らす処理を実行する。ここでは、ハイハットシンバルの音が出力されるとともに、ハイハットシンバルが叩かれた様子を示すゲーム画面１００が表示される。
【０１１３】
続いて、ステップＳ５１では、バッファをクリアする。そして、ステップＳ５３で、左方向フラグ９２ｃをオフして、音楽演奏処理にリターンする。
【０１１４】
図１６は、コントローラ２２を縦（下方向）に振る動作であるか否かを判定し、判定結果に応じた音を出力するための、振り方向判定および音出力処理を示すフロー図である。図１６に示すように、ＣＰＵ３６は、振り方向判定および音出出力処理を開始すると、ステップＳ６１で、コントローラ２２のｙ軸方向の加速度ａｙが−０．３ｇ以上であるかどうかを判断する。ステップＳ６１で“ＮＯ”であれば、つまり加速度ａｙが−０．３ｇ未満であれば、そのままステップＳ６５に進む。一方、ステップＳ６１で“ＹＥＳ”であれば、つまり加速度ａｙが−０．３ｇ以上であれば、ステップＳ６３で、下方向フラグ９２ｄをオンし、ステップＳ６５に進む。図示は省略するが、このとき、右方向フラグ９２ｂおよび左方向フラグ９２ｃはオフされる。
【０１１５】
ステップＳ６５では、コントローラ２２のｙ軸方向の加速度ａｙが０．８ｇ以上であるかどうかを判断する。ステップＳ６５で“ＹＥＳ”であれば、つまり加速度ａｙが−０．３ｇ以上となった後に、負のピーク値を検出することなく、加速度ａｙが０．８ｇ以上になった場合には、上方向の振り動作であると判断して、ステップＳ７９で、下方向フラグ９２ｄをオフして、図１３に示した音楽演奏処理にリターンする。
【０１１６】
しかし、ステップＳ６５で“ＮＯ”であれば、つまり加速度ａｙが０．８ｇ未満であれば、ステップＳ６７で、数１に従って負のピーク値を検出する。続くステップＳ６９では、負のピーク値を検出したかどうかを判断する。つまり、現フレームの加速度ａｙを含む過去３フレーム分の加速度ａｙが、数１を満たしたかどうかを判断する。ステップＳ６９で“ＮＯ”であれば、つまり負のピーク値を検出していなければ、そのままステップＳ６５に戻る。一方、ステップＳ６９で“ＹＥＳ”であれば、つまり負のピーク値を検出すれば、下方向の振り動作に対応して音を鳴らすべく、ステップＳ７１に進む。
【０１１７】
このように、ステップＳ６１−Ｓ６９の処理によって、図１０に示した丸印Ｐで示す局所的なピーク値に続く丸印Ｑで示す負のピーク値を検出することにより、下方向の振り動作を正しく判定しているのである。
【０１１８】
ステップＳ７１では、コントローラ２２のｚ軸方向の加速度ａｚが−０．５ｇよりも大きいか否かを判断する。つまり、下方向の振り動作が終了した後のコントローラ２２の姿勢（停止位置）が判断される。ステップＳ７１で“ＮＯ”であれば、つまり加速度ａｚが−０．５ｇ以下であれば、コントローラ２２は比較的高い位置で停止していると判断し、ステップＳ７３で、プレイヤから見て上側に配置（表示）される楽器（図５に示すゲーム画面１００では、クラッシュシンバル）の音を鳴らす処理を実行して、ステップＳ７７に進む。ただし、ステップＳ７３では、クラッシュシンバルの音が出力されるとともに、クラッシュシンバルが叩かれる様子を現すゲーム画面１００が表示される。
【０１１９】
一方、ステップＳ７１“ＹＥＳ”であれば、つまり加速度ａｚが−０．５未満であれば、コントローラ２２は水平位置付近またはそれよりも低い位置で停止していると判断し、ステップＳ７５で、プレイヤから見て下側に配置（表示）される楽器（図５に示すゲーム画面１００では、バスドラム）の音を鳴らす処理を実行して、ステップＳ７７に進む。ただし、ステップＳ７５では、バスドラムの音が出力されるとともに、バスドラムが叩かれる様子を現すゲーム画面１００が表示される。
【０１２０】
ステップＳ７７では、バッファをクリアする。つまり、データ記憶領域９２に記憶された加速度データ９２ａが削除される。そして、ステップＳ７９で、下方向フラグ９２ｄをオフして、音楽演奏処理にリターンする。
【０１２１】
この実施例によれば、コントローラの振り方に応じた音を出力するので、ユーザの振り動作に応じて出力される音を楽しむことができる。
【０１２２】
また、この実施例では、１つの加速度センサの検出結果に基づいて振り動作の方向を判定するとともに、振り終わりのコントローラの姿勢を判定するので、低コストでプレイヤの振り動作を正確に判定することができる。
【０１２３】
なお、この実施例では、ゲーム画面の上部、下部、左部、右部のそれぞれに１の楽器の画像を表示した場合について説明した。しかし、これに限定されるべきではなく、さらに多数の楽器の画像を表示し、上下左右のみならず、詳細な振り動作を判別可能にすることもできる。
【０１２４】
たとえば、図１７に示すように、４つの楽器の画像Ａ，Ｂ，Ｃ，Ｄが横方向並んで配置される場合では、コントローラ２２のｘ軸方向の加速度ａｘの大きさで、各方向に配置（表示）される楽器のいずれが叩かれたかを判別することができる。ただし、図１７においては、楽器Ａおよび楽器Ｂがゲーム画面の中央から左側に配置に表示され、楽器Ｃおよび楽器Ｄがゲーム画面の中央から右側に配置されるものとする。具体的には、左方向または右方向の振り動作を判定するための閾値（上述の第１閾値および第２閾値）とは別に、叩かれた楽器を判別するための閾値を設ける。つまり、図１７の下部に示すように、コントローラ２２を左方向に振り、楽器Ａを叩く場合には、楽器Ｂを叩く場合よりも、基本姿勢からの左方向への傾き角度が大きくなるため、振る動作を早く（強く）すると考えられる。同様に、コントローラ２２を右方向に振り、楽器Ｄを叩く場合には、楽器Ｃを叩く場合よりも、基本姿勢から右方向への傾き角度が大きくなるため、振る動作を早く（強く）すると考えられる。
【０１２５】
かかる場合には、図１４に示したフロー図は、図１８および図１９に示すように変更される。以下、図１８および図１９に示す処理について説明するが、上述の実施例で説明した処理と同じ処理については簡単に説明することにする。
【０１２６】
図１８に示すように、ＣＰＵ３６は、振り方向判定および音出出力処理を開始すると、ステップＳ９１で、右方向２フラグがオンであるかどうかを判断する。ここで、右方向２フラグは、ｘ軸方向の加速度ａｘが第１閾値（ここでは、１．２ｇ）のみならず、第４閾値（ここでは、１．６ｇ）以上であることを示すフラグである。具体的には、図１７の（IV）で示すように、コントローラ２２が、基本姿勢から右方向へ大きく傾くように振られた状態を示す。ステップＳ９１で“ＹＥＳ”であれば、つまり右方向２フラグがオンであれば、そのまま図１９に示すステップＳ１０５に進む。しかし、ステップＳ９１で“ＮＯ”であれば、つまり右方向２フラグがオフであれば、ステップＳ９３で、右方向１フラグがオンであるかどうかを判断する。この右方向１フラグは、ｘ軸方向の加速度ａｘが第１閾値以上であり、第４閾値未満であるとことを示すフラグである。具体的には、図１７の（III）で示すように、コントローラ２２が、基本姿勢から右方向へ少し傾くように振られた状態を示す。
【０１２７】
ステップＳ９３で“ＹＥＳ”であれば、つまり右方向１フラグがオンであれば、そのままステップＳ９９に進む。一方、ステップＳ９３で“ＮＯ”であれば、つまり右方向１フラグがオフであれば、ステップＳ９５で、加速度ａｘが１．２ｇ以上であるかどうかを判断する。つまり、右方向の振り動作か否かを判断する。ステップＳ９５で“ＮＯ”であれば、図１９に示すように、そのまま図１３に示した音楽演奏処理にリターンする。しかし、ステップＳ９５で“ＹＥＳ”であれば、ステップＳ９７で、右方向１フラグをオンして、ステップＳ９９に進む。
【０１２８】
ステップＳ９９では、加速度ａｘが第４閾値（ここでは、１．６ｇ）以上であるかどうかを判断する。ステップＳ９９で“ＮＯ”であれば、つまり加速度ａｘが１．６ｇ未満であれば、そのままステップＳ１０５に進む。一方、ステップＳ９９で“ＹＥＳ”であれば、つまり加速度ａｘが１．６ｇ以上であれば、ステップＳ１０１で、右方向２フラグをオンし、ステップＳ１０３で、右方向１フラグをオフし、ステップＳ１０５に進む。
【０１２９】
なお、ステップＳ１０３で、右方向１フラグをオフするのは、楽器Ｃまたは楽器Ｄのいずれが叩かれたかを正しく判断するためである。
【０１３０】
図１９に示すように、ステップＳ１０５では、加速度ａｘの増加が終了したかどうかを判断する。つまり、コントローラ２２の右方向への振り動作が終了したかどうかを判断する。ステップＳ１０５で“ＮＯ”であれば、そのまま音楽演奏処理にリターンする。一方、ステップＳ１０５で“ＹＥＳ”であれば、つまり加速度ａｘの増加が終了すれば、ステップＳ１０７で、右方向１フラグがオンであるかどうかを判断する。
【０１３１】
ステップＳ１０７で“ＹＥＳ”であれば、つまり右方向１フラグがオンであれば、ステップＳ１０９で、プレイヤから見て右側であり、ゲーム画面の中央よりに配置（表示）される楽器の音を鳴らす処理を実行して、ステップＳ１１３に進む。一方、ステップＳ１０７で“ＮＯ”であれば、つまり右方向２フラグがオンであれば、ステップＳ１１１で、プレイヤから見て右側であり、ゲーム画面の右端よりに配置（表示）される楽器の音を鳴らす処理を実行して、ステップＳ１１３に進む。そして、ステップＳ１１３で、バッファをクリアし、ステップＳ１１５で、右方向１フラグまたは右方向２フラグをオフして、音楽演奏処理にリターンする。
【０１３２】
なお、図示は省略するが、左方向についても同様に、２つの閾値を設定することにより、２つの楽器（図１７に示す例では、Ａ，Ｂ）のいずれが叩かれたかを正確に判断して、叩かれた楽器の音を鳴らす処理を実行することができる。
【０１３３】
また、縦方向についても３つ以上の楽器を配置して、いずれの楽器が叩かれたかを正確に判断して、叩かれた楽器の音を鳴らすことができる。上述の実施例で説明したように、縦方向では、振り動作が終了したときのｚ軸方向の加速度ａｚの値で、コントローラ２２の姿勢すなわち停止状態を判断して、いずれの楽器を叩いたかを判断するようにしてある。このため、コントローラ２２の停止状態を判断するための閾値を、表示する楽器の個数に応じて設定すればよい。
【０１３４】
たとえば、図２０に示すように、３つの楽器Ａ，Ｂ，Ｃを縦に並べて配置（表示）する場合には、２つの閾値が設定される。具体的には、図２０の（Ｉ）で示すように、閾値ｍ（−０．７５ｇ）および閾値ｎ（０．７５ｇ）が設定される。ただし、図２０においては、加速度ａｚの検出範囲は、−２．２５ｇ〜２．２５ｇに設定してある。これは、図２０の（Ｉ）に示すように、楽器Ａ，Ｂ，Ｃを判別する場合の加速度ａｚの範囲を均等にするためである。したがって、図１６に示したように、ステップＳ６９で“ＹＥＳ”となり、楽器の音を鳴らす場合には、加速度ａｚの値を検出し、２つの閾値ｍ，ｎを用いて、楽器Ａ，Ｂ，Ｃのいずれが叩かれたかを判断するのである。具体的には、加速度ａｚが閾値ｍ以下である場合には、楽器Ａが叩かれたと判断される。また、加速度ａｚが閾値ｍより大きく閾値ｎ以下である場合には、楽器Ｂが叩かれたと判断される。さらに、加速度ａｚが閾値ｎより大きい場合には、楽器Ｃが叩かれたと判断される。
【０１３５】
このように、横方向の振り動作に対しては、１軸（たとえば、ｘ軸）についての加速度に基づいて、振り方向および叩いた楽器を判別することができる。また、縦方向の振り動作に対しては、２軸のうちの一方の軸（たとえば、ｙ軸）の加速度に基づいて下方向の振り動作を判定することができ、振り動作が終了した後に、他方の１軸（たとえば、ｚ軸）についての加速度に基づいて、叩いた楽器を判断することができる。
【０１３６】
さらに、詳細な説明は省略するが、たとえば、ビデオゲーム装置が指示する楽器を叩いて音を鳴らすようなゲームでは、今回叩くべき楽器が叩かれたことを正確に判断するために、その都度、閾値を変化させることも可能である。たとえば、楽器Ａを叩く場面においては、図２０の（II）に示すように、たとえば、閾値ｍが−０．５ｇに設定（変更）される。つまり、楽器Ａが叩かれたと判定される加速度ａｚの範囲が大きくされる。また、楽器Ｂを叩く場面においては、図２０の（III）に示すように、閾値ｍが−１．０ｇに設定され、閾値ｎが１．０ｇに設定される。つまり、楽器Ｂが叩かれたと判定される加速度ａｚの範囲が大きくされる。さらに、楽器Ｃを叩く場面においては、図２０の（IV）に示すように、閾値ｎが０．５ｇに設定される。つまり、楽器Ｃが叩かれたと判定される加速度ａｚの範囲が大きくされる。
【０１３７】
このように、閾値を可変的に設定するようにすれば、比較的多くの楽器を表示する場合であっても、プレイヤが叩いた楽器を正確に判断することができる。
【図面の簡単な説明】
【０１３８】
【図１】図１はこの発明のゲームシステムの一実施例を示す図解図である。
【図２】図２は図１に示すゲームシステムの電気的な構成を示すブロック図である。
【図３】図３は図１に示すコントローラの外観構成の一例を示す斜視図である。
【図４】図４は図３に示すコントローラの電気的な構成を示すブロック図である。
【図５】図５は図１および図２に示すモニタに表示されるゲーム画面の一例を示す図解図およびコントローラの操作方法を説明するための図解図である。
【図６】図６はコントローラを横方向に振る動作を説明するための図解図である。
【図７】図７はコントローラを横方向に振る場合の振り方向の判定方法を説明するための図解図である。
【図８】図８はコントローラを縦方向に振る動作を説明するための図解図である。
【図９】図９はコントローラを縦方向に振る場合の振り方向の判定方法を説明するための図解図である。
【図１０】図１０はコントローラを縦方向に振った場合におけるｙ軸方向の加速度の時間変化を示すグラフである。
【図１１】図１１は図２に示すメインメモリのメモリマップの一例を示す図解図である。
【図１２】図１２は図２に示すＡＲＡＭのメモリマップの一例を示す図解図である。
【図１３】図１３は図２に示すＣＰＵの音楽演奏処理を示すフロー図である。
【図１４】図１４は図２に示すＣＰＵの右方向についての振り方向判定および音出力処理を示すフロー図である。
【図１５】図１５は図２に示すＣＰＵの左方向についての振り方向判定および音出力処理を示すフロー図である。
【図１６】図１６は図２に示すＣＰＵの縦方向についての振り方向判定および音出力処理を示すフロー図である。
【図１７】図１７はこの発明の他のゲーム画面に表示される楽器の配列の例およびその操作方法を説明するための図解図である。
【図１８】図１８は図１７に示すゲーム画面が表示されている場合における、ＣＰＵの右方向についての振り方向判定および音出力処理の一部を示すフロー図である。
【図１９】図１９は図１７に示すゲーム画面が表示されている場合における、ＣＰＵの右方向についての振り方向判定および音出力処理の他の一部であって、図１８に後続するフロー図である。
【図２０】図２０はこの発明のその他のゲーム画面に表示される楽器の配列の例およびゲームの異なる場面における閾値の設定方法を説明するための図解図である。
【符号の説明】
【０１３９】
１０  …ゲームシステム
１２  …ビデオゲーム装置
１８  …光ディスク
２２  …コントローラ
２４  …受信ユニット
３０  …メモリカード
３４  …モニタ
３４ａ  …スピーカ
３６  …ＣＰＵ
３８  …メモリコントローラ
４０  …メインメモリ
４２  …ＧＰＵ
５２  …ＤＳＰ
５４  …ＡＲＡＭ
６２  …オーディオＩ／Ｆ
７０  …マイコン
７４  …加速度センサ
【図１】
0004679429.tif 000002
【図２】
0004679429.tif 000003
【図３】
0004679429.tif 000004
【図４】
0004679429.tif 000005
【図５】
0004679429.tif 000006
【図６】
0004679429.tif 000007
【図７】
0004679429.tif 000008
【図８】
0004679429.tif 000009
【図９】
0004679429.tif 000010
【図１０】
0004679429.tif 000011
【図１１】
0004679429.tif 000012
【図１２】
0004679429.tif 000013
【図１３】
0004679429.tif 000014
【図１４】
0004679429.tif 000015
【図１５】
0004679429.tif 000016
【図１６】
0004679429.tif 000017
【図１７】
0004679429.tif 000018
【図１８】
0004679429.tif 000019
【図１９】
0004679429.tif 000020
【図２０】
0004679429.tif 000021