説明

ゲーム装置、ゲーム装置の制御方法、及びプログラム

【課題】例えば、コントローラ等に含まれる加速度センサの検出結果に基づいてゲーム処理を実行するゲーム装置において、ゲーム処理を実行する際にプレイヤのコントローラ等の持ち方を考慮しなくてもすむように図ることが可能になるゲーム装置を提供すること。
【解決手段】取得手段(50)は、加速度センサの検出結果に基づく検出ベクトルと、基準タイミングにおける加速度センサの検出結果に基づく基準ベクトルと、がなす角度に応じた値を取得する。ゲーム実行手段(56)は、取得手段(50)により取得された値に基づいて、ゲーム処理を実行する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はゲーム装置、ゲーム装置の制御方法、及びプログラムに関する。
【背景技術】
【0002】
複数の軸方向の加速度を検出する加速度センサの検出結果に基づいてゲーム処理を実行するゲーム装置が知られている。例えば、複数の軸方向の加速度を検出する加速度センサが内蔵されたコントローラを含むゲーム装置が知られている。
【0003】
図8は、加速度センサが内蔵されたコントローラの一例を示す図である。図8に示すコントローラ4は直方体形状を有し、コントローラ4の表面4aには複数の操作ボタン38が設けられている。また、コントローラ4の筐体内部には加速度センサ36が含まれている。加速度センサ36は、互いに直交するX軸方向、Y軸方向、及びZ軸方向の加速度を検出する3軸加速度センサである。図8では、X軸方向がコントローラ4の短手方向に対応し、Z軸方向がコントローラ4の長手方向に対応している。また、Y軸方向はコントローラ4の表面4aの法線方向に対応している。
【0004】
コントローラ4を含むゲーム装置では、プレイヤがコントローラ4をどのように動かしたかが加速度センサ36の検出結果に基づいて判断され、その判断結果に基づいてゲーム処理が実行される。このようなゲーム装置では、プレイヤがコントローラ4の一方の端を握ってコントローラ4を振ることによってゲーム操作を行えるようにすることが可能である。例えば、ゲーム操作の一例として、プレイヤはコントローラ4を図8に示す軌跡60を描くようにして振る。
【0005】
【特許文献1】特開2008−113845号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
プレイヤがコントローラ4を動かした場合の加速度センサ36の検出結果は、プレイヤのコントローラ4の持ち方によって変化する。図9及び図10は、プレイヤのコントローラ4の持ち方の違いに起因する加速度センサ36の検出結果の変化について説明するための図であり、プレイヤが右手でコントローラ4の一方の端を把持している様子の例を示す。
【0007】
図9では、コントローラ4が、コントローラ4の表面4aを上に向けた状態でプレイヤに把持されている。プレイヤがコントローラ4を図9に示す状態で把持してコントローラ4を軌跡60を描くように動かした場合、あるタイミングにおいて、例えば図9に示すような加速度70がコントローラ4に生じ、その加速度70が加速度センサ36によって検出される。その場合、X軸方向及びY軸方向の加速度(X,Y)として(X1,−Y1)が検出される。なお、コントローラ4が軌跡60を描くように動かされる場合、コントローラ4はX軸方向及びY軸方向に移動し、Z軸方向には移動しないため、Z軸方向の加速度は検出されない。このため、ここではX軸方向及びY軸方向の加速度のみに注目する。
【0008】
一方、図10では、コントローラ4が、コントローラ4の長手方向(Z軸方向)を回転軸として図9に示す状態から反時計回りに(左に)90度回転させた状態でプレイヤに把持されている。図10に示す状態では、X軸方向及びY軸方向も、Z軸方向を回転軸として図9に示すX軸方向及びY軸方向から反時計回りに(左に)90度回転させた方向になっている。言い換えれば、図10におけるX軸正方向は図9におけるY軸正方向になっており、図9におけるY軸正方向は図8におけるX軸負方向になっている。プレイヤがコントローラ4を図10に示す状態で把持してコントローラ4を軌跡60を描くように動かした場合、あるタイミングにおいて、例えば、加速度70がコントローラ4に生じ、その加速度70が加速度センサ36によって検出される。図10における加速度70は図9における加速度70と同じである。ただし、この場合、X軸方向及びY軸方向の加速度(X,Y)として(−Y1,−X1)が検出される。すなわち、プレイヤは図9に示す場合と同じようにコントローラ4を振っているにも関わらず、加速度センサ36の検出結果は図9に示す場合と異なる。
【0009】
以上のように、加速度センサ36の検出結果はプレイヤのコントローラ4の持ち方によって影響を受ける。したがって、プレイヤがコントローラ4を同じように振った場合であっても、プレイヤのコントローラ4の持ち方が異なっていると、加速度センサ36の検出結果は異なる。このため、コントローラ4の動き(姿勢変化や移動)を加速度センサ36の検出結果に基づいて判断し、その判断結果に基づいてゲーム処理を実行する際には、プレイヤのコントローラ4の持ち方を考慮する必要があった。
【0010】
ところで、加速度センサは例えば携帯ゲーム機、携帯電話又は携帯情報端末(PDA)本体内に内蔵される場合も考えられる。このような携帯ゲーム機等でも、携帯ゲーム機等の動き(姿勢変化や移動)を加速度センサの検出結果に基づいて判断して、その判断結果に基づいてゲーム処理を実行することが考えられる。そして、そのような場合には、加速度センサの検出結果がプレイヤの携帯ゲーム機等の持ち方によって影響を受けるため、ゲーム処理を実行する際にはプレイヤの携帯ゲーム機等の持ち方を考慮する必要がある。
【0011】
本発明は上記課題に鑑みてなされたものであって、その目的は、例えば、コントローラ等に含まれる加速度センサの検出結果に基づいてゲーム処理を実行するゲーム装置において、ゲーム処理を実行する際にプレイヤのコントローラ等の持ち方を考慮しなくてもすむように図ることが可能になるゲーム装置、ゲーム装置の制御方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【0012】
上記課題を解決するために、本発明に係るゲーム装置は、複数の軸方向の加速度を検出する加速度センサの検出結果に基づいてゲーム処理を実行するゲーム装置において、前記加速度センサの検出結果に基づく検出ベクトルと、基準タイミングにおける前記加速度センサの検出結果に基づく基準ベクトルと、がなす角度に応じた値を取得する取得手段と、前記取得手段により取得された前記値に基づいて、ゲーム処理を実行するゲーム実行手段と、を含むことを特徴とする。
【0013】
また、本発明に係るゲーム装置の制御方法は、複数の軸方向の加速度を検出する加速度センサの検出結果に基づいてゲーム処理を実行するゲーム装置の制御方法において、前記加速度センサの検出結果に基づく検出ベクトルと、基準タイミングにおける前記加速度センサの検出結果に基づく基準ベクトルと、がなす角度に応じた値を取得する取得ステップと、前記取得ステップにより取得された前記値に基づいて、ゲーム処理を実行するゲーム実行ステップと、を含むことを特徴とする。
【0014】
また、本発明に係るプログラムは、複数の軸方向の加速度を検出する加速度センサの検出結果に基づいてゲーム処理を実行するゲーム装置として、据置型ゲーム機(家庭用ゲーム機)、携帯ゲーム機、業務用ゲーム機、携帯電話機、携帯情報端末(PDA)又はパーソナルコンピュータなどのコンピュータを機能させるためのプログラムにおいて、前記加速度センサの検出結果に基づく検出ベクトルと、基準タイミングにおける前記加速度センサの検出結果に基づく基準ベクトルと、がなす角度に応じた値を取得する取得手段、及び、前記取得手段により取得された前記値に基づいて、ゲーム処理を実行するゲーム実行手段、として前記コンピュータを機能させるためのプログラムである。
【0015】
また、本発明に係る情報記憶媒体は、上記プログラムを記録したコンピュータ読み取り可能な情報記憶媒体である。
【0016】
本発明によれば、例えば、コントローラ等に含まれる加速度センサの検出結果に基づいてゲーム処理を実行するゲーム装置において、ゲーム処理を実行する際にプレイヤのコントローラ等の持ち方を考慮しなくてもすむように図ることが可能になる。
【0017】
また、本発明の一態様では、前記複数の軸方向は、互いに直交する第1軸方向及び第2軸方向を含むようにしてもよい。前記基準ベクトルは、前記基準タイミングにおいて前記加速度センサが検出した前記第1軸方向の加速度を示すベクトルと、前記基準タイミングにおいて前記加速度センサが検出した前記第2軸方向の加速度を示すベクトルと、が合成されてなるベクトルであってもよい。前記検出ベクトルは、前記加速度センサが検出した前記第1軸方向の加速度を示すベクトルと、前記加速度センサが検出した前記第2軸方向の加速度を示すベクトルと、が合成されてなるベクトルであってもよい。前記取得手段は、前記基準ベクトルを極座標変換することによって、前記基準ベクトルと、前記第1軸方向と、がなす第1角度を取得する第1角度取得手段と、前記検出ベクトルを極座標変換することによって、前記検出ベクトルと、前記第1軸方向と、がなす第2角度を取得する第2角度取得手段と、を含み、前記第1角度と前記第2角度に基づいて、前記値を取得するようにしてもよい。
【0018】
また、本発明の一態様では、前記ゲーム装置は、前記加速度センサを含むコントローラを含むようにしてもよい。前記複数の軸方向は、第1軸方向と、第2軸方向と、前記コントローラの長手方向に対応する第3軸方向と、を含むようにしてもよい。前記基準ベクトルは、前記基準タイミングにおいて前記加速度センサが検出した前記第1軸方向の加速度を示すベクトルと、前記基準タイミングにおいて前記加速度センサが検出した前記第2軸方向の加速度を示すベクトルと、が合成されてなるベクトルであってもよい。前記検出ベクトルは、前記加速度センサが検出した前記第1軸方向の加速度を示すベクトルと、前記加速度センサが検出した前記第2軸方向の加速度を示すベクトルと、が合成されてなるベクトルであってもよい。
【発明を実施するための最良の形態】
【0019】
以下、本発明の実施形態について図面を参照しながら説明する。
【0020】
[1.ゲーム装置の構成]
図1は、本発明の実施形態に係るゲーム装置2のハードウェア構成を説明するための図である。図1に示すゲーム装置2は、例えば、据置型ゲーム機(家庭用ゲーム機)、業務用ゲーム機又はパーソナルコンピュータなどの公知のコンピュータゲームシステムである。ゲーム装置2は、コントローラ4、光ディスク24、メモリカード28、モニタ18及びスピーカ22を含む。光ディスク24及びメモリカード28は情報記憶媒体である。光ディスク24及びメモリカード28はゲーム装置2に装着される。モニタ18及びスピーカ22はゲーム装置2に接続される。例えば家庭用テレビ受像機がモニタ18として用いられる。例えば家庭用テレビ受像機に内蔵されたスピーカがスピーカ22として用いられる。
【0021】
また、ゲーム装置2は、バス10、マイクロプロセッサ12、主記憶14、画像処理部16、音声処理部20、光ディスクドライブ26、メモリカードスロット30、通信インタフェース(I/F)32、コントローラインタフェース(I/F)34を含む。各構成要素はゲーム装置2の筐体内に収容される。
【0022】
バス10はアドレス及びデータをゲーム装置2の各部でやり取りするためのものである。マイクロプロセッサ12、画像処理部16、音声処理部20、光ディスクドライブ26、主記憶14、メモリカードスロット30、通信インタフェース32及びコントローラインタフェース34は、バス10によって相互データ通信可能に接続される。
【0023】
マイクロプロセッサ12は、図示しないROMに格納されるオペレーティングシステムや、主記憶14に記憶されるプログラム及びデータに基づいて、ゲーム装置2の各部を制御する。主記憶14は例えばRAMを含む。主記憶14には、光ディスク24又はメモリカード28から読み出されたプログラム及びデータが必要に応じて書き込まれる。主記憶14はマイクロプロセッサ12の作業用としても用いられる。
【0024】
画像処理部16はVRAMを含み、マイクロプロセッサ12から送られる画像データに基づいてVRAM上に画面を描画する。そして、画像処理部16は、その画面をビデオ信号に変換して所定のタイミングでモニタ18に出力する。音声処理部20はサウンドバッファを含み、光ディスク24からサウンドバッファに読み出されたゲーム音楽、ゲーム効果音、メッセージ等の各種音声データを再生してスピーカ22から出力する。
【0025】
光ディスクドライブ26は、光ディスク24に記録されたプログラムやデータをマイクロプロセッサ12からの指示に従って読み取る。ここではプログラムやデータをゲーム装置2に供給するために光ディスク24を用いることとするが、例えばROMカードなどの他のあらゆる情報記憶媒体を用いるようにしてもよい。また、インターネットなどのデータ通信網を介して遠隔地からプログラムやデータをゲーム装置2に供給するようにしてもよい。
【0026】
メモリカードスロット30はメモリカード28を装着するためのインタフェースである。メモリカード28は不揮発性メモリ(例えばEEPROMなど)を含んで構成され、例えばセーブデータなどの各種ゲームデータを記憶するために用いられる。通信インタフェース32は、インターネットなどのデータ通信網に通信接続するためのインタフェースである。
【0027】
コントローラインタフェース34は、コントローラ4を無線接続するためのインタフェースである。コントローラインタフェース34は、例えばBluetooth(登録商標)インタフェースである。なお、コントローラインタフェース34は、コントローラ4を有線接続するためのインタフェースであってもよい。
【0028】
図8は、ゲーム装置2に無線接続されるコントローラ4の一例を示す。図8に示すように、コントローラ4は、一方向に長い形状(ここでは略直方体形状)を有し、コントローラ4の表面4aには複数の操作ボタン38を備えられる。また、コントローラ4の筐体内部には加速度センサ36が含まれる。加速度センサ36は、互いに直交するX軸方向、Y軸方向、及びZ軸方向の加速度を検出する3軸加速度センサである。図8では、X軸方向はコントローラ4の短手方向に対応し、Z軸方向はコントローラ4の長手方向に対応している。また、Y軸方向はコントローラ4の表面4aの法線方向に対応している。なお、ここでは、コントローラ4が一方向に長い形状を有するものとして説明するが、コントローラ4の形状はどのような形状であってもよい。
【0029】
プレイヤは、例えば操作ボタン38を押下したり、コントローラ4を把持して振ったりすることによってゲーム操作を行う。コントローラ4からコントローラインタフェース34に対しては、一定周期ごと(例えば1/60秒ごと)にプレイヤの操作内容に基づく基礎操作情報が送信される。この基礎操作情報には、例えば、各操作ボタン38の押下状態を示す情報や、加速度センサ36が検出した各軸方向の加速度を示す情報が含まれる。コントローラインタフェース34は、コントローラ4から受信した基礎操作情報をバス10を介してマイクロプロセッサ12に渡す。そして、マイクロプロセッサ12は基礎操作情報に基づいてゲームを実行する。
【0030】
[2.ゲーム装置で提供されるゲーム]
上記ゲーム装置2では、例えば、下記に説明するようなフィットネスゲームが実行される。このフィットネスゲームでは、プレイヤが行うべき動作(以下、課題動作と記載する)が次々にプレイヤに提示される。そして、プレイヤは、次々と提示される課題動作を行いながら体を鍛えていく。このフィットネスゲームは、光ディスク24から読み出されたプログラムが実行されることによって実現される。
【0031】
図2は、このフィットネスゲームのゲーム画面の一例を示す図である。このフィットネスゲームのゲーム画面には課題動作案内画像40とカーソル41とが表示される。課題動作案内画像40は課題動作の内容をプレイヤに案内するための画像である。課題動作はコントローラ4を振る動作であり、課題動作案内画像40はコントローラ4をどのように振るべきかをプレイヤに案内する。図2に示す課題動作案内画像40は、逆S字(S字を左右反転させた文字)を描くようにコントローラ4を振ることを案内している。カーソル41は課題動作案内画像40に沿って始点40Aから終点40Bまで一定速度で移動する。図2は、カーソル41が始点40Aに位置している場合を示している。
【0032】
プレイヤは、コントローラ4を把持して課題動作案内画像40により案内される課題動作を行う。具体的には、プレイヤはカーソル41の移動に合わせてコントローラ4を移動させる。図2に示す課題動作案内画像40がゲーム画面に表示される場合、プレイヤはカーソル41の移動に合わせて、逆S字を描くようにコントローラ4を振る。ゲーム装置2では、コントローラ4から供給される上記基礎操作情報に基づいて課題動作が行われたか否かが判定される。そして、課題動作がプレイヤによって行われた場合には、次の課題動作の内容を案内する課題動作案内画像40がゲーム画面に表示される。
【0033】
ところで、上述したように、加速度センサ36の検出結果はプレイヤのコントローラ4の持ち方によって影響を受ける(図9,10参照)。すなわち、プレイヤがコントローラ4を同じように振った場合であっても、プレイヤのコントローラ4の持ち方が異なっていると、加速度センサ36の検出結果が異なる。このため、従来、プレイヤが課題動作を行ったか否かを加速度センサ36の検出結果に基づいて判定する場合には、プレイヤのコントローラ4の持ち方を考慮しなければならなかった。以下、プレイヤが課題動作を行ったか否かを加速度センサ36の検出結果に基づいて判定する場合において、プレイヤのコントローラ4の持ち方を考慮しなくてもすむように図るための技術について説明する。
【0034】
[3.ゲーム装置において実現される機能]
図3は、ゲーム装置2において実現される機能のうち、本発明に関するものを主として示す機能ブロック図である。図3に示すように、ゲーム装置2では、操作情報取得部50(取得手段)と、ゲーム実行部56(ゲーム実行手段)と、が実現される。これらの機能のうち、操作情報取得部50は、加速度取得部52と、角度算出部54と、を含む。操作情報取得部50(加速度取得部52、角度算出部54)及びゲーム実行部56は、光ディスク24から読み出されたプログラムがマイクロプロセッサ12によって実行されることによって実現される。
【0035】
[3−1.操作情報取得部]
操作情報取得部50は、例えばマイクロプロセッサ12とコントローラインタフェース34とを主として実現される。操作情報取得部50は、加速度取得部52と角度算出部54の機能により、加速度センサ36が検出した加速度に基づく対象加速度ベクトル(検出ベクトル)と、基準加速度ベクトル(基準ベクトル)と、がなす角度Δθに応じた値を、操作情報として取得する。基準加速度ベクトルとは、基準タイミングにおいて加速度センサ36が検出した加速度に基づく加速度ベクトルである。例えば、基準加速度ベクトルは、基準タイミングにおいて加速度センサ36が検出した少なくとも2つの軸方向の加速度(ベクトル)を合成してなるベクトルであり、対象加速度ベクトルは、基準タイミングよりも前又は後のタイミングにおいて加速度センサ36が検出した前記少なくとも2つの軸方向の加速度(ベクトル)を合成してなるベクトルである。また、基準タイミングとは、例えば、カーソル41が始点40Aからの移動を開始したタイミングである。本実施形態の場合、操作情報取得部50は上記の角度Δθ自体を操作情報として取得する。角度Δθの詳細については後述する(図4参照)。
【0036】
以下、プレイヤに要求される課題動作が、コントローラ4をX軸方向及びY軸方向に移動させる動作であることとして、加速度取得部52及び角度算出部54の機能について説明する。プレイヤに要求される課題動作が、コントローラ4をX軸方向及びY軸方向に移動させる動作である場合、Z軸方向の加速度がコントローラ4に生じないので、ここではZ軸方向の加速度を無視する。なお、プレイヤに要求される課題動作が、コントローラ4をX軸方向、Y軸方向及びZ軸方向に移動させる動作である場合には、Z軸方向の加速度もコントローラ4に生じるため、Z軸方向の加速度にも着目するようにすればよい。
【0037】
[3−2.加速度取得部]
加速度取得部52は、例えばマイクロプロセッサ12とコントローラインタフェース34とを主として実現される。加速度取得部52は、基礎操作情報を受信することにより、加速度センサ36が検出したX軸方向、Y軸方向及びZ軸方向の加速度を一定周期ごとに取得する。なお、本実施形態の場合、上述したようにZ軸方向の加速度に着目しないため、加速度取得部52は、加速度センサ36が検出したX軸方向、Y軸方向及びZ軸方向の加速度のうちX軸方向及びY軸方向の加速度だけを選択的に取得するようにしてもよい。
【0038】
[3−3.角度算出部]
角度算出部54は、例えばマイクロプロセッサ12を主として実現される。角度算出部54は、対象加速度ベクトルと、基準加速度ベクトルと、がなす角度Δθ(Δθ≧0)を算出する。例えば、基準加速度ベクトルは、基準タイミングにおいて加速度取得部52が取得したX軸方向の加速度及びY軸方向の加速度を合成してなる2次元ベクトルである。一方、対象加速度ベクトルは、基準タイミングよりも前又は後のタイミングにおいて加速度取得部52が取得したX軸方向の加速度及びY軸方向の加速度を合成してなる2次元ベクトルである。図4は、角度Δθの一例を示す図である。本実施形態の場合、角度算出部54は、基準タイミングが到来した後、基礎操作情報を受信するごとに角度Δθを算出する。なお、プレイヤに要求される課題動作が、コントローラ4をX軸方向、Y軸方向及びZ軸方向に移動させる動作である場合、基準加速度ベクトル及び対象加速度ベクトルは、それぞれ、X軸方向、Y軸方向及びZ軸方向の加速度を合成してなる3次元ベクトルになる。
【0039】
対象加速度ベクトルと基準加速度ベクトルとの間の角度Δθを算出する方法について詳細に説明する。本実施形態の場合、角度算出部54(第1角度取得手段)は、基準加速度ベクトルとX軸正方向とがなす第1角度θ1を取得する。例えば、角度算出部54は、基準加速度ベクトルを極座標変換することにより、基準加速度ベクトルの角度座標の値を、第1角度θ1(θ1≧0)として取得する。また、角度算出部54(第2角度取得手段)は、対象加速度ベクトルとX軸正方向とがなす第2角度θ2を取得する。例えば、角度算出部54は、対象加速度ベクトルを極座標変換することにより、対象加速度ベクトルの角度座標の値を、第2角度θ2(θ2≧0)として取得する。こうした上で、第1角度θ1と第2角度θ2に基づいて、角度Δθを算出する。例えば、第2角度θ2から第1角度θ1を差し引くことにより、角度Δθを算出する。なお、2次元ベクトル(X,Y)の角度座標の値は、例えば、tan(Y/X)の逆関数を算出することによって得ることができる。
【0040】
なお、対象加速度ベクトルと基準加速度ベクトルとの間の角度Δθを算出する方法は他にもある。例えば、第1角度θ1と第2角度θ2を算出せずに、角度Δθを算出することも可能である。具体的には、角度算出部54は、基準加速度ベクトルと対象加速度ベクトルとに基づいてcos(Δθ)を算出し、さらに、cos(Δθ)の逆関数を算出することにより、Δθを算出するようにしてもよい。この方法は、基準加速度ベクトル及び対象加速度ベクトルが3次元ベクトルである場合に有効である。
【0041】
[3−4.ゲーム実行部]
ゲーム実行部56は、例えばマイクロプロセッサ12と光ディスク24とを主として実現される。ゲーム実行部56は、操作情報取得部50により取得された操作情報に基づいて、ゲーム処理を実行する。
【0042】
本実施形態の場合、ゲーム実行部56は、各課題動作に対応づけて基準角度列を記憶する。図5は基準角度列の一例を示す。基準角度列は、対象加速度ベクトルと基準加速度ベクトルとの間の角度Δθの配列(一次元配列)であり、プレイヤによって課題動作が行われた場合の、所定時間(例えば1/60秒)ごとの角度Δθの標準変化パターンを示す。
【0043】
こうした上で、ゲーム実行部56は、操作情報取得部50により操作情報として所定時間(例えば1/60秒)ごとに順次取得される角度Δθと、基準角度列と、に基づき、課題動作が行われたか否かを判定する。そして、課題動作が行われた場合に、ゲーム実行部56は、次の課題動作の内容を案内する課題動作案内画像40をゲーム画面に表示する。
【0044】
[4.ゲーム装置において実行される処理]
図6は、ゲーム装置2において実行される処理を示すフローチャート図である。この処理は、マイクロプロセッサ12が光ディスク24に記憶されたプログラムに従って動作することにより実行される。なお、この処理は、例えば、図2に示すゲーム画面においてカーソル41が始点40Aから移動を開始してから終点40Bに到達するまでの間、実行される。
【0045】
図6に示すように、まず、マイクロプロセッサ12は、コントローラインタフェース34を介して受信した基礎操作情報に含まれるX軸方向の加速度とY軸方向の加速度とを取得し、それらの軸方向の加速度を成分とする2次元ベクトルを基準加速度ベクトルとして取得する。そして、マイクロプロセッサ12は、基準加速度ベクトルとX軸正方向とがなす角度である第1角度θ1を算出する(S101)。具体的には、マイクロプロセッサ12は、基準加速度ベクトルを極座標変換し、基準加速度ベクトルの角度座標の値を第1角度θ1として取得する。
【0046】
第1角度θ1が算出された後、マイクロプロセッサ12は、コントローラインタフェース34を介して基礎操作情報を受信するごとに、以下に説明するS102乃至S105のステップを実行する。
【0047】
まず、マイクロプロセッサ12は、S102及びS103のステップにより、基準加速度ベクトルと対象加速度ベクトルとがなす角度Δθを算出する。
【0048】
すなわち、マイクロプロセッサ12は、コントローラインタフェース34を介して受信した基礎操作情報に含まれるX軸方向の加速度とY軸方向の加速度とを取得し、それらの軸方向の加速度を成分とする2次元ベクトルを対象加速度ベクトルとして取得する。そして、マイクロプロセッサ12は、対象加速度ベクトルとX軸正方向とがなす角度である第2角度θ2を算出する(S102)。具体的には、マイクロプロセッサ12は、対象加速度ベクトルを極座標変換し、対象加速度ベクトルの角度座標の値を第2角度θ2として取得する。
【0049】
そして、マイクロプロセッサ12は、第2角度θ2から第1角度θ1を差し引くことにより、対象加速度ベクトルと基準加速度ベクトルとがなす角度Δθを算出する(S103)。こうして、マイクロプロセッサ12は操作情報(すなわち、角度Δθ)を取得する。なお、取得された角度Δθは、取得された順序で主記憶14に記憶される。このため、主記憶14には、所定時間(例えば1/60秒)ごとに取得された上記角度Δθの配列(一次元配列)が保持されることになる。図7は、主記憶14に記憶される上記角度Δθの配列の一例を示す。以下、主記憶14に記憶される上記角度Δθの配列のことを「角度列X」と呼ぶ。
【0050】
角度Δθが取得された後、マイクロプロセッサ12はカーソル41が終点40Bに到達したか否かを判定する(S104)。カーソル41が終点40Bに到達していない場合(S104のN)、S102のステップに戻る。一方、カーソル41が終点40Bに到達した場合(S104のY)、マイクロプロセッサ12は、角度列X(図7参照)と基準角度列(図5参照)とが類似するか否かを判定する(S105)。
【0051】
例えば、角度列Xと基準角度列とが類似しているか否かの判定は、角度列Xと基準角度列との内積を算出することによって行われる。角度列Xと基準角度列との内積値は−1以上1以下の値となり、この内積値が大きいほど、角度列Xと基準角度列とが類似していることになる。そこで、この内積値が所定の所定値以上であるか否かが判定されることによって、角度列Xと基準角度列とが類似しているか否かが判定される。
【0052】
または、例えば、角度列Xと基準角度列とを比較することによって、角度列Xと基準角度列とが類似しているか否かが判定される。具体的には、変数iの値を1からN(N:基準角度列の要素数)まで1ずつインクリメントしながら、角度列Xのi番目の要素である角度Δθと、基準角度列のi番目の要素である基準角度と、の角度差Δθdが所定角度Δθth(例えば、5度)以下であるか否かが判定される。この場合、上記の角度差Δθdが所定角度Δθth以下であると判定された回数が少ないほど、角度列Xと基準角度列とが類似していることになる。そこで、上記の角度差Δθdが所定角度Δθth以下であると判定された回数が所定の回数(例えば10回)以下であるか否かが判定されることによって、角度列Xと基準角度列とが類似しているか否かが判定される。
【0053】
角度列Xと基準角度列とが類似しない場合(S105のN)、図2に示すゲーム画面が再度表示される(S107)。この場合、カーソル41が始点40Aから再度移動し始める。
【0054】
一方、角度列Xと基準角度列とが類似する場合(S105のY)、マイクロプロセッサ12は、次の課題動作の内容を案内する課題動作案内画像40をゲーム画面に表示させる(S106)。以上が、図6に示す処理の内容である。
【0055】
[5.まとめ]
以上のように、上記ゲーム装置2では、プレイヤが課題動作を行ったか否かの判定に、加速度センサ36の検出結果(対象加速度ベクトル)がそのまま用いられるのではなく、対象加速度ベクトルと基準加速度ベクトルとのなす角度Δθが用いられる。コントローラ4に同じ加速度(例えば図9及び図10に示す加速度70)が生じた場合、プレイヤのコントローラ4の持ち方が異なっていたとしても、対象加速度ベクトルと基準加速度ベクトルとのなす角度Δθは同じになる。すなわち、例えば軌跡60(図9及び図10参照)を描くようにプレイヤがコントローラ4を振った場合、対象加速度ベクトルと基準加速度ベクトルとのなす角度Δθは、プレイヤのコントローラ4の持ち方の違いによっては変化しない。つまり、ゲーム装置2によれば、プレイヤのコントローラ4の持ち方による影響を受け難くなり、プレイヤのコントローラ4の持ち方を考慮しなくてもすむように図ることが可能になる。
【0056】
ここで、課題動作が行われたか否かの判定を、プレイヤのコントローラ4を持ち方を考慮して行う場合について説明する。この場合、例えば、課題動作が行われた場合における所定時間(例えば1/60秒)ごとの加速度センサ36の検出結果(対象加速度ベクトル)の標準変化パターンが記憶される。この標準変化パターンはコントローラ4の持ち方の種類ごとに用意される。そして、プレイヤが実際にコントローラ4を振った場合に所定時間(例えば1/60秒)ごとに順次取得される対象加速度ベクトルの変化パターンが、プレイヤのコントローラ4の持ち方に対応する上記の標準変化パターンと類似するか否かが判定されることによって、プレイヤが課題動作を行ったか否かが判定される。このようにしても、プレイヤが課題動作を行ったか否かを判定することは一応可能である。しかし、この場合、コントローラ4の持ち方の種類は無数にあるため、上記の標準変化パターンを無数に用意しなければならなくなる。その結果、データ量が増大してしまう。そもそも、すべての持ち方に対応づけて上記の標準変化パターンを用意しておくことは現実的には不可能であり、コントローラ4の持ち方によっては、プレイヤが課題動作を行ったか否かを判定できなくなってしまう場合がある。すなわち、実際には課題動作が行われたにも関わらず、課題動作が行われなかったと判定されてしまう場合もある。
【0057】
この点、上記ゲーム装置2では、対象加速度ベクトルと基準加速度ベクトルとのなす角度Δθの標準変化パターン(基準角度列:図5参照)を課題動作ごとに一つずつ用意しておけば足りるため、データ量の増大が抑制されるようになる。
【0058】
また、上記ゲーム装置2のコントローラ4は一方向(Z軸方向)に長い棒状の形状を有している。このような棒状のコントローラ4の一方の端をプレイヤが握ってコントローラ4を振ってゲームをプレイするような場合、プレイヤのコントローラ4の持ち方によるコントローラ4の状態の違いは、例えば図9及び図10に示したように、コントローラ4の長手方向(Z軸方向)を回転軸とした回転状態の違いになる。さらに、図2に示すような課題動作案内画像40によってプレイヤに要求されるコントローラ4の動きはX軸方向及びY軸方向への移動となる。このため、本実施形態では、加速度センサ36によって検出されるX軸方向、Y軸方向、及びZ軸方向の加速度のうち、X軸方向及びY軸方向の加速度のみに注目し、対象加速度ベクトル及び基準加速度ベクトルとして、X軸方向及びY軸方向の加速度を合成してなる2次元ベクトルが取得されるようになっている。その結果、基準加速度ベクトル及び対象加速度ベクトルとして3次元ベクトルを取得する場合に比べて、対象加速度ベクトルと基準加速度ベクトルとの間の角度Δθを算出するための処理の簡易化を図ることが可能になる。
【0059】
また、上記ゲーム装置2では、図6のS101乃至S103の処理において、基準加速度ベクトル及び対象加速度ベクトルをそれぞれ極座標変換することによって、基準加速度ベクトルの角度座標(第1角度θ1)と対象加速度ベクトルの角度座標(第2角度θ2)とが取得され、それらの第2角度θ2と第1角度θ1との差が算出されることによって、対象加速度ベクトルと基準加速度ベクトルとの間の角度Δθが算出される。上記ゲーム装置2によれば、対象加速度ベクトルと基準加速度ベクトルとの間の角度Δθを算出するための処理を、一般的な極座標変換のアルゴリズムを用いて比較的簡易に実現できるようになる。
【0060】
[6.変形例]
なお、本発明は、以上に説明した実施形態に限定されるものではない。
【0061】
例えば、加速度センサ36は、コントローラ4の短手方向に対応するX軸方向と、コントローラ4の表面4aの法線方向に対応するY軸方向と、の2軸方向の加速度を検出する2軸加速度センサであってもよい。
【0062】
また例えば、マイクロプロセッサ12(操作情報取得部50)は、対象加速度ベクトルと基準加速度ベクトルとのなす角度Δθに応じた値として、角度Δθ自体を取得する代わりに、角度Δθの三角関数値を取得するようにしてもよい。対象加速度ベクトルと基準加速度ベクトルとのなす角度Δθが異なる場合、cos(Δθ)の値とsin(Δθ)の値との組み合わせも異なる。このため、マイクロプロセッサ12は、基準加速度ベクトルと対象加速度ベクトルとに基づいて、例えば、cos(Δθ)の値とsin(Δθ)の値との組み合わせを操作情報として取得するようにしてもよい。
【0063】
また、本発明はフィットネスゲーム以外のゲームにも適用することができる。本発明は、加速度センサ36により検出された少なくとも2つの軸方向の加速度に基づいて実行されるゲームに適用することができる。
【0064】
また、対象加速度ベクトルと基準加速度ベクトルとのなす角度Δθに応じた値はコントローラ4側で算出されるようにしてもよい。そして、該値がコントローラ4からゲーム装置2に供給されるようにしてもよい。
【0065】
また、本発明は、加速度センサ36がコントローラ4に内蔵されたゲーム装置2に限られず、加速度センサ36がゲーム装置本体に内蔵されたゲーム装置(例えば、携帯ゲーム機、携帯電話機、携帯情報端末(PDA))にも適用することができる。
【図面の簡単な説明】
【0066】
【図1】本発明の実施形態に係るゲーム装置のハードウェア構成の一例を示す図である。
【図2】ゲーム画面の一例を示す図である。
【図3】ゲーム装置で実現される機能群を示す機能ブロック図である。
【図4】角度Δθについて説明するための図である。
【図5】基準角度列の一例を示す図である。
【図6】ゲーム装置にて実行される処理の一例を示すフローチャート図である。
【図7】主記憶に保持される角度Δθの配列の一例を示す図である。
【図8】加速度センサを内蔵したコントローラの一例を示す図である。
【図9】コントローラの持ち方の一例を示す図である。
【図10】コントローラの持ち方の他の一例を示す図である。
【符号の説明】
【0067】
2 ゲーム装置、4 コントローラ、4a 表面、10 バス、12 マイクロプロセッサ、14 主記憶、16 画像処理部、18 モニタ、20 音声処理部、22 スピーカ、24 光ディスク、26 光ディスクドライブ、28 メモリカード、30 メモリカードスロット、32 通信インタフェース、34 コントローラインタフェース、36 加速度センサ、38 操作ボタン、40 課題動作案内画像、40A 始点、40B 終点、41 カーソル、50 操作情報取得部、52 加速度取得部、54 角度算出部、56 ゲーム実行部、60 軌跡、70 加速度。

【特許請求の範囲】
【請求項1】
複数の軸方向の加速度を検出する加速度センサの検出結果に基づいてゲーム処理を実行するゲーム装置において、
前記加速度センサの検出結果に基づく検出ベクトルと、基準タイミングにおける前記加速度センサの検出結果に基づく基準ベクトルと、がなす角度に応じた値を取得する取得手段と、
前記取得手段により取得された前記値に基づいて、ゲーム処理を実行するゲーム実行手段と、
を含むことを特徴とするゲーム装置。
【請求項2】
前記複数の軸方向は、互いに直交する第1軸方向及び第2軸方向を含み、
前記基準ベクトルは、前記基準タイミングにおいて前記加速度センサが検出した前記第1軸方向の加速度を示すベクトルと、前記基準タイミングにおいて前記加速度センサが検出した前記第2軸方向の加速度を示すベクトルと、が合成されてなるベクトルであり、
前記検出ベクトルは、前記加速度センサが検出した前記第1軸方向の加速度を示すベクトルと、前記加速度センサが検出した前記第2軸方向の加速度を示すベクトルと、が合成されてなるベクトルであり、
前記取得手段は、
前記基準ベクトルを極座標変換することによって、前記基準ベクトルと、前記第1軸方向と、がなす第1角度を取得する第1角度取得手段と、
前記検出ベクトルを極座標変換することによって、前記検出ベクトルと、前記第1軸方向と、がなす第2角度を取得する第2角度取得手段と、を含み、
前記第1角度と前記第2角度に基づいて、前記値を取得する、
ことを特徴とする請求項1に記載のゲーム装置。
【請求項3】
前記ゲーム装置は、前記加速度センサを含むコントローラを含み、
前記複数の軸方向は、第1軸方向と、第2軸方向と、前記コントローラの長手方向に対応する第3軸方向と、を含み、
前記基準ベクトルは、前記基準タイミングにおいて前記加速度センサが検出した前記第1軸方向の加速度を示すベクトルと、前記基準タイミングにおいて前記加速度センサが検出した前記第2軸方向の加速度を示すベクトルと、が合成されてなるベクトルであり、
前記検出ベクトルは、前記加速度センサが検出した前記第1軸方向の加速度を示すベクトルと、前記加速度センサが検出した前記第2軸方向の加速度を示すベクトルと、が合成されてなるベクトルである、
ことを特徴とする請求項1に記載のゲーム装置。
【請求項4】
複数の軸方向の加速度を検出する加速度センサの検出結果に基づいてゲーム処理を実行するゲーム装置の制御方法において、
前記加速度センサの検出結果に基づく検出ベクトルと、基準タイミングにおける前記加速度センサの検出結果に基づく基準ベクトルと、がなす角度に応じた値を取得する取得ステップと、
前記取得ステップにより取得された前記値に基づいて、ゲーム処理を実行するゲーム実行ステップと、
を含むことを特徴とするゲーム装置の制御方法。
【請求項5】
複数の軸方向の加速度を検出する加速度センサの検出結果に基づいてゲーム処理を実行するゲーム装置としてコンピュータを機能させるためのプログラムにおいて、
前記加速度センサの検出結果に基づく検出ベクトルと、基準タイミングにおける前記加速度センサの検出結果に基づく基準ベクトルと、がなす角度に応じた値を取得する取得手段、及び、
前記取得手段により取得された前記値に基づいて、ゲーム処理を実行するゲーム実行手段、
として前記コンピュータを機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2010−82182(P2010−82182A)
【公開日】平成22年4月15日(2010.4.15)
【国際特許分類】
【出願番号】特願2008−254525(P2008−254525)
【出願日】平成20年9月30日(2008.9.30)
【出願人】(506113602)株式会社コナミデジタルエンタテインメント (1,441)
【Fターム(参考)】