(57)【特許請求の範囲】
【請求項１】
自身の動きまたは姿勢を検出する動き・姿勢センサを備えた入力装置からの入力に基づいて音楽を演奏する音楽演奏装置のコンピュータによって実行される音楽演奏プログラムであって、
前記コンピュータを、
前記動き・姿勢センサで検出した入力装置の動きまたは姿勢の情報を取得する動き・姿勢情報取得手段と、
所定の基準姿勢と、前記動き・姿勢情報取得手段で取得した前記入力装置の姿勢との差分を算出する姿勢差分算出手段と、
前記姿勢差分算出手段で算出された姿勢の差分に応じた所定の音を鳴らすことで音楽の演奏を行う演奏手段として機能させ、
前記姿勢差分算出手段および演奏手段による処理は、前記入力装置に所定値以上の加速度が発生している間は連続的に実行される、音楽演奏プログラム。
【請求項２】
前記音楽演奏プログラムは、前記コンピュータを、所定のタイミングにおける前記入力装置の姿勢を前記基準姿勢として設定する基準姿勢設定手段として更に機能させ、
前記姿勢差分算出手段は、前記基準姿勢が設定された後に前記動き・姿勢情報取得手段で取得された前記入力装置の姿勢と当該基準姿勢との差分を算出する、請求項１に記載の音楽演奏プログラム。
【請求項３】
前記演奏手段は、前記姿勢差分算出手段で算出された姿勢の差分が当該差分に対して予め設定されている所定の閾値を超えた際に、当該所定の閾値に対応した音を鳴らす、請求項１または２に記載の音楽演奏プログラム。
【請求項４】
前記所定の閾値は複数設定される、請求項３に記載の音楽演奏プログラム。
【請求項５】
前記音楽演奏プログラムは、前記コンピュータを、
前記動き・姿勢情報取得手段で取得した前記入力装置の動きまたは姿勢の単位時間当たりの変化の大きさを検出する変化量検出手段としてさらに機能させ、
前記演奏手段は、前記動きまたは姿勢の変化の大きさに応じて前記所定の閾値を変化させる、請求項３に記載の音楽演奏プログラム。
【請求項６】
前記演奏手段は、前記動きまたは姿勢の変化の大きさが大きくなるほど前記所定の閾値が小さい値となるように変化させる、請求項５に記載の音楽演奏プログラム。
【請求項７】
前記音楽演奏プログラムは、前記コンピュータを、前記動き・姿勢情報取得手段で取得した前記入力装置の動きまたは姿勢の単位時間あたりの変化量を算出する変化量算出手段として更に機能させ、
前記演奏手段は、前記算出された動き又は姿勢の変化量によって、前記姿勢差分算出手段で算出された差分と当該差分に応じて鳴らす音との対応関係を変化させる、請求項１または２に記載の音楽演奏プログラム。
【請求項８】
前記音楽演奏プログラムは、前記コンピュータを、    前記基準姿勢設定手段により基準姿勢が設定された後、前記動き・姿勢情報取得手段で取得した前記入力装置の動きまたは姿勢の単位時間当たりの変化量が所定量以上であるか否かを判定する変化量判定手段としてさらに機能させ、  前記演奏手段は、前記変化量判定手段で前記入力装置の動きまたは姿勢の変化量が所定量以上と判定された時点から演奏を行う、請求項２に記載の音楽演奏プログラム。
【請求項９】
前記入力装置はさらに所定の入力部を備え、  前記音楽演奏プログラムは、前記コンピュータを、前記入力部に対して入力があったか否かを判定する入力判定手段をしてさらに機能させ、  前記基準姿勢設定手段は、前記入力判定手段で前記入力部に対して入力があったと判定されたときの姿勢を前記所定の基準姿勢として設定する、請求項２に記載の音楽演奏プログラム。
【請求項１０】
前記入力装置はさらに所定の入力部を備え、
前記音楽演奏プログラムは、前記コンピュータを、前記入力部に対して入力があったか否かを判定する入力判定手段としてさらに機能させ、
前記演奏手段は、前記入力判定手段で前記入力部に対して入力がある間だけ演奏を行う、請求項１ないし８のいずれかに記載の音楽演奏プログラム。
【請求項１１】
前記姿勢差分算出手段は、前記動き・姿勢情報取得手段で取得した前記入力装置の姿勢と前記所定の基準姿勢との差分として、前記入力装置の所定軸を中心とした回転方向に対する差分を算出する、請求項１ないし１０のいずれかに記載の音楽演奏プログラム。
【請求項１２】
前記姿勢差分算出手段は、前記入力装置の所定軸を中心とする回転方向にかかる回転量、および、当該所定軸に直行する軸を中心とする回転方向に係る回転量に基づいて、前記所定の基準姿勢との差分を算出する、請求項１１に記載の音楽演奏プログラム。
【請求項１３】
前記所定軸は、前記入力装置が振られた方向を判定するための軸である、請求項１１に記載の音楽演奏プログラム。
【請求項１４】
前記姿勢差分算出手段は、前記所定軸とは異なる軸を中心とする回転方向にかかる回転量を前記所定軸を中心とした回転方向にかかる回転量として変換し、当該所定軸に係る回転量と当該変換した回転量とに基づいて前記差分を算出する、請求項１３に記載の音楽演奏プログラム。
【請求項１５】
前記動き・姿勢情報取得手段、姿勢差分算出手段、演奏手段は繰り返し行われ、
前記所定の基準姿勢は、前記動き・姿勢情報取得手段で前回に取得した前記入力装置の動きまたは姿勢の情報に基づく姿勢である、請求項１に記載の音楽演奏プログラム。
【請求項１６】
前記演奏手段は、
前記姿勢差分算出手段で算出された姿勢の差分の累積を算出する差分累積手段を含み、
前記差分累積手段で算出された前記姿勢の差分の累積に基づき音楽の演奏を行う、請求項１５に記載の音楽演奏プログラム。
【請求項１７】
前記動き・姿勢センサは、加速度センサまたは／および角速度センサである、請求項１ないし１６のいずれかに記載の音楽演奏プログラム。
【請求項１８】
自身の動きまたは姿勢を検出する動き・姿勢センサを備えた入力装置からの入力に基づいて音楽を演奏する音楽演奏装置であって、
前記動き・姿勢センサで検出した入力装置の動きまたは姿勢の情報を取得する動き・姿勢情報取得手段と、
所定の基準姿勢と、前記動き・姿勢情報取得手段で取得した前記入力装置の姿勢との差分を算出する姿勢差分算出手段と、
前記姿勢差分算出手段で算出された姿勢の差分に応じた所定の音を鳴らすことで音楽の演奏を行う演奏手段とを備え、
前記姿勢差分算出手段および演奏手段による処理は、前記入力装置に所定値以上の加速度が発生している間は連続的に実行される、音楽演奏装置。
【請求項１９】
自身の動きまたは姿勢を検出する動き・姿勢センサを備えた入力装置からの入力に基づいて音楽を演奏する音楽演奏システムであって、
前記動き・姿勢センサで検出した入力装置の動きまたは姿勢の情報を取得する動き・姿勢情報取得手段と、
所定の基準姿勢と、前記動き・姿勢情報取得手段で取得した前記入力装置の姿勢との差分を算出する姿勢差分算出手段と、
前記姿勢差分算出手段で算出された姿勢の差分に応じた所定の音を鳴らすことで音楽の演奏を行う演奏手段とを備え、
前記姿勢差分算出手段および演奏手段による処理は、前記入力装置に所定値以上の加速度が発生している間は連続的に実行される、音楽演奏システム。
【請求項２０】
自身の動きまたは姿勢を検出する動き・姿勢センサを備えた入力装置からの入力に基づいて音楽を演奏する音楽演奏装置で用いられる音楽演奏方法であって、
前記動き・姿勢センサで検出した入力装置の動きまたは姿勢の情報を取得する動き・姿勢情報取得ステップと、
所定の基準姿勢と、前記動き・姿勢情報取得ステップで取得した前記入力装置の姿勢との差分を算出する姿勢差分算出ステップと、
前記姿勢差分算出ステップで算出された姿勢の差分に応じた所定の音を鳴らすことで音楽の演奏を行う演奏ステップとを備え、
前記姿勢差分算出ステップおよび演奏ステップの処理は、前記入力装置に所定値以上の加速度が発生している間は連続的に実行される、音楽演奏方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音楽演奏プログラム、音楽演奏装置、音楽演奏システム、および音楽演奏方法に関し、より特定的には、入力装置の動きに基づいた音楽演奏を行う、音楽演奏プログラム、音楽演奏装置、音楽演奏システム、および音楽演奏方法に関する。
【背景技術】
【０００２】
従来、入力装置の動きに基づいて仮想的に音楽を演奏する技術が知られている（例えば、非特許文献１）。この技術では、入力装置を所定の方向へ１回動かす（振る）ことにより、ギターであれば１ストローク分の動作、打楽器であれば１回分の叩き操作（１打分の操作）として扱われて、仮想的な楽器の演奏が行われていた。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Ｗｉｉ用ソフト「Wii Music」取扱説明書、任天堂株式会社、2008年10月16日発売、第１０頁から第１１頁
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記の技術においては、入力装置の所定の方向への動きがあった際に、ギターであれば１ストローク分、打楽器であれば１打分の演奏を行っている。すなわち、入力装置の所定方向への動きの検知を、ギターを１ストローク分の演奏（操作）や、打楽器を１打分の演奏（操作）を開始するタイミングを計るために使われていた。これは、ボタンによる入力を検知することで、上記のような操作の開始タイミングを計ることと大差はなく、変化のある動きに基づいた、きめ細かい演奏操作を行うことができなかった。
【０００５】
それ故に、本発明の目的は、入力装置自体を動かす操作によって、より細やかな演奏操作が可能な音楽演奏プログラム等を提供することである。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明は以下のような構成を採用した。
【０００７】
本発明にかかる音楽演奏プログラムは、自身の動きまたは姿勢を検出する動き・姿勢センサを備えた入力装置からの入力に基づいて音楽を演奏する音楽演奏装置のコンピュータによって実行される音楽演奏プログラムであって、コンピュータを、動き・姿勢情報取得手段と、姿勢差分算出手段と、演奏手段として機能させる。動き・姿勢情報取得手段は、動き・姿勢センサで検出した入力装置の動きまたは姿勢の情報を取得する。姿勢差分算出手段は、所定の基準姿勢と、動き・姿勢情報取得手段で取得した入力装置の姿勢との差分を算出する。演奏手段は、姿勢差分算出手段で算出された姿勢の差分に応じた所定の音を鳴らすことで音楽の演奏を行う。
【０００８】
上記構成により、より細やかで多彩な演奏操作が可能となる。
【０００９】
他の構成例として、音楽演奏プログラムは、コンピュータを、所定のタイミングにおける入力装置の姿勢を基準姿勢として設定する基準姿勢設定手段として更に機能させ、姿勢差分算出手段は、基準姿勢が設定された後に動き・姿勢情報取得手段で取得された入力装置の姿勢と当該基準姿勢との差分を算出してもよい。
【００１０】
上記構成例によれば、例えばあるボタンを押したタイミングでの入力装置の姿勢を基準姿勢として演奏操作を行うことができ、演奏操作にかかる操作性を高めることができる。
【００１１】
更に他の構成例として、演奏手段は、姿勢差分算出手段で算出された姿勢の差分が当該差分に対して予め設定されている所定の閾値を超えた際に、当該所定の閾値に対応した音を鳴らすようにしてもよい。
【００１２】
更に他の構成例として、所定の閾値は複数設定されていてもよい。
【００１３】
上記構成例によれば、より細やかな演奏操作が可能となる。
【００１４】
更に他の構成例として、音楽演奏プログラムは、コンピュータを、動き・姿勢情報取得手段で取得した入力装置の動きまたは姿勢の単位時間当たりの変化の大きさを検出する変化量検出手段としてさらに機能させ、演奏手段は、動きまたは姿勢の変化の大きさに応じて所定の閾値を変化させてもよい。
【００１５】
上記構成例によれば、入力装置の動きの変化量の大きさ、例えば、入力装置を振る速度等によって、入力装置がある姿勢のときになる音を変えることが可能となる。これにより、例えば、仮想的な弦楽器を演奏する場合に、当該弦楽器の弦の間隔を入力装置の動きの変化量の大きさ応じて変化させるような処理が可能となる。その結果、入力装置を速く振った場合でもゆっくり振った場合でも、同じ数の弦の音を鳴らすような操作が可能となる（例えば、１２本の弦を鳴らすような場合、入力装置をゆっくり振りながら、入力装置自体の移動距離もある程度大きい場合と、入力装置を速く振って、その移動距離は小さいような場合の双方とも、１２本全ての弦の音を鳴らすことが可能となる）
【００１６】
更に他の構成例として、演奏手段は、動きまたは姿勢の変化の大きさが大きくなるほど所定の閾値が小さい値となるように変化させるようにしてもよい。
【００１７】
上記構成例によれば、例えば仮想的な弦楽器を演奏するような場合に、入力装置を速く振った場合でも、入力装置をゆっくり振った場合と同じ数の弦の音を鳴らすことが可能となる。
【００１８】
更に他の構成例として、音楽演奏プログラムは、コンピュータを、動き・姿勢情報取得手段で取得した入力装置の動きまたは姿勢の単位時間あたりの変化量を算出する変化量算出手段として更に機能させ、演奏手段は、算出された動き又は姿勢の変化量によって、姿勢差分算出手段で算出された差分と当該差分に応じて鳴らす音との対応関係を変化させてもよい。
【００１９】
上記構成例によれば、入力装置がある位置（姿勢）のときに鳴る音を、当該入力装置の動きの大きさ（例えば、振る速さ）によって変化させることができる。これにより、例えば、入力装置を速く振ったときとゆっくり振ったときとで、鳴る音の内容を変えることができ、演奏操作に幅を持たせ、より多彩な演奏操作が可能となる。
【００２０】
更に他の構成例として、音楽演奏プログラムは、コンピュータを、基準姿勢が設定された後、動き・姿勢情報取得手段で取得した入力装置の動きまたは姿勢の単位時間当たりの変化量が所定量以上であるか否かを判定する変化量判定手段としてさらに機能させ、演奏手段は、変化量判定手段で入力装置の動きまたは姿勢の変化量が所定量以上と判定された時点から演奏を行うようにしてもよい。
【００２１】
上記構成例によれば、例えば手ぶれのような微細な手の動きに反応して音が鳴ることを防ぐことができ、演奏操作にかかる操作性を高めることが可能となる。
【００２２】
更に他の構成例として、入力装置はさらに所定の入力部を備え、音楽演奏プログラムは、コンピュータを、入力部に対して入力があったか否かを判定する入力判定手段をしてさらに機能させ、基準姿勢設定手段は、入力判定手段で入力部に対して入力があったと判定されたときの姿勢を所定の基準姿勢として設定するようにしてもよい。
【００２３】
上記構成例によれば、任意のタイミングにおける入力装置の姿勢を基準として演奏操作ができ、操作性を高めることができる。
【００２４】
更に他の構成例として、入力装置はさらに所定の入力部を備え、音楽演奏プログラムは、コンピュータを、入力部に対して入力があったか否かを判定する入力判定手段としてさらに機能させ、演奏手段は、入力判定手段で入力部に対して入力がある間だけ演奏を行うようにしてもよい。
【００２５】
上記構成例によれば、例えば、プレイヤが入力装置に設けられている所定のボタンを押下している間だけ音が出力されるようにすることができ、演奏操作にかかる操作性を高めることができる。
【００２６】
更に他の構成例として、姿勢差分算出手段は、動き・姿勢情報取得手段で取得した入力装置の姿勢と所定の基準姿勢との差分として、入力装置の所定軸を中心とした回転方向に対する差分を算出するようにしてもよい。
【００２７】
上記構成例によれば、例えば角速度データを利用することで、入力装置の姿勢の変化をより正確に検出することができ、きめ細かい演奏を行うことが可能となる。
【００２８】
更に他の構成例として、姿勢差分算出手段は、入力装置の所定軸を中心とする回転方向にかかる回転量、および、当該所定軸に直行する軸を中心とする回転方向に係る回転量に基づいて、所定の基準姿勢との差分を算出するようにしてもよい。
【００２９】
上記構成例によれば、例えば、入力装置を振る操作を行った際の手首のねじれによる入力装置の姿勢変化を反映して、基準姿勢との姿勢の差分を算出することが可能となる。
【００３０】
更に他の構成例として、所定軸は、入力装置が振られた方向を判定するための軸であってもよい。
【００３１】
上記構成例によれば、入力装置が振られた方向に応じて音を鳴らすことが可能となる。
【００３２】
更に他の構成例として、姿勢差分算出手段は、所定軸とは異なる軸を中心とする回転方向にかかる回転量を所定軸を中心とした回転方向にかかる回転量として変換し、所定軸にかかる回転量と当該変換した回転量とに基づいて差分を算出してもよい。
【００３３】
上記構成例によれば、例えば、入力装置を振る操作を行った際の手首のねじれによる入力装置の姿勢変化を反映して、基準姿勢との姿勢の差分を算出することが可能となる。
【００３４】
更に他の構成例として、動き・姿勢情報取得手段、姿勢差分算出手段、演奏手段は繰り返し行われ、所定の基準姿勢は、動き・姿勢情報取得手段で前回に取得した入力装置の動きまたは姿勢の情報に基づく姿勢であってもよい
【００３５】
更に他の構成例として、演奏手段は、姿勢差分算出手段で算出された姿勢の差分の累積を算出する差分累積手段を含み、差分累積手段で算出された姿勢の差分の累積に基づき音楽の演奏を行うようにしてもよい。
【００３６】
上記構成例によれば、入力装置の姿勢に応じて音を鳴らすことができ、きめ細やかな演奏操作が可能となる。
【００３７】
更に他の構成例として、動き・姿勢センサは、加速度センサまたは／および角速度センサであってもよい。
【００３８】
上記構成例によれば、入力装置の動きや姿勢をより簡便に、かつ、的確に検出することができる。
【００３９】
本発明にかかる音楽演奏装置は、自身の動きまたは姿勢を検出する動き・姿勢センサを備えた入力装置からの入力に基づいて音楽を演奏する音楽演奏装置であって、動き・姿勢情報取得手段と、姿勢差分算出手段と、演奏手段とを備える。動き・姿勢情報取得手段は、動き・姿勢センサで検出した入力装置の動きまたは姿勢の情報を取得する。姿勢差分算出手段は、所定の基準姿勢と、動き・姿勢情報取得手段で取得した入力装置の姿勢との差分を算出する。演奏手段は、姿勢差分算出手段で算出された姿勢の差分に応じた所定の音を鳴らすことで音楽の演奏を行う。
【００４０】
本発明にかかる音楽演奏システムは、自身の動きまたは姿勢を検出する動き・姿勢センサを備えた入力装置からの入力に基づいて音楽を演奏する音楽演奏システムであって、動き・姿勢情報取得手段と、姿勢差分算出手段と、演奏手段とを備える。動き・姿勢情報取得手段は、動き・姿勢センサで検出した入力装置の動きまたは姿勢の情報を取得する。姿勢差分算出手段は、所定の基準姿勢と、動き・姿勢情報取得手段で取得した入力装置の姿勢との差分を算出する。演奏手段は、姿勢差分算出手段で算出された姿勢の差分に応じた所定の音を鳴らすことで音楽の演奏を行う。
【００４１】
本発明にかかる音楽演奏方法は、自身の動きまたは姿勢を検出する動き・姿勢センサを備えた入力装置からの入力に基づいて音楽を演奏する音楽演奏装置で用いられる音楽演奏方法であって、動き・姿勢情報取得ステップと、姿勢差分算出ステップと、演奏ステップとを備える。動き・姿勢情報取得ステップは、動き・姿勢センサで検出した入力装置の動きまたは姿勢の情報を取得する。姿勢差分算出ステップは、所定の基準姿勢と、動き・姿勢情報取得ステップで取得した入力装置の姿勢との差分を算出する。演奏ステップは、姿勢差分算出ステップで算出された姿勢の差分に応じた所定の音を鳴らすことで音楽の演奏を行う。
【発明の効果】
【００４２】
本発明によれば、入力装置自体の動きや姿勢に応じて多彩な音を鳴らすことができ、きめ細やかな演奏操作が可能となる。
【図面の簡単な説明】
【００４３】
【図１】ゲームシステム１の外観図
【図２】ゲーム装置３の構成を示すブロック図
【図３】入力装置８の外観構成を示す斜視図
【図４】コントローラ５の外観構成を示す斜視図
【図５】コントローラ５の内部構造を示す図
【図６】コントローラ５の内部構造を示す図
【図７】入力装置８の構成を示すブロック図
【図８】ゲーム画像の一例
【図９】入力装置８の姿勢とハープ１０２の各弦との対応関係を説明するための図
【図１０】入力装置の動かし方の一例
【図１１】入力装置の動かし方の一例
【図１２】ゲーム装置３のメインメモリに記憶される主なデータを示す図
【図１３】ゲーム処理の全体処理の詳細を示すフローチャート
【図１４】ステップＳ４で示したハープモード処理の詳細を示すフローチャート
【図１５】ステップＳ１５で示した角速度算出処理の詳細を示すフローチャート
【図１６】ステップＳ１８で示した音声出力処理の詳細を示すフローチャート
【図１７】次の弦の音を鳴らすための閾値について説明するための図
【図１８】他の実施形態での角速度算出処理を示すフローチャート
【図１９】次の弦の音を鳴らすための閾値の変化について説明するための図
【図２０】入力装置の動きの大きさと閾値の変化の関係を示す図
【図２１】入力装置の動きの大きさと閾値の変化の関係を示す図
【図２２】初期位置の別の例を示す図
【発明を実施するための形態】
【００４４】
以下、本発明の実施の形態について、図面を参照して説明する。尚、この実施例により本発明が限定されるものではない。
【００４５】
本発明は、入力装置自体を動かすことで所定の音を出力させる技術である。詳細は後述するが、所定の時点における入力装置の姿勢を基準姿勢として定義し、それ以降の入力装置の姿勢と、当該基準姿勢との差分に応じて、複数の音列を使い分けて出力する、つまり、差分に応じた音を出力するという技術である。
【００４６】
［ゲームシステムの全体構成］
図１を参照して、本発明の一実施形態に係る情報処理装置に一例であるゲーム装置を含むゲームシステム１について説明する。図１は、ゲームシステム１の外観図である。以下、据置型のゲーム装置を一例にして、本実施形態のゲーム装置およびゲームプログラムについて説明する。図１において、ゲームシステム１は、テレビジョン受像器（以下、単に「テレビ」と記載する）２、ゲーム装置３、光ディスク４、入力装置８、およびマーカ部６を含む。本システムは、入力装置８を用いたゲーム操作に基づいてゲーム装置３でゲーム処理を実行するものである。
【００４７】
ゲーム装置３には、当該ゲーム装置３に対して交換可能に用いられる情報記憶媒体の一例である光ディスク４が脱着可能に挿入される。光ディスク４には、ゲーム装置３において実行されるためのゲームプログラムが記憶されている。ゲーム装置３の前面には光ディスク４の挿入口が設けられている。ゲーム装置３は、挿入口に挿入された光ディスク４に記憶されているゲームプログラムを読み出して実行することによってゲーム処理を実行する。
【００４８】
ゲーム装置３には、表示装置の一例であるテレビ２が接続コードを介して接続される。テレビ２は、ゲーム装置３において実行されるゲーム処理の結果得られるゲーム画像を表示する。また、テレビ２の画面の周辺（図１では画面の上側）には、マーカ部６が設置される。マーカ部６は、その両端に２つのマーカ６Ｒおよび６Ｌを備えている。マーカ６Ｒ（マーカ６Ｌも同様）は、具体的には１以上の赤外ＬＥＤであり、テレビ２の前方に向かって赤外光を出力する。マーカ部６はゲーム装置３に接続されており、ゲーム装置３はマーカ部６が備える各赤外ＬＥＤの点灯を制御することが可能である。
【００４９】
入力装置８は、自機に対して行われた操作の内容を示す操作データをゲーム装置３に与えるものである。本実施形態では、入力装置８はコントローラ５とジャイロセンサユニット７とを含む。詳細は後述するが、入力装置８は、コントローラ５に対してジャイロセンサユニット７が着脱可能に接続されている構成である。コントローラ５とゲーム装置３とは無線通信によって接続される。本実施形態では、コントローラ５とゲーム装置３との間の無線通信には例えばＢｌｕｅｔｏｏｔｈ（ブルートゥース）（登録商標）の技術が用いられる。なお、他の実施形態においてはコントローラ５とゲーム装置３とは有線で接続されてもよい。
【００５０】
［ゲーム装置３の内部構成］
次に、図２を参照して、ゲーム装置３の内部構成について説明する。図２は、ゲーム装置３の構成を示すブロック図である。ゲーム装置３は、ＣＰＵ１０、システムＬＳＩ１１、外部メインメモリ１２、ＲＯＭ／ＲＴＣ１３、ディスクドライブ１４、およびＡＶ−ＩＣ１５等を有する。
【００５１】
ＣＰＵ１０は、光ディスク４に記憶されたゲームプログラムを実行することによってゲーム処理を実行するものであり、ゲームプロセッサとして機能する。ＣＰＵ１０は、システムＬＳＩ１１に接続される。システムＬＳＩ１１には、ＣＰＵ１０の他、外部メインメモリ１２、ＲＯＭ／ＲＴＣ１３、ディスクドライブ１４およびＡＶ−ＩＣ１５が接続される。システムＬＳＩ１１は、それに接続される各構成要素間のデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。システムＬＳＩ１１の内部構成については後述する。揮発性の外部メインメモリ１２は、光ディスク４から読み出されたゲームプログラムや、フラッシュメモリ１７から読み出されたゲームプログラム等のプログラムを記憶したり、各種データを記憶したりするものであり、ＣＰＵ１０のワーク領域やバッファ領域として用いられる。ＲＯＭ／ＲＴＣ１３は、ゲーム装置３の起動用のプログラムが組み込まれるＲＯＭ（いわゆるブートＲＯＭ）と、時間をカウントするクロック回路（ＲＴＣ：Ｒｅａｌ  Ｔｉｍｅ  Ｃｌｏｃｋ）とを有する。ディスクドライブ１４は、光ディスク４からプログラムデータやテクスチャデータ等を読み出し、後述する内部メインメモリ１１ｅまたは外部メインメモリ１２に読み出したデータを書き込む。
【００５２】
また、システムＬＳＩ１１には、入出力プロセッサ（Ｉ／Ｏプロセッサ）１１ａ、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）１１ｂ、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）１１ｃ、ＶＲＡＭ１１ｄ、および内部メインメモリ１１ｅが設けられる。図示は省略するが、これらの構成要素１１ａ〜１１ｅは内部バスによって互いに接続される。
【００５３】
ＧＰＵ１１ｂは、描画手段の一部を形成し、ＣＰＵ１０からのグラフィクスコマンド（作画命令）に従って画像を生成する。ＶＲＡＭ１１ｄは、ＧＰＵ１１ｂがグラフィクスコマンドを実行するために必要なデータ（ポリゴンデータやテクスチャデータ等のデータ）を記憶する。画像が生成される際には、ＧＰＵ１１ｂは、ＶＲＡＭ１１ｄに記憶されたデータを用いて画像データを作成する。
【００５４】
ＤＳＰ１１ｃは、オーディオプロセッサとして機能し、内部メインメモリ１１ｅや外部メインメモリ１２に記憶されるサウンドデータや音波形（音色）データを用いて、音声データを生成する。
【００５５】
上述のように生成された画像データおよび音声データは、ＡＶ−ＩＣ１５によって読み出される。ＡＶ−ＩＣ１５は、読み出した画像データをＡＶコネクタ１６を介してテレビ２に出力するとともに、読み出した音声データを、テレビ２に内蔵されるスピーカ２ａに出力する。これによって、画像がテレビ２に表示されるとともに音がスピーカ２ａから出力される。
【００５６】
入出力プロセッサ１１ａは、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ１１ａは、フラッシュメモリ１７、無線通信モジュール１８、無線コントローラモジュール１９、拡張コネクタ２０、およびメモリカード用コネクタ２１に接続される。無線通信モジュール１８にはアンテナ２２が接続され、無線コントローラモジュール１９にはアンテナ２３が接続される。
【００５７】
入出力プロセッサ１１ａは、無線通信モジュール１８およびアンテナ２２を介してネットワークに接続し、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。入出力プロセッサ１１ａは、定期的にフラッシュメモリ１７にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データが有る場合には、無線通信モジュール１８およびアンテナ２２を介してネットワークに送信する。また、入出力プロセッサ１１ａは、他のゲーム装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ２２および無線通信モジュール１８を介して受信し、受信したデータをフラッシュメモリ１７に記憶する。ＣＰＵ１０はゲームプログラムを実行することにより、フラッシュメモリ１７に記憶されたデータを読み出してゲームプログラムで利用する。フラッシュメモリ１７には、ゲーム装置３と他のゲーム装置や各種サーバとの間で送受信されるデータの他、ゲーム装置３を利用してプレイしたゲームのセーブデータ（ゲームの結果データまたは途中データ）が記憶されてもよい。
【００５８】
また、入出力プロセッサ１１ａは、コントローラ５から送信される操作データをアンテナ２３および無線コントローラモジュール１９を介して受信し、内部メインメモリ１１ｅまたは外部メインメモリ１２のバッファ領域に記憶（一時記憶）する。
【００５９】
さらに、入出力プロセッサ１１ａには、拡張コネクタ２０およびメモリカード用コネクタ２１が接続される。拡張コネクタ２０は、ＵＳＢやＳＣＳＩのようなインターフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したり、有線の通信用コネクタを接続することによって無線通信モジュール１８に替えてネットワークとの通信を行ったりすることができる。メモリカード用コネクタ２１は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ１１ａは、拡張コネクタ２０やメモリカード用コネクタ２１を介して外部記憶媒体にアクセスし、外部記憶媒体にデータを保存したり、外部記憶媒体からデータを読み出したりすることができる。
【００６０】
ゲーム装置３には、電源ボタン２４、リセットボタン２５、およびイジェクトボタン２６が設けられる。電源ボタン２４およびリセットボタン２５は、システムＬＳＩ１１に接続される。電源ボタン２４がオンされると、ゲーム装置３の各構成要素に対して、図示しないＡＣアダプタを経て電源が供給される。リセットボタン２５が押されると、システムＬＳＩ１１は、ゲーム装置３の起動プログラムを再起動する。イジェクトボタン２６は、ディスクドライブ１４に接続される。イジェクトボタン２６が押されると、ディスクドライブ１４から光ディスク４が排出される。
【００６１】
［入力装置８の構成］
次に、図３〜図６を参照して、入力装置８について説明する。図３は、入力装置８の外観構成を示す斜視図である。図４は、コントローラ５の外観構成を示す斜視図である。図３は、コントローラ５の上側後方から見た斜視図であり、図４は、コントローラ５を下側前方から見た斜視図である。
【００６２】
図３および図４において、コントローラ５は、例えばプラスチック成型によって形成されたハウジング３１を有している。ハウジング３１は、その前後方向（図３に示すＺ軸方向）を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。プレイヤは、コントローラ５に設けられたボタンを押下すること、および、コントローラ５自体を動かしてその位置や姿勢を変えることによってゲーム操作を行うことができる。
【００６３】
ハウジング３１には、複数の操作ボタンが設けられる。図３に示すように、ハウジング３１の上面には、十字ボタン３２ａ、１番ボタン３２ｂ、２番ボタン３２ｃ、Ａボタン３２ｄ、マイナスボタン３２ｅ、ホームボタン３２ｆ、プラスボタン３２ｇ、および電源ボタン３２ｈが設けられる。本明細書では、これらのボタン３２ａ〜３２ｈが設けられるハウジング３１の上面を「ボタン面」と呼ぶことがある。一方、図４に示すように、ハウジング３１の下面には凹部が形成されており、当該凹部の後面側傾斜面にはＢボタン３２ｉが設けられる。これらの各操作ボタン３２ａ〜３２ｉには、ゲーム装置３が実行するゲームプログラムに応じた機能が適宜割り当てられる。また、電源ボタン３２ｈは遠隔からゲーム装置３本体の電源をオン／オフするためのものである。ホームボタン３２ｆおよび電源ボタン３２ｈは、その上面がハウジング３１の上面に埋没している。これによって、プレイヤがホームボタン３２ｆまたは電源ボタン３２ｈを誤って押下することを防止することができる。
【００６４】
ハウジング３１の後面にはコネクタ３３が設けられている。コネクタ３３は、コントローラ５に他の機器（例えば、ジャイロセンサユニット７や他のコントローラ）を接続するために利用される。また、ハウジング３１の後面におけるコネクタ３３の両側には、上記他の機器が容易に離脱することを防止するために係止穴３３ａが設けられている。
【００６５】
ハウジング３１上面の後方には複数（図３では４つ）のＬＥＤ３４ａ〜３４ｄが設けられる。ここで、コントローラ５には、他のメインコントローラと区別するためにコントローラ種別（番号）が付与される。各ＬＥＤ３４ａ〜３４ｄは、コントローラ５に現在設定されている上記コントローラ種別をプレイヤに通知したり、コントローラ５の電池残量をプレイヤに通知したりする等の目的で用いられる。具体的には、コントローラ５を用いてゲーム操作が行われる際、上記コントローラ種別に応じて複数のＬＥＤ３４ａ〜３４ｄのいずれか１つが点灯する。
【００６６】
また、コントローラ５は撮像情報演算部３５（図６）を有しており、図４に示すように、ハウジング３１前面には撮像情報演算部３５の光入射面３５ａが設けられる。光入射面３５ａは、マーカ６Ｒおよび６Ｌからの赤外光を少なくとも透過する材質で構成される。
【００６７】
ハウジング３１上面における１番ボタン３２ｂとホームボタン３２ｆとの間には、コントローラ５に内蔵されるスピーカ４９（図５）からの音を外部に放出するための音抜き孔３１ａが形成されている。
【００６８】
次に、図５および図６を参照して、コントローラ５の内部構造について説明する。図５および図６は、コントローラ５の内部構造を示す図である。なお、図５は、コントローラ５の上筐体（ハウジング３１の一部）を外した状態を示す斜視図である。図６は、コントローラ５の下筐体（ハウジング３１の一部）を外した状態を示す斜視図である。図６に示す斜視図は、図５に示す基板３０を裏面から見た斜視図となっている。
【００６９】
図５において、ハウジング３１の内部には基板３０が固設されており、当該基板３０の上主面上に各操作ボタン３２ａ〜３２ｈ、各ＬＥＤ３４ａ〜３４ｄ、加速度センサ３７、アンテナ４５、およびスピーカ４９等が設けられる。これらは、基板３０等に形成された配線（図示せず）によってマイクロコンピュータ（Ｍｉｃｒｏ  Ｃｏｍｐｕｔｅｒ：マイコン）４２（図６参照）に接続される。本実施形態では、加速度センサ３７は、Ｘ軸方向に関してコントローラ５の中心からずれた位置に配置されている。これによって、コントローラ５をＺ軸回りに回転させたときのコントローラ５の動きが算出しやすくなる。また、加速度センサ３７は、長手方向（Ｚ軸方向）に関してコントローラ５の中心よりも前方に配置されている。また、無線モジュール４４（図６）およびアンテナ４５によって、コントローラ５がワイヤレスコントローラとして機能する。
【００７０】
一方、図６において、基板３０の下主面上の前端縁に撮像情報演算部３５が設けられる。撮像情報演算部３５は、コントローラ５の前方から順に赤外線フィルタ３８、レンズ３９、撮像素子４０、および画像処理回路４１を備えている。これらの部材３８〜４１はそれぞれ基板３０の下主面に取り付けられる。
【００７１】
さらに、基板３０の下主面上には、上記マイコン４２およびバイブレータ４８が設けられている。バイブレータ４８は、例えば振動モータやソレノイドであり、基板３０等に形成された配線によってマイコン４２と接続される。マイコン４２の指示によりバイブレータ４８が作動することによってコントローラ５に振動が発生する。これによって、コントローラ５を把持しているプレイヤの手にその振動が伝達される、いわゆる振動対応ゲームを実現することができる。本実施形態では、バイブレータ４８は、ハウジング３１のやや前方寄りに配置される。つまり、バイブレータ４８がコントローラ５の中心よりも端側に配置することによって、バイブレータ４８の振動によりコントローラ５全体を大きく振動させることができる。また、コネクタ３３は、基板３０の下主面上の後端縁に取り付けられる。なお、図５および図６に示す他、コントローラ５は、マイコン４２の基本クロックを生成する水晶振動子、スピーカ４９に音声信号を出力するアンプ等を備えている。
【００７２】
図７は、入力装置８（コントローラ５およびジャイロセンサユニット７）の構成を示すブロック図である。コントローラ５は、操作部３２（各操作ボタン３２ａ〜３２ｉ）、コネクタ３３、撮像情報演算部３５、通信部３６、および加速度センサ３７を備えている。コントローラ５は、自機に対して行われた操作内容を示すデータを操作データとしてゲーム装置３へ送信するものである。
【００７３】
操作部３２は、上述した各操作ボタン３２ａ〜３２ｉを含み、各操作ボタン３２ａ〜３２ｉに対する入力状態（各操作ボタン３２ａ〜３２ｉが押下されたか否か）を示す操作ボタンデータを通信部３６のマイコン４２へ出力する。
【００７４】
撮像情報演算部３５は、撮像手段が撮像した画像データを解析してその中で輝度が高い領域を判別してその領域の重心位置やサイズなどを算出するためのシステムである。撮像情報演算部３５は、例えば最大２００フレーム／秒程度のサンプリング周期を有するので、比較的高速なコントローラ５の動きでも追跡して解析することができる。
【００７５】
撮像情報演算部３５は、赤外線フィルタ３８、レンズ３９、撮像素子４０、および画像処理回路４１を含んでいる。赤外線フィルタ３８は、コントローラ５の前方から入射する光から赤外線のみを通過させる。レンズ３９は、赤外線フィルタ３８を透過した赤外線を集光して撮像素子４０へ入射させる。撮像素子４０は、例えばＣＭＯＳセンサやあるいはＣＣＤセンサのような固体撮像素子であり、レンズ３９が集光した赤外線を受光して画像信号を出力する。ここで、テレビ２の表示画面近傍に配置されるマーカ部６のマーカ６Ｒおよび６Ｌは、テレビ２の前方に向かって赤外光を出力する赤外ＬＥＤで構成される。したがって、赤外線フィルタ３８を設けることによって、撮像素子４０は、赤外線フィルタ３８を通過した赤外線だけを受光して画像データを生成するので、マーカ６Ｒおよび６Ｌの画像をより正確に撮像することができる。以下では、撮像素子４０によって撮像された画像を撮像画像と呼ぶ。撮像素子４０によって生成された画像データは、画像処理回路４１で処理される。画像処理回路４１は、撮像画像内における撮像対象（マーカ６Ｒおよび６Ｌ）の位置を算出する。画像処理回路４１は、算出された位置を示す座標を通信部３６のマイコン４２へ出力する。この座標のデータは、マイコン４２によって操作データとしてゲーム装置３に送信される。以下では、上記座標を「マーカ座標」と呼ぶ。マーカ座標はコントローラ５自体の向き（傾斜角度）や位置に対応して変化するので、ゲーム装置３はこのマーカ座標を用いてコントローラ５の向きや位置を算出することができる。
【００７６】
なお、他の実施形態においては、コントローラ５は画像処理回路４１を備えていない構成であってもよく、撮像画像自体がコントローラ５からゲーム装置３へ送信されてもよい。このとき、ゲーム装置３は、画像処理回路４１と同様の機能を有する回路あるいはプログラムを有しており、上記マーカ座標を算出するようにしてもよい。
【００７７】
加速度センサ３７は、コントローラ５の加速度（重力加速度を含む）を検出する、すなわち、コントローラ５に加わる力（重力を含む）を検出する。加速度センサ３７は、当該加速度センサ３７の検出部に加わっている加速度のうち、センシング軸方向に沿った直線方向の加速度（直線加速度）の値を検出する。例えば、２軸以上の多軸加速度センサの場合には、加速度センサの検出部に加わっている加速度として、各軸に沿った成分の加速度をそれぞれ検出する。例えば、３軸または２軸の加速度センサは、アナログ・デバイセズ株式会社（Ａｎａｌｏｇ  Ｄｅｖｉｃｅｓ，  Ｉｎｃ．）またはＳＴマイクロエレクトロニクス社（ＳＴＭｉｃｒｏｅｌｅｃｔｒｏｎｉｃｓ  Ｎ．Ｖ．）から入手可能である種類のものでもよい。なお、加速度センサ３７は、例えば静電容量式の加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。
【００７８】
本実施形態では、加速度センサ３７は、コントローラ５を基準とした上下方向（図３に示すＹ軸方向）、左右方向（図３に示すＸ軸方向）および前後方向（図３に示すＺ軸方向）の３軸方向に関してそれぞれ直線加速度を検出する。加速度センサ３７は、各軸に沿った直線方向に関する加速度を検出するものであるため、加速度センサ３７からの出力は３軸それぞれの直線加速度の値を表すものとなる。すなわち、検出された加速度は、入力装置８（コントローラ５）を基準に設定されるＸＹＺ座標系（コントローラ座標系）における３次元のベクトル（ａｘ，ａｙ，ａｚ）として表される。以下では、加速度センサ３７によって検出される３軸に関する各加速度値を各成分とするベクトルを加速度ベクトルと呼ぶ。
【００７９】
加速度センサ３７が検出した加速度を示すデータ（加速度データ）は、通信部３６へ出力される。なお、加速度センサ３７が検出した加速度は、コントローラ５自体の向き（傾斜角度）や動きに対応して変化するので、ゲーム装置３は加速度データを用いてコントローラ５の向きや動きを算出することができる。本実施形態では、ゲーム装置３は、加速度データに基づいてコントローラ５の姿勢を判断する。
【００８０】
加速度センサ３７が検出した加速度（加速度ベクトル）を示すデータ（加速度データ）は、通信部３６へ出力される。本実施形態において、加速度センサ３７は、コントローラ５の傾斜角度を判断するためのデータを出力するセンサとして用いられる。
【００８１】
なお、加速度センサ３７から出力される加速度の信号に基づいて、ゲーム装置３のプロセッサ（例えばＣＰＵ１０）またはコントローラ５のプロセッサ（例えばマイコン４２）等のコンピュータが処理を行うことによって、コントローラ５に関するさらなる情報を推測または算出（判定）することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。例えば、加速度センサ３７を搭載するコントローラ５が静止状態であることを前提としてコンピュータ側の処理が実行される場合（すなわち、加速度センサによって検出される加速度が重力加速度のみであるとして処理が実行される場合）、コントローラ５が現実に静止状態であれば、検出された加速度に基づいてコントローラ５の姿勢が重力方向に対して傾いているか否かまたはどの程度傾いているかを知ることができる。具体的には、加速度センサ３７の検出軸が鉛直下方向を向いている状態を基準としたとき、１Ｇ（重力加速度）がかかっているか否かによって、コントローラ５が基準に対して傾いているか否かを知ることができるし、その大きさによって基準に対してどの程度傾いているかも知ることができる。また、多軸の加速度センサ３７の場合には、さらに各軸の加速度の信号に対して処理を施すことによって、重力方向に対してコントローラ５がどの程度傾いているかをより詳細に知ることができる。この場合において、プロセッサは、加速度センサ３７からの出力に基づいてコントローラ５の傾斜角度を算出してもよいし、当該傾斜角度を算出せずに、コントローラ５の傾斜方向を算出するようにしてもよい。このように、加速度センサ３７をプロセッサと組み合わせて用いることによって、コントローラ５の傾斜角度または姿勢を判定することができる。
【００８２】
一方、コントローラ５が動的な状態（コントローラ５が動かされている状態）であることを前提とする場合には、加速度センサ３７は重力加速度に加えてコントローラ５の動きに応じた加速度を検出するので、検出された加速度から重力加速度の成分を所定の処理により除去することによってコントローラ５の動き方向を知ることができる。また、コントローラ５が動的な状態であることを前提とする場合であっても、検出された加速度から、加速度センサの動きに応じた加速度の成分を所定の処理により除去することによって、重力方向に対するコントローラ５の傾きを知ることが可能である。なお、他の実施例では、加速度センサ３７は、内蔵の加速度検出手段で検出された加速度信号をマイコン４２に出力する前に当該加速度信号に対して所定の処理を行うための、組込み式の処理装置または他の種類の専用の処理装置を備えていてもよい。組込み式または専用の処理装置は、例えば、加速度センサ３７が静的な加速度（例えば、重力加速度）を検出するために用いられる場合、加速度信号を傾斜角（あるいは、他の好ましいパラメータ）に変換するものであってもよい。
【００８３】
通信部３６は、マイコン４２、メモリ４３、無線モジュール４４、およびアンテナ４５を含んでいる。マイコン４２は、処理を行う際にメモリ４３を記憶領域として用いながら、マイコン４２が取得したデータをゲーム装置３へ無線送信する無線モジュール４４を制御する。また、マイコン４２はコネクタ３３に接続されている。ジャイロセンサユニット７から送信されてくるデータは、コネクタ３３を介してマイコン４２に入力される。
【００８４】
ジャイロセンサユニット７は、コネクタ７０６、マイコン５４、ジャイロセンサ５５を備えている。上述のように、ジャイロセンサユニット７は、３軸（本実施形態では、ＸＹＺ軸）周りの角速度を検出し、検出した角速度を示すデータ（角速度データ）をコントローラ５へ送信する。
【００８５】
各ジャイロセンサ５５で検出された角速度を示すデータは、マイコン５４に出力される。したがって、マイコン５４には、ＸＹＺ軸の３軸回りの角度速度を示すデータが入力されることになる。マイコン５４は、上記３軸回りの角速度を示すデータを角速度データとしてプラグ５３を介してコントローラ５へ送信する。なお、マイコン５４からコントローラ５への送信は所定の周期毎に逐次行われるが、ゲームの処理は１／６０秒を単位として（１フレーム時間として）行われることが一般的であるので、この時間以下の周期で送信を行うことが好ましい。
【００８６】
また、本実施形態では、後述する姿勢算出処理における計算を容易にする目的で、各ジャイロセンサ５５および５６が角速度を検出する３つの軸は、加速度センサ３７が加速度を検出する３つの軸（ＸＹＺ軸）と一致するように設定される。ただし、他の実施形態においては、各ジャイロセンサ５６および５７が角速度を検出する３つの軸と、加速度センサ３７が加速度を検出する３つの軸とは一致しなくてもよい。
【００８７】
［ゲーム処理の概要］
次に、図８〜図１１を参照して、本実施形態におけるゲーム処理の概要を説明する。本実施形態で想定するゲームは、入力装置８自体を動かすことで仮想空間内のプレイヤオブジェクトを操作するゲームである。そして、本実施形態で説明するゲーム処理は、プレイヤオブジェクトにハープを演奏する動作を行わせる処理である。
【００８８】
図８は、プレイヤオブジェクトがハープを演奏する場合のゲーム画像の一例である。図８に示すゲーム画像においては、プレイヤオブジェクト１０１がハープ１０２を持っている。本実施形態では、当該ハープ１０２の弦は１２本あり、１２音を鳴らすことが可能となっている。また、仮想空間内におけるプレイヤオブジェクト１０１の前方に演奏対象オブジェクト１０３が存在している。当該演奏対象オブジェクト１０３は花の形状を有するオブジェクトである。そして、本ゲームでは、プレイヤオブジェクト１０１が演奏対象オブジェクト１０３の前でハープ１０２を演奏すると、当該ハープ１０２から音が発せられると共に、演奏対象オブジェクト１０３からも音が発せられる。また、演奏対象オブジェクト１０３は図８で示すものの他にも複数の種類が存在し、演奏対象オブジェクト１０３毎に発せられる音色は異なっている（例えば、演奏対象オブジェクト１０３によっては声が発せられることもある）。
【００８９】
次に、上記プレイヤオブジェクト１０１がハープ１０２を演奏する場合の操作について説明する。まず、プレイヤオブジェクト１０１がハープ１０２を構えていない状態において、十字ボタン３２ａの”上”を押すと、上記図８のように、プレイヤオブジェクト１０１がハープ１０２を左腕で構えた状態となる。この状態では、プレイヤオブジェクト１０１の右手はハープ１０２の弦の位置にある。また、この際、操作ガイド１０４も画面に表示される。そして、プレイヤは、好ましくは、プレイヤオブジェクト１０１と同じような姿勢（ハープ１０２を左腕で構えているような姿勢）をとり、Ａボタン３２ｄを押しながら入力装置８を把持した右手（このときの入力装置８の姿勢については後述）を動かしてハープの弦をつま弾くような動作を（入力装置８を振る動作）行う。すると、入力装置８の動き（姿勢）に応じて、プレイヤオブジェクト１０１の右腕がハープ１０２の弦の部分内を移動し、ハープ１０２から音が発せられる。つまり、入力装置８自体を動かすことで、ハープ１０２を演奏することができる。このとき、１２音のうちのどの音が発せられるかは、入力装置８の姿勢によって決まる。なお、本実施形態では、Ａボタン３２ｄが押下されているときだけ音が鳴る。そのため、Ａボタン３２ｄを押下しないまま入力装置８を動かしても、ハープ１０２は鳴らない。但し、プレイヤオブジェクト１０１の右腕の移動は行われる。つまり、弦に触れずに右腕だけを動かしているような動作となる。
【００９０】
ここで、図９を用いて、入力装置８の姿勢と、ハープ１０２の各弦との対応関係について説明する。ここでは演奏するときの姿勢として、ハープを左手で構え、右手を動かして弦を弾くような姿勢を想定して説明する。プレイヤが実際に行う姿勢や動きのイメージとしては、図９（Ａ）で示すように、プレイヤが左手でハープを構えていることを想定して、左腕を自身の左方に向けて伸ばす。右手では、入力装置８の上面が上（実空間の座標系のＹ軸正方向）を向くようにして、入力装置８の略下半分を把持する。そして、入力装置８の先端（ハウジング３１前面、光入射面３５ａのある側）で、仮想的なハープを弾くような動きを行う（入力装置８を基準としたローカル座標系におけるＹ軸回りの回転運動ともいえる）ことで、ハープの演奏を行うとする。図９（Ｂ）は、当該動きに伴う入力装置８の姿勢変化と、ハープの１２本の弦との対応関係を示す図である。ここでは、ハープ１０２を構える操作が行われたときのプレイヤオブジェクト１０１の右手の初期位置は、ハープ１０２の一番端の弦（図９（Ｂ）では、一番右端の１番の弦）の位置となっている。そして、プレイヤがＡボタン３２ｄを押しながら、この位置を起点として入力装置８自体をプレイヤから見て左右方向（実空間座標におけるＸ軸方向にほぼ沿った方向、ローカル座標系におけるＹ軸回りの回転）に動かすと、当該図９（Ｂ）で示したように、上記ハープ１０２を構えたときにおける入力装置８の姿勢（初期位置の姿勢）から徐々に入力装置８の姿勢が変化していくことになる。この変化した姿勢（初期位置との姿勢の差分）に応じてハープ１０２の各弦の音が鳴らされる。なお、詳細は後述するが、本実施形態では、この変化（振り動作）を主に角速度の変化として捉えて各種処理を行う。
【００９１】
ここで、本実施形態のゲーム処理では、上記ハープ１０２の演奏にかかる入力装置の基本的な動き（振り方）としては、図１０に示すような動きを原則として想定している。すなわち、入力装置８の姿勢が、入力装置８の上面（十字キー３２ａ等のある面）を上に向けた姿勢であり、当該上面が地面と水平な状態となる姿勢であることを前提とする（換言すれば、ハープ１０２の弦の部分に対して、入力装置８の長手方向が垂直となる姿勢）。そして、このような水平な姿勢のままで、手首のスナップをきかせて左右方向（Ｘ軸方向に沿った移動・Ｙ軸回りの回転）に振られることを前提としている（手首、あるいは肘を支点とした回転運動となる）。しかしながら、実際に振り動作が行われる局面を考えると、入力装置８の姿勢に「ねじれ」が発生することが考えられる。例えば、振り始めは入力装置８の上面が上を向いているが、振り終わりの頃には、入力装置８の上面が左側を向いている、つまり、入力装置８の姿勢が振り始めのときから９０°傾いた姿勢になってしまうような場合も考えられる。入力装置８がこのような姿勢となると、プレイヤとしては入力装置８を左右方向に沿って振っているつもりであっても、入力装置８自体を基準として考えると、図１１に示すように、上下方向（Ｙ軸方向に沿った移動・Ｘ軸回りの回転）に沿った振りが発生している（検出される）ことになる。そのため、入力装置８が図１０のように水平な姿勢を維持したまま左右方向に沿って振られることのみを前提としてハープの各弦の音を鳴らす処理を行う場合、入力装置８がねじれた状態において左右方向に沿った振りが正確に検出できず、プレイヤの操作に沿ったハープ１０２の音が鳴らないということが考えられる。そこで、本実施形態のゲーム処理では、このような「ねじれ」を考慮した処理も行っている。具体的には、入力装置８がねじれた姿勢であるか否かを判定して、ねじれていなければ、左右方向に沿った振りをそのまま利用して入力装置の姿勢を算出し、この姿勢に応じてハープ１０２の各弦の音を鳴らす。一方、ねじれている状態のときは、上下方向に沿った振りを左右方向に沿った振りとして変換してから、入力装置８の姿勢に応じてハープ１０２の各弦の音を鳴らす。すなわち、入力装置８の上面が上を向いている姿勢を基準として、右にねじれている場合は、入力装置８の座標系における上方向への振りを左方向への振りとして変換し、下方向への振りは右方向への振りとして変換する。また、左にねじれている場合は（図１１のような状態）、これとは逆に、入力装置８の座標系における上方向への振りを右方向への振りとして変換し、下方向への振りは左方向への振りとして変換する。つまり、入力装置８の上面が常に上を向いている姿勢を想定した場合の振り方向（Ｙ軸を中心とした回転方向）に変換する処理を行う。このように、姿勢の「ねじれ」を考慮した処理を行うことで、プレイヤの行った動作と、この動作の結果としてハープ１０２から鳴る音とにズレや違和感が発生することを防ぐことが可能となる。
【００９２】
次に、ゲーム装置３において行われるゲーム処理の詳細を説明する。まず、図１２を参照して、ゲーム処理において用いられる主なデータについて説明する。なお、図１２は、ゲーム装置３のメインメモリ（外部メインメモリ１２または内部メインメモリ１１ｅ）に記憶される主なデータを示す図である。ゲーム装置３のメインメモリには、ゲームプログラム１２１、操作データ１２４、処理用データ１２８が記憶される。その他、メインメモリには、ゲームに登場する各種オブジェクトの画像データ等、ゲーム処理に必要な各種データが記憶される。
【００９３】
ゲームプログラム１２１は、後述する図１３のフローチャートの処理に対応するプログラムであり、このゲームプログラム１２１は、ハープモード処理プログラム１２３等によって構成される。
【００９４】
操作データ１２４は、入力装置８からゲーム装置３へ送信されてくる操作データである。本実施形態では、入力装置８からゲーム装置３へ１／２００秒に１回の割合で操作データが送信されるので、メインメモリに記憶される操作データ１２４はこの割合で更新される。本実施形態においては、メインメモリには、最新の（最後に取得された）操作データのみが記憶されればよい。
【００９５】
操作データ１２４には、角速度データ１２５、加速度データ１２６、および操作ボタンデータ１２７等が含まれる。角速度データ１２５は、ジャイロセンサユニット７のジャイロセンサ５５および５６によって検出された角速度を示すデータである。ここでは、角速度データ１２５は、図３に示すＸＹＺの３軸回りのそれぞれの角速度を示す。また、加速度データ１２６は、加速度センサ３７によって検出された加速度（加速度ベクトル）を示すデータである。ここでは、加速度データ１２６は、図３に示すＸＹＺの３軸の方向に関する加速度を各成分とする３次元の加速度ベクトルを示す。また、本実施形態においては、コントローラ５が静止している状態で加速度センサ３７が検出する加速度ベクトルの大きさを"１"とする。つまり、加速度センサ３７によって検出される重力加速度の大きさは"１"である。
【００９６】
操作ボタンデータ１２７は、各操作ボタン３２ａ〜３２ｉに対する入力状態を示すデータである。
【００９７】
処理用データ１２８は、ゲーム処理の差異に用いられる各種データであり、音列対応テーブルデータ１２９、音列データ１３０、累積データ１３１、各種オブジェクトデータ１３２、初期姿勢データ１３３、基準姿勢データ１３４等で構成される。
【００９８】
音列対応テーブルデータ１２９は、上記演奏対象オブジェクト１０３が発する音列と、ハープ１０２の１２音との対応付けを定義したテーブルのデータである。当該テーブルは、各演奏対象オブジェクト１０３毎に定義されている。
【００９９】
音列データ１３０は、入力装置８の姿勢に基づいて決定されるデータであり、ある時点の入力装置８の姿勢が、ハープ１０２の１２音のうちのどの音に該当しているのかを示すデータである。
【０１００】
累積データ１３１は、上記音列データを算出するときに用いられるデータであり、フレーム毎に算出される角速度を累積したデータである。
【０１０１】
各種オブジェクトデータ１３２は、プレイヤオブジェクト１０１や演奏対象オブジェクト１０３等、ゲームにおいて登場する各種オブジェクトのデータである。
【０１０２】
初期姿勢データ１３３は、ゲーム処理の開始時に設定されるデータであり、後述するゲームの初期設定処理において設定される。当該データは、ゲーム処理中における入力装置８の姿勢を算出するために用いられる。
【０１０３】
基準姿勢データ１３４は、プレイヤオブジェクトに上記ハープ１０２を構えさせる操作（十字キー３２ａの上方向押下）が行われたときの入力装置８の姿勢を示すデータである。当該データは、ハープの演奏時において、ハープ１０２の１２音のうちどの音を鳴らすかを決定するために利用される。
【０１０４】
次に、本実施形態におけるゲーム処理の具体的処理内容について説明する。図１３は、ゲーム処理の全体的な処理の詳細を示すフローチャートである。なお、図１３に示すフローチャートにおいては、ゲーム処理のうち、上記のようなプレイヤオブジェクトにハープを演奏させる処理を中心に説明し、本願発明とは直接関連しない他の処理については詳細な説明を省略する。また、図１３のステップＳ２〜Ｓ６にかかる処理ループ、および、後述の図１４におけるステップＳ１３〜Ｓ２０の処理ループは、１フレーム毎に繰り返されるものとする。
【０１０５】
まず、ステップＳ１において、初期設定処理が実行される。この処理では、ゲーム処理で用いられる各種データの初期化や、仮想ゲーム空間の構築と当該仮想ゲーム空間を仮想カメラで撮影して生成されるゲーム画像の表示等が実行される。更に、入力装置８の姿勢の初期化処理も実行される。当該入力装置８の姿勢の初期化処理では、例えば、以下のような処理が実行される。まず、入力装置８の上面側を下にして、水平な場所に置く旨の指示が画面に表示される。プレイヤがこの指示に従って入力装置８を水平な場所に置くと、このときの姿勢に基づいてジャイロセンサユニット７が初期化される。そして、このときの入力装置８の姿勢に基づいて入力装置の「初期姿勢」が決定され、初期姿勢データ１３３として設定される。ここでは、初期姿勢は、入力装置８の上面側が上を向いている姿勢（つまり、上記入力装置を置いたときの姿勢を反転させた姿勢）であるとする。以降のゲーム処理においては、当該初期姿勢との比較等によって、毎フレームの処理における入力装置８の姿勢等が算出される。
【０１０６】
初期設定処理が終われば、次に、ステップＳ２において、操作データ１２４が取得される。次に、ステップＳ３において、操作データ１２４の操作ボタンデータ１２７が参照され、上述したようなハープを構えることを指示する操作が行われたか否かが判定される。例えば、本実施形態では、十字キー３２ａの上方向の押下が当該指示に割り当てられているとする。当該判定の結果、上キーが押されているときは（ステップＳ３でＹＥＳ）、ステップＳ４において、次に説明するハープモード処理が実行される。一方、上キーが押されていないときは（ステップＳ３でＮＯ）、ステップＳ５において、その他の各種ゲーム処理が適宜実行される。なお、他の実施形態では、ハープを構えることを指示する操作として、他のボタンが割り当てられても良いし、所定のボタンを押下すること以外の操作であっても良い。
【０１０７】
図１４は、上記ステップＳ４で示したハープモード処理の詳細を示すフローチャートである。この処理は、プレイヤオブジェクト１０１にハープ１０２を演奏させるための処理である。まず、ステップＳ１１において、入力装置８の現在の姿勢（以下、現在姿勢）が算出される。これは、例えば、操作データ１２４から得られる加速度データ１２６や角速度データ１２５、および、上記初期姿勢に基づいて算出される。そして、当該現在姿勢が、以下の処理で用いる「基準姿勢」として設定され、基準姿勢データ１３４として記憶される。
【０１０８】
次に、ステップＳ１２において、上記図８で示したような操作ガイド１０４が画面に表示される。
【０１０９】
次に、ステップＳ１３において、操作データ１２４が取得され、続くステップＳ１４において、Ｂボタン３２ｉが押下されているか否かが判定される。本実施形態においては、Ｂボタン３２ｉの役割は、当該ハープモード処理を終了するためのボタンという役割を有している（つまり、ハープの演奏を止める）。当該判定の結果、Ｂボタン３２ｉが押下されているときは（ステップＳ１４でＹＥＳ）、ステップＳ２１において、操作ガイド１０４が画面から消去される。そして、ハープモード処理も終了する。
【０１１０】
一方、Ｂボタン３２ｉが押下されていないときは（ステップＳ１４でＮＯ）、次に、ステップＳ１５において、角速度算出処理が実行される。図１５は、上記ステップＳ１５で示した角速度算出処理の詳細を示すフローチャートである。まず、ステップＳ３１で、入力装置８のねじれ量が算出される。この処理では、例えば、上記初期姿勢と現在姿勢とが比較されることで、初期姿勢に対するねじれ量が算出される。
【０１１１】
次に、ステップＳ３２において、入力装置のねじれ量が所定値以上であるか否かが判定される。例えば、初期姿勢（上面側が地面と水平な状態の入力装置の姿勢）に比べて、Ｚ軸回りに４５°以上ねじれているか否かが判定される。当該判定の結果、ねじれ量が所定値以上ではないとき（ステップＳ３２でＮＯ）、ねじれは発生していない、すなわち、入力装置８は水平な状態の姿勢であると考えられるため、ステップＳ３７において、入力装置８の座標系におけるＹ軸回りの角速度（以下、角速度ωｙ）が取得される。すなわち、上記図１０で示したような振り動作にかかる角速度が取得される。また、この際、その回転方向（正負）についても判定される。その後、後述のステップＳ３８に処理が進められる。
【０１１２】
一方、ステップＳ３２の判定の結果、ねじれ量が所定値以上のときは（ステップＳ３２でＹＥＳ）、入力装置８は初期姿勢に対してねじれた姿勢となっていると考えられるため、次に、ステップＳ３３において、Ｘ軸回りの角速度（以下、角速度ωｘ）が取得される。
【０１１３】
次に、ステップＳ３４において、入力装置８のねじれが、右にねじれているか否かが判定される。その結果、右にねじれているときは（ステップＳ３４でＹＥＳ）、ステップＳ３５において、入力装置８の座標系における上方向が、入力装置８が水平な姿勢のときのＺＸ平面上における右方向に対応するように、ωｘがωｙとして変換される。
【０１１４】
一方、入力装置８が右にねじれていない、すなわち、左にねじれているときは（ステップＳ３４でＮＯ）、ステップＳ３６において、入力装置８の座標系における上方向が、入力装置８が水平な姿勢のときのＺＸ平面上における左方向に対応するように、ωｘがωｙとして変換される。
【０１１５】
次に、ステップＳ３８において、累積データ１３１に、上記取得あるいは変換によって算出されたωｙが合算される。累積データ１３１には、これまでのωｙが累積されている。そして、上記算出されたωｙが負の値であれば、累積データ１３１から減算され、正の値ならば累積データに加算されることになる。これにより、右方向に振られたか左方向に振られたかについて反映することができる。そして、この結果、当該累積データ１３１に基づいて、入力装置８の上面側が上を向いている状態を想定したときの入力装置８の姿勢が算出可能となる。以上で、角速度算出処理は終了する。
【０１１６】
図１４に戻り、角速度算出処理が終われば、次に、ステップＳ１６において、Ａボタン３２ｄが押下されているか否かが判定される。上記のように、本実施形態では、Ａボタン３２ｄが押下されているときのみハープ１０２の音を鳴らすため、ハープ１０２の音を鳴らすか否かを判定していることになる。当該判定の結果、Ａボタン３２ｄが押下されていないときは（ステップＳ１６でＮＯ）、ハープ１０２を鳴らす必要はないため、後述のステップＳ１９に処理が進められる。
【０１１７】
一方、Ａボタン３２ｄが押下されているときは（ステップＳ１６でＹＥＳ）、次に、ステップＳ１７において、操作データ１２４が参照されて、所定値以上の加速度が発生したか否かが判定される。つまり、入力装置８が、ある程度大きく振られたか否かが判定される。また、振り方向に関して、ハープ１０２の弦の並びに沿った方向（弦の並びに水平な軸方向）についての振り（加速度）が発生したか否かが判定される。上記図１０の例で言うと、左右方向の振りであって、ある程度の大きさの加速度を有する振りが発生したか否かが判定される。これは、例えば、手ぶれなどの、入力装置８に発生した微細な動きについては無視して、ある程度大きな動きが発生したときのみ、ハープ１０２の音を鳴らすための判定処理である。当該判定の結果、所定値以上の加速度が発生していなければ（ステップＳ１７でＮＯ）、ハープ１０２の音を鳴らさずに、後述のステップＳ１９に処理が進められる。
【０１１８】
一方、所定値以上の加速度が発生しているときは（ステップＳ１７でＹＥＳ）、ステップＳ１８において、ハープの音を鳴らすための音声出力処理が実行される。図１６は、上記ステップＳ１８で示した音声出力処理の詳細を示すフローチャートである。まず、ステップＳ５１において、上記基準姿勢と、上記合算したωｙで示される入力姿勢との差分が算出される。更に、当該差分に基づいて、上記ハープ１０２の１２音のいずれかに対応する音列データが決定される。つまり、基準姿勢に対する現在の入力装置の姿勢が、１２段階で示される音列データの、どの段階に該当するかが決定される。
【０１１９】
次に、ステップＳ５２において、今回算出された差分で示される入力装置８の姿勢が、前回音を鳴らしたときの姿勢から、次の弦の音を鳴らすための閾値を越える変化をしたか否かが判定される。例えば、図１７を用いて説明すると、１本目の弦の音を鳴らした後、入力装置８の姿勢が２本目の弦に対応する姿勢にまで変化したか否かが判定される。つまり、一本目の弦を鳴らした後、角度Ａとして示される閾値以上に姿勢が変化したか否かが判定される（換言すれば、当該閾値は、弦と弦の間の距離・間隔を示す概念である）。また、例えば、２本目の弦が鳴らされた後、角度Ｂとして示される閾値だけ入力装置８の姿勢が変化したか否かが判定される。なお、この判定は、前回音を鳴らしたときから今回のフレームまでに発生した角速度が上記閾値を越えたか否かで判定するようにしても良い（図１７において、角度Ａ、角度Ｂ、角度Ｃは同じ角度であるとする）。また、ここでは、１本目の弦→２本目の弦、の順で鳴らす場合で説明したが、逆方向についても同様に閾値を越えたか否かで判定される。なお、例えば、２本目の弦が鳴った後、３本目の弦の音が鳴る前に、逆方向に入力装置８を振るような場合は（つまり、小さな往復運動で２本目の弦のみを鳴らすような場合）は、上記閾値の判定とは別に、２本目の弦を鳴らした、３本目または１本目の弦の方向への角速度が発生した後、２本目の弦を鳴らしたときの姿勢に戻ったか否かも判定するようにして、２本目の音を適宜鳴らすようにすればよい。
【０１２０】
なお、上記閾値については、次のような判定手法を用いても良い。すなわち、常に１本目の弦の姿勢（基準姿勢）からの差分を算出し、この差分に基づいて音を鳴らすか否かを決定しても良い。上記図１７の例でいうと、２本目の弦の音を鳴らすか否かは、基準姿勢（ここでは一本目の弦を鳴らすための姿勢）からの姿勢変化が、角度Ａ＋角度Ｂとして示される閾値以上か否かで判定する。また、３本目の弦の場合であれば、角度Ａ＋角度Ｂ＋角度Ｃとして示される閾値以上か否かで判定すればよい。
【０１２１】
当該判定の結果、次の弦の音を鳴らすための閾値を越えていると判定されたときは（ステップＳ５２でＹＥＳ）、ステップＳ５３において、音列対応テーブルデータ１２９が参照され、現在プレイヤオブジェクト１０１の前方に存在する演奏対象オブジェクト１０３に応じた音列対応テーブルが選択される。
【０１２２】
次に、ステップＳ５４において、当該音列対応テーブルが参照され、上記１２段階の音列のうちの１つを示す音列データ１３０に対応する音を示すデータが取得される。そして、当該選択された音（音列データ１３０）が出力される。その結果、入力装置８の姿勢に応じたハープ１０２の音が鳴り、併せて、演奏対象オブジェクト１０３からも音列データに対応する音が出力される。そして、音声出力処理は終了する。
【０１２３】
一方、上記ステップＳ５２の判定の結果、閾値を越えていないと判定されたときは（ステップＳ５２でＮＯ）、上記ステップＳ５３、Ｓ５４の処理はスキップされ、音は鳴らないまま、音声出力処理は終了することになる。
【０１２４】
図１４に戻り、次に、ステップＳ１９において、プレイヤオブジェクト１０１の右腕が、上記角速度ωｙに応じて移動される。このとき、Ａボタンが押されていなければ、上記ステップＳ１７〜Ｓ１８の処理がスキップされることになるため、ハープ１０２等の音は鳴らずに、プレイヤオブジェクト１０１の右腕のみ移動することになる。一方、Ａボタン３２ｄが押されていれば、右腕の移動とともに音が鳴る。
【０１２５】
次に、ステップＳ２０において、上記のような処理内容（プレイヤオブジェクト１０１の腕の移動等）を反映したゲーム画像が生成され、描画される。その後、上記ステップＳ１３に戻り、Ｂボタン３２ｉが押されるまで処理が繰り返される。以上で、ハープモード処理は終了する。
【０１２６】
図１３に戻り、ハープモード処理が終了すれば、ステップＳ６において、ゲームの終了条件が満たされたか否かが判定され、条件が満たされていなければ（ステップＳ６でＮＯ）、上記ステップＳ２に戻り処理が繰り返される。条件が満たされていれば（ステップＳ６でＹＥＳ）、当該ゲーム処理が終了する。
【０１２７】
このように、本実施形態では、入力装置８自体を動かし、基準姿勢と現在姿勢との差分に応じて、ハープ１０２の１２音のうちのいずれか１音を鳴らす処理を行っている（そのため、例えば、入力装置８を１方向に振ると、１本目から１２本目の弦に向かって弾くような操作も可能となる）。これにより、入力装置８の細かい動きに応じた細かい演奏操作が可能となる。例えば、１２本の弦があるハープ１０２において、１２本全ての弦を順に鳴らす場合に、１〜５本目までの弦が鳴る速度（テンポ）と、６〜１２目の弦が鳴るテンポを変化させるような操作が可能となる（前半と後半とで入力装置８を振る速度を変化させる）。また、１本目の弦から６本目の弦まで弾いた後、逆方向に戻る、つまり、６本目の弦から１本目の弦に向かって弾くような細やかな操作も可能となる。
【０１２８】
なお、上記角速度算出処理に関しては、上述のような処理の他、例えば、以下のような処理で算出しても良い。図１８は、角速度算出処理の他の実施形態を示すフローチャートである。この処理では、Ｘ軸回りの角速度とＹ軸回りの角速度とを合成することで、音列データ１３０の決定の基となる角速度を求めている。このとき、入力装置８のねじれ量に応じて、Ｘ軸回りの角速度とＹ軸回りの角速度の合成比率を変化させて、角速度を合成する。
【０１２９】
図１８において、まず、ステップＳ７１で、入力装置８のねじれ量が算出される。この処理は、上記ステップＳ３１と同様の処理である。
【０１３０】
次に、ステップＳ７２において、上記算出されたねじれ量に応じて、ωｙ（Ｙ軸回りの角速度）とωｘ（Ｘ軸回りの角速度）との合成比率が設定される。例えば、入力装置８の上面側が上を向いている状態をねじれ量０とし、入力装置８の上面側が右または左を向いている状態（９０°傾いた状態）をねじれ量１００とする。そして、ねじれ量が０の場合は、ωｙとωｘの合成比率は「１００％：０％」のように設定される。また、ねじれ量が１００であれば、逆に、ωｙとωｘの合成比率は「０％：１００％」に設定される。また、ねじれ量が４０の場合は、ωｙとωｘの合成比率は「６０％：４０％」に設定される。
【０１３１】
次に、ステップＳ７３において、操作データ１２４が参照され、角速度ωｘおよび角速度ωｙが取得される。
【０１３２】
続くステップＳ７４において、上記ステップＳ７２で設定された合成比率に基づいて、ωｘとωｙとが合成され、合成角速度ωＳが算出される。このωＳは、入力装置８が水平な状態であると想定した場合の（上記図１０参照）角速度を意味することになる。
【０１３３】
次に、ステップＳ７５において、累積データ１３１に、上記算出された合成角速度ωＳが合算される。これにより、合成角速度ωＳおよび上記基準姿勢に基づいて、入力装置８が水平な状態であると想定した場合の、入力装置８の現在姿勢が算出可能となる。以上で、他の実施形態における角速度算出処理の説明は終了する。このような処理を行うことで、プレイヤにより行われた入力装置８の動きを、より正確にハープ１０２の音の出力に反映させることが可能となる。
【０１３４】
また、上述した音声出力処理に関して、上記実施形態では、図１７で示したように、ある弦の音を鳴らした後、次の弦の音を鳴らすための閾値を越えているか否かを判定し、この閾値を越えていれば音を鳴らしていた。この閾値に関して、上述の例では、一律に同じ場合を例にしていたが（上記図１７において、角度Ａ〜Ｃは同じ角度）、他の実施形態では、この閾値を、入力装置８を振る速度に応じて変化させるようにしても良い。例えば、入力装置８を振る速度が速い場合（大きな加速度がかかっているような動きの場合）は、上記閾値を小さい値に変化させる（図１９（Ａ）参照）。逆に、振る速度が速い場合（加速度が小さな動きの場合）は、閾値を大きい値に変化させる（図１９（Ｂ）参照）。つまり、上記のように、当該閾値は、ハープの弦と弦の間隔を示す概念とも言えるところ、加速度の大小に応じて、弦の間隔を変化させるようにしてもよい。例えば、図２０に示すように、入力装置８自体を振った際、加速度が大きいときは、入力装置８自体の姿勢の変化が小さくても、１２本の弦の全ての音を鳴らすことができる。一方、入力装置８自体を振った際に加速度が小さいときは、１２本の弦の全ての音を鳴らすためには、上記に比べて、図２１で示すように、入力装置８の姿勢をより大きく変化させる必要がある（なお、図２０、２１共に、入力装置８の姿勢とハープの弦との対応関係は上記図９に準ずる）。上記のような処理については、例えば、上記ステップＳ５２の処理の際に、加速度データ１２６を参照し、その内容に応じて、予め初期値として定義されている閾値を増減してから判定を行うようにすればよい。
【０１３５】
また、その他、上記のような閾値を用いずに、ハープ１０２の各弦に対応する入力装置８の姿勢を示すデータを予め定義しておき、現在姿勢がこの姿勢と一致するか否かを判定することで各弦の音を出力するようにしても良い。
【０１３６】
また、上記実施形態では、基準姿勢と現在姿勢との差分に応じて音列データ１３０を決定していた。この音列データ１３０の決定について、他の実施形態では、基準姿勢の代わりに、直前のフレームにかかる処理での入力装置８の姿勢と現在姿勢との差分に応じて音列データ１３０を決定するようにしてもよい。更に、この場合、当該差分を累積し、累積データ１３１として記憶するようにしてもよい。
【０１３７】
また、上記実施形態では、十字キー３２ａの「上」を押したとき、つまり、プレイヤオブジェクト１０１がハープ１０２を構えた際の、音が鳴る初期位置（プレイヤオブジェクト１０１の右手の初期位置）として、ハープ１０２の一番端の弦の位置の場合を例に挙げた。初期位置はこれに限らず、別の弦の位置、例えばハープ１０２の中央付近の位置でもよい。例えば、図２２に示すように、６本目の弦の位置を初期位置としてもよい（図２２におけるハープと入力装置８の位置関係は上記図９の場合に準ずる）。この場合は、各弦に対応する入力装置８の姿勢は、６本目の弦を中心に、６〜１本目については入力装置８の先端部分がプレイヤ側に近づいていくような姿勢となり、７〜１２本目は、入力装置８の先端部分がプレイヤから離れていくような姿勢となる。
【０１３８】
また、上記実施形態では、ジャイロセンサユニット７（角速度）を用いて入力装置の姿勢を算出していたが、ジャイロセンサユニット７は用いずに、加速度センサ３７から得られる加速度データ１２６に基づいて入力装置８の姿勢（基準姿勢や現在姿勢）を算出するようにしてもよい。
【０１３９】
また、上記実施形態では、ゲーム内で演奏する楽器の一例としてハープを例に挙げたが、これに限らず、弦楽器全般についても本発明は適用可能である。更には、弦楽器等の楽器だけに限らず、上記のような、所定のタイミングで定義された基準姿勢と現在姿勢との差分によって鳴らす音を決定する処理が利用できる局面であれば、本発明は適用可能である。
【０１４０】
また、上記実施形態においては、入力装置８の姿勢に基づいてハープ１０２を演奏するための一連の処理が単一の装置（ゲーム装置３）において実行される場合を説明したが、他の実施形態においては、上記一連の処理が複数の情報処理装置からなる情報処理システムにおいて実行されてもよい。例えば、端末側装置と、当該端末側装置とネットワークを介して通信可能なサーバ側装置とを含む情報処理システムにおいて、上記一連の処理のうちの一部の処理がサーバ側装置によって実行されてもよい。さらには、端末側装置と、当該端末側装置とネットワークを介して通信可能なサーバ側装置とを含む情報処理システムにおいて、上記一連の処理のうちの主要な処理がサーバ側装置によって実行され、当該端末側装置では一部の処理が実行されてもよい。また、上記情報処理システムにおいて、サーバ側のシステムは、複数の情報処理装置によって構成され、サーバ側で実行するべき処理を複数の情報処理装置が分担して実行してもよい。
【符号の説明】
【０１４１】
１    ゲームシステム
２    モニタ
２ａ    スピーカ
３    ゲーム装置
４    光ディスク
５    コントローラ
７    ジャイロセンサユニット
８    入力装置
１０    ＣＰＵ
１１    システムＬＳＩ
１１ａ    入出力プロセッサ
１１ｂ    ＧＰＵ
１１ｃ    ＤＳＰ
１１ｄ    ＶＲＡＭ
１１ｅ    内部メインメモリ
１２    外部メインメモリ
１３    ＲＯＭ／ＲＴＣ
１４    ディスクドライブ
１５    ＡＶ−ＩＣ
１６    ＡＶコネクタ
１７    フラッシュメモリ
１８    無線通信モジュール
１９    無線コントローラモジュール
２０    拡張コネクタ
２１    外部メモリカード用コネクタ
２２    アンテナ
２３    アンテナ
２４    電源ボタン
２５    リセットボタン
２６    イジェクトボタン
３０    基板
３１    ハウジング
３２    操作部
３３    コネクタ
３４    ＬＥＤ
３５    撮像情報演算部
３６    通信部
３７    加速度センサ
３８    赤外線フィルタ
３９    レンズ
４０    撮像素子
４１    画像処理回路
４２    マイコン
４３    メモリ
４４    無線モジュール
４５    アンテナ
４８    バイブレータ
４９    スピーカ
５３    プラグ
５４    マイコン
５５    ２軸ジャイロセンサ
５６    １軸ジャイロセンサ
【図１】
0005848520.tif 000002
【図２】
0005848520.tif 000003
【図３】
0005848520.tif 000004
【図４】
0005848520.tif 000005
【図５】
0005848520.tif 000006
【図６】
0005848520.tif 000007
【図７】
0005848520.tif 000008
【図８】
0005848520.tif 000009
【図９】
0005848520.tif 000010
【図１０】
0005848520.tif 000011
【図１１】
0005848520.tif 000012
【図１２】
0005848520.tif 000013
【図１３】
0005848520.tif 000014
【図１４】
0005848520.tif 000015
【図１５】
0005848520.tif 000016
【図１６】
0005848520.tif 000017
【図１７】
0005848520.tif 000018
【図１８】
0005848520.tif 000019
【図１９】
0005848520.tif 000020
【図２０】
0005848520.tif 000021
【図２１】
0005848520.tif 000022
【図２２】
0005848520.tif 000023