JP2014000444A - ゲームプログラム及びゲーム装置 - Google Patents
ゲームプログラム及びゲーム装置 Download PDFInfo
- Publication number
- JP2014000444A JP2014000444A JP2013174604A JP2013174604A JP2014000444A JP 2014000444 A JP2014000444 A JP 2014000444A JP 2013174604 A JP2013174604 A JP 2013174604A JP 2013174604 A JP2013174604 A JP 2013174604A JP 2014000444 A JP2014000444 A JP 2014000444A
- Authority
- JP
- Japan
- Prior art keywords
- movement
- housing
- game
- sensor
- output
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000033001 locomotion Effects 0.000 claims abstract description 495
- 230000001133 acceleration Effects 0.000 claims abstract description 287
- 238000001514 detection method Methods 0.000 claims description 342
- 239000013598 vector Substances 0.000 claims description 312
- 238000000034 method Methods 0.000 claims description 235
- 230000008569 process Effects 0.000 claims description 198
- 238000012545 processing Methods 0.000 claims description 95
- 238000004364 calculation method Methods 0.000 claims description 25
- 230000009471 action Effects 0.000 claims description 23
- 230000004044 response Effects 0.000 claims description 4
- 238000005070 sampling Methods 0.000 description 34
- 238000004891 communication Methods 0.000 description 21
- 238000003384 imaging method Methods 0.000 description 20
- 230000005540 biological transmission Effects 0.000 description 19
- 230000008859 change Effects 0.000 description 15
- 230000006870 function Effects 0.000 description 14
- 230000007935 neutral effect Effects 0.000 description 13
- 230000005484 gravity Effects 0.000 description 11
- 239000011159 matrix material Substances 0.000 description 10
- 230000004048 modification Effects 0.000 description 10
- 238000012986 modification Methods 0.000 description 10
- 230000003287 optical effect Effects 0.000 description 9
- 230000000694 effects Effects 0.000 description 7
- 239000000758 substrate Substances 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000003247 decreasing effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000012935 Averaging Methods 0.000 description 4
- 230000007704 transition Effects 0.000 description 4
- 241000086550 Dinosauria Species 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 125000002066 L-histidyl group Chemical group [H]N1C([H])=NC(C([H])([H])[C@](C(=O)[*])([H])N([H])[H])=C1[H] 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 238000010137 moulding (plastic) Methods 0.000 description 2
- 238000003825 pressing Methods 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004377 microelectronic Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Abstract
するゲーム装置において、プレイ中の動きの自由度が高くダイナミックなプレイを可能と
し、さらに直感的な動作入力を可能とすること。
【解決手段】コントローラの第1ユニットに設けられた第1加速度センサの出力に基づい
て第1ユニットの傾きを検出し、第1ユニットとは独立した第2ユニットに設けられた第
2加速度センサの出力に基づいて第2ユニットの傾きを検出する。そして、検出された第
1ユニットの傾きと第2ユニットの傾きの差分を検出し、検出された差分を用いてゲーム
制御を行う。
【選択図】図9
Description
ってゲーム制御を行うゲームプログラム及びゲーム装置に関する。
したり、直線と回転を計測する)を設けることが開示されている。
特許文献2には、2つの加速度センサでそれぞれ異なるゲーム入力を行う技術が開示さ
れている。
特許文献3には、コントローラとして2つのレバーを用いる技術が開示されている。
特許文献4には、ニュートラルポジションの設定に関する技術が開示されている。
イヤの動きの自由度が少ない(ダイナミックなプレイができない)という問題がある。
また、特許文献2の技術だと、2つの加速度センサによる入力が独立した入力としてゲ
ームで利用されるだけであり、興趣性のある操作感は得られない。
また、特許文献3の技術だと、ゲームプレイ中のプレイヤの動きの自由度が少ないとい
う問題がある。
また、特許文献4の技術だと、1つのセンサに関するものであり、複数のセンサを備え
たシステムにおけるニュートラルポジションの設定について開示するものではない。
また、これらの技術はいずれも、センサによる複数の方向の動きの検出を有効に利用し
たものではない。
本発明は、上記のうちの少なくともいずれか1つを課題とする。
(1)複数の加速度センサ、または動きまたは姿勢を検出可能な複数のセンサによってゲ
ーム制御を行う際に、ゲームプレイ中のプレイヤの動きの自由度が高く、ダイナミックな
入力操作を可能とするゲームプログラム及びゲーム装置を提供すること
(2)複数のセンサによってゲーム制御を行なう場合のニュートラルポジションを適切に
設定することを可能にするゲームプログラム及びゲーム装置を提供すること
(3)動きを検出可能なセンサによる複数の方向の動きの検出を有効に利用したゲームプ
ログラム及びゲーム装置を提供すること
は本発明の理解を助けるために図面との対応関係の一例を示したものであって、本発明の
範囲を何ら限定するものではない。
第1ハウジング(71)に設けられた加速度センサまたはジャイロセンサである第1セ
ンサ(701)と、前記第1ハウジングとは独立した第2ハウジング(77)に設けられ
た加速度センサまたはジャイロセンサである第2センサ(761)の出力を利用してゲー
ム制御を行うためのゲームプログラムであって、ゲーム装置(3)のコンピュータ(30
)を、
前記第1センサの出力に基づいて前記第1ハウジングの姿勢を検出する第1姿勢検出手
段(S104)、
前記第2センサの出力に基づいて前記第2ハウジングの姿勢を検出する第2姿勢検出手
段(S108)、
前記第1姿勢検出手段によって検出された前記第1ハウジングの姿勢と、前記第2姿勢
検出手段によって検出された前記第2ハウジングの姿勢の差分を検出する姿勢差分検出手
段(S116)、および
前記姿勢差分検出手段によって検出された差分を用いてゲーム制御を行うゲーム制御手
段(S118)として機能させるためのゲームプログラムである。
、プレイ中の動きの自由度が高くダイナミックなプレイを許容する。また、姿勢の差分に
より制御するので、直感的な動作入力を許容する。
ウジングの姿勢と、前記第2姿勢検出手段によって検出された前記第2ハウジングの姿勢
の平均を検出する姿勢平均検出手段(S124)として前記コンピュータをさらに機能さ
せ、
前記ゲーム制御手段は、前記姿勢差分検出手段によって検出された差分および前記姿勢
平均検出手段によって検出された前記平均の両方を用いてゲーム制御を行ってもよい(S
126)。
当該ゲームオブジェクトの第2動作を制御してもよい。「姿勢の差分」とは、例えば、所
定の軸についての回転角度の差分であってもよいし、各軸についての回転角度の差分であ
ってもよい。
ゲームオブジェクトの第1動作を制御する第1動作制御手段(S118)を含み、
前記ゲームプログラムは、前記第1ハウジングまたは前記第2ハウジングに設けられた
スイッチの出力に基づいて前記ゲームオブジェクトの第2動作を制御する第2動作制御手
段(S164)として前記コンピュータをさらに機能させてもよい。
前記第1姿勢検出手段および第2姿勢検出手段は、前記第1ハウジングおよび第2ハウ
ジングの傾きを検出するものであり、
前記第1姿勢検出手段は、前記第1センサの出力に基づいて、前記第1ハウジングが静
止しているかどうかを判断する第1ハウジング状態判断手段(S156)を含み、
前記第1姿勢検出手段は、前記第1ハウジング状態判断手段によって前記第1ハウジン
グが静止していると判断された場合に、前記第1センサの出力に基づいて検出される前記
第1ハウジングの傾きを、有効な検出結果として出力し(S158)、
前記第2姿勢検出手段は、前記第2センサの出力に基づいて、前記第2ハウジングが静
止しているかどうかを判断する第2ハウジング状態判断手段(S156)を含み、
前記第2姿勢検出手段は、前記第2ハウジング状態判断手段によって前記第2ハウジン
グが静止していると判断された場合に、前記第2センサの出力に基づいて検出される前記
第2ハウジングの傾きを、有効な検出結果として出力してもよい(S158)。
当該加速度センサが重力のみを検出する場合の出力ベクトルの大きさとほぼ一致する(あ
る程度余裕をみてもよい)場合に、静止していると判断する。
ジングが静止していると判断され、かつ、前記第2ハウジング状態判断手段によって前記
第2ハウジングが静止していると判断されたときのみ、前記姿勢差分検出手段によって検
出された差分を用いてゲーム制御を行ってもよい。
第1ハウジング(71)に設けられた加速度センサまたはジャイロセンサである第1セ
ンサ(701)と、前記第1ハウジングとは独立した第2ハウジング(77)に設けられ
た加速度センサまたはジャイロセンサである第2センサ(761)の出力を利用してゲー
ム処理を行うためのゲームプログラムであって、ゲーム装置(3)のコンピュータ(30
)を、
前記第1センサの出力に基づいて、ゲーム制御用ベクトルの方向を決定する方向決定手
段(S410)、
前記第2センサの出力に基づいて、前記ゲーム制御用ベクトルの大きさを決定する大き
さ決定手段(S414)、および
前記ベクトル方向決定手段および前記ベクトル大きさ決定手段によって決定された前記
ゲーム制御用ベクトルを用いてゲーム制御を行うゲーム制御手段(S418)として機能
させるためのゲームプログラムである。
の動きの自由度が高くダイナミックなプレイを許容する。
第1ハウジング(71)に設けられた動きを検出可能な第1センサ(701)と、前記
第1ハウジングとは独立した第2ハウジング(77)に設けられた動きを検出可能な第2
センサ(761)の出力を利用してゲーム処理を行うためのゲームプログラムであって、
ゲーム装置(3)のコンピュータ(30)を、
前記第1センサの出力に基づいて前記第1ハウジングの動きを検出する第1動き操作検
出手段(S236)、
前記第2センサの出力に基づいて前記第2ハウジングの動きを検出する第2動き操作検
出手段(S250)、
前記第1動き操作検出手段および前記第2動き操作検出手段の検出結果に基づいて、前
記第1ハウジングの動き検出に関連して決定されるタイミングから同時入力受付時間以内
に前記第2ハウジングの動き検出があったかどうかを検出する同時入力検出手段(S25
4)、および
前記第1ハウジングの動き検出があってから同時入力受付時間以内に前記第2ハウジン
グの動き検出があったことを前記同時入力検出手段が検出したときに第1ゲーム処理を実
行するゲーム制御手段(S256)として機能させるためのゲームプログラムである。
作のタイミング差を許容する)。
グからの所定時間であって、一定時間であってもよいし、ゲーム状況やレベルなどに応じ
て変化してもよい。「動き検出に関連して決定されるタイミング」とは、動き検出の対象
となった動き入力における所定のタイミングであり、例えば、当該動き検出があった時点
や、当該動き検出に係る動きにおける所定時点(例えば、当該動きの開始点や終了点や所
定の中間点など)が挙げられる。
さらに、同時入力検出手段が、第1動き操作検出手段および第2動き操作検出手段の検
出結果に基づいて、第2ハウジングの動き検出があってから同時入力受付時間以内に第1
ハウジングの動き検出があったかどうかを検出し、第2ハウジングの動き検出があってか
ら同時入力受付時間以内に第1ハウジングの動き検出があったことを同時入力検出手段が
検出したときに第1ゲーム処理を実行するようにしてもよい。
の動き検出があってから、同時入力受付時間以内に前記第2ハウジングの動き検出があっ
たことが前記同時入力検出手段によって検出されなかった場合には、前記第1ゲーム処理
とは異なる第2ゲーム処理を実行してもよい(S216)。
ができる。
き検出があってから、同時入力受付時間以内に第1ハウジングの動き検出があったことが
同時入力検出手段によって検出されなかった場合には、第1ゲーム処理および第2ゲーム
処理とは異なる第3ゲーム処理を実行してもよい。
出があったことが前記同時入力検出手段によって検出されたときには、前記第1ゲーム処
理を実行し、前記同時入力受付時間内に前記第2ハウジングの動き検出があったことが前
記同時入力検出手段によって検出されることなく前記同時入力受付時間が経過した時点で
、前記第2ゲーム処理を実行してもよい。
れるタイミングから受付禁止時間が経過するまでは、当該第1ハウジングの動き検出を新
たに検出せず、
前記第2動き操作検出手段は、前記第2ハウジングの動き検出があったことを検出して
から受付禁止時間が経過するまでは、当該第2ハウジングの動き検出を新たに検出しない
ようにしてもよい。
できる。
所定時間であり、一定時間であってもよいし、ゲーム状況やレベルなどに応じて変化して
もよい。
てから所定時間以内に他方の動き検出があったことを前記同時入力検出手段による同時入
力検出に関連して決定されるタイミングから同時入力後受付禁止時間が経過するまでは、
前記第1動き操作検出手段および前記第2動き操作検出手段は、前記第1ハウジングおよ
び前記第2ハウジングの動き検出を新たに検出しないようにしてもよい。
ングをあわせる
定されるタイミングからの所定時間であり、一定時間であってもよいし、ゲーム状況やレ
ベルなどに応じて変化してもよい。また、受付禁止時間と同一時間であってもよいし、そ
れより長い時間であってもよい。「同時入力検出に関連して決定されるタイミング」とは
、同時入力検出の対象となった入力における所定タイミングであり、例えば、当該同時入
力検出があった時点や、当該同時入力検出に係る入力における所定時点(例えば、当該同
時入力の開始点や終了点や所定の中間点など)が挙げられる。
第1ハウジング(71)に設けられた動きを検出可能な第1センサ(701)と、前記
第1ハウジングとは独立した第2ハウジング(77)に設けられた動きを検出可能な第2
センサ(761)の出力を利用してゲーム処理を行うためのゲームプログラムであって、
ゲーム装置(3)のコンピュータ(30)を、
前記第1センサの出力に基づいて前記第1ハウジングの動きおよびその強さを検出する
第1動き検出手段(S236)、
前記第2センサの出力に基づいて前記第2ハウジングの動きおよびその強さを検出する
第2動き検出手段(S250)、
前記第1動き検出手段および前記第2動き検出手段の検出結果に基づいて、前記第1ハ
ウジングの動き検出に関連して決定されるタイミングから同時入力受付時間以内に前記第
2ハウジングの動き検出があったかどうかを検出する同時入力検出手段(S254)、お
よび
前記第1ハウジングの動き検出に関連して決定されるタイミングから同時入力受付時間
以内に前記第2ハウジングの動き検出があったことを前記同時入力検出手段が検出したと
きに、前記第1動き検出手段によって検出された前記第1ハウジングの動きの強さと、前
記第2動き検出手段によって検出された前記第2ハウジングの動きの強さを利用して第1
ゲーム処理を実行するゲーム制御手段(S256)として機能させるためのゲームプログ
ラムである。
とができる(同時の動き操作のタイミング差を許容する)。
結果に基づいて、第2ハウジングの動き検出に関連して決定されるタイミングから同時入
力受付時間以内に第1ハウジングの動き検出があったかどうかを検出し、第2ハウジング
の動き検出に関連して決定されるタイミングから同時入力受付時間以内に第1ハウジング
の動き検出があったことを同時入力検出手段が検出したときに、第1動き検出手段によっ
て検出された第1ハウジングの動きの強さと、第2動き検出手段によって検出された第2
ハウジングの動きの強さを利用して第1ゲーム処理を実行するようにしてもよい。
第1ハウジング(71)に設けられた動きを検出可能な第1センサ(701)と、前記
第1ハウジングとは独立した第2ハウジング(77)に設けられた動きを検出可能な第2
センサ(761)の出力を利用してゲーム処理を行うためのゲームプログラムであって、
ゲーム装置(3)のコンピュータ(30)を、
前記第1センサの出力に基づいて前記第1ハウジングの動きを検出する第1動き操作検
出手段(S302)、
前記第2センサの出力に基づいて前記第2ハウジングの動きを検出する第2動き操作検
出手段(S318)、
前記第1動き操作検出手段および前記第2動き操作検出手段の検出結果に基づいて、前
記第1ハウジングの動き操作が行われたときに、当該動き操作から過去一定時間以内に前
記第2ハウジングの動き操作が行われていたかどうかを検出する同時入力検出手段(S3
12)、および
(a)前記第1ハウジングの動き操作が行われたときに、当該動き操作から過去一定時
間以内に前記第2ハウジングの動き操作が行われていたことが前記同時入力検出手段によ
って検出された場合にはゲームオブジェクトに第1動作を行わせ、(b)前記第1ハウジ
ングの動き操作が行われたときに、当該動き操作から過去一定時間以内に前記第2ハウジ
ングの動き操作が行われていたことが前記同時入力検出手段によって検出されなかった場
合には前記ゲームオブジェクトに前記第1動作とは異なる第2動作を行わせるゲーム制御
手段(S314、S316)として機能させるためのゲームプログラムである。
の動き操作のタイミング差を許容する)。
結果に基づいて、第2ハウジングの動き操作が行われたときに、当該動き操作から過去一
定時間以内に第1ハウジングの動き操作が行われていたかどうかを検出し、検出された場
合に第1動作を行なわせ、検出されなかった場合に第3動作を行わせるようにしてもよい
。また、第1動き操作検出手段または第2動き操作検出手段によって第1ハウジングまた
は第2ハウジングの動きが検出されるごとに、同時入力検出手段による検出をおこなって
、第1動作または第2動作もしくは第3動作をおこなわせるようにしてもよい。
第1ハウジング(71)に設けられた傾きを検出可能な第1センサ(701)と、前記
第1ハウジングとは独立した第2ハウジング(77)に設けられた傾きを検出可能な第2
センサ(761)の出力を利用してゲーム制御を行うためのゲームプログラムであって、
ゲーム装置(3)のコンピュータ(30)を、
プレイヤからの基準値設定指示を検出する基準値設定指示検出手段(S134)、
前記基準値設定指示検出手段によって基準値設定指示が検出されたときに、前記第1戦
差の出力値および/または前記第2センサの出力値に基づいて、第1基準値および第2基
準値を設定する基準値設定手段(S146)、
前記第1センサの出力および前記第1基準値に基いて前記第1ハウジングの姿勢を検出
する第1姿勢検出手段(S104、S112)、
前記第2センサの出力および前記第2基準値に基いて前記第2ハウジングの姿勢を検出
する第2姿勢検出手段(S108、S114)、
前記第1姿勢検出手段による第1ハウジングの姿勢と、前記第2姿勢検出手段による第
2ハウジングの姿勢の差分を検出する姿勢差分検出手段(S116)、および
前記姿勢差分検出手段によって検出された差分を用いてゲーム制御を行うゲーム制御手
段(S118)として機能させるためのゲームプログラムである。
できる。
出力地から傾き値を演算した結果を基準値として設定してもよい。第1基準値と第2基準
値が同一値の場合には、1つのデータを記憶するのみでもよい。
設定指示が検出されたことに応じて、同一タイミングで、前記第1基準値および前記第2
基準値を一度に設定してもよい。
検出されたときに、前記第1センサの出力値と、前記第2センサの出力値とに基く所定の
演算をした値を、前記第1基準値および前記第2基準値として共通に設定してもよい。
状、操作部の有無、左手用か右手用かなどに応じて重み付けをしてもよい。
検出されたときに、前記第1センサまたは前記第2センサのいずれか一方の出力値に基く
値を、前記第1基準値および前記第2基準値として共通に設定してもよい。
準値設定指示を入力するためのスイッチが設けられており、
前記基準値設定手段は、前記基準値設定指示検出手段によって基準値設定指示が検出さ
れたときに、前記第1ハウジングおよび前記第2ハウジングのうち、当該基準値設定指示
の入力に用いられたスイッチが設けられてない方のハウジングに設けられたセンサの検出
値に基いて、前記第1基準値および前記第2基準値を共通に設定してもよい。
検出されたときに、前記第1センサの出力値と前記第2センサの出力値に基づいて前記第
1ハウジングと前記第2ハウジングの傾きの差分が一定範囲内か否かを判断する基準値設
定時差分検出手段(S148)を含み、
前記基準値設定手段は、(a)前記基準値設定時差分検出手段によって一定範囲内であ
ると判断された場合には、前記第1センサの出力値および前記第2センサの出力値に基い
て、第1基準値および第2基準値をそれぞれ設定し、(b)前記基準値設定時差分検出手
段によって一定範囲内でないと判断された場合にはエラー処理を行ってもよい。
第1ハウジング(71)に設けられた加速度センサまたはジャイロセンサである第1セ
ンサ(701)と、前記第1ハウジングとは独立した第2ハウジング(77)に設けられ
た加速度センサまたはジャイロセンサである第2センサ(761)の出力を利用してゲー
ム制御を行うためのゲームプログラムであって、ゲーム装置(3)のコンピュータ(30
)を、
前記第1センサの出力に基づいてゲームオブジェクトの姿勢を制御する姿勢制御手段(
S410)、および
前記第2センサの出力に基づいて前記ゲームオブジェクトの移動を制御する移動制御手
段(S416)として機能させるためのゲームプログラムである。
第1ハウジング(71)に設けられた少なくとも2軸方向の動きを検出可能な第1セン
サ(701)と、前記第1ハウジングとは独立した第2ハウジング(77)に設けられた
少なくとも2軸方向の動きを検出可能な第2センサ(761)の出力を利用してゲーム制
御を行うためのゲームプログラムであって、ゲーム装置(3)のコンピュータ(30)を
、
前記第1センサの出力に基づいて前記第1ハウジングが動いた方向を示す第1動き方向
を検出する第1動き方向検出手段(S542)、
前記第2センサの出力に基づいて前記第2ハウジングが動いた方向を示す第2動き方向
を検出する第2動き方向検出手段(S570)、
前記第1動き方向検出手段によって検出された前記第1動き方向と、前記第2動き方向
検出手段によって検出された前記第2動き方向とを合成することによって合成方向を決定
する合成方向決定手段(S552)、および
前記合成方向決定手段によって決定された前記合成方向を用いてゲーム制御を行うゲー
ム制御手段(S554)として機能させるためのゲームプログラムである。
第1ハウジング(71)に設けられた動きを検出するための第1センサ(701)と、
前記第1ハウジングとは独立した動きを検出するための第2ハウジング(77)に設けら
れた第2センサ(761)の出力を利用してゲーム処理を行うためのゲームプログラムで
あって、ゲーム装置(3)のコンピュータ(30)を、
前記第1センサの出力に基づいて前記第1ハウジングの動きの強さを検出する第1強さ
検出手段(S542)、
前記第2センサの出力に基づいて前記第2ハウジングの動きの強さを検出する第2強さ
検出手段(S570)、
前記第1強さ検出手段によって検出された前記第1ハウジングの動きの強さと、前記第
2強さ検出手段によって検出された前記第2ハウジングの動きの強さとを合成することに
よって合成強さを決定する合成強さ決定手段(S552)、および
前記合成強さ決定手段によって決定された前記合成強さを用いてゲーム制御を行うゲー
ム制御手段(S554)として機能させるためのゲームプログラムである。
第1ハウジング(71)に設けられた少なくとも2軸方向の動きを検出可能な第1セン
サ(701)と、前記第1ハウジングとは独立した第2ハウジング(77)に設けられた
少なくとも2軸方向の動きを検出可能な第2センサ(761)の出力を利用してゲーム制
御を行うためのゲームプログラムであって、ゲーム装置(3)のコンピュータ(30)を
、
前記第1センサの出力に基づいて前記第1ハウジングが動いた方向を示す第1動き方向
を検出する第1動き方向検出手段(S542)、
前記第2加速度センサの出力に基づいて前記第2ハウジングが動いた方向を示す第2動
き方向を検出する第2動き方向検出手段(S570)、
前記第1動き方向検出手段によって検出された前記第1動き方向と、前記第2動き方向
検出手段によって検出された前記第2動き方向とが所定の関係を満たすかどうかを判定す
る動き方向関係判定手段(S550)、および
前記動き方向関係判定手段によって前記第1動き方向と前記第2動き方向が前記所定の
関係を満たすと判定されたときに、前記第1ハウジングおよび前記第2ハウジングの少な
くとも一方のハウジングの動き方向および/または動き強さに基づいてゲーム制御を行う
ゲーム制御手段(S552)として機能させるためのゲームプログラムである。
とを判定してもよいし、略反対方向であることを判定してもよいし、所定の角度をなすこ
となどを判定してもよい。また、2次元の方向(所定の2つの方向成分)を比較してもよ
いし、3次元の方向を比較しても良い。
たときに、第1ハウジングまたは第2ハウジングのいずれか一方の動き方向に基いてゲー
ム制御をおこなってもよいし、両方の動き方向に基いて(例えば、加算や平均などの所定
演算をして)、ゲーム制御をおこなっても良い。また、動き方向ではなく動き強さに基い
てもよいし、動き方向と動き強さの両方に基いてゲーム制御をおこなってもよい。
第1ハウジング(71)に設けられた少なくとも2軸方向の動きを検出可能な第1セン
サ(701)と、前記第1ハウジングとは独立した第2ハウジング(77)に設けられた
少なくとも2軸方向の動きを検出可能な第2センサ(761)の出力を利用してゲーム制
御を行うためのゲームプログラムであって、ゲーム装置(3)のコンピュータ(30)を
、
前記第1センサの出力に基づいて前記第1ハウジングの動きを検出する第1動き操作検
出手段(S542)、
前記第2センサの出力に基づいて前記第2ハウジングの動きを検出する第2動き操作検
出手段(S570)、
前記第1動き操作検出手段および前記第2動き操作検出手段の検出結果に基づいて、前
記第1ハウジングの動き検出のタイミングと、前記第2ハウジングの動き検出のタイミン
グとが所定の関係を満たすかどうかを判定する動きタイミング関係判定手段(S548)
、および
前記動きタイミング関係判定手段によって前記第1ハウジングの動き検出のタイミング
と前記第2ハウジングの動き検出のタイミングが前記所定の関係を満たすと判定されたと
きに、前記第1ハウジングおよび前記第2ハウジングの少なくとも一方のハウジングの動
き方向および/または動き強さに基づいてゲーム制御を行うゲーム制御手段(S552)
として機能させるためのゲームプログラムである。
ングが略一致することを判定してもよいし、所定間隔であることなどを判定してもよい。
また、ゲーム制御手段は、動きタイミング関係判定手段により所定の関係を満たすと判定
されたときに、第1ハウジングまたは第2ハウジングのいずれか一方の動き方向に基いて
ゲーム制御をおこなってもよいし、両方の動き方向に基いて(例えば、加算や平均などの
所定演算をして)、ゲーム制御をおこなっても良い。また、動き方向ではなく動き強さに
基いてもよいし、動き方向と動き強さの両方に基いてゲーム制御をおこなってもよい。
ハウジングの動き方向および/または動き強さに基づいてゲーム制御を行ってもよい。
ハウジングの動き方向および動き強さに基づいてゲーム制御を行ってもよい。
第1ハウジング(71)に設けられた少なくとも2軸方向の動き検出可能な第1センサ
(701)と、前記第1ハウジングとは独立した第2ハウジング(77)に設けられた少
なくとも2軸方向の動きを検出可能な第2センサ(761)の出力を利用してゲーム制御
を行うためのゲームプログラムであって、ゲーム装置(3)のコンピュータ(30)を、
前記第1センサの出力に基づいて前記第1ハウジングが動いた方向を示す第1動き方向
を検出する第1動き方向検出手段(S542)、
前記第2センサの出力に基づいて前記第2ハウジングが動いた方向を示す第2動き方向
を検出する第2動き方向検出手段(S570)、
前記第1動き方向検出手段によって検出された前記第1動き方向と、前記第2動き方向
検出手段によって検出された前記第2動き方向とが所定の関係を満たすかどうかを判定す
る動き向関係判定手段(S550)、および
前記動き方向関係判定手段によって前記第1動き方向と前記第2動き方向が前記所定の
関係を満たすと判定されたときに、ゲームオブジェクトに特定の動作を行わせるゲーム制
御手段(554)として機能させるためのゲームプログラムである。
とを判定してもよいし、略反対方向であることを判定してもよいし、所定の角度をなすこ
となどを判定してもよい。また、動き方向関係判定手段によって第1動き方向と第2動き
方向との関係が複数の候補のうちのどの関係かを判定し、当該判定に応じて複数の特定の
動作のうちから1つの特定の動作を決定してもよい。
第1ハウジング(71)に設けられた動きを検出するための第1センサ(701)と、
前記第1ハウジングとは独立した第2ハウジング(77)に設けられた動きを検出するた
めの第2センサ(761)の出力を利用してゲーム制御を行うためのゲームプログラムで
あって、ゲーム装置(3)のコンピュータ(30)を、
前記第1センサの出力に基づいて前記第1ハウジングの動きおよびその強さを検出する
第1動き操作検出手段(S236)、
前記第2センサの出力に基づいて前記第2ハウジングの動きおよびその強さを検出する
第2動き操作検出手段(S250)、
前記第1動き操作検出手段および前記第2動き操作検出手段の検出結果に基づいて、前
記第1ハウジングの動き検出のタイミングと、前記第2ハウジングの動き検出のタイミン
グとが所定の関係を満たすかどうかを判定する動きタイミング関係判定手段(S240)
、および
前記動きタイミング関係判定手段によって前記第1ハウジングの動き検出のタイミング
と前記第2ハウジングの動き検出のタイミングが前記所定の関係を満たすと判定されたと
きに、ゲームオブジェクトに特定の動作を行わせるゲーム制御手段(S242)として機
能させるためのゲームプログラムである。
第1ハウジング(71)に設けられた少なくとも2軸方向の動きを検出可能な第1セン
サ(701)と、前記第1ハウジングとは独立した第2ハウジング(77)に設けられた
少なくとも2軸方向の動きを検出可能な第2センサ(761)の出力を利用してゲーム制
御を行うためのゲームプログラムであって、ゲーム装置(3)のコンピュータ(30)を
、
前記第1センサの出力に基づいて前記第1ハウジングが動いた方向を示す第1動き方向
を検出する第1動き方向検出手段(S748)、
前記第2センサの出力に基づいて前記第2ハウジングが動いた方向を示す第2動き方向
を検出する第2動き方向検出手段(S782)、
前記第1動き方向検出手段によって検出された前記第1動き方向が第1範囲内であり、
かつ前記第2動き方向検出手段によって検出された前記第2動き方向が第2範囲内である
ときに、前記第1動き方向と前記第2動き方向に基づいてゲーム制御を行うゲーム制御手
段(S752、S786、S758)として機能させるためのゲームプログラムである。
もよいが、完全には一致しない範囲である。
第1ハウジング(71)に設けられた動きまたは姿勢を検出可能な第1センサ(701
)と、前記第1ハウジングとは独立した第2ハウジング(77)に設けられた動きまたは
姿勢を検出可能な第2センサ(761)の出力を利用してゲーム制御を行うためのゲーム
プログラムであって、ゲーム装置(3)のコンピュータ(30)を、
前記第1センサの出力に基づいて第1ゲーム処理を実行する第1ゲーム制御手段(S4
10)、
前記第2センサの出力に基づいて第2ゲーム処理を実行する第2ゲーム制御手段(S4
16)、および
プレイヤの指示に応じて、前記第1ゲーム制御手段が前記第1ゲーム処理のために参照
するセンサを前記第1センサから前記第2センサに変更し、かつ前記第2ゲーム制御手段
が前記第2ゲーム処理のために参照するセンサを前記第2センサから前記第1センサに変
更する参照センサ交換手段(S404)として機能させるためのゲームプログラムである
。
少なくとも、第1軸、第2軸の2軸方向の動きを検出可能なセンサ(701)の出力を
利用してゲーム制御を行うためのゲームプログラムであって、ゲーム装置(3)のコンピ
ュータ(30)を、
前記センサの前記第1軸方向の動きを検出する動き検出手段(S742)、および
前記動き検出手段によって前記第1軸方向の動きが検出されたときに、当該検出に関連
して決定される時点または期間において出力された前記センサの前記第2軸方向の出力に
基いてゲーム制御を行うゲーム制御手段(S718)として機能させるためのゲームプロ
グラムである。
第1軸方向の動き入力と第2軸方向の動き入力との連続性を保つために、第1軸方向の動
き入力における所定時点から所定時間以上離れない時点または期間とするのが好ましい。
(1)検出の対象となった第1軸方向の動き入力における所定時点を基準として決定され
る時点または期間(「検出の対象となった第1軸方向の動き入力における所定時点」は、
当該第1軸方向の動きが検出された時点や、当該動き入力の開始点や終了点や所定の中間
点など))
(2)検出の対象となった第1軸方向の動き入力における所定時点を基準として決定され
る期間内に第2軸方向の動きが検出されたときに当該第2軸方向の動きにおける所定時点
または所定期間
(a)第1軸方向の動き入力における所定時点(以下第1時点)と同一の時点
(b)第1時点より所定時間だけ前の時点
(c)第1時点より所定時間だけ後の時点
(d)[第1時点より所定時間だけ前〜第1時点]の期間
(e)[第1時点〜第1時点より所定時間だけ後の時点]の期間
(f)[第1時点より第1時間だけ前の時点〜第1時点より第2時間だけ前の時点]の期
間(第1時間>第2時間)
(g)[第1時点より第1時間だけ後の時点〜第1時点より第2時間だけ後の時点]の期
間(第1時間<第2時間)
(h)[第1時点より第1時間だけ前の時点〜第1時点より第2時間だけ後の時点]の期
間
)のような時点または期間において、第2軸における振りが検出されるか否かを検出して
、当該検出があったときには、当該第2軸における振りの期間(振り開始から終了まで[
加速度の立ち上がり→最大→0→反対方向の加速度検出→反対方向最大→0]、または、
その一部[例えば、加速度の立ち上がり→最大→0の期間、または、反対方向の加速度検
出→反対方向最大→0までの期間)としてもよい。
第1軸方向への入力をすることにより、当該第2軸方向への入力を有効にするという入力
方法となり(第2軸方向への入力をした場合であってもその後第1軸方向への入力をしな
い場合には、当該第2軸方向への入力は有効な入力とならない)、第1時点より後の時点
または期間とする場合は、第1軸方向への入力をした後、第2軸方向への入力を受け付け
るという入力方法となる(第2軸方向への入力をした場合であってもその前に第1軸方向
への入力をしていない場合には、当該第2軸方向への入力は有効な入力とならない)。ま
た、第1時点をまたぐ期間とする場合には、第1軸方向への入力により有効入力であるこ
とを示しつつ第2軸方向の入力をおこなうという入力方法となる(第1軸方向への入力を
しながら第2軸方向への入力をしない場合は、当該第2軸方向への入力は有効とならない
)。
ついて、期間による場合は、その期間内の、第2軸方向の出力の合計/平均(加重平均も
可)/最大値/積分などを利用する、あるいは、その期間内の連続する出力の差分を利用
するなどが考えられる。
第1軸、第2軸、第3軸の3軸方向の動きを検出可能なセンサ(701)の出力を利用
してゲーム制御を行うためのゲームプログラムであって、ゲーム装置(3)のコンピュー
タ(30)を、
前記センサの前記第1軸方向の動きを検出する動き検出手段(S742)、および
前記動き検出手段によって前記第1軸方向の動きが検出されたときに、当該検出された
時点を基準として決定される時点または期間において出力された前記センサの前記第2軸
方向の出力と前記第3軸方向の出力により示される方向を用いてゲーム制御を行うゲーム
制御手段(S718)として機能させるためのゲームプログラムである。
されたときに、当該検出された時点を基準として決定される時点または期間において出力
された前記センサの前記第2軸方向の出力に加えて、当該第1軸方向の動きに係る前記セ
ンサの前記第1軸方向の出力の大きさを用いてゲーム制御を行ってもよい。
されたときに、当該検出された時点を基準として決定される時点または期間における、第
2軸方向の動きの有無を検出し(S750)、第2軸方向の動きが検出されたときに、当
該第2軸方向の出力を用いてゲーム制御を行ってもよい。
検出可能なセンサであり、さらに言えば、自ら(自らが設けられるハウジング)の姿勢を
検出可能なセンサである。また、「姿勢」とは、代表的には、傾き(重力方向に対する傾
き;言い換えると、水平軸を中心とする回転角度)であるが、水平軸以外の軸を中心とす
る回転角度などであってもよい。
であり、さらに言えば、自ら(自らが設けられるハウジング)の傾きを検出可能なセンサ
である。
検出可能なセンサであり、さらに言えば、自ら(自らが設けられるハウジング)の動きを
検出可能なセンサである。
ウジングが所定の動き(例えば振りなど)をしたことを検出してもよい。
の直線成分の加速度を軸毎に検出する。一方、ジャイロスコープは、回転にともなう角速
度を検出する。加速度センサは、当該加速度センサの軸心周りに回転させても、重力加速
度以外の各軸ごとの加速度は検出することができない。一方、ジャイロスコープは、回転
を伴わない直線的な加速を検出することができない。従って、加速度センサをジャイロス
コープに、ジャイロスコープを加速度センサに単に置換しただけでは、同一の機能を実現
することができない。一方、加速度センサとジャイロスコープの違いを吸収するための複
雑な処理を付加することで、加速度センサをジャイロスコープ、ジャイロスコープを加速
度センサに置き換えて利用することもできる。
加速度センサは、各軸に沿った直線成分の加速度を検出しており、回転や傾きを直接検
出することはできない。このため、加速度センサを搭載したデバイスの姿勢の回転や傾き
は、加速度センサの各軸ごとに検出される加速度に所定の演算処理を施すことによって算
出している。例えば、加速度センサが静止した状態においては、常に重力加速度が加わっ
ているので、その重力加速度に対する各軸の傾き応じた加速度が各軸ごとに検出される。
具体的には、加速度センサが水平状態で静止しているとき、加速度センサのy軸に1Gの
重力加速度が加わり、他の軸の重力加速度はほぼ0となる。次に、加速度センサの姿勢が
水平状態より傾くと、加速度センサの各軸方向と重力方向と角度に応じて、重力加速度が
加速度センサの各軸に分散される。このとき、加速度センサの各軸の加速度値が検出され
る。このような各軸ごとの加速度値に演算を加えることにより、重力方向に対する加速度
センサの姿勢を算出することができる。また、回転の場合には、姿勢変化の連続的なもの
と考えられるので、ある時点の姿勢の傾きからある時点の姿勢の傾きのまでを算出するこ
とにより回転角度をソフトウェア処理によって算出することもできる。
一方、例えばジャイロスコープによって有る状態からの姿勢の傾きを算出する場合には
、まずジャイロスコープの検出開始の状態において傾きの値を初期化する。そして、この
時点からの当該ジャイロスコープから出力される角速度データを積分する。さらに、前記
初期化された傾きの値からの傾きの変化量を算出することにより、初期化時点の姿勢に対
する角度を求めることができる。つまり、有る時点を基準とする相対的な角度を求めるこ
とができる。なお、ジャイロスコープを搭載したデバイスの重力方向を基準とする姿勢が
必要な場合には、当該デバイスを重力方向を基準とした状態(例えば水平に保った状態)
で初期化する必要がある。一方、加速度センサを搭載したデバイスの場合には、加速度セ
ンサが重力方向を基準とするため初期化の必要がないというメリットを有する。
、プレイ中の動きの自由度が高くダイナミックなプレイを許容する。また、姿勢の差分に
よりゲーム制御するので、直感的な動作入力を許容する。
、図1は、当該ゲームシステム1を説明するための外観図である。以下、据置型ゲーム装
置を一例にして、本発明のゲームシステム1について説明する。
を備えたディスプレイ(以下、モニタと記載する)2に、接続コードを介して接続される
据置型ゲーム装置(以下、単にゲーム装置と記載する)3および当該ゲーム装置3に操作
情報を与えるコントローラ7によって構成される。ゲーム装置3は、接続端子を介して受
信ユニット6が接続される。受信ユニット6は、コントローラ7から無線送信される送信
データを受信し、コントローラ7とゲーム装置3とは無線通信によって接続される。また
、ゲーム装置3には、当該ゲーム装置3に対して交換可能に用いられる情報記憶媒体の一
例の光ディスク4が脱着される。ゲーム装置3の上部主面には、当該ゲーム装置3の電源
ON/OFFスイッチ、ゲーム処理のリセットスイッチ、およびゲーム装置3上部の蓋を
開くOPENスイッチが設けられている。ここで、プレイヤがOPENスイッチを押下す
ることによって上記蓋が開き、光ディスク4の脱着が可能となる。
搭載する外部メモリカード5が必要に応じて着脱自在に装着される。ゲーム装置3は、光
ディスク4に記憶されたゲームプログラムなどを実行することによって、その結果をゲー
ム画像としてモニタ2に表示する。さらに、ゲーム装置3は、外部メモリカード5に記憶
されたセーブデータを用いて、過去に実行されたゲーム状態を再現して、ゲーム画像をモ
ニタ2に表示することもできる。そして、ゲーム装置3のプレイヤは、モニタ2に表示さ
れたゲーム画像を見ながら、コントローラ7を操作することによって、ゲーム進行を楽し
むことができる。
続されたゲーム装置3へ、例えばBluetooth(ブルートゥース;登録商標)の技
術を用いて送信データを無線送信する。コントローラ7は、2つのコントロールユニット
(コアユニット70およびサブユニット76)が屈曲自在な接続ケーブル79を介して互
いに接続されて構成されており、主にモニタ2に表示されるゲーム空間に登場するプレイ
ヤオブジェクトを操作するための操作手段である。コアユニット70およびサブユニット
76は、それぞれ複数の操作ボタン、キー、およびスティック等の操作部が設けられてい
る。また、後述により明らかとなるが、コアユニット70は、当該コアユニット70から
見た画像を撮像するための撮像情報演算部74(図6参照)を備えている。また、撮像情
報演算部74の撮像対象の一例として、モニタ2の表示画面近傍に2つのLEDモジュー
ル8Lおよび8Rが設置される。これらLEDモジュール8Lおよび8Rは、それぞれモ
ニタ2の前方に向かって赤外光を出力する。なお、本実施例では、コアユニット70とサ
ブユニット76を屈曲自在なケーブルで接続したが、サブユニット76に無線ユニットを
搭載することで、接続ケーブル79をなくすこともできる。例えば、無線ユニットとして
Bluetooth(登録商標)ユニットをサブユニット76に搭載することで、サブユ
ニット76からコアユニット70へ操作データを送信することが可能になる。
装置3の機能ブロック図である。
CPU(セントラルプロセッシングユニット)30を備える。CPU30は、図示しない
ブートROMに記憶された起動プログラムを実行し、メインメモリ33等のメモリの初期
化等を行った後、光ディスク4に記憶されているゲームプログラムの実行し、そのゲーム
プログラムに応じたゲーム処理等を行うものである。CPU30には、メモリコントロー
ラ31を介して、GPU(Graphics Processing Unit)32、
メインメモリ33、DSP(Digital Signal Processor)34
、およびARAM(Audio RAM)35が接続される。また、メモリコントローラ
31には、所定のバスを介して、コントローラI/F(インターフェース)36、ビデオ
I/F37、外部メモリI/F38、オーディオI/F39、およびディスクI/F41
が接続され、それぞれ受信ユニット6、モニタ2、外部メモリカード5、スピーカ2a、
およびディスクドライブ40が接続されている。
ラフィックスの表示に必要な計算処理を行う半導体チップで構成される。GPU32は、
図示しない画像処理専用のメモリやメインメモリ33の一部の記憶領域を用いて画像処理
を行う。GPU32は、これらを用いてモニタ2に表示すべきゲーム画像データやムービ
映像を生成し、適宜メモリコントローラ31およびビデオI/F37を介してモニタ2に
出力する。
必要なゲームプログラム等を適宜記憶する。例えば、メインメモリ33は、CPU30に
よって光ディスク4から読み出されたゲームプログラムや各種データ等を記憶する。この
メインメモリ33に記憶されたゲームプログラムや各種データ等がCPU30によって実
行される。
タ等を処理するものであり、そのサウンドデータ等を記憶するためのARAM35が接続
される。ARAM35は、DSP34が所定の処理(例えば、先読みしておいたゲームプ
ログラムやサウンドデータの記憶)を行う際に用いられる。DSP34は、ARAM35
に記憶されたサウンドデータを読み出し、メモリコントローラ31およびオーディオI/
F39を介してモニタ2に備えるスピーカ2aに出力させる。
I/Fが接続される。コントローラI/F36は、例えば4つのコントローラI/Fで構
成され、それらが有するコネクタを介して嵌合可能な外部機器とゲーム装置3とを通信可
能に接続する。例えば、受信ユニット6は、上記コネクタと嵌合し、コントローラI/F
36を介してゲーム装置3と接続される。上述したように受信ユニット6は、コントロー
ラ7からの送信データを受信し、コントローラI/F36を介して当該送信データをCP
U30へ出力する。ビデオI/F37には、モニタ2が接続される。外部メモリI/F3
8には、外部メモリカード5が接続され、その外部メモリカード5に設けられたバックア
ップメモリ等とアクセス可能となる。オーディオI/F39にはモニタ2に内蔵されるス
ピーカ2aが接続され、DSP34がARAM35から読み出したサウンドデータやディ
スクドライブ40から直接出力されるサウンドデータをスピーカ2aから出力可能に接続
される。ディスクI/F41には、ディスクドライブ40が接続される。ディスクドライ
ブ40は、所定の読み出し位置に配置された光ディスク4に記憶されたデータを読み出し
、ゲーム装置3のバスやオーディオI/F39に出力する。
ラ7の外観構成を示す斜視図である。
ブル79で接続されて構成されている。コアユニット70は、ハウジング71を有してお
り、当該ハウジング71に複数の操作部72が設けられている。一方、サブユニット76
は、ハウジング77を有しており、当該ハウジング77に複数の操作部78が設けられて
いる。そして、コアユニット70とサブユニット76とは、接続ケーブル79によって接
続されている。
在なコネクタ791が設けられており、接続ケーブル79の他方端は固定的にサブユニッ
ト76と接続されている。そして、接続ケーブル79のコネクタ791は、コアユニット
70の底面に設けられたコネクタ73と嵌合し、コアユニット70とサブユニット76と
が当該接続ケーブル79を介して接続される。
している。ハウジング71は、略直方体形状を有しており、全体として大人や子供の片手
で把持可能な大きさである。
の十字キー72aは、十字型の4方向プッシュスイッチであり、4つの方向(上下左右)
に対応する操作部分が十字の突出片にそれぞれ90°間隔で配置される。プレイヤが十字
キー72aのいずれかの操作部分を押下することによって上下左右いずれかの方向が選択
される。例えばプレイヤが十字キー72aを操作することによって、仮想ゲーム世界に登
場するプレイヤキャラクタ等の移動方向を指示したり、カーソルの移動方向を指示したり
することができる。なお、十字キー72aの代わりに360°指示可能なジョイスティッ
クを設けても良い。
gが設けられる。操作ボタン72b〜72gは、プレイヤがボタン頭部を押下することに
よって、それぞれの操作ボタン72b〜72gに割り当てられた操作信号を出力する操作
部である。例えば、操作ボタン72b〜72dには、1番ボタン、2番ボタン、およびA
ボタン等としての機能が割り当てられる。また、操作ボタン72e〜72gには、マイナ
スボタン、ホームボタン、およびプラスボタン等としての機能が割り当てられる。これら
操作ボタン72b〜72gは、ゲーム装置3が実行するゲームプログラムに応じてそれぞ
れの機能が割り当てられる。
られる。操作ボタン72hは、遠隔からゲーム装置3本体の電源をオン/オフする電源ス
イッチである。
設けられる。ここで、コントローラ7は、他のコントローラ7と区別するためにコントロ
ーラ種別(番号)が設けられている。例えば、LED702は、コントローラ7に現在設
定されている上記コントローラ種別をプレイヤに通知するために用いられる。具体的には
、コアユニット70から受信ユニット6へ送信データを送信する際、上記コントローラ種
別に応じて複数のLED702のうち、種別に対応するLEDが点灯する。
の間に後述するスピーカ706(図4参照)からの音を外部に放出するための音抜き孔が
形成されている。
プレイヤの人差し指または中指が位置するような位置に、操作ボタン(図示せず)が設け
られる。この操作ボタンは、例えばBボタンとして機能する操作部であり、例えばシュー
ティングゲームにおけるトリガスイッチとして用いられる。
撮像素子743(図6参照)が設けられる。ここで、撮像情報演算部74は、コアユニッ
ト70が撮像した画像データを解析してその中で輝度が高い場所を判別してその場所の重
心位置やサイズなどを検出するためのシステムであり、例えば、最大200フレーム/秒
程度のサンプリング周期であるため比較的高速なコアユニット70の動きでも追跡して解
析することができる。この撮像情報演算部74の詳細な構成については、後述する。また
、ハウジング71の底面には、コネクタ73(図4参照)が設けられている。コネクタ7
3は、例えば32ピンのエッジコネクタであり、接続ケーブル79のコネクタ791と嵌
合して接続するために利用される。
、コアユニット70の上筐体(ハウジング71の一部)を外した状態を示す斜視図である
。
0の上主面上に操作ボタン72a〜72h、加速度センサ701、LED702、スピー
カ706、およびアンテナ754等が設けられる。そして、これらは、基板700等に形
成された配線(図示せず)によってマイクロコンピュータ(Micro Compute
r:マイコン)751等(図6参照)に接続される。なお、加速度センサ701が基盤7
00の中央部ではなく周辺部に設けられていることにより、コアユニット70の長手方向
を軸とした回転に応じて、重力加速度の方向変化に加え、遠心力による成分の含まれる加
速度を検出することができるので、所定の演算により、検出される加速度データからコア
ユニット70の回転を良好な感度で判定することができる。
る。
ユニット76の上筐体(ハウジング77の一部)を外した状態を示す斜視図である。
ジング77を有している。ハウジング77は、全体として大人や子供の片手で把持可能な
大きさである。
ック78aは、ハウジング77の表面から突出した傾倒可能なスティックを倒すことによ
って、傾倒方向に応じて操作信号を出力する操作部である。例えば、プレイヤがスティッ
ク先端を360°任意の方向に傾倒することによって任意の方向や位置を指定することが
でき、仮想ゲーム世界に登場するプレイヤキャラクタ等の移動方向を指示したり、カーソ
ルの移動方向を指示したりすることができる。なお、スティック78aの代わりに十字キ
ーを設けても良い。
設けられる(図5参照)。操作ボタン78dおよび78eは、プレイヤがボタン頭部を押
下することによって、それぞれの操作ボタン78dおよび78eに割り当てられた操作信
号を出力する操作部である。例えば、操作ボタン78dおよび78eには、Xボタンおよ
びYボタン等としての機能が割り当てられる。これら操作ボタン78dおよび78eは、
ゲーム装置3が実行するゲームプログラムに応じてそれぞれの機能が割り当てられる。
にスティック78aおよび加速度センサ761等が設けられる。そして、これらは、基板
等に形成された配線(図示せず)を介して接続ケーブル79と接続されている。
コントローラ7の構成を示すブロック図である。
度センサ701、スピーカ706、サウンドIC707、およびアンプ708の他に、そ
の内部に通信部75を備えている。また、サブユニット76は、上述した操作部78およ
び加速度センサ761を備えており、接続ケーブル79とコネクタ791およびコネクタ
73とを介して、マイコン751と接続されている。
び画像処理回路744を含んでいる。赤外線フィルタ741は、コアユニット70の上面
から入射する光から赤外線のみを通過させる。レンズ742は、赤外線フィルタ741を
透過した赤外線を集光して撮像素子743へ出射する。撮像素子743は、例えばCMO
SセンサやあるいはCCDのような固体撮像素子であり、レンズ742が集光した赤外線
を撮像する。したがって、撮像素子743は、赤外線フィルタ741を通過した赤外線だ
けを撮像して画像データを生成する。撮像素子743で生成された画像データは、画像処
理回路744で処理される。具体的には、画像処理回路744は、撮像素子743から得
られた画像データを処理して高輝度部分を検知し、それらの位置座標や面積を検出した結
果を示す処理結果データを通信部75へ出力する。なお、これらの撮像情報演算部74は
、コアユニット70のハウジング71に固設されており、ハウジング71自体の方向を変
えることによってその撮像方向を変更することができる。しかしながら、ハウジング71
は、サブユニット76とは屈曲自在な接続ケーブル79によって接続されているため、サ
ブユニット76の方向や位置を変更しても撮像情報演算部74の撮像方向が変化すること
はない。この撮像情報演算部74から出力される処理結果データに基づいて、コアユニッ
ト70の位置や動きに応じた信号を得ることができる。
0は、3軸(図4のX軸、Y軸、Z軸)の加速度センサ701を備えていることが好まし
い。また、サブユニット76は、3軸(図5のX軸、Y軸、Z軸)の加速度センサ761
を備えていることが好ましい。この3軸の加速度センサ701および761は、それぞれ
3方向、すなわち、X軸方向(左側面→右側面方向)、Y軸方向(上面→底面方向)、Z
軸方向(表面→裏面方向)で直線加速度を検知する。また、他の実施形態においては、ゲ
ーム処理に用いる制御信号の種類によっては、X軸方向およびY軸方向(または他の対に
なった方向)のそれぞれに沿った直線加速度のみを検知する2軸の加速度検出手段を使用
してもよい。さらにはX軸方向(または他の方向)に沿った直線加速度のみを検知する1
軸の加速度検出手段を使用してもよい。例えば、この3軸または2軸または1軸の加速度
センサ701および761は、アナログ・デバイセズ株式会社(Analog Devi
ces, Inc.)またはSTマイクロエレクトロニクス社(STMicroelec
tronics N.V.)から入手可能であるタイプのものでもよい。加速度センサ7
01および761は、シリコン微細加工されたMEMS(Micro Electro
Mechanical Systems:微小電子機械システム)の技術に基づいた静電
容量式(静電容量結合式)であってもよい。また、既存の加速度検出手段の技術(例えば
、圧電方式や圧電抵抗方式)あるいは将来開発される他の適切な技術を用いて3軸または
2軸または1軸の加速度センサ701および761が提供されてもよい。
速度検出手段は、加速度センサの持つ各軸に対応する直線に沿った加速度(直線加速度)
のみを検知することができる。つまり、加速度センサ701および761からの直接の出
力は、その各軸に沿った直線加速度(静的または動的)を示す信号である。このため、加
速度センサ701および761は、非直線状(例えば、円弧状)の経路に沿った動き、回
転、回転運動、角変位、傾斜、位置、または姿勢等の物理特性を直接検知することはでき
ない。
に対して追加の処理を行うことによって、コアユニット70およびサブユニット76に関
するさらなる情報をそれぞれ推測または算出することができることは、当業者であれば本
明細書の説明から容易に理解できるであろう。例えば、静的な加速度(重力加速度)が検
知されると、加速度センサ701および761からの出力を用いて、傾斜角度と検知され
た加速度とを用いた演算によって重力ベクトルに対する対象(コアユニット70またはサ
ブユニット76)の傾きをそれぞれ推測することができる。このように、加速度センサ7
01および761をマイコン751(または他のプロセッサ)と組み合わせて用いること
によって、コアユニット70およびサブユニット76の傾き、姿勢または位置を決定する
ことができる。同様に、加速度センサ701を備えるコアユニット70または加速度セン
サ761を備えるサブユニット76が、ここで説明されているように、例えばユーザの手
で動的に加速されてそれぞれ動かされる場合に、加速度センサ701および761によっ
て生成される加速度信号をそれぞれ処理することによって、コアユニット70およびサブ
ユニット76のさまざまな動きおよび/または位置をそれぞれ算出または推測することが
できる。他の実施例では、加速度センサ701および761は、信号をマイコン751に
出力する前に内蔵の加速度検出手段から出力される加速度信号に対して所望の処理を行う
ための、組込み式の信号処理装置または他の種類の専用の処理装置をそれぞれ備えていて
もよい。例えば、組込み式または専用の処理装置は、加速度センサが静的な加速度(例え
ば、重力加速度)を検出するためのものである場合、検知された加速度信号をそれに相当
する傾斜角に変換するものであってもよい。加速度センサ701および761でそれぞれ
検知された加速度を示すデータは通信部75に出力される。
ナ754を含んでいる。マイコン751は、処理の際にメモリ752を記憶領域として用
いながら、送信データを無線送信する無線モジュール753を制御する。また、マイコン
751は、アンテナ754を介して無線モジュール753が受信したゲーム装置3からの
データに応じて、サウンドIC707の動作を制御する。サウンドIC707は、通信部
75を介してゲーム装置3から送信されたサウンドデータ等を処理する。
センサ701からの加速度信号(コア加速度データ)、および撮像情報演算部74からの
処理結果データは、マイコン751に出力される。また、接続ケーブル79を介して、サ
ブユニット76に設けられた操作部78からの操作信号(サブキーデータ)および加速度
センサ761からの加速度信号(サブ加速度データ)は、マイコン751に出力される。
マイコン751は、入力した各データ(コアキーデータ、サブキーデータ、コア加速度デ
ータ、サブ加速度データ、処理結果データ)を受信ユニット6へ送信する送信データとし
て一時的にメモリ752に格納する。ここで、通信部75から受信ユニット6への無線送
信は、所定の周期毎に行われるが、ゲームの処理は1/60秒を単位として行われること
が一般的であるので、それよりも短い周期でデータを収集して送信を行うことが必要とな
る。具体的には、ゲームの処理単位は16.7ms(1/60秒)であり、ブルートゥー
ス(Bluetooth;登録商標)で構成される通信部75の送信間隔は5msである
。マイコン751は、受信ユニット6への送信タイミングが到来すると、メモリ752に
格納されている送信データを一連の操作情報として出力し、無線モジュール753へ出力
する。そして、無線モジュール753は、例えばブルートゥース(登録商標)の技術に基
づいて、所定周波数の搬送波を用いて操作情報で変調し、その微弱電波信号をアンテナ7
54から放射する。つまり、コアユニット70に設けられた操作部72からのコアキーデ
ータ、サブユニット76に設けられた操作部78からのサブキーデータ、コアユニット7
0に設けられた加速度センサ701からのコア加速度データ、サブユニット76に設けら
れた加速度センサ761からのサブ加速度データ、および撮像情報演算部74からの処理
結果データは、無線モジュール753で微弱電波信号に変調されてコアユニット70から
放射される。そして、ゲーム装置3の受信ユニット6でその微弱電波信号を受信し、ゲー
ム装置3で当該微弱電波信号を復調や復号することによって、一連の操作情報(コアキー
データ、サブキーデータ、コア加速度データ、サブ加速度データ、および処理結果データ
)を取得することができる。そして、ゲーム装置3のCPU30は、取得した操作情報と
ゲームプログラムとに基づいて、ゲーム処理を行う。なお、Bluetooth(登録商
標)の技術を用いて通信部75を構成する場合、通信部75は、他のデバイスから無線送
信された送信データを受信する機能も備えることができる。
めには、プレイヤは、一方の手(例えば右手)でコアユニット70を把持し、他方の手(
例えば左手)でサブユニット76を把持する。
加速度データ)を用いることによって、コアユニット70の傾き、姿勢、位置、または、
動き(移動や振りなど)を決定することができる。つまり、プレイヤがコアユニット70
を把持した手を上下左右等に動かすことによって、コアユニット70は、プレイヤの手の
運動や向きに応じた操作入力手段として機能する。また、上述したようにサブユニット7
6に設けられた加速度センサ761からの出力(サブ加速度データ)を用いることによっ
て、サブユニット76の傾き、姿勢、位置、または、動き(移動や振りなど)を決定する
ことができる。つまり、プレイヤがサブユニット76を把持した手を上下左右等に動かす
ことによって、サブユニット76は、プレイヤの手の運動や向きに応じた操作入力手段と
して機能する。これによって、プレイヤが両方の手に別々のユニットを把持してそれぞれ
の手自体を動かして操作するような入力を行うことができる。したがって、コアユニット
70およびサブユニット76は、従来のゲーム機用コントローラを単に左右に分離できる
ように構成しただけでなく、プレイヤの左右の手が自由になると同時に、従来のゲーム機
用コントローラでは不可能であった新たな操作が可能となっている。また、コントローラ
自体の操作の自由度が著しく向上しているため、臨場感のあるゲーム操作を実現できる。
れた態様を用いたが、コントローラ7とゲーム装置3とがケーブルを介して電気的に接続
されてもかまわない。この場合、コアユニット70に接続されたケーブルをゲーム装置3
の接続端子に接続する。
アユニット70のみに通信部75を設けたが、サブユニット76に受信ユニット6へ送信
データを無線送信(または有線通信)する通信部を設けてもかまわない。また、コアユニ
ット70およびサブユニット76それぞれに上記通信部を設けてもかまわない。例えば、
コアユニット70およびサブユニット76に設けられた通信部がそれぞれ受信ユニット6
へ送信データを無線送信してもいいし、サブユニット76の通信部からコアユニット70
へ送信データを無線送信してコアユニット70の通信部75で受信した後、コアユニット
70の通信部75がサブユニット76の送信データと共にコアユニット70の送信データ
を受信ユニット6へ無線送信してもいい。これらの場合、コアユニット70とサブユニッ
ト76とを電気的に接続する接続ケーブル79が不要となる。
ム装置3の接続端子に接続された受信ユニット6を用いて説明したが、ゲーム装置3の本
体内部に設けられた受信モジュールによって当該受信手段を構成してもかまわない。この
場合、受信モジュールが受信した送信データは、所定のバスを介してCPU30に出力さ
れる。
いて説明する。なお、以下では説明を分かり易くするために、コアユニット70およびサ
ブユニット76を、それぞれ第1ユニット、第2ユニットと称し、コアユニット70に設
けられた加速度センサ701およびサブユニット76に設けられた加速度センサ761を
、それぞれ第1加速度センサ、第2加速度センサと称す。
図8は、第1の実施形態における表示画像の一例である。モニタ2の画面には、プレイ
ヤによって操作されるキャラクタ(ゲームオブジェクト)を含む3次元の仮想ゲーム世界
の様子が表示される。本実施形態ではキャラクタは戦車に乗っている。プレイヤは、第1
ユニットまたは第2ユニットを傾ける(すなわち、水平軸を中心として回転させる)こと
によって、キャラクタの動作を制御することができる。なお、以下の説明では、加速度セ
ンサのX軸正方向が水平方向かつプレイヤの右方向であり、Y軸正方向が鉛直下方向であ
り、Z軸正方向が水平方向かつプレイヤの前方向であるという前提で説明するが、加速度
センサの軸方向と現実世界の方向との関係はこの前提に限られるものではない。
を示す。第1ユニットが第2ユニットよりも相対的に向こう側(図16参照)に傾けられ
た場合にはキャラクタは左旋回し、第2ユニットが第1ユニットよりも相対的に向こう側
に傾けられた場合にはキャラクタは右旋回する。また、第1ユニットと第2ユニットが平
均的に向こう側に傾けられた場合にはキャラクタは前進し、平均的に手前側(図16参照
)に傾けられた場合にはキャラクタは後退する。なお、図9において、紙面の奥側がキャ
ラクタの進行方向(前方)であり、紙面の手前側がキャラクタの後方である。
インメモリ33には、ゲームプログラム100、ゲーム画像データ102、キャラクタ制
御データ104、第1傾き値106、第2傾き値108、第1基準値110、および第2
基準値112が格納される。なお、ゲームプログラム100、ゲーム画像データ102は
光ディスク4に記憶されており、適宜メインメモリ33にコピーされて使用される。また
、必要に応じて第1基準値110や第2基準値112も同様に光ディスク4に記憶してメ
インメモリにコピーして使用しても良い。
クスチャデータなど)であり、キャラクタ画像を生成するためのデータおよび背景画像を
生成するためのデータを含んでいる。
世界(仮想的な3次元空間)におけるキャラクタの現在位置を示す現在位置データと、キ
ャラクタの移動速度の大きさを示す速度データと、キャラクタの進行方向を示す向きベク
トルとを含んでいる。現在位置データは3次元座標値で表されるデータであり、速度デー
タはスカラー値で表されるデータであり、向きベクトルは3次元の単位ベクトルで表され
るデータである。なお、速度データの代わりに速度ベクトルを用いても良い。
傾きを表す値である。第2傾き値108は、第2加速度センサの出力値に基づいて検出さ
れる第2ユニットの傾きを表す値である。第1基準値110は、第1ユニットの傾きの基
準値である。第2基準値112は、第2ユニットの傾きの基準値である。
CPU30の処理の流れを説明する。
ステップS100でニュートラルポジション設定処理を実行する。ニュートラルポジショ
ン設定処理とは、第1ユニットの傾きの基準値(第1基準値110)と第2ユニットの傾
きの基準値(第2基準値112)を決定するための処理である。以下、図12を参照して
、ニュートラルポジション設定処理の詳細を説明する。
に基づいて、プレイヤによって設定ボタン(ニュートラルポジションの設定をプレイヤが
指示するためのボタン)が押されたかどうかを判断する。この設定ボタンは、第1ユニッ
トのみに設けられていてもよいし、第2ユニットのみに設けられていてもよいし、第1ユ
ニットと第2ユニットの両方に設けられていてもよい。さらには、設定ボタンを押す替わ
りに、プレイヤがマイクロフォンに向かって音声を発することによってニュートラルポジ
ションの設定を指示できるようにしてもよい。なお、ここでは設定ボタンが第1ユニット
のみに設けられているものとして説明する。プレイヤによって設定ボタンが押されたこと
が検出された場合には処理はステップS136に進み、プレイヤによって設定ボタンが押
されたことが検出されない場合にはステップS134の処理を繰り返す(すなわちプレイ
ヤによって設定ボタンが押されるまで待機する)。
プレイヤが設定ボタンから指を離した直後は設定ボタンが設けられているユニット(ここ
では第1ユニット)が揺れている可能性があり、そのために第1基準値が正しく設定され
ない可能性があるからである。
では、第1加速度センサのX軸方向の出力値をAx1とし、Y軸方向の出力値をAy1と
し、Z軸方向の出力値をAz1とする。なお、所定期間分(例えば3秒程度)の加速度セ
ンサの出力値を常に記憶しておき、プレイヤが設定ボタンを押したときにそれより所定時
間だけ前に出力された出力値を利用してもよいし、設定ボタンを押す前または後のある期
間の出力値の平均を採用しても良い。(第2加速度センサについても同様)
(Ax1,Ay1,Az1)の大きさ(すなわち、√(Ax12+Ay12+Az12))
が0.8〜1.2の範囲内かどうか、すなわち第1ユニットが静止しているかどうかを判
断する。第1加速度センサおよび第2加速度センサの出力ベクトルは、静止状態(すなわ
ち重力加速度の影響のみを受けている状態)において1.0の大きさとなるように設定さ
れている。したがって、第1加速度センサの出力ベクトルの大きさが1.0または1.0
に近い値である場合には、第1ユニットがほぼ静止していると判断することができる。逆
に、第1加速度センサの出力ベクトルの大きさが1.0から大きく離れた値である場合に
は、第1ユニットが移動していると判断することができる。第1加速度センサの出力ベク
トルの大きさが0.8〜1.2の範囲内であった場合には、処理はステップS142に進
む。第1加速度センサの出力ベクトルの大きさが0.8〜1.2の範囲内でなかった場合
には、第1ユニットが移動していると第1基準値が正しく設定できないので、処理はステ
ップS134に戻る。なお、0.8〜1.2という値は例であり、本質的には、1.0の
近傍の値であることが判断される。なお、本実施例では、加速度センサのX方向成分(A
x)は使用しないので、プレイヤは基本的にコントローラ7をX方向に傾けずにプレイす
るものであり、ステップS138で取得した第1加速度センサの出力のX方向成分が一定
値より大きいときには、適切なニュートラルポジションが設定されていないとして、ステ
ップS134に戻るようにしても良い。(第2加速度センサについても同様)
では、第2加速度センサのX軸方向の出力値をAx2とし、Y軸方向の出力値をAy2と
し、Z軸方向の出力値をAz2とする。
(Ax2,Ay2,Az2)の大きさ(すなわち、√(Ax22+Ay22+Az22))
が0.8〜1.2の範囲内かどうか、すなわち第2ユニットが静止しているかどうかを判
断する。第2加速度センサの出力ベクトルの大きさが0.8〜1.2の範囲内であった場
合には、処理はステップS146に進む。第2加速度センサの出力ベクトルの大きさが0
.8〜1.2の範囲内でなかった場合には、第2ユニットが移動していると第2基準値が
正しく設定できないので、処理はステップS134に戻る。
(水平軸)周りの傾きを表している;図16における角度Θ)を算出し、算出された値を
第1基準値110として設定する。同様に、arctan(Az2/Ay2)(これは第
2ユニットのX軸周りの傾きを表している;図16における角度Θ)を算出し、算出され
た値を第2基準値112として設定する。なお、(Ay1,Az1)を基準値として設定
してもよい。
基準値110を設定しているが、第1加速度センサの値を時間をずらして複数回取得し、
それらの平均に基づいて第1基準値110を設定してもよい。これにより、ニュートラル
ポジション設定時の第1ユニットの揺れの影響を抑えることができる。第2基準値112
についても同様である。
かを判断する。第1基準値110と第2基準値112の差が所定値以内であった場合には
、ニュートラルポジション設定処理を終了し、処理は図11のステップS102に進む。
第1基準値110と第2基準値112の差が所定値を超えていた場合には、処理はステッ
プS134に戻り、第1基準値110および第2基準値112の再設定を行う。
を超えていた場合に第1基準値110および第2基準値112の再設定を行うようにして
いる理由は、そのような第1基準値110および第2基準値112をそのまま利用してゲ
ームをプレイすると良好な操作性が得られないことが予想されるためである。すなわち、
本実施形態では図9で示したように、第1ユニットが第2ユニットよりも相対的に向こう
側に傾けられたときにキャラクタが左旋回し、第2ユニットが第1ユニットよりも相対的
に向こう側に傾けられたときにキャラクタが右旋回するが、第1基準値110と第2基準
値112がずれている場合には、プレイヤが第1ユニットと第2ユニットを平行に揃えて
構えた場合でもキャラクタが右旋回または左旋回してしまうことになり、プレイヤに違和
感を与えてしまうからである。
題にならないので、その場合にはステップS148の判断を省略しても構わない。
1基準値110の設定と第2基準値112の設定が一度に行われる例について説明したが
、本発明はこれに限定されない。例えば、第1ユニットと第2ユニットのそれぞれに設定
ボタンが設けられており、プレイヤが第1ユニットに設けられた設定ボタンを押したとき
には第1基準値110が設定され、その後、プレイヤが第2ユニットに設けられた設定ボ
タンを押したときには第2基準値112が設定されるようにしてもよい。ただし、この場
合には第1基準値110と第2基準値112がずれやすくなるため、本実施形態のように
第1基準値110の設定と第2基準値112の設定がほぼ同じタイミングで行われるのが
好ましい。
例を説明したが、上述した違和感を完全になくすために、第1基準値110と第2基準値
112に共通の値を設定するようにしてもよい。例えば、ステップS146におけるar
ctan(Az1/Ay1)とarctan(Az2/Ay2)の平均値を、第1基準値
110と第2基準値112に共通に設定してもよい。また、arctan(Az1/Ay
1)またはarctan(Az2/Ay2)のいずれか一方のみを算出し、この算出結果
を第1基準値110と第2基準値112に共通に設定してもよい。この場合、プレイヤが
設定ボタンを押したときの操作ユニットのぶれの影響を避けるために、第1ユニットおよ
び第2ユニットのうち、プレイヤが押した設定ボタンが設けられていない方の操作ユニッ
トの加速度センサの出力値に基づいて、第1基準値110と第2基準値112を共通に設
定するのが好ましい。
S102で、ゲーム処理に利用する各種データ(キャラクタ制御データ104や第1傾き
値106など)の初期化を行い、キャラクタを含むゲーム画像を生成してモニタ2の画面
に表示する。
詳細を図14を参照して説明する。
(出力ベクトル)を取得する。ここでは、加速度センサのX軸方向の出力値をAx1とし
、Y軸方向の出力値をAy1とし、Z軸方向の出力値をAz1とする。
(Ax1,Ay1,Az1)の大きさ(すなわち、√(Ax12+Ay12+Az12))
が0.8〜1.2の範囲内かどうか、すなわち第1ユニットが静止しているかどうかを判
断する。第1加速度センサの出力ベクトルの大きさが0.8〜1.2の範囲内であった場
合には、処理はステップS158に進む。第1加速度センサの出力ベクトルの大きさが0
.8〜1.2の範囲内でなかった場合には、処理はステップS160に進む。
周りの傾きを表している;図16における角度Θ)を算出し、算出された値を傾き検出の
戻り値として返す。この戻り値は、メインメモリ33に第1傾き値106として格納され
る。その後、処理は図11のステップS106に進む。
出できないので、傾き検出結果としてエラーを返し、傾き検出を終了し、処理は図11の
ステップS106に進む。
エラーであった場合には処理は図13のステップS150に進み、エラーでなかった場合
には処理はステップS108に進む。
行う。すなわち、第2加速度センサの出力ベクトル(Ax2,Ay2,Az2)の大きさ
が0.8〜1.2の範囲内であった場合には、arctan(Az2/Ay2)(これは
第2ユニットのX軸周りの傾きを表している;図16における角度Θ)の値が、メインメ
モリ33に第2傾き値108として格納される。
エラーであった場合には処理は図13のステップS150に進み、エラーでなかった場合
には処理はステップS112に進む。
体的には、第1傾き値106と第1基準値110との差分を算出し、この算出結果を新た
な第1傾き値106としてメインメモリ33に上書きする。
体的には、第2傾き値108と第2基準値112との差分を算出し、この算出結果を新た
な第2傾き値108としてメインメモリ33に上書きする。
1(正の閾値)よりも大きいかどうかを判断する。第1傾き値106から第2傾き値10
8を引いた結果の値がS1よりも大きい場合(すなわち第1ユニットが第2ユニットより
も相対的に向こう側に傾けられた場合)には、処理はステップS118に進み、S1より
も大きくない場合には処理はステップS120に進む。
ベクトルの変更方法としては種々の方法が考えられる。本実施形態では、一例として、図
15に示すように、キャラクタの現在位置における地面の法線ベクトルおよび現在の向き
ベクトルの両方に対して垂直かつ所定の大きさを有する左旋回ベクトルと、現在の向きベ
クトルとを合成することによって合成ベクトルを求め、この合成ベクトルと同じ方向を有
する単位ベクトルを新しい向きベクトルとして決定する。
S1よりも小さいかどうかを判断する。第1傾き値106から第2傾き値108を引いた
結果の値が−S1よりも小さい場合(すなわち第2ユニットが第1ユニットよりも相対的
に向こう側に傾けられた場合)には、処理はステップS122に進み、−S1よりも小さ
くない場合には処理はステップS124に進む。
値)よりも大きいかどうかを判断する。第1傾き値106と第2傾き値108の平均値が
S2よりも大きい場合(すなわち第1ユニットと第2ユニットが平均的に向こう側に傾け
られた場合)には、処理はステップS126に進み、S2よりも大きくない場合には処理
はステップS128に進む。
度データを設定する。例えば、平均値に比例した絶対値を有する正の速度データを設定す
る。その後、処理は図13のステップS150に進む。
小さいかどうかを判断する。第1傾き値106と第2傾き値108の平均値が−S2より
も小さい場合(すなわち第1ユニットと第2ユニットが平均的に手前側に傾けられた場合
)には、処理はステップS130に進み、−S2よりも小さくない場合には処理はステッ
プS132に進む。
度データを設定する。例えば、平均値に比例した絶対値を有する負の速度データを設定す
る。その後、処理は図13のステップS150に進む。
進む。
タを更新する。これにより、ゲーム世界のキャラクタは、向きベクトルが示す方向に向か
って速度データが示す距離だけ移動する。
づいて更新し、処理は図11のステップS104に戻る。その後、以上のような処理が繰
り返されることにより、プレイヤの操作に応じてゲーム画像が随時変化する。
すことができるので、プレイ中の動きの自由度が高くダイナミックなプレイが可能となる
。また、2つの操作ユニットの傾きの差分によりキャラクタを制御することができるので
、直感的な操作が可能となり、良好な操作性が得られる。
サを用いても操作ユニットの傾きを検出することができる(例えば、図16におけるZ軸
の出力値だけを参照しても、操作ユニットの傾きを検出することができる)ため、本実施
形態と同様の効果を得ることができる。
ットの傾きと第2ユニットの傾きの平均値とを利用してキャラクタの動作を制御する例を
説明したが、例えば、第1ユニットの傾きと第2ユニットの傾きの平均値を用いずに差分
だけを利用するようなゲームを実現することも可能である。以下、このような第1ユニッ
トの傾きと第2ユニットの傾きの差分だけを利用する例を、本実施形態の変形例として説
明する。
関係の一例を示す。第1ユニットが第2ユニットよりも相対的に向こう側に傾けられた場
合にはキャラクタは左旋回し、第2ユニットが第1ユニットよりも相対的に向こう側に傾
けられた場合にはキャラクタは右旋回する。また、加速ボタンが押された場合にはその時
点での進行方向にキャラクタが加速する。
る。ただし、図18において、図11と同じ処理については同じ参照符号を付し、説明を
省略する。
きの差分に応じてキャラクタを左旋回または右旋回させる処理が行われる。
を判断する。加速ボタンは第1ユニットにのみ設けられていてもよいし、第2ユニットの
みに設けられていてもよいし、第1ユニットと第2ユニットの両方にそれぞれ設けられて
いてもよい。加速ボタンが押された場合には、処理はステップS164に進み、加速ボタ
ンが押されていない場合には、処理はステップS166に進む。
じである。
対値を用いずに差分だけを利用してゲームをプレイすることができるため、例えば床に仰
向けで寝転がってもゲームを問題無くプレイすることが可能となり、ゲームプレイ中のプ
レイヤの姿勢の自由度が増す。
図19は、第2の実施形態における表示画像の一例である。モニタ2の画面には、プレ
イヤによって操作されるキャラクタ(ゲームオブジェクト)を含む3次元の仮想ゲーム世
界の様子が表示される。本実施形態ではキャラクタはそりに乗っており、そりは5匹の恐
竜(恐竜A〜恐竜E)によって引っ張られている。プレイヤは、第1ユニットまたは第2
ユニットを振ることによって、キャラクタの動作を制御することができる。なお、本実施
形態では、プレイヤが、第1ユニットを左手で把持し、第2ユニットを右手で把持すると
して説明する(ただし、逆の対応関係でもかまわない)。
例を示す。第1ユニットのみが振られた場合にはキャラクタは右旋回(進行方向を右に変
更)し、第2ユニットのみが振られた場合にはキャラクタは左旋回(進行方向を左に変更
)する。また、第1ユニットと第2ユニットが同時に振られた場合にはキャラクタはその
時点での進行方向に加速する。
なお、第1ユニットのみが振られた場合にキャラクタが左方向に進み、第2ユニットの
みが振られた場合に右方向に進み、同時に振られた場合に前方に進むようにしてもよい。
インメモリ33には、ゲームプログラム200、ゲーム画像データ202、キャラクタ制
御データ204、第1振り強さ値206、第2振り強さ値208、第1入力フラグ210
、第2入力フラグ212、同時入力フラグ214、第1タイマ216、第2タイマ218
、および同時入力タイマ220が格納される。
態と同様のため、説明を省略する。
トの振りの強さを表す値である。第2振り強さ値208は、第2加速度センサの出力値に
基づいて検出される第2ユニットの振りの強さを表す値である。
ットが振られたことが検出されたときにオンされる。第2入力フラグ212は、第2ユニ
ットが振られたことを示すフラグであり、第2ユニットが振られたことが検出されたとき
にオンされる。同時入力フラグ214は、第1ユニットと第2ユニットが同時に振られた
ことを示すフラグであり、第1ユニットと第2ユニットが同時に振られたことが検出され
たときにオンされる。
フレーム数)を示す値である。第2タイマ218は、第2ユニットが振られたことが検出
されてからの経過時間(経過フレーム数)を示す値である。同時入力タイマ220は、第
1ユニットと第2ユニットが同時に振られたことが検出されてからの経過時間(経過フレ
ーム数)を示す値である。
CPU30の処理の流れを説明する。なお、ステップS202からS266までの処理が
1フレームごとに繰り返される。
ステップS200で、ゲーム処理に利用する各種データ(キャラクタ制御データ204や
第1振り強さ値206や第1入力フラグ210や第1タイマ216など)の初期化を行い
、キャラクタを含むゲーム画像を生成してモニタ2の画面に表示する。
力フラグ214がオンである場合には処理はステップS204に進み、オンでない場合に
は処理はステップS210に進む。
時入力タイマ220が20以上である場合には処理はステップS208に進み、20以上
でない場合には処理は図24のステップS262に進む。
262に進む。
第2ユニットが同時に振られたことが検出されてから)20フレーム期間が経過するまで
の間は、第1ユニットの振り強さ検出(後述のステップS236)も第2ユニットの振り
強さ検出(後述のステップS250)も行われず、すなわちプレイヤによる第1ユニット
の振り操作も第2ユニットの振り操作も受け付けられない状態となる。これにより、プレ
イヤが行った一回の同時振り操作が、複数フレームにわたって連続して検出されてしまう
ことを防止することができる。
力フラグ210がオンである場合には処理はステップS212に進み、オンでない場合に
は処理はステップS222に進む。
16が5である場合(すなわち、第1ユニットの振りが検出された後、第2ユニットの振
りが検出されないまま5フレーム経過したとき=第1ユニットのみが振られた場合)には
処理はステップS216に進み、5でない場合には処理はステップS218に進む。
ベクトルの変更方法については第1の実施形態と同様である。
イマ216が10より大きい場合には処理はステップS220に進み、10より大きくな
い場合には処理はステップS222に進む。
振られたことが検出されてから)10フレーム期間が経過するまでの間は、第1ユニット
の振り強さ検出(後述のステップS236)が行われず、すなわちプレイヤによる第1ユ
ニットの振り操作が受け付けられない状態となる。これにより、プレイヤが行った一回の
振り操作が、複数フレームにわたって連続して検出されてしまうことを防止することがで
きる。
フレーム期間が経過するまでの間に第2ユニットが振られたことが検出された場合には、
その時点で同時入力フラグ214がオンになるので、その時点からさらに20フレーム期
間が経過するまでの間は、プレイヤによる第1ユニットの振り操作が受け付けられない状
態となる。なお、同時入力フラグ214がオフになると、第1ユニットの振り強さ検出(
後述のステップS236)と第2ユニットの振り強さ検出(後述のステップS250)が
同時に再開されるので、第1ユニットの振り操作の受け付け再開タイミングと第2ユニッ
トの振り操作の受け付け再開タイミングが一致することになる。
力フラグ212がオンである場合には処理はステップS224に進み、オンでない場合に
は処理は図23のステップS234に進む。
18が5である場合(すなわち、第2ユニットのみが振られた場合)には処理はステップ
S228に進み、5でない場合には処理はステップS230に進む。
イマ218が10より大きい場合には処理はステップS232に進み、10より大きくな
い場合には処理は図23のステップS234に進む。
振られたことが検出されてから)10フレーム期間が経過するまでの間は、第2ユニット
の振り強さ検出(後述のステップS250)が行われず、すなわちプレイヤによる第2ユ
ニットの振り操作が受け付けられない状態となる。これにより、プレイヤが行った一回の
振り操作が、複数フレームにわたって連続して検出されてしまうことを防止することがで
きる。
フレーム期間が経過するまでの間に第1ユニットが振られたことが検出された場合には、
その時点で同時入力フラグ214がオンになるので、その時点からさらに20フレーム期
間が経過するまでの間は、プレイヤによる第2ユニットの振り操作が受け付けられない状
態となる。なお、同時入力フラグ214がオフになると、第1ユニットの振り強さ検出(
後述のステップS236)と第2ユニットの振り強さ検出(後述のステップS250)が
同時に再開されるので、第1ユニットの振り操作の受け付け再開タイミングと第2ユニッ
トの振り操作の受け付け再開タイミングが一致することになる。すなわち、後述の通り、
本実施例では、第1ユニットの振り検出のタイミングと第2ユニットの振り検出のタイミ
ングが多少ずれていても同時振りと認識するが、この場合でも、第1ユニットの受付再開
タイミングと第2ユニットの受付再開タイミングが同時となるので、同時振り操作後に再
度同時振り操作をした場合に、後の同時振り操作において片方の振り検出だけがされるよ
うな問題を解決できる。なお、同時入力フラグがオンになった後の受け付け禁止期間を、
10フレーム(すなわち、第1ユニットや第2ユニットのみが振られた後の受け付け禁止
期間と同じ期間)としてもよい。また、同時入力フラグがオンになった場合の受け付け禁
止期間は、本実施例では、2つの振り検出タイミングのうち、後の振りタイミングを始期
としたが、先の振りタイミングを始期としてそこから20フレームなどとしてもよく、ま
た、中間のタイミング(先の振りタイミングと後の振りタイミングの間のタイミング(例
えば、ちょうど真ん中Nタイミングなど)としてもよい。
、第1入力フラグ210がオンである場合には処理はステップS248に進み、オンでな
い場合には処理はステップS236に進む。
さ検出の詳細を図25を参照して説明する。
(出力ベクトル)を取得する。ここでは、加速度センサのX軸方向の出力値をAxとし、
Y軸方向の出力値をAyとし、Z軸方向の出力値をAzとする。
(Ax,Ay,Az)の大きさ(すなわち、√(Ax2+Ay2+Az2))がK(Kは所
定値)よりも大きいかどうかを判断する。第1加速度センサの出力ベクトルの大きさがK
よりも大きい場合(振り操作があったと判断される)には、処理はステップS272に進
み、第1加速度センサの出力ベクトルの大きさがKよりも大きくない場合(振り操作がな
かったと判断される)には、処理はステップS274に進む。
戻り値Xとして返す。通常、第1ユニットを勢いよく振るほど第1加速度センサの出力ベ
クトルの大きさはより大きくなるので、この戻り値Xは、第1ユニットの振りの強さを反
映する値となる。その後、処理は図23のステップS238に進む。なお、このフローチ
ャートでは、出力ベクトルの大きさがKより大きくなったときに、すぐにそのときの出力
ベクトルの大きさを戻り値Xとして返すようになっているが、変形例として、出力ベクト
ルの大きさがKより大きくなった後、そのことを示す状態フラグを保持しておいて、その
後出力ベクトルが最大となったとき(出力ベクトルの大きさが増加した後減少する地点)
の出力ベクトル値を返すようにしてもよい。
判定条件としたが、より正確に振りの判定をしてもよい。すなわち、振り操作があったと
き、一般的には、加速度センサの出力は以下のように変化する。
(a)0→(b)出力増加→(c)最大→(d)出力減少→(e)0→(f)反対方向へ
の出力増加→(g)反対方向への出力最大→(h)反対方向への出力減少→(i)0
そこで、現在から所定期間前までにおける加速度センサの出力値の履歴を常に保存して
おいて、当該履歴が上記のような出力遷移になっているかを検出するようにしてもよい。
また、処理を簡略化して、当該履歴が上記のような出力遷移の一部と一致しているかを検
出するようにしてもよい。また、この場合、(a)から(i)のうちどの時点の出力値を
利用するかは任意に決めて良い((a)から(j)以外の点、例えば、出力増加中の所定
閾値になった時点などでも良い)。
にしてもよい。例えば、所定方向に動かす動作などが考えられる。この場合も、加速度セ
ンサの出力値の履歴を保存しておいて、当該履歴が所定パターンと一致するかどうかを検
出するようにしてもよい。
返す。その後、処理は図23のステップS238に進む。
ユニットの振り操作があったかどうかを判断し、第1ユニットの振り操作があった場合に
は処理はステップS240に進み、第1ユニットの振り操作がなかった場合には処理はス
テップS248に進む。
以下であるかどうかを判断する。第2入力フラグ212がオンであり、なおかつ第2タイ
マ218が4以下である場合(すなわち第1ユニットと第2ユニットがほぼ同時に振られ
た場合)には、処理はステップS242に進み、第2入力フラグ212がオンでない、も
しくは第2タイマ218が4以下でない場合には、処理はステップS246に進む。なお
、第2ユニットが振られてから4フレーム期間の間に第1ユニットが振られた場合に「第
1ユニットと第2ユニットが同時に振られた」と判断しているのは、プレイヤが第1ユニ
ットと第2ユニットを同時に振ったつもりでも、それらの振り操作が必ずしも厳密に同時
とは限らないからである。つまり、第1ユニットが振られたことが検出されたタイミング
と第2ユニットが振られたことが検出されたタイミングとの間に数フレーム期間の間隔が
あった場合でも「第1ユニットと第2ユニットが同時に振られた」と判断することで、よ
り良好な操作性が得られる。
値X(第1ユニットの振りの強さを反映する値)と、後述するステップS260で設定さ
れた第2振り強さ値208(第2ユニットの振りの強さを反映する値)とに応じて、キャ
ラクタの速度データを増加させる。例えば、現在の速度データに戻り値Xに比例した数値
と第2振り強さ値208に比例した数値を乗算することによって、新たな速度データを決
定してもよい。または、戻り値Xに第1係数を掛けた数値と、第2振り強さ値に第2係数
を掛けた数値を現在の速度データに加算してもよい(第1係数と第2係数は同じであって
もよいし、異なっても良い)。または、戻り値Xと第2振り強さ値の平均値に所定係数を
掛けた数値を現在の速度データに加算してもよい。
なお、振りの強さ検出の戻り値として、加速度センサの出力値のうち所定方向の成分の
大きさのみを利用しても良い。
にリセットしてスタートさせ、第2入力フラグ212をオフにする。
セットしてスタートさせ、第1振り強さ値206にステップS236の第1ユニットの振
り強さ検出の戻り値Xを設定する。
力フラグ212がオンである場合には処理はステップS250に進み、オンでない場合に
は処理は図24のステップS262に進む。
出を行う。すなわち、第2加速度センサの出力ベクトルの大きさがKより大きい場合には
、振り強さ検出の戻り値Xとして、第2加速度センサの出力ベクトルの大きさ(第2ユニ
ットの振りの強さを反映する値)が返される。
ユニットの振り操作があったかどうかを判断し、第2ユニットの振り操作があった場合に
は処理はステップS254に進み、第2ユニットの振り操作がなかった場合には処理は図
24のステップS262に進む。
以下であるかどうかを判断する。第1入力フラグ210がオンであり、なおかつ第1タイ
マ216が4以下である場合(すなわち第1ユニットと第2ユニットがほぼ同時に振られ
た場合)には、処理はステップS256に進み、第1入力フラグ210がオンでない、も
しくは第1タイマ216が4以下でない場合には、処理はステップS260に進む。
値X(第2ユニットの振りの強さを反映する値)と、ステップS246で設定された第1
振り強さ値206(第1ユニットの振りの強さを反映する値)とに応じて、速度データを
増加させる。例えば、現在の速度データに戻り値Xに比例した数値と第1振り強さ値20
6に比例した数値を乗算することによって、新たな速度データを決定してもよい。
にリセットし、第1入力フラグ210をオフにする。
セットし、第2振り強さ値208にステップS250の第2ユニットの振り強さ検出の戻
り値Xを設定する。
タを更新する。これにより、ゲーム世界のキャラクタは、向きベクトルが示す方向に向か
って速度データが示す距離だけ移動する。
づいて更新する。
の影響をキャラクタの速度に反映させるための処理である。
画像が随時変化する。
すことができるので、プレイ中の動きの自由度が高くダイナミックなプレイが可能となる
。また、操作ユニットを振ることによってキャラクタを制御することができるので、直感
的な操作が可能となり、良好な操作性が得られる。また、操作ユニットを強く振るほどキ
ャラクタの加速度が大きくなるので、より直感的な操作が可能となる。
サを用いても操作ユニットの振り操作および振り強さを検出することができる(例えば、
図16におけるZ軸の出力値だけを参照しても、操作ユニットが振られたことと、その強
さを検出することができる)ため、本実施形態と同様の効果を得ることができる。
第3の実施形態における表示画像は、例えば図19と同様である。本実施形態では、プ
レイヤは、第1ユニットまたは第2ユニットを振ることによって、キャラクタの動作を制
御することができる。
例を示す。第1ユニットが連続して振られた場合にはキャラクタは右旋回し、第2ユニッ
トが連続して振られた場合にはキャラクタは左旋回する。また、第1ユニットと第2ユニ
ットが交互に振られた場合にはキャラクタはその時点での進行方向に加速する。
インメモリ33には、ゲームプログラム300、ゲーム画像データ302、キャラクタ制
御データ304、操作履歴情報306、および振り間隔タイマ308が格納される。
態と同様のため、説明を省略する。
または第2ユニット)を過去2回分について示す情報である。
からの経過時間(経過フレーム数)を示す値である。
CPU30の処理の流れを説明する。
ステップS300で、ゲーム処理に利用する各種データ(キャラクタ制御データ204や
操作履歴情報306や振り間隔タイマ308など)の初期化を行い、キャラクタを含むゲ
ーム画像を生成してモニタ2の画面に表示する。
作検出の詳細を図30を参照して説明する。
(出力ベクトル)を取得する。ここでは、加速度センサのX軸方向の出力値をAxとし、
Y軸方向の出力値をAyとし、Z軸方向の出力値をAzとする。
(Ax,Ay,Az)の大きさがK(Kは所定値)よりも大きいかどうかを判断する。第
1加速度センサの出力ベクトルの大きさがKよりも大きい場合には、処理はステップS3
50に進み、第1加速度センサの出力ベクトルの大きさがKよりも大きくない場合には、
処理はステップS352に進む。
返す。その後、処理は図28のステップS304に進む。
返す。その後、処理は図28のステップS304に進む。
ユニットの振り操作があったかどうかを判断し、第1ユニットの振り操作があった場合に
は処理はステップS306に進み、第1ユニットの振り操作がなかった場合には処理は図
29のステップS318に進む。
操作ユニット」に更新前の「今回振られた操作ユニット」の値を設定した後、「今回振ら
れた操作ユニット」に第1ユニットを示す値を設定する。
判断する。より具体的には、操作履歴情報306を参照し、「前回振られた操作ユニット
」に第1ユニットおよび第2ユニットのいずれの操作ユニットを示す値も格納されていな
い場合に、今回検出された振り操作が「連続振りの一振り目」であると判断する。なお、
本実施形態では、前回の振り操作と今回の振り操作の時間間隔が60フレーム期間を超え
ている場合に、今回の振り操作を「連続振りの一振り目」とみなしている。今回検出され
た振り操作が「連続振りの一振り目」である場合には処理は図29のステップS318に
進み、今回検出された振り操作が「連続振りの一振り目」でない場合には処理はステップ
S312に進む。
第1ユニットかどうかを判断する。前回振られた操作ユニットが第1ユニットである場合
(すなわち第1ユニットが連続して振られた場合)には処理はステップS316に進み、
前回振られた操作ユニットが第1ユニットでない場合(すなわち、前回振られた操作ユニ
ットが第2ユニットの場合=第1ユニットと第2ユニットが交互に振られた場合)には処
理はステップS314に進む。
テップS302で第1ユニットの振り操作を検出するときに、第2の実施形態と同様に振
り強さを検出し、第1ユニットの振り強さが大きいほど速度データをより大きく増加させ
てもよい。また、前回ユニットが振られたときの振り強さを記憶しておいて、当該振り強
さと、今回の第1ユニットの振り強さの両方に基いて速度データを増加させてもよい(例
えば、2つの振り強さの合計や平均(加重平均も可、過去の振り強さほど小さい係数にす
るなど)などに基いて速度データの増加量を決定するなど)。また、第1ユニットと第2
ユニットの交互振り操作が続く限り、各回の振りの強さを合計したり平均したりして、当
該合計値や平均値などに基いて速度データを増加する量を決定してもよい。
でも、第1ユニットの振り強さが大きいほどキャラクタをより大きく旋回させてもよい。
また、前回ユニットが振られたときの振り強さを記憶しておいて、当該振り強さと、今回
の第1ユニットの振り強さの両方に基いて旋回の大きさを決定してもよい。また、第1ユ
ニットの連続入力が続く限り、各回の振りの強さを合計したり平均したりして、当該合計
値や平均値などに基いて旋回の大きさを決定してもよい。
り操作検出を行う。
ユニットの振り操作があったかどうかを判断し、第2ユニットの振り操作があった場合に
は処理はステップS322に進み、第2ユニットの振り操作がなかった場合には処理はス
テップS334に進む。
操作ユニット」に更新前の「今回振られた操作ユニット」の値を設定した後、「今回振ら
れた操作ユニット」に第2ユニットを示す値を設定する。
判断する。今回検出された振り操作が「連続振りの一振り目」である場合には処理はステ
ップS334に進み、今回検出された振り操作が「連続振りの一振り目」でない場合には
処理はステップS328に進む。
第2ユニットかどうかを判断する。前回振られた操作ユニットが第2ユニットである場合
(すなわち第2ユニットが連続して振られた場合)には処理はステップS332に進み、
前回振られた操作ユニットが第2ユニットでない場合(すなわち、前回振られた操作ユニ
ットが第1ユニットである場合=第1ユニットと第2ユニットが交互に振られた場合)に
は処理はステップS330に進む。
テップS318で第2ユニットの振り操作を検出するときに、第2の実施形態と同様に振
り強さも検出し、第2ユニットの振り強さが大きいほど速度データをより大きく増加させ
てもよい。
でも、第2ユニットの振り強さが大きいほどキャラクタをより大きく旋回させてもよい。
り間隔タイマ308が60を超えた場合には処理はステップS338に進み、振り間隔タ
イマ308が60を超えていない場合には処理はステップS340に進む。
する。これにより、ゲーム世界のキャラクタは、向きベクトルが示す方向に向かって速度
データが示す距離だけ移動する。
づいて更新する。
テップS302に戻る。
すことができるので、プレイ中の動きの自由度が高くダイナミックなプレイが可能となる
。また、操作ユニットを振ることによってキャラクタを制御することができるので、直感
的な操作が可能となり、良好な操作性が得られる。
同様に、1軸の加速度センサを用いても本実施形態と同様の効果を得ることができる。
ットと第2ユニットの交互振りを検出して、それぞれの検出に応じたゲーム制御をおこな
ったが、変形例として、連続する振りパターンが所定パターンであることを検出するよう
にしてもよい。例えば、第1ユニット振り→第2ユニット振り→第2ユニット振り→第1
ユニット振りというパターン(このパターンに限らず、適宜パターンが設定されてよい)
になったことを検出して、所定のゲーム処理(例えば、キャラクタに攻撃動作をさせるな
ど)をしてもよい。
きに連続した振りまたは交互の振りであると判断したが、これに限らず、一回目の振りか
ら所定時間以内の振りを連続した振りまたは交互の振りであると判断してもよいし、振り
が連続するほど、許容する間隔を長くする(または短くする)ようにしてもよい。
第4の実施形態における表示画像は、例えば図19と同様である。本実施形態では、第
1ユニットおよび第2ユニットのうちの一方を傾け操作用ユニットとして利用し、他方を
振り操作用ユニットとして利用する。プレイヤは、傾け操作用ユニットを傾けたり、振り
操作用ユニットを振ったりすることによって、キャラクタの動作を制御することができる
。
例を示す。傾け操作用ユニットが右側に傾けられた場合にはキャラクタは右旋回し、傾け
操作用ユニットが左側に傾けられた場合にはキャラクタは左旋回する。また、振り操作用
ユニットが振られた場合にはキャラクタはその時点での進行方向に加速する。
インメモリ33には、ゲームプログラム400、ゲーム画像データ402、キャラクタ制
御データ404、傾け操作用ユニット指定データ406、および振り操作用ユニット指定
データ408が格納される。
態と同様のため、説明を省略する。
操作ユニットを傾け操作用ユニットとして利用するかを示すデータである。また、振り操
作用ユニット指定データ408は、第1ユニットおよび第2ユニットのいずれの操作ユニ
ットを振り操作用ユニットとして利用するかを示すデータである。
CPU30の処理の流れを説明する。
ステップS400で、ゲーム処理に利用する各種データ(キャラクタ制御データ204な
ど)の初期化を行い、傾け操作用ユニット指定データ406に第1ユニットを示す1を初
期値として格納し、振り操作用ユニット指定データ408に第2ユニットを示す2を初期
値として格納する。さらに、キャラクタを含むゲーム画像を生成してモニタ2の画面に表
示する。
が入力されたかどうかを判断し、ユニット役割交換指示があった場合には処理はステップ
S404に進み、ユニット役割交換指示がなかった場合には処理はステップS406に進
む。
ット指定データ408の値を入れ替える。
と第2ユニットの役割を適宜に変更することができる。なお、このような第1ユニットの
役割と第2ユニットの役割の変更は、他の実施形態においても同様の方法で実現可能であ
る。
検出の詳細を図34を参照して説明する。
出力値(出力ベクトル)を取得する。ここでは、加速度センサのX軸方向の出力値をAx
とし、Y軸方向の出力値をAyとし、Z軸方向の出力値をAzとする。
x,Ay,Az)の大きさが0.8〜1.2の範囲内かどうかを判断する。加速度センサ
の出力ベクトルの大きさが0.8〜1.2の範囲内であった場合には、処理はステップS
428に進む。加速度センサの出力ベクトルの大きさが0.8〜1.2の範囲内でなかっ
た場合には、処理はステップS430に進む。
軸周りの傾きを表している;図36における角度Θ)を算出し、算出された値を傾き検出
の戻り値Θとして返す。その後、処理は図33のステップS408に進む。
図33のステップS408に進む。
エラーであった場合には処理はステップS412に進み、エラーでなかった場合には処理
はステップS410に進む。
トルを回転させる。向きベクトルの変更方法としては種々の方法が考えられる。本実施形
態では、一例として、図37に示すように、キャラクタの現在位置における地面の法線ベ
クトルを回転軸として現在の向きベクトルを戻り値Θだけ回転させることによって得られ
るベクトルを、新しい向きベクトルとして決定する。
振り操作検出の詳細を図35を参照して説明する。
値(出力ベクトル)を取得する。ここでは、加速度センサのX軸方向の出力値をAxとし
、Y軸方向の出力値をAyとし、Z軸方向の出力値をAzとする。
x,Ay,Az)の大きさがK(Kは所定値)よりも大きいかどうかを判断する。加速度
センサの出力ベクトルの大きさがKよりも大きい場合には、処理はステップS436に進
み、加速度センサの出力ベクトルの大きさがKよりも大きくない場合には、処理はステッ
プS438に進む。
返す。その後、処理は図33のステップS414に進む。
返す。その後、処理は図33のステップS414に進む。
操作用ユニットの振り操作があったかどうかを判断し、振り操作用の振り操作があった場
合には処理はステップS416に進み、振り操作用ユニットの振り操作がなかった場合に
は処理はステップS418に進む。
テップS412で振り操作用ユニットの振り操作を検出するときに、第2の実施形態と同
様に振り強さも検出し、振り操作用ユニットの振り強さが大きいほど速度データをより大
きく増加させてもよい。
する。これにより、ゲーム世界のキャラクタは、向きベクトルが示す方向に向かって速度
データが示す距離だけ移動する。
づいて更新する。
402に戻る。
すことができるので、プレイ中の動きの自由度が高くダイナミックなプレイが可能となる
。また、傾け操作用ユニットを傾けることによってキャラクタを旋回させ、振り操作用ユ
ニットを振ることによってキャラクタを加速させることができるので、直感的な操作が可
能となり、良好な操作性が得られる。
よび第2の実施形態と同様に、1軸の加速度センサを用いても本実施形態と同様の効果を
得ることができる。
向を検出し、検出された方向に応じてキャラクタの加速方向やその大きさを変化させても
よい。
第5の実施形態における表示画像は、例えば図19と同様である。本実施形態では、第
1ユニットおよび第2ユニットが振られた方向(動いた方向)に基づいてキャラクタの動
作が制御される。
例を示す。第1ユニットまたは第2ユニットのいずれか一方の操作ユニットのみが斜め右
向こう側(右斜め前方;なお、前方とはプレイヤが向いている方向)に振られた場合には
、キャラクタは右前方に向かって少しだけ加速する。第1ユニットまたは第2ユニットの
いずれか一方の操作ユニットのみが斜め左手前側(左斜め後方:なお、後方とはプレイヤ
が向いている方向と逆方向)に振られた場合には、キャラクタは左後方に向かって少しだ
け加速する。このように本実施形態では、基本的には操作ユニットが振られた方向(現実
世界におけるプレイヤ前方を基準とする方向)に対応する方向(仮想空間におけるキャラ
クタ前方を基準とする方向)にキャラクタが加速する。
ラクタは右前方に向かって大きく加速する。このように本実施形態では、第1ユニットと
第2ユニットが同時に振られ、かつそれらの振られた方向が一致している場合には、キャ
ラクタが大きく加速する。
、他方のユニットが向こう側に振られた場合には、キャラクタは右前方に少しだけ加速す
る。このように本実施形態では、第1ユニットと第2ユニットが同時に振られ、かつそれ
らの方向が一致していない場合には、第1ユニットが振られた方向と第2ユニットが振ら
れた方向とを合成した方向に基づいて、キャラクタの加速方向が決定される。
ラクタは停止する。
インメモリ33には、ゲームプログラム500、ゲーム画像データ502、キャラクタ制
御データ504、第1振り方向ベクトル506、第2振り方向ベクトル508、第1入力
フラグ510、第2入力フラグ512、同時入力フラグ514、第1タイマ516、第2
タイマ518、同時入力タイマ520、第1サンプリングデータ522、および第2サン
プリングデータ524が格納される。
方向を示す速度ベクトルと、キャラクタの姿勢を示す姿勢マトリクスとを含んでいる。現
在位置データは3次元座標値で表されるデータであり、速度ベクトルは3次元のベクトル
で表されるデータである。姿勢マトリクスは、キャラクタの前方を示す3次元の単位ベク
トルである前方ベクトルと、キャラクタの右手方向を示す3次元の単位ベクトルである右
方ベクトルと、キャラクタの上方を示す3次元の単位ベクトルである上方ベクトルの3つ
の単位ベクトルの集合である。
クトルである。第2振り方向ベクトル508は、ユーザによって第2ユニットが振られた
方向を示すベクトルである。
16、第2タイマ518、および同時入力タイマ520については、第2の実施形態と同
様であるので説明を省略する。
値の直近の60フレーム分のサンプリングデータである。第2サンプリングデータ524
は、第2ユニットに設けられた第2加速度センサの出力値の直近の60フレーム分のサン
プリングデータである。
CPU30の処理の流れを説明する。
ステップS500で、ゲーム処理に利用する各種データ(キャラクタ制御データ204や
第1振り方向ベクトル506や第1入力フラグ510や第1タイマ516や第1サンプリ
ングデータ522など)の初期化を行い、キャラクタを含むゲーム画像を生成してモニタ
2の画面に表示する。
し、第1サンプリングデータ522および第2サンプリングデータ524を更新する。
力フラグ514がオンである場合には処理はステップS506に進み、オンでない場合に
は処理はステップS512に進む。
時入力タイマ520が20以上である場合には処理はステップS510に進み、20以上
でない場合には処理は図43のステップS596に進む。
596に進む。
力フラグ510がオンである場合には処理はステップS514に進み、オンでない場合に
は処理はステップS526に進む。
16が5である場合(すなわち、第1ユニットのみが振られた場合)には処理はステップ
S518に進み、5でない場合には処理はステップS522に進む。
って検出された第1振り方向ベクトル506に基づいて速度ベクトルを変更する。速度ベ
クトルの変更方法としては種々の方法が考えられる。本実施形態では、一例として、図4
5に示すように、第1振り方向ベクトル506のX軸値をa1、Z軸値をb1とすると、
現在のベクトルと、(右方ベクトル×a1+前方ベクトル×b1)で表されるベクトルと
を合成することによって、新しい速度ベクトルを決定する。したがって、第1振り方向ベ
クトル506のX軸値が大きいほど、キャラクタは右方ベクトルの方向に大きく加速し、
第1振り方向ベクトル506のZ軸値が大きいほど、キャラクタは前方ベクトルの方向に
大きく加速する。
クトルの方向に一致するように、姿勢マトリクスを更新する。
イマ516が10より大きい場合には処理はステップS524に進み、10より大きくな
い場合には処理はステップS526に進む。
力フラグ512がオンである場合には処理はステップS528に進み、オンでない場合に
は処理は図41のステップS540に進む。
18が5である場合(すなわち、第2ユニットのみが振られた場合)には処理はステップ
S532に進み、5でない場合には処理はステップS536に進む。
って検出された第2振り方向ベクトル508に基づいて速度ベクトルを変更する。速度ベ
クトルの変更方法は、前述のステップS518と同様である。
クトルの方向に一致するように、姿勢マトリクスを更新する。
イマ518が10より大きい場合には処理はステップS538に進み、10より大きくな
い場合には処理は図41のステップS540に進む。
、第1入力フラグ510がオンである場合には処理は図42のステップS568に進み、
オンでない場合には処理はステップS542に進む。
向検出の詳細を図44を参照して説明する。
しい第1加速度センサの検出値(Ax,Ay,Az)のX軸値とZ軸値で示されるベクト
ル(以下、XZベクトルと称す)の大きさ(すなわち、√(Ax2+Az2))がL(Lは
所定値)よりも大きいかどうかを判断する。2番目に新しい第1加速度センサの検出値の
XZベクトルの大きさがLよりも大きい場合(振り操作があったと判断される)には、処
理はステップS606に進み、Lよりも大きくない場合(振り操作がなかったと判断され
る)には、処理はステップS610に進む。
加速度センサの検出値のXZベクトルの大きさが、最新の第1加速度センサの検出値のX
Zベクトルの大きさよりも大きいかどうかを判断する。これは、第1加速度センサに対し
て、XZ平面と平行な方向に最も大きい力が加わったタイミングを検出するための処理で
ある。プレイヤが第1ユニットをXZ平面と平行な方向に振ると、振り始め直後と振り終
わり間際において第1ユニット(第1加速度センサ)にプレイヤによって大きな力が加え
られるので、第1加速度センサの検出値のXZベクトルの大きさは、振り始め直後と振り
終わり間際において極大となる。2番目に新しい第1加速度センサの検出値のXZベクト
ルの大きさが、最新の第1加速度センサの検出値のXZベクトルの大きさよりも大きい場
合(すなわち第1加速度センサの検出値のXZベクトルの大きさが極大値となった直後)
には、処理はステップS608に進み、2番目に新しい第1加速度センサの検出値のXZ
ベクトルの大きさが、最新の第1加速度センサの検出値のXZベクトルの大きさよりも大
きくない場合には、処理はステップS610に進む。
サの検出値のXZベクトル(Ax,Az)を返す。このXZベクトル(Ax,Az)は、
プレイヤが第1ユニットを振ったときに、第1ユニットに加えられた力の方向(すなわち
第1ユニットが振られた方向)を示している。その後、処理は図41のステップS544
に進む。
なお、XZベクトルがL以上である期間のXZベクトルを平均することなどにより振り
方向を求めても良い。
は実際に操作ユニットが振られたときの移動方向とは逆方向を示す場合がある。このよう
な場合には、振り方向検出の戻り値として、検出されたXZベクトルに−1を乗算した結
果の値を返せばよい。
す。その後、処理は図41のステップS544に進む。
ユニットの振り操作があったかどうかを判断し、第1ユニットの振り操作があった場合に
は処理はステップS546に進み、第1ユニットの振り操作がなかった場合には処理は図
42のステップS568に進む。
検出の戻り値(すなわち第1ユニットが振られた方向を示すベクトル)を設定する。
以下であるかどうかを判断する。第2入力フラグ512がオンであり、なおかつ第2タイ
マ518が4以下である場合(すなわち第1ユニットと第2ユニットがほぼ同時に振られ
た場合)には、処理はステップS550に進み、第2入力フラグ512がオンでない、も
しくは第2タイマ518が4以下でない場合には、処理はステップS566に進む。
定された第2振り方向ベクトル508(第2ユニットが振られた方向を示すベクトル)の
なす角度が−30°〜30°の範囲内であるかどうかを判断する。第1振り方向ベクトル
506と第2振り方向ベクトル508のなす角度が−30°〜30°の範囲内であった場
合(すなわち第1ユニットと第2ユニットがほぼ同じ方向に振られた場合)には、処理は
ステップS552に進み、第1振り方向ベクトル506と第2振り方向ベクトル508の
なす角度が−30°〜30°の範囲内でなかった場合には、処理はステップS558に進
む。なお、−30°〜30°という値は一例であり、これより狭い範囲であってもよいし
、広い範囲であってもよく、ほぼ同じ方向であるとみなされる範囲であれば良い。
基づいて速度ベクトルを変更する。速度ベクトルの変更方法としては種々の方法が考えら
れる。本実施形態では、一例として、図46に示すように、第1振り方向ベクトル506
と第2振り方向ベクトル508を合成して合成振り方向ベクトルを求める。そして、この
合成振り方向ベクトルのX軸値をa3、Z軸値をb3とすると、現在のベクトルと、(右
方ベクトル×a3+前方ベクトル×b3)×α(所定の定数)で表されるベクトルとを合
成することによって、新しい速度ベクトルを決定する。αは定数であって、ステップS5
52ではα=2となる。つまり、ステップS552では、現在のベクトルと大きさを2倍
にした合成ベクトルとを合成することによって、新しい速度ベクトルが決定される。なお
、ステップS552において、第1振り方向ベクトルまたは第2振り方向ベクトルを2倍
したベクトルを合成ベクトルとみなしてもよい。
クトルの方向に一致するように、姿勢マトリクスを更新する。
にリセットし、第2入力フラグ512をオフにする。
なす角度が150°〜180°の範囲内または−150°〜−180°の範囲内であるか
どうかを判断する。第1振り方向ベクトル506と第2振り方向ベクトル508のなす角
度が150°〜180°の範囲内または−150°〜−180°の範囲内であった場合(
すなわち第1ユニットと第2ユニットがほぼ逆方向に振られた場合)には、処理はステッ
プS560に進む。第1振り方向ベクトル506と第2振り方向ベクトル508のなす角
度が150°〜180°の範囲内でなく、かつ−150°〜−180°の範囲内でもなか
った場合には、処理はステップS562に進む。なお、150°〜180°、−150°
〜−180°という値は一例であり、これより狭い範囲であってもよいし、広い範囲であ
ってもよく、ほぼ逆方向であるとみなされる範囲であれば良い。
2振り方向ベクトル508を合成して合成振り方向ベクトルを求め、そして、この合成振
り方向ベクトルのX軸値をa3、Z軸値をb3とすると、現在のベクトルと、(右方ベク
トル×a3+前方ベクトル×b3)×α(所定の定数)で表されるベクトルとを合成する
ことによって、新しい速度ベクトルを決定する。ステップS562ではα=1.5となる
。つまり、ステップS562では、現在のベクトルと大きさを1.5倍にした合成ベクト
ルとを合成することによって、新しい速度ベクトルが決定される。
クトルの方向に一致するように、姿勢マトリクスを更新する。
セットする。
、第2入力フラグ512がオンである場合には処理は図43のステップS596に進み、
オンでない場合には処理はステップS570に進む。
向検出の詳細を図44を参照して説明する。
しい第2加速度センサの検出値のXZベクトルの大きさがLよりも大きいかどうかを判断
する。2番目に新しい第2加速度センサの検出値のXZベクトルの大きさがLよりも大き
い場合(振り操作があったと判断される)には、処理はステップS606に進み、Lより
も大きくない場合(振り操作がなかったと判断される)には、処理はステップS610に
進む。
加速度センサの検出値のXZベクトルの大きさが、最新の第2加速度センサの検出値のX
Zベクトルの大きさよりも大きいかどうかを判断する。2番目に新しい第2加速度センサ
の検出値のXZベクトルの大きさが、最新の第2加速度センサの検出値のXZベクトルの
大きさよりも大きい場合(すなわち第2加速度センサの検出値のXZベクトルの大きさが
極大値となった直後)には、処理はステップS608に進み、2番目に新しい第2加速度
センサの検出値のXZベクトルの大きさが、最新の第2加速度センサの検出値のXZベク
トルの大きさよりも大きくない場合には、処理はステップS610に進む。
サの検出値のXZベクトル(Ax,Az)を返す。このXZベクトル(Ax,Az)は、
プレイヤが第2ユニットを振ったときに、第2ユニットに加えられた力の方向(すなわち
第2ユニットが振られた方向)を示している。その後、処理は図42のステップS572
に進む。
す。その後、処理は図42のステップS572に進む。
ユニットの振り操作があったかどうかを判断し、第2ユニットの振り操作があった場合に
は処理はステップS574に進み、第2ユニットの振り操作がなかった場合には処理は図
43のステップS596に進む。
検出の戻り値(すなわち第2ユニットが振られた方向を示すベクトル)を設定する。
以下であるかどうかを判断する。第1入力フラグ510がオンであり、なおかつ第1タイ
マ516が4以下である場合(すなわち第1ユニットと第2ユニットがほぼ同時に振られ
た場合)には、処理はステップS578に進み、第2入力フラグ512がオンでない、も
しくは第2タイマ518が4以下でない場合には、処理はステップS594に進む。
なす角度が−30°〜30°の範囲内であるかどうかを判断する。第1振り方向ベクトル
506と第2振り方向ベクトル508のなす角度が−30°〜30°の範囲内であった場
合(すなわち第1ユニットと第2ユニットがほぼ同じ方向に振られた場合)には、処理は
ステップS580に進み、第1振り方向ベクトル506と第2振り方向ベクトル508の
なす角度が−30°〜30°の範囲内でなかった場合には、処理はステップS586に進
む。
2倍にした合成ベクトルとを合成することによって、新しい速度ベクトルを決定する。
クトルの方向に一致するように、姿勢マトリクスを更新する。
にリセットし、第1入力フラグ510をオフにする。
なす角度が150°〜180°の範囲内または−150°〜−180°の範囲内であるか
どうかを判断する。第1振り方向ベクトル506と第2振り方向ベクトル508のなす角
度が150°〜180°の範囲内または−150°〜−180°の範囲内であった場合(
すなわち第1ユニットと第2ユニットがほぼ逆方向に振られた場合)には、処理はステッ
プS588に進む。第1振り方向ベクトル506と第2振り方向ベクトル508のなす角
度が150°〜180°の範囲内でなく、かつ−150°〜−180°の範囲内でもなか
った場合には、処理はステップS590に進む。
倍にした合成ベクトルとを合成することによって、新しい速度ベクトルを決定する。
クトルの方向に一致するように、姿勢マトリクスを更新する。
セットする。
。
勢マトリクスに基づいて更新する。
新する。これは、例えばキャラクタが急な坂を上るときにキャラクタの姿勢をやや仰向け
に傾けるとともに、キャラクタの進行方向を坂に沿わせるための処理である。
テップS502に戻る。
画像が随時変化する。
(1)第1ユニットと第2ユニットが異なるタイミングで振られたとき→それぞれの振り
方向ベクトルに基いて速度ベクトルが更新される。
(2)第1ユニットと第2ユニットがほぼ同時にほぼ同じ方向に振られたとき→合成ベク
トルを2倍したベクトルに基いて速度ベクトルが更新される。
(3)第1ユニットと第2ユニットがほぼ同時に異なる方向(ほぼ逆方向を除く)に振ら
れたとき→合成ベクトルを1.5倍したベクトルに基いて速度ベクトルが更新される。
(4)第1ユニットと第2ユニットがほぼ同時にほぼ逆方向に振られたとき→速度ベクト
ルが0になる(停止する)。
このように、第1ユニットの振りと第2ユニットの振りのタイミングや相対的方向に基
いて、異なるゲーム処理をおこなうため、プレイヤに多様な入力を可能にする。
すことができるので、プレイ中の動きの自由度が高くダイナミックなプレイが可能となる
。また、操作ユニットを振ることによってキャラクタを制御することができるので、直感
的な操作が可能となり、良好な操作性が得られる。また、2つの操作ユニットを同時に振
る際の振る方向が近いほどキャラクタの加速度が大きくなるので、より直感的な操作が可
能となる。
サを用いても操作ユニットの振り方向を検出することができる(例えば、図44ではX軸
とZ軸の2軸の出力値を参照して、操作ユニットが振られたことと、その方向を検出して
いる)ため、本実施形態と同様の効果を得ることができる。
きに、その振られた方向に応じてキャラクタを加速させる例を説明したが、これに替えて
、第1ユニットと第2ユニットのいずれか一方だけが振られたときにはキャラクタを加速
させず、第1ユニットと第2ユニットの両方がほぼ同時に振られたときにだけキャラクタ
を加速させるようにしてもよい。
特にXZベクトル)の大きさが極大値となったことが検出されたときに、その時点近傍の
加速度センサの出力に基づいて操作ユニットの振り方向を検出したが、本発明はこれに限
らず、他の任意の方法で操作ユニットの振り方向を検出してもよい。例えば、加速度セン
サのXZベクトルの大きさが一旦所定値を超えてから0に戻ったときに、その期間内のサ
ンプリングデータを参照して、その期間内の加速度センサのXYベクトルのうちで大きさ
が最大のものを振り方向ベクトルとして設定してもよいし、その期間内の加速度センサの
XYベクトルを平均したものを振り方向ベクトルとして設定してもよいし、その期間内の
加速度センサのXYベクトルを合成したものを振り方向ベクトルとして設定してもよい。
また、加速度センサの出力を積分することによって操作ユニットの移動速度を算出し、こ
うして算出された移動速度が一定以上である期間の加速度センサの出力に基づいて操作ユ
ニットの振り方向を検出してもよい。
、その動きの方向とタイミングに基いておこなってもよい。
第6の実施形態における表示画像は、例えば図19と同様である。本実施形態では、第
1ユニットおよび第2ユニットが振られた方向に基づいてキャラクタの動作が制御される
。
、プレイヤは、方向指示操作(操作ユニットを水平方向に動かす操作)によって方向を指
示し、その後、トリガ操作(操作ユニットを鉛直下方に動かす操作)を行うことによって
、方向指示操作によって指示した方向の入力を確定させることができる。方向指示操作に
おける第1ユニットおよび第2ユニットの操作方向と、キャラクタの動作との対応関係は
、いくつかの点を除けば図38と同じである。なお、以下では、操作ユニットを動かす操
作の一例として振る操作を採用する場合について説明するが、本発明は振り操作に限られ
ず、操作ユニットの動きを検出し、その動きの方向と大きさによっておこなえば十分であ
る。
インメモリ33には、ゲームプログラム703、ゲーム画像データ704、キャラクタ制
御データ705、第1振り方向ベクトル709、第2振り方向ベクトル710、第1入力
フラグ711、第2入力フラグ712、同時入力フラグ714、第1タイマ716、第2
タイマ718、同時入力タイマ720、第1サンプリングデータ722、第2サンプリン
グデータ724、第1トリガ操作強さ値726、および第2トリガ操作強さ値728が格
納される。
、第2振り方向ベクトル710、第1入力フラグ711、第2入力フラグ712、同時入
力フラグ714、第1タイマ716、第2タイマ718、同時入力タイマ720、第1サ
ンプリングデータ722、および第2サンプリングデータ724については、第5の実施
形態と同様のため、説明を省略する。
値である。第2トリガ操作強さ値728は、第2ユニットによるトリガ操作時の振りの強
さを示す値である。
CPU30の処理の流れを説明する。
10、S712、S714、S716については前述した第5の実施形態と同様なので説
明を省略する。
データ722に基づいて算出される第1振り方向ベクトル709(すなわち、第1ユニッ
トによる方向指示操作時に、第1ユニットがプレイヤによって振られた方向を示すベクト
ル)と、後述するステップS742の第1ユニットに関する振り強さ検出の検出結果に応
じて設定される第1トリガ操作強さ値726(すなわち、第1ユニットによるトリガ操作
時に、第1ユニットがプレイヤによって振られた強さを示すベクトル)とに基づいて、速
度ベクトルを変更する。速度ベクトルの変更方法としては種々の方法が考えられる。本実
施形態では、一例として、図54に示すように、第1振り方向ベクトル709のX軸値を
a1、Z軸値をb1とし、第1トリガ操作強さ値726をβ1とすると、現在のベクトル
と、(右方ベクトル×a1+前方ベクトル×b1)×βで表されるベクトルとを合成する
ことによって、新しい速度ベクトルを決定する。したがって、第1トリガ操作強さ値72
6が大きいほどキャラクタの加速度が大きくなる。
述した第5の実施形態と同様なので説明を省略する。
基づいて算出される第2振り方向ベクトル710(すなわち、第2ユニットによる方向指
示操作時に、第2ユニットがプレイヤによって振られた方向を示すベクトル)と、後述す
るステップS776の第2ユニットに関する振り強さ検出の検出結果に応じて設定される
第2トリガ操作強さ値728(すなわち、第2ユニットによるトリガ操作時に、第2ユニ
ットがプレイヤによって振られた強さを示すベクトル)とに基づいて、速度ベクトルを変
更する。例えば、第2振り方向ベクトル710のX軸値をa2、Z軸値をb2とし、第2
トリガ操作強さ値728をβとすると、現在のベクトルと、(右方ベクトル×a2+前方
ベクトル×b2)×βで表されるベクトルとを合成することによって、新しい速度ベクト
ルを決定する。したがって、第2トリガ操作強さ値728が大きいほどキャラクタの加速
度が大きくなる。
前述した第5の実施形態と同様なので説明を省略する。
の振り強さ検出の詳細を図53を参照して説明する。
しい第1加速度センサの検出値(Ax,Ay,Az)のY軸値AyがM(Mは所定値であ
り、1より大きな値)よりも大きいかどうかを判断する。2番目に新しい第1加速度セン
サの検出値のY軸値がMよりも大きい場合(振り操作があったと判断される)には、処理
はステップS818に進み、Mよりも大きくない場合(振り操作がなかったと判断される
)には、処理はステップS822に進む。
加速度センサの検出値のY軸値が、最新の第1加速度センサの検出値のY軸値よりも大き
いかどうかを判断する。これは、第1加速度センサに対して、Y軸方向に最も大きい力が
加わったタイミングを検出するための処理である。プレイヤが第1ユニットをY軸方向に
振ると、図54に示すように、第1加速度センサの検出値のY軸値は、振り始め直後に極
小となり、振り終わり間際において極大となる。したがって、ステップS818の判断結
果が肯定となるのは、図56のT1のタイミングである。2番目に新しい第1加速度セン
サの検出値のY軸値が、最新の第1加速度センサの検出値のY軸値よりも大きい場合(す
なわち第1加速度センサの検出値のY軸値の大きさが極大値となった直後)には、処理は
ステップS820に進み、2番目に新しい第1加速度センサの検出値のY軸値が、最新の
第1加速度センサの検出値のY軸値よりも大きくない場合には、処理はステップS822
に進む。
サの検出値のY軸値Ayを返す。このY軸値Ayは、プレイヤが第1ユニットによるトリ
ガ操作を行ったときに、第1ユニットに加えられた力の大きさ(すなわち第1ユニットが
振られた強さ)を示している。その後、処理は図50のステップS744に進む。
返す。その後、処理は図50のステップS744に進む。
ユニットによるトリガ操作があったかどうかを判断し、第1ユニットによるトリガ操作が
あった場合には処理はステップS746に進み、第1ユニットによるトリガ操作がなかっ
た場合には処理は図51のステップS774に進む。
トリガ操作時に第1ユニットが振られた強さを示す値)を設定する。
る方向指示操作時に第1ユニットが振られた方向を検出し、その算出結果を第1振り方向
ベクトル709に設定する。方向指示操作時に第1ユニットが振られた方向を検出する方
法としては種々の方法が考えられる。図56は、方向指示操作時において、プレイヤが操
作ユニットを斜め左前方に振ったときの加速度センサのX軸方向およびZ軸方向の出力値
の遷移を示している。
60フレーム期間のサンプリングデータを参照して操作ユニットが振られた方向を検出す
る。具体的には、サンプリングデータを参照して、X軸値およびZ軸値の符号が反転した
時点(図中のT2)を検出し、T2以降の各フレームで検出されたX軸値およびZ軸値で
示されるXZベクトルを平均することで、操作ユニットが振られた方向を検出する。図5
6の例では、T2以降のX軸値の平均値が負であり(これは操作ユニットがX軸の負方向
に振られたことを意味する)、T2以降のZ軸値の平均値が正であり(これは操作ユニッ
トがZ軸の正方向に振られたことを意味する)、さらにこれらの平均値の絶対値がほぼ等
しいことから、プレイヤの前方から左に45°ずれた方向に向かって操作ユニットが振ら
れたことが分かる。なお、T2を検出するために、サンプリングデータが直近の60フレ
ームでは不十分な場合には、より長い期間のサンプリングデータを記憶するようにしても
よい。しかしながら、サンプリングデータを十分長い期間とった場合であっても、トリガ
操作が検出された時点(T1)より前の所定期間内(許容期間)に、方向指示操作を示す
Ax、Azの出力が無い場合(例えば、図6示すような遷移の出力が無い場合、または、
単にAx、Azの出力が0である場合など)には、方向指示操作とトリガ操作が連続して
おこなわれていないとして、その操作を無効とするのが好ましい。なお、トリガ操作が検
出された時点の代わりに、振り動作開始時点や振り動作終了時点やその中間の時点などを
上記許容期間の基点としてもよい。
6における振り動作の開始から符号が反転するタイミングT2までの期間のX軸、Z軸の
各軸の平均値を求めてもよい。この場合、最終的に得られるXZベクトルが示す方向は、
操作ユニットが振られたときの移動方向とは逆の方向となる。
、加速度センサのX軸およびZ軸の値をそのまま利用するのではなく、各フレーム間での
加速度センサのXZベクトルの差分ベクトル(この差分ベクトルの方向は操作ユニットの
移動方向を反映している)をそれぞれ算出し、大きさが最も大きい差分ベクトルを、方向
指示操作時に操作ユニットが振られた方向として検出してもよい。
→負→0、もしくは0→負→0→正→0というように遷移する。したがって、サンプリン
グデータを参照して、過去60フレームの間にこのようなパターンが見られたときに、ト
リガ操作の前に方向指示操作が行われていたと判定し、それからその方向指示操作時の操
作ユニットの振り方向を検出するようにすれば、より正確な検出が可能となる。
ニットが振られた方向を検出するときに、第1ユニットによる方向指示操作時に第2ユニ
ットも同時に振られていたかどうかを第2サンプリングデータ724に基づいて判断し、
第1ユニットによる方向指示操作時に第2ユニットも同時に振られていた場合には第1振
り方向ベクトル709の設定をキャンセルするようにしてもよい。これにより、「方向指
示操作時に第1ユニットと第2ユニットの両方を一緒に振ってはいけない」という新たな
操作要件をプレイヤに課すことができる。
大きさが所定値よりも大きいかどうかを判断し、所定値よりも大きい場合は、処理はステ
ップS752に進み、所定値よりも大きくない場合は、処理は図51のステップS774
に進む。
たは−90°〜0°の範囲内かどうかを判断する。なお、第1振り方向ベクトル709の
X軸値をAx、Z軸値をAzとすると、第1振り方向ベクトル709の方向はarcta
n(Ax/Az)で表される。第1振り方向ベクトル709の方向が0°〜90°の範囲
内または−90°〜0°の範囲内である場合には、処理はステップS754に進み、第1
振り方向ベクトル709の方向が0°〜90°の範囲内でなく、かつ−90°〜0°の範
囲内でもない場合には、処理は図51のステップS774に進む。これにより、第1ユニ
ットによる方向指示操作でプレイヤが指示可能な方向の範囲を、0°〜90°の範囲内(
すなわちX軸の正の方向とZ軸の正の方向の間の範囲内)または−90°〜0°の範囲内
(すなわちX軸の正の方向とZ軸の負の方向の間の範囲内)に制限することができる。す
なわち、第1ユニットを右手で把持し、第2ユニットを左手で把持するとして、第1ユニ
ットの振りの範囲を右領域に限定することができる。一方、後述の通り、第2ユニットは
振りの範囲を左領域に限定するので、第1ユニットと第2ユニットの役割を分担し、また
、第1ユニットと第2ユニットが衝突することを回避することができる。
略する。
第1トリガ操作強さ値726、および第2トリガ操作強さ値728に基づいて、速度ベク
トルを変更する。具体的には、図57に示すように、第1振り方向ベクトル709と第2
振り方向ベクトル710を合成して合成振り方向ベクトルを求め、そして、この合成振り
方向ベクトルのX軸値をa3、Z軸値をb3とすると、現在のベクトルと、(右方ベクト
ル×a3+前方ベクトル×b3)×α(所定の定数)×β(所定の定数)で表されるベク
トルとを合成することによって、新しい速度ベクトルを決定する。αは定数であって、ス
テップS758ではα=2となる。βは、第1トリガ操作強さ値726と第2トリガ操作
強さ値728の和に比例した値である。したがって、第1トリガ操作強さ値726と第2
トリガ操作強さ値728の和が大きいほどキャラクタの加速度が大きくなる。
を2倍したベクトルを合成ベクトルとみなしてもよい。また、第1トリガ操作強さ値と第
2トリガ操作強さ値のいずれか一方のみを利用するようにしてもよい。
で説明を省略する。
し、ステップS760ではα=1.5となる。
で説明を省略する。
形態の説明から、当業者には明らかだと思われるので、説明を省略する。
すことができるので、プレイ中の動きの自由度が高くダイナミックなプレイが可能となる
。また、操作ユニットを振ることによってキャラクタを制御することができるので、直感
的な操作が可能となり、良好な操作性が得られる。また、2つの操作ユニットを同時に振
る際の振る方向が近いほどキャラクタの加速度が大きくなるので、より直感的な操作が可
能となる。
サを用いても、そのうちの1軸の加速度センサによって方向指示操作を検出し、残りの1
軸の加速度センサによってトリガ操作を検出することができるため、本実施形態と同様の
効果を得ることができる。
ャラクタの動作を制御する例を説明したが、これに替えて、1つの操作ユニットだけを利
用して方向指示操作およびトリガ操作を行ってキャラクタの動作を制御するようにしても
よい。
ガ操作の後方向指示操作をおこなうようにしてもよい。この場合、方向指示操作が検出さ
れたときに(すなわち、Ax、Azの出力が方向指示操作を示すものであるときに)、サ
ンプリングデータを参照して、その時点より過去の所定期間内にトリガ操作を示すAyが
あるか否かを判断し、肯定判断の場合に、当該方向指示操作に係る振り方向ベクトルを利
用してゲーム処理をおこなってもよい。また、方向指示操作とトリガ操作を同時におこな
うようにしてもよい。この場合、トリガ操作または方向指示操作のいずれか一方が検出さ
れたときに、サンプリングデータを参照して、その時点の前後所定期間内に他方を示す出
力があるか否かを判断して、肯定判断の場合に、方向指示操作に係る振り方向ベクトルを
利用してゲーム処理をおこなってもよい。
することにより、過去の所定期間内に方向指示操作があったか否かを判断するようにした
が、方向指示操作があったときに、その後所定期間内にトリガ操作があるか否かを監視す
るようにしてもよい。
、本発明はこれに限定されない。例えば、第1加速度センサの出力(傾きなど)に応じて
仮想ゲーム世界に設定された仮想カメラの傾きを変化させると同時に、第2加速度センサ
の出力(振り強さ、振り方向など)に応じてゲームオブジェクトの動作を変化させるよう
にしてもよい。
2 モニタ
2a スピーカ
3 ゲーム装置
30 CPU
31 メモリコントローラ
32 GPU
33 メインメモリ
34 DSP
35 ARAM
36 コントローラI/F
37 ビデオI/F
38 外部メモリI/F
39 オーディオI/F
4 光ディスク
40 ディスクドライブ
41 ディスクI/F
5 外部メモリカード
6 受信ユニット
7 コントローラ
70 コアユニット
700 基板
701 加速度センサ
702 LED
706 スピーカ
707 サウンドIC
708 アンプ
71 ハウジング
72 操作部
73 コネクタ
74 撮像情報演算部
741 赤外線フィルタ
742 レンズ
743 撮像素子
744 画像処理回路
75 通信部
751 マイコン
752 メモリ
753 無線モジュール
754 アンテナ
76 サブユニット
761 加速度センサ
77 ハウジング
78 操作部
79 接続ケーブル
791 コネクタ
8 LEDモジュール
Claims (29)
- 第1ハウジングに設けられた加速度センサまたはジャイロセンサである第1センサと、
前記第1ハウジングとは独立した第2ハウジングに設けられた加速度センサまたはジャイ
ロセンサである第2センサの出力を利用してゲーム処理を行うためのゲームプログラムで
あって、ゲーム装置のコンピュータを、
前記第1センサの出力に基づいて、ゲーム制御用ベクトルの方向を決定する方向決定手
段、
前記第2センサの出力に基づいて、前記ゲーム制御用ベクトルの大きさを決定する大き
さ決定手段、および
前記ベクトル方向決定手段および前記ベクトル大きさ決定手段によって決定された前記
ゲーム制御用ベクトルを用いてゲーム制御を行うゲーム制御手段として機能させるための
ゲームプログラム。 - 第1ハウジングに設けられた動きを検出可能な第1センサと、前記第1ハウジングとは
独立した第2ハウジングに設けられた動きを検出可能な第2センサの出力を利用してゲー
ム処理を行うためのゲームプログラムであって、ゲーム装置のコンピュータを、
前記第1センサの出力に基づいて前記第1ハウジングの動きを検出する第1動き操作検
出手段、
前記第2センサの出力に基づいて前記第2ハウジングの動きを検出する第2動き操作検
出手段、
前記第1動き操作検出手段および前記第2動き操作検出手段の検出結果に基づいて、前
記第1ハウジングの動き検出に関連して決定されるタイミングから同時入力受付時間以内
に前記第2ハウジングの動き検出があったかどうかを検出する同時入力検出手段、および
前記第1ハウジングの動き検出があってから同時入力受付時間以内に前記第2ハウジン
グの動き検出があったことを前記同時入力検出手段が検出したときに第1ゲーム処理を実
行するゲーム制御手段として機能させるためのゲームプログラム。 - 前記ゲーム制御手段は、前記第1動き操作検出手段によって前記第1ハウジングの動き
検出があってから、同時入力受付時間以内に前記第2ハウジングの動き検出があったこと
が前記同時入力検出手段によって検出されなかった場合には、前記第1ゲーム処理とは異
なる第2ゲーム処理を実行する、請求項2に記載のゲームプログラム。 - 前記ゲーム制御手段は、前記同時入力受付時間内に前記第2ハウジングの動き検出があ
ったことが前記同時入力検出手段によって検出されたときには、前記第1ゲーム処理を実
行し、前記同時入力受付時間内に前記第2ハウジングの動き検出があったことが前記同時
入力検出手段によって検出されることなく前記同時入力受付時間が経過した時点で、前記
第2ゲーム処理を実行する、請求項3に記載のゲームプログラム。 - 前記第1動き操作検出手段は、前記第1ハウジングの動き検出に関連して決定されるタ
イミングから受付禁止時間が経過するまでは、当該第1ハウジングの動き検出を新たに検
出せず、
前記第2動き操作検出手段は、前記第2ハウジングの動き検出があったことを検出して
から受付禁止時間が経過するまでは、当該第2ハウジングの動き検出を新たに検出しない
、請求項2に記載のゲームプログラム。 - 前記第1ハウジングおよび前記第2ハウジングのいずれか一方の動き検出があってから
所定時間以内に他方の動き検出があったことを前記同時入力検出手段による同時入力検出
に関連して決定されるタイミングから同時入力後受付禁止時間が経過するまでは、前記第
1動き操作検出手段および前記第2動き操作検出手段は、前記第1ハウジングおよび前記
第2ハウジングの動き検出を新たに検出しない、請求項5に記載のゲームプログラム。 - 第1ハウジングに設けられた動きを検出可能な第1センサと、前記第1ハウジングとは
独立した第2ハウジングに設けられた動きを検出可能な第2センサの出力を利用してゲー
ム処理を行うためのゲームプログラムであって、ゲーム装置のコンピュータを、
前記第1センサの出力に基づいて前記第1ハウジングの動きおよびその強さを検出する
第1動き検出手段、
前記第2センサの出力に基づいて前記第2ハウジングの動きおよびその強さを検出する
第2動き検出手段、
前記第1動き検出手段および前記第2動き検出手段の検出結果に基づいて、前記第1ハ
ウジングの動き検出に関連して決定されるタイミングから同時入力受付時間以内に前記第
2ハウジングの動き検出があったかどうかを検出する同時入力検出手段、および
前記第1ハウジングの動き検出に関連して決定されるタイミングから同時入力受付時間
以内に前記第2ハウジングの動き検出があったことを前記同時入力検出手段が検出したと
きに、前記第1動き検出手段によって検出された前記第1ハウジングの動きの強さと、前
記第2動き検出手段によって検出された前記第2ハウジングの動きの強さを利用して第1
ゲーム処理を実行するゲーム制御手段として機能させるためのゲームプログラム。 - 第1ハウジングに設けられた動きを検出可能な第1センサと、前記第1ハウジングとは
独立した第2ハウジングに設けられた動きを検出可能な第2センサの出力を利用してゲー
ム処理を行うためのゲームプログラムであって、ゲーム装置のコンピュータを、
前記第1センサの出力に基づいて前記第1ハウジングの動きを検出する第1動き操作検
出手段、
前記第2センサの出力に基づいて前記第2ハウジングの動きを検出する第2動き操作検
出手段、
前記第1動き操作検出手段および前記第2動き操作検出手段の検出結果に基づいて、前
記第1ハウジングの動き操作が行われたときに、当該動き操作から過去一定時間以内に前
記第2ハウジングの動き操作が行われていたかどうかを検出する同時入力検出手段、およ
び
(a)前記第1ハウジングの動き操作が行われたときに、当該動き操作から過去一定時
間以内に前記第2ハウジングの動き操作が行われていたことが前記同時入力検出手段によ
って検出された場合にはゲームオブジェクトに第1動作を行わせ、(b)前記第1ハウジ
ングの動き操作が行われたときに、当該動き操作から過去一定時間以内に前記第2ハウジ
ングの動き操作が行われていたことが前記同時入力検出手段によって検出されなかった場
合には前記ゲームオブジェクトに前記第1動作とは異なる第2動作を行わせるゲーム制御
手段として機能させるためのゲームプログラム。 - 第1ハウジングに設けられた傾きを検出可能な第1センサと、前記第1ハウジングとは
独立した第2ハウジングに設けられた傾きを検出可能な第2センサの出力を利用してゲー
ム制御を行うためのゲームプログラムであって、ゲーム装置のコンピュータを、
プレイヤからの基準値設定指示を検出する基準値設定指示検出手段、
前記基準値設定指示検出手段によって基準値設定指示が検出されたときに、前記第1戦
差の出力値および/または前記第2センサの出力値に基づいて、第1基準値および第2基
準値を設定する基準値設定手段、
前記第1センサの出力および前記第1基準値に基いて前記第1ハウジングの姿勢を検出
する第1姿勢検出手段、
前記第2センサの出力および前記第2基準値に基いて前記第2ハウジングの姿勢を検出
する第2姿勢検出手段、
前記第1姿勢検出手段による第1ハウジングの姿勢と、前記第2姿勢検出手段による第
2ハウジングの姿勢の差分を検出する姿勢差分検出手段、および
前記姿勢差分検出手段によって検出された差分を用いてゲーム制御を行うゲーム制御手
段として機能させるためのゲームプログラム。 - 前記基準値設定手段は、前記基準値設定指示検出手段によって単一の前記基準値設定指
示が検出されたことに応じて、同一タイミングで、前記第1基準値および前記第2基準値
を一度に設定する、請求項9に記載のゲームプログラム。 - 前記基準値設定手段は、前記基準値設定指示検出手段によって基準値設定指示が検出さ
れたときに、前記第1センサの出力値と、前記第2センサの出力値とに基く所定の演算を
した値を、前記第1基準値および前記第2基準値として共通に設定する、請求項9に記載
のゲームプログラム。 - 前記基準値設定手段は、前記基準値設定指示検出手段によって基準値設定指示が検出さ
れたときに、前記第1センサまたは前記第2センサのいずれか一方の出力値に基く値を、
前記第1基準値および前記第2基準値として共通に設定する、請求項9に記載のゲームプ
ログラム。 - 前記第1ハウジングおよび/または前記第2ハウジングには、プレイヤが前記基準値設
定指示を入力するためのスイッチが設けられており、
前記基準値設定手段は、前記基準値設定指示検出手段によって基準値設定指示が検出さ
れたときに、前記第1ハウジングおよび前記第2ハウジングのうち、当該基準値設定指示
の入力に用いられたスイッチが設けられてない方のハウジングに設けられたセンサの検出
値に基いて、前記第1基準値および前記第2基準値を共通に設定する、請求項12に記載
のゲームプログラム。 - 前記基準値設定手段は、前記基準値設定指示検出手段によって基準値設定指示が検出さ
れたときに、前記第1センサの出力値と前記第2センサの出力値に基づいて前記第1ハウ
ジングと前記第2ハウジングの傾きの差分が一定範囲内か否かを判断する基準値設定時差
分検出手段を含み、
前記基準値設定手段は、(a)前記基準値設定時差分検出手段によって一定範囲内であ
ると判断された場合には、前記第1センサの出力値および前記第2センサの出力値に基い
て、第1基準値および第2基準値をそれぞれ設定し、(b)前記基準値設定時差分検出手
段によって一定範囲内でないと判断された場合にはエラー処理を行う、請求項9に記載の
ゲームプログラム。 - 第1ハウジングに設けられた加速度センサまたはジャイロセンサである第1センサと、
前記第1ハウジングとは独立した第2ハウジングに設けられた加速度センサまたはジャイ
ロセンサである第2センサの出力を利用してゲーム制御を行うためのゲームプログラムで
あって、ゲーム装置のコンピュータを、
前記第1センサの出力に基づいてゲームオブジェクトの姿勢を制御する姿勢制御手段、
および
前記第2センサの出力に基づいて前記ゲームオブジェクトの移動を制御する移動制御手
段として機能させるためのゲームプログラム。 - 第1ハウジングに設けられた少なくとも2軸方向の動きを検出可能な第1センサと、前
記第1ハウジングとは独立した第2ハウジングに設けられた少なくとも2軸方向の動きを
検出可能な第2センサの出力を利用してゲーム制御を行うためのゲームプログラムであっ
て、ゲーム装置のコンピュータを、
前記第1センサの出力に基づいて前記第1ハウジングが動いた方向を示す第1動き方向
を検出する第1動き方向検出手段、
前記第2センサの出力に基づいて前記第2ハウジングが動いた方向を示す第2動き方向
を検出する第2動き方向検出手段、
前記第1動き方向検出手段によって検出された前記第1動き方向と、前記第2動き方向
検出手段によって検出された前記第2動き方向とを合成することによって合成方向を決定
する合成方向決定手段、および
前記合成方向決定手段によって決定された前記合成方向を用いてゲーム制御を行うゲー
ム制御手段として機能させるためのゲームプログラム。 - 第1ハウジングに設けられた動きを検出するための第1センサと、前記第1ハウジング
とは独立した動きを検出するための第2ハウジングに設けられた第2センサの出力を利用
してゲーム処理を行うためのゲームプログラムであって、ゲーム装置のコンピュータを、
前記第1センサの出力に基づいて前記第1ハウジングの動きの強さを検出する第1強さ
検出手段、
前記第2センサの出力に基づいて前記第2ハウジングの動きの強さを検出する第2強さ
検出手段、
前記第1強さ検出手段によって検出された前記第1ハウジングの動きの強さと、前記第
2強さ検出手段によって検出された前記第2ハウジングの動きの強さとを合成することに
よって合成強さを決定する合成強さ決定手段、および
前記合成強さ決定手段によって決定された前記合成強さを用いてゲーム制御を行うゲー
ム制御手段として機能させるためのゲームプログラム。 - 第1ハウジングに設けられた少なくとも2軸方向の動きを検出可能な第1センサと、前
記第1ハウジングとは独立した第2ハウジングに設けられた少なくとも2軸方向の動きを
検出可能な第2センサの出力を利用してゲーム制御を行うためのゲームプログラムであっ
て、ゲーム装置のコンピュータを、
前記第1センサの出力に基づいて前記第1ハウジングが動いた方向を示す第1動き方向
を検出する第1動き方向検出手段、
前記第2加速度センサの出力に基づいて前記第2ハウジングが動いた方向を示す第2動
き方向を検出する第2動き方向検出手段、
前記第1動き方向検出手段によって検出された前記第1動き方向と、前記第2動き方向
検出手段によって検出された前記第2動き方向とが所定の関係を満たすかどうかを判定す
る動き方向関係判定手段、および
前記動き方向関係判定手段によって前記第1動き方向と前記第2動き方向が前記所定の
関係を満たすと判定されたときに、前記第1ハウジングおよび前記第2ハウジングの少な
くとも一方のハウジングの動き方向および/または動き強さに基づいてゲーム制御を行う
ゲーム制御手段として機能させるためのゲームプログラム。 - 第1ハウジングに設けられた少なくとも2軸方向の動きを検出可能な第1センサと、前
記第1ハウジングとは独立した第2ハウジングに設けられた少なくとも2軸方向の動きを
検出可能な第2センサの出力を利用してゲーム制御を行うためのゲームプログラムであっ
て、ゲーム装置のコンピュータを、
前記第1センサの出力に基づいて前記第1ハウジングの動きを検出する第1動き操作検
出手段、
前記第2センサの出力に基づいて前記第2ハウジングの動きを検出する第2動き操作検
出手段、
前記第1動き操作検出手段および前記第2動き操作検出手段の検出結果に基づいて、前
記第1ハウジングの動き検出のタイミングと、前記第2ハウジングの動き検出のタイミン
グとが所定の関係を満たすかどうかを判定する動きタイミング関係判定手段、および
前記動きタイミング関係判定手段によって前記第1ハウジングの動き検出のタイミング
と前記第2ハウジングの動き検出のタイミングが前記所定の関係を満たすと判定されたと
きに、前記第1ハウジングおよび前記第2ハウジングの少なくとも一方のハウジングの動
き方向および/または動き強さに基づいてゲーム制御を行うゲーム制御手段として機能さ
せるためのゲームプログラム。 - 前記ゲーム制御手段は、前記第1ハウジングおよび前記第2ハウジングの両方のハウジ
ングの動き方向および/または動き強さに基づいてゲーム制御を行う、請求項18または
請求項19に記載のゲームプログラム。 - 前記ゲーム制御手段は、前記第1ハウジングおよび前記第2ハウジングの両方のハウジ
ングの動き方向および動き強さに基づいてゲーム制御を行う、請求項18または請求項1
9に記載のゲームプログラム。 - 第1ハウジングに設けられた少なくとも2軸方向の動き検出可能な第1センサと、前記
第1ハウジングとは独立した第2ハウジングに設けられた少なくとも2軸方向の動きを検
出可能な第2センサの出力を利用してゲーム制御を行うためのゲームプログラムであって
、ゲーム装置のコンピュータを、
前記第1センサの出力に基づいて前記第1ハウジングが動いた方向を示す第1動き方向
を検出する第1動き方向検出手段、
前記第2センサの出力に基づいて前記第2ハウジングが動いた方向を示す第2動き方向
を検出する第2動き方向検出手段、
前記第1動き方向検出手段によって検出された前記第1動き方向と、前記第2動き方向
検出手段によって検出された前記第2動き方向とが所定の関係を満たすかどうかを判定す
る動き向関係判定手段、および
前記動き方向関係判定手段によって前記第1動き方向と前記第2動き方向が前記所定の
関係を満たすと判定されたときに、ゲームオブジェクトに特定の動作を行わせるゲーム制
御手段として機能させるためのゲームプログラム。 - 第1ハウジングに設けられた動きを検出するための第1センサと、前記第1ハウジング
とは独立した第2ハウジングに設けられた動きを検出するための第2センサの出力を利用
してゲーム制御を行うためのゲームプログラムであって、ゲーム装置のコンピュータを、
前記第1センサの出力に基づいて前記第1ハウジングの動きおよびその強さを検出する
第1動き操作検出手段、
前記第2センサの出力に基づいて前記第2ハウジングの動きおよびその強さを検出する
第2動き操作検出手段、
前記第1動き操作検出手段および前記第2動き操作検出手段の検出結果に基づいて、前
記第1ハウジングの動き検出のタイミングと、前記第2ハウジングの動き検出のタイミン
グとが所定の関係を満たすかどうかを判定する動きタイミング関係判定手段、および
前記動きタイミング関係判定手段によって前記第1ハウジングの動き検出のタイミング
と前記第2ハウジングの動き検出のタイミングが前記所定の関係を満たすと判定されたと
きに、ゲームオブジェクトに特定の動作を行わせるゲーム制御手段として機能させるため
のゲームプログラム。 - 第1ハウジングに設けられた少なくとも2軸方向の動きを検出可能な第1センサと、前
記第1ハウジングとは独立した第2ハウジングに設けられた少なくとも2軸方向の動きを
検出可能な第2センサの出力を利用してゲーム制御を行うためのゲームプログラムであっ
て、ゲーム装置のコンピュータを、
前記第1センサの出力に基づいて前記第1ハウジングが動いた方向を示す第1動き方向
を検出する第1動き方向検出手段、
前記第2センサの出力に基づいて前記第2ハウジングが動いた方向を示す第2動き方向
を検出する第2動き方向検出手段、
前記第1動き方向検出手段によって検出された前記第1動き方向が第1範囲内であり、
かつ前記第2動き方向検出手段によって検出された前記第2動き方向が第2範囲内である
ときに、前記第1動き方向と前記第2動き方向に基づいてゲーム制御を行うゲーム制御手
段として機能させるためのゲームプログラム。 - 第1ハウジングに設けられた動きまたは姿勢を検出可能な第1センサと、前記第1ハウ
ジングとは独立した第2ハウジングに設けられた動きまたは姿勢を検出可能な第2センサ
の出力を利用してゲーム制御を行うためのゲームプログラムであって、ゲーム装置のコン
ピュータを、
前記第1センサの出力に基づいて第1ゲーム処理を実行する第1ゲーム制御手段、
前記第2センサの出力に基づいて第2ゲーム処理を実行する第2ゲーム制御手段、およ
び
プレイヤの指示に応じて、前記第1ゲーム制御手段が前記第1ゲーム処理のために参照
するセンサを前記第1センサから前記第2センサに変更し、かつ前記第2ゲーム制御手段
が前記第2ゲーム処理のために参照するセンサを前記第2センサから前記第1センサに変
更する参照センサ交換手段として機能させるためのゲームプログラム。 - 少なくとも、第1軸、第2軸の2軸方向の動きを検出可能なセンサの出力を利用してゲ
ーム制御を行うためのゲームプログラムであって、ゲーム装置のコンピュータを、
前記センサの前記第1軸方向の動きを検出する動き検出手段、および
前記動き検出手段によって前記第1軸方向の動きが検出されたときに、当該検出に関連
して決定される時点または期間において出力された前記センサの前記第2軸方向の出力に
基いてゲーム制御を行うゲーム制御手段として機能させるためのゲームプログラム。 - 第1軸、第2軸、第3軸の3軸方向の動きを検出可能なセンサの出力を利用してゲーム
制御を行うためのゲームプログラムであって、ゲーム装置のコンピュータを、
前記センサの前記第1軸方向の動きを検出する動き検出手段、および
前記動き検出手段によって前記第1軸方向の動きが検出されたときに、当該検出された
時点を基準として決定される時点または期間において出力された前記センサの前記第2軸
方向の出力と前記第3軸方向の出力により示される方向を用いてゲーム制御を行うゲーム
制御手段として機能させるためのゲームプログラム。 - 前記ゲーム制御手段は、前記動き検出手段によって前記第1軸方向の動きが検出された
ときに、当該検出された時点を基準として決定される時点または期間において出力された
前記センサの前記第2軸方向の出力に加えて、当該第1軸方向の動きに係る前記センサの
前記第1軸方向の出力の大きさを用いてゲーム制御を行う、請求項26に記載のプログラ
ム。 - 前記ゲーム制御手段は、前記動き検出手段によって前記第1軸方向の動きが検出された
ときに、当該検出された時点を基準として決定される時点または期間における、第2軸方
向の動きの有無を検出し、第2軸方向の動きが検出されたときに、当該第2軸方向の出力
を用いてゲーム制御を行う、請求項26に記載のゲームプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013174604A JP5679484B2 (ja) | 2013-08-26 | 2013-08-26 | ゲームプログラム及びゲーム装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013174604A JP5679484B2 (ja) | 2013-08-26 | 2013-08-26 | ゲームプログラム及びゲーム装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012281204A Division JP5548762B2 (ja) | 2012-12-25 | 2012-12-25 | ゲームプログラム及びゲーム装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014000444A true JP2014000444A (ja) | 2014-01-09 |
JP5679484B2 JP5679484B2 (ja) | 2015-03-04 |
Family
ID=50034172
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013174604A Active JP5679484B2 (ja) | 2013-08-26 | 2013-08-26 | ゲームプログラム及びゲーム装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5679484B2 (ja) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001129252A (ja) * | 1999-11-02 | 2001-05-15 | Namco Ltd | ゲーム装置 |
JP2002153673A (ja) * | 2000-11-16 | 2002-05-28 | Konami Co Ltd | 対戦式3dビデオゲーム装置及びそのコントローラ |
-
2013
- 2013-08-26 JP JP2013174604A patent/JP5679484B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001129252A (ja) * | 1999-11-02 | 2001-05-15 | Namco Ltd | ゲーム装置 |
JP2002153673A (ja) * | 2000-11-16 | 2002-05-28 | Konami Co Ltd | 対戦式3dビデオゲーム装置及びそのコントローラ |
Also Published As
Publication number | Publication date |
---|---|
JP5679484B2 (ja) | 2015-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5204381B2 (ja) | ゲームプログラム、ゲーム装置、ゲームシステム及びゲーム処理方法 | |
JP4262726B2 (ja) | ゲームコントローラおよびゲームシステム | |
JP4547346B2 (ja) | 傾き算出装置および傾き算出プログラムならびにゲーム装置およびゲームプログラム | |
US8414349B2 (en) | Remotely controlled mobile device control system | |
US8870655B2 (en) | Wireless game controllers | |
JP5390093B2 (ja) | ゲームプログラムおよびゲーム装置 | |
JP4240510B2 (ja) | ゲームコントローラおよびゲームシステム | |
JP2009011870A (ja) | ゲームコントローラおよびゲームシステム | |
JP2008048961A (ja) | ゲームプログラムおよびゲーム装置 | |
JP2013078624A (ja) | ゲームシステムおよびゲームプログラム | |
JP2010131321A (ja) | ゲーム装置およびゲームプログラム | |
JP5525565B2 (ja) | ゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム処理方法 | |
JP5013511B2 (ja) | ゲームプログラムおよびゲーム装置 | |
JP5679484B2 (ja) | ゲームプログラム及びゲーム装置 | |
JP5548762B2 (ja) | ゲームプログラム及びゲーム装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130924 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130924 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140723 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140812 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20141014 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20141224 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20141226 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5679484 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |