"所定の対象の動きに基づいて音声を出力するための音楽演奏装置のコンピュータを、前記所定の対象の姿勢または動きに関する測定情報に基づいて、前記所定の対象の所定間隔での姿勢変化量を取得する姿勢変化量取得手段と、前記姿勢変化量に応じて、音量を決定するための音量パラメータを設定する音量パラメータ設定手段と、前記音量パラメータに応じた音量の音声信号を出力する音声信号出力手段、として機能させるための音楽演奏用プログラム。前記姿勢変化量取得手段は、前記測定情報に基づいて、現実空間に定義された座標系に対する、前記所定の対象の所定間隔での姿勢変化量が算出されることで、前記姿勢変化量を取得する、請求項1に記載の音楽演奏用プログラム。前記姿勢変化量取得手段は、現実空間に定義された前記座標系の軸に対する、前記所定の対象の姿勢変化量を複数取得し、前記音量パラメータ設定手段は、前記姿勢変化量取得手段によって取得された複数の前記姿勢変化量のうち、値が大きい順に上位2つ以上の姿勢変化量に基づいて、前記音量パラメータを設定する、請求項2に記載の音楽演奏用プログラム。前記姿勢変化量取得手段は、現実空間に定義された前記座標系のうちの2つの軸に対する、前記所定の対象の姿勢を定義するための2つの軸の姿勢変化量を、軸の組み合わせ毎に4つ取得し、前記音量パラメータ設定手段は、前記姿勢変化量取得手段によって取得された4つの前記姿勢変化量のうち、値が大きい順に上位2つの姿勢変化量に基づいて、前記音量パラメータを設定する、請求項3に記載の音楽演奏用プログラム。前記姿勢変化量取得手段は、前記姿勢変化量として、所定の期間内に複数回取得された姿勢変化量の平均値を取得する、請求項1から4の何れか一項に記載の音楽演奏用プログラム。前記コンピュータを、前記測定情報に基づいて、所定の方向における角加速度の正負が逆転したと判定された場合に、前記音声信号出力手段による音声信号の出力を所定時間止めるかまたは前記音声信号出力手段による音声信号の出力音量を下げる、出力音量制御手段として更に機能させるための、請求項1から5の何れか一項に記載の音楽演奏用プログラム。前記音量パラメータ設定手段は、前記姿勢変化量と前記音量パラメータとの対応関係を定めた情報に基づいて前記音量パラメータを設定し、前記姿勢変化量と前記音量パラメータとの対応関係を定めた情報において、前記姿勢変化量の変化に対する前記音量パラメータの変化の勾配の傾向は、該姿勢変化量の範囲ごとに異なる、請求項1から6の何れか一項に記載の音楽演奏用プログラム。前記音楽演奏装置は、略同一方向に張られた複数の弦を有する弦楽器をシミュレートするものであり、前記コンピュータを、現在発音の対象となっている弦が前記複数の弦のうちの何れであるかを指定する弦指定情報を保持する弦指定情報保持手段と、前記測定情報に基づいて、前記複数の弦が張られた方向を軸とする周方向への角加速度が所定の閾値を越えたと判定された場合に、前記弦指定情報によって指定される弦を変更する弦変更手段、として更に機能させるための、請求項1から7の何れか一項に記載の音楽演奏用プログラム。前記所定の対象は、ユーザによって操作される、ジャイロセンサを内蔵したコントローラであり、前記測定情報は、前記ジャイロセンサを用いて計測された角速度または角加速度である、請求項1から8の何れか一項に記載の音楽演奏用プログラム。所定の対象の動きに基づいて音声を出力するための音楽演奏装置であって、前記所定の対象の姿勢または動きに関する測定情報に基づいて、前記所定の対象の所定間隔での姿勢変化量を取得する姿勢変化量取得手段と、前記姿勢変化量に応じて、音量を決定するための音量パラメータを設定する音量パラメータ設定手段と、前記音量パラメータに応じた音量の音声信号を出力する音声信号出力手段と、を備える音楽演奏装置。所定の対象の動きに基づいて音声を出力するための音楽演奏システムであって、前記所定の対象の姿勢または動きに関する測定情報に基づいて、前記所定の対象の所定間隔での姿勢変化量を取得する姿勢変化量取得手段と、前記姿勢変化量に応じて、音量を決定するための音量パラメータを設定する音量パラメータ設定手段と、前記音量パラメータに応じた音量の音声信号を出力する音声信号出力手段と、を備える音楽演奏システム。所定の対象の動きに基づいて音声を出力するための音楽演奏装置のコンピュータが、前記所定の対象の姿勢または動きに関する測定情報に基づいて、前記所定の対象の所定間隔での姿勢変化量を取得する姿勢変化量取得ステップと、前記姿勢変化量に応じて、音量を決定するための音量パラメータを設定する音量パラメータ設定ステップと、前記音量パラメータに応じた音量の音声信号を出力する音声信号出力ステップと、を実行する音楽演奏方法。従来、楽器のシミュレーションにおいて、加速度センサによって検出された加速度に基づいて発音を制御する技術がある。しかし、例えば発音体を擦ることによって発音する楽器では、発音体を擦る動きが、正の加速度が検出されない動きであっても発音される。正の加速度が検出されない動きとは、例えば、等速運動や減速運動等である。即ち、発音体を擦ることによって発音する楽器において、発音体を擦る動きの加速度と音量とは必ずしも対応関係を有さない。このため、従来の加速度に基づいた音量制御で、発音体を擦ることによって発音する楽器のシミュレーションを行う際に、ユーザの動きに応じた、自然な音量制御を行うことは困難であった。本発明は、上記した問題に鑑み、ユーザの動きに基づいて発音する音楽演奏用プログラム、音楽演奏装置、音楽演奏システムおよび音楽演奏方法において、自然な音量制御を行うことを課題とする。本発明では、上記課題を解決するために、以下の手段を採用した。即ち、本発明は、所定の対象の動きに基づいて音声を出力するための音楽演奏装置のコンピュータを、前記所定の対象の姿勢または動きに関する測定情報に基づいて、前記所定の対象の所定間隔での姿勢変化量を取得する姿勢変化量取得手段と、前記姿勢変化量に応じて、音量を決定するための音量パラメータを設定する音量パラメータ設定手段と、前記音量パラメータに応じた音量の音声信号を出力する音声信号出力手段と、として機能させるための音楽演奏用プログラムである。なお、本発明は、発音体を擦ることによって発音する発音装置のシミュレーションに用いることが出来る。発音体を擦ることによって発音する発音装置としては、例えば、弓を用いて弦を擦ることによって発音する擦弦楽器等がある。このような発音装置において、発音体は、擦られることによって振動し、発音する。本発明において、動きが測定される所定の対象は、例えば、擦弦楽器の弓に見立てられたコントローラやユーザの手である。本発明では、このような所定の対象の動きに関する測定情報に基づいて、所定の対象の所定間隔例えば、単位時間での姿勢変化量を取得し、姿勢変化量に応じた音量パラメータを設定する。なお、測定情報を得るための手段としては、例えば、コントローラに内蔵されたセンサ等があるが、本発明において、所定の対象の動きを測定するための手段は、コントローラに内蔵されたセンサ等に限定されない。例えば、カメラ等のセンサを用いてユーザの手の動きを撮像し、ユーザの手の動きに関する測定情報を得ることとしてもよい。また、所定間隔での姿勢変化量としては、例えば、所定の対象の角速度や、所定の対象の回転運動の成分を示すベクトル等を用いることが出来る。本発明によれば、このような姿勢変化量に基づいて音量パラメータを設定することで、発音体を擦ることによって発音する発音装置のシミュレーションにおいて、自然な音量制御を行うことが出来る。なお、姿勢変化量として角速度を用いる場合には、測定情報として得られた角速度をそのまま用いることとしてもよい。また、前記姿勢変化量取得手段は、前記測定情報に基づいて、現実空間に定義された座標系に対する、前記所定の対象の所定間隔での姿勢変化量が算出されることで、前記姿勢変化量を取得してもよい。例えば、所定の対象の姿勢を定義する3軸のうちの少なくとも何れかが、現実空間に定義された座標系の各成分についてどれだけ移動したかを算出することで、姿勢変化量を取得することが出来る。また、前記姿勢変化量取得手段は、現実空間に定義された前記座標系の軸に対する、前記所定の対象の姿勢変化量を複数取得し、前記音量パラメータ設定手段は、前記姿勢変化量取得手段によって取得された複数の前記姿勢変化量のうち、値が大きい順に上位2つ以上の姿勢変化量に基づいて、前記音量パラメータを設定してもよい。所定の対象の姿勢の変化がより大きく反映された上位2つ以上の姿勢変化量を用いることで、仮に一部の姿勢変化量が飽和した場合にも、音量パラメータの取得のために適切な姿勢変化量を得ることが出来る。例えば、前記姿勢変化量取得手段は、現実空間に定義された前記座標系のうちの2つの軸に対する、前記所定の対象の姿勢を定義するための2つの軸の姿勢変化量を、軸の組み合わせ毎に4つ取得し、前記音量パラメータ設定手段は、前記姿勢変化量取得手段によって取得された4つの前記姿勢変化量のうち、値が大きい順に上位2つの姿勢変化量に基づいて、前記音量パラメータを設定してもよい。また、前記姿勢変化量取得手段は、前記姿勢変化量として、所定の期間内に複数回取得された姿勢変化量の平均値を取得してもよい。所定の期間内に複数回取得された姿勢変化量の平均値が取得されることによって、ユーザの意図しない動きの影響を低減させた姿勢変化量を得ることが出来る。また、前記音量パラメータ設定手段は、前記姿勢変化量と前記音量パラメータとの対応関係を定めた情報に基づいて前記音量パラメータを設定し、前記姿勢変化量と前記音量パラメータとの対応関係を定めた情報において、前記姿勢変化量の変化に対する前記音量パラメータの変化の勾配の傾向は、該姿勢変化量の範囲ごとに異なってもよい。このようにすることで、シミュレーション対象の発音装置に応じた、自然な音量変化を提供することが可能となる。また、前記音楽演奏用プログラムは、前記コンピュータを、前記測定情報に基づいて、所定の方向における角加速度の正負が逆転したと判定された場合に、前記音声信号出力手段による音声信号の出力を所定時間止めるかまたは前記音声信号出力手段による音声信号の出力音量を下げる、出力音量制御手段として更に機能させるためのものであってもよい。このようにすることで、ユーザの引き返し動作等に伴って音量に変化を持たせ、ユーザに対して実際に発音装置を操作しているような感覚を持たせることが出来る。また、前記音楽演奏装置は、略同一方向に張られた複数の弦を有する弦楽器をシミュレートするものであり、前記コンピュータを、現在発音の対象となっている弦が前記複数の弦のうちの何れであるかを指定する弦指定情報を保持する弦指定情報保持手段と、前記測定情報に基づいて、前記複数の弦が張られた方向を軸とする周方向への角加速度が所定の閾値を越えたと判定された場合に、前記弦指定情報によって指定される弦を変更する弦変更手段と、として更に機能させるためのものであってもよい。このようにすることで、ユーザは、シミュレーション対象の弦楽器等において実際に移弦する場合の動きに近い操作で移弦を行い、発音される音の高さを変更することが出来る。また、前記所定の対象は、ユーザによって操作される、ジャイロセンサを内蔵したコントローラであり、前記測定情報は、前記ジャイロセンサを用いて計測された角速度または角加速度であってもよい。なお、コントローラがユーザによって操作される場合の操作の態様は限定されない。ユーザは、例えば、コントローラを把持する、装着する、等の態様でコントローラを操作することが出来る。更に、本発明は、音楽演奏装置、該音楽演奏装置を含む音楽演奏システム、またはコンピュータによって実行される音楽演奏方法としても把握することが可能である。また、本発明は、上記説明したプログラムをコンピュータその他の装置、機械等が読み取り可能な記録媒体に記録したものでもよい。ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。本発明によれば、ユーザの動きに基づいて発音する音楽演奏用プログラム、音楽演奏装置、音楽演奏システムおよび音楽演奏方法において、自然な音量制御を行うことが可能となる。以下、本発明を、発音装置のシミュレーションを行うゲーム装置として実施する場合の実施の形態を、図面に基づいて説明する。なお、以下に説明する実施の形態は、本発明を実施する場合の一例を示すものであって、本発明を以下に説明する具体的構成に限定するものではない。本発明の実施にあたっては、実施の形態に応じた具体的構成が適宜採用されてもよい。<システムの構成>[ゲームシステムの全体構成]図1を参照して、本発明の一実施形態に係るゲーム装置を含むゲームシステム1について説明する。図1は、ゲームシステム1の外観図である。以下、据置型のゲーム装置を一例にして、本実施形態のゲーム装置およびゲームプログラムについて説明する。図1において、ゲームシステム1は、テレビジョン受像器以下、単にテレビと記載する2、ゲーム装置3、光ディスク4、入力装置7、およびマーカ部6を含む。本システムは、入力装置7を用いたゲーム操作に基づいてゲーム装置3でゲーム処理を実行するものである。ゲーム装置3には、当該ゲーム装置3に対して交換可能に用いられる情報記憶媒体の一例である光ディスク4が脱着可能に挿入される。光ディスク4には、ゲーム装置3において実行されるためのゲームプログラムが記憶されている。ゲーム装置3の前面には光ディスク4の挿入口が設けられている。ゲーム装置3は、挿入口に挿入された光ディスク4に記憶されているゲームプログラムを読み出して実行することによってゲーム処理を実行する。ゲーム装置3には、表示装置の一例であるテレビ2が接続コードを介して接続される。テレビ2は、ゲーム装置3において実行されるゲーム処理の結果得られるゲーム画像を表示する。また、テレビ2の画面の周辺図1では画面の上側には、マーカ部6が設置される。マーカ部6は、その両端に2つのマーカ6Rおよび6Lを備えている。マーカ6Rマーカ6Lも同様は、具体的には1以上の赤外LEDであり、テレビ2の前方に向かって赤外光を出力する。マーカ部6はゲーム装置3に接続されており、ゲーム装置3はマーカ部6が備える各赤外LEDの点灯を制御することが可能である。入力装置7は、自機に対して行われた操作の内容を示す操作データをゲーム装置3に与えるものである。本実施形態では、入力装置7はコントローラ5とサブユニット76とを含む。詳細は後述するが、入力装置7は、コントローラ5に対してサブユニット76が着脱可能に接続されている構成である。コントローラ5とゲーム装置3とは無線通信によって接続される。本実施形態では、コントローラ5とゲーム装置3との間の無線通信には例えばBluetoothブルートゥース登録商標の技術が用いられる。なお、他の実施形態においてはコントローラ5とゲーム装置3とは有線で接続されてもよい。[ゲーム装置3の内部構成]次に、図2を参照して、ゲーム装置3の内部構成について説明する。図2は、ゲーム装置3の構成を示すブロック図である。ゲーム装置3は、CPU10、システムLSI11、外部メインメモリ12、ROM/RTC13、ディスクドライブ14、およびAV-IC15等を有する。CPU10は、光ディスク4に記憶されたゲームプログラムを実行することによってゲーム処理を実行するものであり、ゲームプロセッサとして機能する。CPU10は、システムLSI11に接続される。システムLSI11には、CPU10の他、外部メインメモリ12、ROM/RTC13、ディスクドライブ14およびAV-IC15が接続される。システムLSI11は、それに接続される各構成要素間のデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。システムLSI11の内部構成については後述する。揮発性の外部メインメモリ12は、光ディスク4から読み出されたゲームプログラムや、フラッシュメモリ17から読み出されたゲームプログラム等のプログラムを記憶したり、各種データを記憶したりするものであり、CPU10のワーク領域やバッファ領域として用いられる。ROM/RTC13は、ゲーム装置3の起動用のプログラムが組み込まれるROMいわゆるブートROMと、時間をカウントするクロック回路RTC:RealTimeClockとを有する。ディスクドライブ14は、光ディスク4からプログラムデータやテクスチャデータ等を読み出し、後述する内部メインメモリ11eまたは外部メインメモリ12に読み出したデータを書き込む。また、システムLSI11には、入出力プロセッサI/Oプロセッサ11a、GPUGraphicsProcessorUnit11b、DSPDigitalSignalProcessor11c、VRAM11d、および内部メインメモリ11eが設けられる。図示は省略するが、これらの構成要素11a~11eは内部バスによって互いに接続される。GPU11bは、描画手段の一部を形成し、CPU10からのグラフィクスコマンド作画命令に従って画像を生成する。VRAM11dは、GPU11bがグラフィクスコマンドを実行するために必要なデータポリゴンデータやテクスチャデータ等のデータを記憶する。画像が生成される際には、GPU11bは、VRAM11dに記憶されたデータを用いて画像データを作成する。DSP11cは、オーディオプロセッサとして機能し、内部メインメモリ11eや外部メインメモリ12に記憶されるサウンドデータや音波形音色データを用いて、音声信号を生成する。上述のように生成された画像データおよび音声信号は、AV-IC15によって読み出される。AV-IC15は、読み出した画像データを、AVコネクタ16を介してテレビ2に出力するとともに、読み出した音声信号を、テレビ2に内蔵されるスピーカ2aに出力する。これによって、画像がテレビ2に表示されるとともに音がスピーカ2aから出力される。入出力プロセッサ11aは、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ11aは、フラッシュメモリ17、無線通信モジュール18、無線コントローラモジュール19、拡張コネクタ20、およびメモリカード用コネクタ21に接続される。無線通信モジュール18にはアンテナ22が接続され、無線コントローラモジュール19にはアンテナ23が接続される。入出力プロセッサ11aは、無線通信モジュール18およびアンテナ22を介してネットワークに接続し、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。入出力プロセッサ11aは、定期的にフラッシュメモリ17にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データが有る場合には、無線通信モジュール18およびアンテナ22を介してネットワークに送信する。また、入出力プロセッサ11aは、他のゲーム装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ22および無線通信モジュール18を介して受信し、受信したデータをフラッシュメモリ17に記憶する。CPU10はゲームプログラムを実行することにより、フラッシュメモリ17に記憶されたデータを読み出してゲームプログラムで利用する。フラッシュメモリ17には、ゲーム装置3と他のゲーム装置や各種サーバとの間で送受信されるデータの他、ゲーム装置3を利用してプレイしたゲームのセーブデータゲームの結果データまたは途中データが記憶されてもよい。また、入出力プロセッサ11aは、コントローラ5から送信される操作データをアンテナ23および無線コントローラモジュール19を介して受信し、内部メインメモリ11eまたは外部メインメモリ12のバッファ領域に記憶一時記憶する。さらに、入出力プロセッサ11aには、拡張コネクタ20およびメモリカード用コネクタ21が接続される。拡張コネクタ20は、USBやSCSIのようなインターフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したり、有線の通信用コネクタを接続することによって無線通信モジュール18に替えてネットワークとの通信を行ったりすることができる。メモリカード用コネクタ21は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ11aは、拡張コネクタ20やメモリカード用コネクタ21を介して外部記憶媒体にアクセスし、外部記憶媒体にデータを保存したり、外部記憶媒体からデータを読み出したりすることができる。ゲーム装置3には、電源ボタン24、リセットボタン25、およびイジェクトボタン26が設けられる。電源ボタン24およびリセットボタン25は、システムLSI11に接続される。電源ボタン24がオンされると、ゲーム装置3の各構成要素に対して、図示しないACアダプタを経て電源が供給される。リセットボタン25が押されると、システムLSI11は、ゲーム装置3の起動プログラムを再起動する。イジェクトボタン26は、ディスクドライブ14に接続される。イジェクトボタン26が押されると、ディスクドライブ14から光ディスク4が排出される。[入力装置7の構成]次に、図3から図5を参照して、入力装置7について説明する。図3は、入力装置7の外観構成を示す斜視図である。図4は、コントローラ5の外観構成を示す斜視図である。図3は、コントローラ5の上側後方から見た斜視図であり、図4は、コントローラ5を下側前方から見た斜視図である。コントローラ5は、例えばプラスチック成型によって形成されたハウジング31を有している。ハウジング31は、その前後方向図3に示すZ軸方向を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。ユーザは、コントローラ5に設けられたボタンを押下すること、および、コントローラ5自体を動かしてその位置や姿勢を変えることによってゲーム操作を行うことができる。ハウジング31には、複数の操作ボタンが設けられる。図3に示すように、ハウジング31の上面には、十字ボタン32a、1番ボタン32b、2番ボタン32c、Aボタン32d、マイナスボタン32e、ホームボタン32f、プラスボタン32g、および電源ボタン32hが設けられる。一方、図4に示すように、ハウジング31の下面には凹部が形成されており、当該凹部の後面側傾斜面にはBボタン32iが設けられる。これらの各操作ボタン32a~32iには、ゲーム装置3が実行するゲームプログラムに応じた機能が適宜割り当てられる。また、電源ボタン32hは遠隔からゲーム装置3本体の電源をオン/オフするためのものである。ホームボタン32fおよび電源ボタン32hは、その上面がハウジング31の上面に埋没している。これによって、ユーザがホームボタン32fまたは電源ボタン32hを誤って押下することを防止することができる。ハウジング31の後面にはコネクタ33が設けられている。コネクタ33は、コントローラ5に他の機器例えば、サブユニット76や他のコントローラを接続するために利用される。また、ハウジング31の後面におけるコネクタ33の両側には、上記他の機器が容易に離脱することを防止するために係止穴33aが設けられている。ハウジング31上面の後方には複数図3では4つのLED34a~34dが設けられる。ここで、コントローラ5には、他のメインコントローラと区別するためにコントローラ種別番号が付与される。各LED34a~34dは、コントローラ5に現在設定されている上記コントローラ種別をユーザに通知したり、コントローラ5の電池残量をユーザに通知したりする等の目的で用いられる。具体的には、コントローラ5を用いてゲーム操作が行われる際、上記コントローラ種別に応じて複数のLED34a~34dのいずれか1つが点灯する。また、コントローラ5は撮像情報演算部35図6を有しており、図4に示すように、ハウジング31前面には撮像情報演算部35の光入射面35aが設けられる。光入射面35aは、マーカ6Rおよび6Lからの赤外光を少なくとも透過する材質で構成される。ハウジング31上面における1番ボタン32bとホームボタン32fとの間には、コントローラ5に内蔵されるスピーカ図示は省略するからの音を外部に放出するための音抜き孔31aが形成されている。また、コントローラ5は、コントローラ5の加速度重力加速度を含むを検出する加速度センサ37図6を参照、およびコントローラ5の3軸回りの角速度を検知するジャイロセンサ図6に示す2軸ジャイロセンサ55および1軸ジャイロセンサ56を内蔵する。次に、図1および図5を参照して、サブユニット76について説明する。なお、図5は、サブユニット76の上筐体ハウジング77の一部を外した状態を示す斜視図である。サブユニット76は、例えばプラスチック成型によって形成されたハウジング77を有している。ハウジング77は、全体として大人や子供の片手で把持可能な大きさである。ハウジング77の上面に、方向指示手段であるスティック78aが設けられる。スティック78aは、ハウジング77の上面から突出した傾倒可能なスティックを倒すことによって、傾倒方向に応じて操作信号を出力する操作部である。例えば、ユーザがスティック先端を360°任意の方向に傾倒することによって任意の方向や位置を指定することができ、仮想ゲーム世界に登場するユーザキャラクタ等の移動方向を指示したり、カーソルの移動方向を指示したりすることができる。なお、スティック78aの代わりに十字キーを設けても良い。サブユニット76のハウジング77の前面に、複数の操作ボタンCボタン78dおよびZボタン78eが設けられる。操作ボタン78dおよび78eは、ユーザがボタン頭部を押下することによって、それぞれの操作ボタン78dおよび78eに割り当てられた操作信号を出力する操作部である。これら操作ボタン78dおよび78eは、ゲーム装置3が実行するゲームプログラムに応じてそれぞれの機能が割り当てられる。ハウジング77の内部には基板が固設されており、当該基板の上主面上にスティック78aおよび加速度センサ761等が設けられる。そして、これらは、基板等に形成された配線図示せずを介して接続ケーブル79と接続されている。なお、図3から図5に示したコントローラ5およびサブユニット76の形状や、各操作ボタンの形状、センサやバイブレータの数および設置位置等は単なる一例に過ぎず、他の形状、数、および設置位置であってもよい。また、本実施形態では、撮像手段による撮像方向はZ軸正方向であるが、撮像方向はいずれの方向であってもよい。すなわち、コントローラ5における撮像情報演算部35の位置撮像情報演算部35の光入射面35aは、ハウジング31の前面でなくてもよく、ハウジング31の外部から光を取り入れることができれば他の面に設けられてもかまわない。図6は、入力装置7コントローラ5およびサブユニット76の構成を示すブロック図である。コントローラ5は、操作部32各操作ボタン32a~32i、コネクタ33、撮像情報演算部35、通信部36、加速度センサ37、761およびジャイロセンサ55、56を備えている。コントローラ5は、自機に対して行われた操作内容を示すデータを操作データとしてゲーム装置3へ送信するものである。操作部32は、上述した各操作ボタン32a~32iを含み、各操作ボタン32a~32iに対する入力状態各操作ボタン32a~32iが押下されたか否かを示す操作ボタンデータを通信部36のマイコン42へ出力する。撮像情報演算部35は、撮像手段が撮像した画像データを解析してその中で輝度が高い領域を判別してその領域の重心位置やサイズなどを算出するためのシステムである。撮像情報演算部35は、例えば最大200フレーム/秒程度のサンプリング周期を有するので、比較的高速なコントローラ5の動きでも追跡して解析することができる。撮像情報演算部35は、赤外線フィルタ38、レンズ39、撮像素子40、および画像処理回路41を含んでいる。赤外線フィルタ38は、コントローラ5の前方から入射する光から赤外線のみを通過させる。レンズ39は、赤外線フィルタ38を透過した赤外線を集光して撮像素子40へ入射させる。撮像素子40は、例えばCMOSセンサやあるいはCCDセンサのような固体撮像素子であり、レンズ39が集光した赤外線を受光して画像信号を出力する。ここで、テレビ2の表示画面近傍に配置されるマーカ部6のマーカ6Rおよび6Lは、テレビ2の前方に向かって赤外光を出力する赤外LEDで構成される。したがって、赤外線フィルタ38を設けることによって、撮像素子40は、赤外線フィルタ38を通過した赤外線だけを受光して画像データを生成するので、マーカ6Rおよび6Lの画像をより正確に撮像することができる。以下では、撮像素子40によって撮像された画像を撮像画像と呼ぶ。撮像素子40によって生成された画像データは、画像処理回路41で処理される。画像処理回路41は、撮像画像内における撮像対象マーカ6Rおよび6Lの位置を算出する。画像処理回路41は、算出された位置を示す座標を通信部36のマイコン42へ出力する。この座標のデータは、マイコン42によって操作データとしてゲーム装置3に送信される。以下では、上記座標をマーカ座標と呼ぶ。マーカ座標はコントローラ5自体の向き傾斜角度や位置に対応して変化するので、ゲーム装置3はこのマーカ座標を用いてコントローラ5の向きや位置を算出することができる。なお、他の実施形態においては、コントローラ5は画像処理回路41を備えていない構成であってもよく、撮像画像自体がコントローラ5からゲーム装置3へ送信されてもよい。このとき、ゲーム装置3は、画像処理回路41と同様の機能を有する回路あるいはプログラムを有しており、上記マーカ座標を算出するようにしてもよい。加速度センサ37は、コントローラ5の加速度重力加速度を含むを検出する、すなわち、コントローラ5に加わる力重力を含むを検出する。加速度センサ37は、当該加速度センサ37の検出部に加わっている加速度のうち、センシング軸方向に沿った直線方向の加速度直線加速度の値を検出する。例えば、2軸以上の多軸加速度センサの場合には、加速度センサの検出部に加わっている加速度として、各軸に沿った成分の加速度をそれぞれ検出する。例えば、3軸または2軸の加速度センサは、アナログデバイセズ株式会社AnalogDevices,Inc.またはSTマイクロエレクトロニクス社STMicroelectronicsN.V.から入手可能である種類のものでもよい。なお、加速度センサ37は、例えば静電容量式の加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。本実施形態では、加速度センサ37は、コントローラ5を基準とした上下方向図3に示すY軸方向、左右方向図3に示すX軸方向および前後方向図3に示すZ軸方向の3軸方向に関してそれぞれ直線加速度を検出する。加速度センサ37は、各軸に沿った直線方向に関する加速度を検出するものであるため、加速度センサ37からの出力は3軸それぞれの直線加速度の値を表すものとなる。すなわち、検出された加速度は、入力装置7コントローラ5を基準に設定されるXYZ座標系以下、コントローラ座標系と称するにおける3次元のベクトルax,ay,azとして表される。以下では、加速度センサ37によって検出される3軸に関する各加速度値を各成分とするベクトルを加速度ベクトルと呼ぶ。加速度センサ37が検出した加速度加速度ベクトルを示すデータ加速度データは、通信部36へ出力される。なお、加速度センサ37が検出した加速度は、コントローラ5自体の向き傾斜角度や動きに対応して変化するので、ゲーム装置3は加速度データを用いてコントローラ5の向きや動きを算出することができる。2軸ジャイロセンサ55および1軸ジャイロセンサ56は、3軸本実施形態では、コントローラ座標系のXYZ軸周りの角速度を検出し、検出した角速度を示すデータ角速度データをコントローラ5へ送信する。2軸ジャイロセンサ55は、X軸周りの角速度およびY軸周りの単位時間あたりの角速度を検出する。また、1軸ジャイロセンサ56は、Z軸周りの単位時間あたりの角速度を検出する。なお、本明細書では、コントローラ5の撮像方向Z軸正方向を基準として、Z軸周り、X軸周り、Y軸周りの回転方向を、それぞれ、ロール方向、ピッチ方向、ヨー方向と呼ぶ。すなわち、2軸ジャイロセンサ55は、ピッチ方向X軸周りの回転方向およびヨー方向Y軸周りの回転方向の角速度を検出し、1軸ジャイロセンサ56は、ロール方向Z軸周りの回転方向の角速度を検出する。なお、本実施形態では、3軸回りの角速度を検出するために、2軸ジャイロセンサ55と1軸ジャイロセンサ56とを用いる構成としたが、他の実施形態においては、3軸回りの角速度を検出することができればよく、用いるジャイロセンサの数および組み合わせはどのようなものであってもよい。また、本実施形態では、各ジャイロセンサ55および56が角速度を検出する3つの軸は、加速度センサ37が加速度を検出する3つの軸XYZ軸と一致するように設定される。ただし、他の実施形態においては、各ジャイロセンサ55および56が角速度を検出する3つの軸と、加速度センサ37が加速度を検出する3つの軸とは一致しなくてもよい。ジャイロセンサ55および56で検出された角速度を示すデータは、マイコン54に出力される。したがって、マイコン54には、XYZ軸の3軸回りの角度速度を示すデータが入力されることになる。マイコン54は、上記3軸回りの角速度を示すデータを角速度データとしてプラグ53を介してコントローラ5へ送信する。なお、マイコン54からコントローラ5への送信は所定の周期毎に逐次行われるが、ゲームの処理は1/60秒を単位として1フレーム時間として行われることが一般的であるので、この時間以下の周期で送信を行うことが好ましい。本実施形態では、ゲーム装置3は、加速度データおよび角速度データに基づいて入力装置7コントローラ5の姿勢を判断する。入力装置7の姿勢は、例えば、入力装置7が存在する空間の所定位置を基準としたxyz座標系以下、ローカル座標系と称するの座標値によって表される。ここでは、図1に示されるように、xyz座標系は、入力装置7がマーカ部6の正面に位置することを前提とし、入力装置7の位置からマーカ部6を向く方向をz軸正方向とし、鉛直上向き重力方向の逆方向をy軸正方向とし、入力装置7の位置からマーカ部6を見た場合の左方向をx軸正方向とした座標系であるとする。また、ここでは、入力装置7コントローラ5を基準としたX軸、Y軸、Z軸が、それぞれx軸、y軸、z軸の向きと一致するときの入力装置7の姿勢を基準姿勢と呼ぶことにする。入力装置7の姿勢は、基準姿勢からZ軸方向を基準としてロール方向Z軸周り、ピッチ方向X軸周り、ヨー方向Y軸周りにそれぞれ入力装置7を回転させた場合のxyz座標系における姿勢である。通信部36は、マイコン42、メモリ43、無線モジュール44、およびアンテナ45を含んでいる。マイコン42は、処理を行う際にメモリ43を記憶領域として用いながら、マイコン42が取得したデータをゲーム装置3へ無線送信する無線モジュール44を制御する。また、マイコン42はコネクタ33に接続されている。サブユニット76から送信されてくるデータは、コネクタ33を介してマイコン42に入力される。サブユニット76は、上述した操作部78および加速度センサ761を備えており、接続ケーブル79とコネクタ791およびコネクタ33とを介して、マイコン42と接続されている。そして、サブユニット76に設けられた操作部78からの操作信号サブキーデータおよび加速度センサ761からの加速度信号サブ加速度データは、接続ケーブル79を介して、マイコン42に出力される。コントローラ5の説明に戻り、操作部32、撮像情報演算部35、加速度センサ37、761およびジャイロセンサ55、56からマイコン42へ出力されたデータ、ならびに、サブユニット76からマイコン42へ送信されてきたデータは、一時的にメモリ43に格納される。これらのデータは、上記操作データとしてゲーム装置3へ送信される。すなわち、マイコン42は、ゲーム装置3の無線コントローラモジュール19への送信タイミングが到来すると、メモリ43に格納されている操作データを無線モジュール44へ出力する。無線モジュール44は、例えばBluetoothブルートゥース登録商標の技術を用いて、所定周波数の搬送波を操作データで変調し、その微弱電波信号をアンテナ45から放射する。つまり、操作データは、無線モジュール44で微弱電波信号に変調されてコントローラ5から送信される。微弱電波信号はゲーム装置3側の無線コントローラモジュール19で受信される。受信された微弱電波信号について復調や復号を行うことによって、ゲーム装置3は操作データを取得することができる。そして、ゲーム装置3のCPU10は、取得した操作データとゲームプログラムとに基づいて、ゲーム処理を行う。なお、通信部36から無線コントローラモジュール19への無線送信は所定の周期毎に逐次行われるが、ゲームの処理は1/60秒を単位として1フレーム時間として行われることが一般的であるので、この時間以下の周期で送信を行うことが好ましい。コントローラ5の通信部36は、例えば1/200秒に1回の割合で各操作データをゲーム装置3の無線コントローラモジュール19へ出力する。[ゲーム処理の概要]次に、図7および図8を参照して、上記ゲームシステム1において実行されるゲームの概要について説明する。図7は、本実施形態に係るゲームシステム1によって提供されるバイオリンのシミュレート機能を利用する際の、ユーザによる入力装置7の操作方法を示す概略図である。本実施形態において実行されるゲームでは、ゲーム処理の一部として、ユーザによる操作に応じて音声を出力するためのバイオリンのシミュレート機能を提供する。ユーザは、コントローラ5をバイオリンの弓に見立てて操作することで、あたかもバイオリンを実際に演奏するような感覚で、操作に応じた音声をスピーカ2aから出力させることが出来る。即ち、本実施形態では、コントローラ5が仮想の弓となる。そして、この仮想の弓としてのコントローラ5を用いて仮想の弦を擦るボウイング動作がコントローラ5に内蔵された各種センサで検出されて、単位時間あたりの姿勢変化量が算出され、この姿勢変化量に応じた音量パラメータが決定される。ボウイング動作には、図7に示された方向へコントローラ5を動かす、ストロークおよび移弦の動きが含まれる。なお、バイオリンのような擦弦楽器では、演奏者は、弦に対して弓を垂直に動かす意識で演奏を行うことが通常であるが、実際には回転運動が検出されるため、弓の動きを、仮想の弓であるコントローラ5の姿勢変化量や、角速度に基づいて検出することが可能である。また、本実施形態では、ボウイング動作がコントローラ5に内蔵された各種センサで検出されて、移弦の動作が検出され、ユーザは、あたかも実際のバイオリンにおいて移弦を行っているかのような感覚で、移弦を行うことが出来る。更に、本実施形態では、サブユニット76が仮想の指板となり、この仮想の指板としてのサブユニット76に設けられたボタン78a、78dおよび78eの押下状態に基づいて、ユーザは、あたかも実際のバイオリンにおいて押弦を行っているかのような感覚で、音高を変更することが出来る。図8は、本実施形態に係るバイオリンのシミュレート機能を利用する際に用いられる、ローカル座標系xyz座標系およびこれに対するコントローラ座標系XYZ座標系の動きを示す概略図である。本実施形態では、コントローラ5の前面Y軸方向がユーザ側に向いた状態即ち、予め約90度ロールした状態でユーザに把持される。このため、ユーザがコントローラ5を把持してユーザの体を軸にストロークを行う動作は、主にピッチ方向への動作として検出され、ユーザがコントローラを把持してコントローラ5の先端を上下に傾ける移弦動作は、ヨー方向バイオリンの弦が張られた方向を軸とする周方向への動作として検出される。また、本実施形態において、このようなストロークの動きは、先述の通りピッチ方向への動作となる。このため、ストロークの動きは、コントローラ座標系のY軸およびZ軸の姿勢がローカル座標系に対して変化する動きとして表現可能である。また、先述の通りコントローラ5は予め約90度ロールした状態でユーザに把持されるため、ストロークの動きは、ローカル座標系においては主としてx成分およびz成分に反映される動きとなる図8に示されたコントローラ座標系とローカル座標系との対応関係を参照。このため、図15を用いて後述する音量更新処理では、コントローラ座標系のY軸およびZ軸の夫々の姿勢変化量が、ローカル座標系におけるx成分およびz成分を用いて表される後述する姿勢変化量dirY_x、dirY_z、dirZ_xおよびdirZ_zを参照。[ゲーム装置の機能構成]図9は、本実施形態に係るゲーム装置3の機能構成およびデータ構成を示す図である。図9に示される各機能部姿勢変化量取得部101、音量パラメータ設定部102、弦指定情報保持部103、弦変更部104、出力音量制御部105および音声信号出力部106は、例えば、光ディスク4に格納されるゲームプログラムを読み出して内部メインメモリ11eまたは外部メインメモリ12に展開し、CPU10、DSP11cおよびGPU11b等が実行することによって実現される機能の一部である。即ち、本実施形態に係るゲーム装置3は、ゲームプログラムを実行することによって、本発明に係る発音装置のシミュレーションを行う音楽演奏装置として動作する。姿勢変化量取得部101は、操作データのうち、特にコントローラ5の動きに関するデータ測定情報に基づいて、現実空間に定義されたローカル座標系xyz座標系に対する、コントローラ5の姿勢を示す基準となるX軸、Y軸、Z軸の、単位時間あたり本実施形態では、フレームあたりの変化量を算出することで、コントローラ5の単位時間あたりの姿勢変化量を取得する。ここで、姿勢変化量取得部101は、ローカル座標系の軸本実施形態では、X軸およびZ軸と、コントローラ5の姿勢を示す基準となる軸本実施形態では、Y軸およびZ軸との組み合わせ毎に分解された複数の姿勢変化量を取得する。算出される姿勢変化量の詳細については、後述する。なお、本実施形態では、姿勢変化量取得部101は、音量パラメータを設定するために参照される姿勢変化量として、所定の期間本実施形態では、16フレーム内に取得された姿勢変化量の平均値を取得する。なお、本実施形態では、ジャイロセンサ55、56から取得される測定値にばらつきが生じることを考慮して、姿勢変化量の平均値を算出し、これを参照することとしているが、参照される姿勢変化量は、平均値に限定されない。音量パラメータ設定部102は、単位時間フレームあたり姿勢変化量に応じて、発音装置からの発音の音量を決定するための音量パラメータを設定する。音量パラメータ設定部102は、姿勢変化量と音量パラメータとの対応関係を定めたマップを参照することで、姿勢変化量に応じた音量パラメータを取得し、設定する。なお、姿勢変化量と音量パラメータとの関係を表したマップについては、図16を用いて後述する。但し、音量パラメータは、姿勢変化量と音量パラメータとの対応関係を定めた関係式を用いて算出されてもよい。具体的には、姿勢変化量取得部101および音量パラメータ設定部102は、図15を用いて後述する音量更新処理を実行することによって、音量パラメータを設定する。なお、本実施形態において、音量パラメータ設定部102は、姿勢変化量取得部101によって取得された複数の姿勢変化量のうち、姿勢変化量が大きい順において上位2つ以上の姿勢変化量に基づいて、音量パラメータを設定する。弦指定情報保持部103は、現在発音の対象となっている弦が何れの弦であるかを指定する弦指定パラメータを保持する。そして、弦変更部104は、操作データに基づいて、弦を軸とする周方向コントローラのヨー方向への角加速度が閾値を越えたと判定された場合に、弦指定パラメータによって指定される弦を変更する。具体的には、弦変更部104は、図12Aおよび図12Bを用いて後述する指定弦更新処理を実行することによって、弦指定パラメータによって指定される弦を変更する。出力音量制御部105は、操作データに基づいて、ピッチ方向における角加速度の正負が逆転したと判定された場合に、音声信号出力部106による音声信号の出力を所定時間止めるかまたは音声信号出力部106による音声信号の出力音量を下げる。このようにすることで、ユーザが引き返し動作を行った際に、一旦音声の出力が止まるか音量が下がることとなる。引き返し動作とは、弦楽器において往復するストロークの動作を行おうとしたときに、ストロークの方向を切り換えるために行われる動作である。通常、引き返し動作が行われる際には、ユーザは、それまで行っていた方向へのストロークを終了させるための減速を行うため、角加速度の正負が逆転する。即ち、本実施形態によれば、ユーザによって行われた引き返しが検出され、一旦音声の出力が止まるか音量が下がることとなるため、ユーザに対して、実際にバイオリンを弾いているような感覚を与えることが出来る。具体的には、出力音量制御部105は、図14Aおよび図14Bを用いて後述するボウイング更新処理および図17を用いて後述する音声信号出力処理を実行することによって、引き返し動作の際の出力音量制御を行う。なお、先述の通り、本実施形態において、コントローラ5は約90度ロールした状態でユーザに把持される図8を参照。そして、バイオリンは通常の構えにおいて弦が略水平になり、ストロークの際にはユーザの体を軸として弓が回転運動する。このため、本実施形態では、ピッチ方向への角加速度の正負によって引き返し動作を検出している。但し、シミュレーション対象の擦弦楽器によって弓の構え方および回転方向は異なるため、引き返し動作の検出のために正負の逆転が判定される回転方向は、シミュレーションの対象に応じて適宜設定されてよい。音声信号出力部106は、音量パラメータ等の設定内容に応じた音量の音声信号を出力する。具体的には、音声信号出力部106は、図17を用いて後述する音声信号出力処理を実行することによって、音量パラメータ等の設定内容に応じた音量の音声信号を出力する。[ゲーム装置のデータ構成]次に、図9を参照して、本実施形態に係るシミュレート処理において用いられる各種データについて説明する。内部メインメモリ11eまたは外部メインメモリ12には、ストローク状態、ストロークパワー、弦指定パラメータ、音量パラメータ、音高パラメータおよびサウンドラベル等の各種データが保持される。ストローク状態は、ユーザによるストロークの状態を示す情報である。バイオリンのボウイングには、UPストロークおよびDOWNストロークがある。本実施形態では、図7および図8に示された姿勢において、ユーザがコントローラ5を把持した手を自分の体に近づけるようにして行うストロークをUPストローク、ユーザがコントローラ5を把持した手を自分の体から遠ざけるようにして行うストロークをDOWNストローク、と称する。バイオリンは、UPストロークおよびDOWNストロークが交互に繰り返されることによって演奏される。ストローク状態には、初期化のための値であるストロークなしの他、現在のストローク状態を示すUPストローク、DOWNストローク、UPtoDOWNストロークおよびDOWNtoUPストロークが設定され得る。ここで、UPtoDOWNストロークとは、ストローク状態がUPストロークからDOWNストロークに移行する間に設定されるストローク状態であり、DOWNtoUPストロークとは、ストローク状態がDOWNストロークからUPストロークに移行する間に設定されるストローク状態である。ストローク状態は、後述する初期化処理において、ストロークなしで初期化される。ストロークパワーは、シミュレーション対象の発音装置本実施形態では、バイオリンの音色を設定する際に参照される情報である。本実施形態では、ストロークパワーに応じたサウンドラベルを再生することで、弓を引く勢いに応じた音色を有する音声信号を出力することを可能としている。ストロークパワーには、弱または強が設定され得る。ストロークパワーは、後述する初期化処理において、弱で初期化される。弦指定パラメータは、バイオリンの4本の弦のうちのどの弦が発音の対象となっているか即ち、仮想の弓がどの弦に当たっているかを示す情報である。バイオリンには、低音弦から順にG線、D線、A線、E線が張られるため、弦指定パラメータには、これらの4本の弦を識別可能な情報が設定される。なお、本実施形態において、弦指定パラメータは、G線を示す値として0ゼロ、D線を示す値として5、A線を示す値として10、E線を示す値として15が用いられる。このため、弦指定パラメータに5加算することで、1弦ぶん高音弦側に移弦し、弦指定パラメータから5減算することで、1弦ぶん低音弦側に移弦することとなる。但し、弦指定パラメータにおいて各弦を指定する方法には、各弦を示すフラグ等、その他の方法が採用されてもよい。弦指定パラメータは、後述する初期化処理において、A線を示す値本実施形態では、10で初期化される。音量パラメータは、出力される音声信号の音量を指定するための情報である。本実施形態において、音量パラメータは、無音を示す0.0000から最大音量を示す1.0000までの間の値を取り得る。音量パラメータは、後述する初期化処理において、0.0000無音で初期化される。音高パラメータは、出力される音声信号の音高を指定するための情報である。また、本実施形態において、音高パラメータは、バイオリンのA線を開放状態で発音させた場合の音高440または442Hzを0ゼロとして、半音上昇する毎に1増加、半音下降する毎に1減少する値をとる。音高パラメータは、初期化処理において、0ゼロで初期化される。サウンドラベルは、ゲーム装置3から出力される音声の音色を決定するための音波形のデータである。サウンドラベルには、ストロークパワー弱に対応する音色を表現するための音波形、またはストロークパワー強に対応する音色を表現するための音波形が設定可能である。サウンドラベルは、後述する初期化処理において、ストロークパワー弱に対応するサウンドラベルで初期化される。更に、内部メインメモリ11eまたは外部メインメモリ12には、移弦準備フラグ、音量制御フラグおよび引き返しフラグを含む各種フラグが保持される。移弦準備フラグとは、移弦の準備段階にあるか否かを示すためのフラグである。音量制御フラグは、引き返し動作の際に音量が小さくなる効果を実施させるために、音声信号出力処理において参照されるフラグである。また、引き返しフラグは、ストローク中に引き返し動作が検出されたことを示すためのフラグである。各種フラグは、後述する初期化処理において、OFFで初期化される。<処理の流れ>次に、本実施形態において実行される処理の流れを、フローチャートを用いて説明する。なお、本実施形態に係るフローチャートに示された処理の具体的な内容および処理順序は、本発明を実施するための一例である。具体的な処理内容および処理順序は、本発明の実施の形態に応じて適宜選択されてよい。[シミュレート処理]図10は、本実施形態に係るシミュレート処理の流れを示すフローチャートである。本実施形態に係るシミュレート処理は、ゲーム装置3によって実行されるゲームプログラムに基づくゲームの一部として実行される。ステップS001からステップS003では、初期化処理が行われる。CPU10は、内部メインメモリ11eまたは外部メインメモリ12のバッファ領域に記録される操作データ、本シミュレート処理に用いられる各種変数、本シミュレート処理の実行状態を管理するための情報、および本シミュレート処理において用いられる各種フラグを初期化するステップS001。また、CPU10は、本シミュレート処理において出力される音声信号を生成するために参照される、音量パラメータ、音高パラメータおよびサウンドラベルを初期化するステップS002。初期化の具体的な内容は、データ構成の説明において先述した通りであるため、説明を省略する。更に、ゲーム装置3は、ユーザに対して、コントローラ5を弓に見立ててバイオリンを演奏する姿勢をとるよう案内する。ユーザが演奏する姿勢をとると図7を参照、CPU10は、そのコントローラ位置を初期位置として、現実空間における位置姿勢を示す基準となるローカル座標系を定義し、このローカル座標系と、コントローラ5の位置姿勢を示すコントローラ座標系との対応関係を取得するステップS003。ローカル座標系とコントローラ座標系との対応関係は、コントローラ5から取得された操作データに基づいて算出可能である。その後、処理はステップS004へ進む。なお、本フローチャートに示された処理は、60フレーム/秒で分割されたフレーム単位で繰り返し実行されることで、操作データに従って音声信号を出力するバイオリンのシミュレート処理である。このため、以下に説明するステップS004からステップS009までの処理は、フレーム毎に実行される。ステップS004では、コントローラ5から入力される操作データが更新される。CPU10は、コントローラ5およびサブユニット76に設けられた各操作ボタン32a~32i、78e、78d、およびスティック78aの状態、画像処理回路41によって算出されたマーカ座標、加速度センサ37によって検出された加速度、およびジャイロセンサ55、56を用いて計測された角速度等の、コントローラ5に設けられた各種センサによる操作データを取得し、内部メインメモリ11eまたは外部メインメモリ12のバッファ領域を更新する。その後、処理はステップS005へ進む。ステップS005では、コントローラ5の三次元姿勢に係る情報以下、姿勢関連情報と称するが更新される。CPU10は、ステップS004において更新されたコントローラ5からの入力内容操作データに基づいて、コントローラ5の、ローカル座標に対する三次元姿勢、コントローラ5のヨー方向、ピッチ方向、ロール方向の夫々に係る角加速度および角加速度変化量を算出し、メモリ上に保持されているコントローラ5の姿勢関連情報を更新する。例えば、CPU10は、ジャイロセンサ55、56によって取得されて更新されたコントローラ5のヨー方向、ピッチ方向、ロール方向の夫々に係る角速度に基づいて、ヨー方向、ピッチ方向、ロール方向の夫々に係る角加速度および角加速度変化量を算出する。なお、角加速度および角速度変化量は、ジャイロセンサ55、56から取得された角速度のみに基づいて算出されてもよいし、その他加速度センサ37から取得された情報等を用いて補正されてもよい。その後、処理はステップS006へ進む。ステップS006では、音高更新処理が実行される。CPU10は、ステップS004において更新された操作データおよびステップS005において更新された姿勢関連情報に基づいて、出力される音声信号の音高を指定するための音高パラメータを更新する。音高更新処理の具体的な内容については、図11から図13に示すフローチャートを用いて後述する。その後、処理はステップS007へ進む。ステップS007では、ボウイング更新処理が実行される。CPU10は、ステップS004において更新された操作データおよびステップS005において更新された姿勢関連情報に基づいて、弦楽器の演奏におけるユーザの手の動きの状態を示すストローク状態、および引き返しに伴う音量制御フラグを更新する。ボウイング更新処理の具体的な内容については、図14Aおよび図14Bに示すフローチャートを用いて後述する。その後、処理はステップS008へ進む。ステップS008では、音量更新処理が実行される。CPU10は、ステップS004において更新された操作データおよびステップS005において更新された姿勢関連情報に基づいて、出力される音声信号の音量を指定するための音量パラメータを更新する。音量更新処理の具体的な内容については、図15に示すフローチャートを用いて後述する。その後、処理はステップS009へ進む。ステップS009では、音声信号出力処理が実行される。CPU10は、ステップS006からステップS008の処理において設定された各種情報に基づいて、音声信号を生成し、出力する。音声信号出力処理の具体的な内容については、図17に示すフローチャートを用いて後述する。ステップS009に示された音声信号出力処理が終了すると、その後、処理はステップS010へ進む。ステップS010では、本フローチャートに示されたシミュレート処理を終了するか否かが判定され、シミュレート処理を終了すると判定された場合、本フローチャートに示された処理は終了する。一方、シミュレート処理を終了しないと判定された場合、処理はステップS004へ進む。即ち、本実施形態に係るシミュレート処理では、ステップS004からステップS009までの処理が、ユーザからの終了指示等が受け付けられるまで繰り返し実行される。なお、先述の通り、本フローチャートのステップS004からステップS009までの処理は、フレーム毎に実行される。次に、図10のステップS006からステップS009に示された、音高更新処理、ボウイング更新処理、音量更新処理、および音声信号出力処理の詳細を、図11から図17のフローチャートを用いて説明する。[音高更新処理]図11は、本実施形態に係る音高更新処理の流れを示すフローチャートである。本実施形態に係る音高更新処理は、指定弦更新処理および押弦位置更新処理を含む。指定弦更新処理において、CPU10は、ジャイロセンサ55、56等を用いて検出されたコントローラ5の動き等に基づいて、バイオリンの4本の弦のうちのどの弦が発音の対象となっているかを示す弦指定パラメータを更新するステップS101。そして、押弦位置更新処理において、CPU10は、押弦位置を示すサブユニット76のボタンの押下状態等に基づいて、発音の対象となっている弦のどの位置が押弦されているかを判定し、音高パラメータを更新するステップS102。その後、本フローチャートに示された処理は終了する。なお、指定弦更新処理の詳細については、図12Aおよび図12Bを参照して、押弦位置更新処理の詳細については、図13を参照して後述する。図12Aおよび図12Bは、本実施形態に係る指定弦更新処理の流れを示すフローチャートである。ステップS201では、移弦準備フラグの状態が判定される。CPU10は、移弦準備フラグを参照することで、現在の状態が移弦の準備段階であるか否かを判定する。移弦準備フラグがOFFであった場合、処理はステップS202へ進む。移弦準備フラグがONであった場合、処理はステップS206へ進む。先述の通り、移弦準備フラグとは、移弦の準備段階にあるか否かを示すためのフラグである。本実施形態では、ユーザによる移弦を示唆する動きが検出された際に、即座に移弦を行うことなく、移弦準備フラグを用いて、移弦の準備段階を設けることとしている。実際のバイオリンが演奏される場合、移弦によって発音される音が変わるのは、移弦後のストロークが始まったタイミングであり、ユーザによる移弦の動きが検出されて即座に音を変化させてしまうと、発音の流れが不自然となる。このため、本実施形態では、移弦後の引き返しストロークが始まったタイミングで自然に発音が開始する感覚をユーザに与えるために、移弦の動きが検出されたタイミングでは移弦の準備のみを行い移弦準備フラグON、次フレーム以降で発音される音を変化させることとしている。ステップS202およびステップS203では、Aボタン32dの押下状態が所定のフレーム数以上継続しているか否かが判定される。CPU10は、ステップS201において移弦準備フラグがOFFであると判定されたことを受けて、シミュレート処理のステップS004において更新された操作データを参照することで、Aボタン32dが押下されている状態であるか否かを判定するステップS202。そして、Aボタン32dが押下されていないと判定された場合、本フローチャートに示された処理は終了する。また、Aボタン32dが押下されていると判定された場合、CPU10は、現在の押下状態が何フレーム数継続しているかを示す押下状態継続フレーム数を参照し、所定の閾値例えば、60フレームと比較することで、Aボタン32dの押下状態が、所定のフレーム数以上継続しているか否かを判定するステップS203。より具体的には、内部メインメモリ11eまたは外部メインメモリ12に用意されたカウンタに、Aボタン32dの押下状態が継続されている間、1フレームにつき1カウントアップするカウンタを用意する方法等を用いて、Aボタン32dの押下状態継続フレーム数を計測する。このカウンタは、Aボタン32dの押下状態が解除された時点で0ゼロに初期化される。Aボタン32dの押下状態が、所定のフレーム数以上継続していると判定された場合、本フローチャートに示された処理は終了する。一方、Aボタン32dの押下状態が所定のフレーム数以上継続していないと判定された場合、処理はステップS204へ進む。即ち、本実施形態では、Aボタン32dが押されているときのみ移弦の処理を実行することで、ユーザの意図しない移弦を防止することとしているステップS202。但し、Aボタン32dが所定時間以上押下されている場合には、ユーザがAボタン32dを押しっぱなしにしている誤操作と判断し、Aボタン32dが押されていても移弦の処理を実行しないステップS203。なお、移弦を明示的に許可する操作本実施形態では、Aボタン32dを押下する操作は省略されてもよい。移弦を明示的に許可する操作が省略される場合、コントローラ5の動きのみで移弦が実行されるため、ユーザに対して、より現実に近いシミュレーションを提供することが出来る。ステップS204では、コントローラ5の動きに基づいて、ユーザが移弦のための動きを行っているか否かが判定される。CPU10は、シミュレート処理のステップS005において更新された、コントローラ5のピッチ方向の角加速度変化量およびヨー方向の角加速度を参照することで、1ピッチ方向の角加速度変化量の正負が前フレームと比較して逆転したか否かを判定し、更に、2ヨー方向の角加速度が所定の範囲となったか否かを判定する。本実施形態では、1ピッチ方向の角加速度変化量の正負が前フレームと比較して逆転したか否かを判定することによって、ユーザによる、引き返しのための減速を行おうとする動きが検出され、2ヨー方向の角加速度が所定の範囲となったか否かを判定することによって、ユーザによる、弦を変更する動きが検出される。ヨー方向の角加速度が所定の範囲となったか否かの判定においては、例えば、ヨー方向の角加速度が-0.5以下となった場合に、高音弦へ移弦するための動作が行われていると判定される。一方、ヨー方向の角加速度が0.3以上となった場合には、低音弦へ移弦するための動作が行われていると判定される。ここで、ピッチ方向の角加速度変化量の正負が前フレームと比較して逆転し、且つ、ヨー方向の角加速度が所定の範囲となったと判定された場合、CPU10は、ユーザが移弦のための動きを行っていると判定する。ユーザが移弦のための動きを行っていると判定された場合、処理はステップS205へ進む。ユーザが移弦のための動きを行っていないと判定された場合、本フローチャートに示された処理は終了する。ステップS205では、移弦準備フラグがONに設定される。CPU10は、ステップS204において、ユーザが移弦のための動きを行っていると判定されたことを受けて、移弦準備フラグをONに設定する。その後、本フローチャートに示された処理は終了する。本ステップにおいて移弦準備フラグがONに設定されることによって、次フレームにおいて本フローチャートに示された指定弦更新処理が実行された場合に、ステップS201に示された判定において処理はステップS206へ進み、実際の移弦弦指定パラメータを更新する処理が実行される。ステップS206では、移弦に伴うユーザの引き返し動作が終了したか否かが判定される。CPU10は、ステップS201において移弦準備フラグがONであると判定されたことを受けて、シミュレート処理のステップS005において更新された、コントローラ5のピッチ方向の角加速度を参照し、移弦に伴う引き返し動作が終了したか否かを判定する。より具体的には、CPU10は、コントローラ5のピッチ方向の角加速度が、0ゼロを含む所定の範囲内にある場合には、引き返し動作が終了したと判定する。一方、CPU10は、コントローラ5のピッチ方向の角加速度が、0ゼロを含む所定の範囲内にない場合には、引き返し動作が未だ終了していない引き返し動作中であると判定する。ユーザの引き返し動作が終了したと判定された場合、処理はステップS207へ進む。ユーザの引き返し動作が終了していないと判定された場合、本フローチャートに示された処理は終了する。即ち、本実施形態に係る指定弦更新処理では、ユーザによる移弦の動きが検出されて移弦準備フラグがONとなった後も、ユーザの引き返し動作が終了するまでは、実際の移弦を行わないこととしている。このようにすることで、ユーザに対して、実際の弦楽器を演奏する場合に近い感覚を与えることが出来る。ステップS207では、ユーザによる移弦動作が、現在発音の対象となっている弦から見て高音弦側への移弦動作であるか、低音弦側への移弦動作であるかが判定される。CPU10は、シミュレート処理のステップS005において更新された、コントローラ5のヨー方向の角加速度を参照することで、ユーザの移弦動作が、現在発音の対象となっている弦から見て高音弦側への移弦動作であるか、低音弦側への移弦動作であるかを判定する。本実施形態に示す例では、左方向へのヨーが正の値で示され、右方向へのヨーが負の値で示される。先述の通り、本実施形態では、コントローラ5が90度傾いた状態90度ロールした状態でユーザに把持され、ユーザから見てコントローラ5の先端を上下に傾ける動作がヨー方向への動作となる。そして、バイオリンでは、通常通りユーザが左手に楽器を持ち、右手に弓を持って構えた場合、弓の先端寄りに低音弦が、基端寄りに高音弦が張られている。このため、ヨーの値が負である場合コントローラ5の先端を上に傾ける動作である場合、ユーザの移弦動作は、高音弦側への移弦動作であると判定され、ヨーの値が正である場合コントローラ5の先端を下に傾ける動作である場合、ユーザの移弦動作は、低音弦側への移弦動作であると判定される。高音弦側への移弦動作であると判定された場合、処理はステップS208へ進む。一方、低音弦側への移弦動作であると判定された場合、処理はステップS210へ進む。ステップS208およびステップS209では、高音弦側への移弦が実行される。CPU10は、弦指定パラメータを参照することで、現在発音の対象となっている弦が最高音弦バイオリンにあっては、E線であるか否かを判定するステップS208。ここで、現在発音の対象となっている弦が最高音弦であると判定された場合、これ以上高音弦側への移弦は出来ないため、移弦は行われず、処理はステップS212へ進む。一方、現在発音の対象となっている弦が最高音弦ではないと判定された場合、CPU10は、弦指定パラメータに、現在発音の対象となっている弦より1弦分高音弦側の弦を示す値を設定するステップS209。その後、処理はステップS212へ進む。ステップS210およびステップS211では、低音弦側への移弦が実行される。CPU10は、弦指定パラメータを参照することで、現在発音の対象となっている弦が最低音弦バイオリンにあっては、G線であるか否かを判定するステップS210。ここで、現在発音の対象となっている弦が最低音弦であると判定された場合、これ以上低音弦側への移弦は出来ないため、移弦は行われず、処理はステップS212へ進む。一方、現在発音の対象となっている弦が最低音弦ではないと判定された場合、CPU10は、弦指定パラメータに、現在発音の対象となっている弦より1弦分低音弦側の弦を示す値を設定するステップS211。その後、処理はステップS212へ進む。ステップS212では、移移弦準備フラグがOFFに設定される。CPU10は、移弦が実行されたかステップS209またはステップS211、または移弦が出来ないと判定ステップS208またはステップS210されたことを受けて、移弦準備フラグをOFFに設定する。その後、本フローチャートに示された処理は終了する。図13は、本実施形態に係る押弦位置更新処理の流れを示すフローチャートである。ステップS301からステップS307では、現在発音の対象となっている弦に基づいて、当該弦に応じた音高パラメータが設定される。CPU10は、弦指定パラメータを参照することで、現在発音の対象となっている弦を判定し、判定の結果に応じて音高パラメータを設定する。具体的には、CPU10は、弦指定パラメータがG線を示す値である場合、音高パラメータに-14を設定しステップS301およびステップS302、弦指定パラメータがD線を示す値である場合、音高パラメータに-7を設定しステップS303およびステップS304、弦指定パラメータがA線を示す値である場合、音高パラメータに0ゼロを設定しステップS305およびステップS306、弦指定パラメータがE線を示す値である場合、音高パラメータに7を設定するステップS307。その後、処理はステップS308へ進む。ステップS308からステップS313では、ユーザの押弦操作に基づいて、音高パラメータが変更される。CPU10は、シミュレート処理のステップS004において更新された操作データを参照することで、Zボタン78e、Cボタン78d、およびスティック78aの何れかが押下されている状態であるか否かを判定する。CPU10は、Zボタン78eが押下されている場合、音高パラメータに5または6加算しステップS308およびステップS309、Cボタン78dが押下されている場合、音高パラメータに3または4加算しステップS310およびステップS311、スティック78aに0以外の値がある場合、音高パラメータに1または2加算するステップS312およびステップS313。何れのボタンも押下されていない場合ステップS312においてNoに分岐した場合には、音高パラメータの変更は行われない。なお、本実施形態において、音高パラメータには、演奏に用いられるキーおよびスケールに応じた値が加算される。CPU10は、予め設定されたキーおよびスケールを参照して、音高パラメータに加算される値が、上記ステップS308からステップS313の説明において示された値の何れであるかを決定する。例えば、ゲーム内で流れる楽曲に合わせて演奏を行う場合、自動的に当該楽曲の調性キーおよびモードに合わせた設定がなされてよい。その後、本フローチャートに示された処理は終了する。なお、フローチャートから把握される通り、押弦操作のためのボタンには優先順位が存在する。即ち、押弦のためのボタンが複数押下されている場合、実際の楽器においてより高音側の押弦箇所に従って音高が決定されるのと同様、より大きな値が音高パラメータに加算されるボタンが優先されて、音高パラメータが決定される。このため、ユーザは、実際の楽器演奏に近い感覚でプレイできる。また、[ボウイング更新処理]図14Aおよび図14Bは、本実施形態に係るボウイング更新処理の流れを示すフローチャートである。ステップS401およびステップS402では、ボウイング更新処理において用いられる、ピッチ方向の角加速度の平均値以下、平均角加速度ACC_AVE2と称するおよび角加速度変化量の平均値以下、平均角加速度変化量V_AVE8と称するが取得される。CPU10は、シミュレート処理のステップS005において更新された、コントローラ5のピッチ方向の角加速度を2フレーム分取得し、その平均を算出するステップS401。また、CPU10は、シミュレート処理のステップS005において更新された、コントローラ5のピッチ方向の角加速度変化量を8フレーム分取得し、その平均を算出するステップS402。なお、本実施形態では、ジャイロセンサ55、56から取得される測定値にばらつきが生じることを考慮して、平均角加速度ACC_AVE2および平均角加速度変化量V_AVE8を算出し、これを参照することとしているが、参照される角加速度および角加速度変化量は、平均値に限定されない。その後、処理はステップS403へ進む。ステップS403からステップS413では、現在のストローク状態および角加速度に基づいて、ストローク状態が更新される。CPU10は、現在のストローク状態、およびステップS401で算出された平均角加速度ACC_AVE2に基づいて、ストローク状態を更新する。本実施形態において、UPストローク中は、ピッチ方向の角速度が負の値で示され、DOWNストローク中は、ピッチ方向の角速度が正の値で示される。このため、UPストローク中にユーザが手を動かす速さを落とす動きや、実際にDOWNストロークを開始して手を動かす早さを上げる動きは、正の角加速度として表れる。また、DOWNストローク中にユーザが手を動かす速さを落とす動きや、実際にUPストロークを開始して手を動かす早さを上げる動きは、負の角加速度として表れる。このことから、現在のストローク状態がUPストロークに設定されており、且つ平均角加速度ACC_AVE2が正である場合、CPU10は、UPストローク中にユーザがDOWNストロークに向けた動きを始めたと判断し、ストローク状態をUPtoDOWNストロークに設定するステップS403、S407およびS408。また、現在のストローク状態がDOWNストロークに設定されており、且つ平均角加速度ACC_AVE2が負である場合、CPU10は、DOWNストローク中にユーザがUPストロークに向けた動きを始めたと判断し、ストローク状態をDOWNtoUPストロークに設定するステップS404、S409およびS410。その後、処理はステップS414へ進む。また、CPU10は、現在のストローク状態がUPtoDOWNストロークに設定されており、且つ平均角加速度ACC_AVE2が正である場合、ユーザがDOWNストロークを始めたと判断出来るため、ストローク状態をDOWNストロークに設定するステップS405、S411およびS412。また、CPU10は、現在のストローク状態がDOWNtoUPストロークに設定されており、且つ平均角加速度ACC_AVE2が負である場合、ユーザがUPストロークを始めたと判断出来るため、ストローク状態をUPストロークに設定するステップS406およびS413。その後、処理はステップS420へ進む。なお、現在のストローク状態がUPストロークに設定されており、且つ平均角加速度ACC_AVE2が正でない場合、UPストロークが継続されていると判断出来るため、CPU10は、ストローク状態を更新しないステップS407のNo。同様に、現在のストローク状態がDOWNストロークに設定されており、且つ平均角加速度ACC_AVE2が負でない場合、DOWNストロークが継続されていると判断出来るため、CPU10は、ストローク状態を更新しないステップS409のNo。ストローク状態が更新されなかった場合、処理はステップS416へ進む。即ち、本実施形態に示された処理において、ストローク状態は、ユーザの動きに応じて、UPストローク→UPtoDOWNストローク→DOWNストローク→DOWNtoUPストローク→UPストロークの順に設定される。このようにして、本実施形態では、バイオリンを演奏する際のボウイングの動きが取得される。但し、現在のストローク状態がUPtoDOWNストロークに設定されているが、平均角加速度ACC_AVE2が正でない場合、CPU10は、ストローク状態をUPストロークに戻す設定を行うステップS411およびS413。同様に、現在のストローク状態がDOWNtoUPストロークに設定されているが、平均角加速度ACC_AVE2が負でない場合、CPU10は、ストローク状態をDOWNストロークに戻す設定を行うステップS406およびS412。その後、処理はステップS420へ進む。ステップS414からステップS416では、前回の引き返し処理完了からの経過時間に基づいて、引き返しフラグが設定される。本実施形態において、ピッチ方向の角加速度は、60フレーム/秒で分割されたフレーム毎に更新されるため、ユーザの意図しない手の動きによって、平均角加速度ACC_AVE2の正負が頻繁に入れ替わる可能性がある。このため、CPU10は、ユーザの意図しない手の細かい動きによって生じる平均角加速度ACC_AVE2の正負の入れ替わりを、引き返し動作と誤判定することを防止するため、前回の引き返し処理完了から3フレーム以上が経過しているか否かを判定するステップS414。なお、前回の引き返し処理完了は、例えば、後述するステップS608において、音量制御フラグがOFFに設定されたタイミングとすることが出来る。そして、前回の引き返し処理完了から3フレーム以上が経過していると判定された場合、CPU10は、引き返しフラグをONに設定するステップS415。一方、前回の引き返しから3フレーム以上が経過していないと判定された場合、CPU10は、引き返しフラグをOFFに設定するステップS416。また、CPU10は、ステップS407またはステップS409における判定の結果、ストローク状態が更新されなかった場合にも、引き返しフラグをOFFに設定するステップS416。その後、処理はステップS417へ進む。ステップS417からステップS419では、平均角加速度変化量V_AVE8に基づいて、ストロークパワーが設定される。CPU10は、ステップS402で算出された平均角加速度変化量V_AVE8に基づいて、ストロークパワーを設定する。引き返し動作の際の平均角加速度変化量V_AVE8は、ユーザによる引き返し動作の勢いの程度を示す。このため、CPU10は、平均角加速度変化量V_AVE8を所定の閾値例えば、0.04と比較しステップS417、平均角加速度変化量V_AVE8が所定の閾値を超えている場合、ストロークパワーに強を設定する。一方、CPU10は、平均角加速度変化量V_AVE8が所定の閾値を超えていない場合、ストロークパワーに弱を設定する。その後、本フローチャートに示された処理は終了する。ステップS420およびステップS421では、引き返しフラグの内容に応じて、音量制御フラグが設定される。CPU10は、前フレームにおいてボウイング更新処理が実行された際に設定された引き返しフラグを参照しステップS420、引き返しフラグがONに設定されている場合、音量制御フラグをONに設定するステップS421。一方、引き返しフラグがONに設定されている場合、音量制御フラグは設定されないステップS420のNo。その後、本フローチャートに示された処理は終了する。なお、本実施形態では、過渡的なストローク状態として、UPtoDOWNストロークおよびDOWNtoUPストロークを設定し、ストローク状態の移行を管理することとしているが、実施の形態によっては、UPtoDOWNストロークおよびDOWNtoUPストロークは用いられなくてもよい。この場合、ストローク状態は、ユーザの動きに応じてUPストローク→DOWNストローク→UPストロークの順に設定される。UPtoDOWNストロークおよびDOWNtoUPストロークが設定されない場合、CPU10は、毎フレーム、またはストローク状態が変更されたフレームの次フレームにおいて、引き返しフラグを参照し、引き返しフラグの内容に応じて、音量制御フラグを設定する。[音量更新処理]図15は、本実施形態に係る音量更新処理の流れを示すフローチャートである。ステップS501では、ローカル座標系における、コントローラ5の姿勢変化量が更新される。CPU10は、シミュレート処理のステップS004において更新された、コントローラ5のヨー方向、ピッチ方向、ロール方向の夫々に係る角速度に基づいて、ローカル座標系における、コントローラ5の姿勢変化量を算出する。この算出は、フレーム毎に更新された最新の角速度に基づいて、毎フレーム行われる。具体的には、CPU10は、コントローラ座標系のY軸およびZ軸の夫々が1フレーム間に移動した移動量を、ローカル座標系におけるベクトルで表すことで、単位時間あたりのコントローラ5の姿勢変化量を算出する。但し、本実施形態に係る音量更新処理において、コントローラ5の姿勢は、コントローラ座標系のY軸およびZ軸のみで定義され、コントローラ5の姿勢変化量は、ローカル座標系のx成分およびz成分についてのみ算出される。この姿勢変化量は、コントローラ5のヨー方向、ピッチ方向、ロール方向の夫々に係る角速度に基づいて算出できる。即ち、本実施形態において、CPU10は、コントローラ座標系のY軸の姿勢変化量として、ローカル座標系におけるx成分の姿勢変化量dirY_xと、ローカル座標系におけるz成分の姿勢変化量dirY_zと、を算出し、コントローラ座標系のZ軸の姿勢変化量として、ローカル座標系におけるx成分の姿勢変化量dirZ_xと、ローカル座標系におけるz成分の姿勢変化量dirZ_zと、を算出する。即ち、本実施形態では、姿勢変化量として、姿勢変化量dirY_x、dirY_z、dirZ_xおよびdirZ_zの4値が算出される。例えば、コントローラ座標系のY軸上の点0,1,0およびZ軸上の点0,0,1がローカル座標系において移動した量を、ローカル座標系上のベクトル本実施形態では、x成分およびz成分のみで表し、これを姿勢変化量とすることが出来る。その後、処理はステップS502へ進む。なお、本実施形態では、姿勢変化量として、姿勢変化量dirY_x、dirY_z、dirZ_xおよびdirZ_zを算出して音量パラメータを取得するための情報としているが、他の実施形態では、角速度と音量パラメータとを関連付けておき、ジャイロセンサから取得される角速度自体に基づいて音量パラメータを取得する方法が採用されてもよい。なお、本実施形態では、姿勢変化量として、姿勢変化量dirY_x、dirY_z、dirZ_xおよびdirZ_zの4値を算出することとしているが、これは、バイオリンの演奏におけるストロークでは、ローカル座標系におけるx成分およびz成分に反映される動きコントローラ5のY軸およびZ軸の姿勢変化が主であり、ローカル座標系において主にy成分に反映される動きコントローラ5のX軸の姿勢変化は小さいためである但し、移弦の動きは除く。このため、姿勢変化量として算出されるローカル座標の成分およびコントローラ5の軸の組み合わせは、本実施形態に示された4値に限定されない。姿勢変化量は、シミュレーションの対象に応じて適宜採用されることが好ましく、また、ローカル座標系のxyz成分の全てと、コントローラ5のXYZ軸の全てとの組み合わせ即ち、9値について算出されてもよい。ステップS502では、音量パラメータの取得に用いる姿勢変化量として最大姿勢変化量2値の平均姿勢変化量MM_AVE16が算出される。CPU10は、ステップS501において算出された姿勢変化量dirY_x、dirY_z、dirZ_xおよびdirZ_zのうち、値の大きい方から2値を積算することで、最大姿勢変化量2値を算出する。ボウイング中に、コントローラ5の動きが所定の条件を満たした場合例えば、コントローラ5の動きがある軸に対して平行に近い動きになった場合等、一部の姿勢変化量が飽和する姿勢変化量が得られないことがある。本実施形態によれば、異なる軸および成分に係る複数の姿勢変化量を合わせることによって、一部の姿勢変化量が飽和した場合にも、音量パラメータの取得のために適切な姿勢変化量を得ることが出来る。なお、ここで算出された最大姿勢変化量2値は、算出されたフレームを識別可能な情報に関連付けて、内部メインメモリ11eまたは外部メインメモリ12に、少なくとも16フレームの間保持される。そして、CPU10は、現在処理中のフレームを含む最近16フレームにおいて算出された最大姿勢変化量2値を平均することで、平均姿勢変化量MM_AVE16を算出する。なお、本実施形態では、ジャイロセンサ55、56から取得される測定値にばらつきが生じることを考慮して、姿勢変化量の平均値を算出し、これを参照することとしているが、音量パラメータの取得のために参照される姿勢変化量は、平均値に限定されない。また、本実施形態では、上位2値を合計することとしているが、ある特定の成分に係る姿勢変化量が飽和することを回避するためには、異なる成分に係る複数の姿勢変化量が合計されればよく、2値に限定されない。例えば、算出された全ての姿勢変化量を合計することとしてもよい。その後、処理はステップS503へ進む。ステップS503では、姿勢変化量に基づいて、ゲーム装置3から出力される音声信号の音量を決定するための音量パラメータが設定される。CPU10は、ステップS502において、音量パラメータの取得に用いる姿勢変化量として算出された平均姿勢変化量MM_AVE16に応じた音量パラメータを取得し、設定する。平均姿勢変化量MM_AVE16は、コントローラ5の姿勢変化量に基づく値であり、且つ、平均化されることによって、ユーザの意図しない動きの影響を低減させた値となっている。このため、本実施形態によれば、ユーザの意図に沿った、自然な音量パラメータを設定することが可能となる。その後、本フローチャートに示された処理は終了する。図16は、本実施形態において、姿勢変化量と音量パラメータとの関係を表したマップを示す図である。本実施形態において、平均姿勢変化量MM_AVE16に応じた音量パラメータは、図16に示したマップを参照することによって取得される。本実施形態において、音量パラメータは、音波形のデータを、音量を低減させることなく出力する場合の値最大音量、最大振幅値を1.0000とした、音量に対する割合を示すパラメータである。姿勢変化量平均姿勢変化量MM_AVE16と音量パラメータとの対応関係を定めたマップにおいて、姿勢変化量の変化に対する音量パラメータの変化の勾配の傾向は、姿勢変化量の範囲ごとに異なる。図16に示す例によれば、姿勢変化量が十分に小さい図16に示す例で0.5未満場合は、仮にストロークが検出されていたとしても音量パラメータは無音0.0000に設定され、姿勢変化量が十分に大きい図16に示す例で6.0以上場合には、音量パラメータは最大音量1.0000に設定される。また、姿勢変化量が比較的小さい図16に示す例で0.5以上2.0以下場合には、姿勢変化量の増加に伴って指数関数的に大きな音量パラメータが設定されるが、姿勢変化量がバイオリンの演奏における中程度の変化量である図16に示す例で2.0より大で且つ4.0未満場合には、姿勢変化量の増加に伴う音量パラメータの増加量は緩やかになる。そして、姿勢変化量が比較的大きい図16に示す例で4.0以上6.0未満場合には、姿勢変化量の増加に伴う音量パラメータの変化は、勾配が小さく且つリニアな変化となる。このため、本実施形態によれば、ボウイングの速度が比較的遅い段階では滑らかに音が立ち上がり、ボウイングの速度が十分に速くなると音量の上限が訪れる、自然な音量変化を提供できる。なお、本実施形態では、マップを参照して、平均姿勢変化量MM_AVE16に対応する音量パラメータを取得する方法について説明したが、このような方法に変えて、CPU10は、姿勢変化量と音量パラメータとの対応関係を定めた関係式を用いて、平均姿勢変化量MM_AVE16に応じた音量パラメータを算出することとしてもよい。この場合、姿勢変化量の範囲毎に、姿勢変化量の変化に対する音量パラメータの変化の勾配の傾向が異なる関係式を用いることで、自然な音量変化を提供することが出来る。[音声信号出力処理]図17は、本実施形態に係る音声信号出力処理の流れを示すフローチャートである。ステップS601では、Bボタン32iの状態が判定される。CPU10は、シミュレート処理のステップS004において更新された操作データを参照することで、Bボタン32iが押下されている状態であるか否かを判定する。Bボタン32iが押下されていると判定された場合、処理はステップS602へ進む。一方、Bボタン32iが押下されていないと判定された場合、処理はステップS607へ進む。ここで、Bボタン32iは、音声信号の出力を指示するためのボタンとして用いられる。Bボタン32iが押下されている間のみ音声信号を出力することで、ユーザが演奏をする意図無くコントローラ5を動かした場合に、音声信号が出力されてしまうことを防止することが出来る。また、本実施形態に係るゲーム装置3において、Bボタン32iは、ユーザが右手でコントローラ5を把持した場合に、右手の人差し指で押下される位置に設けられているため、バイオリンを演奏するときに近い姿勢をユーザにとらせることが出来る。ステップS602では、音量制御フラグの状態が判定される。CPU10は、音量制御フラグを参照することで、ボウイングにおける引き返し動作が行われているか否かを判定する。先述の通り、音量制御フラグは、引き返し動作の際に音量が小さくなる効果を出すためのフラグであり、音量制御フラグはボウイング更新処理のステップS421においてONに設定される。音量制御フラグがONである、即ち、ボウイングにおける引き返し動作が行われていると判定された場合、処理はステップS608へ進む。一方、音量制御フラグがOFFである、即ち、ボウイングにおける引き返し動作が行われていないと判定された場合、処理はステップS603へ進む。ステップS603からステップS606では、上述した音高更新処理、ボウイング更新処理、音量更新処理、および音声信号出力処理において設定された設定内容に従って、音声信号が出力される。CPU10は、サウンドラベルを、ストロークパワーに応じたサウンドラベルに更新するステップS603。即ち、後述するステップS606では、ステップS603において設定されたサウンドラベルに基づいて音声信号が生成および出力される。また、CPU10は、出力音量に、音量更新処理において設定された音量パラメータの値を設定しステップS604、出力音高に、音高更新処理において設定された音高パラメータの値を設定するステップS605。そして、ステップS603において設定されたサウンドラベル、ステップS604において設定された出力音量、ステップS605において設定された出力音高に基づいてDSP11cによって生成された音声信号が出力されステップS606、音声信号に従った音声が、スピーカ2aから出力される。その後、本フローチャートに示された処理は終了する。ステップS607では、音声信号の出力停止が行われる。CPU10は、ステップS601においてBボタン32iが押下されていないと判定されたことを受けて、ゲーム装置3からの音声信号の出力を停止する。なお、この出力停止は、6フレームかけてのフェードアウトを伴う。CPU10は、6フレームかけて徐々に音声信号の音量を下げ、ゲーム装置3からの音声信号の出力を停止する。その後、本フローチャートに示された処理は終了する。ステップS608では、ユーザの引き返し動作に伴う引き返し処理が実行される。CPU10は、ステップS602において音量制御フラグがONである、即ち、ボウイングにおける引き返し動作が行われていると判定されたことを受けて、ゲーム装置3からの音声信号の出力を停止する。このようにすることで、ユーザの引き返し動作に伴って音量に変化を持たせ、ユーザに対して実際にバイオリンを演奏しているような感覚を与えることが出来る。なお、この出力停止は、3フレームかけてのフェードアウトを伴う。CPU10は、3フレームかけて徐々に音声信号の音量を下げ、ゲーム装置3からの音声信号の出力を停止する。また、CPU10は、ユーザの引き返し動作に伴う引き返し処理が実行されたことを受けて、音量制御フラグをOFFに設定する。なお、本実施形態に係るシミュレーション処理において用いられる姿勢変化量の成分は、バイオリンをシミュレーション対象とする場合に好適なものであり、シミュレーション処理において用いられる姿勢変化量の成分は、本実施形態において示されたものに限定されない。シミュレーション処理において用いられる姿勢変化量の成分は、シミュレーション対象の発音装置において採用される発音体の配置や、発音体を擦る動きの方向等に応じて適宜決定されてよい。シミュレーションの対象となる発音装置は、その他の発音装置であってもよく、例えば、チェロ等のその他の擦弦楽器を、シミュレーションの対象とすることが出来る。また、本実施形態では、コントローラに内蔵されたジャイロセンサ等を用いて角速度等を測定し、コントローラの姿勢変化量を取得する実施の形態について説明したが、本発明の実施にあたり、所定の対象の動きを測定するための手段は、コントローラに設けられたセンサ類に限定されない。例えば、他の実施の形態として、カメラ等のセンサを用いてユーザの手の動きを測定し、測定結果からユーザの手の姿勢変化量を取得することとしてもよい。"