音楽演奏プログラム、音楽演奏装置、音楽演奏方法および音楽演奏システム
【課題】ユーザの体の動きを反映して音楽を演奏することが可能な音楽演奏装置、音楽演奏プログラム等を提供する。
【解決手段】ゲーム装置は、荷重コントローラの各荷重センサが検出する荷重値に基づいて、重心位置を繰り返し算出する。ゲーム装置は、重心位置が基準線を越えて移動した場合、次の音節を再生することにより、楽曲を音節毎に順次再生する。この場合において、ゲーム装置は、重心位置および重心が移動する速さに応じて、再生音量を変化させる。
【解決手段】ゲーム装置は、荷重コントローラの各荷重センサが検出する荷重値に基づいて、重心位置を繰り返し算出する。ゲーム装置は、重心位置が基準線を越えて移動した場合、次の音節を再生することにより、楽曲を音節毎に順次再生する。この場合において、ゲーム装置は、重心位置および重心が移動する速さに応じて、再生音量を変化させる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、音楽演奏プログラム、音楽演奏装置、音楽演奏方法および音楽演奏システムに関し、より特定的には、体重の重心の移動に基づいて音楽の演奏を行う音楽演奏プログラム、音楽演奏装置、音楽演奏方法および音楽演奏システムに関する。
【背景技術】
【0002】
従来、画面上をスクロール移動する位置指示マークによる指示に応じた踏み位置をユーザが踏むことにより、音楽に合わせてステップを行うダンスゲーム装置が存在する(例えば、特許文献1)。具体的には、特許文献1に記載のダンスゲーム装置は、複数の踏み台部と、音楽を出力するスピーカと、踏み位置マークを表示する表示部とが備える。表示部には、音楽の進行に応じて踏み位置マークが表示されて、画面上をスクロール移動する。踏み位置マークが所定の位置に移動したタイミングと、当該踏み位置マークに対応した踏み台部が踏まれたタイミングとに応じて得点が算出される。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2000−37490号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記特許文献1に記載のダンスゲーム装置は、音楽の進行に応じて所定の踏み位置を踏むことによって、リズム感を表現するものであり、音楽の進行を体全体あるいは体の一部で制御するものではなかった。このため、例えば、音楽を演奏するという感覚をユーザに与えるようなものではなかった。また、特許文献1に記載のゲーム装置では、踏み台部が踏まれたことを検出するのみであり、ユーザの体全体の動きをゲームに反映するという点では不十分であった。
【0005】
それ故、本発明の目的は、ユーザの体の動きを反映して音楽を演奏することが可能な音楽演奏装置、音楽演奏プログラム等を提供することである。
【課題を解決するための手段】
【0006】
本発明は、上記の課題を解決するために、以下の構成を採用した。
【0007】
本発明は、荷重センサを備えた荷重測定器からの信号を処理する音楽演奏装置のコンピュータにおいて実行される音楽演奏プログラムである。当該音楽演奏プログラムは、重心位置取得手段と、判定手段と、音楽再生手段として、上記コンピュータを機能させる。重心位置取得手段は、上記荷重測定器からの信号に基づいて、重心位置を繰り返し取得する。判定手段は、上記重心位置取得手段によって取得された重心位置の移動が所定の条件を満たすか否かを判定する。音楽再生手段は、上記判定手段によって上記重心位置の移動が上記所定の条件を満たすと判定されるごとに、所定の音楽を順次再生する。
【0008】
上記によれば、重心位置の移動が所定の条件を満たすごとに、所定の音楽が順次再生される。これにより、ユーザは体の動きに応じて音楽の進行を制御することができる。例えば、重心位置が所定の線を越えて移動した場合や、重心の移動速度(重心が移動する速さ)が所定値以上の場合、重心位置の移動パターンが所定のパターンと一致する場合において、重心位置の移動が所定の条件を満たすと判定されてもよい。
【0009】
本発明の他の構成では、上記判定手段は、上記重心位置取得手段によって取得された重心位置が所定の基準線を越えて移動したことに応じて、所定の音楽を再生するか否かを判定してもよい。上記音楽再生手段は、上記判定手段によって上記所定の音楽を再生すると判定されるごとに、上記所定の音楽を所定の間隔ずつ順次再生する。
【0010】
上記によれば、重心位置が基準線を越えて移動したことに応じて所定の音楽を再生するか否かが判定され、所定の音楽を再生すると判定されるごとに、所定の音楽を所定の間隔ずつ順次再生することができる。例えば、重心位置が基準線を越えて移動したと判定されるとある音節が再生され、次に重心位置が基準線を越えて移動したと判定されると、次の音節が再生される。これにより、ユーザの体の動きを音楽再生の制御に反映することができる。
【0011】
本発明の他の構成では、上記判定手段は、上記重心位置取得手段によって取得された重心位置に基づいて算出される重心位置の移動速度が所定値以上か否かを判定してもよい。上記音楽再生手段は、上記判定手段によって上記重心位置の移動速度が所定値以上であると判定される場合、所定の音楽を順次再生する。
【0012】
上記によれば、重心位置の移動速度が所定値以上であると判定される場合に、所定の音楽を順次再生することができる。これにより、ユーザの体の動きを音楽再生の制御に反映することができる。
【0013】
本発明の他の構成では、上記プログラムは、音量設定手段として、上記コンピュータを更に機能させてもよい。音量設定手段は、上記重心位置取得手段によって取得された重心位置を用いて、上記所定の音楽の再生音量を設定する。上記音楽再生手段は、上記音量設定手段で設定された再生音量で上記所定の音楽を再生する。
【0014】
上記によれば、重心位置取得手段によって取得された重心位置を用いて、所定の音楽の再生音量を設定することができる。例えば、重心位置や重心が移動する速さに応じて、再生音量を設定することができる。これにより、ユーザの重心移動によって再生音量を変化させることができる。
【0015】
本発明の他の構成では、上記プログラムは、音量設定手段として上記コンピュータを更に機能させてもよい。音量設定手段は、上記重心位置取得手段によって取得された重心位置と上記所定の基準線との位置関係に基づいて、上記所定の音楽の再生音量を設定する。上記音楽再生手段は、上記音量設定手段で設定された再生音量で上記所定の音楽を再生する。
【0016】
上記によれば、重心位置に応じて再生音量を設定することができ、ユーザの重心移動によって再生音量を変化させることができる。
【0017】
本発明の他の構成では、上記音量設定手段は、上記所定の基準線から上記重心位置までの距離が遠いほど上記再生音量を大きく設定してもよい。
【0018】
上記によれば、重心位置が基準線から離れるほど音量を大きくすることができ、ユーザの踏む力に応じて、音量を大きくすることができる。これにより、ユーザは、例えば、ペダルを強く踏むと大きな音が出る足踏みオルガンと同じ要領で再生音量を調整することができ、足踏みオルガンを演奏しているような感覚をユーザに与えることができる。
【0019】
本発明の他の構成では、上記音量設定手段は、上記重心位置が上記所定の基準線を含む所定の領域にない場合は、上記再生音量を第1の音量に設定し、上記重心位置が上記所定の領域にある場合は、上記第1の音量よりも小さな音量の範囲で上記再生音量を設定してもよい。
【0020】
上記によれば、重心位置が基準線を含む所定の領域を超えると、再生音量を第1の音量に設定し、重心位置が所定の領域にある場合は、第1の音量よりも小さな音量で再生音量を設定することができる。これにより、基準線からの距離が所定以上の場合は音量を最大値に固定し、基準線からの距離が所定未満の場合は最大値よりも小さな音量に設定することができる。
【0021】
本発明の他の構成では、上記音量設定手段は、上記所定の基準線から上記重心位置までの距離に応じて音量の上限値を定め、当該上限値内で上記重心位置取得手段によって取得された重心位置に基づいて算出される重心位置の移動速度に応じて、上記再生音量を設定してもよい。
【0022】
上記によれば、重心位置および重心の移動速度に応じて、再生音量を設定することができる。例えば、重心が比較的速く移動している場合でも重心位置が基準線から比較的近い範囲で移動している場合は、再生音量を小さくすることができる。
【0023】
本発明の他の構成では、上記音量設定手段は、上記重心位置取得手段によって取得された重心位置に基づいて算出される重心位置の移動速度に応じて、上記再生音量を設定してもよい。
【0024】
上記によれば、重心の移動速度に応じて、再生音量を設定することができ、ユーザの重心移動によって再生音量を変化させることができる。
【0025】
本発明の他の構成では、上記音量設定手段は、上記重心位置の移動速度が速いほど上記再生音量を大きく設定してもよい。
【0026】
上記によれば、重心の移動速度が速いほど音量を大きくすることができ、ユーザは、例えば、足踏みオルガンと同様の要領で音量を調整することができる。
【0027】
本発明の他の構成では、上記音楽再生手段は、現在の再生音量から上記音量設定手段で設定された再生音量へ所定期間かけて徐々に変化させて、上記所定の音楽を再生してもよい。
【0028】
上記によれば、再生音量が急激に変化することを防止することができる。
【0029】
本発明の他の構成では、上記プログラムは、再生速度設定手段として、上記コンピュータを更に機能させてもよい。再生速度設定手段は、上記重心位置取得手段によって取得された重心位置に基づいて算出される重心位置の移動速度に基づいて、上記所定の音楽の再生速度を設定する。上記音楽再生手段は、上記再生速度設定手段によって設定された再生速度で、上記所定の音楽を再生する。
【0030】
上記によれば、重心の移動速度に基づいて、音楽の再生速度(テンポ)を変化させることができる。
【0031】
本発明の他の構成では、上記再生速度設定手段は、上記重心位置の移動速度が速いほど、上記再生速度を速く設定してもよい。
【0032】
上記によれば、重心の移動速度が速いほど、音楽の再生速度(テンポ)を速くすることができ、ユーザの動きを音楽のテンポと合わせることができる。
【0033】
本発明の他の構成では、上記プログラムは、時間計測手段と、再生速度設定手段として、上記コンピュータを更に機能させてもよい。時間計測手段は、直前に上記判定手段によって上記所定の音楽を再生すると判定されてから、次に上記判定手段によって上記所定の音楽を再生すると判定されるまでの間の時間を計測する。再生速度設定手段は、上記時間計測手段によって計測された時間に基づいて、上記所定の音楽の再生速度を設定する。上記音楽再生手段は、上記再生速度設定手段によって設定された再生速度で、上記所定の音楽を再生する。
【0034】
上記によれば、時間計測手段によって計測された時間に基づいて、音楽の再生速度(テンポ)を変化させることができる。
【0035】
本発明の他の構成では、上記再生速度設定手段は、上記時間計測手段によって計測された時間が短いほど、上記再生速度を速く設定してもよい。
【0036】
上記によれば、例えばユーザが速く移動した場合は、音楽の再生速度を速くすることができ、ユーザの動きを音楽のテンポと合わせることができる。
【0037】
本発明の他の構成では、上記判定手段は、上記重心位置が上記所定の基準線を越えて移動した場合において、当該所定の基準線をはさんだ一方の側から他方の側に上記重心位置が移動したときのみ、上記所定の音楽を再生すると判定してもよい。
【0038】
上記によれば、重心位置が基準線を越えて移動した場合において、その移動方向が一定の方向である場合のみ、所定の音楽を所定の間隔ずつ順次再生することができる。
【0039】
本発明の他の構成では、上記プログラムは、上記荷重測定器からの信号に基づいて、上記荷重測定器にかかる荷重値を繰り返し取得する荷重値取得手段として、上記コンピュータを更に機能させてもよい。上記音楽再生手段は、上記荷重値取得手段によって取得された荷重値が所定値以上の場合のみ上記所定の音楽を再生する。
【0040】
上記によれば、例えば、荷重測定器に荷重がかかっている場合のみ、所定の音楽を再生することができる。
【0041】
上記音楽再生手段は、上記判定手段によって上記重心位置の移動が上記所定の条件を満たすと判定されるごとに、上記所定の音楽を所定の間隔ずつ順次再生してもよい。
【0042】
上記によれば、所定の音楽を所定の間隔ずつ順次再生することができる。
【0043】
本発明の他の構成では、前記所定の音楽は、一定の間隔で区切られていてもよい。
【0044】
上記によれば、例えば、所定の音楽を音節毎に順次再生することができる。
【0045】
本発明の他の構成では、上記所定の音楽は、1音ずつ区切られていてもよい。上記音楽再生手段は、上記判定手段によって上記所定の音楽を再生すると判定されるごとに、上記所定の音楽を1音ずつ順次再生する。
【0046】
上記によれば、所定の音楽を1音ずつ順次再生することができる。
【0047】
本発明の他の構成では、上記荷重測定器は複数の荷重センサを有してもよい。上記重心位置取得手段は、上記複数の荷重センサによってそれぞれ検出された荷重値に基づいて、上記重心位置を算出する。
【0048】
上記によれば、複数の荷重センサによって重心位置を算出することができる。
【0049】
また、本発明は、上記音楽演奏プログラムを実行する音楽演奏装置の形態で実施されてもよい。また、本発明では、上記各手段を実現する複数の要素が相互に動作することによって、1つの情報処理システムとして構成されてもよい。当該情報処理システムは、1つの装置によって構成されてもよいし、複数の装置がネットワーク等によって接続されることによって構成されてもよい。
【発明の効果】
【0050】
本発明によれば、ユーザの体の動きを反映して音楽を演奏することができる。
【図面の簡単な説明】
【0051】
【図1】本発明の一実施例であるゲームシステムの外観を示す外観図
【図2】本実施例のビデオゲームシステム10の電気的な構成を示すブロック図
【図3】図1に示した荷重コントローラ36の外観を示す斜視図
【図4】図3に示した荷重コントローラ36のVI−VI断面図
【図5】荷重コントローラ36の電気的な構成の一例を示すブロック図
【図6】ユーザが荷重コントローラ36の上に乗り、本実施形態に係るゲームを行う様子を示した図
【図7】重心位置を定義するXY座標系を示す図
【図8】XY座標系において定義される基準線および各領域を示す図
【図9】複数の音節に分割された楽曲を示す図
【図10】重心位置が基準線70を超えて移動する様子を示す図
【図11】重心位置と音量との関係を示す図
【図12】ゲーム装置12のメインメモリ(外部メインメモリ46又は内部メインメモリ42e)に記憶される主なデータを示す図
【図13】ゲーム装置12において実行される第1実施形態のゲーム処理の流れを示すフローチャート
【図14】ゲーム装置12において実行される第2実施形態のゲーム処理の流れを示すフローチャート
【図15】基準線の他の例を示す図
【図16】基準線の他の例を示す図
【図17】基準線の他の例を示す図
【図18】他の実施形態において移動方向に応じて各音節が順次再生されることを示す図
【発明を実施するための形態】
【0052】
[ゲームシステムの全体構成]
次に、図面を参照して本発明に一実施例について説明する。図1は、本発明の一実施例であるゲームシステムの外観を示す外観図である。ゲームシステム10は、ゲーム装置12、コントローラ22および荷重コントローラ36を含む。なお、図示は省略するが、この実施例のゲーム装置12は、最大4つのコントローラ(22,36)と通信可能に設計されている。また、ゲーム装置12と各コントローラ(22,36)とは、無線によって接続される。たとえば、無線通信は、Bluetooth(登録商標)規格に従って実行されるが、赤外線や無線LANなど他の規格に従って実行されてもよい。
【0053】
ゲーム装置12は、略直方体のハウジング14を含み、ハウジング14の前面にはディスクスロット16が設けられる。ディスクスロット16から、ゲームプログラム等を記憶した情報記憶媒体の一例である光ディスク18が挿入されて、ハウジング14内のディスクドライブ54(図2参照)に装着される。ディスクスロット16の周囲には、LEDと導光板が配置され、さまざまな処理に応答させて点灯させることが可能である。
【0054】
また、ゲーム装置12のハウジング14の前面であり、その上部には、電源ボタン20aおよびリセットボタン20bが設けられ、その下部には、イジェクトボタン20cが設けられる。さらに、リセットボタン20bとイジェクトボタン20cとの間であり、ディスクスロット16の近傍には、外部メモリカード用コネクタカバー28が設けられる。この外部メモリカード用コネクタカバー28の内側には、外部メモリカード用コネクタ62(図2参照)が設けられ、図示しない外部メモリカード(以下、単に「メモリカード」という。)が挿入される。メモリカードは、光ディスク18から読み出したゲームプログラム等をローディングして一時的に記憶したり、このゲームシステム10を利用してプレイしたゲームのゲームデータ(ゲームの結果データまたは途中データ)を保存(セーブ)しておいたりするために利用される。ただし、上記のゲームデータの保存は、メモリカードに対して行うことに代えて、たとえばゲーム装置12の内部に設けられるフラッシュメモリ44(図2参照)のような内部メモリに対して行うようにしてもよい。また、メモリカードは、内部メモリのバックアップメモリとして用いるようにしてもよい。
【0055】
なお、メモリカードとしては、汎用のSDカードを用いることができるが、メモリスティックやマルチメディアカード(登録商標)のような他の汎用のメモリカードを用いることもできる。
【0056】
ゲーム装置12のハウジング14の後面には、AVケーブルコネクタ58(図2参照)が設けられ、そのAVコネクタ58を用いて、AVケーブル32aを通してゲーム装置12にモニタ34およびスピーカ34aを接続する。このモニタ34およびスピーカ34aは典型的にはカラーテレビジョン受像機であり、AVケーブル32aは、ゲーム装置12からの映像信号をカラーテレビのビデオ入力端子に入力し、音声信号を音声入力端子に入力する。したがって、カラーテレビ(モニタ)34の画面上にたとえば3次元(3D)ビデオゲームのゲーム画像が表示され、左右のスピーカ34aからゲーム音楽や効果音などのステレオゲーム音声が出力される。また、モニタ34の周辺(この実施例では、モニタ34の上側)には、2つの赤外LED(マーカ)340m,340nを備えるマーカ部34bが設けられる。このマーカ部34bは、電源ケーブル32bを通してゲーム装置12に接続される。したがって、マーカ部34bには、ゲーム装置12から電源が供給される。これによって、マーカ340m,340nは発光し、それぞれモニタ34の前方に向けて赤外光を出力する。
【0057】
なお、ゲーム装置12の電源は、一般的なACアダプタ(図示せず)によって与えられる。ACアダプタは家庭用の標準的な壁ソケットに差し込まれ、ゲーム装置12は、家庭用電源(商用電源)を、駆動に適した低いDC電圧信号に変換する。他の実施例では、電源としてバッテリが用いられてもよい。
【0058】
このゲームシステム10において、ユーザまたはユーザがゲーム(またはゲームに限らず、他のアプリケーション)をプレイするために、ユーザはまずゲーム装置12の電源をオンし、次いで、ユーザはビデオゲーム(もしくはプレイしたいと思う他のアプリケーション)のプログラムを記録している適宜の光ディスク18を選択し、その光ディスク18をゲーム装置12のディスクドライブ54にローディングする。それに応じて、ゲーム装置12がその光ディスク18に記録されているプログラムに基づいてビデオゲームもしくは他のアプリケーションを実行し始めるようにする。
【0059】
ユーザはゲーム装置12に入力を与えるためにコントローラ22を操作する。たとえば、入力手段26のどれかを操作することによってゲームもしくは他のアプリケーションをスタートさせる。また、入力手段26に対する操作以外にも、コントローラ22自体を動かすことによって、動画オブジェクト(ユーザオブジェクト)を異なる方向に移動させ、または3Dのゲーム世界におけるユーザの視点(カメラ位置)を変化させることができる。コントローラ22には、3軸方向の加速度を検出する加速度センサ(図示せず)を備えており、ユーザがコントローラ22を動かすことによって生じる加速度を検出することができる。ゲーム装置12は、コントローラ22からの加速度に応じて所定のゲーム処理をすることができる。さらに、コントローラ22には、マーカ340m,340nが発する赤外光を撮像する撮像手段が備えられており、これによって、コントローラ22は、モニタ34の画面上を指示する指示入力装置としても機能する。
【0060】
図2は、本実施例のビデオゲームシステム10の電気的な構成を示すブロック図である。図示は省略するが、ハウジング14内の各コンポーネントは、プリント基板に実装される。図2に示されるように、ゲーム装置12には、CPU40が設けられる。このCPU40は、ゲームプロセッサとして機能する。このCPU40には、システムLSI42が接続される。このシステムLSI42には、外部メインメモリ46、ROM/RTC48、ディスクドライブ54およびAV IC56が接続される。
【0061】
外部メインメモリ46は、ゲームプログラム等のプログラムを記憶したり、各種データを記憶したりし、CPU40のワーク領域やバッファ領域として用いられる。ROM/RTC48は、いわゆるブートROMであり、ゲーム装置12の起動用のプログラムが組み込まれるとともに、時間をカウントする時計回路が設けられる。ディスクドライブ54は、光ディスク18からプログラムデータやテクスチャデータ等を読み出し、CPU40の制御の下で、後述する内部メインメモリ42eまたは外部メインメモリ46に書き込む。
【0062】
システムLSI42には、入出力プロセッサ42a、GPU(Graphics Processor Unit)42b,DSP(Digital Signal Processor)42c,VRAM42dおよび内部メインメモリ42eが設けられ、図示は省略するが、これらは内部バスによって互いに接続される。
【0063】
入出力プロセッサ(I/Oプロセッサ)42aは、データの送受信を実行したり、データのダウンロードを実行したりする。データの送受信やダウンロードについては後で詳細に説明する。
【0064】
GPU42bは、描画手段の一部を形成し、CPU40からのグラフィクスコマンド(作画命令)を受け、そのコマンドに従ってゲーム画像データを生成する。ただし、CPU40は、グラフィクスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラムをGPU42bに与える。
【0065】
図示は省略するが、上述したように、GPU42bにはVRAM42dが接続される。GPU42bが作画コマンドを実行するにあたって必要なデータ(画像データ:ポリゴンデータやテクスチャデータなどのデータ)は、GPU42bがVRAM42dにアクセスして取得する。なお、CPU40は、描画に必要な画像データを、GPU42bを介してVRAM42dに書き込む。GPU42bは、VRAM42dにアクセスして描画のためのゲーム画像データを作成する。
【0066】
なお、この実施例では、GPU42bがゲーム画像データを生成する場合について説明するが、ゲームアプリケーション以外の任意のアプリケーションを実行する場合には、GPU42bは当該任意のアプリケーションについての画像データを生成する。
【0067】
また、DSP42cは、オーディオプロセッサとして機能し、内部メインメモリ42eや外部メインメモリ46に記憶されるサウンドデータや音波形(音色)データを用いて、スピーカ34aから出力する音、音声或いは音楽に対応するオーディオデータを生成する。
【0068】
上述のように生成されたゲーム画像データおよびオーディオデータは、AV IC56によって読み出され、AVコネクタ58を介してモニタ34およびスピーカ34aに出力される。したがって、ゲーム画面がモニタ34に表示され、ゲームに必要な音(音楽)がスピーカ34aから出力される。
【0069】
また、入出力プロセッサ42aには、フラッシュメモリ44、無線通信モジュール50および無線コントローラモジュール52が接続されるとともに、拡張コネクタ60および外部メモリカード用コネクタ62が接続される。また、無線通信モジュール50にはアンテナ50aが接続され、無線コントローラモジュール52にはアンテナ52aが接続される。
【0070】
入出力プロセッサ42aは、無線通信モジュール50を介して、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。ただし、ネットワークを介さずに、直接的に他のゲーム装置と通信することもできる。入出力プロセッサ42aは、定期的にフラッシュメモリ44にアクセスし、ネットワークへ送信する必要があるデータ(送信データとする)の有無を検出し、当該送信データが有る場合には、無線通信モジュール50およびアンテナ50aを介してネットワークに送信する。また、入出力プロセッサ42aは、他のゲーム装置から送信されるデータ(受信データとする)を、ネットワーク、アンテナ50aおよび無線通信モジュール50を介して受信し、受信データをフラッシュメモリ44に記憶する。ただし、一定の場合には、受信データをそのまま破棄する。さらに、入出力プロセッサ42aは、ダウンロードサーバからダウンロードしたデータ(ダウンロードデータとする)をネットワーク、アンテナ50aおよび無線通信モジュール50を介して受信し、ダウンロードデータをフラッシュメモリ44に記憶する。
【0071】
また、入出力プロセッサ42aは、コントローラ22や荷重コントローラ36から送信される入力データをアンテナ52aおよび無線コントローラモジュール52を介して受信し、内部メインメモリ42eまたは外部メインメモリ46のバッファ領域に記憶(一時記憶)する。入力データは、CPU40のゲーム処理によって利用された後、バッファ領域から消去される。
【0072】
なお、この実施例では、上述したように、無線コントローラモジュール52は、Bluetooth規格にしたがってコントローラ22や荷重コントローラ36との間で通信を行う。
【0073】
また、図面の都合上、図2では、コントローラ22と荷重コントローラ36とをまとめて記載してある。
【0074】
さらに、入出力プロセッサ42aには、拡張コネクタ60および外部メモリカード用コネクタ62が接続される。拡張コネクタ60は、USBやSCSIのようなインターフェイスのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したりすることができる。また、拡張コネクタ60に有線LANアダプタを接続し、無線通信モジュール50に代えて当該有線LANを利用することもできる。外部メモリカード用コネクタ62には、メモリカードのような外部記憶媒体を接続することができる。したがって、たとえば、入出力プロセッサ42aは、拡張コネクタ60や外部メモリカード用コネクタ62を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
【0075】
詳細な説明は省略するが、図1にも示したように、ゲーム装置12(ハウジング14)には、電源ボタン20a,リセットボタン20bおよびイジェクトボタン20cが設けられる。電源ボタン20aは、システムLSI42に接続される。この電源ボタン20aがオンされると、ゲーム装置12の各コンポーネントに図示しないACアダプタを経て電源が供給され、システムLSI42は、通常の通電状態となるモード(通常モードと呼ぶこととする)を設定する。一方、電源ボタン20aがオフされると、ゲーム装置12の一部のコンポーネントのみに電源が供給され、システムLSI42は、消費電力を必要最低限に抑えるモード(以下、「スタンバイモード」という。)を設定する。この実施例では、スタンバイモードが設定された場合には、システムLSI42は、入出力プロセッサ42a、フラッシュメモリ44、外部メインメモリ46、ROM/RTC48および無線通信モジュール50、無線コントローラモジュール52以外のコンポーネントに対して、電源供給を停止する指示を行う。したがって、このスタンバイモードは、CPU40によってアプリケーションの実行が行われないモードである。
【0076】
なお、システムLSI42には、スタンバイモードにおいても電源が供給されるが、GPU42b、DSP42cおよびVRAM42dへのクロックの供給を停止することにより、これらを駆動させないようにして、消費電力を低減するようにしてある。
【0077】
また、図示は省略するが、ゲーム装置12のハウジング14内部には、CPU40やシステムLSI42などのICの熱を外部に排出するためのファンが設けられる。スタンバイモードでは、このファンも停止される。
【0078】
ただし、スタンバイモードを利用したくない場合には、スタンバイモードを利用しない設定にしておくことにより、電源ボタン20aがオフされたときに、すべての回路コンポーネントへの電源供給が完全に停止される。
【0079】
また、通常モードとスタンバイモードの切り替えは、コントローラ22の電源スイッチ(入力手段26のスイッチの1つ)のオン/オフの切り替えによっても遠隔操作によって行うことが可能である。当該遠隔操作を行わない場合には、スタンバイモードにおいて無線コントローラモジュール52aへの電源供給を行わない設定にしてもよい。
【0080】
リセットボタン20bもまた、システムLSI42に接続される。リセットボタン20bが押されると、システムLSI42は、ゲーム装置12の起動プログラムを再起動する。イジェクトボタン20cは、ディスクドライブ54に接続される。イジェクトボタン20cが押されると、ディスクドライブ54から光ディスク18が排出される。
【0081】
図3は、図1に示した荷重コントローラ36の外観を示す斜視図である。図3に示されるように、荷重コントローラ36は、ユーザがその上に乗る(ユーザの足を乗せる)台36a、および台36aにかかる荷重を検出するための少なくとも4つの荷重センサ364(364a〜364d)を備える。なお、各荷重センサ364は台36aに内包されており(図4参照)、図3においてはその配置が点線で示されている。
【0082】
台36aは、略直方体に形成されており、上面視で略長方形状である。たとえば長方形の短辺が30cm程度に設定され、その長辺が50cm程度に設定される。ユーザが乗る台36aの上面は平坦にされる。台36aの4隅の側面は、部分的に円柱状に張り出すように形成されている。
【0083】
この台36aにおいて、4つの荷重センサ364は、所定の間隔を置いて配置される。この実施例では、4つの荷重センサ364は、台36aの周縁部に、具体的には4隅にそれぞれ配置される。荷重センサ364の間隔は、台36aに対するユーザの荷重のかけ方によるゲーム操作の意図をより精度良く検出できるように適宜な値に設定される。
【0084】
図4は、図3に示した荷重コントローラ36のVI−VI断面図を示すとともに、荷重センサ364の配置された隅の部分が拡大表示されている。この図4から分かるように、台36aは、ユーザが乗るための支持板360と脚362を含む。脚362は、荷重センサ364が配置される箇所に設けられる。この実施例では4つの荷重センサ364が4隅に配置されるので、4つの脚362が4隅に設けられる。脚362は、たとえばプラスチック成型によって略有底円筒状に形成されており、荷重センサ364は、脚362内の底面に設けられた球面部品362a上に配置される。支持板360は、この荷重センサ364を介して脚362に支持される。
【0085】
支持板360は、上面と側面上部とを形成する上層板360a、下面と側面下部とを形成する下層板360b、および上層板360aと下層板360bとの間に設けられる中層板360cを含む。上層板360aと下層板360bとは、たとえばプラスチック成型により形成されており、接着等により一体化される。中層板360cは、たとえば1枚の金属板のプレス成型により形成されている。この中層板360cが、4つの荷重センサ364の上に固定される。上層板360aは、その下面に格子状のリブ(図示しない)を有しており、当該リブを介して中層板360cに支持されている。したがって、台36aにユーザが乗ったときには、その荷重は、支持板360、荷重センサ364および脚362を伝達する。図4に矢印で示したように、入力される荷重によって生じた床からの反作用は、脚362から、球面部品362a、荷重センサ364、中層板360cを介して、上層板360aに伝達する。
【0086】
荷重センサ364は、たとえば歪ゲージ(歪センサ)式ロードセルであり、入力された荷重を電気信号に変換する荷重変換器である。荷重センサ364では、荷重入力に応じて、起歪体365が変形して歪が生じる。この歪が、起歪体に貼り付けられた歪センサ366によって、電気抵抗の変化に変換され、さらに電圧変化に変換される。したがって、荷重センサ364は、入力荷重を示す電圧信号を出力端子から出力する。
【0087】
なお、荷重センサ364は、音叉振動式、弦振動式、静電容量式、圧電式、磁歪式、またはジャイロ式のような他の方式の荷重センサであってもよい。
【0088】
図3に戻って、荷重コントローラ36には、さらに、電源ボタン36cが設けられる。この電源ボタン36cがオンされると、荷重コントローラ36の各回路コンポーネント(図5参照)に電源が供給される。ただし、荷重コントローラ36は、ゲーム装置12からの指示に従ってオンされる場合もある。また、荷重コントローラ36は、ユーザが乗っていない状態が一定時間(たとえば、30秒)以上継続すると、電源がオフされる。ただし、荷重コントローラ36が起動されている状態で、電源ボタン36cをオンしたときに、電源がオフされてもよい。
【0089】
図5は、荷重コントローラ36の電気的な構成の一例を示すブロック図である。なお、この図5では、信号および通信の流れは実線矢印で示される。破線矢印は、電源の供給を示している。
【0090】
荷重コントローラ36は、その動作を制御するためのマイクロコンピュータ(マイコン)100を含む。マイコン100は図示しないCPU、ROMおよびRAM等を含み、CPUはROMに記憶されたプログラムに従って荷重コントローラ36の動作を制御する。
【0091】
マイコン100には、電源ボタン36c、ADコンバータ102、DC−DCコンバータ104および無線モジュール106が接続される。さらに、無線モジュール106には、アンテナ106aが接続される。4つの荷重センサ364は、それぞれ、増幅器108を介してADコンバータ102に接続される。
【0092】
また、荷重コントローラ36には電源供給のために電池110が収容されている。他の実施例では、電池に代えてACアダプタを接続し、商用電源を供給するようにしてもよい。かかる場合には、DC−DCコンバータに代えて、交流を直流に変換し、直流電圧を降圧および整流する電源回路を設ける必要がある。この実施例では、マイコン100および無線モジュール106への電源の供給は、電池から直接的に行われる。つまり、マイコン100内部の一部のコンポーネント(CPU)と無線モジュール106とには、常に電源が供給されており、電源ボタン36cがオンされたか否か、ゲーム装置12から電源オン(荷重検出)のコマンドが送信されたか否かを検出する。一方、荷重センサ364、ADコンバータ102および増幅器108には、電池110からの電源がDC−DCコンバータ104を介して供給される。DC−DCコンバータ104は、電池110からの直流電流の電圧値を異なる電圧値に変換して、荷重センサ364、ADコンバータ102および増幅器108に与える。
【0093】
これら荷重センサ364、ADコンバータ102および増幅器108への電源供給は、マイコン100によるDC−DCコンバータ104の制御によって、必要に応じて行われるようにしてよい。つまり、マイコン100は、荷重センサ364を動作させて荷重を検出する必要があると判断されるときに、DC−DCコンバータ104を制御して、各荷重センサ364、ADコンバータ102および各増幅器108に電源を供給するようにしてよい。
【0094】
電源が供給されると、各荷重センサ364は、入力された荷重を示す信号を出力する。当該信号は各増幅器108で増幅され、ADコンバータ102でアナログ信号からディジタルデータに変換されて、マイコン100に入力される。各荷重センサ364の検出値には各荷重センサ364の識別情報が付与されて、いずれの荷重センサ364の検出値であるかが識別可能にされる。このようにして、マイコン100は、同一時刻における4つの荷重センサ364のそれぞれの荷重検出値を示すデータを取得することができる。
【0095】
一方、マイコン100は、荷重センサ364を動作させる必要がないと判断されるとき、つまり、荷重検出タイミングでないとき、DC−DCコンバータ104を制御して、荷重センサ364、ADコンバータ102および増幅器108への電源の供給を停止する。このように、荷重コントローラ36では、必要なときにだけ、荷重センサ364を動作させて荷重の検出を行うことができるので、荷重検出のための電力消費を抑制することができる。
【0096】
荷重検出の必要なときとは、典型的には、ゲーム装置12(図1)が荷重データを取得したいときである。たとえば、ゲーム装置12が荷重情報を必要とするとき、ゲーム装置12は荷重コントローラ36に対して荷重取得命令を送信する。マイコン100は、ゲーム装置12から荷重取得命令を受信したときに、DC−DCコンバータ104を制御して、荷重センサ364等に電源を供給し、荷重を検出する。一方、マイコン100は、ゲーム装置12から荷重取得命令を受信していないときには、DC−DCコンバータ104を制御して、電源供給を停止する。
【0097】
あるいは、マイコン100は、一定時間ごとに荷重検出タイミングであると判断して、DC−DCコンバータ104を制御するようにしてもよい。このような周期的な荷重検出を行う場合、周期情報は、たとえば、初めにゲーム装置12から荷重コントローラ36のマイコン100に与えられて記憶されてよいし、または、予めマイコン100に記憶されてよい。
【0098】
荷重センサ364からの検出値を示すデータは、荷重コントローラ36の操作データ(入力データ)として、マイコン100から無線モジュール106およびアンテナ106bを介してゲーム装置12(図1)に送信される。たとえば、ゲーム装置12からの命令を受けて荷重検出を行った場合、マイコン100は、ADコンバータ102から荷重センサ364の検出値データを受信したときに、当該検出値データをゲーム装置12に送信する。あるいは、マイコン100は、一定時間ごとに検出値データをゲーム装置12に送信するようにしてもよい。荷重の検出周期よりも送信周期が長い場合には、送信タイミングまでに検出された複数の検出タイミングの荷重値を含むデータが送信される。
【0099】
なお、無線モジュール106は、ゲーム装置12の無線コントローラモジュール52と同じ無線規格(Bluetooth、無線LANなど)で通信可能にされる。したがって、ゲーム装置12のCPU40は、無線コントローラモジュール52等を介して荷重取得命令を荷重コントローラ36に送信することができる。荷重コントローラ36のマイコン100は、無線モジュール106およびアンテナ106aを介して、ゲーム装置12からの命令を受信し、また、各荷重センサ364の荷重検出値(または荷重算出値)を含む入力データをゲーム装置12に送信することができる。
【0100】
たとえば4つの荷重センサ364で検出される4つの荷重値の単なる合計値に基づいて実行されるようなゲームの場合には、ユーザは荷重コントローラ36の4つの荷重センサ364に対して任意の位置をとることができ、つまり、ユーザは台36aの上の任意の位置に任意の向きで乗ってゲームをプレイすることができる。しかし、ゲームの種類によっては、各荷重センサ364で検出される荷重値がユーザから見ていずれの方向の荷重値であるかを識別して処理を行う必要があり、つまり、荷重コントローラ36の4つの荷重センサ364とユーザとの位置関係が把握されている必要がある。この場合、たとえば、4つの荷重センサ364とユーザとの位置関係を予め規定しておき、当該所定の位置関係が得られるようにユーザが台36a上に乗ることが前提とされてよい。典型的には、台36aの中央に乗ったユーザの前後左右にそれぞれ荷重センサ364が2つずつ存在するような位置関係、つまり、ユーザが荷重コントローラ36の台36aの中央に乗ったとき、ユーザの中心から右前、左前、右後および左後の方向にそれぞれ荷重センサ364が存在するような位置関係が規定される。この場合、この実施例では、荷重コントローラ36の台36aが平面視で矩形状に形成されるとともにその矩形の1辺(長辺)に電源ボタン36cが設けられているので、この電源ボタン36cを目印として利用して、ユーザには電源ボタン36cの設けられた長辺が所定の方向(前、後、左または右)に存在するようにして台36aに乗ってもらうことを予め決めておく。このようにすれば、各荷重センサ364で検出される荷重値は、ユーザから見て所定の方向(右前、左前、右後および左後)の荷重値となる。したがって、荷重コントローラ36およびゲーム装置12は、荷重検出値データに含まれる各荷重センサ364の識別情報と、予め設定(記憶)された各荷重センサ364のユーザに対する位置ないし方向を示す配置データとに基づいて、各荷重検出値がユーザから見ていずれの方向に対応するかを把握することができる。これにより、たとえば前後左右の操作方向のようなユーザによるゲーム操作の意図を把握することが可能になる。
【0101】
なお、各荷重センサ364のユーザに対する配置は予め規定せずに、初期設定やゲーム中の設定などでユーザの入力によって配置が設定されるようにしてもよい。たとえば、ユーザから見て所定の方向(左前、右前、左後または右後など)の部分に乗るようにユーザに指示する画面を表示するとともに荷重値を取得することによって、各荷重センサ364のユーザに対する位置関係を特定することができるので、この設定による配置データを生成して記憶するようにしてよい。あるいは、モニタ34の画面上に、荷重コントローラ36の配置を選択するための画面を表示して、目印(電源ボタン36c)がユーザから見てどの方向に存在するかをコントローラ22による入力によって選択してもらい、この選択に応じて各荷重センサ364の配置データを生成して記憶するようにしてよい。
【0102】
(第1実施形態)
(ゲーム処理の概要)
次に、図6〜図11を参照して、本発明の一実施形態に係るゲーム処理の概要について説明する。図6は、ユーザが荷重コントローラ36の上に乗り、本実施形態に係るゲームを行う様子を示した図である。図6に示すように、ユーザはモニタ34の画面の方向を向きながら荷重コントローラ36の上に乗る。荷重コントローラ36は、その長手方向が画面に向かう方向に対して垂直になるように置かれる(横置きの配置という)。
【0103】
ゲーム装置12は、荷重コントローラ36の各荷重センサ364が検出した荷重値に基づいて、重心位置を算出する。重心位置は、荷重コントローラ36を基準として設定されるXY座標系の座標値として表わされる。図7は、重心位置を定義するXY座標系を示す図である。図7に示すように、XY座標系の原点は、荷重コントローラ36の左下端部(荷重センサ364dが配設された端部)に設定される。また、X軸は荷重コントローラ36の長辺方向と平行に設定され、Y軸は荷重コントローラ36の短辺方向と平行に設定される。このように定義された座標系において、各荷重センサ364が検出した荷重値に基づいて、重心位置が算出される。
【0104】
具体的には、荷重センサ364aが検出する荷重値をa、荷重センサ364bが検出する荷重値をb、荷重センサ364cが検出する荷重値をc、荷重センサ364dが検出する荷重値をdとした場合、重心のX軸座標値(XG)及びY軸座標値(YG)は、以下の式1及び式2によって算出される。
XG=((a+b―c−d))×m+補正値・・・(1)
YG=((a+c―b−d))×n+補正値・・・(2)
【0105】
ここで、定数m、n、および、補正値が設定されることにより、重心位置(XG,YG)は、0≦XG≦1、0≦YG≦1で算出される。例えば、荷重コントローラ36の台36aの中心は、XG=0.5、YG=0.5として表わされる。なお、上記重心位置の算出式は単なる一例であり、その他の方法によって重心位置を算出してもよい。
【0106】
XY平面には、所定の基準線と領域とが定義される。図8は、XY座標系において定義される基準線および各領域を示す図である。図8に示すように、XY座標系には、基準線70、領域71、および、領域72が定義される。基準線70は、X=0.5の直線(荷重コントローラ36の台36aを左右に2等分する線)である。領域71は、0.3<X<0.7を満たす領域である。領域72は、基準線70から所定距離離れた領域であり、0.0≦X≦0.3を満たす領域と、0.7≦X≦1.0を満たす領域とに分けられる。
【0107】
本実施形態では、上記のようにして算出される重心位置と基準線70とに基づいて、楽曲が再生される。具体的には、ユーザが荷重コントローラ36の上に乗って体重を左右の方向に移動させると、楽曲が音節ごとに順次再生される。より具体的には、ゲーム装置12は、算出した重心位置が基準線70を超えることに応じて、楽曲を音節ごとに再生する。また、ゲーム装置12は、重心位置および重心位置が移動する速さに応じて、再生する音節の音量を調整する。ここで、重心の速さ(重心位置の移動速度)は、単位時間において重心が移動する距離(X軸方向の距離)であり、重心の移動距離を時間で除することによって、算出される。
【0108】
図9は、複数の音節に分割された楽曲を示す図である。図10は、重心位置が基準線70を超えて移動する様子を示す図である。図9に示すように、楽曲Aは、全体として1つの曲であり、音節A1〜An(nは整数)に分割されている。各音節は、一定長のひとまとまりの音である。ユーザが荷重コントローラ36の上に乗って体重を左右方向に移動させると、図10に示すように、重心位置が移動する。例えば、ユーザが左足と右足とに交互に体重をかけると、図10に示すように、重心位置は、P1→P2→P3→P4のように移動する。本実施形態に係るゲームでは、重心位置が基準線70を超えて移動するごとに、各音節が再生される。例えば、図10に示すように、重心位置がP1からP2に移動することに応じて、音節A1が再生される。その後、重心位置がP2からP3に移動することに応じて、音節A2が再生される。さらに、重心位置がP3からP4に移動すると、次の音節A3が再生される。このように、本実施形態に係るゲームでは、重心位置が基準線70を超えて移動するごとに、一定長の音節が再生される。ユーザが左右方向に繰り返し体重を移動させることによって、重心位置が基準線70を超えて往復運動を繰り返し、これによって、各音節が順次再生されていく。
【0109】
次に、順次再生される音節の音量調整について説明する。音量は、重心位置および重心位置が移動する速さ(重心の速さ)に応じて、変化する。具体的には、重心位置が領域71の範囲内に存在する場合、当該重心位置と重心の速さに応じて、音量が設定される。また、重心位置が領域72の範囲内に存在する場合、音量は、最大値に設定される。より具体的には、重心位置が領域71に存在する場合、重心位置と基準線70との距離に応じて音量の上限が定められる。そして、重心の速さに応じて、定められた上限以下の音量に設定される。
【0110】
図11は、重心位置と音量との関係を示す図である。図11において、横軸はX軸の座標値を示し、縦軸は音量(0〜1.0)を示す。図11に示すように、0.0≦X≦0.3の範囲、および、0.7≦X≦1.0の範囲では、音量は常に最大値(1.0)に設定される。すなわち、領域72に重心位置が存在する場合は、音量は常に最大値に設定されて、当該音節が再生される。
【0111】
一方、0.3<X<0.7では、音量の上限値が基準線70からの距離に応じて設定される。具体的には、図11に示すように、Xが0.5〜0.7の範囲では、音量の上限値は、0.05〜0.7の範囲で線形的に設定される。0.5〜0.3の範囲も同様である。当該範囲では、音量は、設定された上限値以下の範囲で、重心の速さに応じて設定される。より具体的には、重心の速さが速いほど、上限値に近付くように音量が設定され、例えば、重心の速さに比例して音量が設定される。例えば、重心位置がP2である場合において、重心の速さが所定の閾値以上の場合、音量は、重心位置P2に応じて設定された上限値(Vm)に設定される。また、例えば、重心の速さが上記所定の閾値より小さい場合、音量は、重心位置P2に応じて設定された上限値(Vm)より小さい値(V1)に設定される。
【0112】
このように、重心位置と重心の速さとに応じて、音量が設定されて、当該設定された音量で音楽(各音節)が再生される。
【0113】
以上のように、本実施形態では、ユーザの重心位置が基準線を越えたことに応じて、各音節が順次再生される。これにより、ユーザは、体重の移動によって音楽を再生することができ、また、足を使って音を鳴らすような楽器(例えば、足踏みオルガン)を実際に演奏するような感覚を得ることができる。また、上述のように重心位置や重心の速度に応じて音量が設定されることで、強く踏むと大きな音で再生される。例えば、足踏みオルガン等の楽器では、強く踏むと大きな音が出るため、このようにして音量を変化させることで、ユーザは実際に足踏みオルガン等の楽器を実際に演奏しているような感覚を得ることができる。
【0114】
(ゲーム処理の詳細)
次に、図12〜図13を参照してゲーム装置12において実行されるゲーム処理の詳細について説明する。まず、ゲーム装置12における処理において用いられる主なデータについて図12を用いて説明する。図12は、ゲーム装置12のメインメモリ(外部メインメモリ46又は内部メインメモリ42e)に記憶される主なデータを示す図である。
【0115】
図12に示されるように、ゲーム装置12のメインメモリのデータ記憶領域500には、荷重値データ502、重心位置データ504、再生中音節データ506、設定音量データ508、現在音量データ510、及び、音節データ512が記憶される。なお、メインメモリには、図12に示すデータの他、ゲーム処理を実行するゲームプログラム(音楽演奏プログラム)や、その他ゲーム処理に必要な種々のデータが記憶される。
【0116】
荷重値データ502は、荷重コントローラ36の各荷重センサ364が検出した荷重値を示すデータである。具体的には、荷重値データ502には、荷重センサ364aが検出した荷重値a、荷重センサ364bが検出した荷重値b、荷重センサ364cが検出した荷重値c、および、荷重センサ364dが検出した荷重値dが含まれる。なお、荷重コントローラ36からゲーム装置12に、例えば1/200秒毎に、各荷重センサ364a〜dが検出する荷重値を示すデータが送信される。ゲーム装置12(CPU40)は、荷重コントローラ36から送信されるデータを受信すると、荷重値データ502としてメインメモリに保存する。
【0117】
重心位置データ504は、各荷重センサ364a〜364dの荷重値から上記式1及び2によって算出される重心位置を示すデータの集合である。具体的には、重心位置データ504は、配列であり、配列の各要素には重心位置を示すデータが時系列に格納される。
【0118】
再生中音節データ506は、現在再生中の音節を示すデータである。具体的には、再生中音節データ506は、現在再生中の音節の番号(1〜n)を示すデータである。
【0119】
設定音量データ508は、設定される再生音量を示すデータであり、0〜1.0の範囲で変化する変数である。
【0120】
現在音量データ510は、現在の再生音量を示すデータであり、0〜1.0の範囲で変化する変数である。後述のように、音量が設定されると(後述の処理により算出された音量が設定音量データ508に設定されると)、所定時間かけて当該設定された音量に変化する。現在音量データ510は、現在の実際の音量を示すデータであり、上記設定音量データ508が示す音量とは異なる値となることがある。
【0121】
音節データ512は、各音節A1〜Anを示す音楽データの集合である。
【0122】
次に、図13を参照して、ゲーム装置12によって実行されるゲーム処理について説明する。図13は、ゲーム装置12において実行される第1実施形態のゲーム処理の流れを示すフローチャートである。ゲーム装置12の電源が投入されると、ゲーム装置12のCPU40は、ROM/RTC48に記憶されている起動プログラムを実行し、これによって外部メインメモリ46等の各ユニットが初期化される。次に、光ディスク18に記憶されたゲームプログラムがメインメモリに読み込まれ、CPU40によって当該ゲームプログラムの実行が開始される。図13に示すフローチャートは、以上の処理が完了した後に行われるゲーム処理を示すフローチャートである。なお、図13では、本発明に直接関連しないゲーム処理については記載を省略する。また、図13に示すステップS4〜ステップS10の処理ループは、1フレーム(例えば1/60秒。上記フレーム時間)毎に繰り返し実行される。
【0123】
まず、ステップS1において、CPU40は、初期化処理を行う。初期化処理では、例えば、零点補正が行われる。零点補正とは、各荷重センサ364に荷重が加わっていない状態(台36aの上に何も乗っていない状態)において、各荷重センサ364が検出する荷重値を0(kg)にする処理である。CPU40は、次にステップS2の処理を行う。
【0124】
ステップS2において、CPU40は、ユーザが荷重コントローラに乗るまで待機する。具体的には、CPU40は、荷重値データ502を参照して、各荷重センサ364によって検出された荷重値の合計が、所定の閾値以上か否かを判定し、判定結果が肯定になるまで、当該処理を繰り返し実行する。荷重値の合計が、所定の閾値以上である場合、CPU40は、次にステップS3の処理を実行する。
【0125】
ステップS3において、CPU40は、楽曲再生処理を開始する。具体的には、CPU40は、楽曲Aの最初の音節A1の再生を開始するとともに、再生中音節データに1を設定する。次にステップS4の処理を実行する。
【0126】
ステップS4において、CPU40は、重心位置を算出する。具体的には、CPU40は、荷重値データ502を参照して、各荷重センサ364によって検出された荷重値を取得する。CPU40は、取得した各荷重値を上記式(1)および(2)に代入することにより、重心位置G0(XG0,YG0)を算出する。そして、CPU40は、算出した重心位置を重心位置データ504としてメインメモリに格納する。CPU40は、次にステップS5の処理を実行する。
【0127】
ステップS5において、CPU40は、重心が基準線70を超えたか否かを判定する。具体的には、CPU40は、重心位置データ504を参照して、直前のフレーム(処理ループ)においてステップS4で算出された重心位置G1(XG1,YG1)と、現在のフレームにおいてステップS4で算出された重心位置G0(XG0,YG0)とに基づいて、重心が基準線70を越えて移動したか否かを判定する。例えば、CPU40は、XG1≦0.5、かつ、XG0>0.5である場合、重心位置が基準線70を超えたと判定する。あるいは、CPU40は、XG1>0.5、かつ、XG0≦0.5である場合、重心位置が基準線70を超えたと判定する。すなわち、CPU40は、直前の重心位置G1が基準線70よりも左側の領域に存在する場合において、最新の重心位置G0が基準線70よりも右側の領域に存在するとき、重心位置が基準線70を超えたと判定する。また、CPU40は、直前の重心位置G1が基準線70よりも右側の領域に存在する場合において、最新の重心位置G0が基準線70よりも左側の領域に存在するとき、重心位置が基準線70を超えたと判定する。判定結果が肯定の場合、CPU40は、次にステップS6の処理を実行する。一方、判定結果が否定の場合、CPU40は、次にステップS7の処理を実行する。
【0128】
ステップS6において、CPU40は、現在再生中の音節の再生を停止して、次の音節の再生を開始する。具体的には、CPU40は、再生中音節データ506を参照して、現在再生中の音節の次の音節について、再生を開始するとともに、再生中音節データ506を更新する。次に、CPU40は、ステップS9の処理を実行する。
【0129】
一方、ステップS7において、CPU40は、現在再生中の音節について再生が終了したか否かを判定する。具体的には、CPU40は、再生中音節データ506によって示される音節の再生を開始してからの経過時間が一定時間を超えたか否かを判定する。判定結果が肯定の場合、CPU40は、次にステップS8の処理を実行する。判定結果が否定の場合、CPU40は、次にステップS9の処理を実行する。
【0130】
ステップS8において、CPU40は、現在再生中の音節の最後の音符の音を持続させたまま、楽曲の進行を停止する。次に、CPU40は、ステップS9の処理を実行する。
【0131】
ステップS9において、CPU40は、重心位置および重心が移動する速さ(重心の速さ)に応じて、再生音量を変化させる。具体的には、CPU40は、まず、現在の重心位置G0が、基準線70から所定距離以上離れた領域72に存在するか否かを判定する。重心位置G0が領域72に存在する場合、CPU40は、音量を最大値(1.0)に設定して、設定音量データ508に当該最大値を格納する。
【0132】
重心位置G0が基準線70から所定距離内の領域71に存在する場合、CPU40は、当該重心位置G0に応じて音量の上限値(0.05〜0.7の範囲)を設定するとともに、重心の速さに応じて、当該上限値以下で音量を設定する。例えば、図10に示すように現在の重心位置G0がP2であった場合、CPU40は、図11に示すグラフに基づいて重心位置P2における上限値Vmを設定する。そして、CPU40は、重心の速さに応じて、音量を設定する。具体的には、重心の速さが速ければ速いほど、上限値に近づくように音量が設定される。例えば、CPU40は、現在の重心の速さに所定の定数をかけることによって、音量の値を算出する。なお、重心の速さは、所定フレーム前の重心位置と現在の重心位置との距離(X軸方向のみの距離)を算出し、算出した距離をフレーム数で除することにより、求められる。そして、CPU40は、このようにして算出した音量を設定音量データ508としてメインメモリに格納する。
【0133】
さらにステップS9において、CPU40は、現在の音量を上述のようにして設定された音量に所定フレームかけて変化させる。具体的には、CPU40は、設定音量データ508に格納された値と、現在音量データ510に格納された現在の音量の値とに基づいて、音節を再生する際の再生音量を決定する。例えば、CPU40は、現在の音量の値と設定音量データ508に格納された値との差分を算出し、当該差分を所定フレームで除した値を求める。そして、CPU40は、現在の音量に当該差分を所定フレームで除した値を加えることによって、現在の音量を設定音量データ508に格納された値に線形的に変化させる。このようにして、CPU40は、現在音量データ510を更新する。そして、CPU40は、更新した現在音量データ510に格納された値に応じた再生音量で、再生中音節データ506によって示される音節を再生する。なお、現在の音量から設定音量データ508に格納された音量値へはどのように変化されてもよく、非線形的に変化されてもよい。
【0134】
以上のように、ステップS9において、CPU40は、再生音量を所定フレームかけて徐々に変化させる。ステップS9の後、次に、ステップS10の処理が実行される。
【0135】
ステップS10において、CPU40は、ユーザが荷重コントローラ36から降りたか否かを判定する。具体的には、CPU40は、荷重値データ502を参照して、各荷重センサ364によって検出された荷重値の合計が、所定の閾値未満か否かを判定する。判定結果が否定の場合、CPU40は、ステップS4の処理を再び実行する。一方、判定結果が肯定の場合、CPU40は、図13に示す処理を終了する。
【0136】
以上のように、本実施形態では、重心が基準線70を超えて移動したことに応じて、各音節が順次再生される。また、再生される音節の音量は、重心位置および重心の速さに応じて変化する。これにより、ユーザは重心を移動させながら音楽を再生することができ、例えば、足踏みオルガンのような楽器を足で踏みながら演奏するような感覚を得ることができる。
【0137】
すなわち、ユーザは荷重コントローラ36を左右の足で交互に踏むことによって、楽曲を音節毎に順次再生させることができる。また、上記実施形態では、重心の速さが速ければ速いほど、また、重心位置が基準線70から遠ければ遠いほど大きな音量で再生される。逆に、重心位置が基準線70よりも近いほど、また、重心の速さが遅いほど(重心の速さが0に近づくほど)、小さな音量で再生される。このため、ユーザが荷重コントローラ36を左右の足で交互に踏む際に、強く踏めば踏むほど(速く踏めば踏むほど)、大きな音量で各音節が再生される。これにより、ペダルを強く踏むと大きな音が出る実際の足踏みオルガンと同様の要領で、再生音量を調整することができる。
【0138】
また、上記実施形態では、重心位置および重心の速さに応じて音量が設定され、当該設定された音量に所定フレーム(所定時間)かけて徐々に変化される。これにより、急激に再生音量が変化することを防止できる。例えば、音量が0に設定された場合、所定フレームかけて0になるように再生音量が変化される(徐々に再生音量が小さくなって無音になる)。これによって、実際の足踏みオルガンにおいてペダルを踏むことをやめてもしばらくは音が鳴り続け、時間が経過するにしたがって徐々に音量が小さくという現象と一致させることができ、実際の足踏みオルガンを演奏している感覚をユーザに与えることができる。
【0139】
(第2実施形態)
次に、第2実施形態について説明する。第2実施形態においては、上述した第1実施形態と同様のゲームシステムを用いたゲーム処理が行われる。具体的には、第2実施形態では、上記基準線70は設定されずに、重心の速さが第1の閾値を超えている場合に、各音節が順次再生される。すなわち、第2実施形態では、重心位置が基準線70を超えたか否かに関わらず、重心の速さが第1の閾値を超えている場合に、各音節が一定の速さで順次再生される。つまり、重心の速さが第1の閾値を超えている状態が継続していると、各音節は一定の速さで順次再生されて楽曲の再生が進行する。この場合において、再生音量は、重心の速さに応じて変化する。具体的には、再生音量は、重心の速さに比例して大きくなるように設定される。なお、重心の速さが速すぎる場合(重心の速さが第2の閾値(>第1の閾値)を超えている場合)、楽曲の再生は停止する。
【0140】
(ゲーム処理の詳細)
以下、図14を参照して、第2実施形態におけるゲーム装置12において実行されるゲーム処理の詳細について説明する。
【0141】
図14は、ゲーム装置12において実行される第2実施形態のゲーム処理の流れを示すフローチャートである。なお、図14において、図13と同様の処理については、同じ符号を付し説明を省略する。
【0142】
まず、ステップS1〜ステップS3の処理が行われた後、ステップS20の処理が行われる。ステップS20において、CPU40は、重心が移動する速さ(重心の速さ)を算出する。重心の速さは、第1実施形態と同様に、所定フレーム前の重心位置と現在の重心位置との距離(X軸方向のみの距離)を算出し、算出した距離をフレーム数で除することにより、求められる。次に、CPU40は、ステップS21の処理を実行する。
【0143】
ステップS21において、CPU40は、重心の速さが所定の範囲内か否かを判定する。具体的には、CPU40は、ステップS20で算出した重心の速さが、第1の閾値より大きく、かつ、重心の速さが第2の閾値(>第1の閾値)より小さいか否かを判定する。判定結果が肯定の場合、CPU40は、次にステップS22の処理を実行する。一方、判定結果が否定の場合、CPU40は、次にステップS24の処理を実行する。
【0144】
ステップS22において、CPU40は、現在音節を再生中か否かを判定する。具体的には、CPU40は、再生中音節データ506によって示される音節の再生を開始してからの経過時間が一定時間内か否かを判定する。判定結果が肯定の場合、CPU40は、次にステップS23の処理を実行する。一方、判定結果が否定の場合、CPU40は、次にステップS6の処理を実行する。
【0145】
ステップS23において、CPU40は、重心の速さに応じて、再生音量を変化させる。具体的には、CPU40は、ステップS20で算出した重心の速さに所定の定数をかけることによって、音量の値を算出し、算出した値を設定音量データ508としてメインメモリに格納する。次に、CPU40は、設定音量データ508に格納された値と、現在音量データ510に格納された現在の音量の値とに基づいて、音節を再生する際の再生音量を決定する。具体的には、上述のステップS9と同様に、CPU40は、再生音量を所定フレームかけて徐々に変化させる。そして、CPU40は、決定した再生音量を現在音量データ510としてメインメモリに格納するとともに、当該再生音量で再生中音節データ506によって示される音節を再生する。ステップS23の処理の後、CPU40は、ステップS10の処理を実行する。
【0146】
一方、ステップS24において、CPU40は、曲の進行を停止する。すなわち、CPU40は、重心が殆ど移動していない場合(重心の速さが第1の閾値以下の場合)、または、重心の速さが速すぎる場合(重心の速さが第2の閾値以上である場合)、曲の進行を停止する。次に、CPU40は、ステップS10の処理を実行する。なお、ステップS24で曲の進行が停止した場合において、再び重心の速さが所定の範囲となった場合(ステップS21でYes)、停止した音節の次の音節から再生が開始され(ステップS6)、曲の進行が再開する。
【0147】
なお、第2実施形態においては、楽曲が予め複数の音節に分割される必要はない。すなわち、楽曲は予め複数の音節に分割されずに1つの曲として構成され、重心の速さが所定の範囲である場合は、当該1つの曲を順次再生し、重心の速さが所定の範囲でない場合は当該曲の再生を停止してもよい。具体的には、ステップS22およびステップS6の処理が実行されなくてもよい。
【0148】
以上のように、第2実施形態においては、重心の速さが第1の閾値を超えている場合に、各音節が順次再生される。また、各音節の再生音量は、重心の速さに応じて変化する。これにより、ユーザが重心を移動させている場合に楽曲を再生させることができる。また、第2実施形態では、重心の速さが速ければ速いほど、大きな音量で再生される。このため、ユーザが荷重コントローラ36を左右の足で交互に踏む際に、強く踏めば踏むほど(速く踏めば踏むほど)、大きな音量で各音節が再生される。これにより、ペダルを強く踏むと大きな音が出る実際の足踏みオルガンと同様の要領で、再生音量を調整することができる。
【0149】
また、上記実施形態では、重心の速さに応じて音量が設定され、当該設定された音量に所定フレーム(所定時間)かけて徐々に変化される。これにより、急激に再生音量が変化することを防止できる。例えば、音量が0に設定された場合、所定フレームかけて0になるように再生音量が変化される(徐々に再生音量が小さくなって無音になる)。これによって、実際の足踏みオルガンにおいてペダルを踏むことをやめてもしばらくは音が鳴り続け、時間が経過するにしたがって徐々に音量が小さくという現象と一致させることができ、実際の足踏みオルガンを演奏している感覚をユーザに与えることができる。
【0150】
(変形例)
なお、上記第1および第2実施形態では、楽曲Aは一定長の音節によって分割され、当該音節が、重心の移動に応じて順次再生された。他の実施形態では、楽曲は1音ずつ分割され、重心の移動に応じて1音ずつ順次再生されてもよい。また、他の実施形態では、楽曲は、それぞれ長さの異なる部分(所定の間隔)に分割されており、重心の移動に応じて各部分が順次再生されてもよい。
【0151】
また、上記第1および第2実施形態では、曲のテンポ(各音節の再生速度)は一定であるとした。他の実施形態では、重心位置が基準線70を超えたと判定されてから次に重心位置が基準線70を超えたと判定されるまでの時間に応じて、各音節の再生速度を変化させてもよい。具体的には、ゲーム装置12は、重心位置が基準線70を超えたと判定してから次に重心位置が基準線70を超えたと判定するまでの時間を計測する。そして、ゲーム装置12は、当該計測時間に応じて、音節の再生速度を変化させてもよい。例えば、当該時間が短ければ短いほど、当該音節の再生速度を速く設定してもよい。これによって、ユーザが左右方向に体を速く移動させるほど、各音節の再生速度を速くすることができる。
【0152】
また、他の実施形態では、曲のテンポは、重心の速さに応じて変化されてもよい。この場合において、例えば、重心の速さが速ければ速いほど、曲のテンポ(各音節の再生速度)を速く設定してもよい。
【0153】
また、第1実施形態では、重心位置が荷重コントローラ36を左右に2等分する基準線70を超えて移動した場合に、音節を順次再生した。他の実施形態では、基準線はどのような位置に配置されてもよいし、基準線は複数設定されてもよい。また、基準線は直線に限らず、曲線であってもよい。図15から図17は、基準線の他の例を示す図である。図15に示すように、基準線は、荷重コントローラ36を左右に2等分する線701と、上下に2等分する線702として定義されてもよい。また、図16に示すように、基準線は曲線703として定義されてもよい。また、図示は省略するが、基準線は、荷重コントローラ36の台36aを複数の領域に分割する直線である必要はなく、台36aを複数の領域に分割しない線分であってもよい(例えば、基準線はX=0.5で、かつ、0.3<Y<0.7の線分として定義されてもよい)。
【0154】
また、図17に示すように、基準線は、Y軸に平行な2つの線704および705として定義されてもよい。この場合において、例えば、重心位置が2つの線704および705を超えて移動した場合に、次の音節が再生されてもよい。すなわち、重心位置が線704よりも左側の領域から、2つの線704と705との間の領域に移動した場合は、次の音節を再生せず、さらに重心位置が線705よりも右側に移動した場合に、次の音節を再生してもよい。このように、2つの線によって基準線を定義することによって、いわゆる遊びの領域を持たせることができ、重心位置が図10に示す基準線70付近で左右に移動している場合に、ユーザの意図に反して次々に曲が進行することを防止することができる。
【0155】
また、第1実施形態では、重心位置が基準線70を超えて移動したことに応じて、各音節が順次再生された。他の実施形態では、重心位置の移動方向も考慮して、各音節が再生されてもよい。図18は、他の実施形態において移動方向に応じて各音節が順次再生されることを示す図である。図18に示すように、例えば、基準線70によって分割される2つの領域のうち、一方の領域(左側領域)から他方の領域(右側領域)に重心位置が移動した場合は、次の音節を再生し、右側領域から左側領域に重心位置が移動した場合は、次の音節を再生しない。すなわち、基準線70を挟んだ一方の側(左側)から他方の側(右側)に重心位置が移動した場合にのみ、次の音節を再生してもよい。この場合において、基準線70を挟んだ他方の側から一方の側に重心位置が移動した場合は、現在再生中の音節を継続して再生してもよいし、現在再生中の音節を停止してもよい。
【0156】
また、第1実施形態では、領域71においては重心位置および重心の速さに応じて音量が設定された。すなわち、重心位置が基準線70から離れることに応じて、音量の上限値が設定され、当該上限値以下の範囲で、重心の速さに応じて音量が設定された。他の実施形態では、重心位置がどの領域に存在しているかに関わらず、重心位置および重心の速さの何れか一方のみに基づいて音量が設定されてもよい。例えば、重心位置のみに基づいて音量が設定される場合、図11に示すようにXが0.3〜0.7の範囲において示される上限値が、音量として設定されてもよい(すなわち、位置P2のときの音量はVmに設定されてもよい)。また、例えば、重心の速さのみに基づいて、音量が設定されてもよい。
【0157】
また、第1実施形態では、重心位置が基準線70から離れるほど音量が大きく設定されたが、他の実施形態では、重心位置が基準線70から離れるほど音量が小さく設定されてもよい。このように、重心位置と基準線との位置関係に基づいて、音量が設定されてもよい。また、第1実施形態では、重心の速さが速いほど音量が大きく設定されたが、重心の速さが速いほど音量が小さく設定されてもよい。
【0158】
また、第1実施形態では重心が基準線を越えて移動したことに応じて各音節が順次再生され、第2実施形態では重心の速さが所定値以上の場合に各音節が順次再生された。他の実施形態では、次の音節を再生するか否かを判定するための条件は、これらに限らない。すなわち、上記実施形態では、足踏みオルガンのような楽器を想定して、足踏みオルガンにおける足踏み動作と類似するような重心位置の移動があったか否かを判定し、それによって音楽の進行を制御した。他の実施形態では、他の特定の楽器を想定してその楽器の演奏時における動作を重心位置の移動によって判定し、それによって音楽の進行を制御してもよいし、特定の楽器を想定せずに、重心位置の移動によって音楽の進行を制御してもよい。
【0159】
例えば、重心位置が所定のパターンで移動しているか否かを判定し、当該判定結果が肯定の場合に、次の音節を再生してもよい。例えば、重心位置が円または楕円形状を描くように移動したか否かを判定し、重心位置が円または楕円形状を描くように移動するごとに次の音節を順次再生してもよい。また、例えば、重心位置が所定方向に往復運動しているか否かを判定し、往復運動している場合は各音節を順次再生してもよい。このような重心の移動パターンは、上記第1および第2実施形態の足踏みオルガンの例において示した重心の移動パターンと基本的には同じであり、重心の移動の判定方法が異なるだけである。すなわち、第1実施形態では重心位置が左右方向に往復運動しているか否かを基準線を用いて判定したが、他の実施形態では、当該重心の移動パターンを他の方法によって判定してもよい。例えば、重心の移動方向が反転したか否か(すなわち、現在の重心の移動方向と直前の重心の移動方向とが略180度異なるか否か)を判定し、判定結果が肯定となるごとに、次の音節を順次再生してもよい。
【0160】
以上のように、他の実施形態では、重心位置の移動が所定の条件を満たすか否かを判定し、判定結果が肯定となるごとに、各音節が順次再生されてもよい。ここで、重心位置の移動が所定の条件を満たすか否かの判定は、例えば、重心位置が基準線を越えて移動したか否かの判定であってもよいし、重心の速さが所定値以上か否かの判定であってもよい。また、重心位置の移動が所定の条件を満たすか否かの判定は、例えば、重心位置が所定のパターンで移動しているか否かの判定であってもよい。
【0161】
また、本実施形態では、4つの荷重センサ364を備えた荷重コントローラ36を用いて上記処理を行った。他の実施形態では、荷重センサは4つである必要はなく、3つであってもよいし、5つ以上であってもよい。また、4つの荷重センサ364は、荷重コントローラ36の四隅に配置される必要はなく、どのように配置されてもよい。すなわち、荷重センサの数や配置はどのようなものでもよく、荷重センサの幾何学的な配置に固有の補正を行うことによって、重心位置を算出することができる。
【0162】
また、本実施形態では、各荷重センサ364からの検出値を示すデータがゲーム装置12に送信されることとした。他の実施形態では、荷重コントローラ36が、各荷重センサ364が検出する荷重の合計値と重心位置とを算出し、算出した合計値と重心位置とをゲーム装置12に送信してもよい。すなわち、荷重コントローラ36が算出した合計荷重値と重心位置とを含む信号をゲーム装置12が受信し、ゲーム装置12が受信した信号からこれらの情報を取得してもよい。
【0163】
また、本発明に係るゲームプログラムは、光ディスク18等の外部記憶媒体を通じてゲーム装置12に供給されるだけでなく、有線又は無線の通信回線を通じてゲーム装置12に供給されてもよい。また、ゲームプログラムは、ゲーム装置12内部の不揮発性記憶装置に予め記録されていてもよい。なお、ゲームプログラムを記憶する情報記憶媒体(コンピュータ読み取り可能な記憶媒体)としては、CD−ROM、DVD、あるいはそれらに類する光学式ディスク状の記憶媒体の他に、不揮発性半導体メモリでもよい。
【0164】
また、上述したプログラムは、ゲーム装置12以外の情報処理装置、例えば、音楽演奏のための専用装置や荷重を測定可能な装置を備えるパーソナルコンピュータ等において実行されてもよい。
【0165】
また、上記音楽演奏の方法は、複数の機器が有線又は無線で接続されて構成された情報処理システムによって実現されてもよい。例えば、荷重を測定する荷重測定器と情報処理装置とがローカル接続され、当該情報処理装置と楽曲を保存するサーバとがインターネット等のネットワークで接続されてもよい。そして、情報処理装置が当該サーバから楽曲をダウンロードし、当該ダウンロードした楽曲を、荷重測定器からの信号に応じて順次再生してもよい。
【0166】
また、本実施形態においては、ゲーム装置12のCPU40がゲームプログラムを実行することによって、上述したフローチャートによる処理が行われた。他の実施形態においては、上記処理の一部又は全部は、ゲーム装置12が備える専用回路によって行われてもよい。
【符号の説明】
【0167】
10 ゲームシステム
12 ゲーム装置
36 荷重コントローラ
364 荷重センサ
40 CPU
70 基準線
【技術分野】
【0001】
本発明は、音楽演奏プログラム、音楽演奏装置、音楽演奏方法および音楽演奏システムに関し、より特定的には、体重の重心の移動に基づいて音楽の演奏を行う音楽演奏プログラム、音楽演奏装置、音楽演奏方法および音楽演奏システムに関する。
【背景技術】
【0002】
従来、画面上をスクロール移動する位置指示マークによる指示に応じた踏み位置をユーザが踏むことにより、音楽に合わせてステップを行うダンスゲーム装置が存在する(例えば、特許文献1)。具体的には、特許文献1に記載のダンスゲーム装置は、複数の踏み台部と、音楽を出力するスピーカと、踏み位置マークを表示する表示部とが備える。表示部には、音楽の進行に応じて踏み位置マークが表示されて、画面上をスクロール移動する。踏み位置マークが所定の位置に移動したタイミングと、当該踏み位置マークに対応した踏み台部が踏まれたタイミングとに応じて得点が算出される。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2000−37490号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記特許文献1に記載のダンスゲーム装置は、音楽の進行に応じて所定の踏み位置を踏むことによって、リズム感を表現するものであり、音楽の進行を体全体あるいは体の一部で制御するものではなかった。このため、例えば、音楽を演奏するという感覚をユーザに与えるようなものではなかった。また、特許文献1に記載のゲーム装置では、踏み台部が踏まれたことを検出するのみであり、ユーザの体全体の動きをゲームに反映するという点では不十分であった。
【0005】
それ故、本発明の目的は、ユーザの体の動きを反映して音楽を演奏することが可能な音楽演奏装置、音楽演奏プログラム等を提供することである。
【課題を解決するための手段】
【0006】
本発明は、上記の課題を解決するために、以下の構成を採用した。
【0007】
本発明は、荷重センサを備えた荷重測定器からの信号を処理する音楽演奏装置のコンピュータにおいて実行される音楽演奏プログラムである。当該音楽演奏プログラムは、重心位置取得手段と、判定手段と、音楽再生手段として、上記コンピュータを機能させる。重心位置取得手段は、上記荷重測定器からの信号に基づいて、重心位置を繰り返し取得する。判定手段は、上記重心位置取得手段によって取得された重心位置の移動が所定の条件を満たすか否かを判定する。音楽再生手段は、上記判定手段によって上記重心位置の移動が上記所定の条件を満たすと判定されるごとに、所定の音楽を順次再生する。
【0008】
上記によれば、重心位置の移動が所定の条件を満たすごとに、所定の音楽が順次再生される。これにより、ユーザは体の動きに応じて音楽の進行を制御することができる。例えば、重心位置が所定の線を越えて移動した場合や、重心の移動速度(重心が移動する速さ)が所定値以上の場合、重心位置の移動パターンが所定のパターンと一致する場合において、重心位置の移動が所定の条件を満たすと判定されてもよい。
【0009】
本発明の他の構成では、上記判定手段は、上記重心位置取得手段によって取得された重心位置が所定の基準線を越えて移動したことに応じて、所定の音楽を再生するか否かを判定してもよい。上記音楽再生手段は、上記判定手段によって上記所定の音楽を再生すると判定されるごとに、上記所定の音楽を所定の間隔ずつ順次再生する。
【0010】
上記によれば、重心位置が基準線を越えて移動したことに応じて所定の音楽を再生するか否かが判定され、所定の音楽を再生すると判定されるごとに、所定の音楽を所定の間隔ずつ順次再生することができる。例えば、重心位置が基準線を越えて移動したと判定されるとある音節が再生され、次に重心位置が基準線を越えて移動したと判定されると、次の音節が再生される。これにより、ユーザの体の動きを音楽再生の制御に反映することができる。
【0011】
本発明の他の構成では、上記判定手段は、上記重心位置取得手段によって取得された重心位置に基づいて算出される重心位置の移動速度が所定値以上か否かを判定してもよい。上記音楽再生手段は、上記判定手段によって上記重心位置の移動速度が所定値以上であると判定される場合、所定の音楽を順次再生する。
【0012】
上記によれば、重心位置の移動速度が所定値以上であると判定される場合に、所定の音楽を順次再生することができる。これにより、ユーザの体の動きを音楽再生の制御に反映することができる。
【0013】
本発明の他の構成では、上記プログラムは、音量設定手段として、上記コンピュータを更に機能させてもよい。音量設定手段は、上記重心位置取得手段によって取得された重心位置を用いて、上記所定の音楽の再生音量を設定する。上記音楽再生手段は、上記音量設定手段で設定された再生音量で上記所定の音楽を再生する。
【0014】
上記によれば、重心位置取得手段によって取得された重心位置を用いて、所定の音楽の再生音量を設定することができる。例えば、重心位置や重心が移動する速さに応じて、再生音量を設定することができる。これにより、ユーザの重心移動によって再生音量を変化させることができる。
【0015】
本発明の他の構成では、上記プログラムは、音量設定手段として上記コンピュータを更に機能させてもよい。音量設定手段は、上記重心位置取得手段によって取得された重心位置と上記所定の基準線との位置関係に基づいて、上記所定の音楽の再生音量を設定する。上記音楽再生手段は、上記音量設定手段で設定された再生音量で上記所定の音楽を再生する。
【0016】
上記によれば、重心位置に応じて再生音量を設定することができ、ユーザの重心移動によって再生音量を変化させることができる。
【0017】
本発明の他の構成では、上記音量設定手段は、上記所定の基準線から上記重心位置までの距離が遠いほど上記再生音量を大きく設定してもよい。
【0018】
上記によれば、重心位置が基準線から離れるほど音量を大きくすることができ、ユーザの踏む力に応じて、音量を大きくすることができる。これにより、ユーザは、例えば、ペダルを強く踏むと大きな音が出る足踏みオルガンと同じ要領で再生音量を調整することができ、足踏みオルガンを演奏しているような感覚をユーザに与えることができる。
【0019】
本発明の他の構成では、上記音量設定手段は、上記重心位置が上記所定の基準線を含む所定の領域にない場合は、上記再生音量を第1の音量に設定し、上記重心位置が上記所定の領域にある場合は、上記第1の音量よりも小さな音量の範囲で上記再生音量を設定してもよい。
【0020】
上記によれば、重心位置が基準線を含む所定の領域を超えると、再生音量を第1の音量に設定し、重心位置が所定の領域にある場合は、第1の音量よりも小さな音量で再生音量を設定することができる。これにより、基準線からの距離が所定以上の場合は音量を最大値に固定し、基準線からの距離が所定未満の場合は最大値よりも小さな音量に設定することができる。
【0021】
本発明の他の構成では、上記音量設定手段は、上記所定の基準線から上記重心位置までの距離に応じて音量の上限値を定め、当該上限値内で上記重心位置取得手段によって取得された重心位置に基づいて算出される重心位置の移動速度に応じて、上記再生音量を設定してもよい。
【0022】
上記によれば、重心位置および重心の移動速度に応じて、再生音量を設定することができる。例えば、重心が比較的速く移動している場合でも重心位置が基準線から比較的近い範囲で移動している場合は、再生音量を小さくすることができる。
【0023】
本発明の他の構成では、上記音量設定手段は、上記重心位置取得手段によって取得された重心位置に基づいて算出される重心位置の移動速度に応じて、上記再生音量を設定してもよい。
【0024】
上記によれば、重心の移動速度に応じて、再生音量を設定することができ、ユーザの重心移動によって再生音量を変化させることができる。
【0025】
本発明の他の構成では、上記音量設定手段は、上記重心位置の移動速度が速いほど上記再生音量を大きく設定してもよい。
【0026】
上記によれば、重心の移動速度が速いほど音量を大きくすることができ、ユーザは、例えば、足踏みオルガンと同様の要領で音量を調整することができる。
【0027】
本発明の他の構成では、上記音楽再生手段は、現在の再生音量から上記音量設定手段で設定された再生音量へ所定期間かけて徐々に変化させて、上記所定の音楽を再生してもよい。
【0028】
上記によれば、再生音量が急激に変化することを防止することができる。
【0029】
本発明の他の構成では、上記プログラムは、再生速度設定手段として、上記コンピュータを更に機能させてもよい。再生速度設定手段は、上記重心位置取得手段によって取得された重心位置に基づいて算出される重心位置の移動速度に基づいて、上記所定の音楽の再生速度を設定する。上記音楽再生手段は、上記再生速度設定手段によって設定された再生速度で、上記所定の音楽を再生する。
【0030】
上記によれば、重心の移動速度に基づいて、音楽の再生速度(テンポ)を変化させることができる。
【0031】
本発明の他の構成では、上記再生速度設定手段は、上記重心位置の移動速度が速いほど、上記再生速度を速く設定してもよい。
【0032】
上記によれば、重心の移動速度が速いほど、音楽の再生速度(テンポ)を速くすることができ、ユーザの動きを音楽のテンポと合わせることができる。
【0033】
本発明の他の構成では、上記プログラムは、時間計測手段と、再生速度設定手段として、上記コンピュータを更に機能させてもよい。時間計測手段は、直前に上記判定手段によって上記所定の音楽を再生すると判定されてから、次に上記判定手段によって上記所定の音楽を再生すると判定されるまでの間の時間を計測する。再生速度設定手段は、上記時間計測手段によって計測された時間に基づいて、上記所定の音楽の再生速度を設定する。上記音楽再生手段は、上記再生速度設定手段によって設定された再生速度で、上記所定の音楽を再生する。
【0034】
上記によれば、時間計測手段によって計測された時間に基づいて、音楽の再生速度(テンポ)を変化させることができる。
【0035】
本発明の他の構成では、上記再生速度設定手段は、上記時間計測手段によって計測された時間が短いほど、上記再生速度を速く設定してもよい。
【0036】
上記によれば、例えばユーザが速く移動した場合は、音楽の再生速度を速くすることができ、ユーザの動きを音楽のテンポと合わせることができる。
【0037】
本発明の他の構成では、上記判定手段は、上記重心位置が上記所定の基準線を越えて移動した場合において、当該所定の基準線をはさんだ一方の側から他方の側に上記重心位置が移動したときのみ、上記所定の音楽を再生すると判定してもよい。
【0038】
上記によれば、重心位置が基準線を越えて移動した場合において、その移動方向が一定の方向である場合のみ、所定の音楽を所定の間隔ずつ順次再生することができる。
【0039】
本発明の他の構成では、上記プログラムは、上記荷重測定器からの信号に基づいて、上記荷重測定器にかかる荷重値を繰り返し取得する荷重値取得手段として、上記コンピュータを更に機能させてもよい。上記音楽再生手段は、上記荷重値取得手段によって取得された荷重値が所定値以上の場合のみ上記所定の音楽を再生する。
【0040】
上記によれば、例えば、荷重測定器に荷重がかかっている場合のみ、所定の音楽を再生することができる。
【0041】
上記音楽再生手段は、上記判定手段によって上記重心位置の移動が上記所定の条件を満たすと判定されるごとに、上記所定の音楽を所定の間隔ずつ順次再生してもよい。
【0042】
上記によれば、所定の音楽を所定の間隔ずつ順次再生することができる。
【0043】
本発明の他の構成では、前記所定の音楽は、一定の間隔で区切られていてもよい。
【0044】
上記によれば、例えば、所定の音楽を音節毎に順次再生することができる。
【0045】
本発明の他の構成では、上記所定の音楽は、1音ずつ区切られていてもよい。上記音楽再生手段は、上記判定手段によって上記所定の音楽を再生すると判定されるごとに、上記所定の音楽を1音ずつ順次再生する。
【0046】
上記によれば、所定の音楽を1音ずつ順次再生することができる。
【0047】
本発明の他の構成では、上記荷重測定器は複数の荷重センサを有してもよい。上記重心位置取得手段は、上記複数の荷重センサによってそれぞれ検出された荷重値に基づいて、上記重心位置を算出する。
【0048】
上記によれば、複数の荷重センサによって重心位置を算出することができる。
【0049】
また、本発明は、上記音楽演奏プログラムを実行する音楽演奏装置の形態で実施されてもよい。また、本発明では、上記各手段を実現する複数の要素が相互に動作することによって、1つの情報処理システムとして構成されてもよい。当該情報処理システムは、1つの装置によって構成されてもよいし、複数の装置がネットワーク等によって接続されることによって構成されてもよい。
【発明の効果】
【0050】
本発明によれば、ユーザの体の動きを反映して音楽を演奏することができる。
【図面の簡単な説明】
【0051】
【図1】本発明の一実施例であるゲームシステムの外観を示す外観図
【図2】本実施例のビデオゲームシステム10の電気的な構成を示すブロック図
【図3】図1に示した荷重コントローラ36の外観を示す斜視図
【図4】図3に示した荷重コントローラ36のVI−VI断面図
【図5】荷重コントローラ36の電気的な構成の一例を示すブロック図
【図6】ユーザが荷重コントローラ36の上に乗り、本実施形態に係るゲームを行う様子を示した図
【図7】重心位置を定義するXY座標系を示す図
【図8】XY座標系において定義される基準線および各領域を示す図
【図9】複数の音節に分割された楽曲を示す図
【図10】重心位置が基準線70を超えて移動する様子を示す図
【図11】重心位置と音量との関係を示す図
【図12】ゲーム装置12のメインメモリ(外部メインメモリ46又は内部メインメモリ42e)に記憶される主なデータを示す図
【図13】ゲーム装置12において実行される第1実施形態のゲーム処理の流れを示すフローチャート
【図14】ゲーム装置12において実行される第2実施形態のゲーム処理の流れを示すフローチャート
【図15】基準線の他の例を示す図
【図16】基準線の他の例を示す図
【図17】基準線の他の例を示す図
【図18】他の実施形態において移動方向に応じて各音節が順次再生されることを示す図
【発明を実施するための形態】
【0052】
[ゲームシステムの全体構成]
次に、図面を参照して本発明に一実施例について説明する。図1は、本発明の一実施例であるゲームシステムの外観を示す外観図である。ゲームシステム10は、ゲーム装置12、コントローラ22および荷重コントローラ36を含む。なお、図示は省略するが、この実施例のゲーム装置12は、最大4つのコントローラ(22,36)と通信可能に設計されている。また、ゲーム装置12と各コントローラ(22,36)とは、無線によって接続される。たとえば、無線通信は、Bluetooth(登録商標)規格に従って実行されるが、赤外線や無線LANなど他の規格に従って実行されてもよい。
【0053】
ゲーム装置12は、略直方体のハウジング14を含み、ハウジング14の前面にはディスクスロット16が設けられる。ディスクスロット16から、ゲームプログラム等を記憶した情報記憶媒体の一例である光ディスク18が挿入されて、ハウジング14内のディスクドライブ54(図2参照)に装着される。ディスクスロット16の周囲には、LEDと導光板が配置され、さまざまな処理に応答させて点灯させることが可能である。
【0054】
また、ゲーム装置12のハウジング14の前面であり、その上部には、電源ボタン20aおよびリセットボタン20bが設けられ、その下部には、イジェクトボタン20cが設けられる。さらに、リセットボタン20bとイジェクトボタン20cとの間であり、ディスクスロット16の近傍には、外部メモリカード用コネクタカバー28が設けられる。この外部メモリカード用コネクタカバー28の内側には、外部メモリカード用コネクタ62(図2参照)が設けられ、図示しない外部メモリカード(以下、単に「メモリカード」という。)が挿入される。メモリカードは、光ディスク18から読み出したゲームプログラム等をローディングして一時的に記憶したり、このゲームシステム10を利用してプレイしたゲームのゲームデータ(ゲームの結果データまたは途中データ)を保存(セーブ)しておいたりするために利用される。ただし、上記のゲームデータの保存は、メモリカードに対して行うことに代えて、たとえばゲーム装置12の内部に設けられるフラッシュメモリ44(図2参照)のような内部メモリに対して行うようにしてもよい。また、メモリカードは、内部メモリのバックアップメモリとして用いるようにしてもよい。
【0055】
なお、メモリカードとしては、汎用のSDカードを用いることができるが、メモリスティックやマルチメディアカード(登録商標)のような他の汎用のメモリカードを用いることもできる。
【0056】
ゲーム装置12のハウジング14の後面には、AVケーブルコネクタ58(図2参照)が設けられ、そのAVコネクタ58を用いて、AVケーブル32aを通してゲーム装置12にモニタ34およびスピーカ34aを接続する。このモニタ34およびスピーカ34aは典型的にはカラーテレビジョン受像機であり、AVケーブル32aは、ゲーム装置12からの映像信号をカラーテレビのビデオ入力端子に入力し、音声信号を音声入力端子に入力する。したがって、カラーテレビ(モニタ)34の画面上にたとえば3次元(3D)ビデオゲームのゲーム画像が表示され、左右のスピーカ34aからゲーム音楽や効果音などのステレオゲーム音声が出力される。また、モニタ34の周辺(この実施例では、モニタ34の上側)には、2つの赤外LED(マーカ)340m,340nを備えるマーカ部34bが設けられる。このマーカ部34bは、電源ケーブル32bを通してゲーム装置12に接続される。したがって、マーカ部34bには、ゲーム装置12から電源が供給される。これによって、マーカ340m,340nは発光し、それぞれモニタ34の前方に向けて赤外光を出力する。
【0057】
なお、ゲーム装置12の電源は、一般的なACアダプタ(図示せず)によって与えられる。ACアダプタは家庭用の標準的な壁ソケットに差し込まれ、ゲーム装置12は、家庭用電源(商用電源)を、駆動に適した低いDC電圧信号に変換する。他の実施例では、電源としてバッテリが用いられてもよい。
【0058】
このゲームシステム10において、ユーザまたはユーザがゲーム(またはゲームに限らず、他のアプリケーション)をプレイするために、ユーザはまずゲーム装置12の電源をオンし、次いで、ユーザはビデオゲーム(もしくはプレイしたいと思う他のアプリケーション)のプログラムを記録している適宜の光ディスク18を選択し、その光ディスク18をゲーム装置12のディスクドライブ54にローディングする。それに応じて、ゲーム装置12がその光ディスク18に記録されているプログラムに基づいてビデオゲームもしくは他のアプリケーションを実行し始めるようにする。
【0059】
ユーザはゲーム装置12に入力を与えるためにコントローラ22を操作する。たとえば、入力手段26のどれかを操作することによってゲームもしくは他のアプリケーションをスタートさせる。また、入力手段26に対する操作以外にも、コントローラ22自体を動かすことによって、動画オブジェクト(ユーザオブジェクト)を異なる方向に移動させ、または3Dのゲーム世界におけるユーザの視点(カメラ位置)を変化させることができる。コントローラ22には、3軸方向の加速度を検出する加速度センサ(図示せず)を備えており、ユーザがコントローラ22を動かすことによって生じる加速度を検出することができる。ゲーム装置12は、コントローラ22からの加速度に応じて所定のゲーム処理をすることができる。さらに、コントローラ22には、マーカ340m,340nが発する赤外光を撮像する撮像手段が備えられており、これによって、コントローラ22は、モニタ34の画面上を指示する指示入力装置としても機能する。
【0060】
図2は、本実施例のビデオゲームシステム10の電気的な構成を示すブロック図である。図示は省略するが、ハウジング14内の各コンポーネントは、プリント基板に実装される。図2に示されるように、ゲーム装置12には、CPU40が設けられる。このCPU40は、ゲームプロセッサとして機能する。このCPU40には、システムLSI42が接続される。このシステムLSI42には、外部メインメモリ46、ROM/RTC48、ディスクドライブ54およびAV IC56が接続される。
【0061】
外部メインメモリ46は、ゲームプログラム等のプログラムを記憶したり、各種データを記憶したりし、CPU40のワーク領域やバッファ領域として用いられる。ROM/RTC48は、いわゆるブートROMであり、ゲーム装置12の起動用のプログラムが組み込まれるとともに、時間をカウントする時計回路が設けられる。ディスクドライブ54は、光ディスク18からプログラムデータやテクスチャデータ等を読み出し、CPU40の制御の下で、後述する内部メインメモリ42eまたは外部メインメモリ46に書き込む。
【0062】
システムLSI42には、入出力プロセッサ42a、GPU(Graphics Processor Unit)42b,DSP(Digital Signal Processor)42c,VRAM42dおよび内部メインメモリ42eが設けられ、図示は省略するが、これらは内部バスによって互いに接続される。
【0063】
入出力プロセッサ(I/Oプロセッサ)42aは、データの送受信を実行したり、データのダウンロードを実行したりする。データの送受信やダウンロードについては後で詳細に説明する。
【0064】
GPU42bは、描画手段の一部を形成し、CPU40からのグラフィクスコマンド(作画命令)を受け、そのコマンドに従ってゲーム画像データを生成する。ただし、CPU40は、グラフィクスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラムをGPU42bに与える。
【0065】
図示は省略するが、上述したように、GPU42bにはVRAM42dが接続される。GPU42bが作画コマンドを実行するにあたって必要なデータ(画像データ:ポリゴンデータやテクスチャデータなどのデータ)は、GPU42bがVRAM42dにアクセスして取得する。なお、CPU40は、描画に必要な画像データを、GPU42bを介してVRAM42dに書き込む。GPU42bは、VRAM42dにアクセスして描画のためのゲーム画像データを作成する。
【0066】
なお、この実施例では、GPU42bがゲーム画像データを生成する場合について説明するが、ゲームアプリケーション以外の任意のアプリケーションを実行する場合には、GPU42bは当該任意のアプリケーションについての画像データを生成する。
【0067】
また、DSP42cは、オーディオプロセッサとして機能し、内部メインメモリ42eや外部メインメモリ46に記憶されるサウンドデータや音波形(音色)データを用いて、スピーカ34aから出力する音、音声或いは音楽に対応するオーディオデータを生成する。
【0068】
上述のように生成されたゲーム画像データおよびオーディオデータは、AV IC56によって読み出され、AVコネクタ58を介してモニタ34およびスピーカ34aに出力される。したがって、ゲーム画面がモニタ34に表示され、ゲームに必要な音(音楽)がスピーカ34aから出力される。
【0069】
また、入出力プロセッサ42aには、フラッシュメモリ44、無線通信モジュール50および無線コントローラモジュール52が接続されるとともに、拡張コネクタ60および外部メモリカード用コネクタ62が接続される。また、無線通信モジュール50にはアンテナ50aが接続され、無線コントローラモジュール52にはアンテナ52aが接続される。
【0070】
入出力プロセッサ42aは、無線通信モジュール50を介して、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。ただし、ネットワークを介さずに、直接的に他のゲーム装置と通信することもできる。入出力プロセッサ42aは、定期的にフラッシュメモリ44にアクセスし、ネットワークへ送信する必要があるデータ(送信データとする)の有無を検出し、当該送信データが有る場合には、無線通信モジュール50およびアンテナ50aを介してネットワークに送信する。また、入出力プロセッサ42aは、他のゲーム装置から送信されるデータ(受信データとする)を、ネットワーク、アンテナ50aおよび無線通信モジュール50を介して受信し、受信データをフラッシュメモリ44に記憶する。ただし、一定の場合には、受信データをそのまま破棄する。さらに、入出力プロセッサ42aは、ダウンロードサーバからダウンロードしたデータ(ダウンロードデータとする)をネットワーク、アンテナ50aおよび無線通信モジュール50を介して受信し、ダウンロードデータをフラッシュメモリ44に記憶する。
【0071】
また、入出力プロセッサ42aは、コントローラ22や荷重コントローラ36から送信される入力データをアンテナ52aおよび無線コントローラモジュール52を介して受信し、内部メインメモリ42eまたは外部メインメモリ46のバッファ領域に記憶(一時記憶)する。入力データは、CPU40のゲーム処理によって利用された後、バッファ領域から消去される。
【0072】
なお、この実施例では、上述したように、無線コントローラモジュール52は、Bluetooth規格にしたがってコントローラ22や荷重コントローラ36との間で通信を行う。
【0073】
また、図面の都合上、図2では、コントローラ22と荷重コントローラ36とをまとめて記載してある。
【0074】
さらに、入出力プロセッサ42aには、拡張コネクタ60および外部メモリカード用コネクタ62が接続される。拡張コネクタ60は、USBやSCSIのようなインターフェイスのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したりすることができる。また、拡張コネクタ60に有線LANアダプタを接続し、無線通信モジュール50に代えて当該有線LANを利用することもできる。外部メモリカード用コネクタ62には、メモリカードのような外部記憶媒体を接続することができる。したがって、たとえば、入出力プロセッサ42aは、拡張コネクタ60や外部メモリカード用コネクタ62を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
【0075】
詳細な説明は省略するが、図1にも示したように、ゲーム装置12(ハウジング14)には、電源ボタン20a,リセットボタン20bおよびイジェクトボタン20cが設けられる。電源ボタン20aは、システムLSI42に接続される。この電源ボタン20aがオンされると、ゲーム装置12の各コンポーネントに図示しないACアダプタを経て電源が供給され、システムLSI42は、通常の通電状態となるモード(通常モードと呼ぶこととする)を設定する。一方、電源ボタン20aがオフされると、ゲーム装置12の一部のコンポーネントのみに電源が供給され、システムLSI42は、消費電力を必要最低限に抑えるモード(以下、「スタンバイモード」という。)を設定する。この実施例では、スタンバイモードが設定された場合には、システムLSI42は、入出力プロセッサ42a、フラッシュメモリ44、外部メインメモリ46、ROM/RTC48および無線通信モジュール50、無線コントローラモジュール52以外のコンポーネントに対して、電源供給を停止する指示を行う。したがって、このスタンバイモードは、CPU40によってアプリケーションの実行が行われないモードである。
【0076】
なお、システムLSI42には、スタンバイモードにおいても電源が供給されるが、GPU42b、DSP42cおよびVRAM42dへのクロックの供給を停止することにより、これらを駆動させないようにして、消費電力を低減するようにしてある。
【0077】
また、図示は省略するが、ゲーム装置12のハウジング14内部には、CPU40やシステムLSI42などのICの熱を外部に排出するためのファンが設けられる。スタンバイモードでは、このファンも停止される。
【0078】
ただし、スタンバイモードを利用したくない場合には、スタンバイモードを利用しない設定にしておくことにより、電源ボタン20aがオフされたときに、すべての回路コンポーネントへの電源供給が完全に停止される。
【0079】
また、通常モードとスタンバイモードの切り替えは、コントローラ22の電源スイッチ(入力手段26のスイッチの1つ)のオン/オフの切り替えによっても遠隔操作によって行うことが可能である。当該遠隔操作を行わない場合には、スタンバイモードにおいて無線コントローラモジュール52aへの電源供給を行わない設定にしてもよい。
【0080】
リセットボタン20bもまた、システムLSI42に接続される。リセットボタン20bが押されると、システムLSI42は、ゲーム装置12の起動プログラムを再起動する。イジェクトボタン20cは、ディスクドライブ54に接続される。イジェクトボタン20cが押されると、ディスクドライブ54から光ディスク18が排出される。
【0081】
図3は、図1に示した荷重コントローラ36の外観を示す斜視図である。図3に示されるように、荷重コントローラ36は、ユーザがその上に乗る(ユーザの足を乗せる)台36a、および台36aにかかる荷重を検出するための少なくとも4つの荷重センサ364(364a〜364d)を備える。なお、各荷重センサ364は台36aに内包されており(図4参照)、図3においてはその配置が点線で示されている。
【0082】
台36aは、略直方体に形成されており、上面視で略長方形状である。たとえば長方形の短辺が30cm程度に設定され、その長辺が50cm程度に設定される。ユーザが乗る台36aの上面は平坦にされる。台36aの4隅の側面は、部分的に円柱状に張り出すように形成されている。
【0083】
この台36aにおいて、4つの荷重センサ364は、所定の間隔を置いて配置される。この実施例では、4つの荷重センサ364は、台36aの周縁部に、具体的には4隅にそれぞれ配置される。荷重センサ364の間隔は、台36aに対するユーザの荷重のかけ方によるゲーム操作の意図をより精度良く検出できるように適宜な値に設定される。
【0084】
図4は、図3に示した荷重コントローラ36のVI−VI断面図を示すとともに、荷重センサ364の配置された隅の部分が拡大表示されている。この図4から分かるように、台36aは、ユーザが乗るための支持板360と脚362を含む。脚362は、荷重センサ364が配置される箇所に設けられる。この実施例では4つの荷重センサ364が4隅に配置されるので、4つの脚362が4隅に設けられる。脚362は、たとえばプラスチック成型によって略有底円筒状に形成されており、荷重センサ364は、脚362内の底面に設けられた球面部品362a上に配置される。支持板360は、この荷重センサ364を介して脚362に支持される。
【0085】
支持板360は、上面と側面上部とを形成する上層板360a、下面と側面下部とを形成する下層板360b、および上層板360aと下層板360bとの間に設けられる中層板360cを含む。上層板360aと下層板360bとは、たとえばプラスチック成型により形成されており、接着等により一体化される。中層板360cは、たとえば1枚の金属板のプレス成型により形成されている。この中層板360cが、4つの荷重センサ364の上に固定される。上層板360aは、その下面に格子状のリブ(図示しない)を有しており、当該リブを介して中層板360cに支持されている。したがって、台36aにユーザが乗ったときには、その荷重は、支持板360、荷重センサ364および脚362を伝達する。図4に矢印で示したように、入力される荷重によって生じた床からの反作用は、脚362から、球面部品362a、荷重センサ364、中層板360cを介して、上層板360aに伝達する。
【0086】
荷重センサ364は、たとえば歪ゲージ(歪センサ)式ロードセルであり、入力された荷重を電気信号に変換する荷重変換器である。荷重センサ364では、荷重入力に応じて、起歪体365が変形して歪が生じる。この歪が、起歪体に貼り付けられた歪センサ366によって、電気抵抗の変化に変換され、さらに電圧変化に変換される。したがって、荷重センサ364は、入力荷重を示す電圧信号を出力端子から出力する。
【0087】
なお、荷重センサ364は、音叉振動式、弦振動式、静電容量式、圧電式、磁歪式、またはジャイロ式のような他の方式の荷重センサであってもよい。
【0088】
図3に戻って、荷重コントローラ36には、さらに、電源ボタン36cが設けられる。この電源ボタン36cがオンされると、荷重コントローラ36の各回路コンポーネント(図5参照)に電源が供給される。ただし、荷重コントローラ36は、ゲーム装置12からの指示に従ってオンされる場合もある。また、荷重コントローラ36は、ユーザが乗っていない状態が一定時間(たとえば、30秒)以上継続すると、電源がオフされる。ただし、荷重コントローラ36が起動されている状態で、電源ボタン36cをオンしたときに、電源がオフされてもよい。
【0089】
図5は、荷重コントローラ36の電気的な構成の一例を示すブロック図である。なお、この図5では、信号および通信の流れは実線矢印で示される。破線矢印は、電源の供給を示している。
【0090】
荷重コントローラ36は、その動作を制御するためのマイクロコンピュータ(マイコン)100を含む。マイコン100は図示しないCPU、ROMおよびRAM等を含み、CPUはROMに記憶されたプログラムに従って荷重コントローラ36の動作を制御する。
【0091】
マイコン100には、電源ボタン36c、ADコンバータ102、DC−DCコンバータ104および無線モジュール106が接続される。さらに、無線モジュール106には、アンテナ106aが接続される。4つの荷重センサ364は、それぞれ、増幅器108を介してADコンバータ102に接続される。
【0092】
また、荷重コントローラ36には電源供給のために電池110が収容されている。他の実施例では、電池に代えてACアダプタを接続し、商用電源を供給するようにしてもよい。かかる場合には、DC−DCコンバータに代えて、交流を直流に変換し、直流電圧を降圧および整流する電源回路を設ける必要がある。この実施例では、マイコン100および無線モジュール106への電源の供給は、電池から直接的に行われる。つまり、マイコン100内部の一部のコンポーネント(CPU)と無線モジュール106とには、常に電源が供給されており、電源ボタン36cがオンされたか否か、ゲーム装置12から電源オン(荷重検出)のコマンドが送信されたか否かを検出する。一方、荷重センサ364、ADコンバータ102および増幅器108には、電池110からの電源がDC−DCコンバータ104を介して供給される。DC−DCコンバータ104は、電池110からの直流電流の電圧値を異なる電圧値に変換して、荷重センサ364、ADコンバータ102および増幅器108に与える。
【0093】
これら荷重センサ364、ADコンバータ102および増幅器108への電源供給は、マイコン100によるDC−DCコンバータ104の制御によって、必要に応じて行われるようにしてよい。つまり、マイコン100は、荷重センサ364を動作させて荷重を検出する必要があると判断されるときに、DC−DCコンバータ104を制御して、各荷重センサ364、ADコンバータ102および各増幅器108に電源を供給するようにしてよい。
【0094】
電源が供給されると、各荷重センサ364は、入力された荷重を示す信号を出力する。当該信号は各増幅器108で増幅され、ADコンバータ102でアナログ信号からディジタルデータに変換されて、マイコン100に入力される。各荷重センサ364の検出値には各荷重センサ364の識別情報が付与されて、いずれの荷重センサ364の検出値であるかが識別可能にされる。このようにして、マイコン100は、同一時刻における4つの荷重センサ364のそれぞれの荷重検出値を示すデータを取得することができる。
【0095】
一方、マイコン100は、荷重センサ364を動作させる必要がないと判断されるとき、つまり、荷重検出タイミングでないとき、DC−DCコンバータ104を制御して、荷重センサ364、ADコンバータ102および増幅器108への電源の供給を停止する。このように、荷重コントローラ36では、必要なときにだけ、荷重センサ364を動作させて荷重の検出を行うことができるので、荷重検出のための電力消費を抑制することができる。
【0096】
荷重検出の必要なときとは、典型的には、ゲーム装置12(図1)が荷重データを取得したいときである。たとえば、ゲーム装置12が荷重情報を必要とするとき、ゲーム装置12は荷重コントローラ36に対して荷重取得命令を送信する。マイコン100は、ゲーム装置12から荷重取得命令を受信したときに、DC−DCコンバータ104を制御して、荷重センサ364等に電源を供給し、荷重を検出する。一方、マイコン100は、ゲーム装置12から荷重取得命令を受信していないときには、DC−DCコンバータ104を制御して、電源供給を停止する。
【0097】
あるいは、マイコン100は、一定時間ごとに荷重検出タイミングであると判断して、DC−DCコンバータ104を制御するようにしてもよい。このような周期的な荷重検出を行う場合、周期情報は、たとえば、初めにゲーム装置12から荷重コントローラ36のマイコン100に与えられて記憶されてよいし、または、予めマイコン100に記憶されてよい。
【0098】
荷重センサ364からの検出値を示すデータは、荷重コントローラ36の操作データ(入力データ)として、マイコン100から無線モジュール106およびアンテナ106bを介してゲーム装置12(図1)に送信される。たとえば、ゲーム装置12からの命令を受けて荷重検出を行った場合、マイコン100は、ADコンバータ102から荷重センサ364の検出値データを受信したときに、当該検出値データをゲーム装置12に送信する。あるいは、マイコン100は、一定時間ごとに検出値データをゲーム装置12に送信するようにしてもよい。荷重の検出周期よりも送信周期が長い場合には、送信タイミングまでに検出された複数の検出タイミングの荷重値を含むデータが送信される。
【0099】
なお、無線モジュール106は、ゲーム装置12の無線コントローラモジュール52と同じ無線規格(Bluetooth、無線LANなど)で通信可能にされる。したがって、ゲーム装置12のCPU40は、無線コントローラモジュール52等を介して荷重取得命令を荷重コントローラ36に送信することができる。荷重コントローラ36のマイコン100は、無線モジュール106およびアンテナ106aを介して、ゲーム装置12からの命令を受信し、また、各荷重センサ364の荷重検出値(または荷重算出値)を含む入力データをゲーム装置12に送信することができる。
【0100】
たとえば4つの荷重センサ364で検出される4つの荷重値の単なる合計値に基づいて実行されるようなゲームの場合には、ユーザは荷重コントローラ36の4つの荷重センサ364に対して任意の位置をとることができ、つまり、ユーザは台36aの上の任意の位置に任意の向きで乗ってゲームをプレイすることができる。しかし、ゲームの種類によっては、各荷重センサ364で検出される荷重値がユーザから見ていずれの方向の荷重値であるかを識別して処理を行う必要があり、つまり、荷重コントローラ36の4つの荷重センサ364とユーザとの位置関係が把握されている必要がある。この場合、たとえば、4つの荷重センサ364とユーザとの位置関係を予め規定しておき、当該所定の位置関係が得られるようにユーザが台36a上に乗ることが前提とされてよい。典型的には、台36aの中央に乗ったユーザの前後左右にそれぞれ荷重センサ364が2つずつ存在するような位置関係、つまり、ユーザが荷重コントローラ36の台36aの中央に乗ったとき、ユーザの中心から右前、左前、右後および左後の方向にそれぞれ荷重センサ364が存在するような位置関係が規定される。この場合、この実施例では、荷重コントローラ36の台36aが平面視で矩形状に形成されるとともにその矩形の1辺(長辺)に電源ボタン36cが設けられているので、この電源ボタン36cを目印として利用して、ユーザには電源ボタン36cの設けられた長辺が所定の方向(前、後、左または右)に存在するようにして台36aに乗ってもらうことを予め決めておく。このようにすれば、各荷重センサ364で検出される荷重値は、ユーザから見て所定の方向(右前、左前、右後および左後)の荷重値となる。したがって、荷重コントローラ36およびゲーム装置12は、荷重検出値データに含まれる各荷重センサ364の識別情報と、予め設定(記憶)された各荷重センサ364のユーザに対する位置ないし方向を示す配置データとに基づいて、各荷重検出値がユーザから見ていずれの方向に対応するかを把握することができる。これにより、たとえば前後左右の操作方向のようなユーザによるゲーム操作の意図を把握することが可能になる。
【0101】
なお、各荷重センサ364のユーザに対する配置は予め規定せずに、初期設定やゲーム中の設定などでユーザの入力によって配置が設定されるようにしてもよい。たとえば、ユーザから見て所定の方向(左前、右前、左後または右後など)の部分に乗るようにユーザに指示する画面を表示するとともに荷重値を取得することによって、各荷重センサ364のユーザに対する位置関係を特定することができるので、この設定による配置データを生成して記憶するようにしてよい。あるいは、モニタ34の画面上に、荷重コントローラ36の配置を選択するための画面を表示して、目印(電源ボタン36c)がユーザから見てどの方向に存在するかをコントローラ22による入力によって選択してもらい、この選択に応じて各荷重センサ364の配置データを生成して記憶するようにしてよい。
【0102】
(第1実施形態)
(ゲーム処理の概要)
次に、図6〜図11を参照して、本発明の一実施形態に係るゲーム処理の概要について説明する。図6は、ユーザが荷重コントローラ36の上に乗り、本実施形態に係るゲームを行う様子を示した図である。図6に示すように、ユーザはモニタ34の画面の方向を向きながら荷重コントローラ36の上に乗る。荷重コントローラ36は、その長手方向が画面に向かう方向に対して垂直になるように置かれる(横置きの配置という)。
【0103】
ゲーム装置12は、荷重コントローラ36の各荷重センサ364が検出した荷重値に基づいて、重心位置を算出する。重心位置は、荷重コントローラ36を基準として設定されるXY座標系の座標値として表わされる。図7は、重心位置を定義するXY座標系を示す図である。図7に示すように、XY座標系の原点は、荷重コントローラ36の左下端部(荷重センサ364dが配設された端部)に設定される。また、X軸は荷重コントローラ36の長辺方向と平行に設定され、Y軸は荷重コントローラ36の短辺方向と平行に設定される。このように定義された座標系において、各荷重センサ364が検出した荷重値に基づいて、重心位置が算出される。
【0104】
具体的には、荷重センサ364aが検出する荷重値をa、荷重センサ364bが検出する荷重値をb、荷重センサ364cが検出する荷重値をc、荷重センサ364dが検出する荷重値をdとした場合、重心のX軸座標値(XG)及びY軸座標値(YG)は、以下の式1及び式2によって算出される。
XG=((a+b―c−d))×m+補正値・・・(1)
YG=((a+c―b−d))×n+補正値・・・(2)
【0105】
ここで、定数m、n、および、補正値が設定されることにより、重心位置(XG,YG)は、0≦XG≦1、0≦YG≦1で算出される。例えば、荷重コントローラ36の台36aの中心は、XG=0.5、YG=0.5として表わされる。なお、上記重心位置の算出式は単なる一例であり、その他の方法によって重心位置を算出してもよい。
【0106】
XY平面には、所定の基準線と領域とが定義される。図8は、XY座標系において定義される基準線および各領域を示す図である。図8に示すように、XY座標系には、基準線70、領域71、および、領域72が定義される。基準線70は、X=0.5の直線(荷重コントローラ36の台36aを左右に2等分する線)である。領域71は、0.3<X<0.7を満たす領域である。領域72は、基準線70から所定距離離れた領域であり、0.0≦X≦0.3を満たす領域と、0.7≦X≦1.0を満たす領域とに分けられる。
【0107】
本実施形態では、上記のようにして算出される重心位置と基準線70とに基づいて、楽曲が再生される。具体的には、ユーザが荷重コントローラ36の上に乗って体重を左右の方向に移動させると、楽曲が音節ごとに順次再生される。より具体的には、ゲーム装置12は、算出した重心位置が基準線70を超えることに応じて、楽曲を音節ごとに再生する。また、ゲーム装置12は、重心位置および重心位置が移動する速さに応じて、再生する音節の音量を調整する。ここで、重心の速さ(重心位置の移動速度)は、単位時間において重心が移動する距離(X軸方向の距離)であり、重心の移動距離を時間で除することによって、算出される。
【0108】
図9は、複数の音節に分割された楽曲を示す図である。図10は、重心位置が基準線70を超えて移動する様子を示す図である。図9に示すように、楽曲Aは、全体として1つの曲であり、音節A1〜An(nは整数)に分割されている。各音節は、一定長のひとまとまりの音である。ユーザが荷重コントローラ36の上に乗って体重を左右方向に移動させると、図10に示すように、重心位置が移動する。例えば、ユーザが左足と右足とに交互に体重をかけると、図10に示すように、重心位置は、P1→P2→P3→P4のように移動する。本実施形態に係るゲームでは、重心位置が基準線70を超えて移動するごとに、各音節が再生される。例えば、図10に示すように、重心位置がP1からP2に移動することに応じて、音節A1が再生される。その後、重心位置がP2からP3に移動することに応じて、音節A2が再生される。さらに、重心位置がP3からP4に移動すると、次の音節A3が再生される。このように、本実施形態に係るゲームでは、重心位置が基準線70を超えて移動するごとに、一定長の音節が再生される。ユーザが左右方向に繰り返し体重を移動させることによって、重心位置が基準線70を超えて往復運動を繰り返し、これによって、各音節が順次再生されていく。
【0109】
次に、順次再生される音節の音量調整について説明する。音量は、重心位置および重心位置が移動する速さ(重心の速さ)に応じて、変化する。具体的には、重心位置が領域71の範囲内に存在する場合、当該重心位置と重心の速さに応じて、音量が設定される。また、重心位置が領域72の範囲内に存在する場合、音量は、最大値に設定される。より具体的には、重心位置が領域71に存在する場合、重心位置と基準線70との距離に応じて音量の上限が定められる。そして、重心の速さに応じて、定められた上限以下の音量に設定される。
【0110】
図11は、重心位置と音量との関係を示す図である。図11において、横軸はX軸の座標値を示し、縦軸は音量(0〜1.0)を示す。図11に示すように、0.0≦X≦0.3の範囲、および、0.7≦X≦1.0の範囲では、音量は常に最大値(1.0)に設定される。すなわち、領域72に重心位置が存在する場合は、音量は常に最大値に設定されて、当該音節が再生される。
【0111】
一方、0.3<X<0.7では、音量の上限値が基準線70からの距離に応じて設定される。具体的には、図11に示すように、Xが0.5〜0.7の範囲では、音量の上限値は、0.05〜0.7の範囲で線形的に設定される。0.5〜0.3の範囲も同様である。当該範囲では、音量は、設定された上限値以下の範囲で、重心の速さに応じて設定される。より具体的には、重心の速さが速いほど、上限値に近付くように音量が設定され、例えば、重心の速さに比例して音量が設定される。例えば、重心位置がP2である場合において、重心の速さが所定の閾値以上の場合、音量は、重心位置P2に応じて設定された上限値(Vm)に設定される。また、例えば、重心の速さが上記所定の閾値より小さい場合、音量は、重心位置P2に応じて設定された上限値(Vm)より小さい値(V1)に設定される。
【0112】
このように、重心位置と重心の速さとに応じて、音量が設定されて、当該設定された音量で音楽(各音節)が再生される。
【0113】
以上のように、本実施形態では、ユーザの重心位置が基準線を越えたことに応じて、各音節が順次再生される。これにより、ユーザは、体重の移動によって音楽を再生することができ、また、足を使って音を鳴らすような楽器(例えば、足踏みオルガン)を実際に演奏するような感覚を得ることができる。また、上述のように重心位置や重心の速度に応じて音量が設定されることで、強く踏むと大きな音で再生される。例えば、足踏みオルガン等の楽器では、強く踏むと大きな音が出るため、このようにして音量を変化させることで、ユーザは実際に足踏みオルガン等の楽器を実際に演奏しているような感覚を得ることができる。
【0114】
(ゲーム処理の詳細)
次に、図12〜図13を参照してゲーム装置12において実行されるゲーム処理の詳細について説明する。まず、ゲーム装置12における処理において用いられる主なデータについて図12を用いて説明する。図12は、ゲーム装置12のメインメモリ(外部メインメモリ46又は内部メインメモリ42e)に記憶される主なデータを示す図である。
【0115】
図12に示されるように、ゲーム装置12のメインメモリのデータ記憶領域500には、荷重値データ502、重心位置データ504、再生中音節データ506、設定音量データ508、現在音量データ510、及び、音節データ512が記憶される。なお、メインメモリには、図12に示すデータの他、ゲーム処理を実行するゲームプログラム(音楽演奏プログラム)や、その他ゲーム処理に必要な種々のデータが記憶される。
【0116】
荷重値データ502は、荷重コントローラ36の各荷重センサ364が検出した荷重値を示すデータである。具体的には、荷重値データ502には、荷重センサ364aが検出した荷重値a、荷重センサ364bが検出した荷重値b、荷重センサ364cが検出した荷重値c、および、荷重センサ364dが検出した荷重値dが含まれる。なお、荷重コントローラ36からゲーム装置12に、例えば1/200秒毎に、各荷重センサ364a〜dが検出する荷重値を示すデータが送信される。ゲーム装置12(CPU40)は、荷重コントローラ36から送信されるデータを受信すると、荷重値データ502としてメインメモリに保存する。
【0117】
重心位置データ504は、各荷重センサ364a〜364dの荷重値から上記式1及び2によって算出される重心位置を示すデータの集合である。具体的には、重心位置データ504は、配列であり、配列の各要素には重心位置を示すデータが時系列に格納される。
【0118】
再生中音節データ506は、現在再生中の音節を示すデータである。具体的には、再生中音節データ506は、現在再生中の音節の番号(1〜n)を示すデータである。
【0119】
設定音量データ508は、設定される再生音量を示すデータであり、0〜1.0の範囲で変化する変数である。
【0120】
現在音量データ510は、現在の再生音量を示すデータであり、0〜1.0の範囲で変化する変数である。後述のように、音量が設定されると(後述の処理により算出された音量が設定音量データ508に設定されると)、所定時間かけて当該設定された音量に変化する。現在音量データ510は、現在の実際の音量を示すデータであり、上記設定音量データ508が示す音量とは異なる値となることがある。
【0121】
音節データ512は、各音節A1〜Anを示す音楽データの集合である。
【0122】
次に、図13を参照して、ゲーム装置12によって実行されるゲーム処理について説明する。図13は、ゲーム装置12において実行される第1実施形態のゲーム処理の流れを示すフローチャートである。ゲーム装置12の電源が投入されると、ゲーム装置12のCPU40は、ROM/RTC48に記憶されている起動プログラムを実行し、これによって外部メインメモリ46等の各ユニットが初期化される。次に、光ディスク18に記憶されたゲームプログラムがメインメモリに読み込まれ、CPU40によって当該ゲームプログラムの実行が開始される。図13に示すフローチャートは、以上の処理が完了した後に行われるゲーム処理を示すフローチャートである。なお、図13では、本発明に直接関連しないゲーム処理については記載を省略する。また、図13に示すステップS4〜ステップS10の処理ループは、1フレーム(例えば1/60秒。上記フレーム時間)毎に繰り返し実行される。
【0123】
まず、ステップS1において、CPU40は、初期化処理を行う。初期化処理では、例えば、零点補正が行われる。零点補正とは、各荷重センサ364に荷重が加わっていない状態(台36aの上に何も乗っていない状態)において、各荷重センサ364が検出する荷重値を0(kg)にする処理である。CPU40は、次にステップS2の処理を行う。
【0124】
ステップS2において、CPU40は、ユーザが荷重コントローラに乗るまで待機する。具体的には、CPU40は、荷重値データ502を参照して、各荷重センサ364によって検出された荷重値の合計が、所定の閾値以上か否かを判定し、判定結果が肯定になるまで、当該処理を繰り返し実行する。荷重値の合計が、所定の閾値以上である場合、CPU40は、次にステップS3の処理を実行する。
【0125】
ステップS3において、CPU40は、楽曲再生処理を開始する。具体的には、CPU40は、楽曲Aの最初の音節A1の再生を開始するとともに、再生中音節データに1を設定する。次にステップS4の処理を実行する。
【0126】
ステップS4において、CPU40は、重心位置を算出する。具体的には、CPU40は、荷重値データ502を参照して、各荷重センサ364によって検出された荷重値を取得する。CPU40は、取得した各荷重値を上記式(1)および(2)に代入することにより、重心位置G0(XG0,YG0)を算出する。そして、CPU40は、算出した重心位置を重心位置データ504としてメインメモリに格納する。CPU40は、次にステップS5の処理を実行する。
【0127】
ステップS5において、CPU40は、重心が基準線70を超えたか否かを判定する。具体的には、CPU40は、重心位置データ504を参照して、直前のフレーム(処理ループ)においてステップS4で算出された重心位置G1(XG1,YG1)と、現在のフレームにおいてステップS4で算出された重心位置G0(XG0,YG0)とに基づいて、重心が基準線70を越えて移動したか否かを判定する。例えば、CPU40は、XG1≦0.5、かつ、XG0>0.5である場合、重心位置が基準線70を超えたと判定する。あるいは、CPU40は、XG1>0.5、かつ、XG0≦0.5である場合、重心位置が基準線70を超えたと判定する。すなわち、CPU40は、直前の重心位置G1が基準線70よりも左側の領域に存在する場合において、最新の重心位置G0が基準線70よりも右側の領域に存在するとき、重心位置が基準線70を超えたと判定する。また、CPU40は、直前の重心位置G1が基準線70よりも右側の領域に存在する場合において、最新の重心位置G0が基準線70よりも左側の領域に存在するとき、重心位置が基準線70を超えたと判定する。判定結果が肯定の場合、CPU40は、次にステップS6の処理を実行する。一方、判定結果が否定の場合、CPU40は、次にステップS7の処理を実行する。
【0128】
ステップS6において、CPU40は、現在再生中の音節の再生を停止して、次の音節の再生を開始する。具体的には、CPU40は、再生中音節データ506を参照して、現在再生中の音節の次の音節について、再生を開始するとともに、再生中音節データ506を更新する。次に、CPU40は、ステップS9の処理を実行する。
【0129】
一方、ステップS7において、CPU40は、現在再生中の音節について再生が終了したか否かを判定する。具体的には、CPU40は、再生中音節データ506によって示される音節の再生を開始してからの経過時間が一定時間を超えたか否かを判定する。判定結果が肯定の場合、CPU40は、次にステップS8の処理を実行する。判定結果が否定の場合、CPU40は、次にステップS9の処理を実行する。
【0130】
ステップS8において、CPU40は、現在再生中の音節の最後の音符の音を持続させたまま、楽曲の進行を停止する。次に、CPU40は、ステップS9の処理を実行する。
【0131】
ステップS9において、CPU40は、重心位置および重心が移動する速さ(重心の速さ)に応じて、再生音量を変化させる。具体的には、CPU40は、まず、現在の重心位置G0が、基準線70から所定距離以上離れた領域72に存在するか否かを判定する。重心位置G0が領域72に存在する場合、CPU40は、音量を最大値(1.0)に設定して、設定音量データ508に当該最大値を格納する。
【0132】
重心位置G0が基準線70から所定距離内の領域71に存在する場合、CPU40は、当該重心位置G0に応じて音量の上限値(0.05〜0.7の範囲)を設定するとともに、重心の速さに応じて、当該上限値以下で音量を設定する。例えば、図10に示すように現在の重心位置G0がP2であった場合、CPU40は、図11に示すグラフに基づいて重心位置P2における上限値Vmを設定する。そして、CPU40は、重心の速さに応じて、音量を設定する。具体的には、重心の速さが速ければ速いほど、上限値に近づくように音量が設定される。例えば、CPU40は、現在の重心の速さに所定の定数をかけることによって、音量の値を算出する。なお、重心の速さは、所定フレーム前の重心位置と現在の重心位置との距離(X軸方向のみの距離)を算出し、算出した距離をフレーム数で除することにより、求められる。そして、CPU40は、このようにして算出した音量を設定音量データ508としてメインメモリに格納する。
【0133】
さらにステップS9において、CPU40は、現在の音量を上述のようにして設定された音量に所定フレームかけて変化させる。具体的には、CPU40は、設定音量データ508に格納された値と、現在音量データ510に格納された現在の音量の値とに基づいて、音節を再生する際の再生音量を決定する。例えば、CPU40は、現在の音量の値と設定音量データ508に格納された値との差分を算出し、当該差分を所定フレームで除した値を求める。そして、CPU40は、現在の音量に当該差分を所定フレームで除した値を加えることによって、現在の音量を設定音量データ508に格納された値に線形的に変化させる。このようにして、CPU40は、現在音量データ510を更新する。そして、CPU40は、更新した現在音量データ510に格納された値に応じた再生音量で、再生中音節データ506によって示される音節を再生する。なお、現在の音量から設定音量データ508に格納された音量値へはどのように変化されてもよく、非線形的に変化されてもよい。
【0134】
以上のように、ステップS9において、CPU40は、再生音量を所定フレームかけて徐々に変化させる。ステップS9の後、次に、ステップS10の処理が実行される。
【0135】
ステップS10において、CPU40は、ユーザが荷重コントローラ36から降りたか否かを判定する。具体的には、CPU40は、荷重値データ502を参照して、各荷重センサ364によって検出された荷重値の合計が、所定の閾値未満か否かを判定する。判定結果が否定の場合、CPU40は、ステップS4の処理を再び実行する。一方、判定結果が肯定の場合、CPU40は、図13に示す処理を終了する。
【0136】
以上のように、本実施形態では、重心が基準線70を超えて移動したことに応じて、各音節が順次再生される。また、再生される音節の音量は、重心位置および重心の速さに応じて変化する。これにより、ユーザは重心を移動させながら音楽を再生することができ、例えば、足踏みオルガンのような楽器を足で踏みながら演奏するような感覚を得ることができる。
【0137】
すなわち、ユーザは荷重コントローラ36を左右の足で交互に踏むことによって、楽曲を音節毎に順次再生させることができる。また、上記実施形態では、重心の速さが速ければ速いほど、また、重心位置が基準線70から遠ければ遠いほど大きな音量で再生される。逆に、重心位置が基準線70よりも近いほど、また、重心の速さが遅いほど(重心の速さが0に近づくほど)、小さな音量で再生される。このため、ユーザが荷重コントローラ36を左右の足で交互に踏む際に、強く踏めば踏むほど(速く踏めば踏むほど)、大きな音量で各音節が再生される。これにより、ペダルを強く踏むと大きな音が出る実際の足踏みオルガンと同様の要領で、再生音量を調整することができる。
【0138】
また、上記実施形態では、重心位置および重心の速さに応じて音量が設定され、当該設定された音量に所定フレーム(所定時間)かけて徐々に変化される。これにより、急激に再生音量が変化することを防止できる。例えば、音量が0に設定された場合、所定フレームかけて0になるように再生音量が変化される(徐々に再生音量が小さくなって無音になる)。これによって、実際の足踏みオルガンにおいてペダルを踏むことをやめてもしばらくは音が鳴り続け、時間が経過するにしたがって徐々に音量が小さくという現象と一致させることができ、実際の足踏みオルガンを演奏している感覚をユーザに与えることができる。
【0139】
(第2実施形態)
次に、第2実施形態について説明する。第2実施形態においては、上述した第1実施形態と同様のゲームシステムを用いたゲーム処理が行われる。具体的には、第2実施形態では、上記基準線70は設定されずに、重心の速さが第1の閾値を超えている場合に、各音節が順次再生される。すなわち、第2実施形態では、重心位置が基準線70を超えたか否かに関わらず、重心の速さが第1の閾値を超えている場合に、各音節が一定の速さで順次再生される。つまり、重心の速さが第1の閾値を超えている状態が継続していると、各音節は一定の速さで順次再生されて楽曲の再生が進行する。この場合において、再生音量は、重心の速さに応じて変化する。具体的には、再生音量は、重心の速さに比例して大きくなるように設定される。なお、重心の速さが速すぎる場合(重心の速さが第2の閾値(>第1の閾値)を超えている場合)、楽曲の再生は停止する。
【0140】
(ゲーム処理の詳細)
以下、図14を参照して、第2実施形態におけるゲーム装置12において実行されるゲーム処理の詳細について説明する。
【0141】
図14は、ゲーム装置12において実行される第2実施形態のゲーム処理の流れを示すフローチャートである。なお、図14において、図13と同様の処理については、同じ符号を付し説明を省略する。
【0142】
まず、ステップS1〜ステップS3の処理が行われた後、ステップS20の処理が行われる。ステップS20において、CPU40は、重心が移動する速さ(重心の速さ)を算出する。重心の速さは、第1実施形態と同様に、所定フレーム前の重心位置と現在の重心位置との距離(X軸方向のみの距離)を算出し、算出した距離をフレーム数で除することにより、求められる。次に、CPU40は、ステップS21の処理を実行する。
【0143】
ステップS21において、CPU40は、重心の速さが所定の範囲内か否かを判定する。具体的には、CPU40は、ステップS20で算出した重心の速さが、第1の閾値より大きく、かつ、重心の速さが第2の閾値(>第1の閾値)より小さいか否かを判定する。判定結果が肯定の場合、CPU40は、次にステップS22の処理を実行する。一方、判定結果が否定の場合、CPU40は、次にステップS24の処理を実行する。
【0144】
ステップS22において、CPU40は、現在音節を再生中か否かを判定する。具体的には、CPU40は、再生中音節データ506によって示される音節の再生を開始してからの経過時間が一定時間内か否かを判定する。判定結果が肯定の場合、CPU40は、次にステップS23の処理を実行する。一方、判定結果が否定の場合、CPU40は、次にステップS6の処理を実行する。
【0145】
ステップS23において、CPU40は、重心の速さに応じて、再生音量を変化させる。具体的には、CPU40は、ステップS20で算出した重心の速さに所定の定数をかけることによって、音量の値を算出し、算出した値を設定音量データ508としてメインメモリに格納する。次に、CPU40は、設定音量データ508に格納された値と、現在音量データ510に格納された現在の音量の値とに基づいて、音節を再生する際の再生音量を決定する。具体的には、上述のステップS9と同様に、CPU40は、再生音量を所定フレームかけて徐々に変化させる。そして、CPU40は、決定した再生音量を現在音量データ510としてメインメモリに格納するとともに、当該再生音量で再生中音節データ506によって示される音節を再生する。ステップS23の処理の後、CPU40は、ステップS10の処理を実行する。
【0146】
一方、ステップS24において、CPU40は、曲の進行を停止する。すなわち、CPU40は、重心が殆ど移動していない場合(重心の速さが第1の閾値以下の場合)、または、重心の速さが速すぎる場合(重心の速さが第2の閾値以上である場合)、曲の進行を停止する。次に、CPU40は、ステップS10の処理を実行する。なお、ステップS24で曲の進行が停止した場合において、再び重心の速さが所定の範囲となった場合(ステップS21でYes)、停止した音節の次の音節から再生が開始され(ステップS6)、曲の進行が再開する。
【0147】
なお、第2実施形態においては、楽曲が予め複数の音節に分割される必要はない。すなわち、楽曲は予め複数の音節に分割されずに1つの曲として構成され、重心の速さが所定の範囲である場合は、当該1つの曲を順次再生し、重心の速さが所定の範囲でない場合は当該曲の再生を停止してもよい。具体的には、ステップS22およびステップS6の処理が実行されなくてもよい。
【0148】
以上のように、第2実施形態においては、重心の速さが第1の閾値を超えている場合に、各音節が順次再生される。また、各音節の再生音量は、重心の速さに応じて変化する。これにより、ユーザが重心を移動させている場合に楽曲を再生させることができる。また、第2実施形態では、重心の速さが速ければ速いほど、大きな音量で再生される。このため、ユーザが荷重コントローラ36を左右の足で交互に踏む際に、強く踏めば踏むほど(速く踏めば踏むほど)、大きな音量で各音節が再生される。これにより、ペダルを強く踏むと大きな音が出る実際の足踏みオルガンと同様の要領で、再生音量を調整することができる。
【0149】
また、上記実施形態では、重心の速さに応じて音量が設定され、当該設定された音量に所定フレーム(所定時間)かけて徐々に変化される。これにより、急激に再生音量が変化することを防止できる。例えば、音量が0に設定された場合、所定フレームかけて0になるように再生音量が変化される(徐々に再生音量が小さくなって無音になる)。これによって、実際の足踏みオルガンにおいてペダルを踏むことをやめてもしばらくは音が鳴り続け、時間が経過するにしたがって徐々に音量が小さくという現象と一致させることができ、実際の足踏みオルガンを演奏している感覚をユーザに与えることができる。
【0150】
(変形例)
なお、上記第1および第2実施形態では、楽曲Aは一定長の音節によって分割され、当該音節が、重心の移動に応じて順次再生された。他の実施形態では、楽曲は1音ずつ分割され、重心の移動に応じて1音ずつ順次再生されてもよい。また、他の実施形態では、楽曲は、それぞれ長さの異なる部分(所定の間隔)に分割されており、重心の移動に応じて各部分が順次再生されてもよい。
【0151】
また、上記第1および第2実施形態では、曲のテンポ(各音節の再生速度)は一定であるとした。他の実施形態では、重心位置が基準線70を超えたと判定されてから次に重心位置が基準線70を超えたと判定されるまでの時間に応じて、各音節の再生速度を変化させてもよい。具体的には、ゲーム装置12は、重心位置が基準線70を超えたと判定してから次に重心位置が基準線70を超えたと判定するまでの時間を計測する。そして、ゲーム装置12は、当該計測時間に応じて、音節の再生速度を変化させてもよい。例えば、当該時間が短ければ短いほど、当該音節の再生速度を速く設定してもよい。これによって、ユーザが左右方向に体を速く移動させるほど、各音節の再生速度を速くすることができる。
【0152】
また、他の実施形態では、曲のテンポは、重心の速さに応じて変化されてもよい。この場合において、例えば、重心の速さが速ければ速いほど、曲のテンポ(各音節の再生速度)を速く設定してもよい。
【0153】
また、第1実施形態では、重心位置が荷重コントローラ36を左右に2等分する基準線70を超えて移動した場合に、音節を順次再生した。他の実施形態では、基準線はどのような位置に配置されてもよいし、基準線は複数設定されてもよい。また、基準線は直線に限らず、曲線であってもよい。図15から図17は、基準線の他の例を示す図である。図15に示すように、基準線は、荷重コントローラ36を左右に2等分する線701と、上下に2等分する線702として定義されてもよい。また、図16に示すように、基準線は曲線703として定義されてもよい。また、図示は省略するが、基準線は、荷重コントローラ36の台36aを複数の領域に分割する直線である必要はなく、台36aを複数の領域に分割しない線分であってもよい(例えば、基準線はX=0.5で、かつ、0.3<Y<0.7の線分として定義されてもよい)。
【0154】
また、図17に示すように、基準線は、Y軸に平行な2つの線704および705として定義されてもよい。この場合において、例えば、重心位置が2つの線704および705を超えて移動した場合に、次の音節が再生されてもよい。すなわち、重心位置が線704よりも左側の領域から、2つの線704と705との間の領域に移動した場合は、次の音節を再生せず、さらに重心位置が線705よりも右側に移動した場合に、次の音節を再生してもよい。このように、2つの線によって基準線を定義することによって、いわゆる遊びの領域を持たせることができ、重心位置が図10に示す基準線70付近で左右に移動している場合に、ユーザの意図に反して次々に曲が進行することを防止することができる。
【0155】
また、第1実施形態では、重心位置が基準線70を超えて移動したことに応じて、各音節が順次再生された。他の実施形態では、重心位置の移動方向も考慮して、各音節が再生されてもよい。図18は、他の実施形態において移動方向に応じて各音節が順次再生されることを示す図である。図18に示すように、例えば、基準線70によって分割される2つの領域のうち、一方の領域(左側領域)から他方の領域(右側領域)に重心位置が移動した場合は、次の音節を再生し、右側領域から左側領域に重心位置が移動した場合は、次の音節を再生しない。すなわち、基準線70を挟んだ一方の側(左側)から他方の側(右側)に重心位置が移動した場合にのみ、次の音節を再生してもよい。この場合において、基準線70を挟んだ他方の側から一方の側に重心位置が移動した場合は、現在再生中の音節を継続して再生してもよいし、現在再生中の音節を停止してもよい。
【0156】
また、第1実施形態では、領域71においては重心位置および重心の速さに応じて音量が設定された。すなわち、重心位置が基準線70から離れることに応じて、音量の上限値が設定され、当該上限値以下の範囲で、重心の速さに応じて音量が設定された。他の実施形態では、重心位置がどの領域に存在しているかに関わらず、重心位置および重心の速さの何れか一方のみに基づいて音量が設定されてもよい。例えば、重心位置のみに基づいて音量が設定される場合、図11に示すようにXが0.3〜0.7の範囲において示される上限値が、音量として設定されてもよい(すなわち、位置P2のときの音量はVmに設定されてもよい)。また、例えば、重心の速さのみに基づいて、音量が設定されてもよい。
【0157】
また、第1実施形態では、重心位置が基準線70から離れるほど音量が大きく設定されたが、他の実施形態では、重心位置が基準線70から離れるほど音量が小さく設定されてもよい。このように、重心位置と基準線との位置関係に基づいて、音量が設定されてもよい。また、第1実施形態では、重心の速さが速いほど音量が大きく設定されたが、重心の速さが速いほど音量が小さく設定されてもよい。
【0158】
また、第1実施形態では重心が基準線を越えて移動したことに応じて各音節が順次再生され、第2実施形態では重心の速さが所定値以上の場合に各音節が順次再生された。他の実施形態では、次の音節を再生するか否かを判定するための条件は、これらに限らない。すなわち、上記実施形態では、足踏みオルガンのような楽器を想定して、足踏みオルガンにおける足踏み動作と類似するような重心位置の移動があったか否かを判定し、それによって音楽の進行を制御した。他の実施形態では、他の特定の楽器を想定してその楽器の演奏時における動作を重心位置の移動によって判定し、それによって音楽の進行を制御してもよいし、特定の楽器を想定せずに、重心位置の移動によって音楽の進行を制御してもよい。
【0159】
例えば、重心位置が所定のパターンで移動しているか否かを判定し、当該判定結果が肯定の場合に、次の音節を再生してもよい。例えば、重心位置が円または楕円形状を描くように移動したか否かを判定し、重心位置が円または楕円形状を描くように移動するごとに次の音節を順次再生してもよい。また、例えば、重心位置が所定方向に往復運動しているか否かを判定し、往復運動している場合は各音節を順次再生してもよい。このような重心の移動パターンは、上記第1および第2実施形態の足踏みオルガンの例において示した重心の移動パターンと基本的には同じであり、重心の移動の判定方法が異なるだけである。すなわち、第1実施形態では重心位置が左右方向に往復運動しているか否かを基準線を用いて判定したが、他の実施形態では、当該重心の移動パターンを他の方法によって判定してもよい。例えば、重心の移動方向が反転したか否か(すなわち、現在の重心の移動方向と直前の重心の移動方向とが略180度異なるか否か)を判定し、判定結果が肯定となるごとに、次の音節を順次再生してもよい。
【0160】
以上のように、他の実施形態では、重心位置の移動が所定の条件を満たすか否かを判定し、判定結果が肯定となるごとに、各音節が順次再生されてもよい。ここで、重心位置の移動が所定の条件を満たすか否かの判定は、例えば、重心位置が基準線を越えて移動したか否かの判定であってもよいし、重心の速さが所定値以上か否かの判定であってもよい。また、重心位置の移動が所定の条件を満たすか否かの判定は、例えば、重心位置が所定のパターンで移動しているか否かの判定であってもよい。
【0161】
また、本実施形態では、4つの荷重センサ364を備えた荷重コントローラ36を用いて上記処理を行った。他の実施形態では、荷重センサは4つである必要はなく、3つであってもよいし、5つ以上であってもよい。また、4つの荷重センサ364は、荷重コントローラ36の四隅に配置される必要はなく、どのように配置されてもよい。すなわち、荷重センサの数や配置はどのようなものでもよく、荷重センサの幾何学的な配置に固有の補正を行うことによって、重心位置を算出することができる。
【0162】
また、本実施形態では、各荷重センサ364からの検出値を示すデータがゲーム装置12に送信されることとした。他の実施形態では、荷重コントローラ36が、各荷重センサ364が検出する荷重の合計値と重心位置とを算出し、算出した合計値と重心位置とをゲーム装置12に送信してもよい。すなわち、荷重コントローラ36が算出した合計荷重値と重心位置とを含む信号をゲーム装置12が受信し、ゲーム装置12が受信した信号からこれらの情報を取得してもよい。
【0163】
また、本発明に係るゲームプログラムは、光ディスク18等の外部記憶媒体を通じてゲーム装置12に供給されるだけでなく、有線又は無線の通信回線を通じてゲーム装置12に供給されてもよい。また、ゲームプログラムは、ゲーム装置12内部の不揮発性記憶装置に予め記録されていてもよい。なお、ゲームプログラムを記憶する情報記憶媒体(コンピュータ読み取り可能な記憶媒体)としては、CD−ROM、DVD、あるいはそれらに類する光学式ディスク状の記憶媒体の他に、不揮発性半導体メモリでもよい。
【0164】
また、上述したプログラムは、ゲーム装置12以外の情報処理装置、例えば、音楽演奏のための専用装置や荷重を測定可能な装置を備えるパーソナルコンピュータ等において実行されてもよい。
【0165】
また、上記音楽演奏の方法は、複数の機器が有線又は無線で接続されて構成された情報処理システムによって実現されてもよい。例えば、荷重を測定する荷重測定器と情報処理装置とがローカル接続され、当該情報処理装置と楽曲を保存するサーバとがインターネット等のネットワークで接続されてもよい。そして、情報処理装置が当該サーバから楽曲をダウンロードし、当該ダウンロードした楽曲を、荷重測定器からの信号に応じて順次再生してもよい。
【0166】
また、本実施形態においては、ゲーム装置12のCPU40がゲームプログラムを実行することによって、上述したフローチャートによる処理が行われた。他の実施形態においては、上記処理の一部又は全部は、ゲーム装置12が備える専用回路によって行われてもよい。
【符号の説明】
【0167】
10 ゲームシステム
12 ゲーム装置
36 荷重コントローラ
364 荷重センサ
40 CPU
70 基準線
【特許請求の範囲】
【請求項1】
荷重センサを備えた荷重測定器からの信号を処理する音楽演奏装置のコンピュータにおいて実行される音楽演奏プログラムであって、
前記荷重測定器からの信号に基づいて、重心位置を繰り返し取得する重心位置取得手段と、
前記重心位置取得手段によって取得された重心位置の移動が所定の条件を満たすか否かを判定する判定手段と、
前記判定手段によって前記重心位置の移動が前記所定の条件を満たすと判定されるごとに、所定の音楽を順次再生する音楽再生手段として、前記コンピュータを機能させる、音楽演奏プログラム。
【請求項2】
前記判定手段は、前記重心位置取得手段によって取得された重心位置が所定の基準線を越えて移動したことに応じて、所定の音楽を再生するか否かを判定し、
前記音楽再生手段は、前記判定手段によって前記所定の音楽を再生すると判定されるごとに、前記所定の音楽を所定の間隔ずつ順次再生する、請求項1に記載の音楽演奏プログラム。
【請求項3】
前記判定手段は、前記重心位置取得手段によって取得された重心位置に基づいて算出される重心位置の移動速度が所定値以上か否かを判定し、
前記音楽再生手段は、前記判定手段によって前記重心位置の移動速度が所定値以上であると判定される場合、所定の音楽を順次再生する、請求項1に記載の音楽演奏プログラム。
【請求項4】
前記重心位置取得手段によって取得された重心位置を用いて、前記所定の音楽の再生音量を設定する音量設定手段として、前記コンピュータを更に機能させ、
前記音楽再生手段は、前記音量設定手段で設定された再生音量で前記所定の音楽を再生する、請求項1から3の何れかに記載の音楽演奏プログラム。
【請求項5】
前記重心位置取得手段によって取得された重心位置と前記所定の基準線との位置関係に基づいて、前記所定の音楽の再生音量を設定する音量設定手段として、前記コンピュータを更に機能させ、
前記音楽再生手段は、前記音量設定手段で設定された再生音量で前記所定の音楽を再生する、請求項2に記載の音楽演奏プログラム。
【請求項6】
前記音量設定手段は、前記所定の基準線から前記重心位置までの距離が遠いほど前記再生音量を大きく設定する、請求項5に記載の音楽演奏プログラム。
【請求項7】
前記音量設定手段は、前記重心位置が前記所定の基準線を含む所定の領域にない場合は、前記再生音量を第1の音量に設定し、前記重心位置が前記所定の領域にある場合は、前記第1の音量よりも小さな音量の範囲で前記再生音量を設定する、請求項5又は6に記載の音楽演奏プログラム。
【請求項8】
前記音量設定手段は、前記所定の基準線から前記重心位置までの距離に応じて音量の上限値を定め、当該上限値内で前記重心位置取得手段によって取得された重心位置に基づいて算出される重心位置の移動速度に応じて、前記再生音量を設定する、請求項5から7の何れかに記載の音楽演奏プログラム。
【請求項9】
前記音量設定手段は、前記重心位置取得手段によって取得された重心位置に基づいて算出される重心位置の移動速度に応じて、前記再生音量を設定する、請求項4に記載の音楽演奏プログラム。
【請求項10】
前記音量設定手段は、前記重心位置の移動速度が速いほど前記再生音量を大きく設定する、請求項9に記載の音楽演奏プログラム。
【請求項11】
前記音楽再生手段は、現在の再生音量から前記音量設定手段で設定された再生音量へ所定期間かけて徐々に変化させて、前記所定の音楽を再生する、請求項4から10の何れかに記載の音楽演奏プログラム。
【請求項12】
前記重心位置取得手段によって取得された重心位置に基づいて算出される重心位置の移動速度に基づいて、前記所定の音楽の再生速度を設定する再生速度設定手段として、前記コンピュータを更に機能させ、
前記音楽再生手段は、前記再生速度設定手段によって設定された再生速度で、前記所定の音楽を再生する、請求項1から11の何れかに記載の音楽演奏プログラム。
【請求項13】
前記再生速度設定手段は、前記重心位置の移動速度が速いほど、前記再生速度を速く設定する、請求項12に記載の音楽演奏プログラム。
【請求項14】
直前に前記判定手段によって前記所定の音楽を再生すると判定されてから、次に前記判定手段によって前記所定の音楽を再生すると判定されるまでの間の時間を計測する時間計測手段と、
前記時間計測手段によって計測された時間に基づいて、前記所定の音楽の再生速度を設定する再生速度設定手段として、前記コンピュータを更に機能させ、
前記音楽再生手段は、前記再生速度設定手段によって設定された再生速度で、前記所定の音楽を再生する、請求項2、5から8の何れかに記載の音楽演奏プログラム。
【請求項15】
前記再生速度設定手段は、前記時間計測手段によって計測された時間が短いほど、前記再生速度を速く設定する、請求項14に記載の音楽演奏プログラム。
【請求項16】
前記判定手段は、前記重心位置が前記所定の基準線を越えて移動した場合において、当該所定の基準線をはさんだ一方の側から他方の側に前記重心位置が移動したときのみ、前記所定の音楽を再生すると判定する、請求項2、5から8の何れかに記載の音楽演奏プログラム。
【請求項17】
前記荷重測定器からの信号に基づいて、前記荷重測定器にかかる荷重値を繰り返し取得する荷重値取得手段として、前記コンピュータを更に機能させ、
前記音楽再生手段は、前記荷重値取得手段によって取得された荷重値が所定値以上の場合のみ前記所定の音楽を再生する、請求項1から16の何れかに記載の音楽演奏プログラム。
【請求項18】
前記音楽再生手段は、前記判定手段によって前記重心位置の移動が前記所定の条件を満たすと判定されるごとに、前記所定の音楽を所定の間隔ずつ順次再生する、請求項1に記載の音楽演奏プログラム。
【請求項19】
前記所定の音楽は、一定の間隔で区切られている、請求項1から18の何れかに記載の音楽演奏プログラム。
【請求項20】
前記所定の音楽は、1音ずつ区切られており、
前記音楽再生手段は、前記判定手段によって前記所定の音楽を再生すると判定されるごとに、前記所定の音楽を1音ずつ順次再生する、請求項1から18の何れかに記載の音楽演奏プログラム。
【請求項21】
前記荷重測定器は複数の荷重センサを有し、
前記重心位置取得手段は、前記複数の荷重センサによってそれぞれ検出された荷重値に基づいて、前記重心位置を算出する、請求項1から20の何れかに記載の音楽演奏プログラム。
【請求項22】
荷重センサを備えた荷重測定器からの信号を処理する音楽演奏装置であって、
前記荷重測定器からの信号に基づいて、重心位置を繰り返し取得する重心位置取得手段と、
前記重心位置取得手段によって取得された重心位置の移動が所定の条件を満たすか否かを判定する判定手段と、
前記判定手段によって前記重心位置の移動が前記所定の条件を満たすと判定されるごとに、所定の音楽を順次再生する音楽再生手段とを備える、音楽演奏装置。
【請求項23】
荷重センサを備えた荷重測定器からの信号を処理する音楽演奏システムであって、
前記荷重測定器からの信号に基づいて、重心位置を繰り返し取得する重心位置取得手段と、
前記重心位置取得手段によって取得された重心位置の移動が所定の条件を満たすか否かを判定する判定手段と、
前記判定手段によって前記重心位置の移動が前記所定の条件を満たすと判定されるごとに、所定の音楽を順次再生する音楽再生手段とを備える、音楽演奏システム。
【請求項24】
荷重センサを備えた荷重測定器からの信号に基づいて、重心位置を繰り返し取得する重心位置取得ステップと、
前記重心位置取得ステップで取得された重心位置の移動が所定の条件を満たすか否かを判定する判定ステップと、
前記判定ステップで前記重心位置の移動が所定の条件を満たすと判定されるごとに、前記所定の音楽を順次再生する音楽再生ステップとを含む、音楽演奏方法。
【請求項1】
荷重センサを備えた荷重測定器からの信号を処理する音楽演奏装置のコンピュータにおいて実行される音楽演奏プログラムであって、
前記荷重測定器からの信号に基づいて、重心位置を繰り返し取得する重心位置取得手段と、
前記重心位置取得手段によって取得された重心位置の移動が所定の条件を満たすか否かを判定する判定手段と、
前記判定手段によって前記重心位置の移動が前記所定の条件を満たすと判定されるごとに、所定の音楽を順次再生する音楽再生手段として、前記コンピュータを機能させる、音楽演奏プログラム。
【請求項2】
前記判定手段は、前記重心位置取得手段によって取得された重心位置が所定の基準線を越えて移動したことに応じて、所定の音楽を再生するか否かを判定し、
前記音楽再生手段は、前記判定手段によって前記所定の音楽を再生すると判定されるごとに、前記所定の音楽を所定の間隔ずつ順次再生する、請求項1に記載の音楽演奏プログラム。
【請求項3】
前記判定手段は、前記重心位置取得手段によって取得された重心位置に基づいて算出される重心位置の移動速度が所定値以上か否かを判定し、
前記音楽再生手段は、前記判定手段によって前記重心位置の移動速度が所定値以上であると判定される場合、所定の音楽を順次再生する、請求項1に記載の音楽演奏プログラム。
【請求項4】
前記重心位置取得手段によって取得された重心位置を用いて、前記所定の音楽の再生音量を設定する音量設定手段として、前記コンピュータを更に機能させ、
前記音楽再生手段は、前記音量設定手段で設定された再生音量で前記所定の音楽を再生する、請求項1から3の何れかに記載の音楽演奏プログラム。
【請求項5】
前記重心位置取得手段によって取得された重心位置と前記所定の基準線との位置関係に基づいて、前記所定の音楽の再生音量を設定する音量設定手段として、前記コンピュータを更に機能させ、
前記音楽再生手段は、前記音量設定手段で設定された再生音量で前記所定の音楽を再生する、請求項2に記載の音楽演奏プログラム。
【請求項6】
前記音量設定手段は、前記所定の基準線から前記重心位置までの距離が遠いほど前記再生音量を大きく設定する、請求項5に記載の音楽演奏プログラム。
【請求項7】
前記音量設定手段は、前記重心位置が前記所定の基準線を含む所定の領域にない場合は、前記再生音量を第1の音量に設定し、前記重心位置が前記所定の領域にある場合は、前記第1の音量よりも小さな音量の範囲で前記再生音量を設定する、請求項5又は6に記載の音楽演奏プログラム。
【請求項8】
前記音量設定手段は、前記所定の基準線から前記重心位置までの距離に応じて音量の上限値を定め、当該上限値内で前記重心位置取得手段によって取得された重心位置に基づいて算出される重心位置の移動速度に応じて、前記再生音量を設定する、請求項5から7の何れかに記載の音楽演奏プログラム。
【請求項9】
前記音量設定手段は、前記重心位置取得手段によって取得された重心位置に基づいて算出される重心位置の移動速度に応じて、前記再生音量を設定する、請求項4に記載の音楽演奏プログラム。
【請求項10】
前記音量設定手段は、前記重心位置の移動速度が速いほど前記再生音量を大きく設定する、請求項9に記載の音楽演奏プログラム。
【請求項11】
前記音楽再生手段は、現在の再生音量から前記音量設定手段で設定された再生音量へ所定期間かけて徐々に変化させて、前記所定の音楽を再生する、請求項4から10の何れかに記載の音楽演奏プログラム。
【請求項12】
前記重心位置取得手段によって取得された重心位置に基づいて算出される重心位置の移動速度に基づいて、前記所定の音楽の再生速度を設定する再生速度設定手段として、前記コンピュータを更に機能させ、
前記音楽再生手段は、前記再生速度設定手段によって設定された再生速度で、前記所定の音楽を再生する、請求項1から11の何れかに記載の音楽演奏プログラム。
【請求項13】
前記再生速度設定手段は、前記重心位置の移動速度が速いほど、前記再生速度を速く設定する、請求項12に記載の音楽演奏プログラム。
【請求項14】
直前に前記判定手段によって前記所定の音楽を再生すると判定されてから、次に前記判定手段によって前記所定の音楽を再生すると判定されるまでの間の時間を計測する時間計測手段と、
前記時間計測手段によって計測された時間に基づいて、前記所定の音楽の再生速度を設定する再生速度設定手段として、前記コンピュータを更に機能させ、
前記音楽再生手段は、前記再生速度設定手段によって設定された再生速度で、前記所定の音楽を再生する、請求項2、5から8の何れかに記載の音楽演奏プログラム。
【請求項15】
前記再生速度設定手段は、前記時間計測手段によって計測された時間が短いほど、前記再生速度を速く設定する、請求項14に記載の音楽演奏プログラム。
【請求項16】
前記判定手段は、前記重心位置が前記所定の基準線を越えて移動した場合において、当該所定の基準線をはさんだ一方の側から他方の側に前記重心位置が移動したときのみ、前記所定の音楽を再生すると判定する、請求項2、5から8の何れかに記載の音楽演奏プログラム。
【請求項17】
前記荷重測定器からの信号に基づいて、前記荷重測定器にかかる荷重値を繰り返し取得する荷重値取得手段として、前記コンピュータを更に機能させ、
前記音楽再生手段は、前記荷重値取得手段によって取得された荷重値が所定値以上の場合のみ前記所定の音楽を再生する、請求項1から16の何れかに記載の音楽演奏プログラム。
【請求項18】
前記音楽再生手段は、前記判定手段によって前記重心位置の移動が前記所定の条件を満たすと判定されるごとに、前記所定の音楽を所定の間隔ずつ順次再生する、請求項1に記載の音楽演奏プログラム。
【請求項19】
前記所定の音楽は、一定の間隔で区切られている、請求項1から18の何れかに記載の音楽演奏プログラム。
【請求項20】
前記所定の音楽は、1音ずつ区切られており、
前記音楽再生手段は、前記判定手段によって前記所定の音楽を再生すると判定されるごとに、前記所定の音楽を1音ずつ順次再生する、請求項1から18の何れかに記載の音楽演奏プログラム。
【請求項21】
前記荷重測定器は複数の荷重センサを有し、
前記重心位置取得手段は、前記複数の荷重センサによってそれぞれ検出された荷重値に基づいて、前記重心位置を算出する、請求項1から20の何れかに記載の音楽演奏プログラム。
【請求項22】
荷重センサを備えた荷重測定器からの信号を処理する音楽演奏装置であって、
前記荷重測定器からの信号に基づいて、重心位置を繰り返し取得する重心位置取得手段と、
前記重心位置取得手段によって取得された重心位置の移動が所定の条件を満たすか否かを判定する判定手段と、
前記判定手段によって前記重心位置の移動が前記所定の条件を満たすと判定されるごとに、所定の音楽を順次再生する音楽再生手段とを備える、音楽演奏装置。
【請求項23】
荷重センサを備えた荷重測定器からの信号を処理する音楽演奏システムであって、
前記荷重測定器からの信号に基づいて、重心位置を繰り返し取得する重心位置取得手段と、
前記重心位置取得手段によって取得された重心位置の移動が所定の条件を満たすか否かを判定する判定手段と、
前記判定手段によって前記重心位置の移動が前記所定の条件を満たすと判定されるごとに、所定の音楽を順次再生する音楽再生手段とを備える、音楽演奏システム。
【請求項24】
荷重センサを備えた荷重測定器からの信号に基づいて、重心位置を繰り返し取得する重心位置取得ステップと、
前記重心位置取得ステップで取得された重心位置の移動が所定の条件を満たすか否かを判定する判定ステップと、
前記判定ステップで前記重心位置の移動が所定の条件を満たすと判定されるごとに、前記所定の音楽を順次再生する音楽再生ステップとを含む、音楽演奏方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【公開番号】特開2012−108362(P2012−108362A)
【公開日】平成24年6月7日(2012.6.7)
【国際特許分類】
【出願番号】特願2010−257870(P2010−257870)
【出願日】平成22年11月18日(2010.11.18)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
【公開日】平成24年6月7日(2012.6.7)
【国際特許分類】
【出願日】平成22年11月18日(2010.11.18)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
[ Back to top ]