説明

ゲーム装置およびゲームプログラム

【課題】簡易な構成で複数の対象を操作することを可能とする。
【解決手段】ゲーム装置は、第1入力装置の姿勢または動きに応じた値を示す第1データを第1センサから取得し、第2入力装置の姿勢または動きに応じた値を示す第2データを第2センサから取得する。さらに、第1入力装置の姿勢または動きに関する状態と第2入力装置の姿勢または動きに関する状態との類似度を第1データおよび第2データに基づいて算出する。ゲーム処理に用いられるゲームパラメータの値を変化させる変化量は、上記類似度が大きいほど当該変化量が大きくなるように、第1データおよび第2データの少なくとも一方に基づいて算出される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ゲーム装置およびゲームプログラムに関し、特に例えば、2つの入力装置を用いて入力を行うゲーム装置およびゲームプログラムに関する。
【背景技術】
【0002】
従来、プレイヤが複数の操作対象を同時に操作する種類のゲームが考えられている。例えば、この種のボクシングゲームでは、プレイヤは、ボクサー(プレイヤオブジェクト)の左右の両手をそれぞれ操作するとともに、場合によってはボクサーの体全体を移動させる操作を行うことがある。このような場合、プレイヤは、ボクサーの右手および左手、ボクサーの体全体という3つの操作対象を同時に操作する。
【0003】
上記のようなボクシングゲームの例として、例えば、特許文献1、特許文献2、および特許文献3のような技術がある。特許文献1には、プレイヤがプレイヤオブジェクトの各部を操作して遊ぶためのゲーム装置が記載されている。このゲーム装置は、3軸方向の加速度センサを備えた左右一対のコントローラを入力装置として用いる。そして、一対のコントローラから取得される加速度信号を用いてコントローラの移動方向や移動加速度を検出し、プレイヤオブジェクトのパンチの動作を制御する。
【0004】
特許文献2に記載の遊戯システムは、プレイヤがプレイヤオブジェクトの各部を操作して遊ぶものである。この遊戯システムでは、プレイヤオブジェクトの動作を制御するために、プレイヤの頭、手、腕、足、胴体等の各部位にマーカーが取り付けられる。遊戯システムは、ビデオカメラによってプレイヤを撮像した画像からマーカーの位置を検出し、検出された位置の情報を用いて、プレイヤの動きに対応するようにプレイヤオブジェクトの各部を制御する。
【0005】
特許文献3には、少なくとも2軸方向への動きを個別に検出する2つのコントローラを用いることが記載されている。プレイヤが2つのコントローラをそれぞれ左右の手で持って動かすことにより、コントローラは、その動き方向に応じた信号を出力する。ゲーム装置は、当該信号を用いてパンチの動作、すなわち、プレイヤオブジェクトの両手の動作を制御する。また、ゲーム装置は、2つのコントローラ以外に、プレイヤの頭部の位置を検出する頭部検出部(CCDカメラで構成される)を備える。この頭部検出部の出力を用いて、ゲーム画像の視点、すなわち、プレイヤオブジェクトの頭部の動きを制御する。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2002−200339号公報
【特許文献2】特開平07−185131号公報
【特許文献3】特開2002−153673号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
特許文献1のゲーム装置は、2つのコントローラを入力装置として用いることによって、プレイヤオブジェクトのパンチ動作、すなわち両手の動きを制御している。しかし、特許文献1では両手の動き以外については全く考慮されておらず、特許文献1では、その他の部位やプレイヤオブジェクト全体を移動させる操作を行うことはできず、3つの操作対象を同時に操作することはできない。
【0008】
特許文献2では、プレイヤの各部にマーカーを取り付けることによって、プレイヤの各部に対応するプレイヤオブジェクトの各部の動作を制御することができる。また、特許文献3では、2つのコントローラとともに頭部検出部(カメラ)を備えることによって、プレイヤオブジェクトの両手および頭部という3つの部位を制御することができる。しかし、特許文献2や特許文献3では、カメラ等の構成が必要となるため、装置が全体として複雑化・大型化するとともにコストが高くなってしまう。
【0009】
また、特許文献1および特許文献3には、2つの入力装置を手に持って操作することが記載されている。しかし、2つの入力装置はそれぞれが別々の操作として用いられるにすぎず、特許文献1および特許文献3では、2つの入力装置を連動して動かす操作をゲーム操作として検出することはできなかった。
【0010】
それ故、本発明の目的は、簡易な構成で複数の対象を操作することを可能とするゲーム装置およびゲームプログラムを提供することである。
【0011】
また、本発明の他の目的は、2つの入力装置を連動して動かす操作によってゲームを行うことを可能とするゲーム装置およびゲームプログラムを提供することである。
【課題を解決するための手段】
【0012】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、本欄における括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【0013】
第1の発明は、第1入力装置(メインコントローラ5a)の姿勢または動きに応じた値を示す第1データ(第1加速度データ721)を出力する第1センサ(加速度センサ37)と第2入力装置(サブコントローラ5b)の姿勢または動きに応じた値を示す第2データ(第2加速度データ722)を出力する第2センサ(加速度センサ55)とから出力されるデータを用いてゲーム処理を実行するゲーム装置(3)のコンピュータ(CPU10等)で実行されるゲームプログラム(71)である。ゲームプログラムは、取得ステップ(S1)と、類似度算出ステップ(S11,S12,S21,S23,およびS24)と、変化量算出ステップ(S25)と、をコンピュータに実行させる。取得ステップは、第1データを第1センサから取得し、第2データを第2センサから取得する。類似度算出ステップは、第1入力装置の姿勢または動きに関する状態と第2入力装置の姿勢または動きに関する状態との類似度を第1データおよび第2データに基づいて算出する。変化量算出ステップは、ゲーム処理に用いられるゲームパラメータの値を変化させる変化量(胴体オブジェクト63の移動量)を、類似度が大きいほど当該変化量が大きくなるように、第1データおよび第2データの少なくとも一方に基づいて算出する。
【0014】
第2の発明においては、変化量算出ステップにおいて、コンピュータは、ゲーム空間に登場する第1オブジェクト(胴体オブジェクト63)を当該ゲーム空間において移動させる移動量を、類似度が大きいほど当該移動量が大きくなるように算出するようにしてもよい。
【0015】
第3の発明においては、ゲームプログラムは、オブジェクト移動ステップをコンピュータにさらに実行させてもよい。オブジェクト移動ステップは、ゲーム空間に登場する第2オブジェクト(右手オブジェクト61)を第1データに基づいて移動させるとともに、ゲーム空間に登場する第3オブジェクト(左手オブジェクト62)を第2データに基づいて移動させる。
【0016】
第4の発明においては、第1オブジェクトは、人型キャラクタの胴体または頭部を表すオブジェクトであってもよい。このとき、第2オブジェクトおよび第3オブジェクトは、一方が人型キャラクタの右手を表すオブジェクトであり、他方が左手を表すオブジェクトである。
【0017】
第5の発明においては、第1センサは、加速度センサであり、加速度を示すデータを第1データとして出力してもよい。このとき、第2センサは、加速度センサであり、加速度を示すデータを第2データとして出力する、請求項1に記載のゲームプログラム。
【0018】
第6の発明においては、ゲームプログラムは、第1判定ステップ(S3)と、第2判定ステップ(S5)とをコンピュータにさらに実行させてもよい。第1判定ステップは、第1入力装置の姿勢または位置に関して所定度合い以上の急激な変化を与える操作(パンチ操作)が当該第1入力装置に対して行われたか否かを第1データに基づいて判定する。第2判定ステップは、第2入力装置の姿勢または位置に関して所定度合い以上の急激な変化を与える操作(パンチ操作)が当該第2入力装置に対して行われたか否かを第2データに基づいて判定する。このとき、類似度算出ステップにおいて、コンピュータは、第1判定ステップにおける判定結果および第2判定ステップにおける判定結果の両方が否定である場合のみ、第1入力装置の姿勢と第2入力装置の姿勢との類似度を算出する。
【0019】
第7の発明においては、ゲームプログラムは、動作制御ステップ(S4またはS6)をコンピュータにさらに実行させてもよい。動作制御ステップは、第1判定ステップにおける判定結果および第2判定ステップにおける判定結果の少なくとも一方が肯定である場合のみ、第1オブジェクトまたは他のオブジェクトに所定の動作(パンチ動作)を行わせる。このとき、変化量算出ステップにおいて、コンピュータは、第1判定ステップにおける判定結果および第2判定ステップにおける判定結果の両方が否定である場合のみ、ゲーム空間に登場する第1オブジェクトを当該ゲーム空間において移動させる移動量を変化量として算出する。
【0020】
第8の発明は、第1の発明は、第1入力装置(メインコントローラ5a)の姿勢または動きに応じた値を示す第1データ(第1加速度データ721)を出力する第1センサ(加速度センサ37)と第2入力装置(サブコントローラ5b)の姿勢または動きに応じた値を示す第2データ(第2加速度データ722)を出力する第2センサ(加速度センサ55)とから出力されるデータを用いてゲーム処理を実行するゲーム装置(3)のコンピュータ(CPU10等)で実行されるゲームプログラム(71)である。ゲームプログラムは、取得ステップ(S1)と、類似度算出ステップ(S11,S21,S23,およびS24)と、第1ゲーム処理ステップ(S14)と、第2ゲーム処理ステップ(S25〜S27)と、をコンピュータに実行させる。取得ステップは、第1データを第1センサから取得し、第2データを第2センサから取得する。類似度算出ステップは、第1入力装置の姿勢または動きに関する状態と第2入力装置の姿勢または動きに関する状態との類似度を第1データおよび第2データに基づいて算出する。第1ゲーム処理ステップは、第1データまたは第2データに基づいて第1ゲーム処理を実行する。第2ゲーム処理ステップは、類似度の値が所定値よりも大きい場合のみ、第1データおよび第2データに基づいて第2ゲーム処理を実行する。
【0021】
第9の発明においては、第2ゲーム処理ステップにおいて、コンピュータは、ゲーム処理に用いられるゲームパラメータの値を変化させる変化量(胴体オブジェクト63の移動量)を、類似度が大きいほど当該変化量が大きくなるように、第1データおよび第2データの少なくとも一方に基づいて算出する処理を第2ゲーム処理として実行してもよい。
【0022】
第10の発明においては、第1センサは、加速度センサであり、加速度を示すデータを第1データとして出力してもよい。また、第2センサは、加速度センサであり、加速度を示すデータを前記第2データとして出力してもよい。
【0023】
第11の発明においては、第1データは、第1入力装置を基準とした所定の軸方向(図3に示すX軸方向)に関する加速度値を示すものであってもよい。また、第2データは、第2入力装置を基準とした所定の軸方向(図6に示すX軸方向)に関する加速度値を示すものであってもよい。このとき、類似度算出ステップにおいて、コンピュータは、第1データの値と第2データの値との差分(差分値C)に基づいて類似度を算出する。
【0024】
第12の発明においては、類似度算出ステップで算出される類似度は、差分が小さいほど高い値となるようにしてもよい。
【0025】
第13の発明においては、第1データは、第1入力装置を基準とした所定の複数軸方向(X軸方向およびY軸方向)に関する加速度値を各成分とするベクトル(A1XY)を示すものであってもよい。また、第2データは、前記第2入力装置を基準とした所定の複数軸方向に関する加速度値を各成分とするベクトル(A2XY)を示すものであってもよい。このとき、類似度算出ステップにおいて、コンピュータは、第1データにより示されるベクトルと第2データにより示されるベクトルとの差分に基づいて類似度を算出する。
【0026】
第14の発明においては、類似度算出ステップで算出される類似度は、ベクトルの差分が小さいほど高い値となるようにしてもよい。
【0027】
第15の発明においては、第1データは、第1入力装置を基準とした所定の複数軸方向に関する加速度値を各成分とするベクトルを示すものであってもよい。また、第2データは、第2入力装置を基準とした所定の複数軸方向に関する加速度値を各成分とするベクトルを示すものであってもよい。このとき、類似度算出ステップにおいて、コンピュータは、第1データにより示されるベクトルの所定時間当たりの変化量を表すベクトルと、第2データにより示されるベクトルの所定時間当たりの変化量を表すベクトルとの差分に基づいて類似度を算出する。
【0028】
第16の発明おいては、類似度算出ステップで算出される類似度は、ベクトルの差分が小さいほど高い値となるようにしてもよい。
【0029】
第17の発明においては、第1データは、第1入力装置を基準とした所定の複数軸方向に関する加速度値を各成分とするベクトルを示すものであってもよい。また、第2データは、第2入力装置を基準とした所定の複数軸方向に関する加速度値を各成分とするベクトルを示すものであってもよい。このとき、類似度算出ステップにおいて、コンピュータは、第1データにより示されるベクトルの所定時間当たりの変化量を表すベクトルと、第2データにより示されるベクトルの所定時間当たりの変化量を表すベクトルとの角度差に基づいて前記類似度を算出する。
【0030】
第18の発明においては、類似度算出ステップで算出される類似度は、ベクトルの角度差が小さいほど高い値となるようにしてもよい。
【0031】
第19の発明においては、第1データは、第1入力装置を基準とした所定の複数軸方向に関する加速度値を各成分とするベクトルを示すものであってもよい。また、第2データは、第2入力装置を基準とした所定の複数軸方向に関する加速度値を各成分とするベクトルを示すものであってもよい。このとき、類似度算出ステップにおいて、コンピュータは、第1データにより示されるベクトルと第2データにより示されるベクトルとの角度差に基づいて類似度を算出する。
【0032】
第20の発明においては、類似度算出ステップで算出される類似度は、ベクトルの角度差が小さいほど高い値となるようにしてもよい。
【0033】
第21の発明においては、第1センサは、第1入力装置の姿勢を示すベクトルデータ(加速度データ)を第1データとして出力し、第2センサは、第2入力装置の姿勢を示すベクトルデータ(加速度データ)を第2データとして出力してもよい。このとき、類似度算出ステップにおいて、コンピュータは、第1入力装置の姿勢と第2入力装置の姿勢との類似度を算出する。
【0034】
また、本発明は、上記各ステップを実行するゲーム装置と同等の機能を有するゲーム装置の形態で提供されてもよい。
【発明の効果】
【0035】
第1の発明によれば、第1データおよび第2データの少なくとも一方に基づいて算出される変化量は、類似度が大きいほど大きくなる。つまり、2つの入力装置の動きが類似するように各入力装置を動かすことによって、当該変化量が大きくなるので、プレイヤは、2つの入力装置を連動して動かす操作によってゲームを行うことができる。また、2つの入力装置を同じように動かすほど、操作による効果(すなわち変化量)が大きくなるので、2つの入力装置を連動して動かすという操作技術がプレイヤには要求されることとなり、今までにはない操作の面白さをプレイヤに提供することができる。また、第1の発明によれば、2つの入力装置を別々に動かす場合には操作が上記変化量に与える影響が小さいので、各入力装置を個別に動かす操作を、上記変化量を制御する操作とは独立した別の操作として用いることも可能である。したがって、2つの入力装置を用いて複数の操作対象を操作する場合に第1の発明を適用すれば、複数の操作対象を容易に操作することができる。
【0036】
第2の発明によれば、2つの入力装置を連動して動かす操作によって、ゲーム空間においてオブジェクトを移動させることができる。
【0037】
第3の発明によれば、第1入力装置を動かす操作によって第1オブジェクトを操作し、第2入力装置を動かす操作によって第2オブジェクトを操作し、第1および第2入力装置の両方を動かす操作によって第3オブジェクトを操作することができる。したがって、2つの入力装置という簡易な構成によって3つの操作対象を同時に操作することができる。
【0038】
第4の発明によれば、2つの入力装置を用いて人型のオブジェクトの両手と胴体とを別々に操作することができる。
【0039】
第5の発明によれば、入力装置に加速度センサを搭載することによって、加速度センサの出力データから入力装置の姿勢や動きを容易に算出することができる。したがって、算出される姿勢や動きに基づいて類似度を容易に算出することができる。
【0040】
第6の発明によれば、入力装置のいずれかが急激に動かされた場合には類似度の算出が行われないので、その結果、上記変化量の算出も行われない。なお、加速度センサを搭載する入力装置が急激に動かされた場合には、加速度センサの出力から入力装置の傾きや動きを正確に算出することができないおそれがあるが、第6の発明によれば、このような場合に不正確な結果が算出されることを防止することができる。
【0041】
第7の発明によれば、2つの入力装置を連動して動かす操作によって、ゲーム空間においてオブジェクトを移動させる操作を行うことができるとともに、入力装置を急激に動かす操作によって他の操作を行うことができる。
【0042】
第8の発明によれば、第1入力装置または第2入力装置を動かす操作によって第1ゲーム処理が実行され、第1入力装置および第2入力装置を動かす操作によって第2ゲーム処理が実行される。したがって、2つの入力装置という簡易な構成によって複数種類のゲーム操作を行うことができる。また、2つの入力装置を別々に動かした結果、類似度が所定値以下となる場合には、第2ゲーム処理は実行されない。したがって、第1ゲーム処理を行う目的でプレイヤが各入力装置を個別に動かした場合には、プレイヤの意図しない第2ゲーム処理が実行されることがないので、2つの入力装置を用いたゲーム操作の操作性を向上することができる。
【0043】
第9の発明によれば、2つの入力装置を同じように動かすほど、操作による効果(すなわち変化量)が大きくなる。したがって、2つの入力装置を連動して動かすという操作技術がプレイヤには要求されることとなり、今までにはない操作の面白さをプレイヤに提供することができる。
【0044】
第10の発明によれば、入力装置に加速度センサを搭載することによって、加速度センサの出力データから入力装置の姿勢や動きを容易に算出することができる。したがって、算出される姿勢や動きに基づいて類似度を容易に算出することができる。
【0045】
第11および第12の発明によれば、1軸方向の加速度に基づいて類似度を算出するので、入力装置の姿勢を容易に算出することができ、入力装置の姿勢に関する類似度を容易に算出することができる。
【0046】
第13、第14、第19、第20の発明によれば、多軸方向の加速度に基づいて類似度を算出するので、入力装置の姿勢を正確に算出することができ、入力装置の姿勢に関する類似度を正確に算出することができる。
【0047】
第15から第18の発明によれば、多軸方向の加速度の変化量に基づいて類似度を算出するので、入力装置の動き(姿勢の変化を含む)を正確に算出することができ、入力装置の動きに関する類似度を正確に算出することができる。また、2つの入力装置の動き(姿勢の変化を含む)が同じになるように2つの入力装置を連動して動かすという、今までにないゲーム操作を行うゲームを提供することができる。
【0048】
第21の発明によれば、2つの入力装置の姿勢が同じになるように2つの入力装置を連動して動かすという、今までにないゲーム操作を行うゲームを提供することができる。
【図面の簡単な説明】
【0049】
【図1】ゲームシステム1の外観図
【図2】ゲーム装置3の機能ブロック図
【図3】メインコントローラ5aの外観構成を示す斜視図
【図4】メインコントローラ5aの外観構成を示す斜視図
【図5A】メインコントローラ5aの内部構造を示す図
【図5B】メインコントローラ5aの内部構造を示す図
【図6】サブコントローラ5bの斜視図
【図7】サブコントローラ5bの上筐体を外した状態を示す斜視図
【図8】各コントローラ5aおよび5bの構成を示すブロック図
【図9】2つのコントローラ5aおよび5bを用いてゲーム操作を行うときの様子を示す図解図
【図10】メインコントローラ5aの状態と、そのときに検出される加速度ベクトルとの対応を示す図
【図11】本ゲームにおいてテレビ2に表示されるゲーム画面の一例を示す図
【図12】本実施形態におけるゲーム操作の方法を示す図
【図13】プレイヤが第1操作を行ったときのゲーム画面の一例を示す図
【図14】プレイヤが第3操作を行ったときのゲーム画面の一例を示す図
【図15】ゲーム装置3のメインメモリ13に記憶される主なデータを示す図
【図16】ゲーム装置3において実行される処理の流れを示すメインフローチャート
【図17】図16に示すオブジェクト移動処理(ステップS7)の流れを示すフローチャート
【図18】図17に示す第1移動処理(ステップS13)の流れを示すフローチャート
【図19】図17に示す第2移動処理(ステップS14)の流れを示すフローチャート
【発明を実施するための形態】
【0050】
(ゲームシステムの全体構成)
図1を参照して、本発明の一実施形態に係るゲーム装置を含むゲームシステム1について説明する。図1は、ゲームシステム1の外観図である。以下、据置型のゲーム装置を一例にして、本実施形態のゲーム装置およびゲームプログラムについて説明する。図1において、ゲームシステム1は、テレビジョン受像器(以下、単に「テレビ」と記載する)2、ゲーム装置3、光ディスク4、2つのコントローラ5aおよび5b、およびセンサバー6を含む。本システムは、2つのコントローラ5aおよび5bを用いたゲーム操作に基づいてゲーム装置3でゲーム処理を実行するものである。
【0051】
ゲーム装置3には、当該ゲーム装置3に対して交換可能に用いられる情報記憶媒体の一例である光ディスク4が脱着可能に挿入される。光ディスク4には、ゲーム装置3において実行されるためのゲームプログラムが記憶されている。ゲーム装置3の前面には光ディスク4の挿入口が設けられている。ゲーム装置3は、挿入口に挿入された光ディスク4に記憶されたゲームプログラムを読み出して実行することによってゲーム処理を実行する。
【0052】
ゲーム装置3には、テレビ2が接続コードを介して接続される。テレビ2は、家庭用テレビジョン受像機等の表示装置である。テレビ2は、ゲーム装置3において実行されるゲーム処理の結果得られるゲーム画像を表示する。また、テレビ2の周辺(図1では画面の上側)には、センサバー6が設置される。センサバー6は、その両端に2つのマーカ6Rおよび6Lを備えている。マーカ6Rおよび6Lは、具体的には1以上の赤外LEDであり、テレビ2の前方に向かって赤外光を出力する。センサバー6はゲーム装置3に接続されており、ゲーム装置3はセンサバー6が備える各赤外LEDの点灯を制御することが可能である。
【0053】
各コントローラ5aおよび5bは、自機に対して行われた操作の内容を示す操作データをゲーム装置3に与える入力装置である。以下では、コントローラ5aを「メインコントローラ」と呼び、コントローラ5bを「サブコントローラ」と呼ぶ。メインコントローラ5aとゲーム装置3とは無線通信によって接続される。本実施形態では、メインコントローラ5aとゲーム装置3との間の無線通信には例えばBluetooth(ブルートゥース)(登録商標)の技術が用いられる。なお、他の実施形態においてはメインコントローラ5aとゲーム装置3とは有線で接続されてもよい。また、メインコントローラ5aとサブコントローラ5bとは、屈曲自在なケーブル54を介して互いに接続される。なお、他の実施形態においては、メインコントローラ5aとサブコントローラ5bとを無線通信可能としてもよい。また、本実施形態では、サブコントローラ5bは、メインコントローラ5aを介してゲーム装置3と通信を行うが、他の実施形態においては、サブコントローラ5bとゲーム装置3との間で無線または優先によって直接通信が可能な構成としてもよい。
【0054】
(ゲーム装置3の内部構成)
次に、図2を参照して、ゲーム装置3の構成について説明する。なお、図2は、ゲーム装置3の機能ブロック図である。
【0055】
図2において、ゲーム装置3は、各種プログラムを実行する、例えばCPU(セントラルプロセッシングユニット)10を備える。CPU10は、図示しないブートROMに記憶された起動プログラムを実行し、メインメモリ13等のメモリの初期化等を行った後、光ディスク4に記憶されているゲームプログラムを実行し、そのゲームプログラムに応じたゲーム処理等を行うものである。CPU10には、メモリコントローラ11を介して、GPU(Graphics Processing Unit)12、メインメモリ13、DSP(Digital Signal Processor)14、およびARAM(Audio RAM)15が接続される。また、メモリコントローラ11には、所定のバスを介して、通信ユニット16、ビデオI/F(インターフェース)17、フラッシュメモリ18、LED制御部19、オーディオI/F20、およびディスクI/F21が接続されている。ビデオI/F(インターフェース)17はテレビ2に、LED制御部19はセンサバー6に、オーディオI/F20はテレビ2に搭載されるスピーカ2aおよびディスクドライブ22に、ディスクI/F21はディスクドライブ22に、それぞれ接続されている。
【0056】
GPU12は、CPU10の命令に基づいて画像処理を行うものあり、例えば、3Dグラフィックスの表示に必要な計算処理を行う半導体チップで構成される。GPU12は、図示しない画像処理専用のメモリやメインメモリ13の一部の記憶領域を用いて画像処理を行う。GPU12は、これらを用いてテレビ2に表示すべきゲーム画像データやムービー映像を生成し、メモリコントローラ11およびビデオI/F17を介してテレビ2に適宜出力する。
【0057】
メインメモリ13は、CPU10で使用される記憶領域であって、CPU10の処理に必要なゲームプログラム等を適宜記憶する。例えば、メインメモリ13は、CPU10によって光ディスク4から読み出されたゲームプログラムや各種データ等を記憶する。このメインメモリ13に記憶されたゲームプログラムや各種データ等がCPU10によって実行される。
【0058】
DSP14は、ゲームプログラム実行時にCPU10において生成されるサウンドデータ等を処理するものであり、そのサウンドデータ等を記憶するためのARAM15が接続される。ARAM15は、DSP14が所定の処理(例えば、先読みしておいたゲームプログラムやサウンドデータの記憶)を行う際に用いられる。DSP14は、ARAM15に記憶されたサウンドデータを読み出し、メモリコントローラ11およびオーディオI/F19を介してスピーカ2aに出力させる。
【0059】
メモリコントローラ11は、データ転送を統括的に制御するものであり、上述した通信ユニット16、フラッシュメモリ18、LED制御部19、ならびに各種I/F17,20および21が接続される。
【0060】
通信ユニット16は、ゲーム装置3とメインコントローラ5aとの間のデータの送受信を行う。ここで、サブコントローラ5bは、自機に対する操作内容を示す操作データをメインコントローラ5aに対して送信する。メインコントローラ5aは、自機に対する操作内容を示す操作データと、サブコントローラ5bから送信されてくる操作データとをゲーム装置3へ送信する。以下では、メインコントローラ5aに対する操作内容を示すデータを「第1操作データ」と呼び、サブコントローラ5bに対する操作内容を示すデータを「第2操作データ」と呼ぶ。なお、サブコントローラ5bとゲーム装置3との間で直接通信が可能な構成である場合には、サブコントローラ5bは上記第2操作データをゲーム装置3へ直接送信し、メインコントローラ5aは上記第1操作データをゲーム装置3へ送信するようにしてもよい。通信ユニット16は、メインコントローラ5aから各操作データを受信し、受信した各操作データをメモリコントローラ11を介してCPU10へ出力する。CPU10は、上記各操作データに応じてゲーム処理を実行する。また、メインコントローラ5aの動作を制御するための制御データがメインコントローラ5aへ送信される場合、当該制御データは通信ユニット16へ出力される。通信ユニット16は、入力された制御データをメインコントローラ5aへ送信する。
【0061】
ビデオI/F17には、テレビ2が接続され、GPU12によって生成された画像データは、ビデオI/F17を介してテレビ2へ出力される。フラッシュメモリ18は、セーブデータ等のデータを固定的に記憶するバックアップメモリとして機能する。ゲーム装置3は、フラッシュメモリ18に記憶されたセーブデータを用いて、過去に実行されたゲーム状態を再現して、ゲーム画像をテレビ2に表示することができる。LED制御部19にはセンサバー6が備える赤外LEDが接続される。CPU10は、当該赤外LEDを点灯させる場合、LED制御部19に給電指示を行う。給電指示に従ってLED制御部19が赤外LEDに給電を行うことによって、赤外LEDが点灯する。オーディオI/F20にはテレビ2に内蔵されるスピーカ2aが接続され、DSP14がARAM15から読み出したサウンドデータや、ディスクドライブ22から直接出力されるサウンドデータがスピーカ2aから出力される。ディスクI/F21には、ディスクドライブ22が接続される。ディスクドライブ22は、所定の読み出し位置に配置された光ディスク4に記憶されたデータを読み出し、ディスクI/F20やオーディオI/F19に出力する。
【0062】
また、ゲーム装置3は、図示しないネットワーク通信部を備えており、インターネット等のネットワークに接続されている。ゲーム装置3は、ネットワーク通信部を介して外部から種々のデータを取得したり、外部へデータを送信したりすることが可能である。
【0063】
(メインコントローラ5aおよびサブコントローラ5bの構成)
次に、図3〜図9を参照して、メインコントローラ5aおよびサブコントローラ5bについて説明する。図3および図4は、メインコントローラ5aの外観構成を示す斜視図である。図3は、メインコントローラ5aの上側後方から見た斜視図であり、図4は、メインコントローラ5aを下側前方から見た斜視図である。
【0064】
図3および図4において、メインコントローラ5aは、例えばプラスチック成型によって形成されたハウジング31を有している。ハウジング31は、その前後方向(図3に示すZ軸方向)を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。プレイヤは、メインコントローラ5aを用いることによって、それに設けられたボタンを押下すること、および、メインコントローラ5a自体を動かしてその位置や姿勢を変えることによってゲーム操作を行うことができる。例えば、プレイヤは、メインコントローラ5aを回転させたり、メインコントローラ5aによって指し示される画面上の位置を変えたりする操作によって、操作対象に対する操作を行うことができる。ここで、「メインコントローラ5aによって指し示される画面上の位置」とは、理想的には、メインコントローラ5aの前端部から上記長手方向に延ばした直線とテレビ2の画面とが交わる位置であるが、厳密に当該位置である必要はなく、その周辺の位置をゲーム装置3によって算出することができればよい。以下では、メインコントローラ5aによって指し示される画面上の位置を「(メインコントローラ5aの)指示位置」と呼ぶ。また、メインコントローラ5a(ハウジング31)の長手方向を、「(メインコントローラ5aの)指示方向」と呼ぶことがある。
【0065】
ハウジング31には、複数の操作ボタンが設けられる。図3に示すように、ハウジング31の上面には、十字キー32a、1番ボタン32b、2番ボタン32c、Aボタン32d、マイナスボタン32e、ホームボタン32f、プラスボタン32g、および電源ボタン32hが設けられる。電源ボタン32hは遠隔からゲーム装置3本体の電源をオン/オフするためのものである。一方、図4に示すように、ハウジング31の下面には凹部が形成されており、当該凹部の後面側傾斜面にはBボタン32iが設けられる。これらの各操作ボタン32a〜32iには、ゲーム装置3が実行するゲームプログラムに応じた機能が適宜割り当てられる。ホームボタン32fおよび電源32hは、その上面がハウジング31の上面に埋没している。これによって、プレイヤがホームボタン32fまたは電源32hを誤って押下することを防止することができる。
【0066】
ハウジング31の後面にはコネクタ33が設けられている。コネクタ33は、メインコントローラ5aに他の機器(ここでは、サブコントローラ5b)を接続するために利用される。
【0067】
ハウジング31上面の後面側には複数(図3では4つ)のLED34a〜34dが設けられる。ここで、メインコントローラ5aには、他のメインコントローラと区別するためにコントローラ種別(番号)が付与される。LED34は、メインコントローラ5aに現在設定されている上記コントローラ種別をプレイヤに通知したり、メインコントローラ5aの電池残量をプレイヤに通知したりする等の目的で用いられる。具体的には、メインコントローラ5aを用いてゲーム操作が行われる際、上記コントローラ種別に応じて複数のLED34a〜34dのいずれか1つが点灯する。
【0068】
また、メインコントローラ5aは撮像情報演算部35(図5B)を有しており、図4に示すように、ハウジング31前面には撮像情報演算部35の光入射面35aが設けられる。光入射面35aは、マーカ6Rおよび6Lからの赤外光を少なくとも透過する材質で構成される。
【0069】
ハウジング31上面における1番ボタン32bとホームボタン32fとの間には、メインコントローラ5aに内蔵されるスピーカ49(図5A)からの音を外部に放出するための音抜き孔31aが形成されている。
【0070】
次に、図5Aおよび図5Bを参照して、メインコントローラ5aの内部構造について説明する。図5Aおよび図5Bは、メインコントローラ5aの内部構造を示す図である。なお、図5Aは、メインコントローラ5aの上筐体(ハウジング31の一部)を外した状態を示す斜視図である。図5Bは、メインコントローラ5aの下筐体(ハウジング31の一部)を外した状態を示す斜視図である。図5Bに示す斜視図は、図5Aに示す基板30を裏面から見た斜視図となっている。
【0071】
図5Aにおいて、ハウジング31の内部には基板30が固設されており、当該基板30の上主面上に各操作ボタン32a〜32h、各LED34a〜34d、加速度センサ37、アンテナ45、およびスピーカ49等が設けられる。これらは、基板30等に形成された配線(図示せず)によってマイクロコンピュータ(Micro Computer:マイコン)42(図5B参照)に接続される。本実施形態では、加速度センサ37は、X軸方向に関してメインコントローラ5aの中心からずれた位置に配置されている。これによって、メインコントローラ5aをZ軸回りに回転させたときのメインコントローラ5aの動きを算出しやすくなる。また、無線モジュール44(図示せず)およびアンテナ45によって、メインコントローラ5aがワイヤレスコントローラとして機能する。
【0072】
一方、図5Bにおいて、基板30の下主面上の前端縁に撮像情報演算部35が設けられる。撮像情報演算部35は、メインコントローラ5aの前方から順に赤外線フィルタ38、レンズ39、撮像素子40、および画像処理回路41によって構成されおり、それぞれ基板30の下主面に取り付けられる。
【0073】
さらに、基板30の下主面上には、上記マイコン42およびバイブレータ48が設けられている。バイブレータ48は、例えば振動モータやソレノイドであり、基板30等に形成された配線によってマイコン42と接続される。マイコン42の指示によりバイブレータ48が作動することによってメインコントローラ5aに振動が発生するので、メインコントローラ5aを把持しているプレイヤの手にその振動が伝達され、いわゆる振動対応ゲームを実現することができる。本実施形態では、バイブレータ48は、ハウジング31のやや前方寄りに配置される。つまり、バイブレータ48がメインコントローラ5aの中心よりも端側に配置することによって、バイブレータ48の振動によりメインコントローラ5a全体を大きく振動させることができる。また、コネクタ33は、基板30の下主面上の後端縁に取り付けられる。なお、図5Aおよび図5Bに示す他、メインコントローラ5aは、マイコン42の基本クロックを生成する水晶振動子、スピーカ49に音声信号を出力するアンプ等を備えている。
【0074】
次に、図6および図7を参照して、サブコントローラ5bについて説明する。なお、図6は、サブコントローラ5bの斜視図である。図7は、図6に示すサブコントローラ5bの上筐体(ハウジング51の一部)を外した状態を示す斜視図である。
【0075】
図6において、サブコントローラ5bは、例えばプラスチック成型によって形成されたハウジング51を有している。ハウジング51は、その前後方向を長手方向(図6に示すZ軸方向)とし、サブコントローラ5bにおいて最太部となる頭部を前方に形成した流線型の立体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。プレイヤは、サブコントローラ5bを用いることによって、それに設けられたボタンを押下すること、および、サブコントローラ5b自体を動かしてその位置や姿勢を変えることによってゲーム操作を行うことができる。例えば、プレイヤは、サブコントローラ5bを回転させる操作によって、操作対象に対する操作を行うことができる。
【0076】
ハウジング51上面の上記最太部近傍には、スティック52aが設けられる。スティック52aは、ハウジング51上面から突出しており、傾倒可能である。このスティックを倒すことによって、傾倒方向に応じた操作信号が出力される。例えば、プレイヤがスティック52aの先端を360°任意の方向に傾倒することによって任意の方向や位置を指定することができ、仮想ゲーム世界に登場するプレイヤキャラクタ等の移動方向を指示したり、カーソルの移動方向を指示したりすることができる。
【0077】
サブコントローラ5bのハウジング51の前面には、Xボタン52bおよびYボタン52cが設けられる。これらの各操作ボタン52bおよび52cには、ゲーム装置3が実行するゲームプログラムに応じた機能が適宜割り当てられる。なお、図6に示した配置例では、操作ボタン52bおよび52cは、ハウジング51前面の上下方向(図6に示すY軸方向)に沿って並設されている。また、サブコントローラ5bのハウジング51の後端部には、ケーブル54の一端が接続されている。ケーブル54の他端はコネクタ53に接続されている。コネクタ53は、メインコントローラ5aのコネクタ33と嵌合する形状である。サブコントローラ5bのコネクタ53とメインコントローラ5aのコネクタ33とを嵌合させることによってメインコントローラ5aとサブコントローラ5bとが接続される。
【0078】
図7において、ハウジング51の内部には基板が固設されており、当該基板の上主面上にスティック52aおよび加速度センサ55等が設けられる。スティック52a、各操作ボタン52bおよび52c、ならびに加速度センサ55は、基板等に形成された配線(図示せず)を介してケーブル54に接続される。
【0079】
なお、図3〜7に示した各コントローラ5aおよび5bの形状や、各操作ボタンの形状、加速度センサやバイブレータの数および設置位置等は単なる一例に過ぎず、他の形状、数、および設置位置であっても、本発明を実現することができることは言うまでもない。また、メインコントローラ5aにおける撮像情報演算部35の位置(撮像情報演算部35の光入射面35a)は、ハウジング31の前面でなくてもよく、ハウジング31の外部から光を取り入れることができれば他の面に設けられてもかまわない。
【0080】
図8は、各コントローラ5aおよび5bの構成を示すブロック図である。メインコントローラ5aは、操作部32(各操作ボタン32a〜32i)、コネクタ33、撮像情報演算部35、通信部36、および加速度センサ37を備えている。メインコントローラ5aは、自機の姿勢に応じたデータを操作データとしてゲーム装置3へ送信するものである。
【0081】
操作部32は、上述した各操作ボタン32a〜32iに相当し、各操作ボタン32a〜32iに対する入力状態(各操作ボタン32a〜32iが押下されたか否か)を示すデータを通信部36のマイコン42へ出力する。
【0082】
加速度センサ37は、メインコントローラ5aの加速度(重力加速度を含む)を検出する、すなわち、メインコントローラ5aに加わる力(重力を含む)を検出する。加速度センサ37は、当該加速度センサ37の検出部に加わっている加速度のうち、センシング軸方向に沿った直線方向の加速度の値を検出する。例えば、2軸以上の多軸加速度センサの場合には、加速度センサの検出部に加わっている加速度として、各軸に沿った成分の加速度(直線加速度)をそれぞれ検出する。例えば、3軸または2軸の加速度センサ37は、アナログ・デバイセズ株式会社(Analog Devices, Inc.)またはSTマイクロエレクトロニクス社(STMicroelectronics N.V.)から入手可能である種類のものでもよい。
【0083】
本実施形態では、加速度センサ37は、メインコントローラ5aを基準とした上下方向(図3に示すY軸方向)、左右方向(図3に示すX軸方向)および前後方向(図3に示すZ軸方向)の3軸方向に関してそれぞれ直線加速度を検出する。加速度センサ37は、各軸に沿った直線方向に関する加速度を検出するものであるため、加速度センサ37からの出力は3軸それぞれの直線加速度の値を表すものとなる。すなわち、検出された加速度は、メインコントローラ5aを基準に設定されるXYZ座標系における3次元のベクトルとして表される。以下では、加速度センサ37によって検出される3軸に関する各加速度値を各成分とするベクトルを加速度ベクトルと呼ぶ。
【0084】
加速度センサ37が検出した加速度(加速度ベクトル)を示すデータ(加速度データ)は、通信部36へ出力される。本実施形態において、加速度センサ37は、メインコントローラ5aの姿勢に応じたデータを出力するセンサとして用いられる。つまり、ゲーム装置3は、加速度データからメインコントローラ5aの姿勢を算出し、当該姿勢に応じたゲーム処理を実行する。なお、メインコントローラ5aの姿勢を算出する方法については後述する。
【0085】
撮像情報演算部35は、撮像手段が撮像した画像データを解析してその中で輝度が高い領域を判別してその領域の重心位置やサイズなどを算出するためのシステムである。撮像情報演算部35は、例えば最大200フレーム/秒程度のサンプリング周期を有するので、比較的高速なメインコントローラ5aの動きでも追跡して解析することができる。
【0086】
撮像情報演算部35は、赤外線フィルタ38、レンズ39、撮像素子40、および画像処理回路41を含んでいる。赤外線フィルタ38は、メインコントローラ5aの前方から入射する光から赤外線のみを通過させる。レンズ39は、赤外線フィルタ38を透過した赤外線を集光して撮像素子40へ入射させる。撮像素子40は、例えばCMOSセンサやあるいはCCDセンサのような固体撮像素子であり、レンズ39が集光した赤外線を受光して画像信号を出力する。ここで、テレビ2の表示画面近傍に配置されるセンサバー6のマーカ6Rおよび6Lは、テレビ2の前方に向かって赤外光を出力する赤外LEDで構成される。したがって、赤外線フィルタ38を設けることによって、撮像素子40は、赤外線フィルタ38を通過した赤外線だけを受光して画像データを生成するので、マーカ6Rおよび6Lの画像をより正確に撮像することができる。以下では、撮像素子40によって撮像された画像を撮像画像と呼ぶ。撮像素子40によって生成された画像データは、画像処理回路41で処理される。画像処理回路41は、撮像画像内における撮像対象(マーカ6Rおよび6L)の位置を算出する。画像処理回路41は、算出された位置を示す座標を通信部36のマイコン42へ出力する。この座標のデータは、マイコン42によって第1操作データとしてゲーム装置3に送信される。以下では、上記座標を「マーカ座標」と呼ぶ。マーカ座標はメインコントローラ5a自体の向き(姿勢)や位置に対応して変化するので、ゲーム装置3はこのマーカ座標を用いてメインコントローラ5aの向きや位置を算出することができる。
【0087】
なお、本実施形態において、上記マーカ座標のデータはゲーム処理に用いる必要はない。したがって、メインコントローラ5aは、撮像情報演算部35を備えていない構成としてもよい。このとき、センサバー6は不要である。
【0088】
一方、サブコントローラ5bは、操作部52(スティック52aならびに各操作ボタン52bおよび52c)および加速度センサ55を備えている。サブコントローラ5bは、自機の姿勢に応じたデータを操作データとしてゲーム装置3へ送信するものである。
【0089】
サブコントローラ5bの操作部52は、上述したスティック52aならびに各操作ボタン52bおよび52cに相当する。操作部52は、それに対する入力状態を示すデータを、コネクタ53および33を介して通信部36のマイコン42へ出力する。なお、操作部52に対する入力状態とは、例えば、スティック52aが傾倒されている角度および方向に関する状態や、各操作ボタン52bおよび52cの押下状態等である。
【0090】
加速度センサ55は、メインコントローラ5aの加速度センサ37と同様、サブコントローラ5bの加速度(重力加速度を含む)を検出する。本実施形態では、加速度センサ55は、サブコントローラ5bを基準とした上下方向(図6に示すY軸方向)、左右方向(図6に示すX軸方向)および前後方向(図6に示すZ軸方向)の3軸方向に関してそれぞれ直線加速度を検出する。加速度センサ55としては、メインコントローラ5aの加速度センサ37と同じものを用いることができる。加速度センサ55は、加速度データをコネクタ53および33を介して通信部36のマイコン42へ出力する。加速度センサ55は、サブコントローラ5bの姿勢に応じたデータを出力するセンサとして用いられる。つまり、ゲーム装置3は、加速度データからサブコントローラ5bの姿勢を算出し、当該姿勢に応じたゲーム処理を実行する。
【0091】
以上のように、サブコントローラ5bは、操作部52に対する入力状態を示すデータ、および、加速度センサ55から出力される加速度データを、上記第2操作データとしてメインコントローラ5aの通信部36へ送信する。
【0092】
通信部36は、マイコン42、メモリ43、無線モジュール44、およびアンテナ45を含んでいる。マイコン42は、処理を行う際にメモリ43を記憶領域として用いながら、マイコン42が取得したデータをゲーム装置3へ無線送信する無線モジュール44を制御する。
【0093】
操作部32、撮像情報演算部35、および加速度センサ37からマイコン42へ出力されたデータは、一時的にメモリ43に格納される。これらのデータは、上記第1操作データとしてゲーム装置3へ送信される。また、サブコントローラ5bから送信されてきた第2操作データは、一時的にメモリ43に格納される。マイコン42は、ゲーム装置3の通信ユニット16への送信タイミングが到来すると、メモリ43に格納されている第1および第2操作データを無線モジュール44へ出力する。無線モジュール44は、例えばBluetooth(ブルートゥース)(登録商標)の技術を用いて、所定周波数の搬送波を操作データで変調し、その微弱電波信号をアンテナ45から放射する。つまり、各操作データは、無線モジュール44で微弱電波信号に変調されてメインコントローラ5aから送信される。微弱電波信号はゲーム装置3側の通信ユニット16で受信される。受信された微弱電波信号について復調や復号を行うことによって、ゲーム装置3は第1および第2操作データを取得することができる。そして、ゲーム装置3のCPU10は、取得した各操作データとゲームプログラムとに基づいて、ゲーム処理を行う。なお、通信部36から通信ユニット16への無線送信は所定の周期毎に逐次に行われるが、ゲームの処理は1/60秒を単位として(1フレーム時間として)行われることが一般的であるので、この時間以下の周期で送信を行うことが好ましい。メインコントローラ5aの通信部36は、例えば0.5msに1回の割合で各操作データをゲーム装置3の通信ユニット16へ出力する。
【0094】
上記2つのコントローラ5aおよび5bを用いることによって、プレイヤは、各操作ボタンを押下する従来の一般的なゲーム操作に加えて、各コントローラ5aおよび5bの姿勢を変化させたり、各コントローラ5aおよび5bを動かしたりするというゲーム操作を行うことができる。
【0095】
図9は、2つのコントローラ5aおよび5bを用いてゲーム操作を行うときの様子を示す図解図である。ゲームシステム1において2つのコントローラ5aおよび5bを用いてゲームをプレイする際、プレイヤは、図9に示すように一方の手でメインコントローラ5aを把持し、他方の手でサブコントローラ5bを把持する。本実施形態では、プレイヤは、各コントローラ5aおよび5bをそれぞれ傾けることによってゲーム操作を行う。ゲーム操作の詳細については後述する。
【0096】
(姿勢の算出方法)
次に、図10を参照して、コントローラの傾きを算出する方法について説明する。図10は、メインコントローラ5aの状態と、そのときに検出される加速度ベクトルとの対応を示す図である。なお、図10においては、メインコントローラ5aは静止している状態にあるとする。図10に示す状態Aは、メインコントローラ5aの上面が重力方向の逆向きとなる状態、すなわち、メインコントローラ5aを基準に設定されるXYZ座標系のZ軸が重力方向の逆向きとなる状態である。以下では、この状態Aを基準状態と呼ぶ。本実施形態では、プレイヤは、基準状態からX軸またはY軸まわりに回転するようにメインコントローラ5aを傾けることによってゲーム操作を行う。つまり、本実施形態では、ゲーム装置3は、X軸またはY軸まわりの回転に関するコントローラの姿勢を算出する。
【0097】
状態Aでは、メインコントローラ5aに重力のみが加わっているので、加速度センサ37は、図10に示すように重力方向を向く3次元のベクトルAを加速度ベクトルとして検出する。状態Aでは、ベクトルAはZ軸に平行である。また、本実施形態では、ベクトルAの大きさを“1”と表す。状態Aでは、加速度ベクトルAのXY成分からなる2次元ベクトルAXYは、AXY=0となる。したがって、AXY=0の場合にはメインコントローラ5aは基準状態にあると判断することができる。
【0098】
図10に示す状態Bは、基準状態からY軸まわりに回転するようにメインコントローラ5aの姿勢を変化させた状態である。状態Bでは、加速度ベクトルAは、Z軸に平行な方向からX軸よりに傾いた向きとなる。このとき、上記2次元ベクトルAXYは、X成分の値が0でなく、かつ、Y成分の値が0となる。このように、加速度ベクトルのX成分の値は、メインコントローラ5aのY軸まわりの姿勢(Y軸まわりの回転に関する姿勢)によって変化する。また、基準状態を0°としたとき、Y軸まわりに−90°から90°までの範囲でメインコントローラ5aの姿勢を変化させる場合、X成分の値は、−1から1まで次第に大きくなる。例えば、Y軸まわりに−90°だけ傾いた状態ではX成分の値は“−1”となり、Y軸まわりに−45°だけ傾いた状態ではX成分の値は“−√2/2(≒−0.71)”となり、Y軸まわりに90°だけ傾いた状態ではX成分の値は“1”となる。なお、ここでは、Y軸正方向から負方向を見たときの右回りの向きを正とし、左回りの向きを負として角度を表している。以上より、加速度ベクトルのX成分の値によって、メインコントローラ5aのY軸まわりの姿勢を知ることができる。
【0099】
図10に示す状態Cは、基準状態からX軸まわりに回転するようにメインコントローラ5aの姿勢を変化させた状態である。状態Cでは、加速度ベクトルAは、Z軸に平行な方向からY軸よりに傾いた向きとなる。このとき、上記2次元ベクトルAXYは、Y成分の値が0でなく、かつ、X成分の値が0となる。このように、加速度ベクトルのY成分の値は、メインコントローラ5aのX軸まわりの姿勢(X軸まわりの回転に関する姿勢)によって変化する。また、基準状態を0°としたとき、X軸まわりに−90°から90°までの範囲でメインコントローラ5aの姿勢を変化させる場合、Y成分の値は、−1から1まで次第に大きくなる。なお、ここでは、X軸負方向から正方向を見たときの右回りの向きを正とし、左回りの向きを負として角度を表している。以上より、加速度ベクトルのY成分の値によって、メインコントローラ5aのX軸まわりの姿勢を知ることができる。
【0100】
以上のように、本実施形態では、ゲーム装置3は、加速度センサ37によって検出される加速度ベクトルのX成分の値を、メインコントローラ5aのY軸まわりの姿勢を示す値として用いる。また、ゲーム装置3は、加速度センサ37によって検出される加速度ベクトルのY成分の値を、メインコントローラ5aのX軸まわりの姿勢を示す値として用いる。
【0101】
なお、図10においては、メインコントローラ5aの姿勢を算出する場合について説明したが、サブコントローラ5bの姿勢もメインコントローラ5aの姿勢と同様に算出することができる。すなわち、ゲーム装置3は、サブコントローラ5bの加速度センサ55によって検出される加速度ベクトルから、サブコントローラ5bのX軸まわりおよびY軸まわりの姿勢を算出することができる。
【0102】
なお、本実施形態では、コントローラの姿勢を算出するために例えば、静電容量式の加速度センサを用いることとしたが、他の方式の加速度センサやジャイロセンサを用いるようにしてもよい。ただし、加速度センサは各軸に沿った直線方向の加速度をそれぞれ検出するものであるのに対して、ジャイロセンサは回転に伴う角速度を検出するものである。つまり、加速度センサに代えてジャイロセンサを採用する場合には、検出される信号の性質が異なるため、両者を簡単に置き換えることはできない。そこで、加速度センサの代わりにジャイロセンサを用いて姿勢を算出する場合には、大幅な変更を行う。具体的には、検出開始の状態において姿勢の値を初期化する。そして、当該ジャイロスコープから出力される角速度のデータを積分する。さらに、積分結果を用いて、初期化された姿勢の値からの姿勢の変化量を算出する。この場合、算出される姿勢は、角度で表されることになる。
【0103】
なお、既に説明したように、加速度センサによって姿勢を算出する場合には、加速度ベクトルに基づいて姿勢を算出する。したがって、算出される姿勢はベクトルで表すことが可能であり、初期化を行わずとも絶対的な方向を検出することが可能である点で、加速度センサを用いる場合とジャイロスコープを用いる場合とで異なる。また、姿勢として算出される値の性質についても上記のように角度であるかベクトルであるかの違いがあるので、加速度センサからジャイロスコープへの置き換えを行う際には当該姿勢のデータに対しても所定の変換を行う必要がある。
【0104】
(ゲームの概要)
次に、図11〜図14を参照して、ゲーム装置3によって実行されるゲームおよびゲーム操作の概要について説明する。図11は、本ゲームにおいてテレビ2に表示されるゲーム画面の一例を示す図である。図11に示すように、本ゲームはボクシングゲームであり、右手オブジェクト61、左手オブジェクト62、胴体オブジェクト63、および敵オブジェクト64が画面に表示される。本ゲームは、右手オブジェクト61、左手オブジェクト62、および胴体オブジェクト63からなるプレイヤオブジェクトをプレイヤが操作し、敵オブジェクト64とボクシングを行うゲームである。なお、本実施形態では、敵オブジェクト64が見やすいように、胴体オブジェクト63は半透明で表示される(図11では胴体オブジェクト63を点線で示す)。
【0105】
本ゲームにおいてプレイヤによって操作される対象は、右手オブジェクト61、左手オブジェクト62、および胴体オブジェクト63の3つのオブジェクトである。プレイヤは、2つのコントローラ5aおよび5bを用いて、右手オブジェクト61の位置および姿勢を制御する第1操作、左手オブジェクト62の位置および姿勢を制御する第2操作、ならびに、胴体オブジェクト63の位置を制御する第3操作を行う。また、本実施形態では、プレイヤは、メインコントローラ5aを用いて右手オブジェクト61にパンチ動作を行わせる操作、および、サブコントローラ5bを用いて左手オブジェクト62にパンチ動作を行わせる操作を行うことが可能である。
【0106】
ここで、本ゲームにおいては、コントローラのZ軸が重力方向の逆向きを向き(上記基準状態)、かつ、コントローラの上面がプレイヤの正面を向くようにプレイヤがコントローラを把持することを想定する。また、このように把持した状態では、コントローラをY軸まわりに回転させる操作(図10の状態Bに示す操作)は、プレイヤから見てコントローラを左右方向に傾けるように回転させる操作である。したがって、以下では、コントローラをY軸まわりに回転させる操作を「左右回転操作」と呼ぶ。また、上記状態では、コントローラをX軸まわりに回転させる操作(図10の状態Cに示す操作)は、プレイヤから見てコントローラを前後方向に傾けるように回転させる操作である。したがって、以下では、コントローラをX軸まわりに回転させる操作を「前後回転操作」と呼ぶ。
【0107】
図12は、本実施形態におけるゲーム操作の方法を示す図である。なお、本実施形態では、上記基準状態で把持している時、右手オブジェクト61および左手オブジェクト62は図11に示す基準位置に配置される。
【0108】
図12に示すように、第1操作は、メインコントローラ5aに対して上記左右回転操作および/または上記前後回転操作を行うものである(図12では、左右回転操作を示している)。ゲーム装置3は、この第1操作に従って右手オブジェクト61の位置および姿勢を制御する。図13は、プレイヤが第1操作を行ったときのゲーム画面の一例を示す図である。プレイヤがメインコントローラ5aに対して上記左右回転操作を行った場合、右手オブジェクト61は画面の奥行き方向を軸とした回転を行う(図13)。つまり、右手オブジェクト61は画面に対して右回りまたは左回りに回転する。この回転により右手オブジェクト61の姿勢および位置が変化する。一方、プレイヤがメインコントローラ5aに対して前後回転操作を行った場合、右手オブジェクト61は画面の左右方向を軸とした回転を行う。つまり、右手オブジェクト61は画面の前後方向に回転しながら移動する。なお、右手オブジェクト61は、メインコントローラ5aが基準状態から傾いた角度に対応する角度だけ姿勢および位置を変化させる。
【0109】
第2操作は、サブコントローラ5bに対して上記左右回転操作または上記前後回転操作を行うものである(図12では、左右回転操作を示している)。ゲーム装置3は、この第2操作に従って左手オブジェクト62の位置および姿勢を制御する。左手オブジェクト62の制御方法は、右手オブジェクト61と同様である。すなわち、プレイヤがサブコントローラ5bに対して左右回転操作を行った場合、左手オブジェクト62は画面の奥行き方向を軸とした回転を行う。一方、プレイヤがサブコントローラ5bに対して前後回転操作を行った場合、左手オブジェクト62は画面の左右方向を軸とした回転を行う。左手オブジェクト62は、サブコントローラ5bが基準状態から傾いた角度に対応する角度だけ姿勢および位置を変化させる。
【0110】
第3操作は、メインコントローラ5aおよびサブコントローラ5bの両方に対して上記左右回転操作または上記前後回転操作を行うものである(図12では、左右回転操作を示している)。ゲーム装置3は、この第3操作に従って胴体オブジェクト63の位置を制御する。図14は、プレイヤが第3操作を行ったときのゲーム画面の一例を示す図である。プレイヤがメインコントローラ5aおよびサブコントローラ5bに対して左右回転操作を行った場合、図14に示すように、胴体オブジェクト63は画面の左右方向に移動する。一方、プレイヤがメインコントローラ5aおよびサブコントローラ5bに対して前後回転操作を行った場合、胴体オブジェクト63は画面の前後方向に移動する。なお、第3操作が行われる場合、各コントローラ5aおよび5bの姿勢が変化しているので、図14に示すように、右手オブジェクト61および左手オブジェクト62の位置および姿勢も変化する。
【0111】
また、詳細は後述するが、第3操作については、2つのコントローラ5aおよび5bに対して左右回転操作を行う場合と前後回転操作を行う場合とで制御方法が異なる。すなわち、左右回転操作が行われる場合、ゲーム装置3は、2つのコントローラ5aおよび5bの姿勢に関する類似度を算出する。そして、類似度に応じて胴体オブジェクト63の移動量が変化するように胴体オブジェクト63の位置を制御する。一方、前後回転操作が行われる場合、ゲーム装置3は上記類似度を算出しない。
【0112】
また、左右回転操作については上述のように類似度が算出されることからも明らかなように、左右回転操作に関しては2つのコントローラ5aおよび5bに対してある程度類似した操作を行うことが要求される。一方、前後回転操作については、2つのコントローラ5aおよび5bに対して類似した操作を行うことは要求されない。このように、上記第3操作は、メインコントローラ5aおよびサブコントローラ5bに対して全く同じ操作を行うことを要求するものではない。したがって、上記第1操作または第2操作が行われた場合にも第3操作が行われたと判断されることがあり、胴体オブジェクト63が移動することもある。
【0113】
以上のように、本実施形態におけるゲームにおいては、メインコントローラ5aを動かす第1操作によって右手オブジェクト61を制御し、サブコントローラ5bを動かす第2操作によって左手オブジェクト62を制御し、メインコントローラ5aおよびサブコントローラ5bを動かす第3操作によって胴体オブジェクト63を制御することができる。これによって、本実施形態では、2つの入力装置のみを用いた簡易な構成によって3つのオブジェクトを制御することができる。また、第3操作のような、2つの入力装置を連動して動かす操作によってゲーム操作を行うことができる。
【0114】
(ゲーム処理の詳細)
次に、本実施形態においてゲーム装置3で実行されるゲーム処理について説明する。まず、ゲーム処理において用いられる主なデータについて図15を用いて説明する。図15は、ゲーム装置3のメインメモリ13に記憶される主なデータを示す図である。図15に示すように、メインメモリ13には、ゲームプログラム71、操作データ72、およびゲーム処理用データ73等が記憶される。なお、メインメモリ13には、図15に示すデータの他、ゲームに登場する各種オブジェクトの画像データや、オブジェクトの各種パラメータを示すデータ等、ゲーム処理に必要なデータが記憶される。
【0115】
ゲームプログラム71は、ゲーム装置3に電源が投入された後の適宜のタイミングで光ディスク4からその一部または全部が読み込まれてメインメモリ13に記憶される。ゲームプログラム71には、各コントローラ5aおよび5bの姿勢に応じてオブジェクト61〜63を制御するためのゲーム処理等の実行に必要なプログラムが含まれている。
【0116】
操作データ72は、メインコントローラ5aからゲーム装置3へ送信されてくる第1および第2操作データである。操作データ72には、第1加速度データ721および第2加速度データ722が含まれる。第1加速度データ721は、加速度センサ37によって検出された加速度を示すデータである。ここでは、第1加速度データ721は、図3に示すXYZの3軸の方向に関する第1加速度ベクトルA1=(AX1,AY1,AZ1)を示すデータである。第2加速度データ722は、加速度センサ55によって検出された加速度を示すデータである。ここでは、第2加速度データ722は、図6に示すXYZの3軸の方向に関する第2加速度ベクトルA2=(AX2,AY2,AZ2)を示すデータである。
【0117】
ゲーム処理用データ73には、第1加速度大きさデータ731、第2加速度大きさデータ732、第1姿勢データ733、第2姿勢データ734、X成分加算値データ735、Y成分加算値データ736、差分値データ737、類似度データ738、右手オブジェクトデータ739、左手オブジェクトデータ740、および胴体オブジェクトデータ741が含まれる。
【0118】
第1加速度大きさデータ731は、上記第1加速度ベクトルA1の大きさ(絶対値)を示す。また、第2加速度大きさデータ732は、上記第2加速度ベクトルA2の大きさ(絶対値)を示す。詳細は後述するが、各加速度大きさデータ731および732は、パンチ動作を行うか否か、および、各オブジェクト61〜63の移動処理を行うか否かを判定するために用いられる。
【0119】
第1姿勢データ733は、メインコントローラ5aの姿勢を示すデータである。本実施形態では、第1姿勢データ733は、X軸およびY軸まわりの回転に関するメインコントローラ5aの姿勢を示すデータである。また、図10に示したように、X軸およびY軸まわりの回転に関するコントローラの姿勢は、加速度ベクトルのX成分およびY成分によって表される。したがって、本実施形態では、第1姿勢データ733は、上記第1加速度ベクトルA1のX成分およびY成分からなる2次元ベクトルA1XY=(AX1,AY1)を示す。
【0120】
第2姿勢データ734は、サブコントローラ5bの姿勢を示すデータである。本実施形態では、第2姿勢データ734は、X軸およびY軸まわりの回転に関するサブコントローラ5bの姿勢を示すデータである。したがって、本実施形態では、第2姿勢データ734は、上記第2加速度ベクトルA2のX成分およびY成分からなる2次元ベクトルA2XY=(AX2,AY2)を示す。
【0121】
X成分加算値データ735は、上記第1姿勢データ733および第2姿勢データ734により示される2つの2次元ベクトルのX成分の加算値B(=AX1+AX2)を示す。この加算値は、上記基準状態からのメインコントローラ5aの傾き度合いとサブコントローラ5bの傾き度合いとの和を示している。X成分加算値データ735は、胴体オブジェクト63の左右方向の移動量を算出するために用いられる。
【0122】
Y成分加算値データ736は、上記第1姿勢データ733および第2姿勢データ734により示される2つの2次元ベクトルのY成分の加算値C(=AY1+AY2)を示す。Y成分加算値データ736は、胴体オブジェクト63の前後方向の移動量を算出するために用いられる。
【0123】
差分値データ737は、上記第1および第2姿勢データ734により示される2つの2次元ベクトルのX成分の絶対値の差分値C(=|AX2|−|AX1|)を示す。差分値データ737は、後述する類似度を算出するために用いられる。
【0124】
類似度データ738は、メインコントローラ5aの姿勢とサブコントローラ5bの姿勢との類似度を示す。本実施形態では、当該類似度Dは、D=1−|C|で算出される。
【0125】
右手オブジェクトデータ739は、ゲーム空間における右手オブジェクト61の位置および姿勢を示すデータである。左手オブジェクトデータ740は、ゲーム空間における左手オブジェクト62の位置および姿勢を示すデータである。胴体オブジェクトデータ741は、ゲーム空間における胴体オブジェクト63の位置を示すデータである。
【0126】
次に、ゲーム装置3において行われる処理の詳細を、図16〜図19を用いて説明する。図16は、ゲーム装置3において実行される処理の流れを示すメインフローチャートである。ゲーム装置3の電源が投入されると、ゲーム装置3のCPU10は、図示しないブートROMに記憶されている起動プログラムを実行し、これによってメインメモリ13等の各ユニットが初期化される。そして、光ディスク4に記憶されたゲームプログラムがメインメモリ13に読み込まれ、CPU10によって当該ゲームプログラムの実行が開始される。図16に示すフローチャートは、以上の処理が完了した後に行われる処理を示すフローチャートである。
【0127】
図16に示すゲーム処理においては、まずステップS1において、CPU10は、第1および第2加速度データを取得する。すなわち、メインコントローラ5aから送信されてくる第1および第2操作データを通信ユニット16が受信し、受信された各操作データに含まれる各加速度データがメインメモリ13に記憶される。なお、各加速度データはステップS1が実行される度に繰り返し取得され、最新の(最後に取得された)第1および第2加速度データのみがメインメモリ13に記憶される。
【0128】
続くステップS2において、CPU10は、第1および第2加速度ベクトルの大きさ(絶対値)を算出する。具体的には、メインメモリ13に記憶されている第1加速度データ721により示される第1加速度ベクトルA1の絶対値が算出され、算出された絶対値を示すデータが第1加速度大きさデータ731としてメインメモリ13に記憶される。また、メインメモリ13に記憶されている第2加速度データ722により示される第2加速度ベクトルA2の絶対値が算出され、算出された絶対値を示すデータが第2加速度大きさデータ732としてメインメモリ13に記憶される。
【0129】
続くステップS3において、CPU10は、メインコントローラ5aを用いてパンチ操作が行われたか否かを判定する。本実施形態において、パンチ操作は、コントローラを急激に移動させる操作である。したがって、上記ステップS3の判定は、メインコントローラ5aが急激に移動されたか否かによって判定することができる。ここで、メインコントローラ5aが急激に移動される場合、メインコントローラ5aの加速度センサ37には慣性力が加えられる結果、加速度センサ37によって検出される加速ベクトルの大きさは所定値よりも大きくなる。つまり、加速度ベクトルの大きさによって、パンチ操作が行われたか否かを判別することができる。したがって、ステップS3の判定は、第1加速度大きさデータ731を用いて行われる。すなわち、第1加速度大きさデータ731により示される値が予め定められた所定値よりも大きい場合、パンチ操作が行われたと判定される。一方、第1加速度大きさデータ731により示される値が上記所定値以下である場合、パンチ操作が行われていないと判定される。上記ステップS3の判定結果が肯定である場合、ステップS4の処理が実行される。一方、ステップS3の判定結果が否定である場合、ステップS5の処理が実行される。
【0130】
なお、メインコントローラ5aが急激に移動されたか否かは、加速度ベクトルの大きさが急激に変化しているか否かによっても判別することができる。したがって、他の実施形態においては、加速度ベクトルの変化量を算出し、当該変化量が所定量よりも大きい場合にパンチ操作が行われたと判定し、当該変化量が所定量以下である場合にパンチ操作が行われていないと判定してもよい。
【0131】
また、本実施形態では、3次元の加速度ベクトルA1の大きさによってステップS3の判定を行ったが、他の実施形態では、加速度ベクトルA1の各成分のうちの所定の1つまたは2つの成分からなるベクトルの大きさによってステップS3の判定を行うようにしてもよい。
【0132】
ステップS4において、CPU10は、右手オブジェクト61にパンチ動作を行わせる。これによって、右手オブジェクト61は、敵オブジェクト64の方向へ所定距離だけ移動した後、移動前の位置まで戻る。CPU10は、複数フレームからなるアニメーションによってパンチ動作をテレビ2に表示させる。なお、パンチ動作が行われた場合、右手オブジェクト61が敵オブジェクト64に当たったか否かを判定する処理、および、パンチが当たった場合には敵オブジェクト64に与えられるダメージの大きさを算出する処理が実行される。これらの処理は従来のボクシングゲームと同様の方法で実現可能であるので、詳細な説明を省略する。ステップS4の処理の後、ステップS8の処理が実行される。
【0133】
一方、ステップS5において、CPU10は、サブコントローラ5bを用いてパンチ操作が行われたか否かを判定する。ステップS5の判定は、上記ステップS3の判定と同様の方法で行うことができる。ただし、ステップS5の処理はサブコントローラ5bに関する処理であるので、ステップS5においては、第1加速度大きさデータ731に代えて第2加速度大きさデータ732を用いて上記ステップS3と同様の処理が実行される。上記ステップS5の判定結果が肯定である場合、ステップS6の処理が実行される。一方、ステップS5の判定結果が否定である場合、ステップS7の処理が実行される。
【0134】
ステップS6において、CPU10は、左手オブジェクト62にパンチ動作を行わせる。ステップS6の処理は、右手オブジェクト61に代えて左手オブジェクト62にパンチ動作を行わせる点以外は、ステップS4の処理と同様である。ステップS6の処理の後、ステップS8の処理が実行される。
【0135】
ステップS7においては、CPU10はオブジェクト移動処理を実行する。オブジェクト移動処理は、プレイヤオブジェクトを構成する各オブジェクト61〜63を移動させる処理である。以下、図17を参照して、オブジェクト移動処理の詳細を説明する。
【0136】
図17は、図16に示すオブジェクト移動処理(ステップS7)の流れを示すフローチャートである。オブジェクト移動処理においては、まずステップS11において、CPU10は、メインコントローラ5aのX軸およびY軸まわりの姿勢を算出する。当該姿勢は、上記第1加速度データ721に基づいて算出される。具体的には、第1加速度データ721により示される第1加速度ベクトルA1のX成分およびY成分からなる2次元ベクトルA1XY=(AX1,AY1)が算出される。算出された2次元ベクトルA1XYを示すデータは、第1姿勢データ733としてメインメモリ13に記憶される。
【0137】
続くステップS12において、CPU10は、サブコントローラ5bのX軸およびY軸まわりの姿勢を算出する。当該姿勢は、上記第2加速度データ722に基づいて算出される。具体的には、第2加速度データ722により示される第2加速度ベクトルA2のX成分およびY成分からなる2次元ベクトルA2XY=(AX2,AY2)が算出される。算出された2次元ベクトルA2XYを示すデータは、第2姿勢データ734としてメインメモリ13に記憶される。
【0138】
続くステップS13において、CPU10は第1移動処理を実行する。第1移動処理は、ゲーム空間において胴体オブジェクト63を移動させるための処理である。以下、図18を参照して、第1移動処理の詳細を説明する。
【0139】
図18は、図17に示す第1移動処理(ステップS13)の流れを示すフローチャートである。第1移動処理においては、まずステップS21において、CPU10は、メインコントローラ5aのY軸まわりの傾きと、サブコントローラ5bのY軸まわりの傾きとの加算値を算出する。ここで、コントローラの(Y軸まわりの)傾きとは、上記基準状態からの傾きの大きさを指す。加算値は、メインメモリ13に記憶されている第1姿勢データ733および第2姿勢データ734を用いて算出される。具体的には、加算値は、第1姿勢データ733により示される2次元ベクトルA1XYのX成分(AX1)と、第2姿勢データ734により示される2次元ベクトルA2XYのX成分(AX2)との和である。つまり、加算値BXは、次の式(1)に従って算出される。
BX=AX1+AX2 …(1)
算出された加算値を示すデータは、X成分加算値データ735としてメインメモリ13に記憶される。
【0140】
続くステップS22において、CPU10は、メインコントローラ5aのX軸まわりの傾きと、サブコントローラ5bのX軸まわりの傾きとの加算値を算出する。ここで、コントローラの(X軸まわりの)傾きとは、上記基準状態からの傾きの大きさを指す。加算値は、メインメモリ13に記憶されている第1姿勢データ733および第2姿勢データ734を用いて算出される。具体的には、加算値は、第1姿勢データ733により示される2次元ベクトルA1XYのY成分(AY1)と、第2姿勢データ734により示される2次元ベクトルA2XYのY成分(AY2)との和である。つまり、加算値BYは、次の式(2)に従って算出される。
BY=AY1+AY2 …(2)
算出された加算値を示すデータは、Y成分加算値データ736としてメインメモリ13に記憶される。
【0141】
続くステップS23において、CPU10は、サブコントローラ5bのY軸まわりの傾きの絶対値から、メインコントローラ5aのY軸まわりの傾きの絶対値を減算した差分値を算出する。この差分値は、メインメモリ13に記憶されている第1姿勢データ733および第2姿勢データ734を用いて算出される。具体的には、差分値Cは、次の式(3)に従って算出される。
C=|AX2|−|AX1| …(3)
算出された差分値を示すデータは、差分値データ737としてメインメモリ13に記憶される。なお、本実施形態では、コントローラが基準状態から右回りに傾けられた場合と左回りに傾けられた場合とを区別せずに類似度を算出する目的で、各コントローラ5aおよび5bのY軸まわりの傾きの絶対値を用いて差分値Cを算出している。したがって、例えばメインコントローラ5aが右回りに30°傾けられ、サブコントローラ5bが左回りに30°傾けられた場合、上記差分値Cは“0”となる。ここで、他の実施形態では、各コントローラ5aおよび5bのY軸まわりの傾き(絶対値ではない)を用いて差分値Cを算出するようにしてもよい。これによれば、コントローラの右回りの傾きと左回りの傾きとを区別して類似度を算出することができる。
【0142】
続くステップS24において、CPU10は、類似度を算出する。本実施形態において、類似度は、メインコントローラ5aの姿勢とサブコントローラ5bの姿勢との類似度を指す。この類似度は、メインメモリ13に記憶されている差分値データ737を用いて算出される。具体的には、類似度Dは、次の式(4)に従って算出される。
D=1−|C| …(4)
算出された類似度Dを示すデータは、類似度データ738としてメインメモリ13に記憶される。
【0143】
続くステップS25において、CPU10は、胴体オブジェクト63の横方向の移動量を算出する。なお、横方向とは、胴体オブジェクト63の左右方向であり、画面の左右方向である。この移動量は、メインメモリ13に記憶されているX成分加算値データ735および類似度データ738を用いて算出される。具体的には、移動量は、X成分加算値データ735により示される加算値BXの値が大きいほど大きくなるように、かつ、類似度データ738の値が大きいほど大きくなるように算出される。例えば、移動量は、加算値BXと類似度Dとの積に所定の定数を乗算することによって算出してもよいし、類似度Dが所定の値以下の場合には0とし、類似度Dが当該所定の値よりも大きい場合には加算値BXに所定の定数を乗算することによって算出するようにしてもよい。なお、上記ステップS21で述べたように、加算値BXは、メインコントローラ5aの姿勢およびサブコントローラ5bの姿勢に基づいて算出される。したがって、上記移動量は、2つのコントローラ5aおよび5bの姿勢と、類似度とに基づいて算出される。
【0144】
続くステップS26において、CPU10は、胴体オブジェクト63の前後方向の移動量を算出する。なお、前後方向とは、胴体オブジェクト63の前後方向であり、画面の奥行き方向である。この移動量は、メインメモリ13に記憶されているY成分加算値データ736を用いて算出される。具体的には、移動量は、Y成分加算値データ736により示される加算値BYの値が大きいほど大きくなるように算出される。なお、上記ステップS22で述べたように、加算値BYは、メインコントローラ5aの姿勢およびサブコントローラ5bの姿勢に基づいて算出される。したがって、上記移動量は、2つのコントローラ5aおよび5bの姿勢に基づいて算出される。
【0145】
なお、本実施形態では、胴体オブジェクト63の横方向の移動量は、Y軸まわりの傾きに関する類似度を用いて算出された。ここで、他の実施形態では、前後方向の移動量についても類似度を用いて算出するようにしてもよい。すなわち、ゲーム装置3は、X軸まわりの傾きに関する類似度を算出し、当該類似度を用いて胴体オブジェクト63の前後方向の移動量を決定するようにしてもよい。このとき、前後方向の移動量は、X軸まわりの傾きに関する類似度の値が大きいほど大きくなるように算出される。なお、X軸まわりの傾きに関する類似度は、Y軸まわりの傾きに関する類似度が加速度ベクトルのX成分(AX1,AX2)を用いて算出されるのと同様に、加速度ベクトルのY成分(AY1,AY2)を用いて算出することができる。
【0146】
また、X軸およびY軸まわりのそれぞれの傾きに関する2つの類似度を用いる場合には、それぞれを別個に算出し、導体オブジェクト63の横方向の移動量および前後方向の移動量をそれぞれ別個に算出するようにしてもよい。また、他の実施形態では、導体オブジェクト63の横方向の移動量および前後方向の移動量をまとめて算出するようにしてもよい。すなわち、まず、ゲーム装置3は、メインコントローラ5aの姿勢に対応する加速度ベクトルのXY成分A1XYと、サブコントローラ5bの姿勢に対応する加速度ベクトルのXY成分A2XYとの類似度を算出する。この類似度は、例えば、2つのベクトルA1XYおよびA2XYの差分(を表すベクトル)として算出されてもよいし、2つのベクトルA1XYおよびA2XYの角度差として算出されてもよい。このとき、類似度は、差分(角度差)が小さいほど類似度が大きく(高く)なるように算出される。次に、ゲーム装置3は、ベクトルA1XYおよび/またはベクトルA2XYから算出される仮の移動量を、算出した類似度に応じて補正することによって移動量を決定する。
【0147】
ステップS27において、CPU10は、胴体オブジェクト63の位置を、ステップS25およびS26で算出された移動量に基づいて算出する。すなわち、メインメモリ13に記憶されている胴体オブジェクトデータ741により示される位置から、ステップS25およびS26で算出された移動量だけ移動した位置が、胴体オブジェクト63の新たな位置に決定される。決定された新たな位置を示すデータが、新たな胴体オブジェクトデータ741としてメインメモリ13に更新して記憶される。なお、他の実施形態においては、ステップS25およびS26で算出された移動量に基づいて胴体オブジェクト63の位置および姿勢を算出するようにしてもよい。例えば、上記移動量が所定値よりも小さい場合、胴体オブジェクト63の姿勢を変化させ、上記移動量が所定値以上である場合、胴体オブジェクト63の位置を変化させるようにしてもよい。上記ステップS27の後、CPU10は第1移動処理を終了する。
【0148】
図17の説明に戻り、ステップS13の次のステップS14において、CPU10は第2移動処理を実行する。第2移動処理は、ゲーム空間において右手および左手オブジェクト61および62を移動させるための処理である。以下、図19を参照して、第2移動処理の詳細を説明する。
【0149】
図19は、図17に示す第2移動処理(ステップS14)の流れを示すフローチャートである。第2移動処理においては、まずステップS31において、CPU10は、右手オブジェクト61の傾き(姿勢)を算出する。右手オブジェクト61の傾きは、メインメモリ13に記憶されている第1姿勢データ733に基づいて算出される。具体的には、画面に垂直な軸まわりの回転方向に関する右手オブジェクト61の傾きは、第1姿勢データ733により示される2次元ベクトルのX成分に基づいて算出される。画面の左右方向に平行な軸まわりの回転方向に関する右手オブジェクト61の傾きは、上記2次元ベクトルのY成分に基づいて算出される。
【0150】
続くステップS32において、CPU10は、ゲーム空間における右手オブジェクト61の位置を算出する。この位置は、上記ステップS31で算出された傾きに基づいて算出される。本実施形態では、右手オブジェクト61の位置は、上記傾きに応じて適切な位置となるように一義的に決定される。以上のステップS31およびS32で算出された傾きおよび位置を示すデータは、右手オブジェクトデータ739としてメインメモリ13に記憶される。
【0151】
ステップS33において、CPU10は、左手オブジェクト62の傾き(姿勢)を算出する。左手オブジェクト62の傾きは、メインメモリ13に記憶されている第2姿勢データ734に基づいて算出される。具体的には、画面に垂直な軸まわりの回転方向に関する左手オブジェクト62の傾きは、第2姿勢データ734により示される2次元ベクトルのX成分に基づいて算出される。画面の左右方向に平行な軸まわりの回転方向に関する左手オブジェクト62の傾きは、上記2次元ベクトルのY成分に基づいて算出される。
【0152】
続くステップS34において、CPU10は、ゲーム空間における左手オブジェクト62の位置を算出する。この位置は、上記ステップS33で算出された傾きに基づいて算出される。本実施形態では、左手オブジェクト62の位置は、上記傾きに応じて適切な位置となるように一義的に決定される。以上のステップS33およびS34で算出された傾きおよび位置を示すデータは、左手オブジェクトデータ740としてメインメモリ13に記憶される。ステップS34の後、CPU10は第2移動処理を終了する。また、図17において、第2移動処理(ステップS14)の後、CPU10はオブジェクト移動処理を終了する。
【0153】
図16の説明に戻り、オブジェクト移動処理(ステップS7)の後、ステップS8の処理が実行される。ステップS8においては、プレイヤによるゲーム操作を反映したゲーム画像が生成され、生成されたゲーム画像がテレビ2の画面に表示される。ゲーム画像は、上記オブジェクト移動処理ステップS7でメインメモリ13に記憶された各オブジェクトデータ739〜741を用いて生成される。すなわち、各オブジェクト61〜63が各オブジェクトデータ739〜741により示される位置および姿勢となるゲーム画像が生成されて表示される。なお、CPU10は、上記ステップS8の前に、敵オブジェクト64の動作を制御する処理や、敵オブジェクト64のパンチがプレイヤオブジェクトに当たったか否かを判定する処理、パンチが当たった場合にはプレイヤオブジェクトに与えられるダメージの大きさを算出する処理等を実行する。そして、上記ゲーム画像にはこれらの処理の実行結果が反映される。
【0154】
続くステップS9において、CPU10は、ゲームを終了するか否かを判定する。ステップS9の判定は、例えば、プレイヤオブジェクトおよび敵オブジェクトのいずれかが所定量のダメージを受けたか否かや、ゲーム開始から所定時間が経過したか否か等に基づいて行われる。ステップS9の判定結果が否定の場合、ステップS1の処理が再度実行される。以降、ステップ9の判定結果が肯定となるまでステップS1〜S9の処理が繰り返される。一方、ステップS9の判定結果が肯定の場合、CPU10は図16に示すゲーム処理を終了する。
【0155】
以上に示したゲーム処理においては、プレイヤは、メインコントローラ5aおよびサブコントローラ5bのそれぞれに対して上記左右回転操作および前後回転操作を行うことによってゲーム操作を行う。すなわち、メインコントローラ5aに対して左右回転操作および/または前後回転操作が行われた場合、上記第2移動処理(ステップS14)によって右手オブジェクト61の位置および姿勢が変化される(ステップS31およびS32)。また、サブコントローラ5bに対して左右回転操作および/または前後回転操作が行われた場合、上記第2移動処理(ステップS14)によって左手オブジェクト62の位置および姿勢が変化される(ステップS33およびS34)。さらに、メインコントローラ5aおよびサブコントローラ5bのそれぞれに対して左右回転操作および/または前後回転操作が行われた場合、上記第1移動処理(ステップS13)によって胴体オブジェクト63の位置が変化される(ステップS26およびS27)。このように、本実施形態においては、2つの入力装置(コントローラ5aおよび5b)を用いて、3つのオブジェクト61〜63を操作することができる。つまり、本実施形態によれば、2つの入力装置という簡易な構成で3つの対象を操作することが可能となる。
【0156】
さらに、本実施形態によれば、胴体オブジェクト63の動作の制御には、類似度が反映される。具体的には、類似度が大きいほど胴体オブジェクト63の移動量が大きくなるように制御される(ステップS25)。これによれば、2つのコントローラ5aおよび5bを同じように傾けた場合、胴体オブジェクト63は大きく移動し、2つのコントローラ5aおよび5bの傾き(姿勢)が異なる場合、胴体オブジェクト63の移動は小さくなる。したがって、プレイヤが胴体オブジェクト63を移動させることを意図して、2つのコントローラ5aおよび5bに対して同じ操作を行う場合には、類似度が大きくなるため、胴体オブジェクト63が大きく移動する。一方、プレイヤが胴体オブジェクト63を移動させることを意図しない場合には、類似度が小さくなるため、胴体オブジェクト63はほとんど移動しない。例えば、2つのコントローラ5aおよび5bのいずれか一方のみに対して操作を行った場合や、2つのコントローラ5aおよび5bのそれぞれに対して異なる操作を行った場合(例えば、一方のコントローラに対して左右回転操作を行い、他方のコントローラに対して前後回転操作を行った場合)には、胴体オブジェクト63はほとんど移動しない。以上のように、本実施形態によれば、2つのコントローラ5aおよび5bを用いる第3操作に関して類似度を用いることにより、第3操作と、1つのコントローラを用いる第1または第2操作とを明確に区別することができる。これによって、3つの操作をそれぞれ独立して行うことができるようになるので、3つの操作対象の操作が容易になる。
【0157】
また、本実施形態によれば、メインコントローラ5aまたはサブコントローラ5bを用いてパンチ操作が行われたか否かが判定される(ステップS3,S5)。そして、パンチ操作が行われる場合(ステップS3またはS5の判定結果が肯定の場合)、オブジェクト移動処理(ステップS7)は実行されない。パンチ操作が行われている間は、コントローラが急激に移動させられているため、コントローラの姿勢を正しく算出することができない可能性が高い。コントローラの姿勢を正しく算出することができなければ、プレイヤの意図しない操作が行われてしまう。そのため、本実施形態では、パンチ操作が行われる間はオブジェクト移動処理を実行しないことによって、コントローラの姿勢が不正確に算出されないようにする。これによって、プレイヤの意図しない操作が行われることを防止することができる。また、パンチ操作とオブジェクトを移動させる操作とを明確に区別することができる。
【0158】
なお、上記実施形態においては、ボクシングゲームを例として説明したが、本発明は、他の種類のゲームにも適用可能である。例えば、剣と盾を持ったオブジェクトを操作するゲームに本発明を適用することも可能である。具体的には、剣を持った右手と盾を持った左手と胴体とを、メインコントローラ5aおよびサブコントローラ5bを用いて操作するゲームに適用することで、上記実施形態と同様の効果を得ることができる。また、本発明は、例えばレースゲームのように、車を操作するゲームにも適用することができる。具体的には、メインコントローラ5aおよびサブコントローラ5bを用いて上記第3操作と同様の操作を行うことによって車のハンドルの向きを制御するとともに、メインコントローラ5aおよびサブコントローラ5bのいずれかを用いて上記パンチ操作と同様の操作を行うことによってシフトチェンジを行うようにしてもよい。
【0159】
また、上記実施形態においては、加速度センサを用いてコントローラの姿勢を算出し、コントローラの姿勢に基づいてゲーム処理を行った。また、2つのコントローラの姿勢に関する類似度を算出した。ここで、他の実施形態においては、単位時間(例えば、1フレーム時間)当たりの姿勢の変化量を算出し、当該姿勢の変化量に関する類似度を算出してもよい。姿勢の変化量は、X軸まわりの傾き(姿勢)に関する変化量とY軸まわりの傾き(姿勢)に関する変化量とを別個に算出してもよいし、X軸まわりの傾きとY軸まわりの傾きとをまとめた変化量を算出してもよい。前者の場合、例えばX軸まわりの傾きの変化量は、図16に示すステップS1で取得された加速度ベクトルのY成分と、その次に実行されるステップS1で取得された加速度ベクトルのY成分との差分として表すことができる。また、後者の場合、図16に示すステップS1で取得された加速度ベクトルのXY成分と、次に実行されるステップS1で取得された加速度ベクトルのXY成分との差分として表すことができる。この差分は、2つのベクトルの差分として表されてもよいし、2つのベクトルの角度差として表されてもよい。また、類似度は、以上のようにして2つのコントローラについてそれぞれ算出される変化量の差分値に基づいて算出される。具体的には、類似度は、当該差分値が小さいほど大きく(高く)なるように算出される。
【0160】
また、他の実施形態においては、姿勢に代えてコントローラの動きを算出し、コントローラの動きに基づいてゲーム処理を行うようにしてもよい。さらに、このとき、2つのコントローラの動きに関する類似度を算出するようにしてもよい。具体的には、加速度センサを用いてコントローラが動かされる方向(コントローラの振り方向)を算出することが可能である。なお、コントローラの動きは、例えば、上記加速度ベクトルの単位時間当たりの変化量によって表すことも可能である。例えば、上記実施形態のようなボクシングゲームにおいては、メインコントローラ5aが動かされた方向に応じた方向に右手オブジェクト61にパンチ動作を行わせ、サブコントローラ5bが動かされた方向に応じた方向に左手オブジェクト62にパンチ動作を行わせるようにしてもよい。また、メインコントローラ5aおよびサブコントローラ5bが動かされた方向に応じた方向に胴体オブジェクト63を移動させるようにしてもよい。さらに、上記実施形態と同様、類似度を反映させて胴体オブジェクト63の移動量を決定するようにしてもよい。なお、この類似度は、メインコントローラ5aの動き方向を示すベクトルと、サブコントローラ5bの動き方向を示すベクトルとの差分、または、メインコントローラ5aの動き方向と、サブコントローラ5bの動き方向との角度差に応じて算出することが考えられる。具体的には、当該角度差が小さいほど類似度が大きく(高く)なるように類似度を算出してもよい。
【産業上の利用可能性】
【0161】
以上のように、本発明は、簡易な構成で複数の対象を操作すること等を目的として、例えばゲーム装置やゲームプログラムとして利用することが可能である。
【符号の説明】
【0162】
1 ゲームシステム
2 テレビ
3 ゲーム装置
4 光ディスク
5a メインコントローラ
5b サブコントローラ
10 CPU
13 メインメモリ
61 右手オブジェクト
62 左手オブジェクト
63 胴体オブジェクト

【特許請求の範囲】
【請求項1】
第1入力装置の姿勢または動きに応じた値を示す第1データを出力する第1センサと第2入力装置の姿勢または動きに応じた値を示す第2データを出力する第2センサとから出力されるデータを用いてゲーム処理を実行するゲーム装置のコンピュータで実行されるゲームプログラムであって、
前記第1データおよび前記第2データを取得する取得ステップと、
前記第1入力装置の姿勢または動きに関する状態と前記第2入力装置の姿勢または動きに関する状態との類似度を前記第1データおよび第2データに基づいて算出する類似度算出ステップと、
前記ゲーム処理に用いられるゲームパラメータの値を変化させる変化量を、前記類似度が大きいほど当該変化量が大きくなるように、前記第1データおよび前記第2データの少なくとも一方に基づいて算出する変化量算出ステップと、を前記コンピュータに実行させるゲームプログラム。
【請求項2】
前記変化量算出ステップにおいて、前記コンピュータは、ゲーム空間に登場する第1オブジェクトを当該ゲーム空間において移動させる移動量を、前記類似度が大きいほど当該移動量が大きくなるように算出する、請求項1に記載のゲームプログラム。
【請求項3】
前記ゲーム空間に登場する第2オブジェクトを前記第1データに基づいて移動させるとともに、前記ゲーム空間に登場する第3オブジェクトを前記第2データに基づいて移動させる、オブジェクト移動ステップを前記コンピュータにさらに実行させる、請求項2に記載のゲームプログラム。
【請求項4】
前記第1オブジェクトは、人型キャラクタの胴体または頭部を表すオブジェクトであり、
前記第2オブジェクトおよび第3オブジェクトは、一方が前記人型キャラクタの右手を表すオブジェクトであり、他方が左手を表すオブジェクトである、請求項3に記載のゲームプログラム。
【請求項5】
前記第1センサは、加速度センサであり、加速度を示すデータを前記第1データとして出力し、
前記第2センサは、加速度センサであり、加速度を示すデータを前記第2データとして出力する、請求項1に記載のゲームプログラム。
【請求項6】
前記ゲームプログラムは、
前記第1入力装置の姿勢または位置に関して所定度合い以上の急激な変化を与える操作が当該第1入力装置に対して行われたか否かを前記第1データに基づいて判定する第1判定ステップと、
前記第2入力装置の姿勢または位置に関して所定度合い以上の急激な変化を与える操作が当該第2入力装置に対して行われたか否かを前記第2データに基づいて判定する第2判定ステップとを前記コンピュータにさらに実行させ、
前記類似度算出ステップにおいて、前記コンピュータは、前記第1判定ステップにおける判定結果および第2判定ステップにおける判定結果の両方が否定である場合のみ、前記第1入力装置の姿勢と前記第2入力装置の姿勢との類似度を算出する、請求項5に記載のゲームプログラム。
【請求項7】
前記ゲームプログラムは、前記第1判定ステップにおける判定結果および第2判定ステップにおける判定結果の少なくとも一方が肯定である場合のみ、前記第1オブジェクトまたは他のオブジェクトに所定の動作を行わせる動作制御ステップを前記コンピュータにさらに実行させ、
前記変化量算出ステップにおいて、前記コンピュータは、前記第1判定ステップにおける判定結果および第2判定ステップにおける判定結果の両方が否定である場合のみ、ゲーム空間に登場する第1オブジェクトを当該ゲーム空間において移動させる移動量を前記変化量として算出する、請求項6に記載のゲームプログラム。
【請求項8】
第1入力装置の姿勢または動きに応じた値を示す第1データを出力する第1センサと第2入力装置の姿勢または動きに応じた値を示す第2データを出力する第2センサとから出力されるデータを用いてゲーム処理を実行するゲーム装置のコンピュータで実行されるゲームプログラムであって、
前記第1データと前記第2データを取得する取得ステップと、
前記第1入力装置の姿勢または動きに関する状態と前記第2入力装置の姿勢または動きに関する状態との類似度を前記第1データおよび第2データに基づいて算出する類似度算出ステップと、
前記第1データまたは前記第2データに基づいて第1ゲーム処理を実行する第1ゲーム処理ステップと、
前記類似度の値が所定値よりも大きい場合のみ、前記第1データおよび前記第2データに基づいて第2ゲーム処理を実行する第2ゲーム処理ステップと、を前記コンピュータに実行させるゲームプログラム。
【請求項9】
前記第2ゲーム処理ステップにおいて、前記コンピュータは、前記ゲーム処理に用いられるゲームパラメータの値を変化させる変化量を、前記類似度が大きいほど当該変化量が大きくなるように、前記第1データおよび前記第2データの少なくとも一方に基づいて算出する処理を前記第2ゲーム処理として実行する、請求項8に記載のゲームプログラム。
【請求項10】
前記第1センサは、加速度センサであり、加速度を示すデータを前記第1データとして出力し、
前記第2センサは、加速度センサであり、加速度を示すデータを前記第2データとして出力する、請求項8に記載のゲームプログラム。
【請求項11】
前記第1データは、前記第1入力装置を基準とした所定の1軸方向に関する加速度値を示し、
前記第2データは、前記第2入力装置を基準とした所定の1軸方向に関する加速度値を示し、
前記類似度算出ステップにおいて、前記コンピュータは、前記第1データの値と前記第2データの値との差分に基づいて前記類似度を算出する、請求項5、請求項10のいずれかに記載のゲームプログラム。
【請求項12】
前記類似度算出ステップで算出される類似度は、前記差分が小さいほど高い値となる、請求項11に記載のゲームプログラム。
【請求項13】
前記第1データは、前記第1入力装置を基準とした所定の複数軸方向に関する加速度値を各成分とするベクトルを示し、
前記第2データは、前記第2入力装置を基準とした所定の複数軸方向に関する加速度値を各成分とするベクトルを示し、
前記類似度算出ステップにおいて、前記コンピュータは、前記第1データにより示されるベクトルと前記第2データにより示されるベクトルとの差分に基づいて前記類似度を算出する、請求項5、請求項10のいずれかに記載のゲームプログラム。
【請求項14】
前記類似度算出ステップで算出される類似度は、前記ベクトルの差分が小さいほど高い値となる、請求項13に記載のゲームプログラム。
【請求項15】
前記第1データは、前記第1入力装置を基準とした所定の複数軸方向に関する加速度値を各成分とするベクトルを示し、
前記第2データは、前記第2入力装置を基準とした所定の複数軸方向に関する加速度値を各成分とするベクトルを示し、
前記類似度算出ステップにおいて、前記コンピュータは、前記第1データにより示されるベクトルの所定時間当たりの変化量を表すベクトルと、前記第2データにより示されるベクトルの所定時間当たりの変化量を表すベクトルとの差分に基づいて前記類似度を算出する、請求項5、請求項10のいずれかに記載のゲームプログラム。
【請求項16】
前記類似度算出ステップで算出される類似度は、前記ベクトルの差分が小さいほど高い値となる、請求項15に記載のゲームプログラム。
【請求項17】
前記第1データは、前記第1入力装置を基準とした所定の複数軸方向に関する加速度値を各成分とするベクトルを示し、
前記第2データは、前記第2入力装置を基準とした所定の複数軸方向に関する加速度値を各成分とするベクトルを示し、
前記類似度算出ステップにおいて、前記コンピュータは、前記第1データにより示されるベクトルの所定時間当たりの変化量を表すベクトルと、前記第2データにより示されるベクトルの所定時間当たりの変化量を表すベクトルとの角度差に基づいて前記類似度を算出する、請求項5、請求項10のいずれかに記載のゲームプログラム。
【請求項18】
前記類似度算出ステップで算出される類似度は、前記ベクトルの角度差が小さいほど高い値となる、請求項17に記載のゲームプログラム。
【請求項19】
前記第1データは、前記第1入力装置を基準とした所定の複数軸方向に関する加速度値を各成分とするベクトルを示し、
前記第2データは、前記第2入力装置を基準とした所定の複数軸方向に関する加速度値を各成分とするベクトルを示し、
前記類似度算出ステップにおいて、前記コンピュータは、前記第1データにより示されるベクトルと前記第2データにより示されるベクトルとの角度差に基づいて前記類似度を算出する、請求項5、請求項10のいずれかに記載のゲームプログラム。
【請求項20】
前記類似度算出ステップで算出される類似度は、前記ベクトルの角度差が小さいほど高い値となる、請求項19に記載のゲームプログラム。
【請求項21】
前記第1センサは、前記第1入力装置の姿勢を示すベクトルデータを前記第1データとして出力し、
前記第2センサは、前記第2入力装置の姿勢を示すベクトルデータを前記第2データとして出力し、
前記類似度算出ステップにおいて、前記コンピュータは、前記第1入力装置の姿勢と前記第2入力装置の姿勢との類似度を算出する、請求項1、請求項8のいずれかに記載のゲームプログラム。
【請求項22】
第1入力装置の姿勢または動きに応じた値を示す第1データを出力する第1センサと第2入力装置の姿勢または動きに応じた値を示す第2データを出力する第2センサとから出力されるデータを用いてゲーム処理を実行するゲーム装置であって、
前記第1データを前記第1センサから取得し、前記第2データを前記第2センサから取得するデータ取得部と、
前記第1入力装置の姿勢または動きに関する状態と前記第2入力装置の姿勢または動きに関する状態との類似度を前記第1データおよび第2データに基づいて算出する類似度算出部と、
前記ゲーム処理に用いられるゲームパラメータの値を変化させる変化量を、前記類似度が大きいほど当該変化量が大きくなるように、前記第1データおよび前記第2データの少なくとも一方に基づいて算出する変化量算出部とを備える、ゲーム装置。
【請求項23】
第1入力装置の姿勢または動きに応じた値を示す第1データを出力する第1センサと第2入力装置の姿勢または動きに応じた値を示す第2データを出力する第2センサとから出力されるデータを用いてゲーム処理を実行するゲーム装置であって、
前記第1データを前記第1センサから取得し、前記第2データを前記第2センサから取得するデータ取得部と、
前記第1入力装置の姿勢または動きに関する状態と前記第2入力装置の姿勢または動きに関する状態との類似度を前記第1データおよび第2データに基づいて算出する類似度算出部と、
前記第1データまたは前記第2データに基づいて第1ゲーム処理を実行する第1ゲーム処理部と、
前記類似度の値が所定値よりも大きい場合のみ、前記第1データおよび前記第2データに基づいて第2ゲーム処理を実行する第2ゲーム処理部とを備える、ゲーム装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5A】
image rotate

【図5B】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate


【公開番号】特開2013−13739(P2013−13739A)
【公開日】平成25年1月24日(2013.1.24)
【国際特許分類】
【出願番号】特願2012−182538(P2012−182538)
【出願日】平成24年8月21日(2012.8.21)
【分割の表示】特願2006−248721(P2006−248721)の分割
【原出願日】平成18年9月13日(2006.9.13)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】