(57)【要約】      （修正有）【課題】入力装置の動作に応じて、多様な演奏変化を生じさせて音楽を演奏する音楽演奏プログラムおよび音楽演奏装置を提供する。【解決手段】入力装置に設けられた加速度センサから出力される加速度データを取得し、加速度の大きさを算出する。次に、算出された加速度の大きさに基づいて、記憶手段に記憶された複数のトラックデータを含む楽曲データから演奏対象とするトラックデータを少なくとも１つ選択する。そして、選択されたトラックデータに基づいて、音響発生機器から発生する楽音を制御するためのデータを出力する。【選択図】図１
2011008284.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１軸方向の加速度を検出する加速度センサを備えた入力装置で検出された加速度に応じて操作される装置のコンピュータで実行される音楽演奏プログラムであって、
前記コンピュータに、
前記加速度センサから出力される加速度データを取得する加速度データ取得ステップと、
取得した加速度データを用いて、加速度の大きさを算出する加速度算出ステップと、
算出された加速度の大きさに基づいて、記憶手段に記憶された複数のトラックデータを含む楽曲データから演奏対象とするトラックデータを少なくとも１つ選択するトラックデータ選択ステップと、
前記トラックデータ選択ステップで選択されたトラックデータに基づいて、音響発生機器から発生する楽音を制御するためのデータを出力する音楽演奏ステップとを実行させる、音楽演奏プログラム。
【請求項２】
前記加速度算出ステップで算出された加速度の大きさの履歴を用いて、当該加速度の大きさのピーク値を検出する加速度ピーク値検出ステップを、さらに前記コンピュータに実行させ、
前記トラックデータ選択ステップでは、前記加速度ピーク値検出ステップで検出された加速度の大きさのピーク値に基づいて、演奏対象とするトラックデータが選択される、請求項１に記載の音楽演奏プログラム。
【請求項３】
前記加速度算出ステップは、前回取得した加速度データを用いて算出した加速度と今回取得した加速度データを用いて算出した加速度との差分を算出する差分算出ステップを含み、
前記トラックデータ選択ステップでは、前記差分算出ステップで算出された加速度の差分に基づいて、演奏対象とするトラックデータが選択される、請求項１に記載の音楽演奏プログラム。
【請求項４】
前記差分算出ステップで算出された加速度の差分の履歴を用いて、当該加速度の差分のピーク値を検出する加速度差分ピーク値検出ステップを、さらに前記コンピュータに実行させ、
前記トラックデータ選択ステップでは、前記加速度差分ピーク値検出ステップで検出された加速度の差分のピーク値に基づいて、演奏対象とするトラックデータが選択される、請求項３に記載の音楽演奏プログラム。
【請求項５】
前記楽曲データは、それぞれ異なったトラックデータから成る複数のトラックデータ群を含み、
前記加速度算出ステップでは、今回取得した加速度データから算出した加速度の大きさ、および前回取得した加速度データを用いて算出した加速度と今回取得した加速度データを用いて算出した加速度との差分が算出され、
前記音楽演奏プログラムは、
前記加速度算出ステップで算出された加速度の大きさの履歴を用いて、当該加速度の大きさのピーク値を検出する加速度ピーク値検出ステップと、
前記加速度算出ステップで算出された加速度の差分の履歴を用いて、当該加速度の差分のピーク値を検出する加速度差分ピーク値検出ステップとを、さらに前記コンピュータに実行させ、
前記トラックデータ選択ステップでは、前記加速度差分ピーク値検出ステップで検出された加速度の差分のピーク値に基づいて演奏対象とするトラックデータ群が選択され、前記加速度ピーク値検出ステップで検出された加速度の大きさのピーク値に基づいて演奏対象のトラックデータ群から演奏対象のトラックデータが選択される、請求項１に記載の音楽演奏プログラム。
【請求項６】
前記加速度センサは、前記入力装置に対して互いに直交する複数軸方向の加速度をそれぞれ検出し、
前記加速度算出ステップでは、取得した加速度データを用いて、前記複数軸方向それぞれの加速度ベクトルを合成した合成ベクトルの大きさが算出される、請求項１に記載の音楽演奏プログラム。
【請求項７】
前記加速度センサは、前記入力装置に対して互いに直交する複数軸方向の加速度をそれぞれ検出し、
前記差分算出ステップでは、前回取得した加速度データを用いて算出した加速度と今回取得した加速度データを用いて算出した加速度との差分を前記複数軸方向それぞれに算出し、当該複数軸方向それぞれの差分ベクトルを合成した差分合成ベクトルの大きさが加速度の差分として算出される、請求項３に記載の音楽演奏プログラム。
【請求項８】
前記複数のトラックデータには、それぞれ異なった楽器が割り当てられており、
前記トラックデータに割り当てられた楽器をそれぞれ仮想ゲーム世界に配置し、前記トラックデータ選択ステップで選択されたトラックデータに割り当てられた楽器のみが演奏されるアクションを表示装置に表示する表示処理ステップを、さらに前記コンピュータに実行させる、請求項１に記載の音楽演奏プログラム。
【請求項９】
前記複数のトラックデータには、それぞれ異なった楽器の演奏データが割り当てられていることを特徴とする、請求項１に記載の音楽演奏プログラム。
【請求項１０】
前記トラックデータ群に割り当てられる演奏データは、他のトラックデータ群に割り当てられる演奏データに対して、同じ楽曲で奏法、ビート数、および曲調の少なくとも１つが互いに異なることを特徴とする、請求項１に記載の音楽演奏プログラム。
【請求項１１】
前記装置は、音響発生機器から楽音を発生させる音源を備えており、
前記楽曲データに含まれる複数のトラックデータは、それぞれ前記音源の制御データで構成され、
前記音楽演奏ステップでは、前記トラックデータ選択ステップで選択されたトラックデータに記述された制御データが出力されて前記音源が制御される、請求項１に記載の音楽演奏プログラム。
【請求項１２】
少なくとも１軸方向の加速度を検出する加速度センサを備えた入力装置で検出された加速度に応じて操作される音楽演奏装置であって、
前記加速度センサから出力される加速度データを取得する加速度データ取得手段と、
取得した加速度データを用いて、加速度の大きさを算出する加速度算出手段と、
算出された加速度の大きさに基づいて、記憶手段に記憶された複数のトラックデータを含む楽曲データから演奏対象とするトラックデータを少なくとも１つ選択するトラックデータ選択手段と、
前記トラックデータ選択手段が選択したトラックデータに基づいて、音響発生機器から発生する楽音を制御するためのデータを出力する音楽演奏手段とを備える、音楽演奏装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音楽演奏プログラムおよび音楽演奏装置に関し、より特定的には、加速度センサを備えた入力装置を振ることに応じて音楽を再生する音楽演奏プログラムおよび音楽演奏装置に関する。
【背景技術】
【０００２】
従来、音楽の指揮を取り入れてゲームを行ったり、カラオケの興趣性を高めたりすることが知られている。例えば、加速度センサを備えた指揮棒の出力に応じて、楽譜データの音程および強度のデータを読み出すタイミングが追従するよう構成された装置が開示されている（例えば、特許文献１参照）。また、ユーザが所持またはユーザに取り付け可能な運動検出器および状態検出器に備えられた加速度センサの出力に応じて、ＭＩＤＩ（Ｍｕｓｉｃａｌ  Ｉｎｓｔｒｕｍｅｎｔ  Ｄｉｇｉｔａｌ  Ｉｎｔｅｒｆａｃｅ）データ等の音量を変化させると共に、その再生テンポを追従させる装置が開示されている（例えば、特許文献２参照）。上記特許文献２で開示された装置では、加速度センサの出力に応じて再生テンポをどの程度追随させるのか、ユーザが指定するためのボタンを装備して、指揮に基づくテンポと本来のテンポとが大きくずれないように配慮した楽音再生装置を開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平６−１６１４４０号公報
【特許文献２】特開２００１−１９５０５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献１や特許文献２で開示された装置等の従来の技術では、あくまでも楽曲演奏のテンポを制御することや、せいぜい指揮の強弱で演奏音量を変化させる程度の興趣性しか提供することができない。したがって、従来の技術では、ユーザが指揮する操作自体に楽しさを感じられるような娯楽的な要素を加味することができなかった。
【０００５】
それ故に、本発明の目的は、入力装置の動作に応じて、多様な演奏変化を生じさせて音楽を演奏する音楽演奏プログラムおよび音楽演奏装置を提供することである。
【課題を解決するための手段】
【０００６】
上記の目的を達成するために、本発明は以下の構成を採用した。なお、括弧内の参照符号やステップ番号等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明の範囲を何ら限定するものではない。
【０００７】
第１の発明は、少なくとも１軸方向の加速度を検出する加速度センサ（７０１）を備えた入力装置（７）で検出された加速度に応じて操作される装置（３）のコンピュータ（３０）で実行される音楽演奏プログラムである。音楽演奏プログラムは、加速度データ取得ステップ（Ｓ５４）、加速度算出ステップ（Ｓ５５、Ｓ５８）、トラックデータ選択ステップ（Ｓ６３、Ｓ６６、Ｓ７０）、および音楽演奏ステップ（Ｓ６８）をコンピュータに実行させる。加速度データ取得ステップは、加速度センサから出力される加速度データ（Ｄａ）を取得する。加速度算出ステップは、取得した加速度データを用いて、加速度の大きさ（Ｖ、Ｄ）を算出する。トラックデータ選択ステップは、算出された加速度の大きさに基づいて、記憶手段（３３）に記憶された複数のトラックデータ（Ｔｄ、図１６、図１７）を含む楽曲データ（Ｄｄ）から演奏対象とするトラックデータを少なくとも１つ選択する。音楽演奏ステップは、トラックデータ選択ステップで選択されたトラックデータに基づいて、音響発生機器（２ａ）から発生する楽音を制御するためのデータを出力する。
【０００８】
第２の発明は、上記第１の発明において、加速度ピーク値検出ステップ（Ｓ６１）を、さらにコンピュータに実行させる。加速度ピーク値検出ステップは、加速度算出ステップで算出された加速度の大きさ（Ｖ）の履歴（Ｄｂ）を用いて、それら加速度の大きさのピーク値（Ｖｐ）を検出する。トラックデータ選択ステップでは、加速度ピーク値検出ステップで検出された加速度の大きさのピーク値に基づいて、演奏対象とするトラックデータが選択される（Ｓ６３）。
【０００９】
第３の発明は、上記第１の発明において、加速度算出ステップは、差分算出ステップ（Ｓ５７、Ｓ５８）を含む。差分算出ステップは、前回取得した加速度データを用いて算出した加速度（Ｘａ０、Ｙａ０、Ｚａ０）と今回取得した加速度データを用いて算出した加速度（Ｘａ、Ｙａ、Ｚａ）との差分（Ｄ）を算出する。トラックデータ選択ステップでは、差分算出ステップで算出された加速度の差分に基づいて、演奏対象とするトラックデータが選択される（Ｓ６６、Ｓ７０）。
【００１０】
第４の発明は、上記第３の発明において、加速度差分ピーク値検出ステップ（Ｓ６４）を、さらにコンピュータに実行させる。加速度差分ピーク値検出ステップは、差分算出ステップで算出された加速度の差分の履歴（Ｄｃ）を用いて、それら加速度の差分のピーク値（Ｄｐ）を検出する。トラックデータ選択ステップでは、加速度差分ピーク値検出ステップで検出された加速度の差分のピーク値に基づいて、演奏対象とするトラックデータが選択される。
【００１１】
第５の発明は、上記第１の発明において、楽曲データは、それぞれ異なったトラックデータから成る複数のトラックデータ群（Ｓｄ）を含む。加速度算出ステップでは、今回取得した加速度データから算出した加速度の大きさ（Ｖ）、および前回取得した加速度データを用いて算出した加速度と今回取得した加速度データを用いて算出した加速度との差分（Ｄ）が算出される。音楽演奏プログラムは、加速度ピーク値検出ステップおよび加速度差分ピーク値検出ステップを、さらにコンピュータに実行させる。加速度ピーク値検出ステップは、加速度算出ステップで算出された加速度の大きさの履歴を用いて、それら加速度の大きさのピーク値を検出する。加速度差分ピーク値検出ステップは、加速度算出ステップで算出された加速度の差分の履歴を用いて、それら加速度の差分のピーク値を検出する。トラックデータ選択ステップでは、加速度差分ピーク値検出ステップで検出された加速度の差分のピーク値に基づいて演奏対象とするトラックデータ群が選択され、加速度ピーク値検出ステップで検出された加速度の大きさのピーク値に基づいて演奏対象のトラックデータ群から演奏対象のトラックデータが選択される。
【００１２】
第６の発明は、上記第１の発明において、加速度センサは、入力装置に対して互いに直交する複数軸方向（Ｘ、Ｙ、Ｚ軸方向）の加速度をそれぞれ検出する。加速度算出ステップでは、取得した加速度データを用いて、複数軸方向それぞれの加速度ベクトルを合成した合成ベクトルの大きさが算出される。
【００１３】
第７の発明は、上記第３の発明において、加速度センサは、入力装置に対して互いに直交する複数軸方向の加速度をそれぞれ検出する。差分算出ステップでは、前回取得した加速度データを用いて算出した加速度と今回取得した加速度データを用いて算出した加速度との差分を複数軸方向それぞれに算出し、それら複数軸方向それぞれの差分ベクトルを合成した差分合成ベクトルの大きさが加速度の差分として算出される。
【００１４】
第８の発明は、上記第１の発明において、複数のトラックデータには、それぞれ異なった楽器が割り当てられている。表示処理ステップを、さらにコンピュータに実行させる。表示処理ステップは、トラックデータに割り当てられた楽器をそれぞれ仮想ゲーム世界に配置し、トラックデータ選択ステップで選択されたトラックデータに割り当てられた楽器のみが演奏されるアクションを表示装置（２）に表示する（図８、図９）。
【００１５】
第９の発明は、上記第１の発明において、複数のトラックデータには、それぞれ異なった楽器の演奏データが割り当てられている。
【００１６】
第１０の発明は、上記第１の発明において、トラックデータ群に割り当てられる演奏データは、他のトラックデータ群に割り当てられる演奏データに対して、同じ楽曲で奏法、ビート数、および曲調の少なくとも１つが互いに異なる。
【００１７】
第１１の発明は、上記第１の発明において、装置は、音響発生機器から楽音を発生させる音源（３４、３５）を備えている。楽曲データに含まれる複数のトラックデータは、それぞれ音源の制御データで構成される。音楽演奏ステップでは、トラックデータ選択ステップで選択されたトラックデータに記述された制御データが出力されて音源が制御される。
【００１８】
第１２の発明は、少なくとも１軸方向の加速度を検出する加速度センサを備えた入力装置で検出された加速度に応じて操作される音楽演奏装置である。音楽演奏装置は、加速度データ取得手段、加速度算出手段、トラックデータ選択手段、および音楽演奏手段を備える。加速度データ取得手段は、加速度センサから出力される加速度データを取得する。加速度算出手段は、取得した加速度データを用いて、加速度の大きさを算出する。トラックデータ選択手段は、算出された加速度の大きさに基づいて、記憶手段に記憶された複数のトラックデータを含む楽曲データから演奏対象とするトラックデータを少なくとも１つ選択する。音楽演奏手段は、トラックデータ選択手段が選択したトラックデータに基づいて、音響発生機器から発生する楽音を制御するためのデータを出力する。
【発明の効果】
【００１９】
上記第１の発明によれば、加速度センサの加速度の大きさによって、演奏対象とするトラックを変化させるので、入力装置の振り動かし方に応じて多様な演奏変化を生じさせることができる。
【００２０】
上記第２の発明によれば、加速度の大きさのピーク値によって、演奏対象とするトラックを変化させるので、入力装置の振り動かす大きさや速度に応じて音楽演奏を変化させることができる。
【００２１】
上記第３の発明によれば、加速度の大きさの差分によって、演奏対象とするトラックを変化させるので、入力装置の振り動かすときの柔らかさ等に応じて音楽演奏を変化させることができる。
【００２２】
上記第４の発明によれば、加速度の大きさの差分のピーク値によって、演奏対象とするトラックを変化させるので、入力装置の振り動かすときの拍タイミングにおけるメリハリの有無等に応じて音楽演奏を変化させることができる。
【００２３】
上記第５の発明によれば、加速度の大きさの差分のピーク値によって演奏対象とするトラック群を変化させ、加速度の大きさのピーク値によって当該トラック群からトラックを変化させるので、さらに多様な演奏変化を生じさせることができる。
【００２４】
上記第６および第７の発明によれば、互いに直交する複数軸方向の加速度をそれぞれ検出する加速度センサを用いているため、ユーザが入力装置を持つ方向に関わらず、入力装置の振り動かし方に応じて音楽演奏を変化させることができる。
【００２５】
上記第８の発明によれば、演奏対象とする楽器が変化している様子を表示装置に表示することができる。
【００２６】
上記第９の発明によれば、選択するトラックデータを変化させることによって演奏される楽器種が変化するため、入力装置の振り動かし方に応じて楽曲の演奏内容を変化させることができる。
【００２７】
上記第１０の発明によれば、選択するトラックデータ群を変化させることによって演奏される奏法、ビート数、曲調等が変化するため、入力装置の振り動かし方に応じて演奏される楽曲の表現を変えることができる。
【００２８】
上記第１１の発明によれば、ＭＩＤＩデータを用いて容易に実現することができる。
【００２９】
本発明の音楽演奏装置によれば、上述した音楽演奏プログラムと同様の効果を得ることができる。
【図面の簡単な説明】
【００３０】
【図１】本発明の一実施形態に係るゲームシステム１を説明するための外観図
【図２】図１のゲーム装置３の機能ブロック図
【図３】図３のコントローラ７の上面後方から見た斜視図
【図４】図３のコントローラ７を下面後方から見た斜視図
【図５Ａ】コントローラ７の上筐体を外した状態を示す斜視図
【図５Ｂ】コントローラ７の下筐体を外した状態を示す斜視図
【図６】図３のコントローラ７の構成を示すブロック図
【図７】図３のコントローラ７を用いてゲーム操作するときの状態を概説する図解図
【図８】モニタ２に表示するゲーム画像の一例を示す図
【図９】モニタ２に表示するゲーム画像の他の例を示す図
【図１０Ａ】コントローラ７を水平に静止させた状態とコントローラ７に加わる加速度との関係を説明するための図
【図１０Ｂ】コントローラ７を上方向に振り上げた状態とコントローラ７に加わる加速度との関係を説明するための図
【図１０Ｃ】コントローラ７を下方向に振り下げた状態とコントローラ７に加わる加速度との関係を説明するための図
【図１１Ａ】プレイヤがコントローラ７を大きく振り動かし、各拍子をとるタイミングでメリハリのある振り方をしたときに現れる合成ベクトルの大きさ変化の一例を示すグラフ
【図１１Ｂ】図１１Ａで示す合成ベクトルを得たときにおける差分合成ベクトルの大きさ変化の一例を示すグラフ
【図１１Ｃ】図１１Ａで示す合成ベクトルにおいて、Ｙ軸正方向の直線加速度が得られた期間を大きさ０とした大きさ変化の一例を示すグラフ
【図１２Ａ】プレイヤがコントローラ７を小さく振り動かし、各拍子をとるタイミングでメリハリのある振り方をしたときに現れる合成ベクトルの大きさ変化の一例を示すグラフ
【図１２Ｂ】図１２Ａで示す合成ベクトルを得たときにおける差分合成ベクトルの大きさ変化の一例を示すグラフ
【図１２Ｃ】図１２Ａで示す合成ベクトルにおいて、Ｙ軸正方向の直線加速度が得られた期間を大きさ０とした大きさ変化の一例を示すグラフ
【図１３Ａ】プレイヤがコントローラ７を大きく振り動かし、各拍子をとるタイミングをやわらかくメリハリが少ない振り方をしたときに現れる合成ベクトルの大きさ変化の一例を示すグラフ
【図１３Ｂ】図１３Ａで示す合成ベクトルを得たときにおける差分合成ベクトルの大きさ変化の一例を示すグラフ
【図１３Ｃ】図１３Ａで示す合成ベクトルにおいて、Ｙ軸正方向の直線加速度が得られた期間を大きさ０とした大きさ変化の一例を示すグラフ
【図１４Ａ】プレイヤがコントローラ７を小さく振り動かし、各拍子をとるタイミングをやわらかくメリハリが少ない振り方をしたときに現れる合成ベクトルの大きさ変化の一例を示すグラフ
【図１４Ｂ】図１４Ａで示す合成ベクトルを得たときにおける差分合成ベクトルの大きさ変化の一例を示すグラフ
【図１４Ｃ】図１４Ａで示す合成ベクトルにおいて、Ｙ軸正方向の直線加速度が得られた期間を大きさ０とした大きさ変化の一例を示すグラフ
【図１５】ゲーム装置３のメインメモリ３３に記憶される主なプログラムおよびデータを示す図
【図１６】シーケンスデータの一例を示す図
【図１７】シーケンスデータの他の例を示す図
【図１８】トラック選択テーブルの一例を示す図
【図１９】シーケンス選択テーブルの一例を示す図
【図２０】ゲーム装置３において実行される音楽演奏処理の流れの前半を示すフローチャート
【図２１】ゲーム装置３において実行される音楽演奏処理の流れの後半を示すフローチャート
【発明を実施するための形態】
【００３１】
図１を参照して、本発明の一実施形態に係る音楽演奏装置について説明する。以下、説明を具体的にするために、当該音楽演奏装置を用いたゲームシステム１を一例として説明する。なお、図１は、当該ゲームシステム１を説明するための外観図である。以下、本発明の音楽演奏装置に相当する据置型ゲーム装置を一例にして、当該ゲームシステム１について説明する。
【００３２】
図１において、当該ゲームシステム１は、家庭用テレビジョン受像機等のスピーカ２ａを備えたディスプレイ（以下、モニタと記載する）２に、接続コードを介して接続される据置型ゲーム装置（以下、単にゲーム装置と記載する）３および当該ゲーム装置３に操作情報を与えるコントローラ７によって構成される。ゲーム装置３は、接続端子を介して受信ユニット６が接続される。受信ユニット６は、コントローラ７から無線送信される送信データを受信し、コントローラ７とゲーム装置３とは無線通信によって接続される。また、ゲーム装置３には、当該ゲーム装置３に対して交換可能に用いられる情報記憶媒体の一例の光ディスク４が脱着される。ゲーム装置３の上部主面には、当該ゲーム装置３の電源ＯＮ／ＯＦＦスイッチ、ゲーム処理のリセットスイッチ、およびゲーム装置３上部の蓋を開くＯＰＥＮスイッチが設けられている。ここで、プレイヤがＯＰＥＮスイッチを押下することによって上記蓋が開き、光ディスク４の脱着が可能となる。
【００３３】
また、ゲーム装置３には、セーブデータ等を固定的に記憶するバックアップメモリ等を搭載する外部メモリカード５が必要に応じて着脱自在に装着される。ゲーム装置３は、光ディスク４に記憶されたゲームプログラムなどを実行することによって、その結果をゲーム画像としてモニタ２に表示する。さらに、ゲーム装置３は、外部メモリカード５に記憶されたセーブデータを用いて、過去に実行されたゲーム状態を再現して、ゲーム画像をモニタ２に表示することもできる。そして、ゲーム装置３のプレイヤは、モニタ２に表示されたゲーム画像を見ながら、コントローラ７を操作することによって、ゲーム進行を楽しむことができる。
【００３４】
コントローラ７は、その内部に備える通信部７５（後述）から受信ユニット６が接続されたゲーム装置３へ、例えばＢｌｕｅｔｏｏｔｈ（ブルートゥース；登録商標）の技術を用いて送信データを無線送信する。コントローラ７は、主にモニタ２に表示されるゲーム空間に登場するプレイヤオブジェクトを操作するための操作手段である。コントローラ７は、複数の操作ボタン、キー、およびスティック等の操作部が設けられている。また、後述により明らかとなるが、コントローラ７は、当該コントローラ７から見た画像を撮像する撮像情報演算部７４を備えている。また、撮像情報演算部７４の撮像対象の一例として、モニタ２の表示画面近傍に２つのＬＥＤモジュール（以下、マーカと記載する）８Ｌおよび８Ｒが設置される。これらマーカ８Ｌおよび８Ｒは、それぞれモニタ２の前方に向かって赤外光を出力する。なお、本実施例では、撮像情報演算部７４による撮像情報を用いないため、マーカ８Ｌおよび８Ｒを設置しなくてもかまわない。
【００３５】
次に、図２を参照して、ゲーム装置３の構成について説明する。なお、図２は、ゲーム装置３の機能ブロック図である。
【００３６】
図２において、ゲーム装置３は、各種プログラムを実行する例えばリスク（ＲＩＳＣ）ＣＰＵ（セントラルプロセッシングユニット）３０を備える。ＣＰＵ３０は、図示しないブートＲＯＭに記憶された起動プログラムを実行し、メインメモリ３３等のメモリの初期化等を行った後、光ディスク４に記憶されているゲームプログラムの実行し、そのゲームプログラムに応じたゲーム処理等を行うものである。なお、光ディスク４に記憶されているゲームプログラムが本発明の音楽演奏プログラムを含んでおり、ＣＰＵ３０は、上記ゲーム処理の中でコントローラ７の動きに応じて演奏するための音楽演奏処理も行っている。ＣＰＵ３０には、メモリコントローラ３１を介して、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３２、メインメモリ３３、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）３４、およびＡＲＡＭ（Ａｕｄｉｏ  ＲＡＭ）３５が接続される。また、メモリコントローラ３１には、所定のバスを介して、コントローラＩ／Ｆ（インターフェース）３６、ビデオＩ／Ｆ３７、外部メモリＩ／Ｆ３８、オーディオＩ／Ｆ３９、およびディスクＩ／Ｆ４１が接続され、それぞれ受信ユニット６、モニタ２、外部メモリカード５、スピーカ２ａ、およびディスクドライブ４０が接続されている。
【００３７】
ＧＰＵ３２は、ＣＰＵ３０の命令に基づいて画像処理を行うものあり、例えば、３Ｄグラフィックスの表示に必要な計算処理を行う半導体チップで構成される。ＧＰＵ３２は、図示しない画像処理専用のメモリやメインメモリ３３の一部の記憶領域を用いて画像処理を行う。ＧＰＵ３２は、これらを用いてモニタ２に表示すべきゲーム画像データやムービ映像を生成し、適宜メモリコントローラ３１およびビデオＩ／Ｆ３７を介してモニタ２に出力する。
【００３８】
メインメモリ３３は、ＣＰＵ３０で使用される記憶領域であって、ＣＰＵ３０の処理に必要なゲームプログラム等を適宜記憶する。例えば、メインメモリ３３は、ＣＰＵ３０によって光ディスク４から読み出されたゲームプログラムや各種データ等を記憶する。このメインメモリ３３に記憶されたゲームプログラムや各種データ等がＣＰＵ３０によって実行される。
【００３９】
ＤＳＰ３４は、ゲームプログラム実行時にＣＰＵ３０において処理されるサウンドデータ（例えば、ＭＩＤＩ（Ｍｕｓｉｃａｌ  Ｉｎｓｔｒｕｍｅｎｔ  Ｄｉｇｉｔａｌ  Ｉｎｔｅｒｆａｃｅ）データ）等を処理するものであり、そのサウンドデータ等を記憶するためのＡＲＡＭ３５が接続される。そして、ＭＩＤＩデータに基づいて音楽を演奏する場合、ＤＳＰ３４およびＡＲＡＭ３５がＭＩＤＩ音源として機能する。ＡＲＡＭ３５は、ＤＳＰ３４が所定の処理（例えば、先読みしておいたゲームプログラムやサウンドデータの記憶）を行う際に用いられる。ＤＳＰ３４は、ＡＲＡＭ３５に記憶されたサウンドデータを読み出し、メモリコントローラ３１およびオーディオＩ／Ｆ３９を介してモニタ２に備えるスピーカ２ａに出力させる。
【００４０】
メモリコントローラ３１は、データ転送を統括的に制御するものであり、上述した各種Ｉ／Ｆが接続される。コントローラＩ／Ｆ３６は、例えば４つのコントローラＩ／Ｆ３６ａ〜３６ｄで構成され、それらが有するコネクタを介して嵌合可能な外部機器とゲーム装置３とを通信可能に接続する。例えば、受信ユニット６は、上記コネクタと嵌合し、コントローラＩ／Ｆ３６を介してゲーム装置３と接続される。上述したように受信ユニット６は、コントローラ７からの送信データを受信し、コントローラＩ／Ｆ３６を介して当該送信データをＣＰＵ３０へ出力する。ビデオＩ／Ｆ３７には、モニタ２が接続される。外部メモリＩ／Ｆ３８には、外部メモリカード５が接続され、その外部メモリカード５に設けられたバックアップメモリ等とアクセス可能となる。オーディオＩ／Ｆ３９にはモニタ２に内蔵されるスピーカ２ａが接続され、ＤＳＰ３４がＡＲＡＭ３５から読み出したサウンドデータやディスクドライブ４０から直接出力されるサウンドデータをスピーカ２ａから出力可能に接続される。ディスクＩ／Ｆ４１には、ディスクドライブ４０が接続される。ディスクドライブ４０は、所定の読み出し位置に配置された光ディスク４に記憶されたデータを読み出し、ゲーム装置３のバスやオーディオＩ／Ｆ３９に出力する。
【００４１】
図３および図４を参照して、本発明の入力装置の一例であるコントローラ７について説明する。なお、図３は、コントローラ７の上面後方から見た斜視図である。図４は、コントローラ７を下面後方から見た斜視図である。
【００４２】
図３および図４において、コントローラ７は、例えばプラスチック成型によって形成されたハウジング７１を有しており、当該ハウジング７１に複数の操作部７２が設けられている。ハウジング７１は、その前後方向を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。
【００４３】
ハウジング７１上面の中央前面側に、十字キー７２ａが設けられる。この十字キー７２ａは、十字型の４方向プッシュスイッチであり、矢印で示す４つの方向（前後左右）に対応する操作部分が十字の突出片にそれぞれ９０°間隔で配置される。プレイヤが十字キー７２ａのいずれかの操作部分を押下することによって前後左右いずれかの方向を選択される。例えばプレイヤが十字キー７２ａを操作することによって、仮想ゲーム世界に登場するプレイヤキャラクタ等の移動方向を指示したり、カーソルの移動方向を指示したりすることができる。
【００４４】
なお、十字キー７２ａは、上述したプレイヤの方向入力操作に応じて操作信号を出力する操作部であるが、他の態様の操作部でもかまわない。例えば、リング状に４方向の操作部分を備えたプッシュスイッチとその中央に設けられたセンタスイッチとを複合した複合スイッチを上記十字キー７２ａの代わりに設けてもかまわない。また、ハウジング７１上面から突出した傾倒可能なスティックを倒すことによって、傾倒方向に応じて操作信号を出力する操作部を上記十字キー７２ａの代わりに設けてもかまわない。さらに、水平移動可能な円盤状部材をスライドさせることによって、当該スライド方向に応じた操作信号を出力する操作部を、上記十字キー７２ａの代わりに設けてもかまわない。また、タッチパッドを、上記十字キー７２ａの代わりに設けてもかまわない。また、少なくとも４つの方向（前後左右）をそれぞれ示すスイッチに対して、プレイヤによって押下されたスイッチに応じて操作信号を出力する操作部を上記十字キー７２ａの代わりに設けてもかまわない。
【００４５】
ハウジング７１上面の十字キー７２ａより後面側に、複数の操作ボタン７２ｂ〜７２ｇが設けられる。操作ボタン７２ｂ〜７２ｇは、プレイヤがボタン頭部を押下することによって、それぞれの操作ボタン７２ｂ〜７２ｇに割り当てられた操作信号を出力する操作部である。例えば、操作ボタン７２ｂ〜７２ｄには、Ｘボタン、Ｙボタン、およびＡボタン等としての機能が割り当てられる。また、操作ボタン７２ｅ〜７２ｇには、セレクトスイッチ、メニュースイッチ、およびスタートスイッチ等としての機能が割り当てられる。これら操作ボタン７２ｂ〜７２ｇは、ゲーム装置３が実行するゲームプログラムに応じてそれぞれの機能が割り当てられるが、本発明の説明とは直接関連しないため詳細な説明を省略する。なお、図３に示した配置例では、操作ボタン７２ｂ〜７２ｄは、ハウジング７１上面の中央前後方向に沿って並設されている。また、操作ボタン７２ｅ〜７２ｇは、ハウジング７１上面の左右方向に沿って操作ボタン７２ｂおよび７２ｄの間に並設されている。そして、操作ボタン７２ｆは、その上面がハウジング７１の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
【００４６】
また、ハウジング７１上面の十字キー７２ａより前面側に、操作ボタン７２ｈが設けられる。操作ボタン７２ｈは、遠隔からゲーム装置３本体の電源をオン／オフする電源スイッチである。この操作ボタン７２ｈも、その上面がハウジング７１の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
【００４７】
また、ハウジング７１上面の操作ボタン７２ｃより後面側に、複数のＬＥＤ７０２が設けられる。ここで、コントローラ７は、他のコントローラ７と区別するためにコントローラ種別（番号）が設けられている。例えば、ＬＥＤ７０２は、コントローラ７に現在設定されている上記コントローラ種別をプレイヤに通知するために用いられる。具体的には、コントローラ７から受信ユニット６へ送信データを送信する際、上記コントローラ種別に応じて複数のＬＥＤ７０２のうち、種別に対応するＬＥＤが点灯する。
【００４８】
一方、ハウジング７１下面には、凹部が形成されている。ハウジング７１下面の凹部は、プレイヤがコントローラ７を把持したときに当該プレイヤの人差し指や中指が位置するような位置に形成される。そして、上記凹部の後面側傾斜面には、操作ボタン７２ｉが設けられる。操作ボタン７２ｉは、例えばＢボタンとして機能する操作部であり、シューティングゲームにおけるトリガスイッチや、プレイヤオブジェクトを所定オブジェクトに対して注目させる操作等に用いられる。
【００４９】
また、ハウジング７１前面には、撮像情報演算部７４の一部を構成する撮像素子７４３が設けられる。ここで、撮像情報演算部７４は、コントローラ７が撮像した画像データを解析してその中で輝度が高い場所を判別してその場所の重心位置やサイズなどを検出するためのシステムであり、例えば、最大２００フレーム／秒程度のサンプリング周期であるため比較的高速なコントローラ７の動きでも追跡して解析することができる。また、ハウジング７０の後面には、コネクタ７３が設けられている。コネクタ７３は、例えば３２ピンのエッジコネクタであり、例えば接続ケーブルと嵌合して接続するために利用される。なお、本発明では、この撮像情報演算部７４からの情報を用いないため、ここではこれ以上の説明を省略する。
【００５０】
ここで、説明を具体的にするために、コントローラ７に対して設定する座標系について定義する。図３および図４に示すように、互いに直交するＸＹＺ軸をコントローラ７に対して定義する。具体的には、コントローラ７の前後方向となるハウジング７１の長手方向をＺ軸とし、コントローラ７の前面（撮像情報演算部７４が設けられている面）方向をＺ軸正方向とする。また、コントローラ７の上下方向をＹ軸とし、ハウジング７１の上面（十字キー７２ａが設けられた面）方向をＹ軸正方向とする。さらに、コントローラ７の左右方向をＸ軸とし、ハウジング７１の左側面（図３では表されずに図４で表されている側面）方向をＸ軸正方向とする。
【００５１】
次に、図５Ａおよび図５Ｂを参照して、コントローラ７の内部構造について説明する。なお、図５Ａは、コントローラ７の上筐体（ハウジング７１の一部）を外した状態を示す斜視図である。図５Ｂは、コントローラ７の下筐体（ハウジング７１の一部）を外した状態を示す斜視図である。ここで、図５Ｂに示す基板７００は、図５Ａに示す基板７００の裏面から見た斜視図となっている。
【００５２】
図５Ａにおいて、ハウジング７１の内部には基板７００が固設されており、当該基板７００の上主面上に操作ボタン７２ａ〜７２ｈ、加速度センサ７０１、ＬＥＤ７０２、水晶振動子７０３、無線モジュール７５３、およびアンテナ７５４等が設けられる。そして、これらは、基板７００等に形成された配線（図示せず）によってマイコン７５１（図６参照）に接続される。加速度センサ７０１は、コントローラ７が配置された３次元空間における傾きや振動等の算出に用いることができる加速度を検出して出力する。
【００５３】
より詳細には、図６に示すように、コントローラ７は３軸の加速度センサ７０１を備えていることが好ましい。この３軸の加速度センサ７０１は、３方向、すなわち、上下方向（図３に示すＹ軸）、左右方向（図３に示すＸ軸）、および前後方向（図３に示すＺ軸）で直線加速度を検知する。また、他の実施形態においては、ゲーム処理に用いる制御信号の種類によっては、Ｘ軸とＹ軸（または他の対になった軸）とのそれぞれに沿った直線加速度のみを検知する２軸の加速度検出手段を使用してもよい。さらに、他の実施形態においては、ゲーム処理に用いる制御信号の種類によっては、ＸＹＺ軸のいずれか１軸に沿った直線加速度のみを検知する１軸の加速度検出手段を使用してもよい。例えば、この３軸、２軸、または１軸の加速度センサ７０１は、アナログ・デバイセズ株式会社（Ａｎａｌｏｇ  Ｄｅｖｉｃｅｓ，  Ｉｎｃ．）またはＳＴマイクロエレクトロニクス社（ＳＴＭｉｃｒｏｅｌｅｃｔｒｏｎｉｃｓ  Ｎ．Ｖ．）から入手可能であるタイプのものでもよい。加速度センサ７０１は、シリコン微細加工されたＭＥＭＳ（Ｍｉｃｒｏ  Ｅｌｅｃｔｒｏ
Ｍｅｃｈａｎｉｃａｌ  Ｓｙｓｔｅｍｓ：微小電子機械システム）の技術に基づいた静電容量式（静電容量結合式）であることが好ましい。しかしながら、既存の加速度検出手段の技術（例えば、圧電方式や圧電抵抗方式）あるいは将来開発される他の適切な技術を用いて３軸、２軸、または１軸の加速度センサ７０１が提供されてもよい。
【００５４】
加速度センサ７０１に用いられるような加速度検出手段は、加速度センサ７０１の持つ各軸に対応する直線に沿った加速度（直線加速度）のみを検知することができる。つまり、加速度センサ７０１からの直接の出力は、その１軸、２軸、または３軸のそれぞれに沿った直線加速度（静的または動的）を示す信号である。このため、加速度センサ７０１は、非直線状（例えば、円弧状）の経路に沿った動き、回転、回転運動、角変位、傾斜、位置、または姿勢等の物理特性を直接検知することはできない。
【００５５】
しかしながら、加速度センサ７０１から出力される加速度の信号に対して追加の処理を行うことによって、コントローラ７に関するさらなる情報を推測または算出（判定）することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。例えば、静的な加速度（重力加速度）が検知されると、加速度センサ７０１からの出力を用いて、傾斜角度と検知された加速度とを用いた演算によって重力ベクトルに対する対象（コントローラ７）の傾きを判定することができる。このように、加速度センサ７０１をマイコン７５１（またはゲーム装置３に含まれるＣＰＵ３０等の他のプロセッサ）と組み合わせて用いることによって、コントローラ７の傾き、姿勢、または位置を判定することができる。同様に、加速度センサ７０１を備えるコントローラ７がプレイヤの手で動的に加速されて動かされる場合に、加速度センサ７０１によって生成される加速度信号を処理することによって、コントローラ７の様々な動きおよび／または位置を算出することができる。他の実施例では、加速度センサ７０１は、信号をマイコン７５１に出力する前に内蔵の加速度検出手段から出力される加速度信号に対して所望の処理を行うための、組込み式の信号処理装置または他の種類の専用の処理装置を備えていてもよい。
【００５６】
また、無線モジュール７５３およびアンテナ７５４を有する通信部７５によって、コントローラ７がワイヤレスコントローラとして機能する。なお、水晶振動子７０３は、後述するマイコン７５１の基本クロックを生成する。
【００５７】
一方、図５Ｂにおいて、基板７００の下主面上の前端縁に撮像情報演算部７４が設けられる。撮像情報演算部７４は、コントローラ７の前方から順に赤外線フィルタ７４１、レンズ７４２、撮像素子７４３、および画像処理回路７４４によって構成されており、それぞれ基板７００の下主面に取り付けられる。また、基板７００の下主面上の後端縁にコネクタ７３が取り付けられる。そして、操作ボタン７２ｉが撮像情報演算部７４の後方の基板７００の下主面上に取り付けられていて、それよりさらに後方に、電池７０５が収容される。電池７０５とコネクタ７３との間の基板７００の下主面上には、バイブレータ７０４が取り付けられる。このバイブレータ７０４は、例えば振動モータやソレノイドであってよい。バイブレータ７０４が作動することによってコントローラ７に振動が発生するので、それを把持しているプレイヤの手にその振動が伝達され、いわゆる振動対応ゲームが実現できる。
【００５８】
次に、図６を参照して、コントローラ７の内部構成について説明する。なお、図６は、コントローラ７の構成を示すブロック図である。
【００５９】
撮像情報演算部７４は、赤外線フィルタ７４１、レンズ７４２、撮像素子７４３、および画像処理回路７４４を含んでいる。赤外線フィルタ７４１は、コントローラ７の前方から入射する光から赤外線のみを通過させる。レンズ７４２は、赤外線フィルタ７４１を透過した赤外線を集光して撮像素子７４３へ出射する。撮像素子７４３は、例えばＣＭＯＳセンサやあるいはＣＣＤのような固体撮像素子であり、レンズ７４２が集光した赤外線を撮像する。したがって、撮像素子７４３は、赤外線フィルタ７４１を通過した赤外線だけを撮像して画像データを生成する。撮像素子７４３で生成された画像データは、画像処理回路７４４で処理される。具体的には、画像処理回路７４４は、撮像素子７４３から得られた画像データを処理して高輝度部分を検知し、それらの位置座標や面積を検出した結果を示す処理結果データを通信部７５へ出力する。なお、これらの撮像情報演算部７４は、コントローラ７のハウジング７１に固設されており、ハウジング７１自体の方向を変えることによってその撮像方向を変更することができる。
【００６０】
加速度センサ７０１は、上述したようにコントローラ７の上下方向（Ｙ軸方向）、左右方向（Ｘ軸方向）、および前後方向（Ｚ軸方向）の３軸成分に分けてそれぞれ加速度を検知して出力するセンサである。加速度センサ７０１が検知した３軸成分の加速度を示すデータは、それぞれ通信部７５へ出力される。この加速度センサ７０１から出力される加速度データに基づいて、コントローラ７の傾きや動きを判別することができる。なお、加速度センサ７０１は、特定のアプリケーションで必要なデータに応じて何れか２軸に対してそれぞれ加速度を検出する加速度センサや何れか１軸（例えば、Ｙ軸）に対して加速度を検出する加速度センサが用いられてもかまわない。
【００６１】
通信部７５は、マイクロコンピュータ（Ｍｉｃｒｏ  Ｃｏｍｐｕｔｅｒ：マイコン）７５１、メモリ７５２、無線モジュール７５３、およびアンテナ７５４を含んでいる。マイコン７５１は、処理の際にメモリ７５２を記憶領域として用いながら、送信データを無線送信する無線モジュール７５３を制御する。
【００６２】
コントローラ７に設けられた操作部７２からの操作信号（キーデータ）、加速度センサ７０１からの３軸方向の加速度信号（Ｘ、Ｙ、およびＺ軸方向加速度データ）、および撮像情報演算部７４からの処理結果データは、マイコン７５１に出力される。マイコン７５１は、入力した各データ（キーデータ、Ｘ、Ｙ、およびＺ軸方向加速度データ、処理結果データ）を受信ユニット６へ送信する送信データとして一時的にメモリ７５２に格納する。ここで、通信部７５から受信ユニット６への無線送信は、所定の周期毎に行われるが、ゲームの処理は１／６０秒を単位として行われることが一般的であるので、それよりも短い周期で送信を行うことが必要となる。具体的には、ゲームの処理単位は１６．７ｍｓ（１／６０秒）であり、ブルートゥース（登録商標）で構成される通信部７５の送信間隔は５ｍｓである。マイコン７５１は、受信ユニット６への送信タイミングが到来すると、メモリ７５２に格納されている送信データを一連の操作情報として出力し、無線モジュール７５３へ出力する。そして、無線モジュール７５３は、例えばＢｌｕｅｔｏｏｔｈ（ブルートゥース；登録商標）の技術を用いて、所定周波数の搬送波を用いて操作情報をその電波信号としてアンテナ７５４から放射する。つまり、コントローラ７に設けられた操作部７２からのキーデータ、加速度センサ７０１からのＸ、Ｙ、およびＺ軸方向加速度データ、および撮像情報演算部７４からの処理結果データがコントローラ７から送信される。そして、ゲーム装置３の受信ユニット６でその電波信号を受信し、ゲーム装置３で当該電波信号を復調や復号することによって、一連の操作情報（キーデータ、Ｘ、Ｙ、およびＺ軸方向加速度データ、および処理結果データ）を取得する。そして、ゲーム装置３のＣＰＵ３０は、取得した操作情報とゲームプログラムとに基づいて、ゲーム処理を行う。なお、Ｂｌｕｅｔｏｏｔｈ（登録商標）の技術を用いて通信部７５を構成する場合、通信部７５は、他のデバイスから無線送信された送信データを受信する機能も備えることができる。
【００６３】
次に、ゲーム装置３が行う具体的な処理を説明する前に、本ゲーム装置３で行うゲームの概要について説明する。図７に示すように、コントローラ７は、全体として大人や子供の片手で把持可能な大きさである。そして、ゲームシステム１でコントローラ７を用いてゲームをプレイするためには、コントローラ７を指揮棒のように振り動かして、再生される音楽の変化を楽しむことができる。具体的には、プレイヤは、モニタ２で表現されている楽器群（または、楽器群をそれぞれ演奏するキャラクタ）を表すゲーム画像を見ながら、演奏する楽器数や種類（音の数）、奏法（レガートやスタッカート）、ビート数（８ビートや１６ビート）、音調（長調や短調）、演奏テンポ、演奏音量等がプレイヤの望む演奏となるようにコントローラ７を指揮棒のように振り動かす。これによって、コントローラ７からプレイヤがコントローラ７を振り動かしたことによる操作情報（具体的には、Ｘ、Ｙ、およびＺ軸方向加速度データ）がゲーム装置３に与えられる。
【００６４】
例えば、図８および図９に示すように、モニタ２にはプレイヤキャラクタＰＣと、当該プレイヤキャラクタＰＣが指揮する楽器群（または、楽器それぞれを演奏するキャラクタ群）とが表示される。なお、図８および図９の例では、ピアノＰ、サキソフォンＳＡＸ、クラリネットＣＬ、ギターＧ、ホルンＨＲＮ、およびバイオリンＶＮが表示される楽器群の一例として示されている。後述により明らかとなるが、プレイヤは、例えばコントローラ７を振り動かす強弱に応じて演奏する楽器数や種類（音の数）を変化させることができ、モニタ２に表示されるゲーム画像も演奏している楽器種がわかるように表現される。図８に示したゲーム画像例では、プレイヤがコントローラ７を振り動かす動作に応じて、ピアノＰおよびギターＧが演奏している形態を示している。また、図９に示したゲーム画像例では、プレイヤがコントローラ７を振り動かす動作に応じて、全ての楽器が演奏している形態を示している。
【００６５】
図１０Ａ〜図１０Ｃは、コントローラ７を上下方向に振り上げまたは振り下げた状態とコントローラ７に加わる加速度との関係を説明するための図である。コントローラ７にはプレイヤが振り動かすことによって生じる動的な加速度（振り加速度）と静的な重力加速度とが加わっており、加速度センサ７０１は、これらの加速度によって生じる上下方向（Ｙ軸）、左右方向（Ｘ軸）、および前後方向（Ｚ軸）の直線加速度をそれぞれ検知する。
【００６６】
図１０Ａに示すように、プレイヤがコントローラ７の上面（十字キー７２ａが設けられた面）を上に向けて水平に静止させたとき、重力加速度がＹ軸負方向に作用する。
【００６７】
一方、図１０Ｂに示すように、プレイヤがコントローラ７を上方向へ振り上げたとき、Ｙ軸正方向の振り加速度が生じる。そして、コントローラ７を振り上げる速度が速い程、その振り加速度が大きくなる。なお、重力加速度は、コントローラ７のＹ軸負方向とＺ軸負方向との間の方向に作用する。
【００６８】
また、図１０Ｃに示すように、プレイヤがコントローラ７を下方向へ振り下げたとき、Ｙ軸負方向の振り加速度が生じる。そして、コントローラ７を振り下げる速度が速い程、その振り加速度が大きくなる。なお、重力加速度は、コントローラ７のＹ軸負方向とＺ軸正方向との間の方向に作用する。
【００６９】
このように、プレイヤがコントローラ７を振り動かしたとき、加速度センサ７０１は、その振り動かす方向にその速さに応じた大きさの動的な加速度を検出する。しかしながら、現実にコントローラ７に作用する加速度は図１０Ａ〜図１０Ｃに示すような単純な方向や大きさで生じない。実際には、振り上げまたは振り下げによる遠心力等もコントローラ７に作用し、プレイヤが左右方向にコントローラ７を振ったりひねられたりすることによって加速度が生じる方向も様々に変化する。本実施形態では、加速度センサ７０１が検出した３軸方向の直線加速度から算出される合成ベクトルの大きさおよび３軸方向それぞれの直線加速度の差分（つまり、加速度の変化）から算出される差分合成ベクトルの大きさを用いて、プレイヤがコントローラ７を振り動かす動作を分析している。
【００７０】
図１１Ａは、プレイヤがコントローラ７を大きく振り動かし、各拍子をとるタイミングでメリハリのある振り方をしたときに現れる合成ベクトルの大きさ変化の一例を示すグラフである。図１１Ｂは、図１１Ａで示す合成ベクトルを得たときに３軸方向それぞれの直線加速度の差分から算出される差分合成ベクトルの大きさ変化の一例を示すグラフである。図１１Ｃは、図１１Ａで示す合成ベクトルにおいて、Ｙ軸正方向の直線加速度が得られた期間を大きさ０として当該合成ベクトルの大きさ変化の一例を示すグラフである。なお、図１１Ａ〜図１１Ｃは、全て横軸が同じ時間軸である。
【００７１】
加速度センサ７０１から出力される加速度データが示すＸ軸方向の加速度をＸａ、Ｙ軸方向の加速度をＹａ、Ｚ軸方向の加速度をＺａとすると、合成ベクトルの大きさＶは、
【数１】
2011008284.tif 000003
で算出される。そして、プレイヤが２拍子や４拍子のように指揮棒で拍子をとるようにコントローラ７を振り動かすと、図１１Ａに示すように合成ベクトルの大きさＶがその拍子に合わせて増減する。具体的には、プレイヤがコントローラ７を振り動かす際に、最も力を入れてコントローラ７の動きを加減速させたタイミングで、合成ベクトルの大きさＶが最も大きくなる。一般的に、プレイヤは、各拍子をとるタイミングでコントローラ７に対してメリハリのある動作（例えば、拍子のタイミングで素早く下へ振り動かしている動作を急停止させたり、逆方向へ素早く振り上げたりする）を与えるため、各拍子のタイミングで合成ベクトルの大きさＶがピークを示す。
【００７２】
しかしながら、プレイヤの振り方によっては、各拍子のタイミング以外で合成ベクトルの大きさＶがピークを示すこともある。例えば、上下方向へコントローラ７を振り動かすときの振り下げ時に拍子をとる場合、振り上げから振り下げに移るときに合成ベクトルの大きさＶが大きくなることもある。また、一般的な指揮棒の４拍子でプレイヤがコントローラ７を振るとき、１拍子目から２拍子目移る途中で合成ベクトルの大きさＶが大きくなることもある。このような拍子のタイミング以外で生じる合成ベクトルの大きさＶのピークを除去するため、所定軸方向（例えば、Ｙ軸正方向）の直線加速度が得られた期間については、大きさＶ＝０とする（図１１Ｃ）。これによって、拍子のタイミングで生じる加速度とは逆方向に生じた成分による大きさＶのピークを除去することができ、各拍子のタイミングに応じたピーク値のみ抽出することができる。そして、これらのピーク値の時間間隔を算出することによって、拍子のテンポを算出することができる。なお、図１１Ｃにおいては、各拍子のタイミングに応じた合成ベクトルの大きさＶのピーク値を、ピーク値Ｖｐ１〜Ｖｐ６（以下、合成ベクトルピーク値Ｖｐと記載することがある）で示している。また、ピーク値Ｖｐ１〜Ｖｐ３を用いて得られるテンポを時間ｔ１およびｔ２で示している。
【００７３】
一方、加速度センサ７０１から出力される加速度データが示す前回のＸ軸方向の加速度をＸａ０、Ｙ軸方向の加速度をＹａ０、Ｚ軸方向の加速度をＺａ０とすると、差分合成ベクトルの大きさＤは、
【数２】
2011008284.tif 000004
で算出される。図１１Ｂに示すように、プレイヤが拍子をとるようにコントローラ７を振り動かすと、コントローラ７に生じる加速度の増減に応じて差分合成ベクトルの大きさＤの値が変化する。具体的には、プレイヤが激しくメリハリをつけて拍子をとるようにコントローラ７を振り動かすと、コントローラ７に生じる加速度の増減が激しくなって差分合成ベクトルの大きさＤの値が大きくなる。差分合成ベクトルの大きさＤのピークは、合成ベクトルの大きさＶのピーク直前に生じることが一般的である。図１１Ｂおよび図１１Ｃの一例では、合成ベクトルピーク値Ｖｐ１〜Ｖｐ６が生じる直前に、差分合成ベクトルの大きさＤのピーク値Ｄｐ１〜Ｄｐ６（以下、差分合成ベクトルピーク値Ｄｐと記載することがある）が生じている様子を示している。
【００７４】
以下、図１１〜図１４を参照して、プレイヤがコントローラ７を振り動かす態様に応じて生じる合成ベクトルの大きさＶおよび差分合成ベクトルの大きさＤの例について説明する。具体的には、プレイヤがコントローラ７を振り動かす大きさと、プレイヤがコントローラ７を振り動かすやわらかさ（メリハリの有無）とを変えたときに生じる合成ベクトルの大きさＶおよび差分合成ベクトルの大きさＤについて説明する。なお、図１２Ａは、プレイヤがコントローラ７を小さく振り動かし、各拍子をとるタイミングでメリハリのある振り方をしたときに現れる合成ベクトルの大きさ変化の一例を示すグラフである。図１２Ｂは、図１２Ａで示す合成ベクトルを得たときに３軸方向それぞれの直線加速度の差分から算出される差分合成ベクトルの大きさ変化の一例を示すグラフである。図１２Ｃは、図１２Ａで示す合成ベクトルにおいて、Ｙ軸正方向の直線加速度が得られた期間を大きさ０として当該合成ベクトルの大きさ変化の一例を示すグラフである。図１３Ａは、プレイヤがコントローラ７を大きく振り動かし、各拍子をとるタイミングをやわらかくメリハリが少ない振り方をしたときに現れる合成ベクトルの大きさ変化の一例を示すグラフである。図１３Ｂは、図１３Ａで示す合成ベクトルを得たときに３軸方向それぞれの直線加速度の差分から算出される差分合成ベクトルの大きさ変化の一例を示すグラフである。図１３Ｃは、図１３Ａで示す合成ベクトルにおいて、Ｙ軸正方向の直線加速度が得られた期間を大きさ０として当該合成ベクトルの大きさ変化の一例を示すグラフである。図１４Ａは、プレイヤがコントローラ７を小さく振り動かし、各拍子をとるタイミングをやわらかくメリハリが少ない振り方をしたときに現れる合成ベクトルの大きさ変化の一例を示すグラフである。図１４Ｂは、図１４Ａで示す合成ベクトルを得たときに３軸方向それぞれの直線加速度の差分から算出される差分合成ベクトルの大きさ変化の一例を示すグラフである。図１４Ｃは、図１４Ａで示す合成ベクトルにおいて、Ｙ軸正方向の直線加速度が得られた期間を大きさ０として当該合成ベクトルの大きさ変化の一例を示すグラフである。
【００７５】
コントローラ７を大きく振り動かしたときのピーク値Ｖｐ（図１１Ｃおよび図１３Ｃのピーク値Ｖｐ）と、コントローラ７を小さく振り動かしたときのピーク値Ｖｐ（図１２Ｃおよび図１４Ｃのピーク値Ｖｐ）とを比較すると、大きく振り動かしたときのピーク値Ｖｐが大きくなる。これは、同じテンポでコントローラ７を振り動かした場合、相対的に大きく振り動かす方がコントローラ７を速く移動させることが必要となり、検出される加速度が大きくなるためであると考えられる。したがって、ピーク値Ｖｐの値を用いて、プレイヤがコントローラ７を振り動かす大きさを判定することができる。
【００７６】
一方、コントローラ７を大きく振り動かして各拍子をとるタイミングでコントローラ７にメリハリをつけて振り動かしたときのピーク値Ｄｐ（図１１Ｂのピーク値Ｄｐ）と、コントローラ７をやわらかくメリハリが少ない振り方で振り動かしたときのピーク値Ｄｐ（図１３Ｂのピーク値Ｄｐ）とを比較すると、メリハリをつけて振り動かしたときのピーク値Ｄｐが大きくなる。また、コントローラ７を小さく振り動かして各拍子をとるタイミングでコントローラ７にメリハリをつけて振り動かしたときのピーク値Ｄｐ（図１２Ｂのピーク値Ｄｐ）と、コントローラ７をやわらかくメリハリが少ない振り方で振り動かしたときのピーク値Ｄｐ（図１４Ｂのピーク値Ｄｐ）とを比較しても、メリハリをつけて振り動かしたときのピーク値Ｄｐが大きくなる。したがって、ピーク値Ｄｐの値を用いて、プレイヤがコントローラ７を振り動かすやわらかさ（メリハリの有無）を判定することができる。
【００７７】
ここで、コントローラ７を小さくメリハリをつけて振り動かしたときのピーク値Ｄｐ（図１２Ｂのピーク値Ｄｐ）と、コントローラ７を大きくやわらかく振り動かしたときのピーク値Ｄｐ（図１３Ｂのピーク値Ｄｐ）とを比較すると、両者の差が小さく区別が困難となることがある。しかしながら、両者は、ピーク値Ｖｐによって振り動かす大きさが区別されているため、ピーク値Ｖｐによってピーク値Ｄｐの判定基準（閾値Ｄ１）を変更すれば、コントローラ７を振り動かすときのメリハリの強弱をピーク値Ｄｐの値によって判定することが可能となる。
【００７８】
本実施形態では、加速度データを用いてプレイヤがコントローラ７を振り動かす大きさおよびメリハリの大小等を判定し、判定結果に基づいて音楽の演奏内容（演奏する楽器数や種類、奏法、ビート数、音調等）を変化させる。これによって、プレイヤは、コントローラ７の振り動かし方によって、演奏される楽曲の表現（アーティキュレーション；ａｒｔｉｃｕｌａｔｉｏｎ）を変えることができる。さらに、プレイヤがコントローラ７を振り動かすタイミングに応じて演奏テンポを変化させ、振り動かす加速度の大きさに応じて演奏音量を変化させる。
【００７９】
次に、ゲームシステム１において行われる音楽演奏処理の詳細を説明する。まず、図１５〜図１９を参照して、音楽演奏処理において用いられる主なプログラムおよびデータについて説明する。なお、図１５は、ゲーム装置３のメインメモリ３３に記憶される主なプログラムおよびデータを示す図である。図１６は、シーケンスデータの一例を示す図である。図１７は、シーケンスデータの他の例を示す図である。図１８は、トラック選択テーブルの一例を示す図である。図１９は、シーケンス選択テーブルの一例を示す図である。
【００８０】
図１５に示すように、メインメモリ３３には、プログラム記憶領域３３Ｐおよびデータ記憶領域３３Ｄが設定される。プログラム記憶領域３３Ｐには、音楽演奏プログラムＰａ、加速度取得プログラムＰｂ、合成ベクトル算出プログラムＰｃ、合成ベクトルピーク値検出プログラムＰｄ、加速度差分算出プログラムＰｅ、差分合成ベクトル算出プログラムＰｆ、差分合成ベクトルピーク値検出プログラムＰｇ、トラック選択プログラムＰｈ、シーケンス選択プログラムＰｉ、テンポ算出プログラムＰｊ、およびシーケンス演奏プログラムＰｋ等が記憶される。また、データ記憶領域３３Ｄには、加速度データＤａ、合成ベクトル履歴データＤｂ、差分合成ベクトル履歴データＤｃ、楽曲データＤｄ、トラック選択テーブルデータＤｅ、シーケンス選択テーブルデータＤｆ、および画像データＤｇ等が記憶される。なお、メインメモリ３３には、図１５に示す情報に含まれるデータの他、ゲームに登場するプレイヤキャラクタＰＣや他のキャラクタ等に関するデータ（位置データ等）や仮想ゲーム空間に関するデータ（背景データ等）等、ゲーム処理に必要なデータが記憶される。
【００８１】
音楽演奏プログラムＰａは、音楽演奏処理全体（後述するステップ５１〜ステップ７０；以下、各プログラムに対応するステップ番号のみを示す）を定義するプログラムである。この音楽演奏プログラムＰａの実行開始によって音楽演奏処理が開始される。加速度取得プログラムＰｂは、コントローラ７から送信された加速度データを受信して取得する処理（ステップ５４）を定義する。合成ベクトル算出プログラムＰｃは、取得した加速度データに基づいて、合成ベクトルの大きさを算出する処理（ステップ５５）を定義する。合成ベクトルピーク値検出プログラムＰｄは、所定のピーク検出アルゴリズムに基づいて、算出された合成ベクトルの大きさにおけるピーク値を検出する処理（ステップ６１）を定義する。加速度差分算出プログラムＰｅは、取得した加速度データに基づいて、前回取得した加速度データとの差分を算出する処理（ステップ５７）を定義する。差分合成ベクトル算出プログラムＰｆは、算出された各軸の差分を用いて、差分合成ベクトルの大きさを算出する処理（ステップ５８）を定義する。差分合成ベクトルピーク値検出プログラムＰｇは、所定のピーク検出アルゴリズムに基づいて、算出された差分合成ベクトルの大きさにおけるピーク値を検出する処理（ステップ６４）を定義する。トラック選択プログラムＰｈは、合成ベクトルの大きさにおけるピーク値に応じて、演奏するトラックを選択する処理（ステップ６３）を定義する。シーケンス選択プログラムＰｉは、差分合成ベクトルの大きさにおけるピーク値や最大値に応じて、演奏するシーケンスを選択する処理（ステップ６６、ステップ７０）を定義する。テンポ算出プログラムＰｊは、合成ベクトルの大きさにおけるピーク値の時間間隔に応じて拍タイミングを決定する処理（ステップ６７）を定義する。シーケンス演奏プログラムＰｋは、設定された演奏パラメータに基づいて、選択されているシーケンスデータおよびトラックデータに応じた演奏データを演奏する処理（ステップ６８）を定義する。
【００８２】
加速度データＤａは、コントローラ７から送信データとして送信されてくる一連の操作情報に含まれる加速度データである。加速度データＤａには、加速度センサ７０１がＸ、Ｙ、およびＺ軸の３軸成分に分けてそれぞれ検出したＸ軸方向加速度データＤａ１、Ｙ軸方向加速度データＤａ２、およびＺ軸方向加速度データＤａ３が含まれる。なお、ゲーム装置３に備える受信ユニット６は、コントローラ７から所定間隔例えば５ｍｓごとに送信される操作情報に含まれる加速度データを受信し、受信ユニット６に備える図示しないバッファに蓄えられる。その後、所定の音楽演奏処理周期毎やゲーム処理間隔である１フレーム毎に読み出されてメインメモリ３３の加速度データＤａが更新される。本実施例では、加速度データＤａは、コントローラ７から送信された最新の加速度データと前回取得した加速度データとが格納されればよいが、過去所定フレーム分の加速度データを格納するようにしてもよい。
【００８３】
合成ベクトル履歴データＤｂは、算出された合成ベクトルの大きさの履歴が所定期間分記録されたデータである。差分合成ベクトル履歴データＤｃは、算出された差分合成ベクトルの大きさの履歴が所定期間分記録されたデータである。
【００８４】
楽曲データＤｄは、例えばＭＩＤＩ形式の音源制御データで構成され、複数の楽曲データＤｄ１、Ｄｄ２、…を含んでいる。楽曲データＤｄ１、Ｄｄ２、…は、それぞれ複数のシーケンスデータを含んでおり、図１５においては楽曲データＤｄ１に含まれるシーケンスデータＳｄ１およびＳｄ２を一例として示している。以下、図１６および図１７を参照して、シーケンスデータＳｄ１およびＳｄ２について説明する。
【００８５】
図１６および図１７において、シーケンスデータＳｄ１およびＳｄ２では、複数の楽器をＭＩＤＩチャンネルと称する複数のトラック（チャンネル）に割り当てることにより、各楽器に割り当てたトラック番号で各々の楽器を指定して、複数の楽器の動作を選択的に制御できるようにしている。つまり、シーケンスデータＳｄ１およびＳｄ２では、１つのトラック（チャンネル）が音楽演奏上の１パート（１つの楽器）に割り当てられて構成されている。シーケンスデータＳｄ１およびＳｄ２は、ＤＳＰ３４およびＡＲＡＭ３５（音源）によって複数の楽器による演奏を行うために利用される。上記音源は、楽器それぞれに対応する音色を有しており、トラック毎に異なる音色を割り当てて、指定されたトラック番号に応じた音色の楽音を発生する。そして、上記音源は、ＣＰＵ３０から指示される演奏パラメータに基づいて指定された音程、音色、音量の楽音を指定された演奏テンポで発音する。
【００８６】
具体的には、シーケンスデータＳｄ１およびＳｄ２は、１６トラックのトラックデータＴｄ１０１〜Ｔｄ１１６およびＴｄ２０１〜Ｔｄ２１６をそれぞれ有している。各トラックには、トラック番号、楽器名称、およびトラック演奏データがそれぞれ記述されている。各トラックデータＴｄは、トラック番号「１」がフルート、トラック番号「２」がバイオリン、トラック番号「３」がピアノのように、各トラック番号に異なった楽器が割り当てられ、それぞれ対応するトラック演奏データが記述されている。トラック演奏データは、各楽器の発音開始（ノートオン）および発音停止（ノートオフ）を示す情報、音の高さを示す情報、発音の強さを示す情報等を含む音符的な情報である。ＤＳＰ３４およびＡＲＡＭ３５は、トラック番号および演奏タイミングに応じたトラック演奏データとが指示されることによって、所定の音色の楽音を発生することができる。
【００８７】
シーケンスデータＳｄ１およびＳｄ２は、共に同じ楽曲を示すデータであるが、一例として奏法が異なったトラック演奏データが記述される。例えば、図１６に示すシーケンスデータＳｄ１は、各楽器（トラック）が音を滑らかに続けて発音する円滑奏法（レガート；Ｌｅｇａｔｏ）によるトラック演奏データが記述されている。一方、図１７に示すシーケンスデータＳｄ２は、音楽的に適切な音符のみを１音符ずつ音を分離して各楽器が発音する分離奏法（スタッカート；Ｓｔａｃｃａｔｏ）によるトラック演奏データが記述されている。
【００８８】
他のシーケンスデータＳｄ１およびＳｄ２の設定例として、シーケンスデータＳｄ１に８ビートによるトラック演奏データを記述して、シーケンスデータＳｄ２に１６ビートによるトラック演奏データを記述する等、同じ楽曲でもビート数を変えたトラック演奏データを記述してもよい。また、シーケンスデータＳｄ１に短調によるトラック演奏データを記述して、シーケンスデータＳｄ２に長調によるトラック演奏データを記述する等、同じ楽曲でも曲調を変えたトラック演奏データを記述してもよい。シーケンスデータＳｄ１およびＳｄ２には、同じ楽曲でも楽曲の表現が異なるようなトラック演奏データがそれぞれ記述される。なお、１つの楽曲に対して３つ以上のシーケンスデータＳｄを設定してもかまわない。この場合、後述する選択シーケンステーブルを３区分以上に設定すれば、同様に本発明を実現することができる。
【００８９】
このように、１つの楽曲データＤｄは、奏法、ビート数、音調等が異なったシーケンスデータＳｄを含んでおり、各シーケンスデータＳｄは演奏対象となる楽器がそれぞれ異なったトラックデータＴｄを含んでいる。
【００９０】
トラック選択テーブルデータＤｅは、合成ベクトルの大きさにおけるピーク値に応じて選択されるトラック番号を示すテーブルデータであり、演奏対象となる楽曲毎に設定されている。以下、図１８を参照して、トラック選択テーブルデータＤｅの一例について説明する。
【００９１】
図１８において、トラック選択テーブルデータＤｅとして記憶されるトラック選択テーブルは、合成ベクトルピーク値Ｖｐに対応する選択トラック番号が記述されている。例えば、合成ベクトルピーク値Ｖｐが閾値Ｖ１未満の場合、トラック番号「１」、「３」、および「５」が選択されることがトラック選択テーブルに記述されている。合成ベクトルピーク値Ｖｐが閾値Ｖ１以上で閾値Ｖ２未満の場合、トラック番号「１」〜「３」、「５」、「１０」、および「１２」が選択されることがトラック選択テーブルに記述されている。合成ベクトルピーク値Ｖｐが閾値Ｖ２以上で閾値Ｖ３未満の場合、トラック番号「１」〜「３」、「５」、「７」、「８」、「１０」、「１２」、「１５」、および「１６」が選択されることがトラック選択テーブルに記述されている。そして、合成ベクトルピーク値Ｖｐが閾値Ｖ３以上の場合、全てのトラック番号（つまり、トラック番号「１」〜「１６」）が選択されることがトラック選択テーブルに記述されている。
【００９２】
シーケンス選択テーブルデータＤｆは、差分合成ベクトルの大きさにおけるピーク値に応じて選択されるシーケンス番号を示すテーブルデータであり、演奏対象となる楽曲毎に設定されている。以下、図１９を参照して、シーケンス選択テーブルデータＤｆの一例について説明する。
【００９３】
図１９において、シーケンス選択テーブルデータＤｆとして記憶されるシーケンス選択テーブルは、差分合成ベクトルピーク値Ｄｐに対応する選択シーケンス番号が記述されている。例えば、差分合成ベクトルピーク値Ｄｐが閾値Ｄ１未満の場合、シーケンス番号「Ｓｄ１」が選択されることがシーケンス選択テーブルに記述されている。また、差分合成ベクトルピーク値Ｄｐが閾値Ｄ１以上の場合、シーケンス番号「Ｓｄ２」が選択されることがシーケンス選択テーブルに記述されている。
【００９４】
画像データＤｇは、プレイヤキャラクタ画像データや他のキャラクタ画像データ等を含み、仮想ゲーム空間にプレイヤキャラクタや他のキャラクタを配置してゲーム画像を生成するためのデータである。
【００９５】
次に、図２０および図２１を参照して、ゲーム装置３において行われる音楽演奏処理の詳細を説明する。なお、図２０は、ゲーム装置３において実行される音楽演奏処理の流れの前半を示すフローチャートである。図２１は、ゲーム装置３において実行される音楽演奏処理の流れの後半を示すフローチャートである。なお、図２０および図２１に示すフローチャートにおいては、ゲーム処理のうち、音楽演奏処理に関わる処理ついて説明し、本願発明と直接関連しない他のゲーム処理については詳細な説明を省略する。また、図２０および図２１では、ＣＰＵ３０が実行する各ステップを「Ｓ」と略称する。
【００９６】
ゲーム装置３の電源が投入されると、ゲーム装置３のＣＰＵ３０は、図示しないブートＲＯＭに記憶されている起動プログラムを実行し、これによってメインメモリ３３等の各ユニットが初期化される。そして、光ディスク４に記憶されたゲームプログラムがメインメモリ３３に読み込まれ、ＣＰＵ３０によって当該ゲームプログラムの実行が開始される。図２０〜図２１に示すフローチャートは、以上の処理が完了した後に行われる音楽演奏処理を示すフローチャートである。
【００９７】
図２０において、ＣＰＵ３０は、音楽演奏処理を行うための初期設定を行い（ステップ５１）、処理を次のステップに進める。例えば、ＣＰＵ３０は、初期設定として、音楽演奏処理処理を行う楽曲を選択して楽曲データＤｄから選択対象の楽曲データを抽出する。また、ＣＰＵ３０は、演奏対象とするシーケンスデータおよびトラックデータをデフォルト値に設定する。
【００９８】
次に、ＣＰＵ３０は、シーケンスのカウント処理を行い（ステップ５２）、シーケンス終了か否かを判断する（ステップ５３）。そして、演奏対象となっているシーケンスデータの最後までカウントされた場合、ＣＰＵ３０は、シーケンス終了と判断して、当該フローチャートによる処理を終了する。一方、ＣＰＵ３０は、演奏対象となっているシーケンスデータの途中までのカウントである場合、次のステップ５４に処理を進める。ここで、上記ステップ５２で行うカウント処理は、シーケンスデータ（図１６、図１７参照）からトラック演奏データを順番に読み出す際に、どのタイミングのトラック演奏データを読み出すのかを示すカウント値を設定する処理であり、設定される拍タイミングに応じてカウント値の進行が変化する。なお、後述により明らかとなるが、本実施形態ではプレイヤの操作に応じて演奏対象となるシーケンスデータが変化する。したがって、上記ステップ５２で行うカウント処理で進行したカウント値は、演奏対象となりえる複数のシーケンスデータ（つまり、同じ楽曲データに所属するシーケンスデータ）を対象としており、複数のシーケンスデータに対するカウントが同時並行で進行することになる。
【００９９】
ステップ５４において、ＣＰＵ３０は、コントローラ７から受信した操作情報に含まれる各軸の加速度データを取得し、処理を次のステップに進める。そして、ＣＰＵ３０は、取得した加速度データを加速度データＤａとしてメインメモリ３３に記憶する。ここで、ステップ５４で取得される加速度データには、加速度センサ７０１がＸ、Ｙ、およびＺ軸の３軸成分に分けてそれぞれ検出したＸ、Ｙ、およびＺ軸方向加速度データが含まれている。ここでは、通信部７５は、所定の時間間隔（例えば５ｍｓ間隔）で操作情報をゲーム装置３へ送信しており、受信ユニット６に備える図示しないバッファに少なくとも加速度データが蓄えられる。そして、ＣＰＵ３０は、所定の音楽演奏処理周期毎やゲーム処理単位である１フレーム毎にバッファに蓄えられた加速度データを取得してメインメモリ３３に格納する。なお、メインメモリ３３に取得した最新の加速度データを格納する際、前回取得して格納された加速度データＤａを少なくとも残すように、すなわち最新の２回取得分の加速度データが常に格納されているように加速度データＤａが更新される。
【０１００】
次に、ＣＰＵ３０は、上記ステップ５４で取得したＸ軸方向加速度データＤａ１、Ｙ軸方向加速度データＤａ２、およびＺ軸方向加速度データＤａ３を用いて、合成ベクトルの大きさＶを算出する（ステップ５５）。具体的には、ＣＰＵ３０は、Ｘ軸方向加速度データＤａ１が示す加速度をＸａ、Ｙ軸方向加速度データＤａ２が示す加速度をＹａ、およびＺ軸方向加速度データＤａ３が示す加速度をＺａとして、上記数式（１）を用いて大きさＶを算出する。そして、ＣＰＵ３０は、算出した大きさＶを合成ベクトル履歴データＤｂの最新データとして記録し（ステップ５６）、処理を次のステップに進める。ここで、ＣＰＵ３０は、Ｙ軸方向加速度データＤａ２がＹ軸正方向の加速度を示している場合、大きさＶ＝０として記録する。これは、上述したように、拍子のタイミングで生じる加速度とは逆方向に生じた成分による大きさＶのピークを除去するためであり、Ｖ＝０として記録することによって後述するステップ６１において各拍子のタイミングに応じたピーク値のみ抽出することができる。
【０１０１】
次に、ＣＰＵ３０は、上記ステップ５４で取得したＸ軸方向加速度データＤａ１、Ｙ軸方向加速度データＤａ２、およびＺ軸方向加速度データＤａ３と、前回取得したＸ軸方向加速度データＤａ１、Ｙ軸方向加速度データＤａ２、およびＺ軸方向加速度データＤａ３とを用いて、各軸の加速度の差分を算出する（ステップ５７）。そして、ＣＰＵ３０は、各軸の加速度の差分を用いて、差分合成ベクトルの大きさＤを算出する（ステップ５８）。具体的には、ＣＰＵ３０は、前回取得したＸ軸方向加速度データＤａ１が示す加速度をＸａ０、Ｙ軸方向加速度データＤａ２が示す加速度をＹａ０、およびＺ軸方向加速度データＤａ３が示す加速度をＺａ０として、上記数式（２）を用いて大きさＤを算出する。そして、ＣＰＵ３０は、算出した大きさＤを差分合成ベクトル履歴データＤｃの最新データとして記録し（ステップ５９）、処理を次のステップに進める。
【０１０２】
図２１に進み、ＣＰＵ３０は、合成ベクトル履歴データＤｂとして記録されている合成ベクトルの大きさＶの履歴を参照して、合成ベクトルの大きさＶのピークか否かを判定する（ステップ６１）。なお、合成ベクトルの大きさＶのピーク検出については、既に公知のピーク検出アルゴリズムを用いればよい。そして、ＣＰＵ３０は、合成ベクトルの大きさＶのピークである場合（ステップ６２でＹｅｓ）、次のステップ６３に処理を進める。一方、ＣＰＵ３０は、合成ベクトルの大きさＶのピークでない場合（ステップ６２でＮｏ）、次のステップ６８に処理を進める。
【０１０３】
ステップ６３において、ＣＰＵ３０は、検出された合成ベクトルピーク値Ｖｐに応じて、音量およびトラックデータを選択して、処理を次のステップに進める。ＣＰＵ３０は、例えば合成ベクトルピーク値Ｖｐが相対的に大きいときに再生される楽曲の音量が大きくなるように、演奏パラメータの１つである演奏音量（ダイナミクス）を合成ベクトルピーク値Ｖｐに応じて設定する。一例として、ＣＰＵ３０は、過去の合成ベクトルピーク値Ｖｐの値を参照して、最新のピーク値Ｖｐに所定の重み付けをした加重平均を取ることで演奏音量を算出する。
【０１０４】
上記ステップ６３におけるトラックデータの選択については、例えば合成ベクトルピーク値Ｖｐが取りうる数値範囲に対して、複数の閾値（例えば、３つの閾値Ｖ１、Ｖ２、Ｖ３；０＜Ｖ１＜Ｖ２＜Ｖ３＜取りうる最大値）が設定される。そして、それらの閾値と検出された合成ベクトルピーク値Ｖｐとの関係に応じて、選択するトラックデータ（Ｔｄ）が決定される。例えば、ＣＰＵ３０は、トラック選択テーブルデータＤｅから演奏対象となっている楽曲のトラック選択テーブル（図１８）を参照し、合成ベクトルピーク値Ｖｐに応じて選択するトラック番号を決定する。上述したように、各トラックデータＴｄは、異なった楽器がそれぞれ割り当てられ、その楽器に対応するトラック演奏データが記述されている。したがって、トラックデータを選択することによって、楽曲の演奏対象とする楽器数や種類を選択することになる。
【０１０５】
ここで、合成ベクトルピーク値Ｖｐは、プレイヤがコントローラ７を大きく速く振り動かすことによって、その値が上昇するパラメータである。したがって、図１８に示した例のように、合成ベクトルピーク値Ｖｐが大きくなるにしたがって選択されるトラック数を多くすることによって、プレイヤがコントローラ７を大きく速く振り動かすことに応じて演奏される楽器数や種類が増えることになる。したがって、コントローラ７を振り動かすことによって演奏される楽曲の表現が変化した印象をプレイヤに与えて、あたかもプレイヤが指揮をしているようなリアルな感覚を与えることができる。
【０１０６】
なお、上記ステップ６３におけるトラックデータの選択は、選択トラックテーブルを参照することによって行われたが、他の態様でトラックデータが選択されてもかまわない。例えば、合成ベクトルピーク値Ｖｐを変数として選択トラック数ｎが算出される数式を設定して、取得した合成ベクトルピーク値Ｖｐに基づいて選択トラック数ｎを算出する。そして、演奏対象のシーケンスデータＳｄから選択トラック数ｎに応じた任意のトラックデータ、またはトラック番号「１」〜「ｎ」までのトラックデータを選択してもかまわない。
【０１０７】
次に、ＣＰＵ３０は、差分合成ベクトル履歴データＤｃとして記録されている差分合成ベクトルの大きさＤの履歴を参照して、所定時間前（例えば、８フレーム前）から現在までに差分合成ベクトルの大きさＤのピークがあるか否かを判定する（ステップ６４）。なお、差分合成ベクトルの大きさＤのピーク検出についても、既に公知のピーク検出アルゴリズムを用いればよい。そして、ＣＰＵ３０は、差分合成ベクトルの大きさＤのピークがある場合（ステップ６５でＹｅｓ）、次のステップ６６に処理を進める。一方、ＣＰＵ３０は、差分合成ベクトルの大きさＤのピークでない場合（ステップ６５でＮｏ）、次のステップ７０に処理を進める。
【０１０８】
ステップ６６において、ＣＰＵ３０は、検出された差分合成ベクトルピーク値Ｄｐに応じて、演奏対象とするシーケンスデータを選択して、次のステップ６７に処理を進める。具体的には、例えば差分合成ベクトルピーク値Ｄｐが取りうる数値範囲に対して、少なくとも１つの閾値Ｄ１が設定される。ここで、閾値Ｄ１は、予め設定された最大値Ｄ１ｍａｘと最小値Ｄ１ｍｉｎとの間でピーク値Ｖｐに応じて線形に変化する。例えば、コントローラ７を振り動かす大きさを示すボリューム値Ｖｍを、
Ｖｍ＝Ｖｐ／（大きさＶが取りうる最大値）
で算出して、閾値Ｄ１を
Ｄ１＝Ｄ１ｍｉｎ＋（Ｄ１ｍａｘ−Ｄ１ｍｉｎ）×Ｖｍ
として、最大値Ｄ１ｍａｘと最小値Ｄ１ｍｉｎとの間で閾値Ｄ１を変化させる。上述した図１２Ｂのピーク値Ｄｐと図１３Ｂのピーク値Ｄｐと差のように、コントローラ７を振り動かす大きさによってはピーク値Ｄｐの差が表れないことがあるが、ピーク値Ｖｐが相対的に小さいときに閾値Ｄ１の値を小さく変化させることによって、コントローラ７を振り動かすときのメリハリの強弱をピーク値Ｄｐによって正確に判定することができる。
【０１０９】
そして、ＣＰＵ３０は、閾値Ｄ１と検出された差分合成ベクトルピーク値Ｄｐとの関係に応じて、選択するシーケンスデータ（Ｓｄ）を決定する。例えば、ＣＰＵ３０は、シーケンス選択テーブルデータＤｆから演奏対象となっている楽曲のシーケンス選択テーブル（図１９）を参照し、差分合成ベクトルピーク値Ｄｐに応じて選択するシーケンス番号を決定する。上述したように、各シーケンスデータＳｄは、共に同じ楽曲を示すデータであるが、奏法、ビート数、音調等が異なったトラック演奏データが記述されている。したがって、シーケンスデータを選択することによって、楽曲を演奏する奏法、ビート数、音調等を選択することになる。
【０１１０】
ここで、差分合成ベクトルピーク値Ｄｐは、プレイヤがコントローラ７を拍子のタイミングでメリハリをつけて振り動かすことによって、その値が上昇するパラメータである。例えば、図１６、図１７、および図１９に示した例では、差分合成ベクトルピーク値Ｄｐが大きくなると円滑奏法から分離奏法に変化するようにシーケンスデータが選択される。したがって、メリハリのある振り方でコントローラ７を振り動かすことによって演奏される楽曲の表現が変化した印象をプレイヤに与えて、あたかもプレイヤが指揮をしているようなリアルな感覚を与えることができる。
【０１１１】
一方、ステップ７０において、ＣＰＵ３０は、差分合成ベクトル履歴データＤｃとして記録されている差分合成ベクトルの大きさＤの履歴を参照して、所定時間前から現在までの差分合成ベクトルの大きさＤの最大値に応じて、演奏シーケンスデータを選択して、次のステップ６７に処理を進める。例えば、プレイヤによるコントローラ７の振り動かし方によっては、合成ベクトルピーク値Ｖｐが検出される直前に差分合成ベクトルの大きさＤのピークが表れないことがある。例えば、図１４Ｂおよび図１４Ｃに示すように、プレイヤがコントローラ７を小さく振り動かして各拍子をとるタイミングをやわらかくメリハリが少ない振り方をしたとき、差分合成ベクトルピーク値Ｖｐ５発生時点からピーク値Ｖｐ６発生時点までの期間には、差分合成ベクトルの大きさＤのピークが表れていない。このような状態のときには、該当期間における大きさＤ最大値を採用して演奏シーケンスデータを選択する。なお、大きさＤの最大値に応じて演奏シーケンスデータを選択する方法は、ピーク値Ｄｐを用いて選択する方法と同様であるため、詳細な説明を省略する。
【０１１２】
ステップ６７において、ＣＰＵ３０は、前回取得した合成ベクトルの大きさＶのピーク発生時点から今回取得した合成ベクトルの大きさＶのピーク発生時点までの時間間隔（図１１Ｃのｔ１、ｔ２参照）を算出し、当該時間間隔を用いて演奏テンポを設定して、次のステップ６８に処理を進める。具体的には、ＣＰＵ３０は、算出された時間間隔が相対的に長いときに再生される楽曲の演奏テンポが遅くなるように、演奏パラメータの１つである拍タイミングを設定する。一例として、ＣＰＵ３０は、過去に算出した時間間隔を参照して、最新の時間間隔に所定の重み付けをした加重平均を取ることで拍タイミングを算出する。
【０１１３】
ステップ６８において、ＣＰＵ３０は、設定されている演奏パラメータに基づいて制御し、現在選択されているシーケンスデータおよびトラックデータを演奏対象にして楽曲データＤｄを演奏して、処理を次のステップに進める。具体的には、ＣＰＵ３０は、現在の演奏パラメータによって、演奏音量および拍タイミング等を設定する。また、ＣＰＵ３０は、上記ステップ５２のカウントされているカウント値に応じて、選択されているトラック演奏データから情報を読み出す。そして、音源（ＤＳＰ３４およびＡＲＡＭ３５）は、読み出された各トラック演奏データに予め設定された音色を割り当て、演奏パラメータに基づいてスピーカ２ａから音を再生する。これによって、プレイヤがコントローラ７を振り動かす動作に応じた所定の音色の楽曲が演奏される。
【０１１４】
ここで、上記ステップ６８では、プレイヤがコントローラ７を振り動かさなかった場合、シーケンスデータＳｄにおける拍の最後の時点で泊タイミング（演奏テンポ）を０にして楽曲演奏を停止させてもよい。また、演奏停止状態からコントローラ７を振り動かす動作が開始された場合、合成ベクトルの大きさＶがピークを示した時点とシーケンスデータＳｄにおける拍の出だしとを一致させて楽曲演奏を開始してもよい。
【０１１５】
次に、ＣＰＵ３０は、例えば現在選択されているトラックデータに応じて演奏対象のキャラクタを設定して当該キャラクタが演奏している様子を表現し、プレイヤキャラクタＰＣが拍子タイミングに応じて指揮棒を振る様子を表現したゲーム画像（図８、図９参照）を生成してモニタ２に表示する（ステップ６９）。そして、ＣＰＵ３０は、上記ステップ５２に戻って処理を繰り返す。
【０１１６】
このように、複数のトラックデータを有する楽曲に対して、加速度センサが検出した加速度の大きさに応じて演奏対象とするトラックデータを変化させるため、プレイヤがコントローラ７を振り動かす動作に応じて音楽の演奏の内容を変化させることができる。例えば、各トラックデータに対して異なった楽器を割り当てることによって、演奏対象とする楽器種を変化させることができるため、多様な演奏変化を生じさせてプレイヤにあたかも指揮棒を振って指揮しているような娯楽環境を提供することができる。また、複数のトラックデータを有するシーケンスデータを複数設定された楽曲に対して、加速度センサが検出した加速度の大きさに応じて演奏対象とするシーケンスデータを変化させる。例えば、各シーケンスデータに奏法、ビート数、曲調等が異なった演奏データを記述することによって、プレイヤがコントローラ７を振り動かす動作に応じて音楽の表現を変化させることができる。したがって、さらに多様な演奏変化を生じさせることが可能となる。
【０１１７】
なお、上記ステップ６６やステップ７０では、検出された差分合成ベクトルピーク値Ｄｐや大きさＤの最大値に応じて、演奏対象とするシーケンスデータを変更する処理を行っていたが、演奏対象とするトラックデータを変更してもかまわない。技術的には、図１５〜図１７に示すようにシーケンスデータＳｄがトラックデータ群を含んでいることから、複数のシーケンスデータから１つのシーケンスデータを選択することは、複数のトラックデータ群から１つのトラックデータ群を選択することと同意である。例えば、図１６等に示したシーケンスデータＳｄのように複数のトラックデータが含まれる場合、当該トラックデータを複数のトラックデータ群に区別して何れかのトラックデータ群を選択する。そして、上記ステップ６３で選択されたトラックデータを、選択されたトラックデータ群に属するトラックデータのみに制限する、または選択されたトラックデータ群に属するトラックデータに所定の方式を用いて変更する、または上記ステップ６３において選択されたトラックデータ群から演奏対象のトラックデータを選択する等を行って演奏対象のトラックデータを決定する。このように、音楽の表現が異なるように構成されたシーケンスデータと同様に、トラックデータに対して音楽の表現が互いに異なる複数のトラックデータ群を構成することによって、同様に本発明を実現することができる。
【０１１８】
また、上述した楽曲データＤｄは、ＭＩＤＩ形式の音源制御データで構成された例を説明したが、他の形式のデータで構成してもかまわない。例えば、各トラックデータに含まれるトラック演奏データを、それぞれ各トラックに割り当てられた楽器の生演奏を録音すること等によって得られる波形情報（ストリーミング情報）やＰＣＭ（Ｐｕｌｓｅ  Ｃｏｄｅ  Ｍｏｄｕｌａｔｉｏｎ）データで構成してもかまわない。この場合、演奏テンポの制御が困難となるが、音の高さを変えずに演奏テンポを変える既に周知のタイムコンプレッションの技術を用いれば、同様にコントローラ７の動作によって得られる拍タイミングに応じた演奏テンポ制御が可能となる。
【０１１９】
また、コントローラ７で検出されたＹ軸方向の加速度がＹ軸正方向である場合、合成ベクトルの大きさＶを０とすることによって、拍子のタイミングで生じる加速度とは逆方向に生じた成分を除去したが、他の軸成分における正負方向の加速度検出や複数軸成分における正負方向の加速度検出によって同様の処理を行ってもかまわない。
【０１２０】
また、コントローラ７に設けられた加速度センサ７０１は、互いに直交する３軸成分に分けてそれぞれ検出して出力する３軸加速度センサを用いて説明したが、少なくとも直交する２軸成分をそれぞれ検出する加速度センサを用いれば本発明を実現することができる。例えば、コントローラ７が配置された３次元空間における加速度をＸ軸およびＹ軸（図３、図４参照）の２軸成分に分けてそれぞれ検出して出力する加速度センサを用いても、プレイヤが上下左右方向にコントローラ７を指揮棒のように振り動かす動作の判定を行うことができる。さらに、１軸方向のみの加速度を検出する加速度センサを用いても本発明を実現することができる。例えば、コントローラ７が配置された３次元空間における加速度をＹ軸（図３、図４参照）成分のみ検出して出力する加速度センサを用いても、プレイヤが上下方向にコントローラ７を指揮棒のように振り動かす動作の判定を行うことができる。
【０１２１】
また、上述した説明では、コントローラ７とゲーム装置３とが無線通信によって接続された態様を用いたが、コントローラ７とゲーム装置３とがケーブルを介して電気的に接続されてもかまわない。この場合、コントローラ７に接続されたケーブルをゲーム装置３の接続端子に接続する。
【０１２２】
また、コントローラ７から無線送信される送信データを受信する受信手段として、ゲーム装置３の接続端子に接続された受信ユニット６を用いて説明したが、ゲーム装置３の本体内部に設けられた受信モジュールによって当該受信手段を構成してもかまわない。この場合、受信モジュールが受信した送信データは、所定のバスを介してＣＰＵ３０に出力される。
【０１２３】
また、上述したコントローラ７の形状や、それらに設けられている操作部７２の形状、数、および設置位置等は、単なる一例に過ぎず他の形状、数、および設置位置であっても、本発明を実現できることは言うまでもない。また、コントローラ７における撮像情報演算部７４の位置（撮像情報演算部７４の光入射口）は、ハウジング７１の前面でなくてもよく、ハウジング７１の外部から光を取り入れることができれば他の面に設けられてもかまわない。
【産業上の利用可能性】
【０１２４】
本発明に係る音楽演奏プログラムおよび音楽演奏装置は、複数のトラックデータを有する楽曲に対して、加速度センサが検出した加速度の大きさに応じて演奏対象とするトラックデータを変化させることができ、入力装置等の動きに応じて音楽を演奏する装置やプログラムとして有用である。
【符号の説明】
【０１２５】
１…ゲームシステム
２…モニタ
２ａ…スピーカ
３…ゲーム装置
３０…ＣＰＵ
３１…メモリコントローラ
３２…ＧＰＵ
３３…メインメモリ
３４…ＤＳＰ
３５…ＡＲＡＭ
３６…コントローラＩ／Ｆ
３７…ビデオＩ／Ｆ
３８…外部メモリＩ／Ｆ
３９…オーディオＩ／Ｆ
４０…ディスクドライブ
４１…ディスクＩ／Ｆ
４…光ディスク
５…外部メモリカード
６…受信ユニット
７…コントローラ
７１…ハウジング
７２…操作部
７３…コネクタ
７４…撮像情報演算部
７４１…赤外線フィルタ
７４２…レンズ
７４３…撮像素子
７４４…画像処理回路
７５…通信部
７５１…マイコン
７５２…メモリ
７５３…無線モジュール
７５４…アンテナ
７００…基板
７０１…加速度センサ
７０２…ＬＥＤ
７０３…水晶振動子
７０４…バイブレータ
７０５…電池
８…マーカ
【図１】
2011008284.tif 000005
【図２】
2011008284.tif 000006
【図３】
2011008284.tif 000007
【図４】
2011008284.tif 000008
【図５Ａ】
2011008284.tif 000009
【図５Ｂ】
2011008284.tif 000010
【図６】
2011008284.tif 000011
【図７】
2011008284.tif 000012
【図８】
2011008284.tif 000013
【図９】
2011008284.tif 000014
【図１０Ａ】
2011008284.tif 000015
【図１０Ｂ】
2011008284.tif 000016
【図１０Ｃ】
2011008284.tif 000017
【図１１Ａ】
2011008284.tif 000018
【図１１Ｂ】
2011008284.tif 000019
【図１１Ｃ】
2011008284.tif 000020
【図１２Ａ】
2011008284.tif 000021
【図１２Ｂ】
2011008284.tif 000022
【図１２Ｃ】
2011008284.tif 000023
【図１３Ａ】
2011008284.tif 000024
【図１３Ｂ】
2011008284.tif 000025
【図１３Ｃ】
2011008284.tif 000026
【図１４Ａ】
2011008284.tif 000027
【図１４Ｂ】
2011008284.tif 000028
【図１４Ｃ】
2011008284.tif 000029
【図１５】
2011008284.tif 000030
【図１６】
2011008284.tif 000031
【図１７】
2011008284.tif 000032
【図１８】
2011008284.tif 000033
【図１９】
2011008284.tif 000034
【図２０】
2011008284.tif 000035
【図２１】
2011008284.tif 000036
【手続補正書】
【提出日】平成22年8月26日(2010.8.26)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
第１の発明は、少なくとも１軸方向の加速度を検出する加速度センサ（７０１）を備えた入力装置（７）で検出された加速度に応じて操作される装置（３）のコンピュータ（３０）で実行される音楽演奏プログラムである。音楽演奏プログラムは、加速度データ取得ステップ（Ｓ５４）、加速度算出ステップ（Ｓ５５、Ｓ５８）、トラックデータ選択ステップ（Ｓ６３、Ｓ６６、Ｓ７０）、および音楽演奏ステップ（Ｓ６８）をコンピュータに実行させる。加速度データ取得ステップは、加速度センサから出力される加速度データ（Ｄａ）を取得する。加速度算出ステップは、取得した加速度データを用いて、加速度の大きさ（Ｖ、Ｄ）を算出する。トラックデータ選択ステップは、算出された加速度の大きさに基づいて、記憶手段（３３）に記憶された複数のトラックデータ（Ｔｄ、図１６、図１７）を含む楽曲データ（Ｄｄ）から演奏対象とするトラックデータを少なくとも１つ選択する。音楽演奏ステップは、トラックデータ選択ステップにおいて選択されたトラックデータに基づいて、音響発生機器（２ａ）から発生する楽音を制御するためのデータを出力する。トラックデータ選択ステップでは、加速度算出ステップにおいて算出された加速度の大きさが大きいほど、演奏対象とするトラックデータの数が多く選択される。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
第２の発明は、上記第１の発明において、トラックデータ選択ステップでは、演奏対象とするトラックデータの数を増やす際、加速度算出ステップにおいて算出された加速度の大きさが相対的に小さい場合に選択するトラックデータに、さらに別のトラックデータを加えることによって当該演奏対象とするトラックデータの数が増やされる。
第３の発明は、上記第１の発明において、トラック選択テーブルデータ設定ステップを、さらにコンピュータに実行させる。トラック選択テーブルデータ設定ステップは、加速度の大きさが取り得る範囲を複数の範囲に分割し、当該分割された範囲毎に演奏対象とするトラックデータをそれぞれ対応させたトラック選択テーブルを予め設定する。トラックデータ選択ステップでは、トラック選択テーブルを参照して、加速度算出ステップにおいて算出された加速度の大きさが含まれる範囲に対応するトラックデータが、演奏対象とするトラックデータとして選択される。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
第４の発明は、上記第１の発明において、加速度算出ステップは、差分算出ステップ（Ｓ５７、Ｓ５８）を含む。差分算出ステップは、前回取得した加速度データを用いて算出した加速度（Ｘａ０、Ｙａ０、Ｚａ０）と今回取得した加速度データを用いて算出した加速度（Ｘａ、Ｙａ、Ｚａ）との差分（Ｄ）を算出する。トラックデータ選択ステップでは、加速度算出ステップにおいて算出された加速度の大きさと差分算出ステップにおいて算出された加速度の差分とに基づいて、演奏対象とするトラックデータが選択される（Ｓ６６、Ｓ７０）。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
第５の発明は、上記第４の発明において、加速度差分ピーク値検出ステップ（Ｓ６４）を、さらにコンピュータに実行させる。加速度差分ピーク値検出ステップは、差分算出ステップにおいて算出された加速度の差分の履歴（Ｄｃ）を用いて、それら加速度の差分のピーク値（Ｄｐ）を検出する。トラックデータ選択ステップでは、加速度算出ステップにおいて算出された加速度の大きさと加速度差分ピーク値検出ステップにおいて検出された加速度の差分のピーク値とに基づいて、演奏対象とするトラックデータが選択される。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
第６の発明は、上記第１の発明において、楽曲データは、それぞれ異なったトラックデータから成る複数のトラックデータ群（Ｓｄ）を含む。加速度算出ステップでは、今回取得した加速度データから算出した加速度の大きさ（Ｖ）、および前回取得した加速度データを用いて算出した加速度と今回取得した加速度データを用いて算出した加速度との差分（Ｄ）が算出される。音楽演奏プログラムは、加速度差分ピーク値検出ステップを、さらにコンピュータに実行させる。加速度差分ピーク値検出ステップは、加速度算出ステップにおいて算出された加速度の差分の履歴を用いて、それら加速度の差分のピーク値を検出する。トラックデータ選択ステップでは、加速度差分ピーク値検出ステップにおいて検出された加速度の差分のピーク値に基づいて演奏対象とするトラックデータ群が選択され、加速度算出ステップにおいて算出された加速度の大きさに基づいて演奏対象のトラックデータ群から演奏対象のトラックデータが選択される。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
第７の発明は、上記第１の発明において、加速度センサは、入力装置に対して互いに直交する複数軸方向（Ｘ、Ｙ、Ｚ軸方向）の加速度をそれぞれ検出する。加速度算出ステップでは、取得した加速度データを用いて、複数軸方向それぞれの加速度ベクトルを合成した合成ベクトルの大きさが算出される。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
第８の発明は、上記第４の発明において、加速度センサは、入力装置に対して互いに直交する複数軸方向の加速度をそれぞれ検出する。差分算出ステップでは、前回取得した加速度データを用いて算出した加速度と今回取得した加速度データを用いて算出した加速度との差分を複数軸方向それぞれに算出し、それら複数軸方向それぞれの差分ベクトルを合成した差分合成ベクトルの大きさが加速度の差分として算出される。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】変更
【補正の内容】
【００１４】
第９の発明は、上記第１の発明において、複数のトラックデータには、それぞれ異なった楽器が割り当てられている。表示処理ステップを、さらにコンピュータに実行させる。表示処理ステップは、トラックデータに割り当てられた楽器をそれぞれ仮想ゲーム世界に配置し、トラックデータ選択ステップで選択されたトラックデータに割り当てられた楽器のみが演奏されるアクションを表示装置（２）に表示する（図８、図９）。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
第１０の発明は、上記第１の発明において、複数のトラックデータには、それぞれ異なった楽器の演奏データが割り当てられている。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００１６
【補正方法】変更
【補正の内容】
【００１６】
第１１の発明は、上記第６の発明において、トラックデータ群に割り当てられる演奏データは、他のトラックデータ群に割り当てられる演奏データに対して、同じ楽曲で奏法、ビート数、および曲調の少なくとも１つが互いに異なる。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００１７
【補正方法】変更
【補正の内容】
【００１７】
第１２の発明は、上記第１の発明において、装置は、音響発生機器から楽音を発生させる音源（３４、３５）を備えている。楽曲データに含まれる複数のトラックデータは、それぞれ音源の制御データで構成される。音楽演奏ステップでは、トラックデータ選択ステップで選択されたトラックデータに記述された制御データが出力されて音源が制御される。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００１８
【補正方法】変更
【補正の内容】
【００１８】
第１３の発明は、少なくとも１軸方向の加速度を検出する加速度センサを備えた入力装置で検出された加速度に応じて操作される音楽演奏装置である。音楽演奏装置は、加速度データ取得手段、加速度算出手段、トラックデータ選択手段、および音楽演奏手段を備える。加速度データ取得手段は、加速度センサから出力される加速度データを取得する。加速度算出手段は、取得した加速度データを用いて、加速度の大きさを算出する。トラックデータ選択手段は、算出された加速度の大きさに基づいて、記憶手段に記憶された複数のトラックデータを含む楽曲データから演奏対象とするトラックデータを少なくとも１つ選択する。音楽演奏手段は、トラックデータ選択手段が選択したトラックデータに基づいて、音響発生機器から発生する楽音を制御するためのデータを出力する。トラックデータ選択手段は、加速度算出手段が算出した加速度の大きさが大きいほど、演奏対象とするトラックデータの数を多く選択する。
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】００２０
【補正方法】削除
【補正の内容】
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】００２１
【補正方法】変更
【補正の内容】
【００２１】
上記第４の発明によれば、加速度の大きさの差分によって、演奏対象とするトラックを変化させるので、入力装置の振り動かすときの柔らかさ等に応じて音楽演奏を変化させることができる。
【手続補正１５】
【補正対象書類名】明細書
【補正対象項目名】００２２
【補正方法】変更
【補正の内容】
【００２２】
上記第５の発明によれば、加速度の大きさの差分のピーク値によって、演奏対象とするトラックを変化させるので、入力装置の振り動かすときの拍タイミングにおけるメリハリの有無等に応じて音楽演奏を変化させることができる。
【手続補正１６】
【補正対象書類名】明細書
【補正対象項目名】００２３
【補正方法】変更
【補正の内容】
【００２３】
上記第６の発明によれば、加速度の大きさの差分のピーク値によって演奏対象とするトラック群を変化させ、加速度の大きさによって当該トラック群からトラックを変化させるので、さらに多様な演奏変化を生じさせることができる。
【手続補正１７】
【補正対象書類名】明細書
【補正対象項目名】００２４
【補正方法】変更
【補正の内容】
【００２４】
上記第７および第８の発明によれば、互いに直交する複数軸方向の加速度をそれぞれ検出する加速度センサを用いているため、ユーザが入力装置を持つ方向に関わらず、入力装置の振り動かし方に応じて音楽演奏を変化させることができる。
【手続補正１８】
【補正対象書類名】明細書
【補正対象項目名】００２５
【補正方法】変更
【補正の内容】
【００２５】
上記第９の発明によれば、演奏対象とする楽器が変化している様子を表示装置に表示することができる。
【手続補正１９】
【補正対象書類名】明細書
【補正対象項目名】００２６
【補正方法】変更
【補正の内容】
【００２６】
上記第１０の発明によれば、選択するトラックデータを変化させることによって演奏される楽器種が変化するため、入力装置の振り動かし方に応じて楽曲の演奏内容を変化させることができる。
【手続補正２０】
【補正対象書類名】明細書
【補正対象項目名】００２７
【補正方法】変更
【補正の内容】
【００２７】
上記第１１の発明によれば、選択するトラックデータ群を変化させることによって演奏される奏法、ビート数、曲調等が変化するため、入力装置の振り動かし方に応じて演奏される楽曲の表現を変えることができる。
【手続補正２１】
【補正対象書類名】明細書
【補正対象項目名】００２８
【補正方法】変更
【補正の内容】
【００２８】
上記第１２の発明によれば、ＭＩＤＩデータを用いて容易に実現することができる。
【手続補正２２】
【補正対象書類名】明細書
【補正対象項目名】０１０６
【補正方法】変更
【補正の内容】
【０１０６】
なお、上記ステップ６３におけるトラックデータの選択は、トラック選択テーブルを参照することによって行われたが、他の態様でトラックデータが選択されてもかまわない。例えば、合成ベクトルピーク値Ｖｐを変数として選択トラック数ｎが算出される数式を設定して、取得した合成ベクトルピーク値Ｖｐに基づいて選択トラック数ｎを算出する。そして、演奏対象のシーケンスデータＳｄから選択トラック数ｎに応じた任意のトラックデータ、またはトラック番号「１」〜「ｎ」までのトラックデータを選択してもかまわない。
【手続補正２３】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
少なくとも１軸方向の加速度を検出する加速度センサを備えた入力装置で検出された加速度に応じて操作される装置のコンピュータで実行される音楽演奏プログラムであって、
前記コンピュータに、
前記加速度センサから出力される加速度データを取得する加速度データ取得ステップと、
取得した加速度データを用いて、加速度の大きさを算出する加速度算出ステップと、
算出された加速度の大きさに基づいて、記憶手段に記憶された複数のトラックデータを含む楽曲データから演奏対象とするトラックデータを少なくとも１つ選択するトラックデータ選択ステップと、
前記トラックデータ選択ステップにおいて選択されたトラックデータに基づいて、音響発生機器から発生する楽音を制御するためのデータを出力する音楽演奏ステップとを実行させ、
前記トラックデータ選択ステップでは、前記加速度算出ステップにおいて算出された加速度の大きさが大きいほど、演奏対象とするトラックデータの数が多く選択される、音楽演奏プログラム。
【請求項２】
前記トラックデータ選択ステップでは、前記演奏対象とするトラックデータの数を増やす際、前記加速度算出ステップにおいて算出された前記加速度の大きさが相対的に小さい場合に選択するトラックデータに、さらに別のトラックデータを加えることによって当該演奏対象とするトラックデータの数が増やされる、請求項１に記載の音楽演奏プログラム。
【請求項３】
前記加速度の大きさが取り得る範囲を複数の範囲に分割し、当該分割された範囲毎に演奏対象とするトラックデータをそれぞれ対応させたトラック選択テーブルを予め設定するトラック選択テーブルデータ設定ステップを、さらに前記コンピュータに実行させ、
前記トラックデータ選択ステップでは、前記トラック選択テーブルを参照して、前記加速度算出ステップにおいて算出された加速度の大きさが含まれる前記範囲に対応するトラックデータが、前記演奏対象とするトラックデータとして選択される、請求項１に記載の音楽演奏プログラム。
【請求項４】
前記加速度算出ステップは、前回取得した加速度データを用いて算出した加速度と今回取得した加速度データを用いて算出した加速度との差分を算出する差分算出ステップを含み、
前記トラックデータ選択ステップでは、前記加速度算出ステップにおいて算出された加速度の大きさと前記差分算出ステップにおいて算出された加速度の差分とに基づいて、演奏対象とするトラックデータが選択される、請求項１に記載の音楽演奏プログラム。
【請求項５】
前記差分算出ステップにおいて算出された加速度の差分の履歴を用いて、当該加速度の差分のピーク値を検出する加速度差分ピーク値検出ステップを、さらに前記コンピュータに実行させ、
前記トラックデータ選択ステップでは、前記加速度算出ステップにおいて算出された加速度の大きさと前記加速度差分ピーク値検出ステップにおいて検出された加速度の差分のピーク値とに基づいて、演奏対象とするトラックデータが選択される、請求項４に記載の音楽演奏プログラム。
【請求項６】
前記楽曲データは、それぞれ異なったトラックデータから成る複数のトラックデータ群を含み、
前記加速度算出ステップでは、今回取得した加速度データから算出した加速度の大きさ、および前回取得した加速度データを用いて算出した加速度と今回取得した加速度データを用いて算出した加速度との差分が算出され、
前記音楽演奏プログラムは、前記加速度算出ステップにおいて算出された加速度の差分の履歴を用いて、当該加速度の差分のピーク値を検出する加速度差分ピーク値検出ステップを、さらに前記コンピュータに実行させ、
前記トラックデータ選択ステップでは、前記加速度差分ピーク値検出ステップにおいて検出された加速度の差分のピーク値に基づいて演奏対象とするトラックデータ群が選択され、前記加速度算出ステップにおいて算出された加速度の大きさに基づいて演奏対象のトラックデータ群から演奏対象のトラックデータが選択される、請求項１に記載の音楽演奏プログラム。
【請求項７】
前記加速度センサは、前記入力装置に対して互いに直交する複数軸方向の加速度をそれぞれ検出し、
前記加速度算出ステップでは、取得した加速度データを用いて、前記複数軸方向それぞれの加速度ベクトルを合成した合成ベクトルの大きさが算出される、請求項１に記載の音楽演奏プログラム。
【請求項８】
前記加速度センサは、前記入力装置に対して互いに直交する複数軸方向の加速度をそれぞれ検出し、
前記差分算出ステップでは、前回取得した加速度データを用いて算出した加速度と今回取得した加速度データを用いて算出した加速度との差分を前記複数軸方向それぞれに算出し、当該複数軸方向それぞれの差分ベクトルを合成した差分合成ベクトルの大きさが加速度の差分として算出される、請求項４に記載の音楽演奏プログラム。
【請求項９】
前記複数のトラックデータには、それぞれ異なった楽器が割り当てられており、
前記トラックデータに割り当てられた楽器をそれぞれ仮想ゲーム世界に配置し、前記トラックデータ選択ステップで選択されたトラックデータに割り当てられた楽器のみが演奏されるアクションを表示装置に表示する表示処理ステップを、さらに前記コンピュータに実行させる、請求項１に記載の音楽演奏プログラム。
【請求項１０】
前記複数のトラックデータには、それぞれ異なった楽器の演奏データが割り当てられていることを特徴とする、請求項１に記載の音楽演奏プログラム。
【請求項１１】
前記トラックデータ群に割り当てられる演奏データは、他のトラックデータ群に割り当てられる演奏データに対して、同じ楽曲で奏法、ビート数、および曲調の少なくとも１つが互いに異なることを特徴とする、請求項６に記載の音楽演奏プログラム。
【請求項１２】
前記装置は、音響発生機器から楽音を発生させる音源を備えており、
前記楽曲データに含まれる複数のトラックデータは、それぞれ前記音源の制御データで構成され、
前記音楽演奏ステップでは、前記トラックデータ選択ステップで選択されたトラックデータに記述された制御データが出力されて前記音源が制御される、請求項１に記載の音楽演奏プログラム。
【請求項１３】
少なくとも１軸方向の加速度を検出する加速度センサを備えた入力装置で検出された加速度に応じて操作される音楽演奏装置であって、
前記加速度センサから出力される加速度データを取得する加速度データ取得手段と、
取得した加速度データを用いて、加速度の大きさを算出する加速度算出手段と、
算出された加速度の大きさに基づいて、記憶手段に記憶された複数のトラックデータを含む楽曲データから演奏対象とするトラックデータを少なくとも１つ選択するトラックデータ選択手段と、
前記トラックデータ選択手段が選択したトラックデータに基づいて、音響発生機器から発生する楽音を制御するためのデータを出力する音楽演奏手段とを備え、
前記トラックデータ選択手段は、前記加速度算出手段が算出した加速度の大きさが大きいほど、演奏対象とするトラックデータの数を多く選択する、音楽演奏装置。