JP2013078634A - ゲームシステムおよびゲームプログラム - Google Patents
ゲームシステムおよびゲームプログラム Download PDFInfo
- Publication number
- JP2013078634A JP2013078634A JP2012285127A JP2012285127A JP2013078634A JP 2013078634 A JP2013078634 A JP 2013078634A JP 2012285127 A JP2012285127 A JP 2012285127A JP 2012285127 A JP2012285127 A JP 2012285127A JP 2013078634 A JP2013078634 A JP 2013078634A
- Authority
- JP
- Japan
- Prior art keywords
- housing
- game
- movement
- control means
- player
- 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.)
- Pending
Links
Images
Abstract
【課題】プレイヤがコントローラを把持しながらゲームをプレイするゲームシステムおよびゲームプログラムを提供する。
【解決手段】ゲームコントローラのハウジングは、プレイヤが片手で把持可能である。方向指示部は、ハウジングに設けられ、方向指示入力する。動き検出手段は、ハウジングの動きを検出する。ゲーム装置の移動方向制御手段は、方向指示部の操作に応じて、仮想ゲーム世界に登場するオブジェクトの移動方向を決定する。姿勢制御手段は、動き検出手段による検出に応じて、仮想ゲーム世界におけるオブジェクトの姿勢を決定する。
【選択図】図19
【解決手段】ゲームコントローラのハウジングは、プレイヤが片手で把持可能である。方向指示部は、ハウジングに設けられ、方向指示入力する。動き検出手段は、ハウジングの動きを検出する。ゲーム装置の移動方向制御手段は、方向指示部の操作に応じて、仮想ゲーム世界に登場するオブジェクトの移動方向を決定する。姿勢制御手段は、動き検出手段による検出に応じて、仮想ゲーム世界におけるオブジェクトの姿勢を決定する。
【選択図】図19
Description
本発明は、ゲームシステムおよびゲームプログラムに関し、より特定的には、コントローラのハウジングの動きを検出可能なセンサを備えたコントローラによって操作されるゲームシステムおよびゲームプログラムに関する。
従来、プレイヤが入力装置を操作することによって、ゲームをプレイするゲーム装置が各種開発されている。例えば、プレイヤ操作する入力装置の方向指示入力手段からの出力に加えて、当該入力装置本体の傾きに応じたデータを出力するセンサからの出力を用いて、ゲーム処理する装置が開示されている(例えば、特許文献1)。上記特許文献1で開示されたゲーム装置では、実車オートバイを入力装置として、ハンドルの操舵角を方向指示入力手段とし、実車オートバイの傾動を検出する傾動センサを入力装置本体の傾きに応じた動きデータを出力するセンサとして、当該方向指示入力手段およびセンサからの出力に応じて操作されるオートバイゲームを実現している。
また、プレイヤ操作する入力装置本体の動きに応じたデータを出力するセンサからの出力を用いて、ゲーム処理する装置が開示されている(例えば、特許文献2)。上記特許文献2で開示された方向データ出力装置では、操縦かん31を入力装置として、操縦かん31に内蔵された前後方向センサ4と回転方向センサ5とからの出力を用いて、模擬的な操縦を行っている。具体的には、ユーザが操縦かん31を両手で把持して、空間で前後に傾倒させたり回転させたりすることによって、模擬的な飛行機を操縦するような操作を行っている。
しかしながら、上記特許文献1で開示されたゲーム装置は、入力装置が実車オートバイであるために、非常に大きい。したがって、当該ゲーム装置は、家庭用ゲーム装置として用いるには不適であり、プレイヤによっては扱えないこともある。
また、上記特許文献2で開示された方向データ出力装置も、ユーザが両手で取り扱う操縦かんであり、大型の入力装置である。したがって、当該方向データ出力装置は、プレイヤが片手で取り扱って操作するようなゲーム装置の入力装置として用いることに適さず、汎用性も乏しい装置である。
それ故に、本発明の目的は、プレイヤがコントローラを把持しながらゲームをプレイするゲームシステムおよびゲームプログラムを提供することである。
上記の目的を達成するために、本発明は以下の構成を採用した。なお、括弧内の参照符号やステップ番号等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明の範囲を何ら限定するものではない。
第1の発明は、プレイヤが片手で把持可能な第1ハウジング(77)を有するゲームコントローラ(7)と、当該ゲームコントローラと接続されるゲーム装置(5)と、当該第1ハウジングの動きを検出する第1動き検出手段(761)とを含むゲームシステム(3)である。ゲームコントローラは、方向指示部(78a)を備える。方向指示部は、第1ハウジングに設けられ、方向指示入力する。ゲーム装置は、第1移動方向制御手段(S43)および姿勢制御手段(S48)を備える。第1移動方向制御手段は、方向指示部の操作に応じて、仮想ゲーム世界に登場する第1オブジェクト(PC)の移動方向を決定する。姿勢制御手段は、第1動き検出手段による検出に応じて、仮想ゲーム世界における第1オブジェクトの姿勢を決定する。なお、方向指示部は、例えば、ジョイスティック、十字キー、または、複数のボタンキー(それぞれに各方向が割り当てられる)とすることができる。
第2の発明は、上記第1の発明において、第1ハウジングは、当該第1ハウジングの側周をプレイヤが片手で握持可能な形状および大きさで形成される。
第3の発明は、上記第2の発明において、第1ハウジングは、当該第1ハウジングの側周をプレイヤが片手で握持したときに、当該片手の親指で操作可能な位置に方向指示部が配設される。より具体的には、第1ハウジングは、その一方側面(右側面または左側面の一方)に片手の掌を接触させ、他方側面(右側面または左側面の他方)に当該片手の指(人差指・中指・薬指・小指)のうちの少なくとも1つ(好ましくはこれらのうちの少なくとも2つであり、また、好ましくは少なくとも中指を含む)を接触させることによって把持し、当該把持した状態で親指が届く範囲に方向指示部が配置される。
第4の発明は、上記第1の発明において、姿勢制御手段は、第1動き検出手段による検出に基づいて第1ハウジングの所定方向への傾きを判定して、仮想3次元ゲーム空間における所定方向への第1オブジェクトの傾きを決定する。この発明において、第1動き検出手段は、第1ハウジングにおける所定方向(例えば、第1ハウジングの左右方向(後述のX軸方向)または前後方向(後述のY軸方向))への傾きを検出する。そして、姿勢制御手段は、その検出に応じて、第1オブジェクトを仮想3次元ゲーム空間における所定方向へ傾ける制御をおこなう。このとき、姿勢制御手段は、第1ハウジングにおける所定方向と仮想3次元ゲーム空間における所定方向とを対応付けて処理をおこなう。例えば、第1ハウジングにおける左右方向の傾き、前後方向の傾きの少なくともいずれかを検出し、第1オブジェクトを、仮想3次元ゲーム空間におけるワールド座標系におけるX軸方向、もしくは、Z軸方向、または、第1オブジェクトの前後方向(オブジェクト座標系におけるZ軸方向またはオブジェクトの移動方向ベクトルの方向)もしくは左右方向(オブジェクト座標系におけるX軸方向またはオブジェクトの移動方向ベクトルに直交する方向。後者の場合、当該移動方向ベクトルに直交しかつ仮想水平面上の方向であってもよいし当該移動方向ベクトルに直交しかつオブジェクトのローカル座標系のY軸方向に直交する方向であってもよい)のいずれかに傾ける処理をおこなう。典型的には、第1ハウジングにおける左右方向の傾きを検出して、第1オブジェクトを、第1オブジェクトの左右方向に傾ける処理をおこなう。または、第1ハウジングにおける前後方向の傾きを検出して、第1オブジェクトを、第1オブジェクトの前後方向に傾ける処理をおこなう。なお、この発明において、第1動き検出手段は、第1ハウジングの傾きが判定可能な検出データ(例えば、加速度データやカメラで撮影した画像データであってもよく、傾きを示すデータそのものであってもよい)を出力する。そして、姿勢制御手段は、当該検出データに基づいて第1ハウジングの傾きを判定する。
第5の発明は、上記第1の発明において、第1動き検出手段は、第1ハウジングにおける所定軸を中心とした回転を少なくとも検出可能である。姿勢制御手段は、第1動き検出手段による検出に基づいて第1ハウジングの所定軸を中心とした回転を判定して、第1オブジェクトを仮想3次元ゲーム空間における所定軸を中心として回転させる制御をおこなう。このとき、姿勢制御手段は、第1ハウジングにおける所定軸と仮想3次元ゲーム空間における所定軸との対応付けて処理をおこなう。例えば、第1ハウジングにおける左右方向軸(後述のX軸)、上下方向軸(後述のY軸)、または、前後方向軸(後述のZ軸)を中心とする回転を検出し、第1オブジェクトを、仮想3次元ゲーム空間におけるワールド座標系のX軸、Y軸、もしくは、Z軸、または、第1オブジェクトの前後方向軸、左右方向軸、もしくは、上下方向軸(オブジェクト座標系におけるY軸)のいずれかを中心として回転させる処理をおこなう。典型的には、第1ハウジングの左右方向軸を中心とする回転を検出して、第1オブジェクトを、第1オブジェクトの左右方向軸を中心として回転させる処理をおこなう。または、第1ハウジングの前後方向軸を中心とする回転を検出して、第1オブジェクトを、第1オブジェクトの前後方向軸を中心として回転させる処理をおこなう。または、第1ハウジングの上下方向軸を中心とする回転を検出して、第1オブジェクトを、第1オブジェクトの上下方向軸を中心として回転させる処理をおこなう。なお、この発明において、第1動き検出手段は、第1ハウジングの回転が判定可能な検出データ(例えば、ジャイロスコープによるデータや、加速度データやカメラで撮影した画像データであってもよい)を出力する。そして、姿勢制御手段は、当該検出データに基づいて第1ハウジングの回転を判定する。
第6の発明は、上記第1の発明において、姿勢制御手段は、第1動き検出手段による検出に基づいて第1ハウジングにおける所定方向の傾きおよび当該所定方向とは異なる方向の傾きのそれぞれを判定して、第1動き検出手段による検出のそれぞれに応じて、仮想3次元ゲーム空間における2方向への第1オブジェクトの傾きをそれぞれ決定する。すなわち、この発明において、姿勢制御手段は、第1ハウジングにおける方向Aの傾きに応じて、第1オブジェクトを仮想3次元ゲーム空間における方向aに傾ける処理をし、さらに、第1ハウジングにおける方向B(方向Aと異なる方向)の傾きに応じて、第1オブジェクトを仮想3次元ゲーム空間における方向b(方向bと異なる方向)に傾ける処理をおこなう。なお、姿勢制御手段が判定する2つの方向を互いに直交する方向とし、かつ、仮想ゲーム空間における2つの方向を互いに直交する方向とすることが好ましい。
第7の発明は、上記第1の発明において、姿勢制御手段は、第1動き検出手段による検出に基づいて第1ハウジングにおける所定軸を中心とした回転および当該所定軸とは異なる軸を中心とした回転のそれぞれを判定して、第1動き検出手段による検出のそれぞれに応じて、仮想3次元ゲーム空間における2軸を中心とした第1オブジェクトの回転をそれぞれ決定する。すなわち、この発明において、姿勢制御手段は、第1ハウジングにおける軸Aを中心とする回転に応じて、第1オブジェクトを仮想3次元ゲーム空間における軸aを中心として回転させ、さらに、第1ハウジングにおける軸B(軸Aと異なる軸)を中心とする回転に応じて、第1オブジェクトを仮想3次元ゲーム空間における軸b(軸bと異なる軸)を中心として回転させる処理をおこなう。なお、姿勢制御手段が判定する2つの軸を互いに直交する軸とし、かつ、仮想3次元ゲーム空間における2つの軸を互いに直交する軸とすることが好ましい。
第8の発明は、上記第1の発明において、第1動き検出手段は、第1ハウジングに対して互いに直交する3方向に生じる加速度を検出可能である。姿勢制御手段は、第1動き検出手段による3方向の加速度の検出のそれぞれに応じて、仮想3次元ゲーム空間における第1オブジェクトの姿勢を示す3次元の姿勢ベクトルを決定する。
第9の発明は、上記第1の発明において、第1動き検出手段は、第1ハウジングに対して互いに直交する3軸を中心とする回転を検出可能である。姿勢制御手段は、第1動き検出手段による3軸を中心とする回転の検出のそれぞれに応じて、仮想3次元ゲーム空間における第1オブジェクトの姿勢を示す3次元の姿勢ベクトルを決定する。
第10の発明は、上記第1の発明において、第1動き検出手段は、第1ハウジングに対して互いに直交する3方向に生じる加速度値を検出可能である。姿勢制御手段は、第1動き検出手段による検出値のそれぞれに応じて、仮想3次元ゲーム空間における第1オブジェクトの姿勢を示す3次元の姿勢ベクトルの各成分値をそれぞれ決定する。典型的には、姿勢制御手段は、第1動き検出手段による検出値のそれぞれに応じて第1オブジェクトのローカル座標系における姿勢ベクトルの各成分値をそれぞれ決定する。または、姿勢制御手段は、第1動き検出手段による検出値のそれぞれに応じて第1オブジェクトの移動方向ベクトルとそれに直交する2ベクトルで定義される座標系における姿勢ベクトルの各成分値をそれぞれ決定する。例えば、第1動き検出手段は、第1ハウジングの左右方向(後述のX軸方向)、上下方向(後述のY軸方向)、および、前後方向(後述のZ軸方向)に生じる加速度値をそれぞれ検出し、姿勢制御手段は、第1ハウジングの左右方向の加速度値の検出に応じて、第1オブジェクトのローカル座標系における姿勢ベクトルの左右方向成分値(典型的には当該ローカル座標系のX成分値)を決定し、第1ハウジングの前後方向の加速度値の検出に応じて、第1オブジェクトのローカル座標系における姿勢ベクトルの前後方向成分値(典型的には当該ローカル座標系のZ成分値)を決定し、第1ハウジングの上下方向の加速度値の検出に応じて、第1オブジェクトのローカル座標系における姿勢ベクトルの上下方向成分値(典型的には当該ローカル座標系のY成分値)を決定する。なお、第1ハウジングの上下方向の検出加速度値の正負を反転して、第1オブジェクトのローカル座標系における姿勢ベクトルの上下方向成分値を決定するのが好ましい。より具体的には、第1ハウジングの左右方向の加速度値:上下方向の加速度値(正負反転):前後方向の加速度値=姿勢ベクトルの左右方向成分値:上下方向成分値:前後方向成分値となるようにするのが好ましい。
第11の発明は、上記第1の発明において、第1動き検出手段は、第1ハウジングに対して互いに直交する2方向に生じる加速度値を検出可能である。姿勢制御手段は、第1動き検出手段による検出値のそれぞれに応じて、仮想3次元ゲーム空間における第1オブジェクトの姿勢を示す3次元の姿勢ベクトルの2成分値をそれぞれ決定する。具体的には、第1動き検出手段は、第1ハウジングの左右方向に生じる加速度および前後方向に生じる加速度を検出可能である。そして、姿勢制御手段は、姿勢ベクトルの左右方向成分値と前後方向成分値をそれぞれ決定する。なお、姿勢ベクトルの上下方向成分値は例えば一定値などとしてもよい。より具体的には、第1ハウジングの左右方向の加速度値:前後方向の加速度値=姿勢ベクトルの左右方向成分値:前後方向成分値となるようにするのが好ましい。
第12の発明は、上記第4の発明において、第1移動方向制御手段は、仮想3次元ゲーム空間における第1方向を基準として、方向指示部による指示方向に応じた方向を移動方向として決定する。姿勢制御手段は、第1動き検出手段の検出に基づいて第1ハウジングの所定方向の傾きを判定して、仮想3次元ゲーム空間における第1方向を基準とする方向への第1オブジェクトの傾きを決定する。この発明において、第1移動方向制御手段は、第1方向として、仮想3次元ゲーム空間における第1オブジェクトの前方方向(前方方向が移動方向制御に応じて変化する場合には現在の前方方向)または現在の移動方向とすることができる。例えば、方向指示部により右方向が指示された場合、第1方向に対する右方向を今回の移動方向に決定する。例えば、姿勢制御手段を少なくとも第1ハウジングの前方向の傾きを判定可能とし、第1ハウジングの前方向の傾きが判定されたときに、第1オブジェクトを第1方向に傾ける処理をおこなう。さらには、それに加えて、姿勢制御手段を少なくとも第1ハウジングの後方向の傾きを判定可能とし、第1ハウジングの後方向の傾きが判定されたときに、第1オブジェクトを第1方向と反対方向に傾ける処理をおこなう。さらには、それらに加えてまたは独立して、姿勢制御手段を少なくとも第1ハウジングの左右方向の傾きを判定可能とし、第1ハウジングの左右方向の傾きが判定されたときに、第1オブジェクトを第1方向に対して左右方向に傾ける処理をおこなう。なお、方向指示手段を第1ハウジングの前方向に傾倒可能なスティックによる構成とし、第1移動方向制御手段は、スティックが第1ハウジングの前方向に傾倒されたときに、第1オブジェクトを第1方向に移動するように制御し、かつ、姿勢制御手段は第1ハウジングの前方向の傾きを判定可能として、第1ハウジングの前方向の傾きを判定したときに、第1オブジェクトを第1方向に傾ける処理をしてもよい。さらに、それに加えて、方向指示手段を第1ハウジングの後方向に傾倒可能なスティックによる構成とし、第1移動方向制御手段は、スティックが第1ハウジングの後ろ方向に傾倒されたときに、第1オブジェクトを第1方向と反対に移動するように制御し、かつ、姿勢制御手段は第1ハウジングの後ろ方向の判定を検出可能として、第1ハウジングの後ろ方向の傾きを判定したときに、第1オブジェクトを第1方向と反対方向に傾ける処理をしてもよい。さらには、それらに加えてまたは独立して、方向指示手段を第1ハウジングの左右方向に傾倒可能なスティックによる構成とし、第1移動方向制御手段は、スティックが第1ハウジングの左右方向に傾倒されたときに、第1オブジェクトを第1方向に対して左右方向に移動するように制御し、かつ、姿勢制御手段は第1ハウジングの左右方向の傾きを判定可能として、第1ハウジングの左右方向の傾きを判定したときに、第1オブジェクトを第1方向に対して左右方向に傾ける処理をしてもよい。
第13の発明は、上記第5の発明において、第1移動方向制御手段は、仮想3次元ゲーム空間における第1方向を基準として、方向指示部による指示方向に応じた方向を移動方向として決定する。姿勢制御手段は、第1動き検出手段の検出に基づいて第1ハウジングの所定軸を中心とする回転を判定して、第1動き検出手段による所定軸を中心とする回転の検出に応じて、仮想3次元ゲーム空間における第1方向軸を中心とする第1オブジェクトの回転を決定する。この発明において、第1移動方向制御手段は、第1方向として、仮想3次元ゲーム空間における第1オブジェクトの前方方向(前方方向が移動方向制御に応じて変化する場合には現在の前方方向)または現在の移動方向とすることができる。例えば、方向指示部により右方向が指示された場合、第1方向に対する右方向を今回の移動方向に決定する。例えば、姿勢制御手段を少なくとも第1ハウジングの前後方向軸を中心とする回転を判定可能とし、第1ハウジングの前後方向軸を中心とする回転が判定されたときに、第1オブジェクトを第1方向軸を中心として回転させる処理をおこなう。さらには、それらに加えてまたは独立して、姿勢制御手段を少なくとも第1ハウジングの左右方向軸を中心とする回転を判定可能とし、第1ハウジングの左右方向軸を中心とする回転が判定されたときに、第1オブジェクトを第1方向軸を中心として回転させる処理をおこなう。なお、方向指示手段を第1ハウジングの前方向に傾倒可能なスティックによる構成とし、第1移動方向制御手段は、スティックが第1ハウジングの前方向に傾倒されたときに、第1オブジェクトを第1方向に移動するように制御し、かつ、姿勢制御手段は第1ハウジングの前後方向軸を中心とする回転を判定可能として、第1ハウジングの前後方向軸を中心とする回転を判定したときに、第1オブジェクトを第1方向軸を中心として回転させる処理をしてもよい。さらには、それらに加えてまたは独立して、方向指示手段を第1ハウジングの左右方向に傾倒可能なスティックによる構成とし、第1移動方向制御手段は、スティックが第1ハウジングの左右方向に傾倒されたときに、第1オブジェクトを第1方向に対して左右方向に移動するように制御し、かつ、姿勢制御手段は第1ハウジングの左右方向軸を中心とする回転を判定可能として、第1ハウジングの左右方向軸を中心とする回転を判定したときに、第1オブジェクトを第1方向に対して左右方向軸を中心として回転させる処理をしてもよい。
第14の発明は、上記第12の発明において、方向指示部は、少なくともスティックを第1ハウジングの前方向に傾倒させることにより前方向の指示入力が可能なものである。第1移動方向制御手段は、スティックが第1ハウジングの前方向に傾倒されたときに、第1オブジェクトを第1方向に移動させる。姿勢制御手段は、第1動き検出手段の検出に基づいて第1ハウジングの前方向の傾きを判定して、第1動き検出手段により第1ハウジングが前方向に傾いたことが検出されたときに、第1オブジェクトを第1方向に傾ける。
第15の発明は、上記第12または第14の発明において、方向指示部は、少なくともスティックを第1ハウジングの左右方向に傾倒させることにより左右方向の指示入力が可能なものである。第1移動方向制御手段は、スティックが第1ハウジングの左右方向に傾倒されたときに、第1オブジェクトを第1方向を基準とする左右方向に移動させる。姿勢制御手段は、第1動き検出手段の検出に基づいて第1ハウジングが左右方向に傾いたことを判定して、第1オブジェクトを第1方向を基準とする左右方向に傾ける。
第16の発明は、上記第12、第14、または第15の発明において、方向指示部は、少なくとも前後左右の方向指示が可能である。第1移動方向制御手段は、第1オブジェクトの現在の移動方向を第1方向に設定し、当該第1方向を基準として、方向指示部による指示方向に応じた方向を移動方向として更新設定する。姿勢制御手段は、第1動き検出手段の検出に基づいて第1ハウジングの傾きを判定して、更新設定される移動方向を基準とする方向への第1オブジェクトの傾きを決定する。
第17の発明は、上記第1の発明において、ゲームコントローラは、第2ハウジングを、さらに備える。第2ハウジングは、第1ハウジングと独立し、プレイヤが片手で把持可能である。ゲームシステムは、第2動き検出手段を、さらに含む。第2動き検出手段は、第2ハウジングで指し示す向きを検出する。ゲーム装置は、第2移動方向制御手段を、さらに備える。第2移動方向制御手段は、第2動き検出手段による検出に応じて、第1オブジェクトと異なる第2オブジェクトの移動方向を決定する。例えば、第1オブジェクトおよび第2オブジェクトは、スポーツゲームや戦争ゲームにおける味方チームに属するキャラクタのうちのオブジェクトである。または、第1オブジェクトが選手キャラクタで、第2オブジェクトがボールキャラクタであってもよい。さらには、第1オブジェクトがあるキャラクタで、第2オブジェクトが当該あるキャラクタが発射する発射キャラクタ(弾キャラクタなど)などでもよい。
第18の発明は、上記第1の発明において、ゲームコントローラは、第2ハウジングを、さらに備える。第2ハウジングは、第1ハウジングと独立し、プレイヤが片手で把持可能である。ゲームシステムは、第2動き検出手段を、さらに含む。第2動き検出手段は、第2ハウジングの動きを検出する。ゲーム装置は、第2移動方向制御手段を、さらに備える。第2移動方向制御手段は、第2動き検出手段による検出に応じて、第1オブジェクトと異なる第2オブジェクトの移動方向を決定する。第2動き検出手段は、第1動き検出手段と同様の構成とすることができる。
第19の発明は、上記第17または第18の発明において、第1移動方向制御手段は、仮想ゲーム世界に登場する複数のオブジェクトから選ばれた第1オブジェクトの移動方向を決定する。第2移動方向制御手段は、第2動き検出手段の検出に応じて、複数のオブジェクトのうちの少なくとも2つのオブジェクトの移動方向を決定する。ゲーム装置は、複数のオブジェクトのうちから第1オブジェクトを選択するが、この選択はユーザ操作に基づいてもよいしコンピュータで自動選択してもよい。また、第2移動方向制御手段によって制御される少なくとも2つのオブジェクトの選択はユーザ操作に基づいてもよいしコンピュータで自動選択してもよい。また、味方チームに属するキャラクタのうち、第1オブジェクト以外のキャラクタをコンピュータで自動制御してもよく、また、第1オブジェクトおよび第2オブジェクト以外のキャラクタをコンピュータで自動制御しても良い。また、第1オブジェクトはユーザ操作に基づいて味方チームから選択するのが好ましい。
第20の発明は、上記第17〜第19の発明のいずれかにおいて、第1動き検出手段は、第1ハウジングに設けられる。第2動き検出手段は、第2ハウジングに設けられる。ゲームコントローラは、接続手段および送信部を備える。接続手段は、第1ハウジングおよび第2ハウジングとの間を有線または無線接続して、一方のハウジング内で発生したデータを他方のハウジング内へ出力する。送信部は、第1ハウジングまたは第2ハウジングのうちの他方に設けられ、方向指示部の入力データ、第1動き検出手段の検出データ、および第2動き検出手段の検出データをゲーム装置に送信する。なお、この発明において、他方のハウジング内にゲームコントローラの識別情報データまたは通信リンクの識別情報データを記憶する識別情報記憶手段を設けて、送信部は、当該識別情報データを付して、方向指示部の入力データ、第1動き検出手段の検出データ、第2動き検出手段の検出データを送信してもよい。
第21の発明は、上記第17〜第19の発明のいずれかにおいて、ゲーム装置は、第2オブジェクト移動制御手段を、さらに備える。第2オブジェクト移動制御手段は、第1オブジェクトの仮想ゲーム世界における位置を基準とする位置を移動開始点として、第2移動方向制御手段により決定される移動方向に第2オブジェクトが移動するように制御する。第1オブジェクトは、例えば、サッカーゲームにおけるボールを保持した選手キャラクタであり、第2オブジェクトはボールキャラクタである。第17の発明に従属する場合、例えば、第2オブジェクトは、移動開始点(例えば、第1オブジェクトの位置またはその周辺の所定位置)から第2動き検出手段により検出されるゲーム画面上の指示座標に対応する仮想空間座標に向けて移動する。また、第18の発明に従属する場合、例えば、第2オブジェクトは、移動開始点から第2動き検出手段により検出される動き方向に対応する仮想空間内の方向に向けて移動する。
第22の発明は、上記第17〜第19の発明のいずれかにおいて、第2移動方向制御手段は、第1動き検出手段の検出および第2動き検出手段の検出に応じて、第2オブジェクトの移動方向を決定する。
第23の発明は、上記第17〜第19の発明のいずれかにおいて、第2移動方向制御手段は、姿勢制御手段により決定された第1オブジェクトの姿勢および第2動き検出手段の検出に応じて、第2オブジェクトの移動方向を決定する。
第24の発明は、上記第1の発明において、第1動き検出手段は、第1ハウジングに設けられて、当該第1ハウジングの動きを検出する。
第25の発明は、上記第17または第18の発明において、第2動き検出手段は、第2ハウジングに設けられる。
なお、本願発明において、第1動き検出手段および第2動き検出手段(以下、単に動き検出手段と記載する)は、ハウジングの動きやハウジングで指し示す位置を検出する手段であるが、典型的には、ハウジングに固設されるセンサである。なお、本願発明において、ハウジングの動きとは姿勢変化(傾きの変化と同義であり、ハウジングの軸を中心とする回転運動の意味である)を含む。このセンサとしては、加速度に応じたデータを出力するセンサ(加速度センサ)、方位に応じたデータを出力するセンサ(磁気センサ)、回転運動に応じたデータを出力するセンサ(ジャイロセンサ)などを用いることができる。また、加速度センサおよびジャイロセンサは、多軸検出可能なものだけなく1軸検出のものでもよい。また、これらのセンサを組み合わせて、より正確なハウジングの動きを検出するものであってもかまわない。なお、ハウジングに固定されたカメラを、上記センサとして利用することも可能である。この場合、ハウジングの動きや姿勢変化に応じてカメラが撮像する撮像画像が変化するので、この画像を解析することにより、ハウジングの動きや姿勢変化(回転)を判断することができ、さらにハウジングで指し示す位置も判断することができる。
また、動き検出手段は、センサの種類によっては、ハウジングの外部に別設されてもよい。一例として、センサとしてのカメラでハウジングの外部から当該ハウジングを撮影し、撮像画像内に撮像されたハウジングの画像を解析することにより、ハウジングの動きを判断することが可能である。さらに、ハウジングに固設されたユニットとハウジング外部に別設されたユニットとの協働によるシステムを用いてもよい。この例としては、ハウジング外部に発光ユニットを別設し、ハウジングに固設されたカメラで発光ユニットからの光を撮影する。このカメラで撮像された撮像画像を解析することにより、ハウジングの動きを判断することができる。また、他の例としては、ハウジング外部に磁場発生装置を別設し、ハウジングに磁気センサを固設するようなシステムなどが挙げられる。
ゲーム装置が備える処理手段において、センサの出力に基づいて、ハウジングの動きが判断される。前述の通り、本願発明は、ハウジングの直線的な動きを判断する場合と、ハウジングの姿勢変化(回転、傾き)を判断する場合があるが、後者について、以下に詳述する。ハウジングの姿勢変化を判断する場合、ハウジングの所定軸の周りに当該ハウジングが回転したことを判断してもよいし(第1種の補正手段)、現実世界における所定軸の周りにハウジングが回転したことを判断してもよい(第2種の補正手段)。
(1)第1種の補正手段の場合
まず、加速度センサをハウジングに固設する例を説明する。単純な例として、ハウジングの所定方向に生じる加速度を加速度センサで検出する。そして、加速度センサが検出した加速度を用いて、重力加速度成分の変化を分析することによって、重力加速度方向に直交する軸周りにハウジングが回転したことを判断することが可能である。例えば、ハウジングの上下方向に生じる加速度を検出して、重力加速度の当該上下方向成分の変化を分析することによって、ハウジングの左右軸周りに当該ハウジングが回転したことを判断することが可能である。
まず、加速度センサをハウジングに固設する例を説明する。単純な例として、ハウジングの所定方向に生じる加速度を加速度センサで検出する。そして、加速度センサが検出した加速度を用いて、重力加速度成分の変化を分析することによって、重力加速度方向に直交する軸周りにハウジングが回転したことを判断することが可能である。例えば、ハウジングの上下方向に生じる加速度を検出して、重力加速度の当該上下方向成分の変化を分析することによって、ハウジングの左右軸周りに当該ハウジングが回転したことを判断することが可能である。
ここで、加速度センサを用いる場合、加速度センサの検出軸がハウジングの姿勢変化における回転軸と一致するケースなど、加速度センサの検出軸の傾きが変化しないハウジングの回転に対しては、重力加速度の検出軸方向の成分が変化しないので、ハウジングの回転を判断することが難しい。しかしながら、加速度センサの検出軸がハウジングの姿勢変化における回転軸と一致しない場合(典型的には、加速度センサの検出軸が鉛直面に沿って傾きを変化するような姿勢変化など)であれば、重力加速度の影響により当該検出軸についての出力値が変化するのでハウジングの回転が判断できる。
なお、本願発明が適用されるゲームの分野においては、ゲーム開発者が予め定める正しい操作方法に従って操作したときに正しいゲーム処理が行われるようにしておけば十分であって、それ以外の操作をした場合に正しいゲーム処理が行われないとしても格段の問題は生じない。したがって、ゲームの取扱説明書やゲーム画面などにおいて、正しい操作方法として、ハウジングの姿勢を変化させる方法(より具体的には、どの軸周りに回転操作させるか)を指示しておけば、プレイヤはその指示にしたがってハウジングを回転させる操作する。つまり、ある回転操作を前提として、ハウジングの姿勢が判断できれば十分である。なお、プレイヤが指示された操作から逸脱した操作を行った場合には、ハウジングの姿勢を正確に判断することができないが、その逸脱した程度が許容範囲内であれば、ゲーム処理としてもおおよそ正しい処理結果が得られる。また、ゲーム装置の用途においては、格段の正確性を必要としないことが多いため、そのような場合でも十分な実用性を有する。
なお、加速度センサを用いる場合、ハウジングに作用する重力加速度のみならず、ハウジングの動きに応じて作用する加速度を検出するが、当業者にとって既知の処理により、当該動きに応じて検出された加速度を除去することが可能である。例えば、単純な例としては、加速度センサが検出した加速度の値が重力加速度よりも大きな値(または、十分大きな値)を示すときには、検出された加速度の値が重力加速度を示していないと判断して除去するような処理としてもよい。また、加速度センサが検出した加速度の値の変動が小さいときにのみ、検出された加速度の値が重力加速度を示しているとして、姿勢の分析に採用するような処理としてもよい。さらに、加速度センサが検出した加速度の値の高周波成分を除去してもよい。また、ハウジングを激しく動かす必要のないゲームの場合には、ハウジングの動きに応じて作用する加速度を除去する処理をしなくてもよい。なぜなら、ハウジングの動きに応じた加速度が検出されても、プレイヤがハウジングを激しく動かさなければ、ある程度正しい結果が得られるのであって、十分な実用性を有するからである。
なお、多軸検出可能な加速度センサを用いて、当該多軸方向にそれぞれ生じた加速度の値を用いる場合には、基準姿勢からのハウジングの回転角度を算出して、より詳細な判断することが可能である。例えば、加速度センサが検出する2つの軸方向の加速度の値を用いて、所定の演算処理をすることにより、ハウジングの回転角度を算出することが可能である。典型的には、2つの軸方向の加速度の値を逆正接関数に代入するなどの、三角関数を利用した演算処理を、ハウジングの回転角度の算出に用いることができる。
また、多軸検出可能な加速度センサを用いる場合には、どの検出軸方向の加速度が変化するかに基づいて、どの検出軸周りにハウジングが回転したかの判定も可能である。また、3軸方向の加速度をそれぞれ検出する加速度センサを用いる場合に、例えば、第1の軸方向の加速度の値と第2の軸方向の加速度の値とを用いて演算処理をすることにより、第3の軸周りにハウジングが回転したことを判断することが可能である。また、第1の軸方向の加速度の値と第3の軸方向の加速度の値とを用いて演算処理をすることにより、第2の軸周りにハウジングが回転したこと判断することが可能である。
なお、ハウジングを実空間で回転移動させると、ハウジングに遠心力が生じる。この遠心力を加速度センサが検出することにより、ハウジングの姿勢変化の判断に利用してもかまわない。すなわち、例えば、ハウジングのある方向に加速度が生じたことが加速度センサにより検出された場合、それに直交する方向に伸びる軸周りにハウジングが回転した可能性があると判定できる。
次に、ジャイロセンサをハウジングに固設する場合を説明する。この場合、ハウジングの姿勢を変化させる(すなわち、ハウジングをローカル座標系における所定軸周りに回転させる)と、ジャイロセンサはその回転を直接検出して、角速度データを出力する。そして、出力された角速度データに基づいて、基準姿勢からのハウジングの姿勢変化を判断することが可能である。より具体的には、角速度データを用いてハウジング回転角度の変化を判断することが可能である。より典型的には、ハウジングの前後軸周りの回転角度の変化、ハウジングの左右軸周りの回転角度の変化、および/または、ハウジングの上下軸周りの回転角度の変化をそれぞれ判断することが可能である。また、初期状態におけるハウジングの回転角度を設定しておくことにより、ハウジングの前後軸周りの回転角度、ハウジングの左右軸周りの回転角度、および/または、ハウジングの上下軸周りの回転角度を判断することが可能である。
(2)第2種の補正手段の場合
典型的には、3軸方向の加速度をそれぞれ検出可能な加速度センサをハウジングに固設し、各軸方向に生じた加速度の値に基づいて、ハウジングに対する重力方向を判定することにより、水平軸周りのハウジングの回転角を判断することが可能である。または、例えば、3軸方向の加速度をそれぞれ検出可能な加速度センサについて、第1軸方向の加速度の値と第2軸方向の加速度の値とから合成ベクトルを算出する。そして、上記合成ベクトルの大きさと第3軸方向の加速度の値とからなる2次元ベクトルから、水平軸周りの当該第3軸の回転角を判断することも可能である。または、方位センサをハウジングに設けることにより、鉛直軸周りの回転角を判断することが可能である。
典型的には、3軸方向の加速度をそれぞれ検出可能な加速度センサをハウジングに固設し、各軸方向に生じた加速度の値に基づいて、ハウジングに対する重力方向を判定することにより、水平軸周りのハウジングの回転角を判断することが可能である。または、例えば、3軸方向の加速度をそれぞれ検出可能な加速度センサについて、第1軸方向の加速度の値と第2軸方向の加速度の値とから合成ベクトルを算出する。そして、上記合成ベクトルの大きさと第3軸方向の加速度の値とからなる2次元ベクトルから、水平軸周りの当該第3軸の回転角を判断することも可能である。または、方位センサをハウジングに設けることにより、鉛直軸周りの回転角を判断することが可能である。
また、動き検出手段から出力されるデータを用いて、ハウジングで指し示された位置を検出する場合、動き検出手段は、例えば、ハウジングに設けられる撮影手段で撮影した画像を解析することにより動きを検出するもの(例えば、後述の撮像情報演算部74とマーカ8により実現されるようなシステムを含む)など、ハウジングにおける所定軸が向いている方向が検出可能な手段である。また、ゲーム画面上の指示座標を検出可能なものであることが好ましい。
第26の発明は、プレイヤが片手で把持可能なハウジングを有するゲームコントローラと、当該ゲームコントローラと接続されるゲーム装置と、当該ハウジングの動きを検出する動き検出手段とを含むゲームシステムである。ハウジングは、その側周をプレイヤが片手で握持可能な形状および大きさで形成される。ゲームコントローラは、方向指示部を備える。方向指示部は、ハウジングをプレイヤが片手で握持したときに当該片手の親指で操作可能な位置配設され、方向指示入力をする。ゲーム装置は、移動方向制御手段、姿勢制御手段、および表示制御手段を備える。移動方向制御手段は、仮想3次元ゲーム空間に登場するオブジェクトの前方方向を基準として、方向指示部による指示方向を当該オブジェクトの移動方向として決定し、当該移動方向へ当該オブジェクトの前方方向を変化させる。姿勢制御手段は、動き検出手段の検出に基づいてハウジングの傾きを判定して、プレイヤが方向指示部を用いて前後方向の入力操作を行う方向へハウジングが傾いたことを示すとき、オブジェクトを現在の前方方向へ傾ける。表示制御手段は、仮想3次元ゲーム空間内で、姿勢制御手段により決定された傾きで、移動方向制御手段によって決定された移動方向にオブジェクトを移動させて表示装置に表示する。
第27の発明は、プレイヤが片手で把持可能なハウジングを有するゲームコントローラと、当該ゲームコントローラと接続されるゲーム装置と、当該ハウジングの動きを検出する動き検出手段とを含むゲームシステムである。ハウジングは、その側周をプレイヤが片手で握持可能な形状および大きさで形成される。ゲームコントローラは、方向指示部を備える。方向指示部は、ハウジングをプレイヤが片手で握持したときに当該片手の親指で操作可能な位置配設され、方向指示入力をする。ゲーム装置は、移動方向制御手段、姿勢制御手段、および表示制御手段を備える。移動方向制御手段は、仮想3次元ゲーム空間に登場するオブジェクトの前方方向を基準として、方向指示部による指示方向を当該オブジェクトの移動方向として決定し、当該移動方向へ当該オブジェクトの前方方向を変化させる。姿勢制御手段は、動き検出手段の検出に基づいてハウジングの傾きを判定して、プレイヤが方向指示部を用いて左右方向の入力操作を行う方向へハウジングが傾いたことを示すとき、オブジェクトを現在の前方方向に直交する方向へ傾ける。表示制御手段は、仮想3次元ゲーム空間内で、姿勢制御手段により決定された傾きで、移動方向制御手段によって決定された移動方向にオブジェクトを移動させて表示装置に表示する。
第28の発明は、プレイヤが片手で把持可能なハウジングを有するゲームコントローラと、当該ゲームコントローラと接続されるゲーム装置と、当該ハウジングの動きを検出する動き検出手段とを含むゲームシステムである。ハウジングは、その側周をプレイヤが片手で握持可能な形状および大きさで形成される。ゲームコントローラは、方向指示部を備える。方向指示部は、ハウジングをプレイヤが片手で握持したときに当該片手の親指で操作可能な位置配設され、方向指示入力をする。ゲーム装置は、移動方向制御手段、姿勢制御手段、および表示制御手段を備える。移動方向制御手段は、仮想3次元ゲーム空間に登場するオブジェクトの前方方向を基準として、方向指示部による指示方向を当該オブジェクトの移動方向として決定し、当該移動方向へ当該オブジェクトの前方方向を変化させる。姿勢制御手段は、動き検出手段の検出に基づいてハウジングの傾きを判定して、プレイヤが方向指示部を用いて前後方向の入力操作を行う方向へハウジングが傾いたことを示すとき、オブジェクトを現在の前方方向へ傾け、プレイヤが方向指示部を用いて左右方向の入力操作を行う方向へハウジングが傾いたことを示すとき、現在の前方方向に直交する方向へ傾ける。表示制御手段は、仮想3次元ゲーム空間内で、姿勢制御手段により決定された傾きで、移動方向制御手段によって決定された移動方向にオブジェクトを移動させて表示装置に表示する。
第29の発明は、プレイヤが片手で把持可能なハウジングを有するゲームコントローラと、当該ゲームコントローラと接続されるゲーム装置と、当該ハウジングの動きを検出する動き検出手段とを含むゲームシステムである。ハウジングは、その側周をプレイヤが片手で握持可能な形状および大きさで形成される。ゲームコントローラは、方向指示部を備える。方向指示部は、ハウジングをプレイヤが片手で握持したときに当該片手の親指で操作可能な位置配設され、方向指示入力をする。ゲーム装置は、移動方向制御手段、姿勢制御手段、および表示制御手段を備える。移動方向制御手段は、仮想3次元ゲーム空間に登場するオブジェクトの前方方向を基準として、方向指示部による指示方向を当該オブジェクトの移動方向として決定する。姿勢制御手段は、動き検出手段の検出に基づいてハウジングの傾きを判定して、プレイヤが方向指示部を用いて前後方向の入力操作を行う方向へハウジングが傾いたことを示すとき、オブジェクトを前方方向へ傾ける。表示制御手段は、仮想3次元ゲーム空間内で、姿勢制御手段により決定された傾きで、移動方向制御手段によって決定された移動方向にオブジェクトを移動させて表示装置に表示する。
第30の発明は、プレイヤが片手で把持可能なハウジングを有するゲームコントローラと、当該ゲームコントローラと接続されるゲーム装置と、当該ハウジングの動きを検出する動き検出手段とを含むゲームシステムである。ハウジングは、その側周をプレイヤが片手で握持可能な形状および大きさで形成される。ゲームコントローラは、方向指示部を備える。方向指示部は、ハウジングをプレイヤが片手で握持したときに当該片手の親指で操作可能な位置配設され、方向指示入力をする。ゲーム装置は、移動方向制御手段、姿勢制御手段、および表示制御手段を備える。移動方向制御手段は、仮想3次元ゲーム空間に登場するオブジェクトの前方方向を基準として、方向指示部による指示方向を当該オブジェクトの移動方向として決定する。姿勢制御手段は、動き検出手段の検出に基づいてハウジングの傾きを判定して、プレイヤが方向指示部を用いて左右方向の入力操作を行う方向へハウジングが傾いたことを示すとき、オブジェクトを前方方向に直交する方向へ傾ける。表示制御手段は、仮想3次元ゲーム空間内で、姿勢制御手段により決定された傾きで、移動方向制御手段によって決定された移動方向にオブジェクトを移動させて表示装置に表示する。
第31の発明は、プレイヤが片手で把持可能なハウジングを有するゲームコントローラと、当該ゲームコントローラと接続されるゲーム装置と、当該ハウジングの動きを検出する動き検出手段とを含むゲームシステムである。ハウジングは、その側周をプレイヤが片手で握持可能な形状および大きさで形成される。ゲームコントローラは、方向指示部を備える。方向指示部は、ハウジングをプレイヤが片手で握持したときに当該片手の親指で操作可能な位置配設され、方向指示入力をする。ゲーム装置は、移動方向制御手段、姿勢制御手段、および表示制御手段を備える。移動方向制御手段は、仮想3次元ゲーム空間に登場するオブジェクトの前方方向を基準として、方向指示部による指示方向を当該オブジェクトの移動方向として決定する。姿勢制御手段は、動き検出手段の検出に基づいてハウジングの傾きを判定して、プレイヤが方向指示部を用いて前後方向の入力操作を行う方向へハウジングが傾いたことを示すとき、オブジェクトを前方方向へ傾け、プレイヤが方向指示部を用いて左右方向の入力操作を行う方向へハウジングが傾いたことを示すとき、前方方向に直交する方向へ傾ける。表示制御手段は、仮想3次元ゲーム空間内で、姿勢制御手段により決定された傾きで、移動方向制御手段によって決定された移動方向にオブジェクトを移動させて表示装置に表示する。
第32の発明は、上記第26〜第31の発明のいずれかにおいて、動き検出手段は、ハウジングに設けられて、当該ハウジングの動きを検出する。
第33の発明は、プレイヤが操作するゲームコントローラと、当該ゲームコントローラと接続されるゲーム装置とを含むゲームシステムである。ゲームコントローラは、第1ハウジング、方向指示部、第2ハウジング、および動き検出手段とを備える。第1ハウジングは、プレイヤが片手で把持可能である。方向指示部は、第1ハウジングに設けられ、方向指示入力をする。第2ハウジングは、第1ハウジングと独立し、プレイヤが片手で把持可能である。動き検出手段は、第2ハウジングの動きを検出する。ゲーム装置は、移動方向制御手段および姿勢制御手段を備える。移動方向制御手段は、方向指示部の操作に応じて、仮想ゲーム世界に登場するオブジェクトの移動方向を決定する。姿勢制御手段は、動き検出手段の検出に応じて、仮想ゲーム世界におけるオブジェクトの姿勢を決定する。
第34の発明は、プレイヤが片手で把持可能なハウジングと、方向指示入力するための方向指示部と、当該ハウジングの動きを検出する動き検出手段とを備えたゲームコントローラと接続されるゲーム装置のコンピュータで実行されるゲームプログラムである。ゲームプログラムは、移動方向制御手段および姿勢制御手段として、コンピュータを機能させる。移動方向制御手段は、方向指示部の操作に応じて、仮想ゲーム世界に登場するオブジェクトの移動方向を決定する。姿勢制御手段は、動き検出手段の検出に応じて、仮想ゲーム世界におけるオブジェクトの姿勢を決定する。
第35の発明は、プレイヤが片手で把持可能なハウジングを有するゲームコントローラと、当該ゲームコントローラと接続されるゲーム装置と、当該ハウジングの動きを検出する動き検出手段とを含むゲームシステムである。ゲームコントローラは、方向指示部を備える。方向指示部は、ハウジングに設けられ、方向指示入力するために設けられる。典型的には、動き検出手段は、ハウジングの直線状の動きを検出し、または、ハウジングの軸を中心とする回転を検出する。ゲーム装置は、移動制御手段および動作制御手段を備える。移動制御手段は、方向指示部の操作に応じて、仮想ゲーム世界に登場するオブジェクトの移動制御を行う。動作制御手段は、動き検出手段による検出に応じて、仮想ゲーム世界におけるオブジェクトに所定の動作をさせる。
なお、動作制御手段は、オブジェクトが、移動制御手段によって決定される仮想ゲーム世界の位置において、所定の動作をするように制御する。例えば、所定の動作は、オブジェクトがジャンプ動作する制御であってもよいし、オブジェクトがフェイント動作する制御であってもよいし、オブジェクトが他のオブジェクトを攻撃動作する制御等であってもよい。また、動作制御手段による動作制御によって、オブジェクトの仮想ゲーム世界における位置が変化しないようにするのが好ましい。
また、動作制御手段は、ハウジングが所定方向(ハウジングの所定方向または現実空間における所定方向(水平方向や鉛直方向など))に動いたこと、または、ハウジングが所定方向に回転したこと(ハウジングが当該ハウジングの所定軸を中心に回転したこと)、さらには、ハウジングが所定の動作パターンで動いたこと等に応じて、オブジェクトに所定の動作をさせる。
第36の発明は、上記第35の発明において、ハウジングは、当該ハウジングの側周をプレイヤが片手で握持可能な形状および大きさで形成される。
第37の発明は、上記第36の発明において、ハウジングは、当該ハウジングの側周をプレイヤが片手で握持したときに、当該片手の親指で操作可能な位置に方向指示部が配設される。
第38の発明は、上記第35の発明において、動き検出手段は、ハウジングに対して生じる加速度を検出可能である。動作制御手段は、動き検出手段による検出に基づいてハウジングの所定方向に生じた加速度を判定して、当該加速度が所定条件を満たすときに、オブジェクトに所定の動作をさせる。
第39の発明は、上記第38の発明において、動作制御手段は、動き検出手段による検出に基づいてハウジングの所定方向に生じた加速度の履歴を判定して、当該履歴が所定条件を満たすときに、オブジェクトに所定の動作をさせる。
第40の発明は、上記第35の発明において、動き検出手段は、ハウジングにおける所定軸を中心とした回転を少なくとも検出可能である。動作制御手段は、動き検出手段による検出に基づいてハウジングの所定軸を中心とした回転を判定して、当該回転が所定条件を満たすときに、オブジェクトに所定の動作をさせる。
第41の発明は、上記第35の発明において、方向指示部は、操作部をハウジングの所定方向に押す入力が可能なものである。移動制御手段は、操作部を所定方向に押す入力がされたときに、仮想ゲーム世界においてオブジェクトを所定方向に移動させる。動作制御手段は、ハウジングが所定方向に動いたことに応じて、仮想ゲーム世界におけるオブジェクトに所定の動作をさせる。
なお、方向指示部は、例えば、十字キー(十字状に配置されたボタンでもよい)やジョイスティック(操作部がスライドするものでもよい)であり、キーやスティックをハウジングの所定方向(ハウジングの前、後、左、およびまたは、右方向)に押す入力が可能である(スティックの場合にはハウジングの前、後、左、およびまたは、右方向に傾倒する入力が可能である)。移動制御手段は、例えば、操作部がハウジングの前方向に押す入力がされたときに、オブジェクトを当該オブジェクトの前方向に移動させる。
例えば、動き検出手段は、加速度センサであり、動作制御手段は、ハウジングの所定方向に所定の加速度が生じたことに応じて、オブジェクトに所定の動作をさせる。「所定の動作」とは典型的には、プログラムで予め動きデータ(モーションデータ)を設定しておき、当該モーションデータを参照して、オブジェクトに予め定める動作をさせるものである。なお、動作制御手段は、ハウジングの動きの速さまたは大きさが一定以下の動きのときには、オブジェクトに所定の動作をさせないようにしてもよい。また、動作制御手段は、ハウジングの動きの速さまたは大きさに応じて、仮想ゲーム世界におけるオブジェクトに異なる動作をさせるようにしてもよい。
第42の発明は、上記第35の発明において、方向指示部は、操作部をハウジングの所定方向に押す入力が可能なものである。移動制御手段は、操作部を所定方向に押す入力がされたときに、仮想ゲーム世界においてオブジェクトを第1方向に移動させる。動作制御手段は、ハウジングが所定方向に直交する方向に動いたことに応じて、仮想ゲーム世界におけるオブジェクトに所定の動作をさせる。
第43の発明は、上記第41の発明において、方向指示部は、操作部をハウジングの所定方向および当該所定方向に直交する方向に押す入力が可能なものである。移動制御手段は、操作部を所定方向に押す入力がされたときに、仮想ゲーム世界においてオブジェクトを第1方向に移動させ、かつ、操作部を直交する方向に押す入力がされたときに、仮想ゲーム世界においてオブジェクトを第1方向と直交する第2方向に移動させる。動作制御手段は、ハウジングが所定方向に動いたことに応じて、仮想ゲーム世界におけるオブジェクトに所定の動作としての第1動作をさせ、ハウジングが直交する方向に動いたことに応じて、仮想ゲーム世界におけるオブジェクトに所定の動作としての当該第1動作と異なった第2動作をさせる。
なお、上記第1動作と第2動作とは、異なる種類の動作である。典型的には、プログラムで予め動きデータ(モーションデータ)として、第1動作のモーションデータと、第2動作のモーションデータとを設定しておく。そして、動作制御手段は、ハウジングが上記所定方向に動いたことに応じて、第1動作のモーションデータを参照して、オブジェクトに第1動作をさせ、ハウジングが上記直交する方向に動いたことに応じて、第2動作のモーションデータを参照して、オブジェクトに第2動作をさせる。例えば、第1動作として、ある種類のフェイント動作(例えば、またぎフェイント)をさせ、第2動作としてそれとは異なる別の種類のフェイント動作(例えば、左右に体をゆらすフェイント)をさせてもよい。
第44の発明は、上記第35の発明において、方向指示部は、操作部をハウジングの所定方向に押す入力が可能なものである。移動制御手段は、操作部を所定方向に押す入力がされたときに、仮想ゲーム世界においてオブジェクトを当該オブジェクトの前方向に移動させ、かつ、当該押す入力の大きさに応じてオブジェクトの移動量を変更する。動作制御手段は、ハウジングが所定方向に直交する方向に動いたことに応じて、仮想ゲーム世界におけるオブジェクトに所定の動作をさせる。
なお、移動制御手段は、例えば、スティックの傾倒量、操作部のスライド量、キーの押す量または押す力に応じて、オブジェクトの移動量を決定する(例えば、傾倒量等が大きいほど、移動量が大きいようにする)。そして、動作制御手段は、直交する方向の動きを判定するので、方向指示部を用いてオブジェクトの前方向への移動を調整しつつ、ハウジングを直交する方向に動かすことによりオブジェクトに動作をさせることができる。
第45の発明は、上記第35の発明において、方向指示部は、操作部をハウジングの所定方向に押す入力が可能なものである。移動制御手段は、操作部を所定方向に押す入力がされたときに、仮想ゲーム世界においてオブジェクトを所定方向に移動させる。動作制御手段は、ハウジングが所定方向に動いた後、当該所定方向と反対方向に動いたことに応じて、仮想ゲーム世界におけるオブジェクトに所定の動作をさせる。
なお、動作制御手段は、ハウジングが所定方向への動きと当該所定方向の反対方向への動きが反復したことに応じて、仮想ゲーム世界におけるオブジェクトに所定の動作をさせるようにしてもよい。また動作制御手段は、ハウジングが所定方向への動きと当該所定方向と反対方向への動きが反復した回数に応じて、動作の種類を変更してもよい。
第46の発明は、上記第35の発明において、方向指示部は、操作部をハウジングの所定方向に押す入力が可能なものである。移動制御手段は、操作部を所定方向に押す入力がされたときに、仮想ゲーム世界においてオブジェクトを所定方向に移動させる。動作制御手段は、ハウジングが所定方向と直交する軸を中心に回転したことに応じて、仮想ゲーム世界におけるオブジェクトに所定の動作をさせる。
なお、方向指示部は、上記第41の発明の方向指示部と同様である。また、動き検出手段は、例えば加速度センサまたはジャイロセンサであり、動作制御手段は、ハウジングが所定方向と直交する所定軸(典型的には、ハウジングの所定軸または水平軸)まわりに回転したことに応じて、オブジェクトに所定の動作をさせる。「所定の動作」とは典型的には、プログラムで予め動きデータ(モーションデータ)を設定しておき、当該モーションデータを参照して、オブジェクトに予め定める動作をさせるものである。
第47の発明は、上記第35の発明において、方向指示部は、操作部をハウジングの所定方向に押す入力が可能なものである。移動制御手段は、操作部を所定方向に押す入力がされたときに、仮想ゲーム世界においてオブジェクトを所定方向に移動させる。動作制御手段は、ハウジングが所定方向の軸を中心に回転したことに応じて、仮想ゲーム世界におけるオブジェクトに所定の動作をさせる。
第48の発明は、上記第35の発明において、方向指示部は、操作部をハウジングの所定方向および当該所定方向に直交する方向に押す入力が可能なものである。移動制御手段は、操作部を所定方向に押す入力がされたときに、仮想ゲーム世界においてオブジェクトを第1方向に移動させ、かつ、操作部を直交する方向に押す入力がされたときに、仮想ゲーム世界においてオブジェクトを第1方向と直交する第2方向に移動させる。動作制御手段は、ハウジングが所定方向と直交する軸を中心に回転したことに応じて、仮想ゲーム世界におけるオブジェクトに所定の動作としての第1動作をさせ、ハウジングが所定方向の軸を中心に回転したことに応じて、仮想ゲーム世界におけるオブジェクトに所定の動作としての当該第1動作と異なる第2動作をさせる。
上記第1動作と第2動作とは、異なる種類の動作である。典型的には、プログラムで予め動きデータ(モーションデータ)として、第1動作のモーションデータと、第2動作のモーションデータとを設定しておく。そして、動作制御手段は、ハウジングが上記所定方向に動いたことに応じて、第1動作のモーションデータを参照して、オブジェクトに第1動作をさせ、ハウジングが上記直交する方向に動いたことに応じて、第2動作のモーションデータを参照して、オブジェクトに第2動作をさせる。例えば、第1動作として、ある種類のフェイント動作(例えば、またぎフェイント)をさせ、第2動作としてそれとは異なる別の種類のフェイント動作(例えば、左右に体をゆらすフェイント)をさせてもよい。
第49の発明は、上記第35の発明において、方向指示部は、操作部をハウジングの所定方向に押す入力が可能なものである。移動制御手段は、操作部を所定方向に押す入力がされたときに、仮想ゲーム世界においてオブジェクトを当該オブジェクトの前方向に移動させ、かつ、当該押す入力の大きさに応じてオブジェクトの移動量を変更する。動作制御手段は、ハウジングが所定方向の軸を中心に回転したことに応じて、仮想ゲーム世界におけるオブジェクトに所定の動作をさせる。
第50の発明は、上記第35の発明において、方向指示部は、操作部をハウジングの所定方向に押す入力が可能なものである。移動制御手段は、操作部を所定方向に押す入力がされたときに、仮想ゲーム世界においてオブジェクトを所定方向に移動させる。動作制御手段は、ハウジングが所定方向と直交する軸を中心に回転した後、当該軸を中心に逆回転したことに応じて、仮想ゲーム世界におけるオブジェクトに所定の動作をさせる。
なお、動作制御手段は、ハウジングが双方向へ反復して回転することに応じて、仮想ゲーム世界におけるオブジェクトに所定の動作をさせるようにしてもよい。また、その反復回数に応じて、動作の種類を変更してもよい。
第51の発明は、上記第35の発明において、方向指示部は、操作部をハウジングの所定方向に押す入力が可能なものである。移動制御手段は、操作部を所定方向に押す入力がされたときに、仮想ゲーム世界においてオブジェクトを当該オブジェクトの前方向に移動させ、かつ、当該押す入力の大きさに応じてオブジェクトの移動量を変更する。動作制御手段は、ハウジングが所定方向の軸を中心に回転したことに応じて、仮想ゲーム世界におけるオブジェクトに所定の動作をさせる。
なお、移動制御手段は、例えば、スティックの傾倒量、操作部のスライド量、キーの押す量または押す力に応じてオブジェクトの移動量を決定する(傾倒量等が大きいほど、移動量が大きいようにする)。そして、動作制御手段は、所定方向の軸を中心とした回転を判定するので、方向指示部でオブジェクトの前方向への移動を調整しつつ、ハウジングを所定方向の軸を中心とした方向に回転することによりオブジェクトに動作をさせることができる。
第52の発明は、上記第35の発明において、方向指示部は、操作部をハウジングの所定方向に押す入力が可能なものである。移動制御手段は、操作部を所定方向に押す入力がされたときに、仮想ゲーム世界においてオブジェクトを当該オブジェクトの前方向に移動させ、かつ、当該押す入力の大きさに応じてオブジェクトの移動量を変更する。動作制御手段は、ハウジングが所定方向と直交する軸を中心として双方向へ反復して回転することに応じて、仮想ゲーム世界におけるオブジェクトに所定の動作をさせる。
第53の発明は、上記第52の発明において、動作制御手段は、反復の回数に応じて、仮想ゲーム世界におけるオブジェクトに異なる動作をさせる。
第54の発明は、上記第41の発明において、動作制御手段は、ハウジングの動きの速度に応じて、仮想ゲーム世界におけるオブジェクトに異なる動作をさせる。
上記第1の発明によれば、ゲームコントローラの第1ハウジングをプレイヤが片手で把持して操作可能であるため、入力装置が小型であり扱いやすい。また、プレイヤは、例えばプレイヤキャラクタ等の第1オブジェクトに対して、その移動方向制御と姿勢制御とを、片手で効率的かつ直感的に入力することができる。
上記第2の発明によれば、プレイヤが第1ハウジングを片手で包み込むように把持することができ、プレイヤの一方の手自体を自由に動かしてプレイすることができる。
上記第3の発明によれば、プレイヤが第1ハウジングを片手で包み込むように把持することができ、プレイヤの一方の手自体を自由に動かしながら、従来のコントローラと同じように親指による入力を行うことができる。
上記第4の発明によれば、プレイヤは、ゲームコントローラ本体を動かすことによって、オブジェクトを所定方向へ傾けることができる。
上記第6の発明によれば、プレイヤは、ゲームコントローラ本体を動かすことによって、オブジェクトを2方向へ傾けることができる。
上記第8の発明によれば、プレイヤは、ゲームコントローラ本体を動かすことによって、仮想3次元空間におけるオブジェクトの姿勢を変化させることができる。
上記第10の発明によれば、プレイヤは、ゲームコントローラ本体を動かすことによって、仮想3次元空間におけるオブジェクトの姿勢を変化させることができる。また、ゲームコントローラ本体に対する3軸加速度成分を、それぞれ仮想3次元空間における姿勢を表す姿勢ベクトルの各成分に割り当てることによって、処理負担が軽減される。
上記第12の発明によれば、プレイヤは、ゲームコントローラ本体を動かすことによって、オブジェクトの移動方向を基準として傾けることができる。
上記第14の発明によれば、プレイヤは、ゲームコントローラ本体を前後方向に傾けることによって、オブジェクトを前後方向へ傾けることができる。
上記第15の発明によれば、プレイヤは、方向入力操作を行うスティックを傾倒する前後方向にゲームコントローラ本体を傾けることによって、オブジェクトを前後方向へ傾けることができる。
上記第16の発明によれば、プレイヤは、オブジェクトが向く方向を変化させながら、ゲームコントローラ本体を傾けることによって、そのオブジェクトが向いた方向を基準とした前後方向にオブジェクトを傾けることができる。
上記第17および第18の発明によれば、プレイヤが左右の手にそれぞれ第1ハウジングと第2ハウジングを把持することができ、プレイヤの左右の手で全く異なる操作をすることが可能になるので、従来にない新たな操作を提供することができる。例えば、プレイヤの一方の手で第1オブジェクトを操作し、他方の手で第2オブジェクトを操作するようなゲームが可能となる。
上記第19の発明によれば、プレイヤが一方の手で第1オブジェクトを操作しながら、他方の手で複数のオブジェクトを操作することができる。
上記第20の発明によれば、複数のハウジング内で生成される各データをまとめて1つの送信部からゲーム装置へ送信することができる。
上記第33の発明によれば、ゲームコントローラの第1ハウジングおよび第2ハウジングをプレイヤが両手でそれぞれ把持して操作可能であるため、入力装置が小型であり扱いやすい。また、プレイヤは、例えばプレイヤキャラクタ等のオブジェクトに対して、その移動方向制御と姿勢制御とを、両手で効率的かつ直感的に入力することができる。
上記第35の発明によれば、ゲームコントローラのハウジングをプレイヤが片手で把持して操作可能であるため、入力装置が小型であり扱いやすい。また、プレイヤは、例えば指先による方向指示部の動きによりプレイヤキャラクタ等のオブジェクトを移動させるとともに、手全体による動きによってオブジェクトを動作させることができる。
上記第41の発明によれば、プレイヤが操作する指の動き方向と手の動き方向とを一致させることにより、両方の操作が容易となる。
上記第42の発明によれば、プレイヤが指の動き方向と手の動き方向とを独立させることにより、両方の操作が互いに影響しあうことがない。
また、本発明のゲームプログラムによれば、上述したゲームシステムと同様の効果を得ることができる。
図1を参照して、本発明の一実施形態に係るゲーム装置について説明する。以下、説明を具体的にするために、当該ゲーム装置の一例の据置型のゲーム装置を含むゲームシステムについて説明する。なお、図1は据置型のゲーム装置3を含むゲームシステム1の外観図であり、図2はゲーム装置本体5のブロック図である。以下、当該ゲームシステム1について説明する。
図1において、ゲームシステム1は、表示手段の一例の家庭用テレビジョン受像機(以下、モニタと記載する)2と、当該モニタ2に接続コードを介して接続する据置型のゲーム装置3とから構成される。モニタ2は、ゲーム装置本体5から出力された音声信号を音声出力するためのスピーカ2aを備える。また、ゲーム装置3は、本願発明のゲームプログラムを記録した光ディスク4と、当該光ディスク4のゲームプログラムを実行してゲーム画面をモニタ2に表示出力させるためのコンピュータを搭載したゲーム装置本体5と、ゲーム画面に表示されたキャラクタ等を操作するゲームに必要な操作情報をゲーム装置本体5に与えるためのコントローラ7とを備えている。
また、ゲーム装置本体5は、通信ユニット6を内蔵する。通信ユニット6は、コントローラ7から無線送信されるデータを受信し、ゲーム装置本体5からコントローラ7へデータを送信して、コントローラ7とゲーム装置本体5とを無線通信によって接続する。さらに、ゲーム装置本体5には、当該ゲーム装置本体5に対して交換可能に用いられる情報記憶媒体の一例の光ディスク4が脱着される。ゲーム装置本体5の前部主面には、当該ゲーム装置本体5の電源ON/OFFスイッチ、ゲーム処理のリセットスイッチ、光ディスク4を脱着する投入口、およびゲーム装置本体5の投入口から光ディスク4を取り出すイジェクトスイッチ等が設けられている。
また、ゲーム装置本体5には、セーブデータ等のデータを固定的に記憶するバックアップメモリとして機能するフラッシュメモリ38が搭載される。ゲーム装置本体5は、光ディスク4に記憶されたゲームプログラム等を実行することによって、その結果をゲーム画像としてモニタ2に表示する。さらに、ゲーム装置本体5は、フラッシュメモリ38に記憶されたセーブデータを用いて、過去に実行されたゲーム状態を再現して、ゲーム画像をモニタ2に表示することもできる。そして、ゲーム装置本体5のプレイヤは、モニタ2に表示されたゲーム画像を見ながら、コントローラ7を操作することによって、ゲーム進行を楽しむことができる。
コントローラ7は、通信ユニット6を内蔵するゲーム装置本体5へ、例えばBluetooth(ブルートゥース;登録商標)の技術を用いて操作情報等の送信データを無線送信する。コントローラ7は、2つのコントロールユニット(コアユニット70およびサブユニット76)が屈曲自在な接続ケーブル79を介して互いに接続されて構成されており、主にモニタ2に表示されるゲーム空間に登場するプレイヤオブジェクトを操作するための操作手段である。コアユニット70およびサブユニット76は、それぞれ複数の操作ボタン、キー、およびスティック等の操作部が設けられている。また、後述により明らかとなるが、コアユニット70は、当該コアユニット70から見た画像を撮像するための撮像情報演算部74を備えている。また、撮像情報演算部74の撮像対象の一例として、モニタ2の表示画面近傍に2つのLEDモジュール8Lおよび8R(以下、マーカ8Lおよび8Rと記載する)が設置される。これらマーカ8Lおよび8Rは、それぞれモニタ2の前方に向かって赤外光を出力する。なお、本実施例では、コアユニット70とサブユニット76を屈曲自在なケーブルで接続したが、サブユニット76に無線ユニットを搭載することで、接続ケーブル79をなくすこともできる。例えば、無線ユニットとしてBluetooth(登録商標)ユニットをサブユニット76に搭載することで、サブユニット76からコアユニット70へ操作データを送信することが可能になる。また、コントローラ7(例えば、コアユニット70)は、ゲーム装置本体5の通信ユニット6から無線送信された送信データを通信部75で受信して、当該送信データに応じた音や振動を発生させることもできる。
図2において、ゲーム装置本体5は、各種プログラムを実行する例えばCPU(セントラルプロセッシングユニット)30を備える。CPU30は、図示しないブートROMに
記憶された起動プログラムを実行し、メインメモリ33等のメモリの初期化等を行った後、光ディスク4に記憶されているゲームプログラムの実行し、そのゲームプログラムに応じたゲーム処理等を行うものである。CPU30には、メモリコントローラ31を介して、GPU(Graphics Processing Unit)32、メインメモリ33、DSP(Digital Signal Processor)34、およびARAM(Audio RAM)35などが接続される。また、メモリコントローラ31には、所定のバスを介して、通信ユニット6、ビデオI/F(インターフェース)37、フラッシュメモリ38、オーディオI/F39、およびディスクI/F41が接続され、それぞれのインターフェースにモニタ2、スピーカ2a、およびディスクドライブ40が接続されている。
記憶された起動プログラムを実行し、メインメモリ33等のメモリの初期化等を行った後、光ディスク4に記憶されているゲームプログラムの実行し、そのゲームプログラムに応じたゲーム処理等を行うものである。CPU30には、メモリコントローラ31を介して、GPU(Graphics Processing Unit)32、メインメモリ33、DSP(Digital Signal Processor)34、およびARAM(Audio RAM)35などが接続される。また、メモリコントローラ31には、所定のバスを介して、通信ユニット6、ビデオI/F(インターフェース)37、フラッシュメモリ38、オーディオI/F39、およびディスクI/F41が接続され、それぞれのインターフェースにモニタ2、スピーカ2a、およびディスクドライブ40が接続されている。
GPU32は、CPU30の命令に基づいて画像処理を行うものあり、例えば、3Dグラフィックスの表示に必要な計算処理を行う半導体チップで構成される。GPU32は、図示しない画像処理専用のメモリやメインメモリ33の一部の記憶領域を用いて画像処理を行う。GPU32は、これらを用いてモニタ2に表示すべきゲーム画像データやムービ映像を生成し、適宜メモリコントローラ31およびビデオI/F37を介してモニタ2に出力する。
メインメモリ33は、CPU30で使用される記憶領域であって、CPU30の処理に必要なゲームプログラム等を適宜記憶する。例えば、メインメモリ33は、CPU30によって光ディスク4から読み出されたゲームプログラムや各種データ等を記憶する。このメインメモリ33に記憶されたゲームプログラムや各種データ等が、CPU30によって実行される。
DSP34は、ゲームプログラム実行時にCPU30において生成されるサウンドデータ等を処理するものであり、そのサウンドデータ等を記憶するためのARAM35が接続される。ARAM35は、DSP34が所定の処理(例えば、先読みしておいたゲームプログラムやサウンドデータの記憶)を行う際に用いられる。DSP34は、ARAM35に記憶されたサウンドデータを読み出し、メモリコントローラ31およびオーディオI/F39を介してモニタ2に備えるスピーカ2aに出力させる。
メモリコントローラ31は、データ転送を統括的に制御するものであり、上述した各種I/Fが接続される。上述したように通信ユニット6は、コントローラ7からの送信データを受信し、当該送信データをCPU30へ出力する。また、通信ユニット6は、CPU30から出力された送信データをコントローラ7の通信部75へ送信する。ビデオI/F37には、モニタ2が接続される。オーディオI/F39にはモニタ2に内蔵されるスピーカ2aが接続され、DSP34がARAM35から読み出したサウンドデータやディスクドライブ40から直接出力されるサウンドデータをスピーカ2aから出力可能に接続される。ディスクI/F41には、ディスクドライブ40が接続される。ディスクドライブ40は、所定の読み出し位置に配置された光ディスク4に記憶されたデータを読み出し、ゲーム装置本体5のバスやオーディオI/F39に出力する。
次に、図3および図4を参照して、コントローラ7について説明する。なお、図3は、コントローラ7の外観構成を示す斜視図である。図4は、図3のコントローラ7の接続ケーブル79をコアユニット70から脱着する状態を示す斜視図である。
図3において、コントローラ7は、コアユニット70とサブユニット76とが接続ケーブル79で接続されて構成されている。コアユニット70は、ハウジング71を有しており、当該ハウジング71に複数の操作部72が設けられている。一方、サブユニット76は、ハウジング77を有しており、当該ハウジング77に複数の操作部78が設けられて
いる。そして、コアユニット70とサブユニット76とは、接続ケーブル79によって接続されている。
いる。そして、コアユニット70とサブユニット76とは、接続ケーブル79によって接続されている。
図4において、接続ケーブル79の一方端にはコアユニット70のコネクタ73に着脱自在なコネクタ791が設けられており、接続ケーブル79の他方端は固定的にサブユニット76と接続されている。そして、接続ケーブル79のコネクタ791は、コアユニット70の後面に設けられたコネクタ73と嵌合し、コアユニット70とサブユニット76とが当該接続ケーブル79を介して接続される。
次に、図5および図6を参照して、コアユニット70について説明する。なお、図5は、コアユニット70の上面後方から見た斜視図である。図6は、コアユニット70を下面前方から見た斜視図である。
図5および図6において、コアユニット70は、例えばプラスチック成型によって形成されたハウジング71を有している。ハウジング71は、その前後方向を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。
ハウジング71上面の中央前面側に、十字キー72aが設けられる。この十字キー72aは、十字型の4方向プッシュスイッチであり、矢印で示す4つの方向(前後左右)に対応する操作部分が十字の突出片にそれぞれ90°間隔で配置される。プレイヤが十字キー72aのいずれかの操作部分を押下することによって前後左右いずれかの方向を選択される。例えばプレイヤが十字キー72aを操作することによって、仮想ゲーム世界に登場するプレイヤキャラクタ等の移動方向を指示したり、カーソルの移動方向を指示したりすることができる。
なお、十字キー72aは、上述したプレイヤの方向入力操作に応じて操作信号を出力する操作部であるが、他の態様の操作部でもかまわない。例えば、リング状に4方向の操作部分を備えたプッシュスイッチとその中央に設けられたセンタスイッチとを複合した複合スイッチを上記十字キー72aの代わりに設けてもかまわない。また、ハウジング71上面から突出した傾倒可能なスティックを倒すことによって、傾倒方向に応じて操作信号を出力する操作部を上記十字キー72aの代わりに設けてもかまわない。さらに、水平移動可能な円盤状部材をスライドさせることによって、当該スライド方向に応じた操作信号を出力する操作部を、上記十字キー72aの代わりに設けてもかまわない。また、タッチパッドを、上記十字キー72aの代わりに設けてもかまわない。また、少なくとも4つの方向(前後左右)をそれぞれ示すスイッチに対して、プレイヤによって押下されたスイッチに応じて操作信号を出力する操作部を上記十字キー72aの代わりに設けてもかまわない。
ハウジング71上面の十字キー72aより後面側に、複数の操作ボタン72b〜72gが設けられる。操作ボタン72b〜72gは、プレイヤがボタン頭部を押下することによって、それぞれの操作ボタン72b〜72gに割り当てられた操作信号を出力する操作部である。例えば、操作ボタン72b〜72dには、1番ボタン、2番ボタン、およびAボタン等としての機能が割り当てられる。また、操作ボタン72e〜72gには、マイナスボタン、ホームボタン、およびプラスボタン等としての機能が割り当てられる。これら操作ボタン72b〜72gは、ゲーム装置3が実行するゲームプログラムに応じてそれぞれの機能が割り当てられるが、詳細は後述する。なお、図5に示した配置例では、操作ボタン72b〜72dは、ハウジング71上面の中央前後方向に沿って並設されている。また、操作ボタン72e〜72gは、ハウジング71上面の左右方向に沿って操作ボタン72bおよび72dの間に並設されている。そして、操作ボタン72fは、その上面がハウジング71の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
また、ハウジング71上面の十字キー72aより前面側に、操作ボタン72hが設けられる。操作ボタン72hは、遠隔からゲーム装置5本体の電源をオン/オフする電源スイッチである。この操作ボタン72hも、その上面がハウジング71の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
また、ハウジング71上面の操作ボタン72cより後面側に、複数のLED702が設けられる。ここで、コントローラ7は、他のコントローラ7と区別するためにコントローラ種別(コントローラ識別番号)が設けられている。例えば、LED702は、コントローラ7に現在設定されている上記コントローラ種別をプレイヤに通知するために用いられる。具体的には、コアユニット70から通信ユニット6へ送信データを送信する際、上記コントローラ種別に応じて複数のLED702のうち、種別に対応するLEDが点灯する。
また、ハウジング71上面には、操作ボタン72bおよび操作ボタン72e〜72gの間に後述するスピーカ(図7のスピーカ706)からの音を外部に放出するための音抜き孔が形成されている。
一方、ハウジング71下面には、凹部が形成されている。後述で明らかとなるが、ハウジング71下面の凹部は、プレイヤがコアユニット70を把持したときに当該プレイヤの人差し指や中指が位置するような位置に形成される。そして、上記凹部の傾斜面には、操作ボタン72iが設けられる。操作ボタン72iは、例えばBボタンとして機能する操作部であり、サッカーゲームにおけるシュートのトリガスイッチや選手の切り替え操作等に用いられる。
また、ハウジング71前面には、撮像情報演算部74の一部を構成する撮像素子743が設けられる。ここで、撮像情報演算部74は、コアユニット70が撮像した画像データを解析してその中で輝度が高い場所を判別してその場所の重心位置やサイズなどを検出するためのシステムであり、例えば、最大200フレーム/秒程度のサンプリング周期であるため比較的高速なコアユニット70の動きでも追跡して解析することができる。この撮像情報演算部74の詳細な構成については、後述する。また、ハウジング71の後面には、コネクタ73が設けられている。コネクタ73は、例えば32ピンのエッジコネクタであり、接続ケーブル79のコネクタ791と嵌合して接続するために利用される。
ここで、以下の説明を具体的にするために、コアユニット70に対して設定する座標系について定義する。図5および図6に示すように、互いに直交するXYZ軸をコアユニット70に対して定義する。具体的には、コアユニット70の前後方向となるハウジング71の長手方向をZ軸とし、コアユニット70の前面(撮像情報演算部74が設けられている面)方向をZ軸正方向とする。また、コアユニット70の上下方向をY軸とし、ハウジング71の上面(操作ボタン72aが設けられた面)方向をY軸正方向とする。さらに、コアユニット70の左右方向をX軸とし、ハウジング71の右側面(図6では表されずに図5で表されている側面)方向をX軸正方向とする。
次に、図7および図8を参照して、コアユニット70の内部構造について説明する。なお、図7は、コアユニット70の上筐体(ハウジング71の一部)を外した状態を後面側から見た斜視図である。図8は、コアユニット70の下筐体(ハウジング71の一部)を外した状態を前面側から見た斜視図である。ここで、図8に示す基板700は、図7に示す基板700の裏面から見た斜視図となっている。
図7において、ハウジング71の内部には基板700が固設されており、当該基板700の上主面上に操作ボタン72a〜72h、加速度センサ701、LED702、およびアンテナ754等が設けられる。そして、これらは、基板700等に形成された配線(図示せず)によってマイコン751等(図8、図11参照)に接続される。また、図示しない無線モジュール753(図11参照)およびアンテナ754によって、コアユニット70がワイヤレスコントローラとして機能する。なお、ハウジング71内部には図示しない水晶振動子が設けられており、後述するマイコン751の基本クロックを生成する。また、基板700の上主面上に、スピーカ706およびアンプ708が設けられる。加速度センサ701が、基板700の中央部ではなく周辺部に設けられていることにより、コアユニット70の長手方向を軸とした回転に応じて、重力加速度の方向変化に加え、遠心力による成分の含まれる加速度を検出することができるので、所定の演算により、検出される加速度データからコアユニット70の回転を良好な感度で判定することができる。
一方、図8において、基板700の下主面上の前端縁に撮像情報演算部74が設けられる。撮像情報演算部74は、コアユニット70の前方から順に赤外線フィルタ741、レンズ742、撮像素子743、および画像処理回路744によって構成されており、それぞれ基板700の下主面に取り付けられる。また、基板700の下主面上の後端縁にコネクタ73が取り付けられる。さらに、基板700の下主面上にサウンドIC707およびマイコン751が設けられている。サウンドIC707は、基板700等に形成された配線によってマイコン751およびアンプ708と接続され、ゲーム装置本体5から送信されたサウンドデータに応じてアンプ708を介してスピーカ706に音声信号を出力する。そして、基板700の下主面上には、バイブレータ704が取り付けられる。このバイブレータ704は、例えば振動モータやソレノイドである。バイブレータ704が作動することによってコアユニット70に振動が発生するので、それを把持しているプレイヤの手にその振動が伝達され、いわゆる振動対応ゲームが実現できる。バイブレータ704は、ハウジング71のやや前方寄りに配置されるため、プレイヤが把持している状態において、ハウジング71が大きく振動することになり、振動を感じやすくなる。
図9および図10を参照して、サブユニット76について説明する。なお、図9は、サブユニット76の一例を示す斜視図である。図10は、図9のサブユニット76の上筐体(ハウジング77の一部)を外した状態を示す斜視図である。
図9において、サブユニット76は、例えばプラスチック成型によって形成されたハウジング77を有している。ハウジング77は、その前後方向を長手方向とし、サブユニット76において最太部となる頭部を前方に形成した流線型の立体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。さらに言えば、サブユニット76のハウジング77は、プレイヤの片手の手のひらおよび親指以外の指により包み込むように把持することが可能であり、当該把持をしたときにプレイヤの親指がスティック78aに位置するようにその形状が設計される。
ハウジング77上面の上記最太部近傍に、スティック78aが設けられる。スティック78aは、ハウジング77上面から突出した傾倒可能なスティックを倒すことによって、傾倒方向(さらには、付加的に傾倒量)を検出し、それに応じて操作信号を出力する操作部である。例えば、プレイヤがスティック先端を360°任意の方向に傾倒することによって任意の方向や位置を指定することができ、仮想ゲーム世界に登場するプレイヤキャラクタ等の移動方向を指示したり、カーソルの移動方向を指示したりすることができる。また、プレイヤは、スティック78aの傾倒量によって、プレイヤキャラクタやカーソル等の移動量を指示することができる。
なお、スティック78aは、プレイヤの方向入力操作に応じて操作信号を出力する操作
部であるが、他の態様の操作部でもかまわない。例えば、上述した十字キーやリング状に4方向の操作部分を備えたプッシュスイッチとその中央に設けられたセンタスイッチとを複合した複合スイッチを上記スティック78aの代わりに設けてもかまわない。また、水平移動可能な円盤状部材をスライドさせることによって、当該スライド方向に応じた操作信号を出力する操作部を、上記スティック78aの代わりに設けてもかまわない。また、タッチパッドを、上記スティック78aの代わりに設けてもかまわない。また、少なくとも4つの方向(前後左右)をそれぞれ示すスイッチに対して、プレイヤによって押下されたスイッチに応じて操作信号を出力する操作部を上記スティック78aの代わりに設けてもかまわない。
部であるが、他の態様の操作部でもかまわない。例えば、上述した十字キーやリング状に4方向の操作部分を備えたプッシュスイッチとその中央に設けられたセンタスイッチとを複合した複合スイッチを上記スティック78aの代わりに設けてもかまわない。また、水平移動可能な円盤状部材をスライドさせることによって、当該スライド方向に応じた操作信号を出力する操作部を、上記スティック78aの代わりに設けてもかまわない。また、タッチパッドを、上記スティック78aの代わりに設けてもかまわない。また、少なくとも4つの方向(前後左右)をそれぞれ示すスイッチに対して、プレイヤによって押下されたスイッチに応じて操作信号を出力する操作部を上記スティック78aの代わりに設けてもかまわない。
サブユニット76のハウジング77の前面に、複数の操作ボタン78dおよび78eが設けられる。操作ボタン78dおよび78eは、プレイヤがボタン頭部を押下することによって、それぞれの操作ボタン78dおよび78eに割り当てられた操作信号を出力する操作部である。例えば、操作ボタン78dおよび78eには、XボタンおよびYボタン等としての機能が割り当てられる。これら操作ボタン78dおよび78eは、ゲーム装置3が実行するゲームプログラムに応じてそれぞれの機能が割り当てられるが、本発明の説明とは直接関連しないため詳細な説明を省略する。なお、図9に示した配置例では、操作ボタン78dおよび78eは、ハウジング77前面の上下方向に沿って並設されている。
図10において、ハウジング77の内部には基板が固設されており、当該基板の上主面上にスティック78aおよび加速度センサ761等が設けられる。そして、これらは、基板等に形成された配線(図示せず)を介して接続ケーブル79と接続されている。加速度センサ761は、ハウジング77の長手方向の中央部かつ短手方向の中央部に配置されるのが好ましい。また、プレイヤがハウジング77を片手の手のひらおよび親指以外の指により包み込むように把持したときに、当該手のひらと指によって囲まれる空間(好ましくは、当該空間のほぼ中心)に配置されるのが好ましい。
ここで、以下の説明を具体的にするために、サブユニット76に対して設定する座標系について定義する。図9に示すように、互いに直交するXYZ軸をサブユニット76に対して定義する。具体的には、サブユニット76の前後方向となるハウジング77の長手方向をZ軸とし、サブユニット76の前面(操作ボタン78dおよび78eが設けられている面)方向をZ軸正方向とする。また、サブユニット76の上下方向をY軸とし、ハウジング77の上面方向(スティック78aが突出する方向)をY軸正方向とする。さらに、サブユニット76の左右方向をX軸とし、ハウジング77の右側面(図9では表されない側面)方向をX軸正方向とする。
次に、図11を参照して、コントローラ7の内部構成について説明する。なお、図11は、コントローラ7の構成を示すブロック図である。
図11において、コアユニット70は、上述した操作部72、撮像情報演算部74、加速度センサ701、バイブレータ704、スピーカ706、サウンドIC707、およびアンプ708の他に、その内部に通信部75を備えている。また、サブユニット76は、上述した操作部78および加速度センサ761を備えており、接続ケーブル79とコネクタ791および73とを介して、マイコン751と接続されている。
撮像情報演算部74は、赤外線フィルタ741、レンズ742、撮像素子743、および画像処理回路744を含んでいる。赤外線フィルタ741は、コアユニット70の前方から入射する光から赤外線のみを通過させる。レンズ742は、赤外線フィルタ741を透過した赤外線を集光して撮像素子743へ出射する。撮像素子743は、例えばCMOSセンサやあるいはCCDのような固体撮像素子であり、レンズ742が集光した赤外線
を撮像する。したがって、撮像素子743は、赤外線フィルタ741を通過した赤外線だけを撮像して画像データを生成する。撮像素子743で生成された画像データは、画像処理回路744で処理される。具体的には、画像処理回路744は、撮像素子743から得られた画像データを処理して高輝度部分を検知し、それらの位置座標や面積を検出した結果を示す処理結果データを通信部75へ出力する。なお、これらの撮像情報演算部74は、コアユニット70のハウジング71に固設されており、ハウジング71自体の方向を変えることによってその撮像方向を変更することができる。
を撮像する。したがって、撮像素子743は、赤外線フィルタ741を通過した赤外線だけを撮像して画像データを生成する。撮像素子743で生成された画像データは、画像処理回路744で処理される。具体的には、画像処理回路744は、撮像素子743から得られた画像データを処理して高輝度部分を検知し、それらの位置座標や面積を検出した結果を示す処理結果データを通信部75へ出力する。なお、これらの撮像情報演算部74は、コアユニット70のハウジング71に固設されており、ハウジング71自体の方向を変えることによってその撮像方向を変更することができる。
コアユニット70は、3軸(X、Y、Z軸)の加速度センサ701を備えていることが好ましい。また、サブユニット76は、3軸(X、Y、Z軸)の加速度センサ761を備えていることが好ましい。この3軸の加速度センサ701および761は、それぞれ3方向、すなわち、上下方向、左右方向、および前後方向(上述したXYZ軸方向)で直線加速度を検知する。また、他の実施形態においては、ゲーム処理に用いる制御信号の種類によっては、上下および左右方向(または他の対になった方向)のそれぞれに沿った直線加速度のみを検知する2軸の加速度検出手段や何れか1軸に沿った直線加速度のみを検知する1軸の加速度検出手段を使用してもよい。例えば、この1軸〜3軸の加速度センサ701および761は、アナログ・デバイセズ株式会社(Analog Devices, Inc.)またはSTマイクロエレクトロニクス社(STMicroelectronics N.V.)から入手可能であるタイプのものでもよい。加速度センサ701および761は、シリコン微細加工されたMEMS(Micro Electro Mechanical Systems:微小電子機械システム)の技術に基づいた静電容量式(静電容量結合式)であることが好ましい。しかしながら、既存の加速度検出手段の技術(例えば、圧電方式や圧電抵抗方式)あるいは将来開発される他の適切な技術を用いて1軸〜3軸の加速度センサ701および761が提供されてもよい。
当業者には公知であるように、加速度センサ701および761に用いられるような加速度検出手段は、加速度センサの持つ各軸に対応する直線に沿った加速度(直線加速度)のみを検知することができる。つまり、加速度センサ701および761からの直接の出力は、その1軸〜3軸のそれぞれに沿った直線加速度(静的または動的)を示す信号である。このため、加速度センサ701および761は、非直線状(例えば、円弧状)の経路に沿った動き、回転、回転運動、角変位、傾斜、位置、または姿勢等の物理特性を直接検知することはできない。
しかしながら、加速度センサ701および761から出力される加速度の信号に基づいて、ゲーム装置のプロセッサ(例えばCPU30)、コントローラ7またはサブユニット76のプロセッサ(例えばマイコン751)等のコンピュータが処理を行うことによって、コアユニット70およびサブユニット76に関するさらなる情報を推測または算出(判定)することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。
例えば、加速度センサ701および761を搭載するコアユニット70およびサブユニット76が静的な状態であることを前提としてコンピュータ側で処理する場合(すなわち、加速度センサ701および761によって検出される加速度が重力加速度のみであるとして処理する場合)、コアユニット70およびサブユニット76が現実に静的な状態であれば、検出された加速度に基づいてコアユニット70およびサブユニット76の姿勢が重力方向に対して傾いているか否か、またはどの程度傾いているかを知ることができる。具体的には、加速度センサ701および761の検出軸が鉛直下方向を向いている状態を基準としたとき、当該検出軸方向に1G(重力加速度)が作用しているか否かだけでコアユニット70およびサブユニット76が鉛直下方向に対して傾いているか否かを知ることができる。また、上記検出軸方向に作用している加速度の大きさによって、コアユニット70およびサブユニット76が鉛直下方向に対してどの程度傾いているかも知ることができる。また、多軸方向の加速度を検出可能な加速度センサ701および761の場合には、さらに各軸に対して検出された加速度の信号に対して処理を施すことによって、重力方向に対してコアユニット70およびサブユニット76がどの程度傾いているかをより詳細に知ることができる。この場合において、加速度センサ701および761からの出力に基づいて、プロセッサがコアユニット70およびサブユニット76の傾き角度のデータを算出する処理を行ってもよいが、当該傾き角度のデータを算出する処理を行うことなく、加速度センサ701および761からの出力に基づいて、おおよそのコアユニット70およびサブユニット76の傾き具合を推定するような処理としてもよい。このように、加速度センサ701および761をプロセッサと組み合わせて用いることによって、コアユニット70およびサブユニット76の傾き、姿勢、または位置を判定することができる。
一方、加速度センサ701および761が動的な状態であることを前提とする場合には、当該加速度センサ701および761が重力加速度成分に加えて加速度センサ701および761の動きに応じた加速度を検出するので、重力加速度成分を所定の処理により除去すれば、コアユニット70およびサブユニット76の動き方向等を知ることができる。具体的には、加速度センサ701および761を備えるコアユニット70およびサブユニット76がプレイヤの手で動的に加速されて動かされる場合に、加速度センサ701および761によって生成される加速度信号を処理することによって、コアユニット70およびサブユニット76の様々な動きおよび/または位置を算出することができる。なお、加速度センサ701および761が動的な状態であることを前提とする場合であっても、加速度センサ701および761の動きに応じた加速度を所定の処理により除去すれば、重力方向に対するコアユニット70およびサブユニット76の傾きを知ることが可能である。
他の実施例では、加速度センサ701および761は、信号をマイコン751に出力する前に内蔵の加速度検出手段から出力される加速度信号に対して所望の処理を行うための、組込み式の信号処理装置または他の種類の専用の処理装置をそれぞれ備えていてもよい。例えば、組込み式または専用の処理装置は、加速度センサ701および761が静的な加速度(例えば、重力加速度)を検出するためのものである場合、検知された加速度信号をそれに相当する傾斜角に変換するものであってもよい。加速度センサ701および761でそれぞれ検知された加速度を示すデータは、通信部75に出力される。
ここで、コアユニット70やサブユニット76を把持してプレイヤが振った場合、振り始めは加速して振り終わりは減速となる。したがって、コアユニット70やサブユニット76には、振り始めで振っている方向と同じ方向の加速度が生じた後、徐々に加速度の大きさが減少して、振り終わりで振っている方向とは逆の方向に加速度が生じる。一方、一般的に、加速度センサ701および761から出力される加速度ベクトル(あるいは、加速度の正負)は、コアユニット70やサブユニット76の加速方向とは真逆のベクトルとなる。
他の実施形態の例では、加速度センサ701および761の代わりに、少なくとも一方を回転素子または振動素子などを内蔵したジャイロセンサを用いてもよい。この実施形態で使用されるMEMSジャイロセンサの一例として、アナログ・デバイセズ株式会社から入手可能なものがある。加速度センサ701および761と異なり、ジャイロセンサは、それが内蔵する少なくとも一つのジャイロ素子の軸を中心とした回転(または角速度)を直接検知することができる。このように、ジャイロセンサと加速度センサとは基本的に異なるので、個々の用途のためにいずれの装置が選択されるかによって、これらの装置からの出力信号に対して行う処理を適宜変更する必要がある。
具体的には、加速度センサの代わりにジャイロセンサを用いて傾きや姿勢を算出する場合には、大幅な変更を行う。すなわち、ジャイロセンサを用いる場合、検出開始の状態において傾きの値を初期化する。そして、当該ジャイロセンサから出力される角速度データを積分する。次に、初期化された傾きの値からの傾きの変化量を算出する。この場合、算出される傾きは、角度に対応する値が算出されることになる。一方、加速度センサによって傾きを算出する場合には、重力加速度のそれぞれの軸に関する成分の値を、所定の基準と比較することによって傾きを算出するので、算出される傾きはベクトルで表すことが可能であり、初期化を行わずとも、加速度検出手段を用いて検出される絶対的な方向を検出することが可能である。また、傾きとして算出される値の性質は、ジャイロセンサが用いられる場合には角度であるのに対して、加速度センサが用いられる場合にはベクトルであるという違いがある。したがって、加速度センサに代えてジャイロセンサが用いられる場合、当該傾きのデータに対して、2つのデバイスの違いを考慮した所定の変換を行う必要がある。加速度検出手段とジャイロスコープとの基本的な差異と同様にジャイロスコープの特性は当業者に公知であるので、本明細書ではさらなる詳細を省略する。ジャイロセンサは、回転を直接検知できることによる利点を有する一方、一般的には、加速度センサは、本実施形態で用いるようなコントローラに適用される場合、ジャイロセンサに比べて費用効率が良いという利点を有する。
通信部75は、マイクロコンピュータ(Micro Computer:マイコン)751、メモリ752、無線モジュール753、およびアンテナ754を含んでいる。マイコン751は、処理の際にメモリ752を記憶領域として用いながら、送信データを無線送信する無線モジュール753を制御する。また、マイコン751は、アンテナ754を介して無線モジュール753が受信したゲーム装置本体5からのデータに応じて、サウンドIC707およびバイブレータ704の動作を制御する。サウンドIC707は、通信部75を介してゲーム装置本体5から送信されたサウンドデータ等を処理する。また、マイコン751は、通信部75を介してゲーム装置本体5から送信された振動データ(例えば、バイブレータ704をONまたはOFFする信号)等に応じて、バイブレータ704を作動させる。また、メモリ752または図示しない不揮発記憶手段には、コアユニット70ごとに固有に設定される識別番号データが記憶される。
コアユニット70に設けられた操作部72からの操作信号(コアキーデータ)、加速度センサ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に格納されている送信データを一連の操作情報として、コントローラ7に固有のコントローラ識別番号を付与して無線モジュール753へ出力する。そして、無線モジュール753は、例えばブルートゥース(登録商標)の技術に基づいて、所定周波数の搬送波を用いて操作情報で変調し、その微弱電波信号をアンテナ754から放射する。つまり、コアユニット70に設けられた操作部72からのコアキーデータ、サブユニット76に設けられた操作部78からのサブキーデータ、コアユニット70に設けられた加速度センサ701からのコア加速度データ、サブユニット76に設けられた加速度センサ761からのサブ加速度データ、撮像情報演算部74からの処理結果データ、およびコントローラ識別番号は、無線モジュール753で微弱電波信号に変調されてコアユニット70から放射される。そして、ゲーム装置3の通信ユニット6でその微弱電波信号を受信し、ゲーム装置3で当該微弱電波信号を復調や復号することによって、一連の操作情報(コアキーデータ、サブキーデータ、コア加速度データ、サブ加速度データ、および処理結果データ)およびコントローラ識別番号を取得することができる。そして、ゲーム装置3のCPU30は、取得した操作情報およびコントローラ識別番号とゲームプログラムとに基づいて、ゲーム処理を行う。
図12に示すように、ゲームシステム1でコントローラ7を用いてゲームをプレイするためには、プレイヤは、一方の手(例えば右手)でコアユニット70を把持し(図13および図14参照)、他方の手(例えば左手)でサブユニット76を把持する(図16参照)。そして、プレイヤは、コアユニット70の前面(撮像情報演算部74が撮像する光の入射口側)がモニタ2に向くようにコアユニット70を把持する。一方、モニタ2の表示画面近傍には、2つのマーカ8Lおよび8Rが設置される。これらマーカ8Lおよび8Rは、それぞれモニタ2の前方に向かって赤外光を出力する。
プレイヤがその前面がモニタ2に向くようにコアユニット70を把持することによって、撮像情報演算部74には2つのマーカ8Lおよび8Rが出力した赤外光が入射する。そして、赤外線フィルタ741およびレンズ742を介して、入射した赤外光を撮像素子743が撮像し、当該撮像画像を画像処理回路744が処理する。ここで、撮像情報演算部74では、マーカ8Lおよび8Rから出力される赤外線成分を検出することで、当該マーカ8Lおよび8Rの位置や面積情報を取得する。具体的には、撮像情報演算部74は、撮像素子743が撮像した画像データを解析して、面積情報からマーカ8Lおよび8Rからの赤外光ではあり得ない画像を除外し、輝度が高い位置をマーカ8Lおよび8Rそれぞれの位置として判別する。そして、撮像情報演算部74は、判別されたそれらの位置座標やそれらの重心座標等を取得し、上記処理結果データとして出力する。このような処理結果データをゲーム装置3へ送信することによって、ゲーム装置3では、上記位置座標や重心座標に基づいて、マーカ8Lおよび8Rに対する撮像情報演算部74、すなわちコアユニット70の動き、姿勢、位置等に関連のある操作信号を得ることができる。具体的には、コアユニット70が動かされることによって、通信部75から送信される画像内の高輝度点の位置が変化するため、高輝度点の位置の変化に対応させた方向入力や座標入力を行うことで、コアユニット70の移動方向に沿った方向入力や座標入力を行うことができる。
このように、コアユニット70の撮像情報演算部74によって固定的に設置されたマーカ(実施例では、2つのマーカ8Lおよび8Rからの赤外光)を撮像することによって、ゲーム装置3におけるゲーム処理において、コアユニット70の動き、姿勢、位置等に関連した処理結果データを用いることが可能となり、ボタンを押下するような操作ボタンや操作キーとは異なったより直感的な操作入力となる。また、上述したように上記マーカは、モニタ2の表示画面近傍に設置されているため、マーカに対する位置をモニタ2の表示画面に対するコアユニット70の動き、姿勢、位置等に換算することも容易に行うことができる。つまり、コアユニット70の動き、姿勢、位置等による処理結果データは、モニタ2の表示画面に直接作用する操作入力として用いることができる。
図13および図14を参照して、プレイヤがコアユニット70を一方の手で把持した状態について説明する。なお、図13は、プレイヤがコアユニット70を右手で把持した状態をコアユニット70の前面側から見た一例である。図14は、プレイヤがコアユニット70を右手で把持した状態をコアユニット70の左側面側から見た一例である。
図13および図14に示すように、コアユニット70は、全体として大人や子供の片手
で把持可能な大きさである。そして、プレイヤの親指をコアユニット70の上面(例えば、十字キー72a付近)に添え、プレイヤの人差し指をコアユニット70下面の凹部(例えば、操作ボタン72i付近)に添えたとき、コアユニット70の前面に設けられている撮像情報演算部74の光入射口がプレイヤの前方方向に露出する。なお、このようなコアユニット70に対する把持状態は、プレイヤの左手であっても同様に行えることは言うまでもない。
で把持可能な大きさである。そして、プレイヤの親指をコアユニット70の上面(例えば、十字キー72a付近)に添え、プレイヤの人差し指をコアユニット70下面の凹部(例えば、操作ボタン72i付近)に添えたとき、コアユニット70の前面に設けられている撮像情報演算部74の光入射口がプレイヤの前方方向に露出する。なお、このようなコアユニット70に対する把持状態は、プレイヤの左手であっても同様に行えることは言うまでもない。
ここで、図15に示すように、マーカ8Lおよび8Rは、それぞれ視野角θ1を有している。また、撮像素子743は、視野角θ2を有している。例えば、マーカ8Lおよび8Rの視野角θ1は共に34°(半値角)であり、撮像素子743の視野角θ2は41°である。そして、撮像素子743の視野角θ2の中にマーカ8Lおよび8Rが共に存在し、マーカ8Lの視野角θ1の中でかつマーカ8Rの視野角θ1の中に撮像素子743が存在するとき、ゲーム装置本体5は、2つのマーカ8Lおよび8Rによる高輝度点に関する位置データを用いてコアユニット70の位置を判定する。
一方、撮像素子743の視野角θ2の中に1つのマーカ8Lまたは8Rだけが存在するとき、またはマーカ8Lの視野角θ1およびマーカ8Rの視野角θ1の何れか一方の中に撮像素子743が存在するとき、2つのマーカ8Lおよび8Rの何れか一方だけによる高輝度点に関する位置データを用いてコアユニット70の位置を判定する。
また、上述したようにコアユニット70に設けられた加速度センサ701からの出力(コア加速度データ)を用いることによって、コアユニット70の傾き、姿勢、または位置を決定することができる。つまり、プレイヤがコアユニット70を把持した手を上下左右等に動かすことによって、コアユニット70は、プレイヤの手の運動や向きに応じた操作入力手段として機能する。
次に、図16を参照して、プレイヤがサブユニット76を一方の手で把持した状態について説明する。なお、図16は、プレイヤがサブユニット76を左手で把持した状態をサブユニット76の右側面側から見た一例である。
図16に示すように、サブユニット76は、全体として大人や子供の片手で把持可能な大きさである。例えば、プレイヤの親指をサブユニット76の上面(例えば、スティック78a付近)に添え、プレイヤの人差し指をサブユニット76前面(例えば、操作ボタン78dおよび78e付近)に添え、プレイヤの中指、薬指、および小指をサブユニット76下面に添えるように、サブユニット76を把持することが可能である。なお、このようなサブユニット76に対する把持状態は、プレイヤの右手であっても同様に行えることは言うまでもない。このように、サブユニット76は、プレイヤが片手で把持した状態でスティック78aや操作ボタン78dおよび78e等の操作部78を容易に操作することができる。このように、サブユニット76の本体(ハウジング77)は、サブユニット76全体の側周をプレイヤが片手で握持可能な形状および大きさで形成される。
また、上述したようにサブユニット76に設けられた加速度センサ761からの出力(サブ加速度データ)を用いることによって、サブユニット76の傾き、姿勢、または位置を決定することができる。つまり、プレイヤがサブユニット76を把持した手を上下左右等に動かすことによって、サブユニット76は、プレイヤの手の運動や向きに応じた操作入力手段として機能する。
本発明を適用して実現するゲームの一例として、仮想ゲーム空間で行うサッカーゲームがある。以下、サッカーゲームを一例として、ゲームシステム1において行われるゲーム処理の詳細を説明する。なお、図17は、ゲーム装置本体5のメインメモリ33に記憶さ
れる主なデータを示す図である。
れる主なデータを示す図である。
図17に示すように、メインメモリ33には、操作情報Da、コントローラ識別番号データDb、移動ベクトルデータDc、姿勢ベクトルデータDd、指示座標データDe、仮想空間位置座標データDf、指示対象選手データDg、位置データDh、および画像データDi等が記憶される。なお、後述するように、各コントローラ7は、監督モードまたは一時監督モードのときに、当該コントローラ7の座標入力により特定の選手キャラクタの動作を制御することができるが、当該特定の選手キャラクタのことを指示対象選手と呼ぶ。なお、メインメモリ33には、図17に示す情報に含まれるデータの他、ゲームに登場するオブジェクト等に関するデータや仮想ゲーム空間に関するデータ等、ゲーム処理に必要なデータが記憶される。これらのデータは、光ディスク4に記憶されるゲームプログラムをCPU30が実行することにより生成されるデータである。
操作情報Daは、コントローラ7から送信データとして送信されてくる一連の操作情報であり、最新の操作情報に更新される。操作情報Daには、上述の処理結果データに相当する第1座標データDa1および第2座標データDa2が含まれる。第1座標データDa1は、撮像素子743が撮像した撮像画像に対して、2つのマーカ8Lおよび8Rのうちの一方の画像の位置(撮像画像内における位置)を表す座標のデータである。第2座標データDa2は、他方のマーカの画像の位置(撮像画像内における位置)を表す座標のデータである。例えば、マーカの画像の位置は、撮像画像におけるXY座標系によって表される。
また、操作情報Daには、撮像画像から得られる処理結果データの一例の座標データ(第1座標データDa1および第2座標データDa2)の他、キーデータDa3および加速度データDa4等が含まれる。具体的には、キーデータDa3は、操作部72から得られるコアキーデータおよび操作部78から得られるサブキーデータである。また、加速度データDa4は、加速度センサ701から得られるコア加速度データおよび加速度センサ761から得られるサブ加速度データである。なお、ゲーム装置3に備える通信ユニット6は、コントローラ7から所定間隔例えば5msごとに送信される操作情報Daを受信し、通信ユニット6に備える図示しないバッファに蓄えられる。その後、ゲーム処理間隔である例えば1フレーム毎(1/60秒)に読み出され、その最新の情報がメインメモリ33に記憶される。また、操作情報Daには、最新の操作情報のみならず、必要に応じて、過去の所定時間分の操作情報が履歴として格納される。また、複数のコントローラ7によって、ゲーム装置本体5が操作される場合、各コントローラ7からそれぞれ送信された操作情報がコントローラ識別番号毎に対応付けられて、操作情報Daに格納される。
コントローラ識別番号データDbは、後述する操作チームおよび操作モード別に操作情報を採用するコントローラ識別番号が記述される。例えば、コントローラ識別番号データDbは、チームAの選手モード用コントローラ識別番号Db1、チームAの監督モード用コントローラ識別番号Db2、チームBの選手モード用コントローラ識別番号Db3、およびチームBの監督モード用コントローラ識別番号Db4等が記述される。なお、コントローラ識別番号データDbは、コアユニット70内に記憶される識別番号データ(前述)が当該コアユニット70から送信されて記憶されたものである。また、コントローラ識別番号Dbは、常にすべてが設定されている必要はなく、プレイヤの希望がなかったものについては未設定を示す情報が設定される。また、未設定を示す情報が設定されたチーム・モードについては、コンピュータ制御するようにしてもかまわない。また、3以上のチームが存在するようなゲームであれば、そのチーム数に応じたコントローラ識別番号データDbが設定される。また、チームの概念が無いゲームであれば、選手モード用コントローラが少なくとも1つ設定されればよい。なお、1つのコントローラの識別番号データを、複数のコントローラ識別番号データDbに設定してもよい。この場合には、例えば、1つ
のコントローラの操作により、選手モードの処理と監督モードの処理とを実行できる。
のコントローラの操作により、選手モードの処理と監督モードの処理とを実行できる。
移動ベクトルデータDcは、仮想ゲーム空間に登場する各選手キャラクタやボールオブジェクトがそれぞれ仮想ゲーム空間内を移動する方向や速度を示す移動ベクトルデータである。例えば、移動ベクトルデータDcは、プレイヤキャラクタPCの移動ベクトルデータDc1、ノンプレイヤキャラクタNPCの移動ベクトルデータDc2、指示対象選手の移動ベクトルデータDc3、およびボールオブジェクトBの移動ベクトルデータDc4等が記述される。なお、本実施例では、仮想ゲーム空間は3次元空間である。しかしながら、本実施例には2次元空間のゲームにも適用可能な要素が含まれることは、当業者には容易に把握可能である。
姿勢ベクトルデータDdは、仮想ゲーム空間におけるプレイヤキャラクタPCの上体の姿勢を示すデータである。例えば、姿勢ベクトルデータDdは、プレイヤキャラクタ座標系において、プレイヤキャラクタPCの腰から頭に向かうベクトルデータ(姿勢ベクトルデータVc)が記述される。この姿勢ベクトルデータVcは、3次元ベクトルである。
指示座標データDeは、第1座標データDa1および第2座標データDa2に基づいて得られるモニタ2の画面座標系に基づいた指示座標を示すデータである。例えば、指示座標は、第1座標データDa1から第2座標データDa2への方向を示す方向データ(例えば、第1座標データDa1の位置を始点とし第2座標データDa2の位置を終点とするベクトルデータ)や第1座標データDa1と第2座標データDa2との中点を示す中点座標データに基づいて算出される。ここで、2つのマーカ(マーカ8Lおよび8R)の画像を1つの対象画像としてみた場合、中点座標データは、対象画像の位置を示すことになる。仮想空間位置座標データDfは、上記指示座標に対応する仮想ゲーム空間の仮想空間位置を示す座標データである。仮想空間位置座標データDfは、指示座標データDe、仮想カメラのパラメータ、および仮想空間の構成データ(地形データやオブジェクト位置データ)に基づいて算出される。なお、複数のコントローラ7によって、ゲーム装置本体5が操作される場合、各コントローラ7からそれぞれ送信された第1座標データDa1および第2座標データDa2に基づいて算出された指示座標および仮想空間位置がそれぞれコントローラ識別番号毎に対応付けられて、指示座標データDeおよび仮想空間位置座標データDfに格納される。
指示対象選手データDgは、各コントローラ7の指示対象選手を示すデータである。例えば、指示対象選手データDgは、チームAの選手モード用コントローラ7の指示対象選手を示すデータDg1、チームAの監督モード用コントローラ7の指示対象選手を示すデータDg2、チームBの選手モード用コントローラ7の指示対象選手を示すデータDg3、およびチームBの監督モード用コントローラ7の指示対象選手を示すデータDg4等が記述される。
位置データDhは、仮想ゲーム空間に登場するキャラクタやオブジェクトがそれぞれ配置される位置を示す仮想ゲーム空間における座標データである。画像データDiは、仮想ゲーム空間に登場するキャラクタやオブジェクトや背景を生成するための画像データである。
次に、図18〜図29を参照して、ゲーム装置本体5において行われるゲーム処理の詳細を説明する。なお、図18は、ゲーム装置本体5において実行されるゲーム処理の流れを示すフローチャートである。図19は、図18におけるステップ15のサブユニット移動処理の詳細な動作を示すサブルーチンである。図20は、図18におけるステップ16のパス処理の詳細な動作を示すサブルーチンである。図21は、図18におけるステップ17の第1シュート処理の詳細な動作を示すサブルーチンである。図22は、図18にお
けるステップ18の第2シュート処理の詳細な動作を示すサブルーチンである。図23は、図18におけるステップ19の一時監督モード処理の詳細な動作を示すサブルーチンである。図24は、図18におけるステップ20の監督モード処理の詳細な動作を示すサブルーチンである。図25は、モニタ2に表示されるゲーム画像の一例である。図26は、プレイヤキャラクタPCに設定される姿勢ベクトルVcを説明するための図である。図27は、パスの目標位置TPと領域AおよびBを説明するための図である。図28は、ボールオブジェクトBが移動する軌道の一例を示す図である。図29は、ノンプレイヤキャラクタNPCに設定される移動ベクトルVmnpcの一例を示す図である。なお、図18〜図24に示すフローチャートにおいては、ゲーム処理のうち、仮想ゲーム空間において、サッカーゲームが実行される処理について主に説明し、本願発明と直接関連しない他のゲーム処理については詳細な説明を省略する。また、図18〜図24では、CPU30が実行する各ステップを「S」と略称する。なお、図25に示される仮想ゲーム空間の座標軸は、左右方向(水平方向でありかつタッチラインが伸びる方向)がX方向であり、上下方向(垂直方向)がY方向であり、奥行き方向(水平方向でありかつゴールラインが伸びる方向)がZ方向として説明する。
けるステップ18の第2シュート処理の詳細な動作を示すサブルーチンである。図23は、図18におけるステップ19の一時監督モード処理の詳細な動作を示すサブルーチンである。図24は、図18におけるステップ20の監督モード処理の詳細な動作を示すサブルーチンである。図25は、モニタ2に表示されるゲーム画像の一例である。図26は、プレイヤキャラクタPCに設定される姿勢ベクトルVcを説明するための図である。図27は、パスの目標位置TPと領域AおよびBを説明するための図である。図28は、ボールオブジェクトBが移動する軌道の一例を示す図である。図29は、ノンプレイヤキャラクタNPCに設定される移動ベクトルVmnpcの一例を示す図である。なお、図18〜図24に示すフローチャートにおいては、ゲーム処理のうち、仮想ゲーム空間において、サッカーゲームが実行される処理について主に説明し、本願発明と直接関連しない他のゲーム処理については詳細な説明を省略する。また、図18〜図24では、CPU30が実行する各ステップを「S」と略称する。なお、図25に示される仮想ゲーム空間の座標軸は、左右方向(水平方向でありかつタッチラインが伸びる方向)がX方向であり、上下方向(垂直方向)がY方向であり、奥行き方向(水平方向でありかつゴールラインが伸びる方向)がZ方向として説明する。
ゲーム装置本体5の電源が投入されると、ゲーム装置本体5のCPU30は、図示しないブートROMに記憶されている起動プログラムを実行し、これによってメインメモリ33等の各ユニットが初期化される。そして、光ディスク4に記憶されたゲームプログラムがメインメモリ33に読み込まれ、CPU30によって当該ゲームプログラムの実行が開始される。図18〜図24に示すフローチャートは、以上の処理が完了した後に当該ゲームプログラムをCPU30が実行することにより行われるゲーム処理を示すフローチャートである。
図18において、CPU30は、ゲーム処理の初期設定処理を行い(ステップ10)、処理を次のステップに進める。例えば、当該サッカーゲームは、選手キャラクタがチームAとチームBとに別れてゲームが進行し、プレイヤが何れか一方のチーム(チームXとする)の選手キャラクタを操作することが可能となっている。そして、プレイヤは、チームXの選手キャラクタを直接的に操作する選手モードと、チームXの選手キャラクタを総合的に統率する監督モードとによって、操作モードを選択することが可能である。なお、選手モードと監督モードとの両方を設けることは必須ではなく、選手モードのみでも良いし、監督モードのみでもよい。したがって、上記ステップ10において、CPU30は、各チームおよび各モードで操作するコントローラ7をそれぞれ区別して管理するために、チームAの選手モード用コントローラ識別番号、チームAの監督モード用コントローラ識別番号、チームBの選手モード用コントローラ識別番号、およびチームBの監督モード用コントローラ識別番号を設定して、コントローラ識別番号データDbに記述する。
具体的には、使用するコントローラ7(複数の場合はそれぞれ)の操作により、モニタ2上に表示されるメニュ画面においてチーム(AまたはB)およびモード(選手または監督)を選択し、当該選択をしたコントローラ7内に記憶される識別番号データが、対応するコントローラ識別番号Dbに設定される。例えば、あるコントローラ7の操作により、チームAを選択し、選手モードを選択した場合、そのコントローラ7の識別番号が、チームAの選手モード用コントローラ識別番号Db1に設定される。また、上記ステップ10においては、CPU30は、サッカーゲームを開始する前の初期設定(ゲームフィールドの設定、各選手キャラクタ、ボールオブジェクトの初期配置等)を行って、メインメモリ33に記述された各データを更新する。
次に、CPU30は、ゲームを開始するか否かを判断する(ステップ11)。ゲームを開始する条件としては、例えば、ゲーム開始となる条件が満たされたことや、プレイヤがゲームを開始する操作を行ったこと等がある。CPU30は、ゲームを開始しない場合に
上記ステップ11の処理を繰り返し、ゲームを開始する場合に次のステップ12に処理を進める。
上記ステップ11の処理を繰り返し、ゲームを開始する場合に次のステップ12に処理を進める。
ステップ12〜ステップ24の各処理は、上述したゲームの処理単位(例えば、1/60秒)毎に繰り返される処理であり、チームAおよびチームBそれぞれ(チームX)について行われる処理である。以下の説明では、チームAおよびチームBそれぞれについて行う処理を、チームXについて行う処理として記載する。
ステップ12において、CPU30は、コントローラ7(複数の場合はそれぞれ)から操作情報を受信して、各コントローラ識別番号別に操作情報Daに格納する。次に、CPU30は、コントローラ識別番号データDbを参照して、チームXについて選手モード用のコントローラ識別番号Dbが設定されているか否かを判断する(ステップ13)。そして、CPU30は、チームXについて選手モード用のコントローラ識別番号Dbが設定されている場合、次のステップ14に処理を進める。一方、CPU30は、チームXについて選手モード用のコントローラ識別番号Dbが設定されていない場合、次のステップ25に処理を進める。
ステップ14において、CPU30は、チームXの各ノンプレイヤキャラクタNPCの移動ベクトルVmnpcを所定の自動移動アルゴリズムを用いて設定して、移動ベクトルデータDcに格納する。次に、CPU30は、サブユニット移動処理(ステップ15)、パス処理(ステップ16)、第1シュート処理(ステップ17)、第2シュート処理(ステップ18)、一時監督モード処理(ステップ19)、および監督モード処理(ステップ20)を経て、処理をステップ21に進める。なお、ステップ15〜ステップ20で行う詳細な処理については、後述する。
例えば、図25に示すように、プレイヤがチームAに所属する選手キャラクタPA(白抜き図形で示す)を選手モードで操作し、チームBに所属するコンピュータ制御の選手キャラクタPB(塗りつぶし図形で示す)とサッカーゲームで対戦する場合を想定する。この場合、プレイヤは、選手キャラクタPAの何れか(図25においては、選手キャラクタPA1)をプレイヤキャラクタPCとして直接的に操作し、他の選手キャラクタPAがノンプレイヤキャラクタNPCとなる。また、選手キャラクタPBは、全てノンプレイヤキャラクタNPCとなる。そして、選手キャラクタの何れかがボールオブジェクトBをキープしているチームが攻撃側のチームであり(図25においては、プレイヤキャラクタPA1がボールオブジェクトBをキープしているのでチームAが攻撃側のチーム)と、他方のチームが守備側のチームである(図25においては、チームB)。ここで、CPU30は、上記ステップ14において、チームXが守備側の場合(チームXがチームBの場合)、ボールオブジェクトBをキープしている選手キャラクタ(プレイヤキャラクタPA1)の位置データを基準とする所定範囲に配置されたチームX(チームB)の選手キャラクタ(図25においては、選手キャラクタPB1)の移動ベクトルを、ボールオブジェクトBをキープしている選手キャラクタの上体の姿勢ベクトル(後述)に応じて設定する。具体的には、本実施例では、CPU30は、上記所定範囲に配置された選手キャラクタの移動ベクトルを、「ボールオブジェクトBをキープしている選手キャラクタ(PA1)の姿勢ベクトルを仮想水平面に投影したベクトルA(X成分が姿勢ベクトルのX成分に等しく、Y成分が0で、Z成分が姿勢ベクトルのZ成分に等しいベクトル)」に基づいた方向になるように設定する。なお、前述の自動移動アルゴリズムによって設定された当該選手キャラクタの移動ベクトルを、当該ベクトルAで補正(典型的には加算)してもよい。
一方、ステップ13においてNoの場合(すなわち、チームXの選手モード用のコントローラ7が未設定の場合)、ステップ25において、CPU30は、チームXの全選手キャラクタの移動ベクトルVmnpcを所定の自動移動アルゴリズムを用いて設定して、移動ベクトルデータDcに格納する(つまり、チームXに選手モード用のコントローラ7が設定されていないため、チームXの全選手キャラクタがノンプレイヤキャラクタNPCとなる)。なお、上記ステップ25においても、上記ステップ14と同様に上記所定範囲に配置された選手キャラクタの移動ベクトルの上記姿勢ベクトルに応じた設定または補正が行われる。次に、CPU30は、監督モード処理(ステップ20)を経て、処理をステップ21に進める。
ステップ21において、CPU30は、移動ベクトルデータDcに記述された各移動ベクトルデータに基づいて、各キャラクタやオブジェクトを仮想ゲーム空間内で移動させ、ゲーム画像をモニタ2に表示する。次に、CPU30は、移動ベクトルデータDcに記述された各移動ベクトルデータを、それぞれ所定量減衰させて移動ベクトルデータDcを更新する(ステップ22)。そして、CPU30は、ゴール処理、ファウル処理、プレイヤキャラクタPCの切替処理等、サッカーゲームで行われる他の処理を行って(ステップ23)、処理を次のステップに進める。
次に、CPU30は、ゲームを終了するか否かを判断する(ステップ24)。ゲームを終了する条件としては、例えば、ゲームオーバーとなる条件が満たされたことや、プレイヤがゲームを終了する操作を行ったこと等がある。CPU30は、ゲームを終了しない場合に上記ステップ12に戻って処理を繰り返し、ゲームを終了する場合に当該フローチャートによる処理を終了する。
次に、図19を参照して、上記ステップ15におけるサブユニット移動処理について、詳細な動作を説明する。
図19において、CPU30は、操作情報DaからチームXの選手モード用サブユニットから送信された操作情報に含まれる最新のサブキーデータを参照し(ステップ41)、処理を次のステップに進める。ここで、上記ステップ12において、操作情報Daは、各コントローラ識別番号別にそれぞれのコントローラ7から送信された操作情報が格納されており、コントローラIDデータDbには、チームXの選手モード用コントローラ識別番号が記述されている。したがって、CPU30は、コントローラIDデータDbに記述されたチームXの選手モード用コントローラ識別番号に基づいて、操作情報Daから選手モード用サブユニットから送信された操作情報を抽出することが可能となる。
次に、CPU30は、上記ステップ41で参照した選手モード用サブユニットのサブキーデータに基づいて、プレイヤから方向指示入力があるか否かを判断する(ステップ42)。上述したように、サブユニット76は、スティック78aが設けられており、プレイヤが傾倒可能なスティック78aを倒すことによって方向指示入力が可能である。そして、CPU30は、プレイヤから方向指示入力がある場合、次のステップ43に処理を進める。一方、CPU30は、プレイヤから方向指示入力がない場合、次のステップ47に処理を進める。
ステップ43において、CPU30は、チームXの選手モード用サブユニット76からの方向指示入力に基づいて、チームXのプレイヤキャラクタPCの移動ベクトルVmpcを算出して、移動ベクトルデータDcを更新し、処理を次のステップに進める。例えば、図26に示すように、仮想ゲーム空間におけるプレイヤキャラクタPCの移動方向および移動速度を示すデータとして、移動ベクトルVmpcが設定される。上記ステップ43において、CPU30は、移動ベクトルデータDcに格納されているプレイヤキャラクタPCの現在の移動ベクトルVmpcを基準として、スティック78aの傾倒方向に応じて決定される仮想ゲーム空間における方向で、かつスティック78aの傾倒角度に応じた大きさの新たな移動ベクトルVmpcを算出する。この処理によって、プレイヤが操作するチ
ームXのプレイヤキャラクタPCは、当該プレイヤが所持するサブユニット76のスティック78aを操作することによって、仮想ゲーム空間における移動方向および移動速度が制御される。
ームXのプレイヤキャラクタPCは、当該プレイヤが所持するサブユニット76のスティック78aを操作することによって、仮想ゲーム空間における移動方向および移動速度が制御される。
次に、CPU30は、操作情報DaからチームXの選手モード用サブユニットから送信された操作情報に含まれる最新のサブ加速度データを参照する(ステップ44)。そして、CPU30は、サブ加速度データが示すZ軸正方向(図9参照)の加速度が所定値以上であるか否かを判断する(ステップ45)。そして、CPU30は、Z軸正方向の加速度が所定値以上である場合、前述のようにステップ43で決定された、チームXにおけるプレイヤキャラクタPCの移動ベクトルVmpcの大きさを所定アルゴリズムにより増加させて(例えば、当該Z軸正方向の加速度の大きさに応じて増加させて、または、所定値だけ増加させて、または、n倍(nは1より大きい数値)して)、プレイヤキャラクタPCの移動ベクトルデータDcを更新し(ステップ46)、次のステップ47に処理を進める。このステップ46の処理によって、プレイヤが操作するプレイヤキャラクタPCの仮想ゲーム空間における移動速度は、プレイヤがサブユニット76を前方に傾けることによって(すなわち、Z軸正方向がZ軸負方向よりも低い位置を指す方向となるようにすることによって)加速される。一方、CPU30は、Z軸方向の加速度の大きさが所定値未満である場合、そのまま次のステップ47に処理を進める。なお、ステップ45において、Z軸負方向の加速度が所定値(マイナス値)よりも小さいか否かを判断し、当該判断がYesのときには、チームXにおけるプレイヤキャラクタPCの移動ベクトルVmpcの大きさを所定アルゴリズムにより減少させて(例えば、当該Z軸負方向の加速度の大きさに応じて減少させて、または、所定値だけ減少させて、または、m倍(mは1より小さい数値)して)、プレイヤキャラクタPCの移動ベクトルデータDcを更新するようにしてもよい。
ステップ47において、CPU30は、操作情報DaからチームXの選手モード用サブユニットから送信された操作情報に含まれる最新のサブ加速度データを参照する。そして、CPU30は、サブ加速度データに応じて、チームXにおけるプレイヤキャラクタPCの姿勢ベクトルVcを算出して、姿勢ベクトルデータDdを更新し、処理を次のステップに進める。
例えば、図26に示すように、仮想ゲーム空間におけるプレイヤキャラクタPCの姿勢を示すデータとして、姿勢ベクトルVcが設定される。ここで、姿勢ベクトルVcは、プレイヤキャラクタ座標系に基づいて設定される。プレイヤキャラクタ座標系は、仮想ゲーム空間におけるプレイヤキャラクタPCの正面方向をZp軸方向とし(典型的には、プレイヤキャラクタPCの移動ベクトルVmpcの方向をZp軸方向とする。または、プレイヤキャラクタPCの移動方向ベクトルとプレイヤキャラクタPCの向きベクトル(前方ベクトル)とを独立して制御する場合には、プレイヤキャラクタPCの向きベクトルの方向を、Zp軸方向とが一致するようにしてもよい)、プレイヤキャラクタPCの前方方向をZp軸正方向とする。また、仮想ゲーム空間におけるプレイヤキャラクタPCの左右方向をXp軸方向とし、プレイヤキャラクタPCから見て右方向をXp軸正方向とする。また、仮想ゲーム空間におけるプレイヤキャラクタPCの垂直方向をYp軸方向とし、上方向をYp軸正方向とする。姿勢ベクトルVcは、プレイヤキャラクタPCの腰部から頭部に向かうベクトルデータとして設定されている。姿勢ベクトルVcは、典型的にはプレイヤキャラクタ座標系におけるベクトルデータである。
上記ステップ48において、CPU30は、サブ加速度データが示すX軸方向(図9参照)の加速度をプレイヤキャラクタ座標系のXp軸方向に対応付け、サブ加速度データが示すY軸方向の加速度をプレイヤキャラクタ座標系のYp軸方向に対応付け、サブ加速度データが示すZ軸方向の加速度をプレイヤキャラクタ座標系のZp軸方向に対応付けて、
姿勢ベクトルVcを算出する。
姿勢ベクトルVcを算出する。
例えば、上記ステップ48では、一例としてサブユニット76の傾きに応じて、プレイヤキャラクタPCの姿勢が制御される。この場合、具体的には、サブ加速度データが示すX軸方向の加速度の値に応じて(典型的には、比例して)、プレイヤキャラクタ座標系における姿勢ベクトルデータのXp軸方向の値を決定し、サブ加速度データが示すY軸方向の加速度の正負を反転した値に応じて(典型的には、比例して)、プレイヤキャラクタ座標系における姿勢ベクトルデータのYp軸方向の値を決定し、サブ加速度データが示すZ軸方向の加速度の値に応じて(典型的には、比例して)、プレイヤキャラクタ座標系における姿勢ベクトルデータのZp軸方向の値を決定する(それぞれの比例定数は、共通とするのが典型的であるがこれに限らない)。より具体的には、例えば、サブ加速度データが示すX軸方向の加速度の値:Y軸方向の加速度の値:Z軸方向の加速度の値=プレイヤキャラクタ座標系における姿勢ベクトルデータのXp軸方向の値:姿勢ベクトルデータのYp軸方向の値:姿勢ベクトルデータのZp軸方向の値となるように、姿勢ベクトルデータを決定する。または、サブ加速度データが示すX軸方向の加速度の値に応じて、プレイヤキャラクタ座標系における姿勢ベクトルデータのXp軸方向の値を決定し、サブ加速度データが示すZ軸方向の加速度の値に応じて、プレイヤキャラクタ座標系における姿勢ベクトルデータのZp軸方向の値を決定するようにし、プレイヤキャラクタ座標系における姿勢ベクトルデータのYp軸方向の値は一定としてもよい。
例えば、上記ステップ48では、一例としてサブユニット76の動き(平行移動)に応じて、プレイヤキャラクタPCの姿勢が制御される。例えば、プレイヤがサブユニット76を右方向に動かした場合、サブユニット76にX軸正方向の加速度が生じる(プレイヤがサブユニット76を右方向に動かした場合に、当該動きの当初に出力されるX軸正方向の加速度を検出してもよいし、当該動きを止めるときに出力されるX軸負方向の加速度を検出してもよい)。そして、サブユニット76に設けられた加速度センサ761が上記X軸正方向の加速度を検出し、サブユニット76から当該加速度を示すサブ加速度データがゲーム装置本体5へ送信される。一方、CPU30は、受信したサブ加速度データが示す上記X軸正方向の加速度に応じて、当該加速度の大きさでXp軸正方向のベクトルを姿勢ベクトルVcに足して、新たな姿勢ベクトルVcを算出する。そして、プレイヤキャラクタPCの上体は、新たに算出された姿勢ベクトルVcに応じてXp軸正方向に傾くことになる。そして、プレイヤがサブユニット76を前方向に動かした場合、サブユニット76にZ軸正方向の加速度が生じる。そして、サブユニット76に設けられた加速度センサ761が、上記Z軸正方向の加速度を検出し、サブユニット76から当該加速度を示すサブ加速度データがゲーム装置本体5へ送信される。一方、CPU30は、受信したサブ加速度データが示す上記Z軸正方向の加速度に応じて、当該加速度の大きさでZp軸正方向のベクトルを姿勢ベクトルVcに足して、新たな姿勢ベクトルVcを算出する。そして、プレイヤキャラクタPCの上体は、新たに算出された姿勢ベクトルVcに応じてZp軸正方向に傾くことになる。このステップ48の処理によって、プレイヤが操作するプレイヤキャラクタPCの仮想ゲーム空間における姿勢は、プレイヤがサブユニット76全体を動かす動作に応じて変化する。
ここで、上記ステップ14およびステップ25において、ボールオブジェクトBをキープしているプレイヤキャラクタPCの所定範囲に配置された相手チームの選手キャラクタ(例えば、図25に示す選手キャラクタPB1)の移動ベクトルは、プレイヤキャラクタPCの姿勢ベクトルVcに応じて補正される。具体的には、姿勢ベクトルVcを仮想水平面に投影したベクトルを、上記相手チームの選手キャラクタの移動ベクトルに加えることによって補正されるため、当該選手キャラクタが移動する方向は、仮想ゲーム空間の垂直方向に対して姿勢ベクトルVcが傾く方向へ変化する。つまり、プレイヤがサブユニット76全体を動かす動作によって変化したプレイヤキャラクタPCの姿勢に応じて相手チー
ムの選手キャラクタが移動することになり、いわゆるサッカーゲームでドリブル中のフェイントに相手選手がつられるような動作が表現される。
ムの選手キャラクタが移動することになり、いわゆるサッカーゲームでドリブル中のフェイントに相手選手がつられるような動作が表現される。
図19に戻り、上記ステップ48の処理の後、CPU30は、チームXに所属する何れかの選手キャラクタがボールオブジェクトBを保持しているか否かを判断する(ステップ49)。そして、CPU30は、チームXに所属する何れかの選手キャラクタがボールオブジェクトBを保持している場合(すなわち、チームXが攻撃側の場合)、次のステップ50に処理を進める。一方、CPU30は、チームXに所属する選手キャラクタがボールオブジェクトBを保持していない場合、次の上記ステップ19に処理を進める。
ステップ50において、CPU30は、上記ステップ47で参照した最新のサブ加速度データが示すX軸方向の加速度の大きさ(絶対値)が所定加速度A1以上(例えば、0.5G以上としてよいが、任意の値でよい)であるか否かを判断する。そして、CPU30は、X軸方向の加速度の大きさが当該所定加速度A1以上である場合、次のステップ51に処理を進める。一方、CPU30は、X軸方向の加速度の大きさが当該所定加速度A1未満である場合、当該サブルーチンによる処理を終了して、上記ステップ16の処理へ進める。
ステップ51において、CPU30は、操作情報DaからチームXの選手モード用サブユニットから送信された操作情報に含まれるサブ加速度データの履歴を参照し、サブ加速度データの履歴が示すX軸方向の加速度の方向が直近の所定時間内に所定加速度A1以上の大きさでn回(nは、1以上の整数)反転しているか否かを判断する。例えば、サブ加速度データの履歴を参照して、「直近の過去所定時間内に、最新のサブ加速度データ(ステップ50において加速度A1以上と判定されたデータ)が示す加速度とは正負が反対でかつ絶対値が加速度A1以上のデータが存在する」か否かを判断する(n=1の場合)。または、「直近の過去所定時間内に、最新のサブ加速度データが示す加速度とは正負が反対でかつ絶対値が加速度A1以上のデータが存在し、さらに、当該データより前に、当該データとは正負が反対で絶対値が加速度A1以上のデータが存在する」か否かを判断する(n=2の場合)。または、サブ加速度データの履歴が示すX軸方向の加速度の方向が所定加速度A1以上の大きさでn回反転し、かつ、反転の間隔がそれぞれ所定時間以内であるか否かを判断してもよい。
そして、CPU30は、X軸方向の加速度の方向が所定時間内に反転している場合、チームXにおけるプレイヤキャラクタPCの移動ベクトルVmpcにXp軸方向の所定の大きさのベクトル(ベクトルの大きさは、固定でもよいし、サブ加速度データが示すX軸方向の加速度の大きさに比例した大きさとしてもよい。ベクトルの向きは、X軸方向の加速度が正ならXp軸の正方向であり、X軸方向の加速度が負ならXp軸の負方向)を加算して、移動ベクトルVmpcとする。(ステップ52)、当該サブルーチンによる処理を終了して、上記ステップ16の処理へ進める。このステップ50〜ステップ52の処理によって、プレイヤが操作するプレイヤキャラクタPCの仮想ゲーム空間における移動速度は、プレイヤがサブユニット76を左右(つまり、X軸方向)に振り動かすことによってジグザグに移動するように移動制御される。一方、CPU30は、X軸方向の加速度の方向が所定時間内に反転していない場合、そのまま当該サブルーチンによる処理を終了して、上記ステップ16の処理へ進める。
なお、上述した処理は、次のようにしてもかまわない。一例として、光ディスク4にプレイヤキャラクタPCのモーションデータを記憶しておき、メインメモリ33に読み出しておく。そして、上記ステップ51においてX軸方向の加速度の方向が所定時間内に反転していると判定された場合、上述のステップ52の処理に代えて、当該モーションデータに基づいて、プレイヤキャラクタPCに動作をさせる。なお、このモーションデータは、
プレイヤキャラクタPCにフェイント動作をさせるようなモーションデータとしてもよい。
プレイヤキャラクタPCにフェイント動作をさせるようなモーションデータとしてもよい。
また、他の例として、複数種類のモーションデータを光ディスク4に記憶しておいてメインメモリ33に読み出しておく。そして、操作情報DaからチームXの選手モード用サブユニットから送信された操作情報に含まれるサブ加速度データの履歴を参照し、サブ加速度データの履歴が示すパターンに応じて、利用するモーションデータを選択してもよい。例えば、またぎフェイントの動作をプレイヤキャラクタPCにさせるためのモーションデータAと、左右に体をゆらすフェイントの動作をプレイヤキャラクタPCにさせるためのモーションデータBを用意しておく。そして、X軸方向の加速度の方向が所定時間内に反転していると判定された場合に、モーションデータAを読み出して、プレイヤキャラクタPCにまたぎフェイントの動作をさせ、Y軸方向(Z軸方向でもよい)の加速度の方向が所定時間内に反転していると判定された場合に、モーションデータBを読み出して、プレイヤキャラクタPCに左右に体をゆらすフェイントの動作をさせるようにしてもよい。また、予め記憶したモーションデータを用いる代わりに、物理計算をしてプレイヤキャラクタの各部位の動きデータを生成するようにしてもよい。
また、上述したサブユニット移動処理については、以下のようにしてもよい。第1の例として、最新のサブ加速度データが示すX軸方向の加速度の大きさ(絶対値)が所定値(例えば、重力加速度(1.0G))以内の場合、ステップ48において、最新のサブ加速度データが示すX軸方向の加速度を用いた姿勢ベクトルの制御を行う。第2の例として、最新のサブ加速度データが示すX軸方向の加速度の大きさ(絶対値)が当該所定値より大きい場合、ステップ48において、プレイヤキャラクタPCが上体または全身をXp軸方向に大きく振る動作をするような(フェイントを表現した姿勢をするような)動作制御をする。
さらに、上記サブユニット移動処理の第1の例について、以下のようにしてもよい。第3の例として、最新のサブ加速度データが示すX軸方向の加速度の大きさ(絶対値)が当該所定値以内で、かつ、サブ加速度データの履歴が示すX軸方向の加速度の方向が直近の所定時間内に加速度A1以上の大きさでn回(nは1以上の整数)反転している場合、プレイヤキャラクタPCの移動ベクトルVmpcにXp軸方向の所定の大きさのベクトルを加算して、移動ベクトルVmpcとする。第4の例として、最新のサブ加速度データが示すX軸方向の加速度の大きさ(絶対値)が所定値A2以内で、かつ、上記第3の例以外の場合、ステップ48において、最新のサブ加速度データが示すX軸方向の加速度を用いた姿勢ベクトルの制御を行う。そして、上記第1の例や第4の例の場合には、ステップ14とステップ25において前述した「プレイヤキャラクタPCの所定範囲に配置された相手チームの選手キャラクタ」が、プレイヤキャラクタPCのフェイントにつられる移動制御はしないようにしてもよい。
このように、ステップ15におけるサブユニット移動処理においては、サブユニット76に設けられた方向指示部(スティック78a)でプレイヤキャラクタPCの移動方向(さらには、付加的に移動速度)が制御されながら、サブユニット76に設けられた加速度センサ761から出力される加速度データに応じてプレイヤキャラクタPCの姿勢が制御される。つまり、プレイヤは、プレイヤキャラクタPCの移動方向制御と姿勢制御とを、片手で効率的かつ直感的に入力することができる。
また、上記サブユニット移動処理においては、サブユニット76に設けられた方向指示部(スティック78a)でプレイヤキャラクタPCの移動方向(さらには、付加的に移動速度)が制御されながら、当該移動方向が、サブユニット76に設けられた加速度センサ761から出力される加速度データに応じて補正される。つまり、プレイヤは、プレイヤ
キャラクタPCの移動方向制御とその補正とを、片手で効率的かつ直感的に入力することができる。具体的には、以下のようにすることができる。スティック78aの傾倒方向に応じてプレイヤキャラクタPCの移動ベクトルの方向を決める。すなわち、例えば、上方向に指示したときに、プレイヤキャラクタPCのローカル座標系のZ軸正方向(プレイヤキャラクタPCの前方向)に移動(プレイヤキャラクタPCの前進方向ベクトルの方向に移動)する。方向指示手段を下方向に指示したときに、プレイヤキャラクタPCのローカル座標系のZ軸負方向に移動する。方向指示手段を右方向に指示したときに、ローカル座標系のX軸正方向に移動する。そして、方向指示手段を左方向に指示したときに、ローカル座標系のX軸負方向に移動するように移動制御する。移動ベクトルの大きさは、固定値でもよいし、スティック78aの傾倒量に応じて決めても良い。そして、加速度センサ761の出力に応じて、プレイヤキャラクタPCの移動方向を以下のように補正することができる。
キャラクタPCの移動方向制御とその補正とを、片手で効率的かつ直感的に入力することができる。具体的には、以下のようにすることができる。スティック78aの傾倒方向に応じてプレイヤキャラクタPCの移動ベクトルの方向を決める。すなわち、例えば、上方向に指示したときに、プレイヤキャラクタPCのローカル座標系のZ軸正方向(プレイヤキャラクタPCの前方向)に移動(プレイヤキャラクタPCの前進方向ベクトルの方向に移動)する。方向指示手段を下方向に指示したときに、プレイヤキャラクタPCのローカル座標系のZ軸負方向に移動する。方向指示手段を右方向に指示したときに、ローカル座標系のX軸正方向に移動する。そして、方向指示手段を左方向に指示したときに、ローカル座標系のX軸負方向に移動するように移動制御する。移動ベクトルの大きさは、固定値でもよいし、スティック78aの傾倒量に応じて決めても良い。そして、加速度センサ761の出力に応じて、プレイヤキャラクタPCの移動方向を以下のように補正することができる。
プレイヤキャラクタPCの移動方向を補正する第1の例として、加速度センサ761のX軸、Y軸、Z軸をそれぞれ、所定座標系のX軸、Y軸、Z軸に対応付けた(または、前進方向とそれに直交する2方向に対応付けて)加速度センサ761の出力ベクトルを、仮想ゲーム空間の方向ベクトルに変換する。そして、上記方向ベクトルを補正ベクトルとして、当該補正ベクトルをスティック78aの傾倒により求めた上記移動ベクトルに加算する。上記補正ベクトルの大きさは、固定値でもよいし、上記出力ベクトルの大きさに応じて決めても良い。
プレイヤキャラクタPCの移動方向を補正する第2の例として、加速度センサ761の所定方向(例えば、X軸方向)の出力値が所定値以上のときに、所定座標系の対応する方向(例えば、X軸方向)の補正ベクトルを、スティック78aの傾倒により求めた上記移動ベクトルに加算する。
プレイヤキャラクタPCの移動方向を補正する第3の例として、加速度センサ761の所定方向(例えば、X軸方向)の出力値に応じた大きさで、所定座標系の対応する方向(例えば、X軸方向)の補正ベクトルを、スティック78aの傾倒により求めた上記移動ベクトルに加算する。
なお、プレイヤキャラクタPCの移動方向を補正する第2および第3の例について、複数の方向について実施してもよい。すなわち、例えば、第3の例について、加速度センサ761のX軸方向の出力値に応じた大きさで、所定座標系のX軸方向の補正ベクトルを、スティック78aの傾倒により求めた上記移動ベクトルに加算し、さらに、加速度センサ761のY軸方向の出力値に応じた大きさで、所定座標系のY軸方向の補正ベクトルを加算してもよい。
また、上記所定座標系は、プレイヤキャラクタPCのローカル座標系でもよいし、仮想ゲーム空間の座標系でもよいし(この場合、方向ベクトルは、典型的には仮想垂直方向や仮想水平方向などとなる)、カメラ座標系であってもよいし、カメラ座標系を仮想水平面に投影した座標系であってもよいし、方向指示部により決定される移動方向に基づく座標系(例えば、上記補正ベクトルが当該移動方向に直交する方向など)であってもよい。
また、上記サブユニット移動処理においては、サブユニット76に設けられた方向指示部(スティック78a)でプレイヤキャラクタPCの移動方向が制御されながら、プレイヤキャラクタPCの移動速度の制御がされる。つまり、プレイヤは、プレイヤキャラクタPCの移動方向制御と移動速度の制御とを、片手で効率的かつ直感的に入力することができる。この場合、以下のようにすることができる。スティック78aの傾倒方向に応じて、プレイヤキャラクタPCの移動方向を決める。そして、プレイヤキャラクタPCの移動速度(絶対値)は、加速度センサ761の出力に応じて、以下のように決めることができる。
プレイヤキャラクタPCの移動速度を決定する第1の例は、加速度センサ761の出力ベクトルの絶対値が所定値以上のときに、当該移動速度を所定速度とし、当該所定値より小さいときは当該移動速度を0とする。
プレイヤキャラクタPCの移動速度を決定する第2の例は、当該移動速度を加速度センサ761の出力ベクトルの絶対値に応じた速度とする(当該絶対値が大きいほど、当該移動速度が大きくなるようにする)。このとき、上記出力ベクトルの所定成分(例えば、Z軸方向成分)が正のときには、プレイヤキャラクタPCがスティック78aの傾倒方向に応じた移動方向に移動し、負のときには、プレイヤキャラクタPCがスティック78aの傾倒方向に応じた移動方向と反対方向に移動するようにしてもよい。また、上記所定方向の出力成分が正のときのみ、当該第2の例によって上記移動速度を決定するようにしてもよい。
プレイヤキャラクタPCの移動速度を決定する第3の例は、加速度センサ761の所定方向の出力成分(例えば、Z軸方向の出力値)が所定値以上のときに、当該移動速度を所定速度とし、当該所定値より小さいときは当該移動速度を0とする。
プレイヤキャラクタPCの移動速度を決定する第4の例は、当該移動速度を加速度センサ761の所定方向の出力成分(例えば、Z軸方向の出力値)の絶対値に応じた速度とする。
なお、プレイヤキャラクタPCの移動速度を決定する第3および第4の例において、上記所定方向の出力成分が正のときにはスティック78aの傾倒方向に応じた移動方向にプレイヤキャラクタPCが移動し、上記所定方向の出力成分が負のときには、当該移動方向と反対の方向にプレイヤキャラクタPCが移動するようにしてもよい。また、上記所定方向の出力成分が正のときのみ、当該第3および第4の例によって上記移動速度を決定するようにしてもよい。
プレイヤキャラクタPCの移動速度を決定する第5の例は、加速度センサ761の、スティック78aの傾倒方向に対応する方向の出力成分(例えば、スティック78aの傾倒方向が上方向のときにはZ軸方向の出力値、スティック78aの傾倒方向が右方向のときにはX軸方向の出力値など)が、所定値以上のときに当該移動速度を所定速度とし、当該所定値より小さいときは当該移動速度を0とする。
プレイヤキャラクタPCの移動速度を決定する第6の例は、当該移動速度を加速度センサ761の、スティック78aの傾倒方向に対応する方向の出力成分(例えば、スティック78aの傾倒方向が上方向のときにはZ軸方向の出力値、スティック78aの傾倒方向が右方向のときにはX軸方向の出力値など)の絶対値に応じた速度とする。
なお、プレイヤキャラクタPCの移動速度を決定する第5および第6の例において、上記対応する方向の出力成分が正のときにはスティック78aの傾倒方向に応じた移動方向にプレイヤキャラクタPCが移動し、上記対応する方向の出力成分が負のときには、当該移動方向と反対の方向にプレイヤキャラクタPCが移動するようにしてもよい。
また、上記サブユニット移動処理においては、サブユニット76に設けられた方向指示部(スティック78a)でプレイヤキャラクタPCの移動方向と移動速度とが制御されながら、移動速度の補正制御がされる。つまり、プレイヤは、プレイヤキャラクタPCの移
動方向制御と移動速度の補正制御とを、片手で効率的かつ直感的に入力することができる。この場合、以下のようにすることができる。スティック78aの傾倒方向に応じてプレイヤキャラクタPCの移動方向を決めて、かつ、スティック78aの傾倒量に応じてプレイヤキャラクタPCの移動速度を決める。そして、加速度センサ761の出力に応じて、プレイヤキャラクタPCの移動速度を以下のように補正することができる。
動方向制御と移動速度の補正制御とを、片手で効率的かつ直感的に入力することができる。この場合、以下のようにすることができる。スティック78aの傾倒方向に応じてプレイヤキャラクタPCの移動方向を決めて、かつ、スティック78aの傾倒量に応じてプレイヤキャラクタPCの移動速度を決める。そして、加速度センサ761の出力に応じて、プレイヤキャラクタPCの移動速度を以下のように補正することができる。
プレイヤキャラクタPCの移動速度を補正する第1の例は、加速度センサ761の出力ベクトルの絶対値が所定値以上のときに、スティック78aの傾倒量に応じた移動速度をプレイヤキャラクタPCの移動速度としてそのまま使用し、当該所定値より小さいときはプレイヤキャラクタPCの移動速度を0に補正する。
プレイヤキャラクタPCの移動速度を補正する第2の例は、加速度センサ761の出力ベクトルの絶対値が所定値以下のときに、スティック78aの傾倒量に応じた移動速度をプレイヤキャラクタPCの移動速度としてそのまま使用し、当該所定値より大きいときはプレイヤキャラクタPCの移動速度を増加補正する(所定値を加算、n倍(n>1)など)。
プレイヤキャラクタPCの移動速度を補正する第3の例は、加速度センサ761の出力ベクトルの絶対値に応じて、スティック78aの傾倒量に応じた移動速度をプレイヤキャラクタPCの移動速度に増加補正する(当該絶対値が大きいほど、増加量が大きくなるようにする)。
なお、プレイヤキャラクタPCの移動速度を補正する第2および第3の例において、上記出力ベクトルの所定成分(例えばZ軸方向成分)が正のときには、スティック78aの傾倒方向に応じた移動方向にプレイヤキャラクタPCが移動し、負のときには、スティック78aの傾倒方向に応じた移動方向と反対方向にプレイヤキャラクタPCが移動するようにしてもよい。また、上記所定方向の出力成分が正のときのみ、当該第2および第3の例によって上記移動速度を補正するようにしてもよい。
プレイヤキャラクタPCの移動速度を補正する第4の例は、加速度センサ761の所定方向の出力成分(例えば、Z軸方向の出力値)が所定値以上のときにスティック78aの傾倒量に応じた移動速度をプレイヤキャラクタPCの移動速度としてそのまま使用し、当該所定値より小さいときはプレイヤキャラクタPCの移動速度を0に補正する。
プレイヤキャラクタPCの移動速度を補正する第5の例は、加速度センサ761の所定方向の出力成分(例えば、Z軸方向の出力値)が所定値以下のときにスティック78aの傾倒量に応じた移動速度をプレイヤキャラクタPCの移動速度としてそのまま使用し、当該所定値より大きいときはプレイヤキャラクタPCの移動速度を増加補正する。なお、上記所定方向の出力成分が正のときのみ、当該第5の例によって上記移動速度を補正してもよいし、上記所定方向の出力成分が負のときにはスティック78aの傾倒量に応じた移動速度を用いてプレイヤキャラクタPCの移動速度を減少補正してもよい。
プレイヤキャラクタPCの移動速度を補正する第6の例は、加速度センサ761の所定方向の出力成分(例えば、Z軸方向の出力値)の大きさに応じて、スティック78aの傾倒量に応じた移動速度を用いてプレイヤキャラクタPCの移動速度を増加補正する(当該絶対値が大きいほど、増加量が大きくなるようにする)。なお、上記所定方向の出力成分が正のときのみ、当該第6の例によって上記移動速度を補正してもよいし、上記所定方向の出力成分が負のときにはスティック78aの傾倒量に応じた移動速度を用いてプレイヤキャラクタPCの移動速度を減少補正してもよい。
プレイヤキャラクタPCの移動速度を補正する第7の例は、加速度センサ761の、スティック78aの傾倒方向に対応する方向の出力成分(例えば、スティック78aの傾倒方向が上方向のときにはZ軸正方向の出力値、スティック78aの傾倒方向が右方向のときにはX軸正方向の出力値など)が、所定値以上のときにスティック78aの傾倒量に応じた移動速度をプレイヤキャラクタPCの移動速度としてそのまま使用し、当該所定値より小さいときはプレイヤキャラクタPCの移動速度を0に補正する。
プレイヤキャラクタPCの移動速度を補正する第8の例は、加速度センサ761の、スティック78aの傾倒方向に対応する方向の出力成分が、所定値以下のときにスティック78aの傾倒量に応じた移動速度をプレイヤキャラクタPCの移動速度としてそのまま使用し、当該所定値より大きいときにプレイヤキャラクタPCの移動速度を増加補正する。
プレイヤキャラクタPCの移動速度を補正する第9の例は、加速度センサ761の、スティック78aの傾倒方向に対応する方向の出力成分の大きさに応じて、スティック78aの傾倒量に応じた移動速度を用いてプレイヤキャラクタPCの移動速度を増加補正する(当該絶対値が大きいほど、増加量が大きくなるようにする)。
なお、プレイヤキャラクタPCの移動速度を補正する第8および第9の例において、上記所定方向の出力成分が正のときのみ当該第8および第9の例によって上記移動速度を補正してもよいし、上記対応する出力値が正のときにはスティック78aの傾倒方向に応じた移動方向にプレイヤキャラクタPCが移動し、上記対応する出力値が負のとき(当該対応する方向と反対方向の出力があるとき)には、当該移動方向と反対の方向にプレイヤキャラクタPCが移動するようにしてもよい。
また、上記サブユニット移動処理においては、サブユニット76に設けられた方向指示部(スティック78a)でプレイヤキャラクタPCの移動方向(さらには、付加的に移動速度)が制御されながら、プレイヤキャラクタPCの動作制御(例えば、前述のフェイント動作)が行われる。つまり、プレイヤは、プレイヤキャラクタPCの移動方向制御と動作制御とを、片手で効率的かつ直感的に入力することができる。これは、加速度センサ761の出力が所定の条件を満たしたときに、プレイヤキャラクタPCに所定の動作をさせるように制御することにより実現される。さらに、上述したサブユニット移動処理の例の少なくとも1つと、加速度センサ761の出力が所定の条件を満たしたときにプレイヤキャラクタPCに所定の動作をさせるように制御する処理とを同時に実施する場合には、加速度センサ761の出力値の大きさが所定値以下のときに上述したサブユニット移動処理の例の少なくとも1つを実施し、所定値より大きいときに所定の動作をさせるように制御する処理を実施するようにしてもよい。
次に、図20を参照して、上記ステップ16におけるパス処理について、詳細な動作を説明する。
図20において、CPU30は、操作情報DaからチームXの選手モード用コアユニットから送信された操作情報に含まれる最新のコアキーデータを参照する(ステップ81)。次に、CPU30は、上記ステップ81で参照したコアキーデータに基づいて、プレイヤがコアユニット70の操作部72d(Aボタン)のみを押下しているか否かを判断する(ステップ82)。そして、CPU30は、プレイヤがAボタンのみを押下している場合、次のステップ83に処理を進める。一方、CPU30は、プレイヤがAボタンを押下していない、またはAボタンと同時に他のボタン(例えば、Bボタン)を押下している場合、当該サブルーチンによる処理を終了して、上記ステップ17の処理へ進める。
ステップ83において、CPU30は、操作情報DaからチームXの選手モード用コア
ユニットから送信された操作情報に含まれる最新の第1座標データDa1および第2座標データDa2を参照する(ステップ83)。次に、CPU30は、上記ステップ83で参照した第1座標データDa1および第2座標データDa2に対応する指示座標、および当該指示座標に対応する仮想ゲーム空間の位置を算出して、それぞれチームXの選手モード用コアユニットに対応する指示座標データDeおよび仮想空間位置座標データDfを更新して(ステップ84)、処理を次のステップに進める。以下、座標データを用いて指示座標および仮想空間位置を算出する一例について詳述する。
ユニットから送信された操作情報に含まれる最新の第1座標データDa1および第2座標データDa2を参照する(ステップ83)。次に、CPU30は、上記ステップ83で参照した第1座標データDa1および第2座標データDa2に対応する指示座標、および当該指示座標に対応する仮想ゲーム空間の位置を算出して、それぞれチームXの選手モード用コアユニットに対応する指示座標データDeおよび仮想空間位置座標データDfを更新して(ステップ84)、処理を次のステップに進める。以下、座標データを用いて指示座標および仮想空間位置を算出する一例について詳述する。
まず、CPU30は、第1座標データDa1から第2座標データDa2への方向データを算出する。具体的には、CPU30は、第1座標データDa1および第2座標データDa2を参照して、第1座標データDa1の位置を始点とし第2座標データDa2の位置を終点とするベクトルを算出する。そして、CPU30は、算出されたベクトルのデータを、方向データとしてメインメモリ33に記憶する。この方向データと所定の基準方向との差によって、コアユニット70の撮像面に垂直な方向を軸とするコアユニット70本体の回転を算出することができる。
また、CPU30は、第1座標データDa1と第2座標データDa2との中点を示す中点データを算出する。具体的には、CPU30は、第1座標データDa1および第2座標データDa2を参照して、当該中点の座標を算出する。そして、CPU30は、算出された中点の座標のデータを、メインメモリ33に記憶する。ここで、中点データは、撮像画像内における対象画像(マーカ8Lおよび8R)の位置を示している。この中点データと所定の基準位置との差によって、コアユニット70の位置の変化による画像位置の変化を算出することができる。
ここで、マーカ8Lおよび8Rと、モニタ2の表示画面と、コアユニット70との位置関係について考える。例えば、モニタ2の上面に2つのマーカ8Lおよび8Rを設置し(図1参照)、上面が上方向を向いたコアユニット70を用いてプレイヤがモニタ2の表示画面の中央を指し示した場合(撮像情報演算部74の撮像画像の中央に表示画面中央が撮像されている状態)を考える。このとき、撮像情報演算部74の撮像画像において、対象画像の中点(マーカ8Lおよび8Rの中点)位置と指し示した位置(表示画面中央)とが一致しない。具体的には、上記撮像画像における対象画像の位置は撮像画像の中心から上方の位置となる。このような位置に対象画像が位置する場合に、表示画面中央を指し示しているという基準位置の設定を行う。一方、コアユニット70の移動に対応して、撮像画像中の対象画像の位置も移動する(移動方向は逆方向となる)ので、撮像画像中の対象画像の位置の移動に対応させて表示画面を指し示す位置を移動させる処理を行うことによって、コアユニット70で指し示された表示画面基準の位置(画面座標系の位置座標)を算出することができる。ここで、基準位置の設定は、予めプレイヤが表示画面の所定位置を指し示し、そのときの対象画像の位置を当該所定位置と対応させて記憶しておくようにしてもよいし、対象画像と表示画面との位置関係が固定的であれば、予め設定されていても良い。また、マーカ8Lおよび8Rが、モニタ2とは別体で設けられてモニタ2の近く(モニタ2の上や下など)に載置されて使用されるものである場合には、ゲーム開始前に、マーカ8Lおよび8Rをモニタに対してどの位置に載置しているかをプレイヤに入力させ(例えば、モニタ2の上に載置したか下に載置したか等の選択肢から選択させ)、光ディスク4やゲーム装置3の内蔵不揮発メモリなどに、モニタ2の上に載置した場合の基準位置データと、モニタ2の下に載置した場合の基準位置データをそれぞれ記憶しておいて、それらを選択して使用してもよい。このような画面座標系の位置座標は、中点データからモニタ2の表示画面基準の座標(指示座標)を算出する関数を用いた線形変換で算出される。この関数は、ある撮像画像から算出される中点座標の値を、当該撮像画像が撮像される時のコアユニット70によって指し示される表示画面上の位置(画面座標系の位置座標)を表す座標に変換するものである。この関数によって、中点座標から表示画面を基準とした指示座標を算出することができる。
しかしながら、上面が上方向以外(例えば、右方向)を向いたコアユニット70を用いてプレイヤがモニタ2の表示画面の中央を指し示した場合、上記撮像画像における対象画像の位置は撮像画像の中心から上方以外(例えば、左方)の方向にずれた位置となる。つまり、コアユニット70の傾きによって、コアユニット70の移動方向と、表示画面基準の指し示し位置の移動方向が一致しないことになる。そこで、方向データに基づいて、中点データを補正する。具体的には、中点データを、コアユニット70の上面が上方向を向いた状態であるとした場合における中点座標に補正する。より具体的には、上記基準位置の設定の際には方向データの基準も設定され、中点データを方向データと当該基準方向との角度差に応じた量だけ、撮像画像の中心を軸として中点データが示す座標を回転移動させて補正する。そして、補正された中点データを用いて上述したように指示座標を算出する。
また、算出した画面座標系の指示座標を仮想ゲーム空間内における位置(仮想空間位置)を表す仮想空間座標に変換する場合には、当該画面座標系における位置に対応する仮想ゲーム空間内における位置にさらに変換すればよい。ここで、画面座標系における位置に対応する仮想ゲーム空間内における位置とは、モニタ2の表示画面上における位置に表示される仮想ゲーム空間内における位置(例えば、透視投影される位置)や画面座標系の位置座標から直接的に指定される仮想ゲーム空間の3次元座標値等である。
上記指示座標の算出処理の本質的な原理は、コアユニット70の移動による対象画像の位置の変化によって、指し示された2次元座標の所定の基準位置からの変位を算出し、座標を設定するというものである。したがって、画面座標系の位置座標は、他の2次元座標の入力としても幅広く用いることができる。例えば、画面座標系の位置座標をワールド座標系におけるx座標およびy座標の値として直接的に用いることができる。この場合、モニタ2の表示画面とは無関係に、対象画像の移動をワールド座標系におけるx座標およびy座標の基準位置からの移動に対応付ける算出処理を行えばよい。また、2次元のゲーム画像がモニタ2に表示されている場合などは、画面座標系の位置座標をそのまま2次元のゲーム座標系におけるx座標およびy座標の値として直接的に用いることができる。
ステップ84の処理の後、CPU30は、算出された指示座標に対応する仮想ゲーム空間の仮想空間位置が、仮想フィールド上の位置であるか否かを判断する(ステップ85)。例えば、仮想フィールドは、仮想サッカーフィールドを含むゲーム空間の地面を示す仮想平面である。次に、CPU30は、仮想空間位置が仮想フィールド上である場合、次のステップ90に処理を進める。一方、CPU30は、仮想空間位置が仮想フィールド上でない場合、上記画面座標系の指示座標がモニタ2の表示領域の上または下に外れているか否か(ステップ86)、および上記画面座標系の指示座標がモニタ2の表示領域の左または右に外れているか否か(ステップ87)を判断する。そして、CPU30は、指示座標がモニタ2の表示領域の上下に外れている場合(ステップ86でYes)、次のステップ88に処理を進める。また、CPU30は、指示座標がモニタ2の表示領域の左右に外れている場合(ステップ87でYes)、次のステップ89に処理を進める。一方、CPU30は、指示座標がモニタ2の表示領域の上下および左右以外に外れている、または指示座標が無効(例えば、算出不可)である場合(ステップ86およびステップ87でNo)、次のステップ95に処理を進める。
ステップ88において、CPU30は、ボールオブジェクトBの移動方向および移動速度を示すボール移動ベクトルを、仮想ゲーム空間に設定されたサッカーフィールドのゴールラインと平行な方向に所定の大きさで設定し、移動ベクトルデータDcを更新して、次のステップ95に処理を進める。なお、上記ステップ88で設定するボール移動ベクトル
の方向は、仮想カメラの視線方向ベクトルを仮想ゲーム空間の仮想水平面に投影した方向に設定してもかまわない。
の方向は、仮想カメラの視線方向ベクトルを仮想ゲーム空間の仮想水平面に投影した方向に設定してもかまわない。
ステップ89において、CPU30は、ボールオブジェクトBの移動方向および移動速度を示すボール移動ベクトルを、仮想ゲーム空間に設定されたサッカーフィールドのタッチラインと平行な方向に所定の大きさで設定し、移動ベクトルデータDcを更新して、次のステップ95に処理を進める。なお、上記ステップ89で設定するボール移動ベクトルの方向は、仮想カメラの視線方向ベクトルを仮想ゲーム空間の仮想水平面に投影した方向に対して垂直な水平方向に設定してもかまわない。
ステップ90において、CPU30は、上記ステップ84で算出された仮想空間位置を中心とした領域A内(典型的には、当該仮想空間位置を中心とする所定半径R1の円領域内であるが、円領域でなくてもよい)に、チームXの選手キャラクタが配置されているか否かを判断し、当該判断がYesの場合には当該選択キャラクタを選択する(複数の選手キャラクタが該当する場合には、当該仮想空間位置に一番近い選手キャラクタを選択する)。また、CPU30は、領域A内にチームXの選手キャラクタが配置されていない場合、上記ステップ84で算出された仮想空間位置を中心とした領域B内(典型的には、当該仮想空間位置を中心とする所定半径R2(>R1)の円領域内であるが、円領域でなくてもよい)に、チームXの選手キャラクタが配置されているか否かを判断し、当該判断がYesの場合には当該選択キャラクタを選択する(ステップ92)(複数の選手キャラクタが該当する場合には、当該仮想空間位置に一番近い選手キャラクタを選択してもよいし、当該複数の選手キャラクタの全てまたは複数を選択してもよい)。そして、CPU30は、領域A内にチームXの選手キャラクタが配置されている場合(ステップ90でYes)、次のステップ91に処理を進める。また、CPU30は、領域B内にチームXの選手キャラクタが配置されている場合(ステップ92でYes)、次のステップ93に処理を進める。さらに、CPU30は、領域Aおよび領域B内の何れにもチームXの選手キャラクタが配置されていない場合(ステップ90およびステップ92でNo)、次のステップ94に処理を進める。例えば、図27に示すように、領域Aおよび領域Bは、仮想空間位置TPを中心とした円形の領域でそれぞれ形成され、領域Aより領域Bが大きい。そして、CPU30は、最新の位置データDhを参照して、仮想ゲーム空間における各選手キャラクタの配置位置に基づいて、領域Aおよび領域B内に配置された選手キャラクタを判断する。
ステップ91において、CPU30は、ステップ90で選択された選手キャラクタの配置位置に応じて、ボール移動ベクトルを設定して、移動ベクトルデータDcを更新する。例えば、CPU30は、現在のボールオブジェクトBの位置から当該選手キャラクタの配置位置へ向かう方向をボール移動ベクトルの方向とする。さらに、現在のボールオブジェクトBの位置から当該選手キャラクタの配置位置までの仮想距離に応じた大きさをボール移動ベクトルの大きさとして設定してもよい。そして、CPU30は、次のステップ95に処理を進める。
ステップ93において、CPU30は、ステップ92で選択された選手キャラクタの移動ベクトルを仮想空間位置TPに応じて設定して、移動ベクトルデータDcを更新する。例えば、CPU30は、ステップ92で選択された選手キャラクタの現在の配置位置から仮想空間位置TPに向かう方向を当該選手キャラクタの移動ベクトルの方向とする。さらに、当該現在の配置位置から仮想空間位置TPまでの仮想距離に応じた大きさを当該選手キャラクタの移動ベクトルの大きさとして設定してもよい。そして、CPU30は、次のステップ94に処理を進める。
ステップ94において、CPU30は、仮想空間位置TPに応じてボール移動ベクトル
を設定して、移動ベクトルデータDcを更新する。例えば、CPU30は、現在のボールオブジェクトBの位置から仮想空間位置TPへ向かう方向をボール移動ベクトルの方向とする。さらに、現在のボールオブジェクトBの位置から仮想空間位置TPまでの仮想距離に応じた大きさをボール移動ベクトルの大きさとして設定してもよい。そして、CPU30は、次のステップ95に処理を進める。
を設定して、移動ベクトルデータDcを更新する。例えば、CPU30は、現在のボールオブジェクトBの位置から仮想空間位置TPへ向かう方向をボール移動ベクトルの方向とする。さらに、現在のボールオブジェクトBの位置から仮想空間位置TPまでの仮想距離に応じた大きさをボール移動ベクトルの大きさとして設定してもよい。そして、CPU30は、次のステップ95に処理を進める。
このようにプレイヤがAボタンを押下しているときに行われる上記ステップ90〜ステップ94の処理によってボールオブジェクトBの移動ベクトルが設定され、当該ボールオブジェクトBの移動方向(さらには、付加的に移動速度)が決定されるため、いわゆるサッカーゲームにおいてボールをパスする方向が設定される。ここで、上述から明らかなように、コアユニット70で指し示された仮想空間位置TP近傍に自チームの選手が存在しない場合、ボールオブジェクトBがパスされる目標地点は仮想空間位置TPとなる。また、コアユニット70で指し示された仮想空間位置TP近傍である領域A内に自チームの選手が存在する場合、ボールオブジェクトBがパスされる目標地点は領域A内に存在する自チームの選手となる。さらに、コアユニット70で指し示された仮想空間位置TPから少し離れた領域B内に自チームの選手が存在する場合、ボールオブジェクトBがパスされる目標地点は仮想空間位置TPとなり、領域B内に存在する自チームの選手も仮想空間位置TPへ移動する。
ステップ95において、CPU30は、操作情報DaからチームXの選手モード用サブユニットから送信された操作情報に含まれる最新のサブ加速度データを参照する。そして、CPU30は、サブ加速度データが示すZ軸方向の加速度が負(つまり、Z軸負方向の加速度を検出)であるか否かを判断する(ステップ96)。そして、CPU30は、Z軸方向の加速度が負である場合、ボール移動ベクトルに垂直上方向のベクトルを加算する(ステップ97)。なお、当該加算するベクトルは、当該Z軸方向の加速度の大きさ(絶対値)に応じた大きさとしてもよい。そして、当該サブルーチンによる処理を終了して、上記ステップ17の処理へ進める。このステップ97の処理によって、プレイヤキャラクタPCがパスするボールオブジェクトBの軌道は、プレイヤがサブユニット76の前方を持ち上げるような動作を行う(つまり、Z軸負方向の加速度が生じる)ことによって、仮想ゲーム空間内で高く蹴る軌道となる。一方、CPU30は、Z軸方向の加速度が負でない場合、そのまま当該サブルーチンによる処理を終了して、上記ステップ17の処理へ進める。
このように、ステップ16におけるパス処理においては、プレイヤがAボタンのみを押下することによって、ボールオブジェクトBをキープするプレイヤキャラクタPCの位置からボールオブジェクトBが移動する動作を行う。そして、サブユニット76に設けられた方向指示部(スティック78a)でプレイヤキャラクタPCの移動方向(さらには、付加的に移動速度)が制御されながら、コアユニット70から得られる座標データ(第1座標データDa1および第2座標データDa2)によってボールオブジェクトBの移動方向(さらには、付加的に移動速度)が制御される。したがって、プレイヤは、2つのユニットを操作しながらそれぞれ別のキャラクタ(オブジェクト)を操作することが可能である。つまり、プレイヤは、第1キャラクタ(プレイヤキャラクタPC)の移動方向制御と当該第1キャラクタの位置(正確には、第1キャラクタの位置に付随して決定される第2キャラクタの位置)から移動する第2キャラクタ(ボールオブジェクトB)の移動方向制御とを、効率的かつ直感的に独立して入力することができる。また、プレイヤキャラクタPCを移動させる操作とパス方向を決定する操作とが独立している(さらには、プレイヤキャラクタPCを移動させる操作にかかるハウジング77とパス方向を決定する操作にかかるハウジング71とが独立している)ため、自由度が高くリアルなサッカーゲームが実現できる。
また、第2キャラクタ(ボールオブジェクトB)の移動制御について、コアユニット70による指示座標により決定された第1方向ベクトルに、サブユニット76の加速度センサ761の出力に応じて決定される第2方向ベクトルを加えて、第2キャラクタの移動方向ベクトルとする。具体的には以下のようにすることができる。
第2キャラクタの移動方向ベクトルを算出する第1の例として、加速度センサ761のX軸、Y軸、Z軸をそれぞれ、所定座標系のX軸、Y軸、Z軸に対応付けた(または前進方向とそれに直交する2方向に対応付けて)加速度センサ761の出力ベクトルを、仮想ゲーム空間の方向ベクトルに変換する。そして、上記方向ベクトルを第2方向ベクトルとして、当該第2方向ベクトルを第1方向ベクトルに加算する。上記第2方向ベクトルの大きさは、固定値でもよいし、上記出力ベクトルの大きさに応じて決めても良い。
第2キャラクタの移動方向ベクトルを算出する第2の例として、加速度センサ761の所定方向(例えば、X軸方向)の出力値が所定値以上のときに、所定座標系の対応する方向(例えば、X軸方向)の第2方向ベクトルを、第1方向ベクトルに加算する。
第2キャラクタの移動方向ベクトルを算出する第3の例として、加速度センサ761の所定方向(例えば、X軸方向)の出力値に応じた大きさで、所定座標系の対応する方向(例えば、X軸方向)の第2方向ベクトルを、第1方向ベクトルに加算する。
なお、第2キャラクタの移動方向ベクトルを算出する第2および第3の例について、複数の方向について実施してもよい。すなわち、例えば、第3の例について、加速度センサ761のX軸方向の出力値に応じた大きさで、所定座標系のX軸方向の第2方向ベクトルを第1方向ベクトルに加算し、さらに、加速度センサ761のY軸方向の出力値に応じた大きさで所定座標系のY軸方向の第2方向ベクトルを当該第1方向ベクトルに加算してもよい。
なお、上記所定座標系は、プレイヤキャラクタPCのローカル座標系でもよいし、仮想ゲーム空間の座標系でもよいし(この場合、第2方向ベクトルは、典型的には仮想垂直方向や仮想水平方向などとなる)、カメラ座標系であってもよいし、カメラ座標系を仮想水平面に投影した座標系であってもよいし、方向指示部により決定される移動方向に基づく座標系(例えば、上記第2方向ベクトルが当該移動方向に直交する方向など)であってもよい。
これらにより、コアユニット70による指示座標によりキャラクタの移動方向を制御しつつ、サブユニットを傾けたり動かしたりすることによりその方向を補正するような操作が実現できる。
次に、図21を参照して、上記ステップ17における第1シュート処理について、詳細な動作を説明する。
図21において、CPU30は、操作情報DaからチームXの選手モード用コアユニットから送信された操作情報に含まれる最新のコアキーデータを参照する(ステップ101)。次に、CPU30は、上記ステップ101で参照したコアキーデータに基づいて、プレイヤがコアユニット70の操作部72d(Aボタン)および操作部72i(Bボタン)を同時に押下しているか否かを判断する(ステップ102)。そして、CPU30は、プレイヤがAおよびBボタンを同時に押下している場合、次のステップ103に処理を進める。一方、CPU30は、プレイヤがAおよびBボタンを同時に押下していない場合、当該サブルーチンによる処理を終了して、上記ステップ18の処理へ進める。
ステップ103において、CPU30は、操作情報DaからチームXの選手モード用コアユニットから送信された操作情報に含まれる最新のコア加速度データを参照する。そして、CPU30は、コア加速度データに応じて、ボール移動ベクトルを算出して、移動ベクトルデータDcを更新し(ステップ104)、処理を次のステップに進める。例えば、CPU30は、ボールオブジェクトBをキープしているプレイヤキャラクタPCの前方方向(例えば、移動方向;すなわち、PCの移動方向ベクトルの方向)で、参照したコア加速度データに含まれるZ軸方向の加速度の大きさに応じた大きさのボール移動ベクトルを算出する。
これにより、サブユニット76に設けられた方向指示部(スティック78a)でボールオブジェクトBの移動方向が制御されながら、ボールオブジェクトBの移動速度がコアユニット70に設けられた加速度センサ701から出力される加速度データに応じて決定される。つまり、プレイヤは、ボールオブジェクトBの移動方向制御と移動速度制御とを、それぞれの手で独立して効率的かつ直感的に入力することができる。さらに、サブユニット76に設けられた方向指示部(スティック78a)の傾斜量に応じてボールオブジェクトBの移動速度を制御するようにして、ボールオブジェクトBの移動速度をサブユニット76に設けられた加速度センサ761から出力される加速度データ(または当該加速度データの所定軸方向の成分)に応じて補正するようにしてもよい(例えば、Z軸方向の加速度があったときに、所定値を加算してもよいし、n倍(n>1)するようにしてもよいし、Z軸方向の加速度の大きさに応じて倍数を決定するようにしてもよい)。つまり、プレイヤは、ボールオブジェクトBの移動方向制御と移動速度制御(または移動速度補正制御)とを、それぞれの手で独立して効率的かつ直感的に入力することができる。
次に、CPU30は、操作情報DaからチームXの選手モード用サブユニットから送信された操作情報に含まれる最新のサブ加速度データを参照する(ステップ105)。そして、CPU30は、サブ加速度データが示すZ軸方向の加速度が負(つまり、Z軸負方向の加速度を検出)であるか否かを判断する(ステップ106)。そして、CPU30は、Z軸方向の加速度が負である場合、仮想ゲーム空間に対する垂直上方向のベクトルを、ボール移動ベクトルに加えて移動ベクトルデータDcを更新し(ステップ107)、次のステップ108に処理を進める。なお、当該加える垂直上方向のベクトルは、当該Z軸方向の加速度の大きさに応じた大きさとしてもよい。一方、CPU30は、Z軸方向の加速度が負でない場合、そのまま次のステップ108へ処理を進める。
ステップ108において、CPU30は、上記ステップ105で参照したサブ加速度データが示すX軸方向の加速度データに応じてボール移動ベクトルを変更し、処理を次のステップに進める。例えば、CPU30は、仮想水平面に平行で当該ボール移動ベクトルに直交する方向(向きは、X軸方向の加速度データの正負で決定する)で当該X軸方向の加速度の大きさに応じた大きさのベクトルを、現在のボール移動ベクトルに加えて、移動ベクトルデータDcを更新する。
これにより、サブユニット76に設けられた方向指示部(スティック78a)でボールオブジェクトBの移動方向が制御されながら、ボールオブジェクトBの移動方向がサブユニット76に設けられた加速度センサ761から出力される加速度データに応じて補正される。つまり、プレイヤは、ボールオブジェクトBの移動方向制御と移動方向補正制御とを、片手で効率的かつ直感的に入力することができる。また、補正ベクトルの向きは、仮想ゲーム空間における固定方向(仮想垂直方向、仮想水平方向など)であってもよいし、仮想カメラの視線方向に基づく方向(当該視線方向または当該視線方向に直交する方向など)であってもよいし、方向指示部により決定される移動方向に基づく方向(当該移動方向に直交する方向など)であってもよいし、プレイヤキャラクタPCのローカル座標系における所定軸方向であってもよい。
次に、CPU30は、操作情報DaからチームXの選手モード用コアユニットから送信された操作情報に含まれるコア加速度データの履歴を参照し、XYZ軸方向それぞれに生じた直近の所定時間分の加速度平均を算出する(ステップ109)。そして、CPU30は、上記ステップ109で算出したZ軸方向の加速度平均の大きさが所定値以上か否かを判断する(ステップ110)。そして、CPU30は、Z軸方向の加速度平均の大きさが所定値以上である場合、ステップ111に処理を進める。一方、CPU30は、Z軸方向の加速度平均の大きさが所定値未満である場合、ステップ112に処理を進める。
ステップ111において、CPU30は、ボール移動ベクトルの大きさを増加させる。例えば、所定値を加算してもよいし、n倍(n>1)してもよいし、上記ステップ109で算出したZ軸方向の加速度平均の大きさに応じて増加させてもよい。
ステップ112において、CPU30は、上記ステップ109で算出したY軸方向の加速度平均の大きさが所定値以上か否かを判断する。なお、図5等から明らかなように、コアユニット70を水平に保持した場合、重力加速度がY軸負方向に常に作用するため、ステップ112における判定基準は、当該重力加速度を考慮した所定値を設定するのが好ましい。そして、CPU30は、Y軸方向の加速度平均の大きさが所定値以上である場合、ステップ113に処理を進める。一方、CPU30は、Y軸方向の加速度平均の大きさが所定値未満である場合、ステップ114に処理を進める。
ステップ113において、CPU30は、垂直上方向のベクトルを、ボール移動ベクトルに加えて移動ベクトルデータDcを更新し、次のステップ114に処理を進める。当該垂直上方向のベクトルの大きさは、固定の大きさでもよいし、上記ステップ109で算出したY軸方向の加速度平均の大きさに応じた大きさでもよい。
ステップ114において、CPU30は、上記ステップ109で算出したX軸方向の加速度平均の大きさが所定値以上か否かを判断する。そして、CPU30は、X軸方向の加速度平均の大きさが所定値以上である場合、ステップ115に処理を進める。一方、CPU30は、X軸方向の加速度平均の大きさが所定値未満である場合、当該サブルーチンによる処理を終了して、上記ステップ18の処理へ進める。
ステップ115において、CPU30は、仮想水平面に平行で当該ボール移動ベクトルに直交する方向(向きは、X軸方向の加速度平均の正負で決定する)のベクトルを、現在のボール移動ベクトルに加えて、移動ベクトルデータDcを更新する。そして、CPU30は、当該サブルーチンによる処理を終了して、上記ステップ18の処理へ進める。なお、上記直交する方向のベクトルの大きさは、上記ステップ109で算出したX軸方向の加速度平均の大きさに応じた大きさとしてもよい。
このように、所定操作ボタン(上述の例ではコアユニット70の操作ボタンとしたがサブユニット76の操作ボタンでもよい)を操作したときにキャラクタ(ボールオブジェクトB)が移動開始し、当該移動方向がサブユニット76の方向指示部による指示方向に基づいて決定される。さらに、上記移動方向は、上記所定操作ボタンを操作する前のコアユニット70の加速度センサ701の出力に応じて補正される(典型的には、上記所定操作ボタンを操作する前の、直近の所定時間における加速度センサ701の出力を利用する)。これにより、プレイヤは、ボールオブジェクトBの移動方向制御と移動方向補正制御とを、それぞれの手で独立して効率的かつ直感的に入力することができる。なお、上記移動方向を、上記所定操作ボタンを操作する前の加速度センサ761の出力に応じて補正するようにしてもよい。また、補正ベクトルの向きは、仮想ゲーム空間の座標系における所定方向(典型的には、いずれかの軸の方向)であってもよいし、カメラ座標系における所定方向であってもよいし、ローカル座標系における所定方向であってもよいし、カメラ座標系を仮想水平面に投影した座標系であってもよいし、方向指示部により決定される移動方向に基づく方向(当該移動方向に直交する方向など)であってもよい。これにより、プレイヤは、ボールオブジェクトBの移動方向制御と移動方向補正制御とを、効率的かつ直感的に入力することができる。
また、ステップ17における第1シュート処理においては、プレイヤがAおよびBボタンを同時に押下することによって、ボールオブジェクトBをキープするプレイヤキャラクタPCがシュートする動作を行う。そして、プレイヤキャラクタPCがシュートする初速度および初期方向は、プレイヤキャラクタPCが向く方向と、コアユニット70から得られるコア加速度データが示す加速度の大きさと、サブユニット76から得られるサブ加速度データが示す加速度の大きさとによって決定される。つまり、プレイヤキャラクタPCがシュートする初期軌道は、単純なボタン操作のみによって決定されるものではなく、プレイヤがシュート操作を行ったときのコアユニット70およびサブユニット76全体の動作に応じて決定される。したがって、プレイヤは、コアユニット70およびサブユニット76全体を動かしながら、自由度のあるシュートを放つことが可能でありリアルなサッカーゲームが実現できる。
次に、図22を参照して、上記ステップ18における第2シュート処理について、詳細な動作を説明する。
図22において、CPU30は、操作情報DaからチームXの選手モード用コアユニットから送信された操作情報に含まれるコアキーデータの履歴を参照する(ステップ121)。次に、CPU30は、上記ステップ121で参照したコアキーデータに基づいて、プレイヤがコアユニット70の操作部72d(Aボタン)および操作部72i(Bボタン)を同時に押下してから所定時間内か否かを判断する(ステップ122)。そして、CPU30は、プレイヤがAおよびBボタンを同時に押下してから所定時間内の場合、次のステップ123に処理を進める。一方、CPU30は、プレイヤがAおよびBボタンを同時に押下してから所定時間内でない場合、当該サブルーチンによる処理を終了して、上記ステップ19の処理へ進める。
ステップ123において、CPU30は、操作情報DaからチームXの選手モード用コアユニットから送信された操作情報に含まれる最新のコア加速度データを参照する。そして、CPU30は、上記ステップ123で参照したコア加速度データが示すZ軸方向の加速度の大きさが所定値以上か否かを判断する(ステップ124)。そして、CPU30は、Z軸方向の加速度の大きさが所定値以上である場合、ステップ125に処理を進める。一方、CPU30は、Z軸方向の加速度の大きさが所定値未満である場合、ステップ126に処理を進める。
ステップ125において、CPU30は、ボール移動ベクトルの大きさを増加させる。例えば、所定値を加算してもよいし、n倍(n>1)してもよいし、上記ステップ123で参照したコア加速度データが示すZ軸方向の加速度の大きさに応じて増加させてもよい。
ステップ126において、CPU30は、上記ステップ123で参照したコア加速度データが示すY軸方向の加速度の大きさが所定値以上か否かを判断する。なお、図5等から明らかなように、コアユニット70を水平に保持した場合、重力加速度がY軸負方向に常に作用するため、ステップ126における判定基準も、当該重力加速度を考慮した所定値を設定するのが好ましい。そして、CPU30は、Y軸方向の加速度の大きさが所定値以上である場合、ステップ127に処理を進める。一方、CPU30は、Y軸方向の加速度の大きさが所定値未満である場合、ステップ128に処理を進める。
ステップ127において、CPU30は、仮想ゲーム空間に対する垂直上方向のベクトルを、ボール移動ベクトルに加えて移動ベクトルデータDcを更新し、次のステップ128に処理を進める。ここで、当該垂直方向のベクトルの大きさは固定の大きさとしてもよいし、上記ステップ123で参照したコア加速度データが示すY軸方向の加速度の大きさに応じた大きさとしてもよい。
ステップ128において、CPU30は、上記ステップ123で参照したコア加速度データが示すX軸方向の加速度の大きさが所定値以上か否かを判断する。そして、CPU30は、X軸方向の加速度の大きさが所定値以上である場合、ステップ129に処理を進める。一方、CPU30は、X軸方向の加速度の大きさが所定値未満である場合、当該サブルーチンによる処理を終了して、上記ステップ19の処理へ進める。
ステップ129において、CPU30は、仮想水平面に平行で当該ボール移動ベクトルに直交する方向(向きは、X軸方向の加速度の正負で決定する)のベクトルを、現在のボール移動ベクトルに加えて、移動ベクトルデータDcを更新する。ここで、上記直交する方向のベクトルの大きさは固定の大きさとしてもよいし、上記ステップ123で参照したコア加速度データが示すX軸方向の加速度の大きさに応じた大きさとしてもよい。そして、CPU30は、当該サブルーチンによる処理を終了して、上記ステップ19の処理へ進める。
このように、所定操作ボタン(上述の例ではコアユニット70の操作ボタンとしたがサブユニット76の操作ボタンでもよい)を操作したときにキャラクタ(ボールオブジェクトB)が移動開始し、当該移動方向がサブユニット76の方向指示部による指示方向に基づいて決定される。さらに、上記移動方向は、上記所定操作ボタンを操作した後におけるコアユニット70の加速度センサ701の出力に応じて補正される(典型的には、上記所定操作ボタンを操作した直後の直近の所定時間における加速度センサ701の出力を利用する)。これにより、プレイヤは、ボールオブジェクトBの移動方向制御と移動方向補正制御とを、それぞれの手で独立して効率的かつ直感的に入力することができる。なお、上記移動方向を、上記所定操作ボタンを操作した後のおける加速度センサ761の出力に応じて補正するようにしてもよい。また、仮想ゲーム空間の座標系における所定方向(典型的には、いずれかの軸の方向)であってもよいし、カメラ座標系における所定方向であってもよいし、ローカル座標系における所定方向であってもよいし、カメラ座標系を仮想水平面に投影した座標系であってもよいし、方向指示部により決定される移動方向に基づく方向(当該移動方向に直交する方向など)であってもよい。これにより、プレイヤは、ボールオブジェクトBの移動方向制御と移動方向補正制御とを、効率的かつ直感的に入力することができる。
このように、ステップ18における第2シュート処理においては、プレイヤがAおよびBボタンを同時に押下してシュート操作した後のボールの軌道は、コアユニット70から得られるコア加速度データに応じて、移動速度、移動方向、移動距離等が決定される。例えば、図28に示すように、ボールオブジェクトBのボール移動ベクトルVmbによって決定された軌道aは、コアユニット70から得られるコア加速度データに応じて軌道bや軌道cのように変化させることが可能である。つまり、プレイヤキャラクタPCの移動制御が方向入力で行われながら、シュートした後の軌道が単純なボタン操作のみによって決定されるものではなく、プレイヤがシュート操作を行った後のコアユニット70全体の動作に応じて決定される。したがって、プレイヤは、プレイヤキャラクタPCの移動方向を制御しつつ、コアユニット70全体を動かしながら直感的にシュート軌道を変化させるこ
とができ、リアルなサッカーゲームが実現できる。
とができ、リアルなサッカーゲームが実現できる。
次に、図23を参照して、上記ステップ19における一時監督モード処理について、詳細な動作を説明する。
図23において、CPU30は、操作情報DaからチームXの選手モード用コアユニットから送信された操作情報に含まれる最新のコアキーデータを参照する(ステップ131)。次に、CPU30は、上記ステップ131で参照したコアキーデータに基づいて、プレイヤがコアユニット70の操作部72a(十字キー)の上方向を押下しているか否かを判断する(ステップ132)。そして、CPU30は、プレイヤが十字キーの上方向を押下している場合、次のステップ133に処理を進める。一方、CPU30は、プレイヤが十字キーの上方向を押下していない場合、次のステップ136に処理を進める。
ステップ133において、CPU30は、操作情報DaからチームXの選手モード用コアユニットから送信された操作情報に含まれる最新のコア加速度データを参照する。次に、CPU30は、コア加速度データが示すX軸方向の加速度の大きさが所定値以上であるか否かを判断する(ステップ134)。そして、CPU30は、X軸方向の加速度の大きさが所定値以上である場合、次のステップ135に処理を進める。一方、CPU30は、X軸方向の加速度の大きさが所定値未満である場合、次のステップ136に処理を進める。
ステップ135において、CPU30は、上記ステップ133で参照したコア加速度データが示すX軸方向の加速度の大きさに基づいて、チームXのノンプレイヤキャラクタNPC全ての移動ベクトルを更新して、移動ベクトルデータDcを更新し、次のステップ136に処理を進める。例えば、図29に示すように、CPU30は、仮想ゲーム空間に設定されたサッカーフィールドのタッチラインと平行な方向の補正ベクトルを、チームXのノンプレイヤキャラクタNPC全ての移動ベクトルに加え、新たな移動ベクトルVmnpcを算出する。上記補正ベクトルは、固定の大きさとしてもよいし、上記X軸方向の加速度の大きさに応じた大きさとしてもよい。なお、補正ベクトルの方向を、コア加速度データが示す加速度の方向に応じて決定してもよい。この場合、以下のような例が考えられる。
補正ベクトルの方向を決定する第1の例として、コア加速度データの各軸を、それぞれ、仮想ゲーム空間座標の直交する3方向に対応付けて(典型的には、仮想空間座標の各軸に対応付けて)、コア加速度データの出力ベクトルを、仮想ゲーム空間の方向ベクトルに変換する。
補正ベクトルの方向を決定する第2の例として、コア加速度データの各軸を、それぞれ、所定キャラクタ(プレイヤキャラクタPCなど)のローカル座標系の各軸に対応付けて、コア加速度データの出力ベクトルを、仮想ゲーム空間の方向ベクトルに変換する。
補正ベクトルの方向を決定する第3の例として、コア加速度データの各軸を、それぞれ、カメラ座標系の各軸(またはカメラ座標系のX、Z軸を仮想水平面に投影した軸)に対応付けて、コア加速度データの出力ベクトルを、仮想空間の方向ベクトルに変換する。
補正ベクトルの方向を決定する第4の例として、コア加速度データの各軸を、所定キャラクタの移動方向ベクトル(または向きベクトル)とそれに直交する2方向とに対応付けて、コア加速度データの出力ベクトルを、仮想ゲーム空間の方向ベクトルに変換する。
なお、上記ステップ135の処理においては、コア加速度データの代わりに、サブ加速
度データの出力を利用しても良い。
度データの出力を利用しても良い。
また、上記ステップ135の処理においては、チームXのプレイヤキャラクタPCの移動ベクトルについても、同様のベクトル加算を行って更新してもかまわない。また、チームXのノンプレイヤキャラクタNPCの何れか(例えば、チームXのゴールキーパー)を、ベクトル加算の対象から外してもかまわない。また、上述した処理では、タッチラインと平行な方向でX軸方向の加速度の大きさに応じた大きさのベクトルを加算する例を示したが、当該ベクトルをそのままチームXのノンプレイヤキャラクタNPC全ての移動ベクトルに設定してもかまわない。さらに、加算するベクトルの方向は、仮想カメラの視線方向ベクトルを仮想ゲーム空間の仮想水平面に投影した方向に対して垂直な水平方向や、当該視線方向を基準とした他の方向に設定してもかまわない。また、一般的に、コアユニット70をある方向に動かし始めのときに加速度センサ701によって検出される加速度ベクトルの方向は、当該動かす方向とは反対方向であるので、そのときに検出された加速度ベクトルの方向を反対にして利用してもかまわない。また、コアユニット70をある方向に動かした後、その動きを止めたときに加速度センサ701によって検出される加速度ベクトルの方向は、当該動かす方向であるので、そのときの検出を使用してもかまわない。この点は、本願明細書の他の箇所に記載した同様の処理についても同じである。
このように、プレイヤキャラクタPCの移動方向がサブユニット76のスティック78aによって制御され、複数のノンプレイヤキャラクタNPC(プレイヤキャラクタPCを含めても良い)の移動方向がコアユニット70から得られるコア加速度データ(またはサブ加速度データでもよい)に応じて制御される。つまり、プレイヤは、方向指示手段で特定キャラクタの移動方向を制御しながら、コアユニット70全体(またはサブユニット76全体)の動作によって複数のキャラクタの移動方向の制御を行うことができる。したがって、プレイヤは、特定キャラクタの移動方向を方向指示手段で制御しながら、複数のキャラクタの移動方向も直感的に操作することができる。
ステップ136において、CPU30は、上記ステップ131で参照したコアキーデータに基づいて、プレイヤがコアユニット70の十字キーの下方向を押下しているか否かを判断する。そして、CPU30は、プレイヤが十字キーの下方向を押下している場合、次のステップ137に処理を進める。一方、CPU30は、プレイヤが十字キーの下方向を押下していない場合、当該サブルーチンによる処理を終了して、次のステップ20に処理を進める。
ステップ137において、CPU30は、操作情報DaからチームXの選手モード用コアユニットから送信された操作情報に含まれる最新の第1座標データDa1および第2座標データDa2を参照する。次に、CPU30は、上記ステップ137で参照した第1座標データDa1および第2座標データDa2に対応する指示座標、および当該指示座標に対応する仮想空間位置を算出して、それぞれチームXの選手モード用コアユニットに対応する指示座標データDeおよび仮想空間位置座標データDfを更新して(ステップ138)、処理を次のステップに進める。なお、上記ステップ138で算出する指示座標および仮想空間位置の算出方法については、上記ステップ84と同様であるため、詳細な説明を省略する。
次に、CPU30は、指示対象選手データDgを参照して、チームXの選手モード用コントローラ7の指示対象選手が設定されているか否かを判断する(ステップ139)。そして、CPU30は、指示対象選手が未設定の場合、次のステップ141に処理を進める。一方、CPU30は、指示対象選手が設定されている場合、次のステップ143に処理を進める。
ステップ141において、CPU30は、上記ステップ138で算出された仮想空間位置を中心とした領域A(図27参照)内に、チームXの選手キャラクタのいずれかが配置されているか否かを判断する。次に、CPU30は、領域A内にチームXの選手キャラクタが配置されている場合、当該選手キャラクタをチームXの選手モード用コントローラ7の指示対象選手に設定して、そのキャラクタ識別番号等を指示対象選手データDgに記述する(ステップ142)。なお、上記領域A内にチームXの選手キャラクタが複数存在する場合には、ステップ138で算出された仮想空間位置に最も近い選手キャラクタが指示対象選手に設定される。そして、CPU30は、当該サブルーチンによる処理を終了して、次のステップ20に処理を進める。一方、CPU30は、領域A内にチームXの選手キャラクタが1人も配置されていない場合、そのまま当該サブルーチンによる処理を終了して、次のステップ20に処理を進める。
ステップ143において、CPU30は、算出された仮想空間座標が仮想ゲーム空間に設定されたサッカーフィールド内か否かを判断する。次に、CPU30は、仮想空間座標が上記サッカーフィールド内である場合、仮想空間位置に応じて指示対象選手の移動ベクトルを設定して移動ベクトルデータDcを更新する(ステップ144)。例えば、CPU30は、指示対象選手の現在の配置位置から仮想空間位置TP(図27参照)に向かう方向を当該指示対象選手の移動ベクトルの方向とする。さらに、現在の配置位置から仮想空間位置TPまでの仮想距離に応じた大きさを当該指示対象選手の移動ベクトルの大きさとして設定してもよい。そして、CPU30は、指示対象選手データDgに記述されたチームXの選手モード用コントローラの指示対象選手をクリアし(ステップ145)、当該サブルーチンによる処理を終了して、次のステップ20に処理を進める。一方、CPU30は、仮想空間座標が上記サッカーフィールド外である場合、そのまま当該サブルーチンによる処理を終了して、次のステップ20に処理を進める。なお、ステップ145において、指示対象選手をクリアしなくてもよく、この場合には、指示対象選手を設定した後、その指示対象選手に対して複数回移動指示を出すことが可能になる(この場合には、ボタン操作や所定領域への座標指示などに応じて当該クリアの処理をするとよい)。
次に、図24を参照して、上記ステップ20における監督モード処理について、詳細な動作を説明する。
図24において、CPU30は、コントローラ識別番号データDbを参照して、チームXについて監督モード用のコントローラ識別番号が設定されているか否かを判断する(ステップ151)。そして、CPU30は、チームXについて監督モード用のコントローラ識別番号が設定されている場合、次のステップ152に処理を進める。一方、CPU30は、チームXについて監督モード用のコントローラ識別番号が設定されていない場合、当該サブルーチンによる処理を終了して、次のステップ21に処理を進める。
ステップ152において、CPU30は、操作情報DaからチームXの監督モード用コアユニットから送信された操作情報に含まれる最新のコア加速度データを参照する。次に、CPU30は、コア加速度データが示すX軸方向の加速度の大きさが所定値以上であるか否かを判断する(ステップ153)。そして、CPU30は、X軸方向の加速度の大きさが所定値以上である場合、次のステップ154に処理を進める。一方、CPU30は、X軸方向の加速度の大きさが所定値未満である場合、次のステップ155に処理を進める。
ステップ154において、CPU30は、上記ステップ152で参照したコア加速度データが示すX軸方向の加速度の大きさに基づいて、チームXのノンプレイヤキャラクタNPC全ての移動ベクトルを更新して、移動ベクトルデータDcを更新し、次のステップ155に処理を進める。例えば、図29に示すように、CPU30は、仮想ゲーム空間に設定されたサッカーフィールドのタッチラインと平行な方向の補正ベクトルを、チームXのノンプレイヤキャラクタNPC全ての移動ベクトルに加え、新たな移動ベクトルVmnpcを算出する。上記補正ベクトルは、固定の大きさとしてもよいし、当該X軸方向の加速度の大きさに応じた大きさとしてもよい。なお、補正ベクトルの方向を、コア加速度データが示す加速度の方向に応じて決定してもよい。具体的には上述した補正ベクトルの方向を決定する第1〜第4の例と同様である。
なお、上記ステップ154の処理においても上記ステップ135の処理と同様に、チームXのプレイヤキャラクタPCの移動ベクトルについても、同様のベクトル加算を行って更新してもかまわない。また、チームXのノンプレイヤキャラクタNPCの何れか(例えば、チームXのゴールキーパー)を、ベクトル加算の対象から外してもかまわない。また、上述した処理では、タッチラインと平行な方向でX軸方向の加速度の大きさに応じた大きさのベクトルを加算する例を示したが、当該ベクトルをそのままチームXのノンプレイヤキャラクタNPC全ての移動ベクトルに設定してもかまわない。さらに、加算するベクトルの方向は、仮想カメラの視線方向ベクトルを仮想ゲーム空間の仮想水平面に投影した方向に対して垂直な水平方向や、当該視線方向を基準とした他の方向に設定してもかまわない。
ステップ155において、CPU30は、操作情報DaからチームXの監督モード用コアユニットから送信された操作情報に含まれる最新の第1座標データDa1および第2座標データDa2を参照する。次に、CPU30は、上記ステップ155で参照した第1座標データDa1および第2座標データDa2に対応する指示座標、および当該指示座標に対応する仮想空間位置を算出して、それぞれチームXの監督モード用コアユニットに対応する指示座標データDeおよび仮想空間位置座標データDfを更新して(ステップ156)、処理を次のステップに進める。なお、上記ステップ156で算出する指示座標および仮想空間位置の算出方法については、上記ステップ84と同様であるため、詳細な説明を省略する。
次に、CPU30は、指示対象選手データDgを参照して、チームXの監督モード用コントローラ7の指示対象選手が設定されているか否かを判断する(ステップ157)。そして、CPU30は、指示対象選手が未設定の場合、次のステップ158に処理を進める。一方、CPU30は、指示対象選手が設定されている場合、次のステップ160に処理を進める。
ステップ158において、CPU30は、上記ステップ156で算出された仮想空間位置を中心とした領域A(図27参照)内に、チームXの選手キャラクタのいずれかが配置されているか否かを判断する。次に、CPU30は、領域A内にチームXの選手キャラクタが配置されている場合、当該選手キャラクタをチームXの監督モード用コントローラの指示対象選手に設定して、そのキャラクタ識別番号等を指示対象選手データDgに記述する(ステップ159)。なお、上記領域A内にチームXの選手キャラクタが複数存在する場合には、ステップ138で算出された仮想空間位置に最も近い選手キャラクタが指示対象選手に設定される。そして、CPU30は、当該サブルーチンによる処理を終了して、次のステップ21に処理を進める。一方、CPU30は、領域A内にチームXの選手キャラクタが1人も配置されていない場合、そのまま当該サブルーチンによる処理を終了して、次のステップ21に処理を進める。
ステップ160において、CPU30は、算出された仮想空間座標が仮想ゲーム空間に設定されたサッカーフィールド内か否かを判断する。次に、CPU30は、仮想空間座標が上記サッカーフィールド内である場合、仮想空間位置に応じて指示対象選手の移動ベク
トルを設定して移動ベクトルデータDcを更新する(ステップ161)。例えば、CPU30は、指示対象選手の現在の配置位置から仮想空間位置TP(図27参照)に向かう方向を当該指示対象選手の移動ベクトルの方向とする。さらに、現在の配置位置から仮想空間位置TPまでの仮想距離に応じた大きさを当該指示対象選手の移動ベクトルの大きさとして設定してもよい。そして、CPU30は、指示対象選手データDgに記述されたチームXの監督モード用コントローラの指示対象選手をクリアし(ステップ162)、当該サブルーチンによる処理を終了して、次のステップ21に処理を進める。一方、CPU30は、仮想空間座標が上記サッカーフィールド外である場合、そのまま当該サブルーチンによる処理を終了して、次のステップ21に処理を進める。なお、ステップ162において、指示対象選手をクリアしなくてもよく、この場合には、指示対象選手を設定した後、その指示対象選手に対して複数回移動指示を出すことが可能になる(この場合には、ボタン操作や所定領域への座標指示などに応じて当該クリアの処理をするとよい)。
トルを設定して移動ベクトルデータDcを更新する(ステップ161)。例えば、CPU30は、指示対象選手の現在の配置位置から仮想空間位置TP(図27参照)に向かう方向を当該指示対象選手の移動ベクトルの方向とする。さらに、現在の配置位置から仮想空間位置TPまでの仮想距離に応じた大きさを当該指示対象選手の移動ベクトルの大きさとして設定してもよい。そして、CPU30は、指示対象選手データDgに記述されたチームXの監督モード用コントローラの指示対象選手をクリアし(ステップ162)、当該サブルーチンによる処理を終了して、次のステップ21に処理を進める。一方、CPU30は、仮想空間座標が上記サッカーフィールド外である場合、そのまま当該サブルーチンによる処理を終了して、次のステップ21に処理を進める。なお、ステップ162において、指示対象選手をクリアしなくてもよく、この場合には、指示対象選手を設定した後、その指示対象選手に対して複数回移動指示を出すことが可能になる(この場合には、ボタン操作や所定領域への座標指示などに応じて当該クリアの処理をするとよい)。
このように、ステップ20における監督モード処理においては、プレイヤが操作するコントローラ7を監督モードに設定することによって、チーム全体に対して総合的な操作が可能となる。具体的には、チーム内の複数のノンプレイヤキャラクタNPC(プレイヤキャラクタPCを含めても良い)の移動方向が、コアユニット70から得られるコア加速度データ(またはサブ加速度データでもよい)に応じて制御される。つまり、プレイヤは、コアユニット70全体(またはサブユニット76全体)の動作によって複数のキャラクタの移動方向の制御を行うことができる。したがって、プレイヤは、監督モードで複数のキャラクタの移動方向を直感的に操作することができる。
なお、上述したフローチャートの処理から明らかなように、ステップ19における一時監督モード処理では、十字キーを操作する手順が異なるが、他の処理についてはステップ20の監督モード処理と類似している。つまり、プレイヤが操作するコントローラ7が選手モードに設定されていても、十字キーの上下方向を操作することによって、上述した監督モードと同様の操作が可能になっている。
また、上記ステップ22の処理においては、移動ベクトルデータDcに記述された各移動ベクトルデータがそれぞれ所定量減衰するが、ノンプレイヤキャラクタNPCが所定の地点まで到達するまで継続して動作させたい場合、当該ノンプレイヤキャラクタNPCの移動ベクトルについては減衰しなくてもかまわない。例えば、指示対象選手をコアユニット70で指し示した仮想空間位置TPまで移動させたい場合、当該指示対象選手が仮想空間位置TPに到達するまで当該指示対象選手の移動ベクトルの大きさおよび方向を維持してもかまわない。
また、上述した説明では、表示画面に対して遠隔から座標指定するために、コアユニット70に設けられた撮像素子743で撮像対象を撮像した画像データを解析することによって、モニタ2の表示画面に対して座標指定する態様を用いた。この態様は、表示画面近傍に撮像対象となる2つのマーカを設置し、撮像手段およびその撮像方向を自在に変更可能なハウジングを備えたデバイスが撮像画像中の2つのマーカを検出し、当該撮像画像におけるマーカの位置に基づいて当該デバイスが指定する座標位置を導出するものである。しかしながら、他の態様で上記座標指定を行ってもかまわない。
例えば、表示画面近傍に設置する撮像対象は、上述した電気的なマーカ(LEDモジュール)の他に、光を反射する部材や特定色や特定形状を有する物理的なマーカでもかまわない。また、モニタ2の表示画面に撮像対象を表示してもかまわない。また、コアユニット70が備える撮像手段でラスタスキャン型モニタの走査線を読み取ることによって、当該モニタ自体を撮像対象にしてもかまわない。また、磁気発生装置を設け、当該磁気発生装置から生じる磁気を利用して遠隔から座標指定してもかまわない。この場合、コアユニット70には、上記磁気を検出するための磁気センサを設けることになる。
また、上述した説明では、2つのマーカ8Lおよび8Rからの赤外光を、コアユニット70の撮像情報演算部74の撮像対象としたが、他のものを撮像対象にしてもかまわない。例えば、1つまたは3つ以上のマーカをモニタ2の近傍に設置し、それらのマーカからの赤外光を撮像情報演算部74の撮像対象としてもかまわない。例えば、所定の長さを有する1つのマーカをモニタ2の近傍に設置しても、本発明を同様に実現することができる。また、モニタ2の表示画面自体や他の発光体(室内灯等)を撮像情報演算部74の撮像対象としてもかまわない。撮像対象とモニタ2の表示画面との配置関係に基づいて、当該表示画面に対するコアユニット70の位置を演算すれば、様々な発光体を撮像情報演算部74の撮像対象として用いることができる。
また、コアユニット70側にマーカ等の撮像対象を設けて、撮像手段をモニタ2側に設けてもかまわない。さらに他の例では、コアユニット70の前面から光を放射する機構を設けてもかまわない。この場合、コアユニット70およびモニタ2とは別の場所にモニタ2の表示画面を撮像する撮像装置を設置し、モニタ2の表示画面にコアユニット70から放射された光が反射した位置を当該撮像装置が撮像した画像から解析することによって、同様に表示画面に対して遠隔から座標指定するためのデータを出力可能なポインティングデバイスを構成することができる。
また、上述した説明では、コントローラ7とゲーム装置本体5とが無線通信によって接続された態様を用いたが、コントローラ7とゲーム装置本体5とがケーブルを介して電気的に接続されてもかまわない。この場合、コアユニット70とサブユニット76とが接続ケーブル79で接続され、コアユニット70とゲーム装置本体5とが別のケーブルで接続される。
また、上述したコントローラ7の形状や、それらに設けられている操作部72および78の形状、数、および設置位置等は、単なる一例に過ぎず他の形状、数、および設置位置であっても、本発明を実現できることは言うまでもない。
また、本発明のゲームプログラムは、光ディスク4等の外部記憶媒体を通じてゲーム装置本体5に供給されるだけでなく、有線または無線の通信回線を通じてゲーム装置本体5に供給されてもよい。また、ゲームプログラムは、ゲーム装置本体5内部の不揮発性記憶装置に予め記録されていてもよい。なお、ゲームプログラムを記憶する情報記憶媒体としては、CD−ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体の他に、不揮発性半導体メモリでもよい。
本発明に係るゲームシステムおよびゲームプログラムは、ゲームコントローラのハウジングをプレイヤが片手で把持して操作可能であるため、入力装置が小型であり扱いやすく、ゲーム装置本体等とゲームコントローラ等とが別体で構成されるゲームシステムや当該ゲーム装置本体で実行されるゲームプログラムとして有用である。
1…ゲームシステム
2…モニタ
2a、706…スピーカ
3…ゲーム装置
30…CPU
31…メモリコントローラ
32…GPU
33…メインメモリ
34…DSP
35…ARAM
36…コントローラI/F
37…ビデオI/F
38…フラッシュメモリ
39…オーディオI/F
40…ディスクドライブ
41…ディスクI/F
4…光ディスク
5…ゲーム装置本体
6…通信ユニット
7…コントローラ
70…コアユニット
71、77…ハウジング
72、78…操作部
73、791…コネクタ
74…撮像情報演算部
741…赤外線フィルタ
742…レンズ
743…撮像素子
744…画像処理回路
75…通信部
751…マイコン
2…モニタ
2a、706…スピーカ
3…ゲーム装置
30…CPU
31…メモリコントローラ
32…GPU
33…メインメモリ
34…DSP
35…ARAM
36…コントローラI/F
37…ビデオI/F
38…フラッシュメモリ
39…オーディオI/F
40…ディスクドライブ
41…ディスクI/F
4…光ディスク
5…ゲーム装置本体
6…通信ユニット
7…コントローラ
70…コアユニット
71、77…ハウジング
72、78…操作部
73、791…コネクタ
74…撮像情報演算部
741…赤外線フィルタ
742…レンズ
743…撮像素子
744…画像処理回路
75…通信部
751…マイコン
Claims (54)
- プレイヤが片手で把持可能な第1ハウジングを有するゲームコントローラと、当該ゲームコントローラと接続されるゲーム装置と、当該第1ハウジングの動きを検出する第1動き検出手段とを含むゲームシステムであって、
前記ゲームコントローラは、前記第1ハウジングに設けられ、方向指示入力するための方向指示部を備え、
前記ゲーム装置は、
前記方向指示部の操作に応じて、仮想ゲーム世界に登場する第1オブジェクトの移動方向を決定する第1移動方向制御手段と、
前記第1動き検出手段による検出に応じて、仮想ゲーム世界における前記第1オブジェクトの姿勢を決定する姿勢制御手段とを備える、ゲームシステム。 - 前記第1ハウジングは、当該第1ハウジングの側周をプレイヤが片手で握持可能な形状および大きさで形成される、請求項1に記載のゲームシステム。
- 前記第1ハウジングは、当該第1ハウジングの側周をプレイヤが片手で握持したときに、当該片手の親指で操作可能な位置に前記方向指示部が配設される、請求項2に記載のゲームシステム。
- 前記姿勢制御手段は、前記第1動き検出手段による検出に基づいて前記第1ハウジングの所定方向への傾きを判定して、仮想3次元ゲーム空間における所定方向への前記第1オブジェクトの傾きを決定する、請求項1に記載のゲームシステム。
- 前記第1動き検出手段は、前記第1ハウジングにおける所定軸を中心とした回転を少なくとも検出可能であり、
前記姿勢制御手段は、前記第1動き検出手段による検出に基づいて前記第1ハウジングの所定軸を中心とした回転を判定して、仮想3次元ゲーム空間における所定軸を中心とした前記第1オブジェクトの回転を決定する、請求項1に記載のゲームシステム。 - 前記姿勢制御手段は、前記第1動き検出手段による検出に基づいて前記第1ハウジングにおける所定方向の傾きおよび当該所定方向とは異なる方向の傾きのそれぞれを判定して、前記第1動き検出手段による検出のそれぞれに応じて、仮想3次元ゲーム空間における2方向への前記第1オブジェクトの傾きをそれぞれ決定する、請求項1に記載のゲームシステム。
- 前記姿勢制御手段は、前記第1動き検出手段による検出に基づいて前記第1ハウジングにおける所定軸を中心とした回転および当該所定軸とは異なる軸を中心とした回転のそれぞれを判定して、前記第1動き検出手段による検出のそれぞれに応じて、仮想3次元ゲーム空間における2軸を中心とした前記第1オブジェクトの回転をそれぞれ決定する、請求項1に記載のゲームシステム。
- 前記第1動き検出手段は、前記第1ハウジングに対して互いに直交する3方向に生じる加速度を検出可能であり、
前記姿勢制御手段は、前記第1動き検出手段による3方向の加速度の検出のそれぞれに応じて、仮想3次元ゲーム空間における前記第1オブジェクトの姿勢を示す3次元の姿勢ベクトルを決定する、請求項1に記載のゲームシステム。 - 前記第1動き検出手段は、前記第1ハウジングに対して互いに直交する3軸を中心とする回転を検出可能であり、
前記姿勢制御手段は、前記第1動き検出手段による3軸を中心とする回転の検出のそれぞれに応じて、仮想3次元ゲーム空間における前記第1オブジェクトの姿勢を示す3次元の姿勢ベクトルを決定する、請求項1に記載のゲームシステム。 - 前記第1動き検出手段は、前記第1ハウジングに対して互いに直交する3方向に生じる加速度値を検出可能であり、
前記姿勢制御手段は、前記第1動き検出手段による検出値のそれぞれに応じて、仮想3次元ゲーム空間における前記第1オブジェクトの姿勢を示す3次元の姿勢ベクトルの各成分値をそれぞれ決定する、請求項1に記載のゲームシステム。 - 前記第1動き検出手段は、前記第1ハウジングに対して互いに直交する2方向に生じる加速度値を検出可能であり、
前記姿勢制御手段は、前記第1動き検出手段による検出値のそれぞれに応じて、仮想3次元ゲーム空間における前記第1オブジェクトの姿勢を示す3次元の姿勢ベクトルの2成分値をそれぞれ決定する、請求項1に記載のゲームシステム。 - 前記第1移動方向制御手段は、仮想3次元ゲーム空間における第1方向を基準として、前記方向指示部による指示方向に応じた方向を前記移動方向として決定し、
前記姿勢制御手段は、前記第1動き検出手段の検出に基づいて前記第1ハウジングの所定方向の傾きを判定して、仮想3次元ゲーム空間における前記第1方向を基準とする方向への前記第1オブジェクトの傾きを決定する、請求項4に記載のゲームシステム。 - 前記第1移動方向制御手段は、仮想3次元ゲーム空間における第1方向を基準として、前記方向指示部による指示方向に応じた方向を前記移動方向として決定し、
前記姿勢制御手段は、前記第1動き検出手段の検出に基づいて前記第1ハウジングの所定軸を中心とする回転を判定して、前記第1動き検出手段による所定軸を中心とする回転の検出に応じて、仮想3次元ゲーム空間における前記第1方向軸を中心とする前記第1オブジェクトの回転を決定する、請求項5に記載のゲームシステム。 - 前記方向指示部は、少なくともスティックを前記第1ハウジングの前方向に傾倒させることにより前方向の指示入力が可能なものであり、
前記第1移動方向制御手段は、前記スティックが前記第1ハウジングの前方向に傾倒されたときに、前記第1オブジェクトを前記第1方向に移動させ、
前記姿勢制御手段は、前記第1動き検出手段の検出に基づいて前記第1ハウジングの前方向の傾きを判定して、前記第1動き検出手段により前記第1ハウジングが前方向に傾いたことが検出されたときに、前記第1オブジェクトを前記第1方向に傾ける、請求項12に記載のゲームシステム。 - 前記方向指示部は、少なくともスティックを前記第1ハウジングの左右方向に傾倒させることにより左右方向の指示入力が可能なものであり、
前記第1移動方向制御手段は、前記スティックが前記第1ハウジングの左右方向に傾倒されたときに、前記第1オブジェクトを前記第1方向を基準とする左右方向に移動させ、
前記姿勢制御手段は、前記第1動き検出手段の検出に基づいて前記第1ハウジングが左右方向に傾いたことを判定して、前記第1オブジェクトを前記第1方向を基準とする左右方向に傾ける、請求項12または14に記載のゲームシステム。 - 前記方向指示部は、少なくとも前後左右の方向指示が可能であり、
前記第1移動方向制御手段は、前記第1オブジェクトの現在の移動方向を前記第1方向に設定し、当該第1方向を基準として、前記方向指示部による指示方向に応じた方向を移動方向として更新設定し、
前記姿勢制御手段は、前記第1動き検出手段の検出に基づいて前記第1ハウジングの傾きを判定して、前記更新設定される移動方向を基準とする方向への前記第1オブジェクトの傾きを決定する、請求項12、14、または、15に記載のゲームシステム。 - 前記ゲームコントローラは、前記第1ハウジングと独立し、プレイヤが片手で把持可能な第2ハウジングを、さらに備え、
前記ゲームシステムは、前記第2ハウジングで指し示す向きを検出する第2動き検出手段を、さらに含み、
前記ゲーム装置は、前記第2動き検出手段による検出に応じて、前記第1オブジェクトと異なる第2オブジェクトの移動方向を決定する第2移動方向制御手段を、さらに備える、請求項1に記載のゲームシステム。 - 前記ゲームコントローラは、前記第1ハウジングと独立し、プレイヤが片手で把持可能な第2ハウジングを、さらに備え、
前記ゲームシステムは、前記第2ハウジングの動きを検出する第2動き検出手段を、さらに含み、
前記ゲーム装置は、前記第2動き検出手段による検出に応じて、前記第1オブジェクトと異なる第2オブジェクトの移動方向を決定する第2移動方向制御手段を、さらに備える、請求項1に記載のゲームシステム。 - 前記第1移動方向制御手段は、仮想ゲーム世界に登場する複数のオブジェクトから選ばれた前記第1オブジェクトの移動方向を決定し、
前記第2移動方向制御手段は、前記第2動き検出手段の検出に応じて、前記複数のオブジェクトのうちの少なくとも2つのオブジェクトの移動方向を決定する、請求項17または18に記載のゲームシステム。 - 前記第1動き検出手段は、前記第1ハウジングに設けられ、
前記第2動き検出手段は、前記第2ハウジングに設けられ、
前記ゲームコントローラは、
前記第1ハウジングおよび前記第2ハウジングとの間を有線または無線接続して、一方のハウジング内で発生したデータを他方のハウジング内へ出力する接続手段と、
前記第1ハウジングまたは前記第2ハウジングのうちの前記他方に設けられ、前記方向指示部の入力データ、前記第1動き検出手段の検出データ、および前記第2動き検出手段の検出データを前記ゲーム装置に送信する送信部とを備える、請求項17乃至19のいずれかに記載のゲームシステム。 - 前記ゲーム装置は、前記第1オブジェクトの仮想ゲーム世界における位置を基準とする位置を移動開始点として、前記第2移動方向制御手段により決定される移動方向に前記第2オブジェクトが移動するように制御する第2オブジェクト移動制御手段を、さらに備える、請求項17乃至19のいずれかに記載のゲームシステム。
- 前記第2移動方向制御手段は、前記第1動き検出手段の検出および前記第2動き検出手段の検出に応じて、前記第2オブジェクトの移動方向を決定する、請求項17乃至19のいずれかに記載のゲームシステム。
- 前記第2移動方向制御手段は、前記姿勢制御手段により決定された前記第1オブジェクトの姿勢および前記第2動き検出手段の検出に応じて、前記第2オブジェクトの移動方向を決定する、請求項17乃至19のいずれかに記載のゲームシステム。
- 前記第1動き検出手段は、前記第1ハウジングに設けられて、当該第1ハウジングの動
きを検出する、請求項1に記載のゲームシステム。 - 前記第2動き検出手段は、前記第2ハウジングに設けられる、請求項17または18に記載のゲームシステム。
- プレイヤが片手で把持可能なハウジングを有するゲームコントローラと、当該ゲームコントローラと接続されるゲーム装置と、当該ハウジングの動きを検出する動き検出手段とを含むゲームシステムであって、
前記ハウジングは、その側周をプレイヤが片手で握持可能な形状および大きさで形成され、
前記ゲームコントローラは、前記ハウジングをプレイヤが片手で握持したときに当該片手の親指で操作可能な位置配設され、方向指示入力するための方向指示部を備え、
前記ゲーム装置は、
仮想3次元ゲーム空間に登場するオブジェクトの前方方向を基準として、前記方向指示部による指示方向を当該オブジェクトの移動方向として決定し、当該移動方向へ当該オブジェクトの前方方向を変化させる移動方向制御手段と、
前記動き検出手段の検出に基づいて前記ハウジングの傾きを判定して、プレイヤが前記方向指示部を用いて前後方向の入力操作を行う方向へ前記ハウジングが傾いたことを示すとき、前記オブジェクトを現在の前記前方方向へ傾ける姿勢制御手段と、
仮想3次元ゲーム空間内で、前記姿勢制御手段により決定された傾きで、前記移動方向制御手段によって決定された移動方向に前記オブジェクトを移動させて表示装置に表示する表示制御手段とを備える、ゲームシステム。 - プレイヤが片手で把持可能なハウジングを有するゲームコントローラと、当該ゲームコントローラと接続されるゲーム装置と、当該ハウジングの動きを検出する動き検出手段とを含むゲームシステムであって、
前記ハウジングは、その側周をプレイヤが片手で握持可能な形状および大きさで形成され、
前記ゲームコントローラは、前記ハウジングをプレイヤが片手で握持したときに当該片手の親指で操作可能な位置配設され、方向指示入力をするための方向指示部を備え、
前記ゲーム装置は、
仮想3次元ゲーム空間に登場するオブジェクトの前方方向を基準として、前記方向指示部による指示方向を当該オブジェクトの移動方向として決定し、当該移動方向へ当該オブジェクトの前方方向を変化させる移動方向制御手段と、
前記動き検出手段の検出に基づいて前記ハウジングの傾きを判定して、プレイヤが前記方向指示部を用いて左右方向の入力操作を行う方向へ前記ハウジングが傾いたことを示すとき、前記オブジェクトを現在の前記前方方向に直交する方向へ傾ける姿勢制御手段と、
仮想3次元ゲーム空間内で、前記姿勢制御手段により決定された傾きで、前記移動方向制御手段によって決定された移動方向に前記オブジェクトを移動させて表示装置に表示する表示制御手段とを備える、ゲームシステム。 - プレイヤが片手で把持可能なハウジングを有するゲームコントローラと、当該ゲームコントローラと接続されるゲーム装置と、当該ハウジングの動きを検出する動き検出手段とを含むゲームシステムであって、
前記ハウジングは、その側周をプレイヤが片手で握持可能な形状および大きさで形成され、
前記ゲームコントローラは、前記ハウジングをプレイヤが片手で握持したときに当該片手の親指で操作可能な位置配設され、方向指示入力をするための方向指示部を備え、
前記ゲーム装置は、
仮想3次元ゲーム空間に登場するオブジェクトの前方方向を基準として、前記方向指示部による指示方向を当該オブジェクトの移動方向として決定し、当該移動方向へ当該オブジェクトの前方方向を変化させる移動方向制御手段と、
前記動き検出手段の検出に基づいて前記ハウジングの傾きを判定して、プレイヤが前記方向指示部を用いて前後方向の入力操作を行う方向へ前記ハウジングが傾いたことを示すとき、前記オブジェクトを現在の前記前方方向へ傾け、プレイヤが前記方向指示部を用いて左右方向の入力操作を行う方向へ前記ハウジングが傾いたことを示すとき、現在の前記前方方向に直交する方向へ傾ける姿勢制御手段と、
仮想3次元ゲーム空間内で、前記姿勢制御手段により決定された傾きで、前記移動方向制御手段によって決定された移動方向に前記オブジェクトを移動させて表示装置に表示する表示制御手段とを備える、ゲームシステム。 - プレイヤが片手で把持可能なハウジングを有するゲームコントローラと、当該ゲームコントローラと接続されるゲーム装置と、当該ハウジングの動きを検出する動き検出手段とを含むゲームシステムであって、
前記ハウジングは、その側周をプレイヤが片手で握持可能な形状および大きさで形成され、
前記ゲームコントローラは、前記ハウジングをプレイヤが片手で握持したときに当該片手の親指で操作可能な位置配設され、方向指示入力するための方向指示部を備え、
前記ゲーム装置は、
仮想3次元ゲーム空間に登場するオブジェクトの前方方向を基準として、前記方向指示部による指示方向を当該オブジェクトの移動方向として決定する移動方向制御手段と、
前記動き検出手段の検出に基づいて前記ハウジングの傾きを判定して、プレイヤが前記方向指示部を用いて前後方向の入力操作を行う方向へ前記ハウジングが傾いたことを示すとき、前記オブジェクトを前記前方方向へ傾ける姿勢制御手段と、
仮想3次元ゲーム空間内で、前記姿勢制御手段により決定された傾きで、前記移動方向制御手段によって決定された移動方向に前記オブジェクトを移動させて表示装置に表示する表示制御手段とを備える、ゲームシステム。 - プレイヤが片手で把持可能なハウジングを有するゲームコントローラと、当該ゲームコントローラと接続されるゲーム装置と、当該ハウジングの動きを検出する動き検出手段とを含むゲームシステムであって、
前記ハウジングは、その側周をプレイヤが片手で握持可能な形状および大きさで形成され、
前記ゲームコントローラは、前記ハウジングをプレイヤが片手で握持したときに当該片手の親指で操作可能な位置配設され、方向指示入力をするための方向指示部を備え、
前記ゲーム装置は、
仮想3次元ゲーム空間に登場するオブジェクトの前方方向を基準として、前記方向指示部による指示方向を当該オブジェクトの移動方向として決定する移動方向制御手段と、
前記動き検出手段の検出に基づいて前記ハウジングの傾きを判定して、プレイヤが前記方向指示部を用いて左右方向の入力操作を行う方向へ前記ハウジングが傾いたことを示すとき、前記オブジェクトを前記前方方向に直交する方向へ傾ける姿勢制御手段と、
仮想3次元ゲーム空間内で、前記姿勢制御手段により決定された傾きで、前記移動方向制御手段によって決定された移動方向に前記オブジェクトを移動させて表示装置に表示する表示制御手段とを備える、ゲームシステム。 - プレイヤが片手で把持可能なハウジングを有するゲームコントローラと、当該ゲームコントローラと接続されるゲーム装置と、当該ハウジングの動きを検出する動き検出手段とを含むゲームシステムであって、
前記ハウジングは、その側周をプレイヤが片手で握持可能な形状および大きさで形成され、
前記ゲームコントローラは、前記ハウジングをプレイヤが片手で握持したときに当該片手の親指で操作可能な位置配設され、方向指示入力をするための方向指示部を備え、
前記ゲーム装置は、
仮想3次元ゲーム空間に登場するオブジェクトの前方方向を基準として、前記方向指示部による指示方向を当該オブジェクトの移動方向として決定する移動方向制御手段と、
前記動き検出手段の検出に基づいて前記ハウジングの傾きを判定して、プレイヤが前記方向指示部を用いて前後方向の入力操作を行う方向へ前記ハウジングが傾いたことを示すとき、前記オブジェクトを前記前方方向へ傾け、プレイヤが前記方向指示部を用いて左右方向の入力操作を行う方向へ前記ハウジングが傾いたことを示すとき、前記前方方向に直交する方向へ傾ける姿勢制御手段と、
仮想3次元ゲーム空間内で、前記姿勢制御手段により決定された傾きで、前記移動方向制御手段によって決定された移動方向に前記オブジェクトを移動させて表示装置に表示する表示制御手段とを備える、ゲームシステム。 - 前記動き検出手段は、前記ハウジングに設けられて、当該ハウジングの動きを検出する、請求項26乃至31のいずれかに記載のゲームシステム。
- プレイヤが操作するゲームコントローラと、当該ゲームコントローラと接続されるゲーム装置とを含むゲームシステムであって、
前記ゲームコントローラは、
プレイヤが片手で把持可能な第1ハウジングと、
前記第1ハウジングに設けられ、方向指示入力をするための方向指示部と、
前記第1ハウジングと独立し、プレイヤが片手で把持可能な第2ハウジングと、
前記第2ハウジングの動きを検出する動き検出手段とを備え、
前記ゲーム装置は、
前記方向指示部の操作に応じて、仮想ゲーム世界に登場するオブジェクトの移動方向を決定する移動方向制御手段と、
前記動き検出手段の検出に応じて、仮想ゲーム世界における前記オブジェクトの姿勢を決定する姿勢制御手段とを備える、ゲームシステム。 - プレイヤが片手で把持可能なハウジングと、方向指示入力するための方向指示部と、当該ハウジングの動きを検出する動き検出手段とを備えたゲームコントローラと接続されるゲーム装置のコンピュータで実行されるゲームプログラムであって、
前記方向指示部の操作に応じて、仮想ゲーム世界に登場するオブジェクトの移動方向を決定する移動方向制御手段と、
前記動き検出手段の検出に応じて、仮想ゲーム世界における前記オブジェクトの姿勢を決定する姿勢制御手段として、前記コンピュータを機能させる、ゲームプログラム。 - プレイヤが片手で把持可能なハウジングを有するゲームコントローラと、当該ゲームコントローラと接続されるゲーム装置と、当該ハウジングの動きを検出する動き検出手段とを含むゲームシステムであって、
前記ゲームコントローラは、前記ハウジングに設けられ、方向指示入力するための方向指示部を備え、
前記ゲーム装置は、
前記方向指示部の操作に応じて、仮想ゲーム世界に登場するオブジェクトの移動制御を行う移動制御手段と、
前記動き検出手段による検出に応じて、仮想ゲーム世界における前記オブジェクトに所定の動作をさせる動作制御手段とを備える、ゲームシステム。 - 前記ハウジングは、当該ハウジングの側周をプレイヤが片手で握持可能な形状および大きさで形成される、請求項35に記載のゲームシステム。
- 前記ハウジングは、当該ハウジングの側周をプレイヤが片手で握持したときに、当該片手の親指で操作可能な位置に前記方向指示部が配設される、請求項36に記載のゲームシステム。
- 前記動き検出手段は、前記ハウジングに対して生じる加速度を検出可能であり、
前記動作制御手段は、前記動き検出手段による検出に基づいて前記ハウジングの所定方向に生じた加速度を判定して、当該加速度が所定条件を満たすときに、前記オブジェクトに前記所定の動作をさせる、請求項35に記載のゲームシステム。 - 前記動作制御手段は、前記動き検出手段による検出に基づいて前記ハウジングの所定方向に生じた加速度の履歴を判定して、当該履歴が所定条件を満たすときに、前記オブジェクトに前記所定の動作をさせる、請求項38に記載のゲームシステム。
- 前記動き検出手段は、前記ハウジングにおける所定軸を中心とした回転を少なくとも検出可能であり、
前記動作制御手段は、前記動き検出手段による検出に基づいて前記ハウジングの所定軸を中心とした回転を判定して、当該回転が所定条件を満たすときに、前記オブジェクトに前記所定の動作をさせる、請求項35に記載のゲームシステム。 - 前記方向指示部は、操作部を前記ハウジングの所定方向に押す入力が可能なものであり、
前記移動制御手段は、前記操作部を前記所定方向に押す入力がされたときに、仮想ゲーム世界において前記オブジェクトを所定方向に移動させ、
前記動作制御手段は、前記ハウジングが前記所定方向に動いたことに応じて、仮想ゲーム世界における前記オブジェクトに前記所定の動作をさせる、請求項35に記載のゲームシステム。 - 前記方向指示部は、操作部を前記ハウジングの所定方向に押す入力が可能なものであり、
前記移動制御手段は、前記操作部を前記所定方向に押す入力がされたときに、仮想ゲーム世界において前記オブジェクトを第1方向に移動させ、
前記動作制御手段は、前記ハウジングが前記所定方向に直交する方向に動いたことに応じて、仮想ゲーム世界における前記オブジェクトに前記所定の動作をさせる、請求項35に記載のゲームシステム。 - 前記方向指示部は、前記操作部を前記ハウジングの所定方向および当該所定方向に直交する方向に押す入力が可能なものであり、
前記移動制御手段は、前記操作部を前記所定方向に押す入力がされたときに、仮想ゲーム世界において前記オブジェクトを第1方向に移動させ、かつ、前記操作部を前記直交する方向に押す入力がされたときに、仮想ゲーム世界において前記オブジェクトを前記第1方向と直交する第2方向に移動させ、
前記動作制御手段は、前記ハウジングが前記所定方向に動いたことに応じて、仮想ゲーム世界における前記オブジェクトに前記所定の動作としての第1動作をさせ、前記ハウジングが前記直交する方向に動いたことに応じて、仮想ゲーム世界における前記オブジェクトに前記所定の動作としての当該第1動作と異なった第2動作をさせる、請求項41に記載のゲームシステム。 - 前記方向指示部は、操作部を前記ハウジングの所定方向に押す入力が可能なものであり、
前記移動制御手段は、前記操作部を前記所定方向に押す入力がされたときに、仮想ゲーム世界において前記オブジェクトを当該オブジェクトの前方向に移動させ、かつ、当該押す入力の大きさに応じて前記オブジェクトの移動量を変更し、
前記動作制御手段は、前記ハウジングが前記所定方向に直交する方向に動いたことに応じて、仮想ゲーム世界における前記オブジェクトに前記所定の動作をさせる、請求項35に記載のゲームシステム。 - 前記方向指示部は、操作部を前記ハウジングの所定方向に押す入力が可能なものであり、
前記移動制御手段は、前記操作部を前記所定方向に押す入力がされたときに、仮想ゲーム世界において前記オブジェクトを所定方向に移動させ、
前記動作制御手段は、前記ハウジングが前記所定方向に動いた後、当該所定方向と反対方向に動いたことに応じて、仮想ゲーム世界における前記オブジェクトに前記所定の動作をさせる、請求項35に記載のゲームシステム。 - 前記方向指示部は、操作部を前記ハウジングの所定方向に押す入力が可能なものであり、
前記移動制御手段は、前記操作部を前記所定方向に押す入力がされたときに、仮想ゲーム世界において前記オブジェクトを所定方向に移動させ、
前記動作制御手段は、前記ハウジングが前記所定方向と直交する軸を中心に回転したことに応じて、仮想ゲーム世界における前記オブジェクトに前記所定の動作をさせる、請求項35に記載のゲームシステム。 - 前記方向指示部は、操作部を前記ハウジングの所定方向に押す入力が可能なものであり、
前記移動制御手段は、前記操作部を前記所定方向に押す入力がされたときに、仮想ゲーム世界において前記オブジェクトを所定方向に移動させ、
前記動作制御手段は、前記ハウジングが前記所定方向の軸を中心に回転したことに応じて、仮想ゲーム世界における前記オブジェクトに前記所定の動作をさせる、請求項35に記載のゲームシステム。 - 前記方向指示部は、前記操作部を前記ハウジングの所定方向および当該所定方向に直交する方向に押す入力が可能なものであり、
前記移動制御手段は、前記操作部を前記所定方向に押す入力がされたときに、仮想ゲーム世界において前記オブジェクトを第1方向に移動させ、かつ、前記操作部を前記直交する方向に押す入力がされたときに、仮想ゲーム世界において前記オブジェクトを前記第1方向と直交する第2方向に移動させ、
前記動作制御手段は、前記ハウジングが前記所定方向と直交する軸を中心に回転したことに応じて、仮想ゲーム世界における前記オブジェクトに前記所定の動作としての第1動作をさせ、前記ハウジングが前記所定方向の軸を中心に回転したことに応じて、仮想ゲーム世界における前記オブジェクトに前記所定の動作としての当該第1動作と異なる第2動作をさせる、請求項35に記載のゲームシステム。 - 前記方向指示部は、操作部を前記ハウジングの所定方向に押す入力が可能なものであり、
前記移動制御手段は、前記操作部を前記所定方向に押す入力がされたときに、仮想ゲーム世界において前記オブジェクトを当該オブジェクトの前方向に移動させ、かつ、当該押す入力の大きさに応じて前記オブジェクトの移動量を変更し、
前記動作制御手段は、前記ハウジングが前記所定方向の軸を中心に回転したことに応じて、仮想ゲーム世界における前記オブジェクトに前記所定の動作をさせる、請求項35に記載のゲームシステム。 - 前記方向指示部は、操作部を前記ハウジングの所定方向に押す入力が可能なものであり、
前記移動制御手段は、前記操作部を前記所定方向に押す入力がされたときに、仮想ゲーム世界において前記オブジェクトを所定方向に移動させ、
前記動作制御手段は、前記ハウジングが前記所定方向と直交する軸を中心に回転した後、当該軸を中心に逆回転したことに応じて、仮想ゲーム世界における前記オブジェクトに前記所定の動作をさせる、請求項35に記載のゲームシステム。 - 前記方向指示部は、操作部を前記ハウジングの所定方向に押す入力が可能なものであり、
前記移動制御手段は、前記操作部を前記所定方向に押す入力がされたときに、仮想ゲーム世界において前記オブジェクトを当該オブジェクトの前方向に移動させ、かつ、当該押す入力の大きさに応じて前記オブジェクトの移動量を変更し、
前記動作制御手段は、前記ハウジングが前記所定方向の軸を中心に回転したことに応じて、仮想ゲーム世界における前記オブジェクトに前記所定の動作をさせる、請求項35に記載のゲームシステム。 - 前記方向指示部は、操作部を前記ハウジングの所定方向に押す入力が可能なものであり、
前記移動制御手段は、前記操作部を前記所定方向に押す入力がされたときに、仮想ゲーム世界において前記オブジェクトを当該オブジェクトの前方向に移動させ、かつ、当該押す入力の大きさに応じて前記オブジェクトの移動量を変更し、
前記動作制御手段は、前記ハウジングが前記所定方向と直交する軸を中心として双方向へ反復して回転することに応じて、仮想ゲーム世界における前記オブジェクトに前記所定の動作をさせる、請求項35に記載のゲームシステム。 - 前記動作制御手段は、前記反復の回数に応じて、仮想ゲーム世界における前記オブジェクトに異なる動作をさせる、請求項52に記載のゲームシステム。
- 前記動作制御手段は、前記ハウジングの動きの速度に応じて、仮想ゲーム世界における前記オブジェクトに異なる動作をさせる、請求項41に記載のゲームシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012285127A JP2013078634A (ja) | 2006-11-17 | 2012-12-27 | ゲームシステムおよびゲームプログラム |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006312255 | 2006-11-17 | ||
JP2006312255 | 2006-11-17 | ||
JP2012285127A JP2013078634A (ja) | 2006-11-17 | 2012-12-27 | ゲームシステムおよびゲームプログラム |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007023489A Division JP5525681B2 (ja) | 2006-11-17 | 2007-02-01 | ゲームシステムおよびゲームプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013078634A true JP2013078634A (ja) | 2013-05-02 |
Family
ID=39603326
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007015532A Active JP5392986B2 (ja) | 2006-11-17 | 2007-01-25 | ゲームシステムおよびゲームプログラム |
JP2007023489A Active JP5525681B2 (ja) | 2006-11-17 | 2007-02-01 | ゲームシステムおよびゲームプログラム |
JP2012282852A Pending JP2013078624A (ja) | 2006-11-17 | 2012-12-26 | ゲームシステムおよびゲームプログラム |
JP2012285127A Pending JP2013078634A (ja) | 2006-11-17 | 2012-12-27 | ゲームシステムおよびゲームプログラム |
Family Applications Before (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007015532A Active JP5392986B2 (ja) | 2006-11-17 | 2007-01-25 | ゲームシステムおよびゲームプログラム |
JP2007023489A Active JP5525681B2 (ja) | 2006-11-17 | 2007-02-01 | ゲームシステムおよびゲームプログラム |
JP2012282852A Pending JP2013078624A (ja) | 2006-11-17 | 2012-12-26 | ゲームシステムおよびゲームプログラム |
Country Status (1)
Country | Link |
---|---|
JP (4) | JP5392986B2 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5520457B2 (ja) * | 2008-07-11 | 2014-06-11 | 任天堂株式会社 | ゲーム装置およびゲームプログラム |
EP2228110B1 (en) | 2009-03-09 | 2017-08-30 | Nintendo Co., Ltd. | Coordinate calculation apparatus and storage medium having coordinate calculation program stored therein |
JP5545438B2 (ja) * | 2010-05-12 | 2014-07-09 | 株式会社セガ | ゲーム装置 |
US20130225295A1 (en) * | 2012-02-24 | 2013-08-29 | Nintendo Co., Ltd. | Methods and/or systems for controlling virtual objects |
JP5959047B2 (ja) * | 2012-04-04 | 2016-08-02 | 任天堂株式会社 | 表示制御システム、表示制御方法、表示制御プログラム、および表示制御装置 |
JP6042394B2 (ja) * | 2014-09-30 | 2016-12-14 | 任天堂株式会社 | 座標算出装置および座標算出プログラム |
JP6598748B2 (ja) * | 2016-08-26 | 2019-10-30 | 任天堂株式会社 | 情報処理システム、情報処理プログラム、情報処理装置、および情報処理方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000308756A (ja) * | 1999-04-27 | 2000-11-07 | Taito Corp | ゲーム装置の入力制御装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001104636A (ja) * | 1999-10-04 | 2001-04-17 | Shinsedai Kk | 体感ボールゲーム装置 |
JP4610971B2 (ja) * | 2004-09-07 | 2011-01-12 | 任天堂株式会社 | ゲームプログラム |
-
2007
- 2007-01-25 JP JP2007015532A patent/JP5392986B2/ja active Active
- 2007-02-01 JP JP2007023489A patent/JP5525681B2/ja active Active
-
2012
- 2012-12-26 JP JP2012282852A patent/JP2013078624A/ja active Pending
- 2012-12-27 JP JP2012285127A patent/JP2013078634A/ja active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000308756A (ja) * | 1999-04-27 | 2000-11-07 | Taito Corp | ゲーム装置の入力制御装置 |
Also Published As
Publication number | Publication date |
---|---|
JP5392986B2 (ja) | 2014-01-22 |
JP2013078624A (ja) | 2013-05-02 |
JP2008142511A (ja) | 2008-06-26 |
JP5525681B2 (ja) | 2014-06-18 |
JP2008142509A (ja) | 2008-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9901814B2 (en) | Game system and storage medium storing game program | |
US9327192B2 (en) | Game system and storage medium storing game program | |
US7833099B2 (en) | Game apparatus and recording medium recording game program for displaying a motion matching a player's intention when moving an input device | |
JP4884867B2 (ja) | 情報処理装置および情報処理プログラム | |
EP2292305B1 (en) | Video game controller and video game system | |
KR101169813B1 (ko) | 게임 시스템 및 게임 프로그램을 저장한 저장 매체 | |
US8366528B2 (en) | Computer readable storage medium having game program stored thereon, game apparatus, and game control method | |
JP5334595B2 (ja) | ゲーム装置およびゲームプログラム | |
US20070049374A1 (en) | Game system and storage medium having game program stored thereon | |
JP5361044B2 (ja) | ゲーム装置、およびゲームプログラム | |
EP2302487A2 (en) | Storage medium with information processing program and information processing apparatus for detecting swing direction of input device | |
JP4919887B2 (ja) | 画像処理プログラムおよび画像処理装置 | |
JP2011004784A (ja) | ゲーム装置およびゲームプログラム | |
JP2007301038A (ja) | ゲームプログラム、ゲーム装置、およびゲームシステム | |
JP2013078634A (ja) | ゲームシステムおよびゲームプログラム | |
JP5291305B2 (ja) | ゲームプログラムおよびゲーム装置 | |
JP5358168B2 (ja) | ゲーム装置およびゲームプログラム | |
US8012004B2 (en) | Computer-readable storage medium having game program stored thereon and game apparatus | |
JP5498690B2 (ja) | ゲームプログラムおよびゲーム装置 | |
JP5259965B2 (ja) | 情報処理プログラム、および、情報処理装置 | |
JP2010142404A (ja) | ゲームプログラムおよびゲーム装置 | |
JP5945297B2 (ja) | ゲームプログラムおよびゲーム装置 | |
JP5116159B2 (ja) | 情報処理システム、情報処理方法、および情報処理プログラム | |
JP5331259B2 (ja) | 情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130124 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130124 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140425 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20140813 |