説明

音楽演奏プログラム、音楽演奏装置、音楽演奏システム、および音楽演奏方法

【課題】入力装置自体を動かす操作によって、より細やかな演奏操作が可能な音楽演奏プログラム等を提供すること。
【解決手段】入力装置には、自身の動きまたは姿勢を検出する動き・姿勢センサが備わっている。まず、このような動き・姿勢センサで検出した入力装置の動きまたは姿勢の情報を取得する。次に、当該取得した入力装置の姿勢と所定の基準姿勢との差分を算出する。そして、当該姿勢の差分に応じた所定の音を鳴らすことで音楽の演奏を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、音楽演奏プログラム、音楽演奏装置、音楽演奏システム、および音楽演奏方法に関し、より特定的には、入力装置の動きに基づいた音楽演奏を行う、音楽演奏プログラム、音楽演奏装置、音楽演奏システム、および音楽演奏方法に関する。
【背景技術】
【0002】
従来、入力装置の動きに基づいて仮想的に音楽を演奏する技術が知られている(例えば、非特許文献1)。この技術では、入力装置を所定の方向へ1回動かす(振る)ことにより、ギターであれば1ストローク分の動作、打楽器であれば1回分の叩き操作(1打分の操作)として扱われて、仮想的な楽器の演奏が行われていた。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】Wii用ソフト「Wii Music」取扱説明書、任天堂株式会社、2008年10月16日発売、第10頁から第11頁
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記の技術においては、入力装置の所定の方向への動きがあった際に、ギターであれば1ストローク分、打楽器であれば1打分の演奏を行っている。すなわち、入力装置の所定方向への動きの検知を、ギターを1ストローク分の演奏(操作)や、打楽器を1打分の演奏(操作)を開始するタイミングを計るために使われていた。これは、ボタンによる入力を検知することで、上記のような操作の開始タイミングを計ることと大差はなく、変化のある動きに基づいた、きめ細かい演奏操作を行うことができなかった。
【0005】
それ故に、本発明の目的は、入力装置自体を動かす操作によって、より細やかな演奏操作が可能な音楽演奏プログラム等を提供することである。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本発明は以下のような構成を採用した。
【0007】
本発明にかかる音楽演奏プログラムは、自身の動きまたは姿勢を検出する動き・姿勢センサを備えた入力装置からの入力に基づいて音楽を演奏する音楽演奏装置のコンピュータによって実行される音楽演奏プログラムであって、コンピュータを、動き・姿勢情報取得手段と、姿勢差分算出手段と、演奏手段として機能させる。動き・姿勢情報取得手段は、動き・姿勢センサで検出した入力装置の動きまたは姿勢の情報を取得する。姿勢差分算出手段は、所定の基準姿勢と、動き・姿勢情報取得手段で取得した入力装置の姿勢との差分を算出する。演奏手段は、姿勢差分算出手段で算出された姿勢の差分に応じた所定の音を鳴らすことで音楽の演奏を行う。
【0008】
上記構成により、より細やかで多彩な演奏操作が可能となる。
【0009】
他の構成例として、音楽演奏プログラムは、コンピュータを、所定のタイミングにおける入力装置の姿勢を基準姿勢として設定する基準姿勢設定手段として更に機能させ、姿勢差分算出手段は、基準姿勢が設定された後に動き・姿勢情報取得手段で取得された入力装置の姿勢と当該基準姿勢との差分を算出してもよい。
【0010】
上記構成例によれば、例えばあるボタンを押したタイミングでの入力装置の姿勢を基準姿勢として演奏操作を行うことができ、演奏操作にかかる操作性を高めることができる。
【0011】
更に他の構成例として、演奏手段は、姿勢差分算出手段で算出された姿勢の差分が当該差分に対して予め設定されている所定の閾値を超えた際に、当該所定の閾値に対応した音を鳴らすようにしてもよい。
【0012】
更に他の構成例として、所定の閾値は複数設定されていてもよい。
【0013】
上記構成例によれば、より細やかな演奏操作が可能となる。
【0014】
更に他の構成例として、音楽演奏プログラムは、コンピュータを、動き・姿勢情報取得手段で取得した入力装置の動きまたは姿勢の単位時間当たりの変化の大きさを検出する変化量検出手段としてさらに機能させ、演奏手段は、動きまたは姿勢の変化の大きさに応じて所定の閾値を変化させてもよい。
【0015】
上記構成例によれば、入力装置の動きの変化量の大きさ、例えば、入力装置を振る速度等によって、入力装置がある姿勢のときになる音を変えることが可能となる。これにより、例えば、仮想的な弦楽器を演奏する場合に、当該弦楽器の弦の間隔を入力装置の動きの変化量の大きさ応じて変化させるような処理が可能となる。その結果、入力装置を速く振った場合でもゆっくり振った場合でも、同じ数の弦の音を鳴らすような操作が可能となる(例えば、12本の弦を鳴らすような場合、入力装置をゆっくり振りながら、入力装置自体の移動距離もある程度大きい場合と、入力装置を速く振って、その移動距離は小さいような場合の双方とも、12本全ての弦の音を鳴らすことが可能となる)
【0016】
更に他の構成例として、演奏手段は、動きまたは姿勢の変化の大きさが大きくなるほど所定の閾値が小さい値となるように変化させるようにしてもよい。
【0017】
上記構成例によれば、例えば仮想的な弦楽器を演奏するような場合に、入力装置を速く振った場合でも、入力装置をゆっくり振った場合と同じ数の弦の音を鳴らすことが可能となる。
【0018】
更に他の構成例として、音楽演奏プログラムは、コンピュータを、動き・姿勢情報取得手段で取得した入力装置の動きまたは姿勢の単位時間あたりの変化量を算出する変化量算出手段として更に機能させ、演奏手段は、算出された動き又は姿勢の変化量によって、姿勢差分算出手段で算出された差分と当該差分に応じて鳴らす音との対応関係を変化させてもよい。
【0019】
上記構成例によれば、入力装置がある位置(姿勢)のときに鳴る音を、当該入力装置の動きの大きさ(例えば、振る速さ)によって変化させることができる。これにより、例えば、入力装置を速く振ったときとゆっくり振ったときとで、鳴る音の内容を変えることができ、演奏操作に幅を持たせ、より多彩な演奏操作が可能となる。
【0020】
更に他の構成例として、音楽演奏プログラムは、コンピュータを、基準姿勢が設定された後、動き・姿勢情報取得手段で取得した入力装置の動きまたは姿勢の単位時間当たりの変化量が所定量以上であるか否かを判定する変化量判定手段としてさらに機能させ、演奏手段は、変化量判定手段で入力装置の動きまたは姿勢の変化量が所定量以上と判定された時点から演奏を行うようにしてもよい。
【0021】
上記構成例によれば、例えば手ぶれのような微細な手の動きに反応して音が鳴ることを防ぐことができ、演奏操作にかかる操作性を高めることが可能となる。
【0022】
更に他の構成例として、入力装置はさらに所定の入力部を備え、音楽演奏プログラムは、コンピュータを、入力部に対して入力があったか否かを判定する入力判定手段をしてさらに機能させ、基準姿勢設定手段は、入力判定手段で入力部に対して入力があったと判定されたときの姿勢を所定の基準姿勢として設定するようにしてもよい。
【0023】
上記構成例によれば、任意のタイミングにおける入力装置の姿勢を基準として演奏操作ができ、操作性を高めることができる。
【0024】
更に他の構成例として、入力装置はさらに所定の入力部を備え、音楽演奏プログラムは、コンピュータを、入力部に対して入力があったか否かを判定する入力判定手段としてさらに機能させ、演奏手段は、入力判定手段で入力部に対して入力がある間だけ演奏を行うようにしてもよい。
【0025】
上記構成例によれば、例えば、プレイヤが入力装置に設けられている所定のボタンを押下している間だけ音が出力されるようにすることができ、演奏操作にかかる操作性を高めることができる。
【0026】
更に他の構成例として、姿勢差分算出手段は、動き・姿勢情報取得手段で取得した入力装置の姿勢と所定の基準姿勢との差分として、入力装置の所定軸を中心とした回転方向に対する差分を算出するようにしてもよい。
【0027】
上記構成例によれば、例えば角速度データを利用することで、入力装置の姿勢の変化をより正確に検出することができ、きめ細かい演奏を行うことが可能となる。
【0028】
更に他の構成例として、姿勢差分算出手段は、入力装置の所定軸を中心とする回転方向にかかる回転量、および、当該所定軸に直行する軸を中心とする回転方向に係る回転量に基づいて、所定の基準姿勢との差分を算出するようにしてもよい。
【0029】
上記構成例によれば、例えば、入力装置を振る操作を行った際の手首のねじれによる入力装置の姿勢変化を反映して、基準姿勢との姿勢の差分を算出することが可能となる。
【0030】
更に他の構成例として、所定軸は、入力装置が振られた方向を判定するための軸であってもよい。
【0031】
上記構成例によれば、入力装置が振られた方向に応じて音を鳴らすことが可能となる。
【0032】
更に他の構成例として、姿勢差分算出手段は、所定軸とは異なる軸を中心とする回転方向にかかる回転量を所定軸を中心とした回転方向にかかる回転量として変換し、所定軸にかかる回転量と当該変換した回転量とに基づいて差分を算出してもよい。
【0033】
上記構成例によれば、例えば、入力装置を振る操作を行った際の手首のねじれによる入力装置の姿勢変化を反映して、基準姿勢との姿勢の差分を算出することが可能となる。
【0034】
更に他の構成例として、動き・姿勢情報取得手段、姿勢差分算出手段、演奏手段は繰り返し行われ、所定の基準姿勢は、動き・姿勢情報取得手段で前回に取得した入力装置の動きまたは姿勢の情報に基づく姿勢であってもよい
【0035】
更に他の構成例として、演奏手段は、姿勢差分算出手段で算出された姿勢の差分の累積を算出する差分累積手段を含み、差分累積手段で算出された姿勢の差分の累積に基づき音楽の演奏を行うようにしてもよい。
【0036】
上記構成例によれば、入力装置の姿勢に応じて音を鳴らすことができ、きめ細やかな演奏操作が可能となる。
【0037】
更に他の構成例として、動き・姿勢センサは、加速度センサまたは/および角速度センサであってもよい。
【0038】
上記構成例によれば、入力装置の動きや姿勢をより簡便に、かつ、的確に検出することができる。
【0039】
本発明にかかる音楽演奏装置は、自身の動きまたは姿勢を検出する動き・姿勢センサを備えた入力装置からの入力に基づいて音楽を演奏する音楽演奏装置であって、動き・姿勢情報取得手段と、姿勢差分算出手段と、演奏手段とを備える。動き・姿勢情報取得手段は、動き・姿勢センサで検出した入力装置の動きまたは姿勢の情報を取得する。姿勢差分算出手段は、所定の基準姿勢と、動き・姿勢情報取得手段で取得した入力装置の姿勢との差分を算出する。演奏手段は、姿勢差分算出手段で算出された姿勢の差分に応じた所定の音を鳴らすことで音楽の演奏を行う。
【0040】
本発明にかかる音楽演奏システムは、自身の動きまたは姿勢を検出する動き・姿勢センサを備えた入力装置からの入力に基づいて音楽を演奏する音楽演奏システムであって、動き・姿勢情報取得手段と、姿勢差分算出手段と、演奏手段とを備える。動き・姿勢情報取得手段は、動き・姿勢センサで検出した入力装置の動きまたは姿勢の情報を取得する。姿勢差分算出手段は、所定の基準姿勢と、動き・姿勢情報取得手段で取得した入力装置の姿勢との差分を算出する。演奏手段は、姿勢差分算出手段で算出された姿勢の差分に応じた所定の音を鳴らすことで音楽の演奏を行う。
【0041】
本発明にかかる音楽演奏方法は、自身の動きまたは姿勢を検出する動き・姿勢センサを備えた入力装置からの入力に基づいて音楽を演奏する音楽演奏装置で用いられる音楽演奏方法であって、動き・姿勢情報取得ステップと、姿勢差分算出ステップと、演奏ステップとを備える。動き・姿勢情報取得ステップは、動き・姿勢センサで検出した入力装置の動きまたは姿勢の情報を取得する。姿勢差分算出ステップは、所定の基準姿勢と、動き・姿勢情報取得ステップで取得した入力装置の姿勢との差分を算出する。演奏ステップは、姿勢差分算出ステップで算出された姿勢の差分に応じた所定の音を鳴らすことで音楽の演奏を行う。
【発明の効果】
【0042】
本発明によれば、入力装置自体の動きや姿勢に応じて多彩な音を鳴らすことができ、きめ細やかな演奏操作が可能となる。
【図面の簡単な説明】
【0043】
【図1】ゲームシステム1の外観図
【図2】ゲーム装置3の構成を示すブロック図
【図3】入力装置8の外観構成を示す斜視図
【図4】コントローラ5の外観構成を示す斜視図
【図5】コントローラ5の内部構造を示す図
【図6】コントローラ5の内部構造を示す図
【図7】入力装置8の構成を示すブロック図
【図8】ゲーム画像の一例
【図9】入力装置8の姿勢とハープ102の各弦との対応関係を説明するための図
【図10】入力装置の動かし方の一例
【図11】入力装置の動かし方の一例
【図12】ゲーム装置3のメインメモリに記憶される主なデータを示す図
【図13】ゲーム処理の全体処理の詳細を示すフローチャート
【図14】ステップS4で示したハープモード処理の詳細を示すフローチャート
【図15】ステップS15で示した角速度算出処理の詳細を示すフローチャート
【図16】ステップS18で示した音声出力処理の詳細を示すフローチャート
【図17】次の弦の音を鳴らすための閾値について説明するための図
【図18】他の実施形態での角速度算出処理を示すフローチャート
【図19】次の弦の音を鳴らすための閾値の変化について説明するための図
【図20】入力装置の動きの大きさと閾値の変化の関係を示す図
【図21】入力装置の動きの大きさと閾値の変化の関係を示す図
【図22】初期位置の別の例を示す図
【発明を実施するための形態】
【0044】
以下、本発明の実施の形態について、図面を参照して説明する。尚、この実施例により本発明が限定されるものではない。
【0045】
本発明は、入力装置自体を動かすことで所定の音を出力させる技術である。詳細は後述するが、所定の時点における入力装置の姿勢を基準姿勢として定義し、それ以降の入力装置の姿勢と、当該基準姿勢との差分に応じて、複数の音列を使い分けて出力する、つまり、差分に応じた音を出力するという技術である。
【0046】
[ゲームシステムの全体構成]
図1を参照して、本発明の一実施形態に係る情報処理装置に一例であるゲーム装置を含むゲームシステム1について説明する。図1は、ゲームシステム1の外観図である。以下、据置型のゲーム装置を一例にして、本実施形態のゲーム装置およびゲームプログラムについて説明する。図1において、ゲームシステム1は、テレビジョン受像器(以下、単に「テレビ」と記載する)2、ゲーム装置3、光ディスク4、入力装置8、およびマーカ部6を含む。本システムは、入力装置8を用いたゲーム操作に基づいてゲーム装置3でゲーム処理を実行するものである。
【0047】
ゲーム装置3には、当該ゲーム装置3に対して交換可能に用いられる情報記憶媒体の一例である光ディスク4が脱着可能に挿入される。光ディスク4には、ゲーム装置3において実行されるためのゲームプログラムが記憶されている。ゲーム装置3の前面には光ディスク4の挿入口が設けられている。ゲーム装置3は、挿入口に挿入された光ディスク4に記憶されているゲームプログラムを読み出して実行することによってゲーム処理を実行する。
【0048】
ゲーム装置3には、表示装置の一例であるテレビ2が接続コードを介して接続される。テレビ2は、ゲーム装置3において実行されるゲーム処理の結果得られるゲーム画像を表示する。また、テレビ2の画面の周辺(図1では画面の上側)には、マーカ部6が設置される。マーカ部6は、その両端に2つのマーカ6Rおよび6Lを備えている。マーカ6R(マーカ6Lも同様)は、具体的には1以上の赤外LEDであり、テレビ2の前方に向かって赤外光を出力する。マーカ部6はゲーム装置3に接続されており、ゲーム装置3はマーカ部6が備える各赤外LEDの点灯を制御することが可能である。
【0049】
入力装置8は、自機に対して行われた操作の内容を示す操作データをゲーム装置3に与えるものである。本実施形態では、入力装置8はコントローラ5とジャイロセンサユニット7とを含む。詳細は後述するが、入力装置8は、コントローラ5に対してジャイロセンサユニット7が着脱可能に接続されている構成である。コントローラ5とゲーム装置3とは無線通信によって接続される。本実施形態では、コントローラ5とゲーム装置3との間の無線通信には例えばBluetooth(ブルートゥース)(登録商標)の技術が用いられる。なお、他の実施形態においてはコントローラ5とゲーム装置3とは有線で接続されてもよい。
【0050】
[ゲーム装置3の内部構成]
次に、図2を参照して、ゲーム装置3の内部構成について説明する。図2は、ゲーム装置3の構成を示すブロック図である。ゲーム装置3は、CPU10、システムLSI11、外部メインメモリ12、ROM/RTC13、ディスクドライブ14、およびAV−IC15等を有する。
【0051】
CPU10は、光ディスク4に記憶されたゲームプログラムを実行することによってゲーム処理を実行するものであり、ゲームプロセッサとして機能する。CPU10は、システムLSI11に接続される。システムLSI11には、CPU10の他、外部メインメモリ12、ROM/RTC13、ディスクドライブ14およびAV−IC15が接続される。システムLSI11は、それに接続される各構成要素間のデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。システムLSI11の内部構成については後述する。揮発性の外部メインメモリ12は、光ディスク4から読み出されたゲームプログラムや、フラッシュメモリ17から読み出されたゲームプログラム等のプログラムを記憶したり、各種データを記憶したりするものであり、CPU10のワーク領域やバッファ領域として用いられる。ROM/RTC13は、ゲーム装置3の起動用のプログラムが組み込まれるROM(いわゆるブートROM)と、時間をカウントするクロック回路(RTC:Real Time Clock)とを有する。ディスクドライブ14は、光ディスク4からプログラムデータやテクスチャデータ等を読み出し、後述する内部メインメモリ11eまたは外部メインメモリ12に読み出したデータを書き込む。
【0052】
また、システムLSI11には、入出力プロセッサ(I/Oプロセッサ)11a、GPU(Graphics Processor Unit)11b、DSP(Digital Signal Processor)11c、VRAM11d、および内部メインメモリ11eが設けられる。図示は省略するが、これらの構成要素11a〜11eは内部バスによって互いに接続される。
【0053】
GPU11bは、描画手段の一部を形成し、CPU10からのグラフィクスコマンド(作画命令)に従って画像を生成する。VRAM11dは、GPU11bがグラフィクスコマンドを実行するために必要なデータ(ポリゴンデータやテクスチャデータ等のデータ)を記憶する。画像が生成される際には、GPU11bは、VRAM11dに記憶されたデータを用いて画像データを作成する。
【0054】
DSP11cは、オーディオプロセッサとして機能し、内部メインメモリ11eや外部メインメモリ12に記憶されるサウンドデータや音波形(音色)データを用いて、音声データを生成する。
【0055】
上述のように生成された画像データおよび音声データは、AV−IC15によって読み出される。AV−IC15は、読み出した画像データをAVコネクタ16を介してテレビ2に出力するとともに、読み出した音声データを、テレビ2に内蔵されるスピーカ2aに出力する。これによって、画像がテレビ2に表示されるとともに音がスピーカ2aから出力される。
【0056】
入出力プロセッサ11aは、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ11aは、フラッシュメモリ17、無線通信モジュール18、無線コントローラモジュール19、拡張コネクタ20、およびメモリカード用コネクタ21に接続される。無線通信モジュール18にはアンテナ22が接続され、無線コントローラモジュール19にはアンテナ23が接続される。
【0057】
入出力プロセッサ11aは、無線通信モジュール18およびアンテナ22を介してネットワークに接続し、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。入出力プロセッサ11aは、定期的にフラッシュメモリ17にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データが有る場合には、無線通信モジュール18およびアンテナ22を介してネットワークに送信する。また、入出力プロセッサ11aは、他のゲーム装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ22および無線通信モジュール18を介して受信し、受信したデータをフラッシュメモリ17に記憶する。CPU10はゲームプログラムを実行することにより、フラッシュメモリ17に記憶されたデータを読み出してゲームプログラムで利用する。フラッシュメモリ17には、ゲーム装置3と他のゲーム装置や各種サーバとの間で送受信されるデータの他、ゲーム装置3を利用してプレイしたゲームのセーブデータ(ゲームの結果データまたは途中データ)が記憶されてもよい。
【0058】
また、入出力プロセッサ11aは、コントローラ5から送信される操作データをアンテナ23および無線コントローラモジュール19を介して受信し、内部メインメモリ11eまたは外部メインメモリ12のバッファ領域に記憶(一時記憶)する。
【0059】
さらに、入出力プロセッサ11aには、拡張コネクタ20およびメモリカード用コネクタ21が接続される。拡張コネクタ20は、USBやSCSIのようなインターフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したり、有線の通信用コネクタを接続することによって無線通信モジュール18に替えてネットワークとの通信を行ったりすることができる。メモリカード用コネクタ21は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ11aは、拡張コネクタ20やメモリカード用コネクタ21を介して外部記憶媒体にアクセスし、外部記憶媒体にデータを保存したり、外部記憶媒体からデータを読み出したりすることができる。
【0060】
ゲーム装置3には、電源ボタン24、リセットボタン25、およびイジェクトボタン26が設けられる。電源ボタン24およびリセットボタン25は、システムLSI11に接続される。電源ボタン24がオンされると、ゲーム装置3の各構成要素に対して、図示しないACアダプタを経て電源が供給される。リセットボタン25が押されると、システムLSI11は、ゲーム装置3の起動プログラムを再起動する。イジェクトボタン26は、ディスクドライブ14に接続される。イジェクトボタン26が押されると、ディスクドライブ14から光ディスク4が排出される。
【0061】
[入力装置8の構成]
次に、図3〜図6を参照して、入力装置8について説明する。図3は、入力装置8の外観構成を示す斜視図である。図4は、コントローラ5の外観構成を示す斜視図である。図3は、コントローラ5の上側後方から見た斜視図であり、図4は、コントローラ5を下側前方から見た斜視図である。
【0062】
図3および図4において、コントローラ5は、例えばプラスチック成型によって形成されたハウジング31を有している。ハウジング31は、その前後方向(図3に示すZ軸方向)を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。プレイヤは、コントローラ5に設けられたボタンを押下すること、および、コントローラ5自体を動かしてその位置や姿勢を変えることによってゲーム操作を行うことができる。
【0063】
ハウジング31には、複数の操作ボタンが設けられる。図3に示すように、ハウジング31の上面には、十字ボタン32a、1番ボタン32b、2番ボタン32c、Aボタン32d、マイナスボタン32e、ホームボタン32f、プラスボタン32g、および電源ボタン32hが設けられる。本明細書では、これらのボタン32a〜32hが設けられるハウジング31の上面を「ボタン面」と呼ぶことがある。一方、図4に示すように、ハウジング31の下面には凹部が形成されており、当該凹部の後面側傾斜面にはBボタン32iが設けられる。これらの各操作ボタン32a〜32iには、ゲーム装置3が実行するゲームプログラムに応じた機能が適宜割り当てられる。また、電源ボタン32hは遠隔からゲーム装置3本体の電源をオン/オフするためのものである。ホームボタン32fおよび電源ボタン32hは、その上面がハウジング31の上面に埋没している。これによって、プレイヤがホームボタン32fまたは電源ボタン32hを誤って押下することを防止することができる。
【0064】
ハウジング31の後面にはコネクタ33が設けられている。コネクタ33は、コントローラ5に他の機器(例えば、ジャイロセンサユニット7や他のコントローラ)を接続するために利用される。また、ハウジング31の後面におけるコネクタ33の両側には、上記他の機器が容易に離脱することを防止するために係止穴33aが設けられている。
【0065】
ハウジング31上面の後方には複数(図3では4つ)のLED34a〜34dが設けられる。ここで、コントローラ5には、他のメインコントローラと区別するためにコントローラ種別(番号)が付与される。各LED34a〜34dは、コントローラ5に現在設定されている上記コントローラ種別をプレイヤに通知したり、コントローラ5の電池残量をプレイヤに通知したりする等の目的で用いられる。具体的には、コントローラ5を用いてゲーム操作が行われる際、上記コントローラ種別に応じて複数のLED34a〜34dのいずれか1つが点灯する。
【0066】
また、コントローラ5は撮像情報演算部35(図6)を有しており、図4に示すように、ハウジング31前面には撮像情報演算部35の光入射面35aが設けられる。光入射面35aは、マーカ6Rおよび6Lからの赤外光を少なくとも透過する材質で構成される。
【0067】
ハウジング31上面における1番ボタン32bとホームボタン32fとの間には、コントローラ5に内蔵されるスピーカ49(図5)からの音を外部に放出するための音抜き孔31aが形成されている。
【0068】
次に、図5および図6を参照して、コントローラ5の内部構造について説明する。図5および図6は、コントローラ5の内部構造を示す図である。なお、図5は、コントローラ5の上筐体(ハウジング31の一部)を外した状態を示す斜視図である。図6は、コントローラ5の下筐体(ハウジング31の一部)を外した状態を示す斜視図である。図6に示す斜視図は、図5に示す基板30を裏面から見た斜視図となっている。
【0069】
図5において、ハウジング31の内部には基板30が固設されており、当該基板30の上主面上に各操作ボタン32a〜32h、各LED34a〜34d、加速度センサ37、アンテナ45、およびスピーカ49等が設けられる。これらは、基板30等に形成された配線(図示せず)によってマイクロコンピュータ(Micro Computer:マイコン)42(図6参照)に接続される。本実施形態では、加速度センサ37は、X軸方向に関してコントローラ5の中心からずれた位置に配置されている。これによって、コントローラ5をZ軸回りに回転させたときのコントローラ5の動きが算出しやすくなる。また、加速度センサ37は、長手方向(Z軸方向)に関してコントローラ5の中心よりも前方に配置されている。また、無線モジュール44(図6)およびアンテナ45によって、コントローラ5がワイヤレスコントローラとして機能する。
【0070】
一方、図6において、基板30の下主面上の前端縁に撮像情報演算部35が設けられる。撮像情報演算部35は、コントローラ5の前方から順に赤外線フィルタ38、レンズ39、撮像素子40、および画像処理回路41を備えている。これらの部材38〜41はそれぞれ基板30の下主面に取り付けられる。
【0071】
さらに、基板30の下主面上には、上記マイコン42およびバイブレータ48が設けられている。バイブレータ48は、例えば振動モータやソレノイドであり、基板30等に形成された配線によってマイコン42と接続される。マイコン42の指示によりバイブレータ48が作動することによってコントローラ5に振動が発生する。これによって、コントローラ5を把持しているプレイヤの手にその振動が伝達される、いわゆる振動対応ゲームを実現することができる。本実施形態では、バイブレータ48は、ハウジング31のやや前方寄りに配置される。つまり、バイブレータ48がコントローラ5の中心よりも端側に配置することによって、バイブレータ48の振動によりコントローラ5全体を大きく振動させることができる。また、コネクタ33は、基板30の下主面上の後端縁に取り付けられる。なお、図5および図6に示す他、コントローラ5は、マイコン42の基本クロックを生成する水晶振動子、スピーカ49に音声信号を出力するアンプ等を備えている。
【0072】
図7は、入力装置8(コントローラ5およびジャイロセンサユニット7)の構成を示すブロック図である。コントローラ5は、操作部32(各操作ボタン32a〜32i)、コネクタ33、撮像情報演算部35、通信部36、および加速度センサ37を備えている。コントローラ5は、自機に対して行われた操作内容を示すデータを操作データとしてゲーム装置3へ送信するものである。
【0073】
操作部32は、上述した各操作ボタン32a〜32iを含み、各操作ボタン32a〜32iに対する入力状態(各操作ボタン32a〜32iが押下されたか否か)を示す操作ボタンデータを通信部36のマイコン42へ出力する。
【0074】
撮像情報演算部35は、撮像手段が撮像した画像データを解析してその中で輝度が高い領域を判別してその領域の重心位置やサイズなどを算出するためのシステムである。撮像情報演算部35は、例えば最大200フレーム/秒程度のサンプリング周期を有するので、比較的高速なコントローラ5の動きでも追跡して解析することができる。
【0075】
撮像情報演算部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の向きや位置を算出することができる。
【0076】
なお、他の実施形態においては、コントローラ5は画像処理回路41を備えていない構成であってもよく、撮像画像自体がコントローラ5からゲーム装置3へ送信されてもよい。このとき、ゲーム装置3は、画像処理回路41と同様の機能を有する回路あるいはプログラムを有しており、上記マーカ座標を算出するようにしてもよい。
【0077】
加速度センサ37は、コントローラ5の加速度(重力加速度を含む)を検出する、すなわち、コントローラ5に加わる力(重力を含む)を検出する。加速度センサ37は、当該加速度センサ37の検出部に加わっている加速度のうち、センシング軸方向に沿った直線方向の加速度(直線加速度)の値を検出する。例えば、2軸以上の多軸加速度センサの場合には、加速度センサの検出部に加わっている加速度として、各軸に沿った成分の加速度をそれぞれ検出する。例えば、3軸または2軸の加速度センサは、アナログ・デバイセズ株式会社(Analog Devices, Inc.)またはSTマイクロエレクトロニクス社(STMicroelectronics N.V.)から入手可能である種類のものでもよい。なお、加速度センサ37は、例えば静電容量式の加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。
【0078】
本実施形態では、加速度センサ37は、コントローラ5を基準とした上下方向(図3に示すY軸方向)、左右方向(図3に示すX軸方向)および前後方向(図3に示すZ軸方向)の3軸方向に関してそれぞれ直線加速度を検出する。加速度センサ37は、各軸に沿った直線方向に関する加速度を検出するものであるため、加速度センサ37からの出力は3軸それぞれの直線加速度の値を表すものとなる。すなわち、検出された加速度は、入力装置8(コントローラ5)を基準に設定されるXYZ座標系(コントローラ座標系)における3次元のベクトル(ax,ay,az)として表される。以下では、加速度センサ37によって検出される3軸に関する各加速度値を各成分とするベクトルを加速度ベクトルと呼ぶ。
【0079】
加速度センサ37が検出した加速度を示すデータ(加速度データ)は、通信部36へ出力される。なお、加速度センサ37が検出した加速度は、コントローラ5自体の向き(傾斜角度)や動きに対応して変化するので、ゲーム装置3は加速度データを用いてコントローラ5の向きや動きを算出することができる。本実施形態では、ゲーム装置3は、加速度データに基づいてコントローラ5の姿勢を判断する。
【0080】
加速度センサ37が検出した加速度(加速度ベクトル)を示すデータ(加速度データ)は、通信部36へ出力される。本実施形態において、加速度センサ37は、コントローラ5の傾斜角度を判断するためのデータを出力するセンサとして用いられる。
【0081】
なお、加速度センサ37から出力される加速度の信号に基づいて、ゲーム装置3のプロセッサ(例えばCPU10)またはコントローラ5のプロセッサ(例えばマイコン42)等のコンピュータが処理を行うことによって、コントローラ5に関するさらなる情報を推測または算出(判定)することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。例えば、加速度センサ37を搭載するコントローラ5が静止状態であることを前提としてコンピュータ側の処理が実行される場合(すなわち、加速度センサによって検出される加速度が重力加速度のみであるとして処理が実行される場合)、コントローラ5が現実に静止状態であれば、検出された加速度に基づいてコントローラ5の姿勢が重力方向に対して傾いているか否かまたはどの程度傾いているかを知ることができる。具体的には、加速度センサ37の検出軸が鉛直下方向を向いている状態を基準としたとき、1G(重力加速度)がかかっているか否かによって、コントローラ5が基準に対して傾いているか否かを知ることができるし、その大きさによって基準に対してどの程度傾いているかも知ることができる。また、多軸の加速度センサ37の場合には、さらに各軸の加速度の信号に対して処理を施すことによって、重力方向に対してコントローラ5がどの程度傾いているかをより詳細に知ることができる。この場合において、プロセッサは、加速度センサ37からの出力に基づいてコントローラ5の傾斜角度を算出してもよいし、当該傾斜角度を算出せずに、コントローラ5の傾斜方向を算出するようにしてもよい。このように、加速度センサ37をプロセッサと組み合わせて用いることによって、コントローラ5の傾斜角度または姿勢を判定することができる。
【0082】
一方、コントローラ5が動的な状態(コントローラ5が動かされている状態)であることを前提とする場合には、加速度センサ37は重力加速度に加えてコントローラ5の動きに応じた加速度を検出するので、検出された加速度から重力加速度の成分を所定の処理により除去することによってコントローラ5の動き方向を知ることができる。また、コントローラ5が動的な状態であることを前提とする場合であっても、検出された加速度から、加速度センサの動きに応じた加速度の成分を所定の処理により除去することによって、重力方向に対するコントローラ5の傾きを知ることが可能である。なお、他の実施例では、加速度センサ37は、内蔵の加速度検出手段で検出された加速度信号をマイコン42に出力する前に当該加速度信号に対して所定の処理を行うための、組込み式の処理装置または他の種類の専用の処理装置を備えていてもよい。組込み式または専用の処理装置は、例えば、加速度センサ37が静的な加速度(例えば、重力加速度)を検出するために用いられる場合、加速度信号を傾斜角(あるいは、他の好ましいパラメータ)に変換するものであってもよい。
【0083】
通信部36は、マイコン42、メモリ43、無線モジュール44、およびアンテナ45を含んでいる。マイコン42は、処理を行う際にメモリ43を記憶領域として用いながら、マイコン42が取得したデータをゲーム装置3へ無線送信する無線モジュール44を制御する。また、マイコン42はコネクタ33に接続されている。ジャイロセンサユニット7から送信されてくるデータは、コネクタ33を介してマイコン42に入力される。
【0084】
ジャイロセンサユニット7は、コネクタ706、マイコン54、ジャイロセンサ55を備えている。上述のように、ジャイロセンサユニット7は、3軸(本実施形態では、XYZ軸)周りの角速度を検出し、検出した角速度を示すデータ(角速度データ)をコントローラ5へ送信する。
【0085】
各ジャイロセンサ55で検出された角速度を示すデータは、マイコン54に出力される。したがって、マイコン54には、XYZ軸の3軸回りの角度速度を示すデータが入力されることになる。マイコン54は、上記3軸回りの角速度を示すデータを角速度データとしてプラグ53を介してコントローラ5へ送信する。なお、マイコン54からコントローラ5への送信は所定の周期毎に逐次行われるが、ゲームの処理は1/60秒を単位として(1フレーム時間として)行われることが一般的であるので、この時間以下の周期で送信を行うことが好ましい。
【0086】
また、本実施形態では、後述する姿勢算出処理における計算を容易にする目的で、各ジャイロセンサ55および56が角速度を検出する3つの軸は、加速度センサ37が加速度を検出する3つの軸(XYZ軸)と一致するように設定される。ただし、他の実施形態においては、各ジャイロセンサ56および57が角速度を検出する3つの軸と、加速度センサ37が加速度を検出する3つの軸とは一致しなくてもよい。
【0087】
[ゲーム処理の概要]
次に、図8〜図11を参照して、本実施形態におけるゲーム処理の概要を説明する。本実施形態で想定するゲームは、入力装置8自体を動かすことで仮想空間内のプレイヤオブジェクトを操作するゲームである。そして、本実施形態で説明するゲーム処理は、プレイヤオブジェクトにハープを演奏する動作を行わせる処理である。
【0088】
図8は、プレイヤオブジェクトがハープを演奏する場合のゲーム画像の一例である。図8に示すゲーム画像においては、プレイヤオブジェクト101がハープ102を持っている。本実施形態では、当該ハープ102の弦は12本あり、12音を鳴らすことが可能となっている。また、仮想空間内におけるプレイヤオブジェクト101の前方に演奏対象オブジェクト103が存在している。当該演奏対象オブジェクト103は花の形状を有するオブジェクトである。そして、本ゲームでは、プレイヤオブジェクト101が演奏対象オブジェクト103の前でハープ102を演奏すると、当該ハープ102から音が発せられると共に、演奏対象オブジェクト103からも音が発せられる。また、演奏対象オブジェクト103は図8で示すものの他にも複数の種類が存在し、演奏対象オブジェクト103毎に発せられる音色は異なっている(例えば、演奏対象オブジェクト103によっては声が発せられることもある)。
【0089】
次に、上記プレイヤオブジェクト101がハープ102を演奏する場合の操作について説明する。まず、プレイヤオブジェクト101がハープ102を構えていない状態において、十字ボタン32aの”上”を押すと、上記図8のように、プレイヤオブジェクト101がハープ102を左腕で構えた状態となる。この状態では、プレイヤオブジェクト101の右手はハープ102の弦の位置にある。また、この際、操作ガイド104も画面に表示される。そして、プレイヤは、好ましくは、プレイヤオブジェクト101と同じような姿勢(ハープ102を左腕で構えているような姿勢)をとり、Aボタン32dを押しながら入力装置8を把持した右手(このときの入力装置8の姿勢については後述)を動かしてハープの弦をつま弾くような動作を(入力装置8を振る動作)行う。すると、入力装置8の動き(姿勢)に応じて、プレイヤオブジェクト101の右腕がハープ102の弦の部分内を移動し、ハープ102から音が発せられる。つまり、入力装置8自体を動かすことで、ハープ102を演奏することができる。このとき、12音のうちのどの音が発せられるかは、入力装置8の姿勢によって決まる。なお、本実施形態では、Aボタン32dが押下されているときだけ音が鳴る。そのため、Aボタン32dを押下しないまま入力装置8を動かしても、ハープ102は鳴らない。但し、プレイヤオブジェクト101の右腕の移動は行われる。つまり、弦に触れずに右腕だけを動かしているような動作となる。
【0090】
ここで、図9を用いて、入力装置8の姿勢と、ハープ102の各弦との対応関係について説明する。ここでは演奏するときの姿勢として、ハープを左手で構え、右手を動かして弦を弾くような姿勢を想定して説明する。プレイヤが実際に行う姿勢や動きのイメージとしては、図9(A)で示すように、プレイヤが左手でハープを構えていることを想定して、左腕を自身の左方に向けて伸ばす。右手では、入力装置8の上面が上(実空間の座標系のY軸正方向)を向くようにして、入力装置8の略下半分を把持する。そして、入力装置8の先端(ハウジング31前面、光入射面35aのある側)で、仮想的なハープを弾くような動きを行う(入力装置8を基準としたローカル座標系におけるY軸回りの回転運動ともいえる)ことで、ハープの演奏を行うとする。図9(B)は、当該動きに伴う入力装置8の姿勢変化と、ハープの12本の弦との対応関係を示す図である。ここでは、ハープ102を構える操作が行われたときのプレイヤオブジェクト101の右手の初期位置は、ハープ102の一番端の弦(図9(B)では、一番右端の1番の弦)の位置となっている。そして、プレイヤがAボタン32dを押しながら、この位置を起点として入力装置8自体をプレイヤから見て左右方向(実空間座標におけるX軸方向にほぼ沿った方向、ローカル座標系におけるY軸回りの回転)に動かすと、当該図9(B)で示したように、上記ハープ102を構えたときにおける入力装置8の姿勢(初期位置の姿勢)から徐々に入力装置8の姿勢が変化していくことになる。この変化した姿勢(初期位置との姿勢の差分)に応じてハープ102の各弦の音が鳴らされる。なお、詳細は後述するが、本実施形態では、この変化(振り動作)を主に角速度の変化として捉えて各種処理を行う。
【0091】
ここで、本実施形態のゲーム処理では、上記ハープ102の演奏にかかる入力装置の基本的な動き(振り方)としては、図10に示すような動きを原則として想定している。すなわち、入力装置8の姿勢が、入力装置8の上面(十字キー32a等のある面)を上に向けた姿勢であり、当該上面が地面と水平な状態となる姿勢であることを前提とする(換言すれば、ハープ102の弦の部分に対して、入力装置8の長手方向が垂直となる姿勢)。そして、このような水平な姿勢のままで、手首のスナップをきかせて左右方向(X軸方向に沿った移動・Y軸回りの回転)に振られることを前提としている(手首、あるいは肘を支点とした回転運動となる)。しかしながら、実際に振り動作が行われる局面を考えると、入力装置8の姿勢に「ねじれ」が発生することが考えられる。例えば、振り始めは入力装置8の上面が上を向いているが、振り終わりの頃には、入力装置8の上面が左側を向いている、つまり、入力装置8の姿勢が振り始めのときから90°傾いた姿勢になってしまうような場合も考えられる。入力装置8がこのような姿勢となると、プレイヤとしては入力装置8を左右方向に沿って振っているつもりであっても、入力装置8自体を基準として考えると、図11に示すように、上下方向(Y軸方向に沿った移動・X軸回りの回転)に沿った振りが発生している(検出される)ことになる。そのため、入力装置8が図10のように水平な姿勢を維持したまま左右方向に沿って振られることのみを前提としてハープの各弦の音を鳴らす処理を行う場合、入力装置8がねじれた状態において左右方向に沿った振りが正確に検出できず、プレイヤの操作に沿ったハープ102の音が鳴らないということが考えられる。そこで、本実施形態のゲーム処理では、このような「ねじれ」を考慮した処理も行っている。具体的には、入力装置8がねじれた姿勢であるか否かを判定して、ねじれていなければ、左右方向に沿った振りをそのまま利用して入力装置の姿勢を算出し、この姿勢に応じてハープ102の各弦の音を鳴らす。一方、ねじれている状態のときは、上下方向に沿った振りを左右方向に沿った振りとして変換してから、入力装置8の姿勢に応じてハープ102の各弦の音を鳴らす。すなわち、入力装置8の上面が上を向いている姿勢を基準として、右にねじれている場合は、入力装置8の座標系における上方向への振りを左方向への振りとして変換し、下方向への振りは右方向への振りとして変換する。また、左にねじれている場合は(図11のような状態)、これとは逆に、入力装置8の座標系における上方向への振りを右方向への振りとして変換し、下方向への振りは左方向への振りとして変換する。つまり、入力装置8の上面が常に上を向いている姿勢を想定した場合の振り方向(Y軸を中心とした回転方向)に変換する処理を行う。このように、姿勢の「ねじれ」を考慮した処理を行うことで、プレイヤの行った動作と、この動作の結果としてハープ102から鳴る音とにズレや違和感が発生することを防ぐことが可能となる。
【0092】
次に、ゲーム装置3において行われるゲーム処理の詳細を説明する。まず、図12を参照して、ゲーム処理において用いられる主なデータについて説明する。なお、図12は、ゲーム装置3のメインメモリ(外部メインメモリ12または内部メインメモリ11e)に記憶される主なデータを示す図である。ゲーム装置3のメインメモリには、ゲームプログラム121、操作データ124、処理用データ128が記憶される。その他、メインメモリには、ゲームに登場する各種オブジェクトの画像データ等、ゲーム処理に必要な各種データが記憶される。
【0093】
ゲームプログラム121は、後述する図13のフローチャートの処理に対応するプログラムであり、このゲームプログラム121は、ハープモード処理プログラム123等によって構成される。
【0094】
操作データ124は、入力装置8からゲーム装置3へ送信されてくる操作データである。本実施形態では、入力装置8からゲーム装置3へ1/200秒に1回の割合で操作データが送信されるので、メインメモリに記憶される操作データ124はこの割合で更新される。本実施形態においては、メインメモリには、最新の(最後に取得された)操作データのみが記憶されればよい。
【0095】
操作データ124には、角速度データ125、加速度データ126、および操作ボタンデータ127等が含まれる。角速度データ125は、ジャイロセンサユニット7のジャイロセンサ55および56によって検出された角速度を示すデータである。ここでは、角速度データ125は、図3に示すXYZの3軸回りのそれぞれの角速度を示す。また、加速度データ126は、加速度センサ37によって検出された加速度(加速度ベクトル)を示すデータである。ここでは、加速度データ126は、図3に示すXYZの3軸の方向に関する加速度を各成分とする3次元の加速度ベクトルを示す。また、本実施形態においては、コントローラ5が静止している状態で加速度センサ37が検出する加速度ベクトルの大きさを"1"とする。つまり、加速度センサ37によって検出される重力加速度の大きさは"1"である。
【0096】
操作ボタンデータ127は、各操作ボタン32a〜32iに対する入力状態を示すデータである。
【0097】
処理用データ128は、ゲーム処理の差異に用いられる各種データであり、音列対応テーブルデータ129、音列データ130、累積データ131、各種オブジェクトデータ132、初期姿勢データ133、基準姿勢データ134等で構成される。
【0098】
音列対応テーブルデータ129は、上記演奏対象オブジェクト103が発する音列と、ハープ102の12音との対応付けを定義したテーブルのデータである。当該テーブルは、各演奏対象オブジェクト103毎に定義されている。
【0099】
音列データ130は、入力装置8の姿勢に基づいて決定されるデータであり、ある時点の入力装置8の姿勢が、ハープ102の12音のうちのどの音に該当しているのかを示すデータである。
【0100】
累積データ131は、上記音列データを算出するときに用いられるデータであり、フレーム毎に算出される角速度を累積したデータである。
【0101】
各種オブジェクトデータ132は、プレイヤオブジェクト101や演奏対象オブジェクト103等、ゲームにおいて登場する各種オブジェクトのデータである。
【0102】
初期姿勢データ133は、ゲーム処理の開始時に設定されるデータであり、後述するゲームの初期設定処理において設定される。当該データは、ゲーム処理中における入力装置8の姿勢を算出するために用いられる。
【0103】
基準姿勢データ134は、プレイヤオブジェクトに上記ハープ102を構えさせる操作(十字キー32aの上方向押下)が行われたときの入力装置8の姿勢を示すデータである。当該データは、ハープの演奏時において、ハープ102の12音のうちどの音を鳴らすかを決定するために利用される。
【0104】
次に、本実施形態におけるゲーム処理の具体的処理内容について説明する。図13は、ゲーム処理の全体的な処理の詳細を示すフローチャートである。なお、図13に示すフローチャートにおいては、ゲーム処理のうち、上記のようなプレイヤオブジェクトにハープを演奏させる処理を中心に説明し、本願発明とは直接関連しない他の処理については詳細な説明を省略する。また、図13のステップS2〜S6にかかる処理ループ、および、後述の図14におけるステップS13〜S20の処理ループは、1フレーム毎に繰り返されるものとする。
【0105】
まず、ステップS1において、初期設定処理が実行される。この処理では、ゲーム処理で用いられる各種データの初期化や、仮想ゲーム空間の構築と当該仮想ゲーム空間を仮想カメラで撮影して生成されるゲーム画像の表示等が実行される。更に、入力装置8の姿勢の初期化処理も実行される。当該入力装置8の姿勢の初期化処理では、例えば、以下のような処理が実行される。まず、入力装置8の上面側を下にして、水平な場所に置く旨の指示が画面に表示される。プレイヤがこの指示に従って入力装置8を水平な場所に置くと、このときの姿勢に基づいてジャイロセンサユニット7が初期化される。そして、このときの入力装置8の姿勢に基づいて入力装置の「初期姿勢」が決定され、初期姿勢データ133として設定される。ここでは、初期姿勢は、入力装置8の上面側が上を向いている姿勢(つまり、上記入力装置を置いたときの姿勢を反転させた姿勢)であるとする。以降のゲーム処理においては、当該初期姿勢との比較等によって、毎フレームの処理における入力装置8の姿勢等が算出される。
【0106】
初期設定処理が終われば、次に、ステップS2において、操作データ124が取得される。次に、ステップS3において、操作データ124の操作ボタンデータ127が参照され、上述したようなハープを構えることを指示する操作が行われたか否かが判定される。例えば、本実施形態では、十字キー32aの上方向の押下が当該指示に割り当てられているとする。当該判定の結果、上キーが押されているときは(ステップS3でYES)、ステップS4において、次に説明するハープモード処理が実行される。一方、上キーが押されていないときは(ステップS3でNO)、ステップS5において、その他の各種ゲーム処理が適宜実行される。なお、他の実施形態では、ハープを構えることを指示する操作として、他のボタンが割り当てられても良いし、所定のボタンを押下すること以外の操作であっても良い。
【0107】
図14は、上記ステップS4で示したハープモード処理の詳細を示すフローチャートである。この処理は、プレイヤオブジェクト101にハープ102を演奏させるための処理である。まず、ステップS11において、入力装置8の現在の姿勢(以下、現在姿勢)が算出される。これは、例えば、操作データ124から得られる加速度データ126や角速度データ125、および、上記初期姿勢に基づいて算出される。そして、当該現在姿勢が、以下の処理で用いる「基準姿勢」として設定され、基準姿勢データ134として記憶される。
【0108】
次に、ステップS12において、上記図8で示したような操作ガイド104が画面に表示される。
【0109】
次に、ステップS13において、操作データ124が取得され、続くステップS14において、Bボタン32iが押下されているか否かが判定される。本実施形態においては、Bボタン32iの役割は、当該ハープモード処理を終了するためのボタンという役割を有している(つまり、ハープの演奏を止める)。当該判定の結果、Bボタン32iが押下されているときは(ステップS14でYES)、ステップS21において、操作ガイド104が画面から消去される。そして、ハープモード処理も終了する。
【0110】
一方、Bボタン32iが押下されていないときは(ステップS14でNO)、次に、ステップS15において、角速度算出処理が実行される。図15は、上記ステップS15で示した角速度算出処理の詳細を示すフローチャートである。まず、ステップS31で、入力装置8のねじれ量が算出される。この処理では、例えば、上記初期姿勢と現在姿勢とが比較されることで、初期姿勢に対するねじれ量が算出される。
【0111】
次に、ステップS32において、入力装置のねじれ量が所定値以上であるか否かが判定される。例えば、初期姿勢(上面側が地面と水平な状態の入力装置の姿勢)に比べて、Z軸回りに45°以上ねじれているか否かが判定される。当該判定の結果、ねじれ量が所定値以上ではないとき(ステップS32でNO)、ねじれは発生していない、すなわち、入力装置8は水平な状態の姿勢であると考えられるため、ステップS37において、入力装置8の座標系におけるY軸回りの角速度(以下、角速度ωy)が取得される。すなわち、上記図10で示したような振り動作にかかる角速度が取得される。また、この際、その回転方向(正負)についても判定される。その後、後述のステップS38に処理が進められる。
【0112】
一方、ステップS32の判定の結果、ねじれ量が所定値以上のときは(ステップS32でYES)、入力装置8は初期姿勢に対してねじれた姿勢となっていると考えられるため、次に、ステップS33において、X軸回りの角速度(以下、角速度ωx)が取得される。
【0113】
次に、ステップS34において、入力装置8のねじれが、右にねじれているか否かが判定される。その結果、右にねじれているときは(ステップS34でYES)、ステップS35において、入力装置8の座標系における上方向が、入力装置8が水平な姿勢のときのZX平面上における右方向に対応するように、ωxがωyとして変換される。
【0114】
一方、入力装置8が右にねじれていない、すなわち、左にねじれているときは(ステップS34でNO)、ステップS36において、入力装置8の座標系における上方向が、入力装置8が水平な姿勢のときのZX平面上における左方向に対応するように、ωxがωyとして変換される。
【0115】
次に、ステップS38において、累積データ131に、上記取得あるいは変換によって算出されたωyが合算される。累積データ131には、これまでのωyが累積されている。そして、上記算出されたωyが負の値であれば、累積データ131から減算され、正の値ならば累積データに加算されることになる。これにより、右方向に振られたか左方向に振られたかについて反映することができる。そして、この結果、当該累積データ131に基づいて、入力装置8の上面側が上を向いている状態を想定したときの入力装置8の姿勢が算出可能となる。以上で、角速度算出処理は終了する。
【0116】
図14に戻り、角速度算出処理が終われば、次に、ステップS16において、Aボタン32dが押下されているか否かが判定される。上記のように、本実施形態では、Aボタン32dが押下されているときのみハープ102の音を鳴らすため、ハープ102の音を鳴らすか否かを判定していることになる。当該判定の結果、Aボタン32dが押下されていないときは(ステップS16でNO)、ハープ102を鳴らす必要はないため、後述のステップS19に処理が進められる。
【0117】
一方、Aボタン32dが押下されているときは(ステップS16でYES)、次に、ステップS17において、操作データ124が参照されて、所定値以上の加速度が発生したか否かが判定される。つまり、入力装置8が、ある程度大きく振られたか否かが判定される。また、振り方向に関して、ハープ102の弦の並びに沿った方向(弦の並びに水平な軸方向)についての振り(加速度)が発生したか否かが判定される。上記図10の例で言うと、左右方向の振りであって、ある程度の大きさの加速度を有する振りが発生したか否かが判定される。これは、例えば、手ぶれなどの、入力装置8に発生した微細な動きについては無視して、ある程度大きな動きが発生したときのみ、ハープ102の音を鳴らすための判定処理である。当該判定の結果、所定値以上の加速度が発生していなければ(ステップS17でNO)、ハープ102の音を鳴らさずに、後述のステップS19に処理が進められる。
【0118】
一方、所定値以上の加速度が発生しているときは(ステップS17でYES)、ステップS18において、ハープの音を鳴らすための音声出力処理が実行される。図16は、上記ステップS18で示した音声出力処理の詳細を示すフローチャートである。まず、ステップS51において、上記基準姿勢と、上記合算したωyで示される入力姿勢との差分が算出される。更に、当該差分に基づいて、上記ハープ102の12音のいずれかに対応する音列データが決定される。つまり、基準姿勢に対する現在の入力装置の姿勢が、12段階で示される音列データの、どの段階に該当するかが決定される。
【0119】
次に、ステップS52において、今回算出された差分で示される入力装置8の姿勢が、前回音を鳴らしたときの姿勢から、次の弦の音を鳴らすための閾値を越える変化をしたか否かが判定される。例えば、図17を用いて説明すると、1本目の弦の音を鳴らした後、入力装置8の姿勢が2本目の弦に対応する姿勢にまで変化したか否かが判定される。つまり、一本目の弦を鳴らした後、角度Aとして示される閾値以上に姿勢が変化したか否かが判定される(換言すれば、当該閾値は、弦と弦の間の距離・間隔を示す概念である)。また、例えば、2本目の弦が鳴らされた後、角度Bとして示される閾値だけ入力装置8の姿勢が変化したか否かが判定される。なお、この判定は、前回音を鳴らしたときから今回のフレームまでに発生した角速度が上記閾値を越えたか否かで判定するようにしても良い(図17において、角度A、角度B、角度Cは同じ角度であるとする)。また、ここでは、1本目の弦→2本目の弦、の順で鳴らす場合で説明したが、逆方向についても同様に閾値を越えたか否かで判定される。なお、例えば、2本目の弦が鳴った後、3本目の弦の音が鳴る前に、逆方向に入力装置8を振るような場合は(つまり、小さな往復運動で2本目の弦のみを鳴らすような場合)は、上記閾値の判定とは別に、2本目の弦を鳴らした、3本目または1本目の弦の方向への角速度が発生した後、2本目の弦を鳴らしたときの姿勢に戻ったか否かも判定するようにして、2本目の音を適宜鳴らすようにすればよい。
【0120】
なお、上記閾値については、次のような判定手法を用いても良い。すなわち、常に1本目の弦の姿勢(基準姿勢)からの差分を算出し、この差分に基づいて音を鳴らすか否かを決定しても良い。上記図17の例でいうと、2本目の弦の音を鳴らすか否かは、基準姿勢(ここでは一本目の弦を鳴らすための姿勢)からの姿勢変化が、角度A+角度Bとして示される閾値以上か否かで判定する。また、3本目の弦の場合であれば、角度A+角度B+角度Cとして示される閾値以上か否かで判定すればよい。
【0121】
当該判定の結果、次の弦の音を鳴らすための閾値を越えていると判定されたときは(ステップS52でYES)、ステップS53において、音列対応テーブルデータ129が参照され、現在プレイヤオブジェクト101の前方に存在する演奏対象オブジェクト103に応じた音列対応テーブルが選択される。
【0122】
次に、ステップS54において、当該音列対応テーブルが参照され、上記12段階の音列のうちの1つを示す音列データ130に対応する音を示すデータが取得される。そして、当該選択された音(音列データ130)が出力される。その結果、入力装置8の姿勢に応じたハープ102の音が鳴り、併せて、演奏対象オブジェクト103からも音列データに対応する音が出力される。そして、音声出力処理は終了する。
【0123】
一方、上記ステップS52の判定の結果、閾値を越えていないと判定されたときは(ステップS52でNO)、上記ステップS53、S54の処理はスキップされ、音は鳴らないまま、音声出力処理は終了することになる。
【0124】
図14に戻り、次に、ステップS19において、プレイヤオブジェクト101の右腕が、上記角速度ωyに応じて移動される。このとき、Aボタンが押されていなければ、上記ステップS17〜S18の処理がスキップされることになるため、ハープ102等の音は鳴らずに、プレイヤオブジェクト101の右腕のみ移動することになる。一方、Aボタン32dが押されていれば、右腕の移動とともに音が鳴る。
【0125】
次に、ステップS20において、上記のような処理内容(プレイヤオブジェクト101の腕の移動等)を反映したゲーム画像が生成され、描画される。その後、上記ステップS13に戻り、Bボタン32iが押されるまで処理が繰り返される。以上で、ハープモード処理は終了する。
【0126】
図13に戻り、ハープモード処理が終了すれば、ステップS6において、ゲームの終了条件が満たされたか否かが判定され、条件が満たされていなければ(ステップS6でNO)、上記ステップS2に戻り処理が繰り返される。条件が満たされていれば(ステップS6でYES)、当該ゲーム処理が終了する。
【0127】
このように、本実施形態では、入力装置8自体を動かし、基準姿勢と現在姿勢との差分に応じて、ハープ102の12音のうちのいずれか1音を鳴らす処理を行っている(そのため、例えば、入力装置8を1方向に振ると、1本目から12本目の弦に向かって弾くような操作も可能となる)。これにより、入力装置8の細かい動きに応じた細かい演奏操作が可能となる。例えば、12本の弦があるハープ102において、12本全ての弦を順に鳴らす場合に、1〜5本目までの弦が鳴る速度(テンポ)と、6〜12目の弦が鳴るテンポを変化させるような操作が可能となる(前半と後半とで入力装置8を振る速度を変化させる)。また、1本目の弦から6本目の弦まで弾いた後、逆方向に戻る、つまり、6本目の弦から1本目の弦に向かって弾くような細やかな操作も可能となる。
【0128】
なお、上記角速度算出処理に関しては、上述のような処理の他、例えば、以下のような処理で算出しても良い。図18は、角速度算出処理の他の実施形態を示すフローチャートである。この処理では、X軸回りの角速度とY軸回りの角速度とを合成することで、音列データ130の決定の基となる角速度を求めている。このとき、入力装置8のねじれ量に応じて、X軸回りの角速度とY軸回りの角速度の合成比率を変化させて、角速度を合成する。
【0129】
図18において、まず、ステップS71で、入力装置8のねじれ量が算出される。この処理は、上記ステップS31と同様の処理である。
【0130】
次に、ステップS72において、上記算出されたねじれ量に応じて、ωy(Y軸回りの角速度)とωx(X軸回りの角速度)との合成比率が設定される。例えば、入力装置8の上面側が上を向いている状態をねじれ量0とし、入力装置8の上面側が右または左を向いている状態(90°傾いた状態)をねじれ量100とする。そして、ねじれ量が0の場合は、ωyとωxの合成比率は「100%:0%」のように設定される。また、ねじれ量が100であれば、逆に、ωyとωxの合成比率は「0%:100%」に設定される。また、ねじれ量が40の場合は、ωyとωxの合成比率は「60%:40%」に設定される。
【0131】
次に、ステップS73において、操作データ124が参照され、角速度ωxおよび角速度ωyが取得される。
【0132】
続くステップS74において、上記ステップS72で設定された合成比率に基づいて、ωxとωyとが合成され、合成角速度ωSが算出される。このωSは、入力装置8が水平な状態であると想定した場合の(上記図10参照)角速度を意味することになる。
【0133】
次に、ステップS75において、累積データ131に、上記算出された合成角速度ωSが合算される。これにより、合成角速度ωSおよび上記基準姿勢に基づいて、入力装置8が水平な状態であると想定した場合の、入力装置8の現在姿勢が算出可能となる。以上で、他の実施形態における角速度算出処理の説明は終了する。このような処理を行うことで、プレイヤにより行われた入力装置8の動きを、より正確にハープ102の音の出力に反映させることが可能となる。
【0134】
また、上述した音声出力処理に関して、上記実施形態では、図17で示したように、ある弦の音を鳴らした後、次の弦の音を鳴らすための閾値を越えているか否かを判定し、この閾値を越えていれば音を鳴らしていた。この閾値に関して、上述の例では、一律に同じ場合を例にしていたが(上記図17において、角度A〜Cは同じ角度)、他の実施形態では、この閾値を、入力装置8を振る速度に応じて変化させるようにしても良い。例えば、入力装置8を振る速度が速い場合(大きな加速度がかかっているような動きの場合)は、上記閾値を小さい値に変化させる(図19(A)参照)。逆に、振る速度が速い場合(加速度が小さな動きの場合)は、閾値を大きい値に変化させる(図19(B)参照)。つまり、上記のように、当該閾値は、ハープの弦と弦の間隔を示す概念とも言えるところ、加速度の大小に応じて、弦の間隔を変化させるようにしてもよい。例えば、図20に示すように、入力装置8自体を振った際、加速度が大きいときは、入力装置8自体の姿勢の変化が小さくても、12本の弦の全ての音を鳴らすことができる。一方、入力装置8自体を振った際に加速度が小さいときは、12本の弦の全ての音を鳴らすためには、上記に比べて、図21で示すように、入力装置8の姿勢をより大きく変化させる必要がある(なお、図20、21共に、入力装置8の姿勢とハープの弦との対応関係は上記図9に準ずる)。上記のような処理については、例えば、上記ステップS52の処理の際に、加速度データ126を参照し、その内容に応じて、予め初期値として定義されている閾値を増減してから判定を行うようにすればよい。
【0135】
また、その他、上記のような閾値を用いずに、ハープ102の各弦に対応する入力装置8の姿勢を示すデータを予め定義しておき、現在姿勢がこの姿勢と一致するか否かを判定することで各弦の音を出力するようにしても良い。
【0136】
また、上記実施形態では、基準姿勢と現在姿勢との差分に応じて音列データ130を決定していた。この音列データ130の決定について、他の実施形態では、基準姿勢の代わりに、直前のフレームにかかる処理での入力装置8の姿勢と現在姿勢との差分に応じて音列データ130を決定するようにしてもよい。更に、この場合、当該差分を累積し、累積データ131として記憶するようにしてもよい。
【0137】
また、上記実施形態では、十字キー32aの「上」を押したとき、つまり、プレイヤオブジェクト101がハープ102を構えた際の、音が鳴る初期位置(プレイヤオブジェクト101の右手の初期位置)として、ハープ102の一番端の弦の位置の場合を例に挙げた。初期位置はこれに限らず、別の弦の位置、例えばハープ102の中央付近の位置でもよい。例えば、図22に示すように、6本目の弦の位置を初期位置としてもよい(図22におけるハープと入力装置8の位置関係は上記図9の場合に準ずる)。この場合は、各弦に対応する入力装置8の姿勢は、6本目の弦を中心に、6〜1本目については入力装置8の先端部分がプレイヤ側に近づいていくような姿勢となり、7〜12本目は、入力装置8の先端部分がプレイヤから離れていくような姿勢となる。
【0138】
また、上記実施形態では、ジャイロセンサユニット7(角速度)を用いて入力装置の姿勢を算出していたが、ジャイロセンサユニット7は用いずに、加速度センサ37から得られる加速度データ126に基づいて入力装置8の姿勢(基準姿勢や現在姿勢)を算出するようにしてもよい。
【0139】
また、上記実施形態では、ゲーム内で演奏する楽器の一例としてハープを例に挙げたが、これに限らず、弦楽器全般についても本発明は適用可能である。更には、弦楽器等の楽器だけに限らず、上記のような、所定のタイミングで定義された基準姿勢と現在姿勢との差分によって鳴らす音を決定する処理が利用できる局面であれば、本発明は適用可能である。
【0140】
また、上記実施形態においては、入力装置8の姿勢に基づいてハープ102を演奏するための一連の処理が単一の装置(ゲーム装置3)において実行される場合を説明したが、他の実施形態においては、上記一連の処理が複数の情報処理装置からなる情報処理システムにおいて実行されてもよい。例えば、端末側装置と、当該端末側装置とネットワークを介して通信可能なサーバ側装置とを含む情報処理システムにおいて、上記一連の処理のうちの一部の処理がサーバ側装置によって実行されてもよい。さらには、端末側装置と、当該端末側装置とネットワークを介して通信可能なサーバ側装置とを含む情報処理システムにおいて、上記一連の処理のうちの主要な処理がサーバ側装置によって実行され、当該端末側装置では一部の処理が実行されてもよい。また、上記情報処理システムにおいて、サーバ側のシステムは、複数の情報処理装置によって構成され、サーバ側で実行するべき処理を複数の情報処理装置が分担して実行してもよい。
【符号の説明】
【0141】
1 ゲームシステム
2 モニタ
2a スピーカ
3 ゲーム装置
4 光ディスク
5 コントローラ
7 ジャイロセンサユニット
8 入力装置
10 CPU
11 システムLSI
11a 入出力プロセッサ
11b GPU
11c DSP
11d VRAM
11e 内部メインメモリ
12 外部メインメモリ
13 ROM/RTC
14 ディスクドライブ
15 AV−IC
16 AVコネクタ
17 フラッシュメモリ
18 無線通信モジュール
19 無線コントローラモジュール
20 拡張コネクタ
21 外部メモリカード用コネクタ
22 アンテナ
23 アンテナ
24 電源ボタン
25 リセットボタン
26 イジェクトボタン
30 基板
31 ハウジング
32 操作部
33 コネクタ
34 LED
35 撮像情報演算部
36 通信部
37 加速度センサ
38 赤外線フィルタ
39 レンズ
40 撮像素子
41 画像処理回路
42 マイコン
43 メモリ
44 無線モジュール
45 アンテナ
48 バイブレータ
49 スピーカ
53 プラグ
54 マイコン
55 2軸ジャイロセンサ
56 1軸ジャイロセンサ

【特許請求の範囲】
【請求項1】
自身の動きまたは姿勢を検出する動き・姿勢センサを備えた入力装置からの入力に基づいて音楽を演奏する音楽演奏装置のコンピュータによって実行される音楽演奏プログラムであって、
前記コンピュータを、
前記動き・姿勢センサで検出した入力装置の動きまたは姿勢の情報を取得する動き・姿勢情報取得手段と、
所定の基準姿勢と、前記動き・姿勢情報取得手段で取得した前記入力装置の姿勢との差分を算出する姿勢差分算出手段と、
前記姿勢差分算出手段で算出された姿勢の差分に応じた所定の音を鳴らすことで音楽の演奏を行う演奏手段として機能させる、音楽演奏プログラム。
【請求項2】
前記音楽演奏プログラムは、前記コンピュータを、所定のタイミングにおける前記入力装置の姿勢を前記基準姿勢として設定する基準姿勢設定手段として更に機能させ、
前記姿勢差分算出手段は、前記基準姿勢が設定された後に前記動き・姿勢情報取得手段で取得された前記入力装置の姿勢と当該基準姿勢との差分を算出する、請求項1に記載の音楽演奏プログラム。
【請求項3】
前記演奏手段は、前記姿勢差分算出手段で算出された姿勢の差分が当該差分に対して予め設定されている所定の閾値を超えた際に、当該所定の閾値に対応した音を鳴らす、請求項1または2に記載の音楽演奏プログラム。
【請求項4】
前記所定の閾値は複数設定される、請求項3に記載の音楽演奏プログラム。
【請求項5】
前記音楽演奏プログラムは、前記コンピュータを、
前記動き・姿勢情報取得手段で取得した前記入力装置の動きまたは姿勢の単位時間当たりの変化の大きさを検出する変化量検出手段としてさらに機能させ、
前記演奏手段は、前記動きまたは姿勢の変化の大きさに応じて前記所定の閾値を変化させる、請求項3に記載の音楽演奏プログラム。
【請求項6】
前記演奏手段は、前記動きまたは姿勢の変化の大きさが大きくなるほど前記所定の閾値が小さい値となるように変化させる、請求項5に記載の音楽演奏プログラム。
【請求項7】
前記音楽演奏プログラムは、前記コンピュータを、前記動き・姿勢情報取得手段で取得した前記入力装置の動きまたは姿勢の単位時間あたりの変化量を算出する変化量算出手段として更に機能させ、
前記演奏手段は、前記算出された動き又は姿勢の変化量によって、前記姿勢差分算出手段で算出された差分と当該差分に応じて鳴らす音との対応関係を変化させる、請求項1または2に記載の音楽演奏プログラム。
【請求項8】
前記音楽演奏プログラムは、前記コンピュータを、
前記基準姿勢設定手段により基準姿勢が設定された後、前記動き・姿勢情報取得手段で取得した前記入力装置の動きまたは姿勢の単位時間当たりの変化量が所定量以上であるか否かを判定する変化量判定手段としてさらに機能させ、
前記演奏手段は、前記変化量判定手段で前記入力装置の動きまたは姿勢の変化量が所定量以上と判定された時点から演奏を行う、請求項2ないし7のいずれかに記載の音楽演奏プログラム。
【請求項9】
前記入力装置はさらに所定の入力部を備え、
前記音楽演奏プログラムは、前記コンピュータを、前記入力部に対して入力があったか否かを判定する入力判定手段をしてさらに機能させ、
前記基準姿勢設定手段は、前記入力判定手段で前記入力部に対して入力があったと判定されたときの姿勢を前記所定の基準姿勢として設定する、請求項2ないし8のいずれかに記載の音楽演奏プログラム。
【請求項10】
前記入力装置はさらに所定の入力部を備え、
前記音楽演奏プログラムは、前記コンピュータを、前記入力部に対して入力があったか否かを判定する入力判定手段としてさらに機能させ、
前記演奏手段は、前記入力判定手段で前記入力部に対して入力がある間だけ演奏を行う、請求項2ないし8のいずれかに記載の音楽演奏プログラム。
【請求項11】
前記姿勢差分算出手段は、前記動き・姿勢情報取得手段で取得した前記入力装置の姿勢と前記所定の基準姿勢との差分として、前記入力装置の所定軸を中心とした回転方向に対する差分を算出する、請求項1ないし10のいずれかに記載の音楽演奏プログラム。
【請求項12】
前記姿勢差分算出手段は、前記入力装置の所定軸を中心とする回転方向にかかる回転量、および、当該所定軸に直行する軸を中心とする回転方向に係る回転量に基づいて、前記所定の基準姿勢との差分を算出する、請求項11に記載の音楽演奏プログラム。
【請求項13】
前記所定軸は、前記入力装置が振られた方向を判定するための軸である、請求項11に記載の音楽演奏プログラム。
【請求項14】
前記姿勢差分算出手段は、前記所定軸とは異なる軸を中心とする回転方向にかかる回転量を前記所定軸を中心とした回転方向にかかる回転量として変換し、当該所定軸に係る回転量と当該変換した回転量とに基づいて前記差分を算出する、請求項13に記載の音楽演奏プログラム。
【請求項15】
前記動き・姿勢情報取得手段、姿勢差分算出手段、演奏手段は繰り返し行われ、
前記所定の基準姿勢は、前記動き・姿勢情報取得手段で前回に取得した前記入力装置の動きまたは姿勢の情報に基づく姿勢である、請求項1に記載の音楽演奏プログラム。
【請求項16】
前記演奏手段は、
前記姿勢差分算出手段で算出された姿勢の差分の累積を算出する差分累積手段を含み、
前記差分累積手段で算出された前記姿勢の差分の累積に基づき音楽の演奏を行う、請求項15に記載の音楽演奏プログラム。
【請求項17】
前記動き・姿勢センサは、加速度センサまたは/および角速度センサである、請求項1ないし16のいずれかに記載の音楽演奏プログラム。
【請求項18】
自身の動きまたは姿勢を検出する動き・姿勢センサを備えた入力装置からの入力に基づいて音楽を演奏する音楽演奏装置であって、
前記動き・姿勢センサで検出した入力装置の動きまたは姿勢の情報を取得する動き・姿勢情報取得手段と、
所定の基準姿勢と、前記動き・姿勢情報取得手段で取得した前記入力装置の姿勢との差分を算出する姿勢差分算出手段と、
前記姿勢差分算出手段で算出された姿勢の差分に応じた所定の音を鳴らすことで音楽の演奏を行う演奏手段とを備える、音楽演奏装置。
【請求項19】
自身の動きまたは姿勢を検出する動き・姿勢センサを備えた入力装置からの入力に基づいて音楽を演奏する音楽演奏システムであって、
前記動き・姿勢センサで検出した入力装置の動きまたは姿勢の情報を取得する動き・姿勢情報取得手段と、
所定の基準姿勢と、前記動き・姿勢情報取得手段で取得した前記入力装置の姿勢との差分を算出する姿勢差分算出手段と、
前記姿勢差分算出手段で算出された姿勢の差分に応じた所定の音を鳴らすことで音楽の演奏を行う演奏手段とを備える、音楽演奏システム。
【請求項20】
自身の動きまたは姿勢を検出する動き・姿勢センサを備えた入力装置からの入力に基づいて音楽を演奏する音楽演奏装置で用いられる音楽演奏方法であって、
前記動き・姿勢センサで検出した入力装置の動きまたは姿勢の情報を取得する動き・姿勢情報取得ステップと、
所定の基準姿勢と、前記動き・姿勢情報取得ステップで取得した前記入力装置の姿勢との差分を算出する姿勢差分算出ステップと、
前記姿勢差分算出ステップで算出された姿勢の差分に応じた所定の音を鳴らすことで音楽の演奏を行う演奏ステップとを備える、音楽演奏方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate


【公開番号】特開2012−237866(P2012−237866A)
【公開日】平成24年12月6日(2012.12.6)
【国際特許分類】
【出願番号】特願2011−106553(P2011−106553)
【出願日】平成23年5月11日(2011.5.11)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】