(57)【要約】【課題】例えば、コントローラ等に含まれる加速度センサの検出結果に基づいてゲーム処理を実行するゲーム装置において、ゲーム処理を実行する際にプレイヤのコントローラ等の持ち方を考慮しなくてもすむように図ることが可能になるゲーム装置を提供すること。【解決手段】取得手段（５０）は、加速度センサの検出結果に基づく検出ベクトルと、基準タイミングにおける加速度センサの検出結果に基づく基準ベクトルと、がなす角度に応じた値を取得する。ゲーム実行手段（５６）は、取得手段（５０）により取得された値に基づいて、ゲーム処理を実行する。【選択図】図３
2010082182.tif 000002
【特許請求の範囲】
【請求項１】
複数の軸方向の加速度を検出する加速度センサの検出結果に基づいてゲーム処理を実行するゲーム装置において、
前記加速度センサの検出結果に基づく検出ベクトルと、基準タイミングにおける前記加速度センサの検出結果に基づく基準ベクトルと、がなす角度に応じた値を取得する取得手段と、
前記取得手段により取得された前記値に基づいて、ゲーム処理を実行するゲーム実行手段と、
を含むことを特徴とするゲーム装置。
【請求項２】
前記複数の軸方向は、互いに直交する第１軸方向及び第２軸方向を含み、
前記基準ベクトルは、前記基準タイミングにおいて前記加速度センサが検出した前記第１軸方向の加速度を示すベクトルと、前記基準タイミングにおいて前記加速度センサが検出した前記第２軸方向の加速度を示すベクトルと、が合成されてなるベクトルであり、
前記検出ベクトルは、前記加速度センサが検出した前記第１軸方向の加速度を示すベクトルと、前記加速度センサが検出した前記第２軸方向の加速度を示すベクトルと、が合成されてなるベクトルであり、
前記取得手段は、
前記基準ベクトルを極座標変換することによって、前記基準ベクトルと、前記第１軸方向と、がなす第１角度を取得する第１角度取得手段と、
前記検出ベクトルを極座標変換することによって、前記検出ベクトルと、前記第１軸方向と、がなす第２角度を取得する第２角度取得手段と、を含み、
前記第１角度と前記第２角度に基づいて、前記値を取得する、
ことを特徴とする請求項１に記載のゲーム装置。
【請求項３】
前記ゲーム装置は、前記加速度センサを含むコントローラを含み、
前記複数の軸方向は、第１軸方向と、第２軸方向と、前記コントローラの長手方向に対応する第３軸方向と、を含み、
前記基準ベクトルは、前記基準タイミングにおいて前記加速度センサが検出した前記第１軸方向の加速度を示すベクトルと、前記基準タイミングにおいて前記加速度センサが検出した前記第２軸方向の加速度を示すベクトルと、が合成されてなるベクトルであり、
前記検出ベクトルは、前記加速度センサが検出した前記第１軸方向の加速度を示すベクトルと、前記加速度センサが検出した前記第２軸方向の加速度を示すベクトルと、が合成されてなるベクトルである、
ことを特徴とする請求項１に記載のゲーム装置。
【請求項４】
複数の軸方向の加速度を検出する加速度センサの検出結果に基づいてゲーム処理を実行するゲーム装置の制御方法において、
前記加速度センサの検出結果に基づく検出ベクトルと、基準タイミングにおける前記加速度センサの検出結果に基づく基準ベクトルと、がなす角度に応じた値を取得する取得ステップと、
前記取得ステップにより取得された前記値に基づいて、ゲーム処理を実行するゲーム実行ステップと、
を含むことを特徴とするゲーム装置の制御方法。
【請求項５】
複数の軸方向の加速度を検出する加速度センサの検出結果に基づいてゲーム処理を実行するゲーム装置としてコンピュータを機能させるためのプログラムにおいて、
前記加速度センサの検出結果に基づく検出ベクトルと、基準タイミングにおける前記加速度センサの検出結果に基づく基準ベクトルと、がなす角度に応じた値を取得する取得手段、及び、
前記取得手段により取得された前記値に基づいて、ゲーム処理を実行するゲーム実行手段、
として前記コンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はゲーム装置、ゲーム装置の制御方法、及びプログラムに関する。
【背景技術】
【０００２】
複数の軸方向の加速度を検出する加速度センサの検出結果に基づいてゲーム処理を実行するゲーム装置が知られている。例えば、複数の軸方向の加速度を検出する加速度センサが内蔵されたコントローラを含むゲーム装置が知られている。
【０００３】
図８は、加速度センサが内蔵されたコントローラの一例を示す図である。図８に示すコントローラ４は直方体形状を有し、コントローラ４の表面４ａには複数の操作ボタン３８が設けられている。また、コントローラ４の筐体内部には加速度センサ３６が含まれている。加速度センサ３６は、互いに直交するＸ軸方向、Ｙ軸方向、及びＺ軸方向の加速度を検出する３軸加速度センサである。図８では、Ｘ軸方向がコントローラ４の短手方向に対応し、Ｚ軸方向がコントローラ４の長手方向に対応している。また、Ｙ軸方向はコントローラ４の表面４ａの法線方向に対応している。
【０００４】
コントローラ４を含むゲーム装置では、プレイヤがコントローラ４をどのように動かしたかが加速度センサ３６の検出結果に基づいて判断され、その判断結果に基づいてゲーム処理が実行される。このようなゲーム装置では、プレイヤがコントローラ４の一方の端を握ってコントローラ４を振ることによってゲーム操作を行えるようにすることが可能である。例えば、ゲーム操作の一例として、プレイヤはコントローラ４を図８に示す軌跡６０を描くようにして振る。
【０００５】
【特許文献１】特開２００８−１１３８４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
プレイヤがコントローラ４を動かした場合の加速度センサ３６の検出結果は、プレイヤのコントローラ４の持ち方によって変化する。図９及び図１０は、プレイヤのコントローラ４の持ち方の違いに起因する加速度センサ３６の検出結果の変化について説明するための図であり、プレイヤが右手でコントローラ４の一方の端を把持している様子の例を示す。
【０００７】
図９では、コントローラ４が、コントローラ４の表面４ａを上に向けた状態でプレイヤに把持されている。プレイヤがコントローラ４を図９に示す状態で把持してコントローラ４を軌跡６０を描くように動かした場合、あるタイミングにおいて、例えば図９に示すような加速度７０がコントローラ４に生じ、その加速度７０が加速度センサ３６によって検出される。その場合、Ｘ軸方向及びＹ軸方向の加速度（Ｘ，Ｙ）として（Ｘ１，−Ｙ１）が検出される。なお、コントローラ４が軌跡６０を描くように動かされる場合、コントローラ４はＸ軸方向及びＹ軸方向に移動し、Ｚ軸方向には移動しないため、Ｚ軸方向の加速度は検出されない。このため、ここではＸ軸方向及びＹ軸方向の加速度のみに注目する。
【０００８】
一方、図１０では、コントローラ４が、コントローラ４の長手方向（Ｚ軸方向）を回転軸として図９に示す状態から反時計回りに（左に）９０度回転させた状態でプレイヤに把持されている。図１０に示す状態では、Ｘ軸方向及びＹ軸方向も、Ｚ軸方向を回転軸として図９に示すＸ軸方向及びＹ軸方向から反時計回りに（左に）９０度回転させた方向になっている。言い換えれば、図１０におけるＸ軸正方向は図９におけるＹ軸正方向になっており、図９におけるＹ軸正方向は図８におけるＸ軸負方向になっている。プレイヤがコントローラ４を図１０に示す状態で把持してコントローラ４を軌跡６０を描くように動かした場合、あるタイミングにおいて、例えば、加速度７０がコントローラ４に生じ、その加速度７０が加速度センサ３６によって検出される。図１０における加速度７０は図９における加速度７０と同じである。ただし、この場合、Ｘ軸方向及びＹ軸方向の加速度（Ｘ，Ｙ）として（−Ｙ１，−Ｘ１）が検出される。すなわち、プレイヤは図９に示す場合と同じようにコントローラ４を振っているにも関わらず、加速度センサ３６の検出結果は図９に示す場合と異なる。
【０００９】
以上のように、加速度センサ３６の検出結果はプレイヤのコントローラ４の持ち方によって影響を受ける。したがって、プレイヤがコントローラ４を同じように振った場合であっても、プレイヤのコントローラ４の持ち方が異なっていると、加速度センサ３６の検出結果は異なる。このため、コントローラ４の動き（姿勢変化や移動）を加速度センサ３６の検出結果に基づいて判断し、その判断結果に基づいてゲーム処理を実行する際には、プレイヤのコントローラ４の持ち方を考慮する必要があった。
【００１０】
ところで、加速度センサは例えば携帯ゲーム機、携帯電話又は携帯情報端末（ＰＤＡ）本体内に内蔵される場合も考えられる。このような携帯ゲーム機等でも、携帯ゲーム機等の動き（姿勢変化や移動）を加速度センサの検出結果に基づいて判断して、その判断結果に基づいてゲーム処理を実行することが考えられる。そして、そのような場合には、加速度センサの検出結果がプレイヤの携帯ゲーム機等の持ち方によって影響を受けるため、ゲーム処理を実行する際にはプレイヤの携帯ゲーム機等の持ち方を考慮する必要がある。
【００１１】
本発明は上記課題に鑑みてなされたものであって、その目的は、例えば、コントローラ等に含まれる加速度センサの検出結果に基づいてゲーム処理を実行するゲーム装置において、ゲーム処理を実行する際にプレイヤのコントローラ等の持ち方を考慮しなくてもすむように図ることが可能になるゲーム装置、ゲーム装置の制御方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、本発明に係るゲーム装置は、複数の軸方向の加速度を検出する加速度センサの検出結果に基づいてゲーム処理を実行するゲーム装置において、前記加速度センサの検出結果に基づく検出ベクトルと、基準タイミングにおける前記加速度センサの検出結果に基づく基準ベクトルと、がなす角度に応じた値を取得する取得手段と、前記取得手段により取得された前記値に基づいて、ゲーム処理を実行するゲーム実行手段と、を含むことを特徴とする。
【００１３】
また、本発明に係るゲーム装置の制御方法は、複数の軸方向の加速度を検出する加速度センサの検出結果に基づいてゲーム処理を実行するゲーム装置の制御方法において、前記加速度センサの検出結果に基づく検出ベクトルと、基準タイミングにおける前記加速度センサの検出結果に基づく基準ベクトルと、がなす角度に応じた値を取得する取得ステップと、前記取得ステップにより取得された前記値に基づいて、ゲーム処理を実行するゲーム実行ステップと、を含むことを特徴とする。
【００１４】
また、本発明に係るプログラムは、複数の軸方向の加速度を検出する加速度センサの検出結果に基づいてゲーム処理を実行するゲーム装置として、据置型ゲーム機（家庭用ゲーム機）、携帯ゲーム機、業務用ゲーム機、携帯電話機、携帯情報端末（ＰＤＡ）又はパーソナルコンピュータなどのコンピュータを機能させるためのプログラムにおいて、前記加速度センサの検出結果に基づく検出ベクトルと、基準タイミングにおける前記加速度センサの検出結果に基づく基準ベクトルと、がなす角度に応じた値を取得する取得手段、及び、前記取得手段により取得された前記値に基づいて、ゲーム処理を実行するゲーム実行手段、として前記コンピュータを機能させるためのプログラムである。
【００１５】
また、本発明に係る情報記憶媒体は、上記プログラムを記録したコンピュータ読み取り可能な情報記憶媒体である。
【００１６】
本発明によれば、例えば、コントローラ等に含まれる加速度センサの検出結果に基づいてゲーム処理を実行するゲーム装置において、ゲーム処理を実行する際にプレイヤのコントローラ等の持ち方を考慮しなくてもすむように図ることが可能になる。
【００１７】
また、本発明の一態様では、前記複数の軸方向は、互いに直交する第１軸方向及び第２軸方向を含むようにしてもよい。前記基準ベクトルは、前記基準タイミングにおいて前記加速度センサが検出した前記第１軸方向の加速度を示すベクトルと、前記基準タイミングにおいて前記加速度センサが検出した前記第２軸方向の加速度を示すベクトルと、が合成されてなるベクトルであってもよい。前記検出ベクトルは、前記加速度センサが検出した前記第１軸方向の加速度を示すベクトルと、前記加速度センサが検出した前記第２軸方向の加速度を示すベクトルと、が合成されてなるベクトルであってもよい。前記取得手段は、前記基準ベクトルを極座標変換することによって、前記基準ベクトルと、前記第１軸方向と、がなす第１角度を取得する第１角度取得手段と、前記検出ベクトルを極座標変換することによって、前記検出ベクトルと、前記第１軸方向と、がなす第２角度を取得する第２角度取得手段と、を含み、前記第１角度と前記第２角度に基づいて、前記値を取得するようにしてもよい。
【００１８】
また、本発明の一態様では、前記ゲーム装置は、前記加速度センサを含むコントローラを含むようにしてもよい。前記複数の軸方向は、第１軸方向と、第２軸方向と、前記コントローラの長手方向に対応する第３軸方向と、を含むようにしてもよい。前記基準ベクトルは、前記基準タイミングにおいて前記加速度センサが検出した前記第１軸方向の加速度を示すベクトルと、前記基準タイミングにおいて前記加速度センサが検出した前記第２軸方向の加速度を示すベクトルと、が合成されてなるベクトルであってもよい。前記検出ベクトルは、前記加速度センサが検出した前記第１軸方向の加速度を示すベクトルと、前記加速度センサが検出した前記第２軸方向の加速度を示すベクトルと、が合成されてなるベクトルであってもよい。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施形態について図面を参照しながら説明する。
【００２０】
［１．ゲーム装置の構成］
図１は、本発明の実施形態に係るゲーム装置２のハードウェア構成を説明するための図である。図１に示すゲーム装置２は、例えば、据置型ゲーム機（家庭用ゲーム機）、業務用ゲーム機又はパーソナルコンピュータなどの公知のコンピュータゲームシステムである。ゲーム装置２は、コントローラ４、光ディスク２４、メモリカード２８、モニタ１８及びスピーカ２２を含む。光ディスク２４及びメモリカード２８は情報記憶媒体である。光ディスク２４及びメモリカード２８はゲーム装置２に装着される。モニタ１８及びスピーカ２２はゲーム装置２に接続される。例えば家庭用テレビ受像機がモニタ１８として用いられる。例えば家庭用テレビ受像機に内蔵されたスピーカがスピーカ２２として用いられる。
【００２１】
また、ゲーム装置２は、バス１０、マイクロプロセッサ１２、主記憶１４、画像処理部１６、音声処理部２０、光ディスクドライブ２６、メモリカードスロット３０、通信インタフェース（Ｉ／Ｆ）３２、コントローラインタフェース（Ｉ／Ｆ）３４を含む。各構成要素はゲーム装置２の筐体内に収容される。
【００２２】
バス１０はアドレス及びデータをゲーム装置２の各部でやり取りするためのものである。マイクロプロセッサ１２、画像処理部１６、音声処理部２０、光ディスクドライブ２６、主記憶１４、メモリカードスロット３０、通信インタフェース３２及びコントローラインタフェース３４は、バス１０によって相互データ通信可能に接続される。
【００２３】
マイクロプロセッサ１２は、図示しないＲＯＭに格納されるオペレーティングシステムや、主記憶１４に記憶されるプログラム及びデータに基づいて、ゲーム装置２の各部を制御する。主記憶１４は例えばＲＡＭを含む。主記憶１４には、光ディスク２４又はメモリカード２８から読み出されたプログラム及びデータが必要に応じて書き込まれる。主記憶１４はマイクロプロセッサ１２の作業用としても用いられる。
【００２４】
画像処理部１６はＶＲＡＭを含み、マイクロプロセッサ１２から送られる画像データに基づいてＶＲＡＭ上に画面を描画する。そして、画像処理部１６は、その画面をビデオ信号に変換して所定のタイミングでモニタ１８に出力する。音声処理部２０はサウンドバッファを含み、光ディスク２４からサウンドバッファに読み出されたゲーム音楽、ゲーム効果音、メッセージ等の各種音声データを再生してスピーカ２２から出力する。
【００２５】
光ディスクドライブ２６は、光ディスク２４に記録されたプログラムやデータをマイクロプロセッサ１２からの指示に従って読み取る。ここではプログラムやデータをゲーム装置２に供給するために光ディスク２４を用いることとするが、例えばＲＯＭカードなどの他のあらゆる情報記憶媒体を用いるようにしてもよい。また、インターネットなどのデータ通信網を介して遠隔地からプログラムやデータをゲーム装置２に供給するようにしてもよい。
【００２６】
メモリカードスロット３０はメモリカード２８を装着するためのインタフェースである。メモリカード２８は不揮発性メモリ（例えばＥＥＰＲＯＭなど）を含んで構成され、例えばセーブデータなどの各種ゲームデータを記憶するために用いられる。通信インタフェース３２は、インターネットなどのデータ通信網に通信接続するためのインタフェースである。
【００２７】
コントローラインタフェース３４は、コントローラ４を無線接続するためのインタフェースである。コントローラインタフェース３４は、例えばＢｌｕｅｔｏｏｔｈ（登録商標）インタフェースである。なお、コントローラインタフェース３４は、コントローラ４を有線接続するためのインタフェースであってもよい。
【００２８】
図８は、ゲーム装置２に無線接続されるコントローラ４の一例を示す。図８に示すように、コントローラ４は、一方向に長い形状（ここでは略直方体形状）を有し、コントローラ４の表面４ａには複数の操作ボタン３８を備えられる。また、コントローラ４の筐体内部には加速度センサ３６が含まれる。加速度センサ３６は、互いに直交するＸ軸方向、Ｙ軸方向、及びＺ軸方向の加速度を検出する３軸加速度センサである。図８では、Ｘ軸方向はコントローラ４の短手方向に対応し、Ｚ軸方向はコントローラ４の長手方向に対応している。また、Ｙ軸方向はコントローラ４の表面４ａの法線方向に対応している。なお、ここでは、コントローラ４が一方向に長い形状を有するものとして説明するが、コントローラ４の形状はどのような形状であってもよい。
【００２９】
プレイヤは、例えば操作ボタン３８を押下したり、コントローラ４を把持して振ったりすることによってゲーム操作を行う。コントローラ４からコントローラインタフェース３４に対しては、一定周期ごと（例えば１／６０秒ごと）にプレイヤの操作内容に基づく基礎操作情報が送信される。この基礎操作情報には、例えば、各操作ボタン３８の押下状態を示す情報や、加速度センサ３６が検出した各軸方向の加速度を示す情報が含まれる。コントローラインタフェース３４は、コントローラ４から受信した基礎操作情報をバス１０を介してマイクロプロセッサ１２に渡す。そして、マイクロプロセッサ１２は基礎操作情報に基づいてゲームを実行する。
【００３０】
［２．ゲーム装置で提供されるゲーム］
上記ゲーム装置２では、例えば、下記に説明するようなフィットネスゲームが実行される。このフィットネスゲームでは、プレイヤが行うべき動作（以下、課題動作と記載する）が次々にプレイヤに提示される。そして、プレイヤは、次々と提示される課題動作を行いながら体を鍛えていく。このフィットネスゲームは、光ディスク２４から読み出されたプログラムが実行されることによって実現される。
【００３１】
図２は、このフィットネスゲームのゲーム画面の一例を示す図である。このフィットネスゲームのゲーム画面には課題動作案内画像４０とカーソル４１とが表示される。課題動作案内画像４０は課題動作の内容をプレイヤに案内するための画像である。課題動作はコントローラ４を振る動作であり、課題動作案内画像４０はコントローラ４をどのように振るべきかをプレイヤに案内する。図２に示す課題動作案内画像４０は、逆Ｓ字（Ｓ字を左右反転させた文字）を描くようにコントローラ４を振ることを案内している。カーソル４１は課題動作案内画像４０に沿って始点４０Ａから終点４０Ｂまで一定速度で移動する。図２は、カーソル４１が始点４０Ａに位置している場合を示している。
【００３２】
プレイヤは、コントローラ４を把持して課題動作案内画像４０により案内される課題動作を行う。具体的には、プレイヤはカーソル４１の移動に合わせてコントローラ４を移動させる。図２に示す課題動作案内画像４０がゲーム画面に表示される場合、プレイヤはカーソル４１の移動に合わせて、逆Ｓ字を描くようにコントローラ４を振る。ゲーム装置２では、コントローラ４から供給される上記基礎操作情報に基づいて課題動作が行われたか否かが判定される。そして、課題動作がプレイヤによって行われた場合には、次の課題動作の内容を案内する課題動作案内画像４０がゲーム画面に表示される。
【００３３】
ところで、上述したように、加速度センサ３６の検出結果はプレイヤのコントローラ４の持ち方によって影響を受ける（図９，１０参照）。すなわち、プレイヤがコントローラ４を同じように振った場合であっても、プレイヤのコントローラ４の持ち方が異なっていると、加速度センサ３６の検出結果が異なる。このため、従来、プレイヤが課題動作を行ったか否かを加速度センサ３６の検出結果に基づいて判定する場合には、プレイヤのコントローラ４の持ち方を考慮しなければならなかった。以下、プレイヤが課題動作を行ったか否かを加速度センサ３６の検出結果に基づいて判定する場合において、プレイヤのコントローラ４の持ち方を考慮しなくてもすむように図るための技術について説明する。
【００３４】
［３．ゲーム装置において実現される機能］
図３は、ゲーム装置２において実現される機能のうち、本発明に関するものを主として示す機能ブロック図である。図３に示すように、ゲーム装置２では、操作情報取得部５０（取得手段）と、ゲーム実行部５６（ゲーム実行手段）と、が実現される。これらの機能のうち、操作情報取得部５０は、加速度取得部５２と、角度算出部５４と、を含む。操作情報取得部５０（加速度取得部５２、角度算出部５４）及びゲーム実行部５６は、光ディスク２４から読み出されたプログラムがマイクロプロセッサ１２によって実行されることによって実現される。
【００３５】
［３−１．操作情報取得部］
操作情報取得部５０は、例えばマイクロプロセッサ１２とコントローラインタフェース３４とを主として実現される。操作情報取得部５０は、加速度取得部５２と角度算出部５４の機能により、加速度センサ３６が検出した加速度に基づく対象加速度ベクトル（検出ベクトル）と、基準加速度ベクトル（基準ベクトル）と、がなす角度Δθに応じた値を、操作情報として取得する。基準加速度ベクトルとは、基準タイミングにおいて加速度センサ３６が検出した加速度に基づく加速度ベクトルである。例えば、基準加速度ベクトルは、基準タイミングにおいて加速度センサ３６が検出した少なくとも２つの軸方向の加速度（ベクトル）を合成してなるベクトルであり、対象加速度ベクトルは、基準タイミングよりも前又は後のタイミングにおいて加速度センサ３６が検出した前記少なくとも２つの軸方向の加速度（ベクトル）を合成してなるベクトルである。また、基準タイミングとは、例えば、カーソル４１が始点４０Ａからの移動を開始したタイミングである。本実施形態の場合、操作情報取得部５０は上記の角度Δθ自体を操作情報として取得する。角度Δθの詳細については後述する（図４参照）。
【００３６】
以下、プレイヤに要求される課題動作が、コントローラ４をＸ軸方向及びＹ軸方向に移動させる動作であることとして、加速度取得部５２及び角度算出部５４の機能について説明する。プレイヤに要求される課題動作が、コントローラ４をＸ軸方向及びＹ軸方向に移動させる動作である場合、Ｚ軸方向の加速度がコントローラ４に生じないので、ここではＺ軸方向の加速度を無視する。なお、プレイヤに要求される課題動作が、コントローラ４をＸ軸方向、Ｙ軸方向及びＺ軸方向に移動させる動作である場合には、Ｚ軸方向の加速度もコントローラ４に生じるため、Ｚ軸方向の加速度にも着目するようにすればよい。
【００３７】
［３−２．加速度取得部］
加速度取得部５２は、例えばマイクロプロセッサ１２とコントローラインタフェース３４とを主として実現される。加速度取得部５２は、基礎操作情報を受信することにより、加速度センサ３６が検出したＸ軸方向、Ｙ軸方向及びＺ軸方向の加速度を一定周期ごとに取得する。なお、本実施形態の場合、上述したようにＺ軸方向の加速度に着目しないため、加速度取得部５２は、加速度センサ３６が検出したＸ軸方向、Ｙ軸方向及びＺ軸方向の加速度のうちＸ軸方向及びＹ軸方向の加速度だけを選択的に取得するようにしてもよい。
【００３８】
［３−３．角度算出部］
角度算出部５４は、例えばマイクロプロセッサ１２を主として実現される。角度算出部５４は、対象加速度ベクトルと、基準加速度ベクトルと、がなす角度Δθ（Δθ≧０）を算出する。例えば、基準加速度ベクトルは、基準タイミングにおいて加速度取得部５２が取得したＸ軸方向の加速度及びＹ軸方向の加速度を合成してなる２次元ベクトルである。一方、対象加速度ベクトルは、基準タイミングよりも前又は後のタイミングにおいて加速度取得部５２が取得したＸ軸方向の加速度及びＹ軸方向の加速度を合成してなる２次元ベクトルである。図４は、角度Δθの一例を示す図である。本実施形態の場合、角度算出部５４は、基準タイミングが到来した後、基礎操作情報を受信するごとに角度Δθを算出する。なお、プレイヤに要求される課題動作が、コントローラ４をＸ軸方向、Ｙ軸方向及びＺ軸方向に移動させる動作である場合、基準加速度ベクトル及び対象加速度ベクトルは、それぞれ、Ｘ軸方向、Ｙ軸方向及びＺ軸方向の加速度を合成してなる３次元ベクトルになる。
【００３９】
対象加速度ベクトルと基準加速度ベクトルとの間の角度Δθを算出する方法について詳細に説明する。本実施形態の場合、角度算出部５４（第１角度取得手段）は、基準加速度ベクトルとＸ軸正方向とがなす第１角度θ１を取得する。例えば、角度算出部５４は、基準加速度ベクトルを極座標変換することにより、基準加速度ベクトルの角度座標の値を、第１角度θ１（θ１≧０）として取得する。また、角度算出部５４（第２角度取得手段）は、対象加速度ベクトルとＸ軸正方向とがなす第２角度θ２を取得する。例えば、角度算出部５４は、対象加速度ベクトルを極座標変換することにより、対象加速度ベクトルの角度座標の値を、第２角度θ２（θ２≧０）として取得する。こうした上で、第１角度θ１と第２角度θ２に基づいて、角度Δθを算出する。例えば、第２角度θ２から第１角度θ１を差し引くことにより、角度Δθを算出する。なお、２次元ベクトル（Ｘ，Ｙ）の角度座標の値は、例えば、ｔａｎ（Ｙ／Ｘ）の逆関数を算出することによって得ることができる。
【００４０】
なお、対象加速度ベクトルと基準加速度ベクトルとの間の角度Δθを算出する方法は他にもある。例えば、第１角度θ１と第２角度θ２を算出せずに、角度Δθを算出することも可能である。具体的には、角度算出部５４は、基準加速度ベクトルと対象加速度ベクトルとに基づいてｃｏｓ（Δθ）を算出し、さらに、ｃｏｓ（Δθ）の逆関数を算出することにより、Δθを算出するようにしてもよい。この方法は、基準加速度ベクトル及び対象加速度ベクトルが３次元ベクトルである場合に有効である。
【００４１】
［３−４．ゲーム実行部］
ゲーム実行部５６は、例えばマイクロプロセッサ１２と光ディスク２４とを主として実現される。ゲーム実行部５６は、操作情報取得部５０により取得された操作情報に基づいて、ゲーム処理を実行する。
【００４２】
本実施形態の場合、ゲーム実行部５６は、各課題動作に対応づけて基準角度列を記憶する。図５は基準角度列の一例を示す。基準角度列は、対象加速度ベクトルと基準加速度ベクトルとの間の角度Δθの配列（一次元配列）であり、プレイヤによって課題動作が行われた場合の、所定時間（例えば１／６０秒）ごとの角度Δθの標準変化パターンを示す。
【００４３】
こうした上で、ゲーム実行部５６は、操作情報取得部５０により操作情報として所定時間（例えば１／６０秒）ごとに順次取得される角度Δθと、基準角度列と、に基づき、課題動作が行われたか否かを判定する。そして、課題動作が行われた場合に、ゲーム実行部５６は、次の課題動作の内容を案内する課題動作案内画像４０をゲーム画面に表示する。
【００４４】
［４．ゲーム装置において実行される処理］
図６は、ゲーム装置２において実行される処理を示すフローチャート図である。この処理は、マイクロプロセッサ１２が光ディスク２４に記憶されたプログラムに従って動作することにより実行される。なお、この処理は、例えば、図２に示すゲーム画面においてカーソル４１が始点４０Ａから移動を開始してから終点４０Ｂに到達するまでの間、実行される。
【００４５】
図６に示すように、まず、マイクロプロセッサ１２は、コントローラインタフェース３４を介して受信した基礎操作情報に含まれるＸ軸方向の加速度とＹ軸方向の加速度とを取得し、それらの軸方向の加速度を成分とする２次元ベクトルを基準加速度ベクトルとして取得する。そして、マイクロプロセッサ１２は、基準加速度ベクトルとＸ軸正方向とがなす角度である第１角度θ１を算出する（Ｓ１０１）。具体的には、マイクロプロセッサ１２は、基準加速度ベクトルを極座標変換し、基準加速度ベクトルの角度座標の値を第１角度θ１として取得する。
【００４６】
第１角度θ１が算出された後、マイクロプロセッサ１２は、コントローラインタフェース３４を介して基礎操作情報を受信するごとに、以下に説明するＳ１０２乃至Ｓ１０５のステップを実行する。
【００４７】
まず、マイクロプロセッサ１２は、Ｓ１０２及びＳ１０３のステップにより、基準加速度ベクトルと対象加速度ベクトルとがなす角度Δθを算出する。
【００４８】
すなわち、マイクロプロセッサ１２は、コントローラインタフェース３４を介して受信した基礎操作情報に含まれるＸ軸方向の加速度とＹ軸方向の加速度とを取得し、それらの軸方向の加速度を成分とする２次元ベクトルを対象加速度ベクトルとして取得する。そして、マイクロプロセッサ１２は、対象加速度ベクトルとＸ軸正方向とがなす角度である第２角度θ２を算出する（Ｓ１０２）。具体的には、マイクロプロセッサ１２は、対象加速度ベクトルを極座標変換し、対象加速度ベクトルの角度座標の値を第２角度θ２として取得する。
【００４９】
そして、マイクロプロセッサ１２は、第２角度θ２から第１角度θ１を差し引くことにより、対象加速度ベクトルと基準加速度ベクトルとがなす角度Δθを算出する（Ｓ１０３）。こうして、マイクロプロセッサ１２は操作情報（すなわち、角度Δθ）を取得する。なお、取得された角度Δθは、取得された順序で主記憶１４に記憶される。このため、主記憶１４には、所定時間（例えば１／６０秒）ごとに取得された上記角度Δθの配列（一次元配列）が保持されることになる。図７は、主記憶１４に記憶される上記角度Δθの配列の一例を示す。以下、主記憶１４に記憶される上記角度Δθの配列のことを「角度列Ｘ」と呼ぶ。
【００５０】
角度Δθが取得された後、マイクロプロセッサ１２はカーソル４１が終点４０Ｂに到達したか否かを判定する（Ｓ１０４）。カーソル４１が終点４０Ｂに到達していない場合（Ｓ１０４のＮ）、Ｓ１０２のステップに戻る。一方、カーソル４１が終点４０Ｂに到達した場合（Ｓ１０４のＹ）、マイクロプロセッサ１２は、角度列Ｘ（図７参照）と基準角度列（図５参照）とが類似するか否かを判定する（Ｓ１０５）。
【００５１】
例えば、角度列Ｘと基準角度列とが類似しているか否かの判定は、角度列Ｘと基準角度列との内積を算出することによって行われる。角度列Ｘと基準角度列との内積値は−１以上１以下の値となり、この内積値が大きいほど、角度列Ｘと基準角度列とが類似していることになる。そこで、この内積値が所定の所定値以上であるか否かが判定されることによって、角度列Ｘと基準角度列とが類似しているか否かが判定される。
【００５２】
または、例えば、角度列Ｘと基準角度列とを比較することによって、角度列Ｘと基準角度列とが類似しているか否かが判定される。具体的には、変数ｉの値を１からＮ（Ｎ：基準角度列の要素数）まで１ずつインクリメントしながら、角度列Ｘのｉ番目の要素である角度Δθと、基準角度列のｉ番目の要素である基準角度と、の角度差Δθｄが所定角度Δθｔｈ（例えば、５度）以下であるか否かが判定される。この場合、上記の角度差Δθｄが所定角度Δθｔｈ以下であると判定された回数が少ないほど、角度列Ｘと基準角度列とが類似していることになる。そこで、上記の角度差Δθｄが所定角度Δθｔｈ以下であると判定された回数が所定の回数（例えば１０回）以下であるか否かが判定されることによって、角度列Ｘと基準角度列とが類似しているか否かが判定される。
【００５３】
角度列Ｘと基準角度列とが類似しない場合（Ｓ１０５のＮ）、図２に示すゲーム画面が再度表示される（Ｓ１０７）。この場合、カーソル４１が始点４０Ａから再度移動し始める。
【００５４】
一方、角度列Ｘと基準角度列とが類似する場合（Ｓ１０５のＹ）、マイクロプロセッサ１２は、次の課題動作の内容を案内する課題動作案内画像４０をゲーム画面に表示させる（Ｓ１０６）。以上が、図６に示す処理の内容である。
【００５５】
［５．まとめ］
以上のように、上記ゲーム装置２では、プレイヤが課題動作を行ったか否かの判定に、加速度センサ３６の検出結果（対象加速度ベクトル）がそのまま用いられるのではなく、対象加速度ベクトルと基準加速度ベクトルとのなす角度Δθが用いられる。コントローラ４に同じ加速度（例えば図９及び図１０に示す加速度７０）が生じた場合、プレイヤのコントローラ４の持ち方が異なっていたとしても、対象加速度ベクトルと基準加速度ベクトルとのなす角度Δθは同じになる。すなわち、例えば軌跡６０（図９及び図１０参照）を描くようにプレイヤがコントローラ４を振った場合、対象加速度ベクトルと基準加速度ベクトルとのなす角度Δθは、プレイヤのコントローラ４の持ち方の違いによっては変化しない。つまり、ゲーム装置２によれば、プレイヤのコントローラ４の持ち方による影響を受け難くなり、プレイヤのコントローラ４の持ち方を考慮しなくてもすむように図ることが可能になる。
【００５６】
ここで、課題動作が行われたか否かの判定を、プレイヤのコントローラ４を持ち方を考慮して行う場合について説明する。この場合、例えば、課題動作が行われた場合における所定時間（例えば１／６０秒）ごとの加速度センサ３６の検出結果（対象加速度ベクトル）の標準変化パターンが記憶される。この標準変化パターンはコントローラ４の持ち方の種類ごとに用意される。そして、プレイヤが実際にコントローラ４を振った場合に所定時間（例えば１／６０秒）ごとに順次取得される対象加速度ベクトルの変化パターンが、プレイヤのコントローラ４の持ち方に対応する上記の標準変化パターンと類似するか否かが判定されることによって、プレイヤが課題動作を行ったか否かが判定される。このようにしても、プレイヤが課題動作を行ったか否かを判定することは一応可能である。しかし、この場合、コントローラ４の持ち方の種類は無数にあるため、上記の標準変化パターンを無数に用意しなければならなくなる。その結果、データ量が増大してしまう。そもそも、すべての持ち方に対応づけて上記の標準変化パターンを用意しておくことは現実的には不可能であり、コントローラ４の持ち方によっては、プレイヤが課題動作を行ったか否かを判定できなくなってしまう場合がある。すなわち、実際には課題動作が行われたにも関わらず、課題動作が行われなかったと判定されてしまう場合もある。
【００５７】
この点、上記ゲーム装置２では、対象加速度ベクトルと基準加速度ベクトルとのなす角度Δθの標準変化パターン（基準角度列：図５参照）を課題動作ごとに一つずつ用意しておけば足りるため、データ量の増大が抑制されるようになる。
【００５８】
また、上記ゲーム装置２のコントローラ４は一方向（Ｚ軸方向）に長い棒状の形状を有している。このような棒状のコントローラ４の一方の端をプレイヤが握ってコントローラ４を振ってゲームをプレイするような場合、プレイヤのコントローラ４の持ち方によるコントローラ４の状態の違いは、例えば図９及び図１０に示したように、コントローラ４の長手方向（Ｚ軸方向）を回転軸とした回転状態の違いになる。さらに、図２に示すような課題動作案内画像４０によってプレイヤに要求されるコントローラ４の動きはＸ軸方向及びＹ軸方向への移動となる。このため、本実施形態では、加速度センサ３６によって検出されるＸ軸方向、Ｙ軸方向、及びＺ軸方向の加速度のうち、Ｘ軸方向及びＹ軸方向の加速度のみに注目し、対象加速度ベクトル及び基準加速度ベクトルとして、Ｘ軸方向及びＹ軸方向の加速度を合成してなる２次元ベクトルが取得されるようになっている。その結果、基準加速度ベクトル及び対象加速度ベクトルとして３次元ベクトルを取得する場合に比べて、対象加速度ベクトルと基準加速度ベクトルとの間の角度Δθを算出するための処理の簡易化を図ることが可能になる。
【００５９】
また、上記ゲーム装置２では、図６のＳ１０１乃至Ｓ１０３の処理において、基準加速度ベクトル及び対象加速度ベクトルをそれぞれ極座標変換することによって、基準加速度ベクトルの角度座標（第１角度θ１）と対象加速度ベクトルの角度座標（第２角度θ２）とが取得され、それらの第２角度θ２と第１角度θ１との差が算出されることによって、対象加速度ベクトルと基準加速度ベクトルとの間の角度Δθが算出される。上記ゲーム装置２によれば、対象加速度ベクトルと基準加速度ベクトルとの間の角度Δθを算出するための処理を、一般的な極座標変換のアルゴリズムを用いて比較的簡易に実現できるようになる。
【００６０】
［６．変形例］
なお、本発明は、以上に説明した実施形態に限定されるものではない。
【００６１】
例えば、加速度センサ３６は、コントローラ４の短手方向に対応するＸ軸方向と、コントローラ４の表面４ａの法線方向に対応するＹ軸方向と、の２軸方向の加速度を検出する２軸加速度センサであってもよい。
【００６２】
また例えば、マイクロプロセッサ１２（操作情報取得部５０）は、対象加速度ベクトルと基準加速度ベクトルとのなす角度Δθに応じた値として、角度Δθ自体を取得する代わりに、角度Δθの三角関数値を取得するようにしてもよい。対象加速度ベクトルと基準加速度ベクトルとのなす角度Δθが異なる場合、ｃｏｓ（Δθ）の値とｓｉｎ（Δθ）の値との組み合わせも異なる。このため、マイクロプロセッサ１２は、基準加速度ベクトルと対象加速度ベクトルとに基づいて、例えば、ｃｏｓ（Δθ）の値とｓｉｎ（Δθ）の値との組み合わせを操作情報として取得するようにしてもよい。
【００６３】
また、本発明はフィットネスゲーム以外のゲームにも適用することができる。本発明は、加速度センサ３６により検出された少なくとも２つの軸方向の加速度に基づいて実行されるゲームに適用することができる。
【００６４】
また、対象加速度ベクトルと基準加速度ベクトルとのなす角度Δθに応じた値はコントローラ４側で算出されるようにしてもよい。そして、該値がコントローラ４からゲーム装置２に供給されるようにしてもよい。
【００６５】
また、本発明は、加速度センサ３６がコントローラ４に内蔵されたゲーム装置２に限られず、加速度センサ３６がゲーム装置本体に内蔵されたゲーム装置（例えば、携帯ゲーム機、携帯電話機、携帯情報端末（ＰＤＡ））にも適用することができる。
【図面の簡単な説明】
【００６６】
【図１】本発明の実施形態に係るゲーム装置のハードウェア構成の一例を示す図である。
【図２】ゲーム画面の一例を示す図である。
【図３】ゲーム装置で実現される機能群を示す機能ブロック図である。
【図４】角度Δθについて説明するための図である。
【図５】基準角度列の一例を示す図である。
【図６】ゲーム装置にて実行される処理の一例を示すフローチャート図である。
【図７】主記憶に保持される角度Δθの配列の一例を示す図である。
【図８】加速度センサを内蔵したコントローラの一例を示す図である。
【図９】コントローラの持ち方の一例を示す図である。
【図１０】コントローラの持ち方の他の一例を示す図である。
【符号の説明】
【００６７】
２  ゲーム装置、４  コントローラ、４ａ  表面、１０  バス、１２  マイクロプロセッサ、１４  主記憶、１６  画像処理部、１８  モニタ、２０  音声処理部、２２  スピーカ、２４  光ディスク、２６  光ディスクドライブ、２８  メモリカード、３０  メモリカードスロット、３２  通信インタフェース、３４  コントローラインタフェース、３６  加速度センサ、３８  操作ボタン、４０  課題動作案内画像、４０Ａ  始点、４０Ｂ  終点、４１  カーソル、５０  操作情報取得部、５２  加速度取得部、５４  角度算出部、５６  ゲーム実行部、６０  軌跡、７０  加速度。
【図１】
2010082182.tif 000003
【図２】
2010082182.tif 000004
【図３】
2010082182.tif 000005
【図４】
2010082182.tif 000006
【図５】
2010082182.tif 000007
【図６】
2010082182.tif 000008
【図７】
2010082182.tif 000009
【図８】
2010082182.tif 000010
【図９】
2010082182.tif 000011
【図１０】
2010082182.tif 000012