(57)【要約】【課題】野球ゲーム等において、プレイヤに臨場感を与えることができ、なおかつボールが着地する前にプレイヤがボールの下方の様子を把握できるようなゲーム画像を生成すること。【解決手段】ボールが上昇している間は、ボールの現在位置に仮想カメラの注視点が設定される。ボールが上昇から下降に転じるとき、仮想カメラの注視点は、ボールの位置からボールの影の地点へと移動する。ボールが下降している間は、ボールの影の地点に仮想カメラの注視点が設定される。【選択図】図１３
2008125550.tif 000002
【特許請求の範囲】
【請求項１】
仮想３次元空間内に設定されたフィールドの上方を移動オブジェクトが移動する様子を示すゲーム画像を表示画面上に表示するゲーム装置のコンピュータにおいて実行されるゲームプログラムであって、
前記フィールドの上方を前記移動オブジェクトが略放物線状に移動するように、前記仮想３次元空間における当該移動オブジェクトの位置を示す位置情報を周期的に更新する移動制御ステップ、
前記移動制御ステップで移動制御される前記移動オブジェクトの速度が特定条件を満たしたか否かを判定する条件判定ステップ、
前記移動オブジェクトの速度が前記特定条件を満たしていなければ、前記仮想カメラの注視点を前記移動オブジェクトの現在位置とし、前記移動オブジェクトの速度が前記特定条件を満たしたことに応じて、前記仮想カメラの注視点を前記移動オブジェクトの現在位置からフィールド上の特定地点へと移動させる注視点制御ステップ、および
前記仮想３次元空間内に設定された仮想カメラで、前記注視点制御ステップで制御された注視点に基づいた透視投影変換処理によって、前記表示画面上に表示すべきゲーム画像を生成する画像生成ステップを前記コンピュータに実行させる、ゲームプログラム。
【請求項２】
前記特定地点は、前記移動オブジェクトを通る鉛直線とフィールドとが交差する地点である、請求項１に記載のゲームプログラム。
【請求項３】
前記特定地点は、前記移動オブジェクトの予定落下地点である、請求項１に記載のゲームプログラム。
【請求項４】
前記特定地点は、前記移動オブジェクトを通る鉛直線とフィールドとが交差する地点と、前記移動オブジェクトの予定落下地点との中間地点である、請求項１に記載のゲームプログラム。
【請求項５】
前記特定条件は、前記仮想３次元空間における前記移動オブジェクトの速度の大きさに関する条件である、請求項１に記載のゲームプログラム。
【請求項６】
前記特定条件は、前記移動オブジェクトの速度の大きさが減少から増加に転じることである、請求項１に記載のゲームプログラム。
【請求項７】
前記特定条件は、前記仮想３次元空間における前記移動オブジェクトの速度の重力方向成分の向き及び／又は大きさに関する条件である、請求項１に記載のゲームプログラム。
【請求項８】
前記特定条件は、前記移動オブジェクトの速度の重力方向成分の向きが反転することである、請求項７に記載のゲームプログラム。
【請求項９】
前記注視点制御ステップにおいて、前記移動オブジェクトの速度が前記特定条件を満たしたことに応じて、前記仮想カメラの注視点が前記移動オブジェクトの現在位置を離れて前記特定地点へ徐々に近づくように、前記仮想カメラの注視点の位置が繰り返し更新される、請求項１に記載のゲームプログラム。
【請求項１０】
前記注視点制御ステップにおいて、前記仮想カメラの注視点は、現在の注視点と前記特定地点との間の距離に応じた速度で、前記特定地点へ徐々に近づくように繰り返し更新される、請求項９に記載のゲームプログラム。
【請求項１１】
前記注視点制御ステップにおいて、前記仮想カメラの注視点は、一定の速度で前記特定地点へ徐々に近づくように繰り返し更新される、請求項９に記載のゲームプログラム。
【請求項１２】
仮想３次元空間内に設定されたフィールドの上方を移動オブジェクトが移動する様子を示すゲーム画像を表示画面上に表示するゲーム装置であって、
前記フィールドの上方を前記移動オブジェクトが略放物線状に移動するように、前記仮想３次元空間における当該移動オブジェクトの位置を示す位置情報を周期的に更新する移動制御手段、
前記移動制御手段により移動制御される前記移動オブジェクトの速度が特定条件を満たしたか否かを判定する条件判定手段、
前記移動オブジェクトの速度が前記特定条件を満たしていなければ、前記仮想カメラの注視点を前記移動オブジェクトの現在位置とし、前記移動オブジェクトの速度が前記特定条件を満たしたことに応じて、前記仮想カメラの注視点を前記移動オブジェクトの現在位置からフィールド上の特定地点へと移動させる注視点制御手段、および
前記仮想３次元空間内に設定された仮想カメラで、前記注視点制御手段により制御された注視点に基づいた透視投影変換処理によって、前記表示画面上に表示すべきゲーム画像を生成する画像生成手段を備えた、ゲーム装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲームプログラムおよびゲーム装置に関し、より特定的には、仮想３次元空間内に設定されたフィールドの上方を移動オブジェクトが移動する様子を示すゲーム画像を表示画面上に表示するためのゲームプログラムおよびゲーム装置に関する。
【背景技術】
【０００２】
従来、野球ゲームやゴルフゲーム等のように、仮想３次元空間内に設定されたフィールドの上方を移動オブジェクトが移動する様子を示すゲーム画像を表示画面上に表示するゲームプログラムおよびゲーム装置が存在する。
【０００３】
例えば、２００５年７月１４日にコナミ株式会社によって発売された「実況パワフルプロ野球１２」という名称の野球ゲームでは、打者がボールを打ったときに、上空に位置する仮想カメラがボールの影を追いかけるような仮想カメラの制御方法が採用されている。このような仮想カメラの制御方法によれば、画面にはボールの影の周辺の様子が常に表示されるので、プレイヤは、ボールの予定落下地点に向かって走る野手の動きを眺めることができる。
【０００４】
野球ゲームに関する別の従来技術として、特許文献１に記載のゲーム装置がある。このゲーム装置では、打者がボールを打った直後に、ボールの予定落下地点に一番早く到達できる野手が選択され、この野手がボールを捕球するまでの間、仮想カメラが常にこの野手の後方からボールを捉えるような仮想カメラの制御方法が採用されている。このような仮想カメラの制御方法によれば、プレイヤは、野手の視点からボールを眺めることができ、現実感のあるゲームプレイが可能となる。
【特許文献１】特開２００１−１３７５５４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、前述の「実況パワフルプロ野球１２」に採用されている仮想カメラの制御方法によれば、仮想カメラはボール自体の位置に関係なくボールの影を追いかけるため、ボールの軌道が高い場合にはボールが画面に表示されないという状況が発生する。したがって、プレイヤは、ボールが空高く飛んでいる様子を画面上で確認することができず、臨場感を味わうことができないという問題がある。
【０００６】
一方、特許文献１に記載のゲーム装置に採用されている仮想カメラの制御方法によれば、プレイヤは、ボールの予定落下地点に一番早く到達できる野手の動きと、ボールが空高く飛んでいる様子の両方を同時に画面上で確認することができる。しかしながら、ボールの予定落下地点に一番早く到達できる野手の後方から上方を撮影するように仮想カメラが設定されるため、プレイヤは、ボールの真下の地点や予定落下地点等の様子を把握できず、例えば、ボールの予定落下地点に向かって走る他の野手の動きや、ボールがファウルラインの外側を飛んでいるのかファイルラインの内側を飛んでいるのかなどを画面上で確認することができないという問題がある。
【０００７】
それゆえに本発明は、仮想３次元空間内に設定されたフィールドの上方を移動オブジェクトが移動する様子を示すゲーム画像を表示画面上に表示するにあたり、プレイヤに臨場感を与えることができ、なおかつ移動オブジェクトが着地する前にプレイヤが移動オブジェクトの下方の様子を把握できるようなゲーム画像を生成可能なゲームプログラムおよびゲーム装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明は以下のように構成される。なお、括弧内の参照符号は、本発明の理解を助けるために図面との対応関係の一例を示したものであって、本発明の範囲を何ら限定するものではない。
【０００９】
本発明のゲームプログラム（３３０）は、仮想３次元空間内に設定されたフィールドの上方を移動オブジェクトが移動する様子を示すゲーム画像を表示画面上に表示するゲーム装置（５）のコンピュータ（３０）において実行されるゲームプログラムである。このゲームプログラムは、移動制御ステップ（Ｓ３４）、条件判定ステップ（Ｓ５０）、注視点制御ステップ（Ｓ５２，Ｓ５６，Ｓ５８）、および画像生成ステップをコンピュータ（３０）に実行させる。移動制御ステップは、フィールドの上方を移動オブジェクトが略放物線状に移動するように、仮想３次元空間における当該移動オブジェクトの位置を示す位置情報（３３５）を周期的に更新するステップである。条件判定ステップは、移動制御ステップで移動制御される移動オブジェクトの速度（３３６）が特定条件を満たしたか否かを判定するステップである。注視点制御ステップは、移動オブジェクトの速度が特定条件を満たしていなければ、仮想カメラの注視点を移動オブジェクトの現在位置（Ｐ１）とし、移動オブジェクトの速度が特定条件を満たしたことに応じて、仮想カメラの注視点を移動オブジェクトの現在位置からフィールド上の特定地点（Ｐ２，Ｐ３）へと移動させるステップである。画像生成ステップは、仮想３次元空間内に設定された仮想カメラで、前記注視点制御ステップで制御された注視点に基づいた透視投影変換処理によって、表示画面上に表示すべきゲーム画像を生成するステップである。
【００１０】
本発明の変形例として、特定地点は、移動オブジェクトを通る鉛直線とフィールドとが交差する地点（Ｐ２）であってもよい。
【００１１】
さらなる変形例として、特定地点は、移動オブジェクトの予定落下地点（Ｐ３）であってもよい。
【００１２】
さらなる変形例として、特定地点は、移動オブジェクトを通る鉛直線とフィールドとが交差する地点（Ｐ２）と、移動オブジェクトの予定落下地点（Ｐ３）との中間地点であってもよい。
【００１３】
さらなる変形例として、特定条件は、仮想３次元空間における移動オブジェクトの速度の大きさ（√（Ｖｘ2＋Ｖｙ2＋Ｖｚ2））に関する条件であってもよい。
【００１４】
さらなる変形例として、特定条件は、移動オブジェクトの速度の大きさが減少から増加に転じることであってもよい。これにより、移動オブジェクトが上昇から下降に転じたときに、仮想カメラの注視点を移動オブジェクトの現在位置からフィールド上の特定地点へと移動させることができる。
【００１５】
さらなる変形例として、特定条件は、仮想３次元空間における移動オブジェクトの速度の重力方向成分（Ｖｙ）の向き及び／又は大きさに関する条件であってもよい。
【００１６】
さらなる変形例として、特定条件は、移動オブジェクトの速度の重力方向成分の向きが反転することであってもよい。これにより、移動オブジェクトが上昇から下降に転じたときに、仮想カメラの注視点を移動オブジェクトの現在位置からフィールド上の特定地点へと移動させることができる。
【００１７】
さらなる変形例として、注視点制御ステップにおいて、移動オブジェクトの速度が特定条件を満たしたことに応じて、仮想カメラの注視点が移動オブジェクトの現在位置を離れて特定地点へ徐々に近づくように、仮想カメラの注視点の位置が繰り返し更新されてもよい（Ｓ５８）。
【００１８】
さらなる変形例として、注視点制御ステップにおいて、仮想カメラの注視点は、現在の注視点と特定地点との間の距離に応じた速度で、特定地点へ徐々に近づくように繰り返し更新されてもよい。
【００１９】
さらなる変形例として、注視点制御ステップにおいて、仮想カメラの注視点は、一定の速度で特定地点へ徐々に近づくように繰り返し更新されてもよい。
【００２０】
本発明のゲーム装置（５）は、仮想３次元空間内に設定されたフィールドの上方を移動オブジェクトが移動する様子を示すゲーム画像を表示画面上に表示するゲーム装置である。このゲーム装置は、移動制御手段（３０，Ｓ３４）、条件判定手段（３０，Ｓ５０）、注視点制御手段（３０，Ｓ５２，Ｓ５６，Ｓ５８）、および画像生成手段（３０，３２）を備える。
【発明の効果】
【００２１】
本発明によれば、仮想３次元空間内に設定されたフィールドの上方を移動オブジェクトが移動する様子を示すゲーム画像を表示画面上に表示するにあたり、プレイヤに臨場感を与えることができ、なおかつ移動オブジェクトが着地する前にプレイヤが移動オブジェクトの下方の様子を把握できるようなゲーム画像を生成することが可能となる。
【発明を実施するための最良の形態】
【００２２】
図１を参照して、本発明の一実施形態に係るゲーム装置について説明する。以下、説明を具体的にするために、当該ゲーム装置の一例の据置型のゲーム装置を含むゲームシステムについて説明する。なお、図１は据置型のゲーム装置３を含むゲームシステム１の外観図であり、図２はゲーム装置本体５のブロック図である。以下、当該ゲームシステム１について説明する。
【００２３】
図１において、ゲームシステム１は、表示手段の一例の家庭用テレビジョン受像機（以下、モニタと記載する）２と、当該モニタ２に接続コードを介して接続する据置型のゲーム装置３とから構成される。モニタ２は、ゲーム装置本体５から出力された音声信号を音声出力するためのスピーカ２ａを備える。また、ゲーム装置３は、本願発明の情報処理プログラムの一例のゲームプログラムを記録した光ディスク４と、当該光ディスク４のゲームプログラムを実行してゲーム画面をモニタ２に表示出力させるためのコンピュータを搭載したゲーム装置本体５と、ゲーム画面に表示されたキャラクタなどの画像などのゲームに必要な操作情報をゲーム装置本体５に与えるためのコントローラ７とを備えている。
【００２４】
また、ゲーム装置本体５は、通信ユニット６を内蔵する。通信ユニット６は、コントローラ７から無線送信されるデータを受信し、ゲーム装置本体５からコントローラ７へデータを送信して、コントローラ７とゲーム装置本体５とは無線通信によって接続する。さらに、ゲーム装置本体５には、当該ゲーム装置本体５に対して交換可能に用いられる情報記憶媒体の一例の光ディスク４が脱着される。ゲーム装置本体５の前部主面には、当該ゲーム装置本体５の電源ＯＮ／ＯＦＦスイッチ、ゲーム処理のリセットスイッチ、光ディスク４を脱着する投入口、およびゲーム装置本体５の投入口から光ディスク４を取り出すイジェクトスイッチ等が設けられている。
【００２５】
また、ゲーム装置本体５には、セーブデータ等のデータを固定的に記憶するバックアップメモリとして機能するフラッシュメモリ３８が搭載される。ゲーム装置本体５は、光ディスク４に記憶されたゲームプログラム等を実行することによって、その結果をゲーム画像としてモニタ２に表示する。さらに、ゲーム装置本体５は、フラッシュメモリ３８に記憶されたセーブデータを用いて、過去に実行されたゲーム状態を再現して、ゲーム画像をモニタ２に表示することもできる。そして、ゲーム装置本体５のプレイヤは、モニタ２に表示されたゲーム画像を見ながら、コントローラ７を操作することによって、ゲーム進行を楽しむことができる。
【００２６】
コントローラ７は、通信ユニット６を内蔵するゲーム装置本体５へ、例えばＢｌｕｅｔｏｏｔｈ（ブルートゥース；登録商標）の技術を用いて操作情報などの送信データを無線送信する。コントローラ７は、主にモニタ２の表示画面に表示されるゲーム空間に登場するプレイヤキャラクタ等を操作したりするための操作手段である。コントローラ７は、片手で把持可能な程度の大きさのハウジングと、当該ハウジングの表面に露出して設けられた複数個の操作ボタン（十字キーやスティック等を含む）が設けられている。また、後述により明らかとなるが、コントローラ７は、当該コントローラ７から見た画像を撮像する撮像情報演算部７４を備えている。また、撮像情報演算部７４の撮像対象の一例として、モニタ２の表示画面近傍に２つのＬＥＤモジュール（以下、マーカと記載する）８Ｌおよび８Ｒが設置される。これらマーカ８Ｌおよび８Ｒは、センサバー８の両端部にそれぞれ設置されており、それぞれモニタ２の前方に向かって例えば赤外光を出力する。また、コントローラ７は、ゲーム装置本体５の通信ユニット６から無線送信された送信データを通信部７５で受信して、当該送信データに応じた音や振動を発生させることもできる。
【００２７】
図２において、ゲーム装置本体５は、各種プログラムを実行する例えばＣＰＵ（セントラルプロセッシングユニット）３０を備える。ＣＰＵ３０は、図示しないブートＲＯＭに記憶された起動プログラムを実行し、メインメモリ３３等のメモリの初期化等を行った後、光ディスク４に記憶されているゲームプログラムの実行し、そのゲームプログラムに応じたゲーム処理等を行うものである。ＣＰＵ３０には、メモリコントローラ３１を介して、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３２、メインメモリ３３、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）３４、およびＡＲＡＭ（Ａｕｄｉｏ  ＲＡＭ）３５などが接続される。また、メモリコントローラ３１には、所定のバスを介して、通信ユニット６、ビデオＩ／Ｆ（インターフェース）３７、フラッシュメモリ３８、オーディオＩ／Ｆ３９、およびディスクＩ／Ｆ４１が接続され、それぞれのインターフェースにモニタ２、スピーカ２ａ、およびディスクドライブ４０が接続されている。
【００２８】
ＧＰＵ３２は、ＣＰＵ３０の命令に基づいて画像処理を行うものあり、例えば、３Ｄグラフィックスの表示に必要な計算処理を行う半導体チップで構成される。ＧＰＵ３２は、図示しない画像処理専用のメモリやメインメモリ３３の一部の記憶領域を用いて画像処理を行う。ＧＰＵ３２は、これらを用いてモニタ２に表示すべきゲーム画像データやムービ映像を生成し、適宜メモリコントローラ３１およびビデオＩ／Ｆ３７を介してモニタ２に出力する。
【００２９】
メインメモリ３３は、ＣＰＵ３０で使用される記憶領域であって、ＣＰＵ３０の処理に必要なゲームプログラム等を適宜記憶する。例えば、メインメモリ３３は、ＣＰＵ３０によって光ディスク４から読み出されたゲームプログラムや各種データ等を記憶する。このメインメモリ３３に記憶されたゲームプログラムや各種データ等がＣＰＵ３０によって実行される。
【００３０】
ＤＳＰ３４は、ゲームプログラム実行時にＣＰＵ３０において生成されるサウンドデータ等を処理するものであり、そのサウンドデータ等を記憶するためのＡＲＡＭ３５が接続される。ＡＲＡＭ３５は、ＤＳＰ３４が所定の処理（例えば、先読みしておいたゲームプログラムやサウンドデータの記憶）を行う際に用いられる。ＤＳＰ３４は、ＡＲＡＭ３５に記憶されたサウンドデータを読み出し、メモリコントローラ３１およびオーディオＩ／Ｆ３９を介してモニタ２に備えるスピーカ２ａに出力させる。
【００３１】
メモリコントローラ３１は、データ転送を統括的に制御するものであり、上述した各種Ｉ／Ｆが接続される。上述したように通信ユニット６は、コントローラ７からの送信データを受信し、当該送信データをＣＰＵ３０へ出力する。また、通信ユニット６は、ＣＰＵ３０から出力された送信データをコントローラ７の通信部７５へ送信する。ビデオＩ／Ｆ３７には、モニタ２が接続される。オーディオＩ／Ｆ３９にはモニタ２に内蔵されるスピーカ２ａが接続され、ＤＳＰ３４がＡＲＡＭ３５から読み出したサウンドデータやディスクドライブ４０から直接出力されるサウンドデータをスピーカ２ａから出力可能に接続される。ディスクＩ／Ｆ４１には、ディスクドライブ４０が接続される。ディスクドライブ４０は、所定の読み出し位置に配置された光ディスク４に記憶されたデータを読み出し、ゲーム装置本体５のバスやオーディオＩ／Ｆ３９に出力する。ＬＥＤ制御部４２は、センサバー８に設けられたマーカ８Ｌおよび８Ｒの発光制御を行う。
【００３２】
図３および図４を参照して、コントローラ７について説明する。なお、図３は、コントローラ７の上面後方から見た斜視図である。図４は、コントローラ７を下面前方から見た斜視図である。
【００３３】
図３および図４において、コントローラ７は、例えばプラスチック成型によって形成されたハウジング７１を有しており、当該ハウジング７１に複数の操作部７２が設けられている。ハウジング７１は、その前後方向を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。
【００３４】
ハウジング７１上面の中央前面側に、十字キー７２ａが設けられる。この十字キー７２ａは、十字型の４方向プッシュスイッチであり、４つの方向（前後左右）に対応する操作部分が十字の突出片にそれぞれ９０°間隔で配置される。プレイヤが十字キー７２ａのいずれかの操作部分を押下することによって前後左右いずれかの方向を選択される。例えばプレイヤが十字キー７２ａを操作することによって、仮想ゲーム世界に登場するプレイヤキャラクタ等の移動方向を指示したり、複数の選択肢から選択指示したりすることができる。
【００３５】
なお、十字キー７２ａは、上述したプレイヤの方向入力操作に応じて操作信号を出力する操作部であるが、他の態様の操作部でもかまわない。例えば、十字方向に４つのプッシュスイッチを配設し、プレイヤによって押下されたプッシュスイッチに応じて操作信号を出力する操作部を設けてもかまわない。さらに、上記４つのプッシュスイッチとは別に、上記十字方向が交わる位置にセンタスイッチを配設し、４つのプッシュスイッチとセンタスイッチとを複合した操作部を設けてもかまわない。また、ハウジング７１上面から突出した傾倒可能なスティック（いわゆる、ジョイスティック）を倒すことによって、傾倒方向に応じて操作信号を出力する操作部を上記十字キー７２ａの代わりに設けてもかまわない。さらに、水平移動可能な円盤状部材をスライドさせることによって、当該スライド方向に応じた操作信号を出力する操作部を、上記十字キー７２ａの代わりに設けてもかまわない。また、タッチパッドを、上記十字キー７２ａの代わりに設けてもかまわない。
【００３６】
ハウジング７１上面の十字キー７２ａより後面側に、複数の操作ボタン７２ｂ〜７２ｇが設けられる。操作ボタン７２ｂ〜７２ｇは、プレイヤがボタン頭部を押下することによって、それぞれの操作ボタン７２ｂ〜７２ｇに割り当てられた操作信号を出力する操作部である。例えば、操作ボタン７２ｂ〜７２ｄには、１番ボタン、２番ボタン、およびＡボタン等としての機能が割り当てられる。また、操作ボタン７２ｅ〜７２ｇには、マイナスボタン、ホームボタン、およびプラスボタン等としての機能が割り当てられる。これら操作ボタン７２ａ〜７２ｇは、ゲーム装置本体５が実行するゲームプログラムに応じてそれぞれの操作機能が割り当てられる。なお、図３に示した配置例では、操作ボタン７２ｂ〜７２ｄは、ハウジング７１上面の中央前後方向に沿って並設されている。また、操作ボタン７２ｅ〜７２ｇは、ハウジング７１上面の左右方向に沿って操作ボタン７２ｂおよび７２ｄの間に並設されている。そして、操作ボタン７２ｆは、その上面がハウジング７１の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
【００３７】
また、ハウジング７１上面の十字キー７２ａより前面側に、操作ボタン７２ｈが設けられる。操作ボタン７２ｈは、遠隔からゲーム装置本体５の電源をオン／オフする電源スイッチである。この操作ボタン７２ｈも、その上面がハウジング７１の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
【００３８】
また、ハウジング７１上面の操作ボタン７２ｃより後面側に、複数のＬＥＤ７０２が設けられる。ここで、コントローラ７は、他のコントローラ７と区別するためにコントローラ種別（番号）が設けられている。例えば、ＬＥＤ７０２は、コントローラ７に現在設定されている上記コントローラ種別をプレイヤに通知するために用いられる。具体的には、コントローラ７から通信ユニット６へ送信データを送信する際、上記コントローラ種別に応じて複数のＬＥＤ７０２のうち、種別に対応するＬＥＤが点灯する。
【００３９】
また、ハウジング７１上面には、操作ボタン７２ｂおよび操作ボタン７２ｅ〜７２ｇの間に後述するスピーカ（図５のスピーカ７０６）からの音を外部に放出するための音抜き孔が形成されている。
【００４０】
一方、ハウジング７１下面には、凹部が形成されている。ハウジング７１下面の凹部は、プレイヤがコントローラ７の前面をマーカ８Ｌおよび８Ｒに向けて片手で把持したときに、当該プレイヤの人差し指や中指が位置するような位置に形成される。そして、上記凹部の後面側傾斜面には、操作ボタン７２ｉが設けられる。操作ボタン７２ｉは、例えばＢボタンとして機能する操作部である。
【００４１】
また、ハウジング７１前面には、撮像情報演算部７４の一部を構成する撮像素子７４３が設けられる。ここで、撮像情報演算部７４は、コントローラ７が撮像した画像データを解析してその中で輝度が高い場所を判別してその場所の重心位置やサイズなどを検出するためのシステムであり、例えば、最大２００フレーム／秒程度のサンプリング周期であるため比較的高速なコントローラ７の動きでも追跡して解析することができる。この撮像情報演算部７４の詳細な構成については、後述する。また、ハウジング７１の後面には、コネクタ７３が設けられている。コネクタ７３は、例えばエッジコネクタであり、例えば接続ケーブルと嵌合して接続するために利用される。
【００４２】
ここで、以下の説明を具体的にするために、コントローラ７に対して設定する座標系について定義する。図３および図４に示すように、互いに直交するＸＹＺ軸をコントローラ７に対して定義する。具体的には、コントローラ７の前後方向となるハウジング７１の長手方向をＺ軸とし、コントローラ７の前面（撮像情報演算部７４が設けられている面）方向をＺ軸正方向とする。また、コントローラ７の上下方向をＹ軸とし、ハウジング７１の下面（操作ボタン７２ｉが設けられた面）方向をＹ軸正方向とする。さらに、コントローラ７の左右方向をＸ軸とし、ハウジング７１の左側面（図３では表されずに図４で表されている側面）方向をＸ軸正方向とする。
【００４３】
次に、図５および図６を参照して、コントローラ７の内部構造について説明する。なお、図５は、コントローラ７の上筐体（ハウジング７１の一部）を外した状態を後面側から見た斜視図である。図６は、コントローラ７の下筐体（ハウジング７１の一部）を外した状態を前面側から見た斜視図である。ここで、図６に示す基板７００は、図５に示す基板７００の裏面から見た斜視図となっている。
【００４４】
図５において、ハウジング７１の内部には基板７００が固設されており、当該基板７００の上主面上に操作ボタン７２ａ〜７２ｈ、加速度センサ７０１、ＬＥＤ７０２、およびアンテナ７５４等が設けられる。そして、これらは、基板７００等に形成された配線（図示せず）によってマイコン７５１等（図６、図７参照）に接続される。また、無線モジュール７５３（図７参照）およびアンテナ７５４によって、コントローラ７がワイヤレスコントローラとして機能する。なお、ハウジング７１内部には図示しない水晶振動子７０３が設けられており、後述するマイコン７５１の基本クロックを生成する。また、基板７００の上主面上に、スピーカ７０６およびアンプ７０８が設けられる。また、加速度センサ７０１は、操作ボタン７２ｄの左側の基板７００上（つまり、基板７００の中央部ではなく周辺部）に設けられる。したがって、加速度センサ７０１は、コントローラ７の長手方向を軸とした回転に応じて、重力加速度の方向変化に加え、遠心力による成分の含まれる加速度を検出することができるので、所定の演算により、検出される加速度データからコントローラ７の回転を良好な感度でゲーム装置本体５等が判定することができる。
【００４５】
一方、図６において、基板７００の下主面上の前端縁に撮像情報演算部７４が設けられる。撮像情報演算部７４は、コントローラ７の前方から順に赤外線フィルタ７４１、レンズ７４２、撮像素子７４３、および画像処理回路７４４によって構成されており、それぞれ基板７００の下主面に取り付けられる。また、基板７００の下主面上の後端縁にコネクタ７３が取り付けられる。さらに、基板７００の下主面上にサウンドＩＣ７０７およびマイコン７５１が設けられている。サウンドＩＣ７０７は、基板７００等に形成された配線によってマイコン７５１およびアンプ７０８と接続され、ゲーム装置本体５から送信されたサウンドデータに応じてアンプ７０８を介してスピーカ７０６に音声信号を出力する。
【００４６】
そして、基板７００の下主面上には、バイブレータ７０４が取り付けられる。バイブレータ７０４は、例えば振動モータやソレノイドである。バイブレータ７０４は、基板７００等に形成された配線によってマイコン７５１と接続され、ゲーム装置本体５から送信された振動データに応じてその作動をオン／オフする。バイブレータ７０４が作動することによってコントローラ７に振動が発生するので、それを把持しているプレイヤの手にその振動が伝達され、いわゆる振動対応ゲームが実現できる。ここで、バイブレータ７０４は、ハウジング７１のやや前方寄りに配置されるため、プレイヤが把持している状態において、ハウジング７１が大きく振動することになり、振動を感じやすくなる。
【００４７】
次に、図７を参照して、コントローラ７の内部構成について説明する。なお、図７は、コントローラ７の構成を示すブロック図である。
【００４８】
図７において、コントローラ７は、上述した操作部７２、撮像情報演算部７４、加速度センサ７０１、バイブレータ７０４、スピーカ７０６、サウンドＩＣ７０７、およびアンプ７０８の他に、その内部に通信部７５を備えている。
【００４９】
撮像情報演算部７４は、赤外線フィルタ７４１、レンズ７４２、撮像素子７４３、および画像処理回路７４４を含んでいる。赤外線フィルタ７４１は、コントローラ７の前方から入射する光から赤外線のみを通過させる。レンズ７４２は、赤外線フィルタ７４１を透過した赤外線を集光して撮像素子７４３へ出射する。撮像素子７４３は、例えばＣＭＯＳセンサやあるいはＣＣＤのような固体撮像素子であり、レンズ７４２が集光した赤外線を撮像する。したがって、撮像素子７４３は、赤外線フィルタ７４１を通過した赤外線だけを撮像して画像データを生成する。撮像素子７４３で生成された画像データは、画像処理回路７４４で処理される。具体的には、画像処理回路７４４は、撮像素子７４３から得られた画像データを処理して高輝度部分を検知し、それらの位置座標や面積を検出した結果を示す処理結果データを通信部７５へ出力する。なお、これらの撮像情報演算部７４は、コントローラ７のハウジング７１に固設されており、ハウジング７１自体の方向を変えることによってその撮像方向を変更することができる。
【００５０】
コントローラ７は、３軸（Ｘ、Ｙ、Ｚ軸）の加速度センサ７０１を備えていることが好ましい。この３軸の加速度センサ７０１は、３方向、すなわち、上下方向（図３に示すＹ軸）、左右方向（図３に示すＸ軸）、および前後方向（図３に示すＺ軸）で直線加速度を検知する。また、他の実施形態においては、ゲーム処理に用いる制御信号の種類によっては、Ｘ軸とＹ軸（または他の対になった軸）のそれぞれに沿った直線加速度のみを検知する２軸の加速度検出手段を使用してもよい。さらに、他の実施形態においては、ゲーム処理に用いる制御信号の種類によっては、ＸＹＺ軸のいずれか１軸に沿った直線加速度のみを検知する１軸の加速度検出手段を使用してもよい。例えば、この３軸、２軸、または１軸の加速度センサ７０１は、アナログ・デバイセズ株式会社（Ａｎａｌｏｇ  Ｄｅｖｉｃｅｓ，  Ｉｎｃ．）またはＳＴマイクロエレクトロニクス社（ＳＴＭｉｃｒｏｅｌｅｃｔｒｏｎｉｃｓ  Ｎ．Ｖ．）から入手可能であるタイプのものでもよい。加速度センサ７０１は、シリコン微細加工されたＭＥＭＳ（Ｍｉｃｒｏ  Ｅｌｅｃｔｒｏ  Ｍｅｃｈａｎｉｃａｌ  Ｓｙｓｔｅｍｓ：微小電子機械システム）の技術に基づいた静電容量式（静電容量結合式）であることが好ましい。しかしながら、既存の加速度検出手段の技術（例えば、圧電方式や圧電抵抗方式）あるいは将来開発される他の適切な技術を用いて３軸、２軸、または１軸の加速度センサ７０１が提供されてもよい。
【００５１】
加速度センサ７０１に用いられるような加速度検出手段は、加速度センサ７０１の持つ各軸に対応する直線に沿った加速度（直線加速度）のみを検知することができる。つまり、加速度センサ７０１からの直接の出力は、その１軸、２軸、または３軸のそれぞれに沿った直線加速度（静的または動的）を示す信号である。このため、加速度センサ７０１は、非直線状（例えば、円弧状）の経路に沿った動き、回転、回転運動、角変位、傾斜、位置、または姿勢等の物理特性を直接検知することはできない。
【００５２】
しかしながら、加速度センサ７０１から出力される加速度の信号に対して追加の処理を行うことによって、コントローラ７に関するさらなる情報を推測または算出（判定）することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。例えば、静的な加速度（重力加速度）が検知されると、加速度センサ７０１からの出力を用いて、傾斜角度と検知された加速度とを用いた演算によって重力ベクトルに対する対象（コントローラ７）の傾きを判定することができる。このように、加速度センサ７０１をマイコン７５１（またはゲーム装置本体５に含まれるＣＰＵ３０等の他のプロセッサ）と組み合わせて用いることによって、コントローラ７の傾き、姿勢、または位置を判定することができる。同様に、加速度センサ７０１を備えるコントローラ７がプレイヤの手で動的に加速されて動かされる場合に、加速度センサ７０１によって生成される加速度信号を処理することによって、コントローラ７の様々な動きおよび／または位置を算出することができる。他の実施例では、加速度センサ７０１は、信号をマイコン７５１に出力する前に内蔵の加速度検出手段から出力される加速度信号に対して所望の処理を行うための、組込み式の信号処理装置または他の種類の専用の処理装置を備えていてもよい。例えば、組込み式または専用の処理装置は、加速度センサ７０１が静的な加速度（例えば、重力加速度）を検出するためのものである場合、検知された加速度信号をそれに相当する傾斜角（あるいは、他の好ましいパラメータ）に変換するものであってもよい。加速度センサ７０１でそれぞれ検知された加速度を示すデータは通信部７５に出力される。
【００５３】
他の実施形態の例では、コントローラ７の動きを検出する動きセンサとして、回転素子または振動素子などを内蔵したジャイロセンサを用いてもよい。この実施形態で使用されるＭＥＭＳジャイロセンサの一例として、アナログ・デバイセズ株式会社から入手可能なものがある。加速度センサ７０１と異なり、ジャイロセンサは、それが内蔵する少なくとも一つのジャイロ素子の軸を中心とした回転（または角速度）を直接検知することができる。このように、ジャイロセンサと加速度センサとは基本的に異なるので、個々の用途のためにいずれの装置が選択されるかによって、これらの装置からの出力信号に対して行う処理を適宜変更する必要がある。
【００５４】
具体的には、加速度センサの代わりにジャイロセンサを用いて傾きや姿勢を算出する場合には、大幅な変更を行う。すなわち、ジャイロセンサを用いる場合、検出開始の状態において傾きの値を初期化する。そして、当該ジャイロセンサから出力される角速度データを積分する。次に、初期化された傾きの値からの傾きの変化量を算出する。この場合、算出される傾きは、角度に対応する値が算出されることになる。一方、加速度センサによって傾きを算出する場合には、重力加速度のそれぞれの軸に関する成分の値を、所定の基準と比較することによって傾きを算出するので、算出される傾きはベクトルで表すことが可能であり、初期化を行わずとも、加速度検出手段を用いて検出される絶対的な方向を検出することが可能である。また、傾きとして算出される値の性質は、ジャイロセンサが用いられる場合には角度であるのに対して、加速度センサが用いられる場合にはベクトルであるという違いがある。したがって、加速度センサに代えてジャイロセンサが用いられる場合、当該傾きのデータに対して、２つのデバイスの違いを考慮した所定の変換を行う必要がある。加速度検出手段とジャイロスコープとの基本的な差異と同様にジャイロスコープの特性は当業者に公知であるので、本明細書ではさらなる詳細を省略する。ジャイロセンサは、回転を直接検知できることによる利点を有する一方、一般的には、加速度センサは、本実施形態で用いるようなコントローラに適用される場合、ジャイロセンサに比べて費用効率が良いという利点を有する。
【００５５】
通信部７５は、マイクロコンピュータ（Ｍｉｃｒｏ  Ｃｏｍｐｕｔｅｒ：マイコン）７５１、メモリ７５２、無線モジュール７５３、およびアンテナ７５４を含んでいる。マイコン７５１は、処理の際にメモリ７５２を記憶領域として用いながら、送信データを無線送信する無線モジュール７５３を制御する。また、マイコン７５１は、アンテナ７５４を介して無線モジュール７５３が受信したゲーム装置本体５からのデータに応じて、サウンドＩＣ７０７およびバイブレータ７０４の動作を制御する。サウンドＩＣ７０７は、通信部７５を介してゲーム装置本体５から送信されたサウンドデータ等を処理する。また、マイコン７５１は、通信部７５を介してゲーム装置本体５から送信された振動データ（例えば、バイブレータ７０４をＯＮまたはＯＦＦする信号）等に応じて、バイブレータ７０４を作動させる。
【００５６】
コントローラ７に設けられた操作部７２からの操作信号（キーデータ）、加速度センサ７０１からの３軸方向の加速度信号（Ｘ、Ｙ、およびＺ軸方向加速度データ）、および撮像情報演算部７４からの処理結果データは、マイコン７５１に出力される。マイコン７５１は、入力した各データ（キーデータ、Ｘ、Ｙ、およびＺ軸方向加速度データ、処理結果データ）を通信ユニット６へ送信する送信データとして一時的にメモリ７５２に格納する。ここで、通信部７５から通信ユニット６への無線送信は、所定の周期毎に行われるが、ゲームの処理は１／６０秒を単位として行われることが一般的であるので、それよりも短い周期で送信を行うことが必要となる。具体的には、ゲームの処理単位は１６．７ｍｓ（１／６０秒）であり、ブルートゥース（登録商標）で構成される通信部７５の送信間隔は５ｍｓである。マイコン７５１は、通信ユニット６への送信タイミングが到来すると、メモリ７５２に格納されている送信データを一連の操作情報として出力し、無線モジュール７５３へ出力する。そして、無線モジュール７５３は、例えばＢｌｕｅｔｏｏｔｈ（ブルートゥース；登録商標）の技術を用いて、所定周波数の搬送波を用いて操作情報をその電波信号としてアンテナ７５４から放射する。つまり、コントローラ７に設けられた操作部７２からのキーデータ、加速度センサ７０１からのＸ、Ｙ、およびＺ軸方向加速度データ、および撮像情報演算部７４からの処理結果データがコントローラ７から送信される。そして、ゲーム装置本体５の通信ユニット６でその電波信号を受信し、ゲーム装置本体５で当該電波信号を復調や復号することによって、一連の操作情報（キーデータ、Ｘ、Ｙ、およびＺ軸方向加速度データ、および処理結果データ）を取得する。そして、ゲーム装置本体５のＣＰＵ３０は、取得した操作情報とゲームプログラムとに基づいて、ゲーム処理を行う。なお、Ｂｌｕｅｔｏｏｔｈ（登録商標）の技術を用いて通信部７５を構成する場合、通信部７５は、他のデバイスから無線送信された送信データを受信する機能も備えることができる。
【００５７】
次に、ゲーム装置本体５が行う具体的な処理を説明する前に、本ゲーム装置本体５で行うゲームの概要について説明する。なお、本実施形態では、プレイヤが野球ゲームをプレイする場合について説明するが、本発明は野球ゲーム以外のゲームにも適用可能である。
【００５８】
図８に示すように、コントローラ７は、全体として大人や子供の片手で把持可能な大きさである。プレイヤは、あたかも野球のバットを振るようにコントローラ７を振ることによって、仮想３次元空間内のキャラクタ（打者）にバットを振らせることができる。以下の説明では、コントローラ７を振る操作のことをスイング操作と称する。
【００５９】
図９は、仮想３次元空間において投手がボールを投げようとしているときにモニタ２の画面に表示されるゲーム画像例である。この後、投手はボールを投げる。投手が投げたボールが打者の横を通り過ぎるタイミングに合わせて、プレイヤがタイミング良くスイング操作を行うと、打者はバットでボールを打つ。打者によって打たれたボールは、仮想３次元空間のフィールドの上方を放物線を描いて飛ぶ。
【００６０】
図１０は、ボールが上昇（すなわちボールに作用する重力の反対の方向に移動）しているときにモニタ２の画面に表示されるゲーム画像例である。ボールが上昇している間は、ボールが画面の中央に表示されるので、スタンドや雲などの背景要素が勢い良く画面下方に向かって移動し、迫力のある画像が表示される。
【００６１】
図１１は、ボールが下降（すなわちボールに作用する重力と同じ方向に移動）しているときにモニタ２の画面に表示されるゲーム画像例である。ボールが下降している間は、ボール自体ではなく、ボールの影（ただし、ボールの影は、ボールを通る鉛直線とフィールドとが交差する地点に表示されるものとする）が画面の中央に表示されるので、プレイヤは、ボールの真下の地点や予定落下地点等の様子を画像から把握でき、例えば、ボールの予定落下地点に向かって走る他の野手の動きや、ボールがファウルラインの外側を飛んでいるのかファイルラインの内側を飛んでいるのかなどを画面上で確認することができる。
【００６２】
図９〜図１１のようなゲーム画像は、仮想３次元空間内に設定された仮想カメラに基づく透視投影変換処理によって生成される。特に、図１０や図１１のゲーム画像を生成するためには、ボールの移動に応じて仮想カメラを制御する必要がある。以下、図１２〜図１５を参照して、本実施形態における仮想カメラの制御方法について説明する。
【００６３】
図１２は、ボールが上昇しているときの仮想カメラの様子を示している。
【００６４】
なお、仮想３次元空間内のボールや仮想カメラの位置は、互いに直交する３つの座標軸（Ｘ軸、Ｙ軸、Ｚ軸）を用いたワールド座標によって表される。本実施形態では、一例として、Ｘ軸は三塁ベースから一塁ベースに向かう方向に関する座標軸であり、Ｙ軸は鉛直上方向（すなわち重力の反対方向）に関する座標軸であり、Ｚ軸は本塁から二塁ベースに向かう方向に関する座標軸であるものとする。仮想カメラは、ボールの軌道に応じて（例えば、ボールの移動方向や飛距離や到達高度に応じて）異なる位置に設置される。図１２〜図１４の例では、仮想カメラは本塁の後方（すなわちバックネットのあたり）に設置されている。
【００６５】
図１２のように、ボールが上昇している間は、ボールの現在位置に仮想カメラの注視点が設定される。なお、ボールの速度をワールド座標を用いた速度ベクトルＶ＝（Ｖｘ，Ｖｙ，Ｖｚ）で表せば、「ボールが上昇している間」は「Ｖｙが正である間」と言い換えることができる。
【００６６】
図１３は、ボールが上昇から下降に転じる瞬間（すなわちＶｙが０となる時点）における仮想カメラの様子を示している。ボールが上昇から下降に転じるとき、仮想カメラの注視点は、ボールの位置からボールの影の地点へと移動する。このとき、仮想カメラの注視点は、瞬時にボールの現在位置からボールの影の地点へと移動してもよいし、ボールの現在位置を離れてボールの影の地点へ徐々に近づくように移動してもよい。
【００６７】
図１４は、ボールが下降しているときの仮想カメラの様子を示している。ボールが下降している間（すなわちＶｙが負である間）は、ボールの影の地点に仮想カメラの注視点が設定される。
【００６８】
なお、上記のような注視点の制御に加えて、ボールの移動に応じて仮想カメラの画角も変化する。図１５は、本塁からボールまでの距離と、仮想カメラの画角との対応関係を示している。図１５に示すように、本塁からボールまでの距離が１４ｍから８０ｍまでの間は、本塁からボールまでの距離が長くなるほど仮想カメラの画角は小さくなる。すなわち、ボールが本塁から遠ざかるにつれて仮想カメラの倍率が高くなるので、仮想カメラからボールが遠ざかっていっても、画面上でボールがどんどん小さくなってしまうことは無く、迫力のあるゲーム画像が表示される。
【００６９】
ところで、一般的に仮想カメラの画角が小さいほど（すなわち仮想カメラの倍率が高いほど）、画面に表示される画像はより迫力のある画像となるが、視野が狭くなるために画面に表示される情報量は減ってしまう。しかしながら、本実施形態では前述のように、ボールが上昇から下降に転じたときに仮想カメラの注視点をボール自体の位置からボールの影の地点へと移動させるので、迫力のある表示のために仮想カメラの画角を小さくしたとしても、プレイヤは、ボールの真下の地点や予定落下地点等の様子を画像から把握できる。
【００７０】
以下、上記のような仮想カメラの制御を実現するためのゲーム装置３の詳細な動作を説明する。
【００７１】
図１６は、ゲーム装置本体５のメインメモリ３３のメモリマップの一例である。メインメモリ３３には、ゲームプログラム３３０，仮想カメラ制御変数，ボール制御変数，および影地点座標３３７が格納される。ゲームプログラム３３０は、ゲームの開始前に光ディスク４からメインメモリ３３にロードされる。仮想カメラ制御変数，ボール制御変数および影地点座標は、ゲームプログラム３３０に基づくゲーム処理時にＣＰＵ３０によって適宜に更新される。
【００７２】
仮想カメラ制御変数には、視点座標３３１，現在注視点座標３３２，目標注視点座標３３３および画角３３４が含まれる。視点座標３３１は、仮想３次元空間における仮想カメラの位置を示す３次元座標である。現在注視点座標３３２は、仮想カメラの注視点の現在位置を示す３次元座標であり、目標注視点座標３３３は、仮想カメラの注視点の目標位置を示す３次元座標である。なお、目標注視点座標３３３は、現在注視点座標３３２を更新するときに参照されるだけであり、実際のゲーム画像の描画処理では現在注視点座標３３２が用いられる。画角３３４は、仮想カメラの画角である。
【００７３】
ボール制御変数には、現在位置座標３３５および速度ベクトル３３６が含まれる。現在位置座標３３５は、仮想３次元空間におけるボールの現在位置を示す３次元座標である。速度ベクトル３３６は、ボールの移動速度（大きさおよび方向を含む）を示す３次元ベクトルである。
【００７４】
影地点座標３３７は、仮想３次元空間におけるボールの影の地点（より正確には、ボールを通る鉛直線とフィールドとが交差する地点）の３次元座標である。
【００７５】
次に、図１７および図１８のフローチャートを参照して、ゲームプログラム３３０に基づくＣＰＵ３０の動作を説明する。なお、図１７のフローチャートでは、便宜上、ゲーム画像の描画処理（仮想カメラに基づく透視投影変換処理）を省略しているが、実際には一定の周期（例えば１６．７ｍｓｅｃの周期）でゲーム画像の描画処理が行われてモニタ２の画面に表示されるゲーム画像が更新される。
【００７６】
図１７において、メイン処理が開始されると、ＣＰＵ３０はステップＳ１０で、ゲームが終了したかどうかを判断する。そして、ゲームが終了した場合にはメイン処理を終了し、ゲームが終了していない場合には処理はステップＳ１２に進む。
【００７７】
ステップＳ１２では、ＣＰＵ３０は仮想カメラ制御変数を初期化する。具体的には、図９のようなゲーム画像が生成できるように仮想カメラの視点座標３３１，現在注視点座標３３２，目標注視点座標３３３および画角３３４が設定される。
【００７８】
ステップＳ１４では、ＣＰＵ３０は、投手が投球を開始するかどうかを例えばタイマの値により判断する。そして、投手が投球を開始した場合には処理はステップＳ１６に進む。
【００７９】
ステップＳ１６では、ＣＰＵ３０はボールの速度ベクトル３３６を更新する。具体的には、重力，空気抵抗およびボールの回転方向（ストレート，カーブ，シュート，フォーク等）に応じてボールの速度ベクトル３３６が更新される。
【００８０】
ステップＳ１８では、ＣＰＵ３０はステップＳ１６で更新された速度ベクトル３３６に応じてボールの現在位置座標３３５を更新する。ステップＳ１８の処理が一定の周期で繰り返し実行されることによって、ボールが投手から捕手へ向かって移動するアニメーション表示が実現される。
【００８１】
ステップＳ２０では、ＣＰＵ３０は、ボールの現在位置座標３３５を参照して、ボールが捕手に到達したかどうかを判断する。そして、ボールが捕手に到達した場合には処理はステップＳ１０に戻り、ボールが捕手に到達していない場合には処理はステップＳ２２に進む。
【００８２】
ステップＳ２２では、ＣＰＵ３０は、通信ユニット６によって受信されるコントローラ７からの操作情報に基づいて、プレイヤによってスイング操作が行われたかどうかを判断する。そして、スイング操作が行われた場合には処理はステップＳ２４に進み、スイング操作が行われていない場合には処理はステップＳ１６に戻る。
【００８３】
ステップＳ２４では、ＣＰＵ３０は、打者が持つバットの位置を更新する。ステップＳ２４の処理が一定の周期で繰り返し実行されることによって、打者がバットを振るアニメーション表示が実現される。
【００８４】
ステップＳ２６では、ＣＰＵ３０は、ボールの現在位置座標３３５とバットの現在位置に基づいて、ボールがバットに当たったかどうかを判断する。そして、ボールがバットに当たった場合には処理はステップＳ２８に進み、ボールがバットに当たっていない場合には処理はステップＳ１６に戻る。
【００８５】
ステップＳ２８では、ＣＰＵ３０はボールの初速度（大きさおよび方向）を決定し、決定された初速度に応じてボールの速度ベクトル３３６を更新する。
【００８６】
ステップＳ３０では、ステップＳ２８で決定された初速度からボールの軌道を計算し、計算されたボールの軌道に応じて仮想カメラの視点座標３３１を決定する。例えば、ボールの軌道がライト方向の場合は一塁側スタンドのあたりに仮想カメラの視点座標３３１を設定し、ボールの軌道がセンター方向の場合はバックスタンドのあたりに仮想カメラの視点座標３３１を設定し、ボールの軌道がレフト方向の場合は三塁側スタンドのあたりに仮想カメラの視点座標３３１を設定する。
【００８７】
ステップＳ３２では、ＣＰＵ３０はボールの速度ベクトル３３６を更新する。具体的には、重力，空気抵抗に応じてボールの速度ベクトル３３６が更新される。ステップＳ３２の処理が一定の周期で繰り返し実行されることによって、ボールの速度ベクトル３３６のＹ座標値Ｖｙは重力の影響によって徐々に減少する。
【００８８】
ステップＳ３４では、ＣＰＵ３０はステップＳ３２で更新された速度ベクトル３３６に応じてボールの現在位置座標３３５を更新する。ステップＳ３４の処理が一定の周期で繰り返し実行されることによって、フィールドの上方をボールが略放物線状に移動するアニメーション表示が実現される。
【００８９】
ステップＳ３６では、ＣＰＵ３０は、打球後（すなわちボールがバットに当たってから）、所定時間以上経過したかどうかを判断する。そして、所定時間以上経過している場合には処理はステップＳ３８に進み、所定時間以上経過していない場合には処理はステップＳ４０に進む。なお、ステップＳ３６の判断は、ボールがバットに当たった瞬間からカウントを開始するタイマの値を参照することによって行われる。ステップＳ３６の処理は、打球から一定時間は仮想カメラ制御変数を変化させないことによって、打球直後の投手と打者の様子をプレイヤが画面上で確認できるようにするための処理である。
【００９０】
ステップＳ３８では、ＣＰＵ３０は仮想カメラ制御処理を行う。以下、図１８のフローチャートを参照して仮想カメラ制御処理の詳細を説明する。
【００９１】
仮想カメラ制御処理が開始されると、ステップＳ５０で、ＣＰＵ３０は、ボールの速度ベクトル３３６のＹ座標値が正かどうか（すなわちボールが上昇中かどうか）を判断する。そして、ボールの速度ベクトル３３６のＹ座標値が正である場合には処理はステップＳ５２に進み、ボールの速度ベクトル３３６のＹ座標値が正でない場合には処理はステップＳ５４に進む。
【００９２】
ステップＳ５２では、ＣＰＵ３０は、目標注視点座標３３３としてボールの現在位置座標３３５を設定する。そして、処理はステップＳ５８に進む。
【００９３】
ステップＳ５４では、ＣＰＵ３０は、ボールの現在位置座標３３５から影地点座標３３７を計算する。
【００９４】
ステップＳ５６では、ＣＰＵ３０は、目標注視点座標３３３として影地点座標３３７を設定する。そして、処理はステップＳ５８に進む。
【００９５】
ステップＳ５８では、ＣＰＵ３０は、ステップＳ５２またはステップＳ５６で更新された目標注視点座標３３３に基づいて現在注視点座標３３２を更新する。例えば、更新前の現在注視点座標３３２をＴとし、更新後の現在注視点座標３３２をＴ’とし、ボールの現在位置座標３３５をＰとしたとき、更新後の現在注視点座標３３２であるＴ’を、Ｔ’＝Ｔ＋（Ｐ−Ｔ）×０．０５の計算式により算出してもよい。この場合、現在注視点座標３３２は、現在注視点座標３３２と目標注視点座標３３３の間の距離の大きさに比例した速度で目標注視点座標３３３に近づくことになる。他の例として、現在注視点座標３３２が目標注視点座標３３３に常に一定の速度で近づくように現在注視点座標３３２を更新するようにしてもよい。さらに他の例として、ボールが上昇から下降に転じたときに、目標注視点座標３３３がボールの現在位置座標３３５から影地点座標３３７に向かって徐々に移動するように、目標注視点座標３３３を繰り返し更新しても良い。
【００９６】
上記のように、現在注視点座標３３２を目標注視点座標３３３に徐々に近付けることによって、仮想カメラの向きが急激に変化してプレイヤが戸惑ってしまうことを防止することができる。ただし、本発明はこれに限定されず、仮想カメラの注視点をボールの現在位置座標３３５または影地点座標３３７に瞬時に移動させるようにしても構わない。
【００９７】
ステップＳ６０では、ＣＰＵ３０は、ボールの現在位置座標３３５を参照して本塁からボールの現在位置までの距離を計算する。
【００９８】
ステップＳ６２では、ＣＰＵ３０は、ステップＳ６０で計算された距離と図１５の関係とに基づいて、仮想カメラの画角３３４を更新する。なお、仮想カメラの画角３３４についても、上記のような現在注視点座標を目標注視点座標に徐々に近付ける処理と同様に、現在画角を目標画角に徐々に近付けるようにしても構わない。これにより、仮想カメラの画角が急激に変化してプレイヤが戸惑ってしまうことを防止することができる。
【００９９】
以上のような仮想カメラ制御処理が終了すると、処理は図１７のステップＳ４０に進む。
【０１００】
ステップＳ４０では、ＣＰＵ３０は、ボールの現在位置座標３３５に基づいて、ボールがフィールドに着地、またはボールが野手に捕球されたかどうかを判断する。そして、ボールが着地または捕球された場合には、処理はステップＳ４２に進み、ボールが着地も捕球もされていない場合には、処理はステップＳ３２に戻る。
【０１０１】
ステップＳ４２では、ＣＰＵ３０は、ボールがフィールドに着地、またはボールが野手に捕球された後のゲーム処理（例えば、走塁処理や送球処理など）を行う。そして、処理はステップＳ１０に戻る。
【０１０２】
以上のように、本実施形態によれば、ボールが上昇している間は、ボールが画面の中央に表示されるので、スタンドや雲などの背景要素が勢い良く画面下方に向かって移動し、迫力のある画像が表示される。さらに、ボールが下降している間は、ボール自体ではなく、ボールの影が画面の中央に表示されるので、プレイヤは、ボールの真下の地点や予定落下地点等の様子を画像から把握できる。特に、上記のような仮想カメラの注視点の動きは、現実の球場における一般的な観戦者の視線の動きと同じであるため、プレイヤは、あたかも自分が実際に仮想３次元空間内にいるかのような臨場感を味わうことができる。
【０１０３】
また、本実施形態では、ボールが上昇から下降に転じた時点で仮想カメラの注視点がボールの現在位置からボールの影の地点へと移動するので、常に適したタイミングで仮想カメラの注視点の移動が行われる。より詳しく説明すると、例えば、ボールがバットに当たってから一定時間が経過した時点で仮想カメラの注視点をボールの現在位置からボールの影の地点へと移動するような仮想カメラの制御方法を採用した場合、ボールの滞空時間が長い場合には、最適なタイミングよりも早いタイミングで仮想カメラの注視点の移動が行われてしまい、ボールの滞空時間が短い場合には、最適なタイミングよりも遅いタイミングで仮想カメラの注視点の移動が行われてしまうことになる。しかしながら、本実施形態のような仮想カメラの制御方法によれば、ボールの速度（特に重力方向成分）に基づいて仮想カメラの注視点の移動が行われるので、ボールの滞空時間によらず、常に適したタイミングで仮想カメラの注視点の移動が行われる。
【０１０４】
なお、本実施形態では、ボールが上昇から下降に転じた時点（すなわちボールの速度ベクトル３３６のＹ座標値が０になった時点）で仮想カメラの注視点がボールの現在位置からボールの影の地点へと移動する例を説明したが、本発明はこれに限定されない。例えば、ボールの速度ベクトル３３６のＹ座標値が０以外の予め定められた値（例えば−５）になった時点で、仮想カメラの注視点がボールの現在位置からボールの影の地点へと移動するようにしてもよい。他の例として、ボールの速度ベクトル３３６の大きさ（つまり√（Ｖｘ2＋Ｖｙ2＋Ｖｚ2））を監視し、ボールの速度ベクトル３３６の大きさが減少から増加に転じた時点で、仮想カメラの注視点がボールの現在位置からボールの影の地点へと移動するようにしてもよい。
【０１０５】
なお、本実施形態では、ボールが下降している間は、ボールの影の地点（図１４のＰ２）に仮想カメラの注視点が設定される例を説明したが、本発明はこれに限定されない。一つの変形例として、図１９に示すように、ボールが下降している間は、ボールの予定落下地点Ｐ３に仮想カメラの注視点が設定されるようにしても構わない。図２０は、この変形例において、ボールが下降しているときにモニタ２の画面に表示されるゲーム画像例である。この変形例においても、プレイヤは、ボールが勢い良く上昇していく様子を迫力のある画像で確認でき、なおかつボールの真下の地点や予定落下地点等の様子を画面上で把握することができる。さらなる変形例として、ボールが下降している間は、ボールの影の地点（図１４のＰ２）とボールの予定落下地点（図１９のＰ３）の中間地点に仮想カメラの注視点が設定されるようにしても構わない。
【０１０６】
なお、本実施形態では、フィールドの上方をボールが移動する様子を示す画像を生成する例を説明したが、本発明はこれに限定されず、ボール以外の任意のオブジェクトがフィールドの上方を移動する様子を示す画像を生成する場合にも本発明を適用することができる。
【図面の簡単な説明】
【０１０７】
【図１】本発明の一実施形態に係るゲームシステム１の外観図
【図２】ゲーム装置本体５の構成を示すブロック図
【図３】コントローラ７の上面後方から見た斜視図
【図４】コントローラ７を下面後方から見た斜視図
【図５】コントローラ７の上筐体を外した状態を示す斜視図
【図６】コントローラ７の下筐体を外した状態を示す斜視図
【図７】コントローラ７の構成を示すブロック図
【図８】ユーザのスイング操作を示す図
【図９】モニタ２の画面に表示されるゲーム画像例
【図１０】モニタ２の画面に表示されるゲーム画像例
【図１１】モニタ２の画面に表示されるゲーム画像例
【図１２】ボールが上昇しているときの仮想カメラの様子を示す図
【図１３】ボールが上昇から下降に転じる瞬間における仮想カメラの様子を示す図
【図１４】ボールが下降しているときの仮想カメラの様子を示す図
【図１５】本塁からボールまでの距離と仮想カメラの画角との対応関係を示す図
【図１６】メインメモリ３３のメモリマップ
【図１７】ゲームプログラム３３０に基づくＣＰＵ３０の動作を示すフローチャート
【図１８】仮想カメラ制御処理の詳細を示すフローチャート
【図１９】変形例においてボールが下降しているときの仮想カメラの様子を示す図
【図２０】変形例においてモニタ２の画面に表示されるゲーム画像例
【符号の説明】
【０１０８】
１    ゲームシステム
２    モニタ
２ａ    スピーカ
３    ゲーム装置
３０    ＣＰＵ
３１    メモリコントローラ
３２    ＧＰＵ
３３    メインメモリ
３４    ＤＳＰ
３５    ＡＲＡＭ
３６    コントローラＩ／Ｆ
３７    ビデオＩ／Ｆ
３８    フラッシュメモリ
３９    オーディオＩ／Ｆ
４    光ディスク
４０    ディスクドライブ
４１    ディスクＩ／Ｆ
４２    ＬＥＤ制御部
５    ゲーム装置本体
６    通信ユニット
７    コントローラ
７００    基板
７０１    加速度センサ
７０２    ＬＥＤ
７０３    水晶振動子
７０４    バイブレータ
７０５    電池
７０６    スピーカ
７０７    サウンドＩＣ
７０８    アンプ
７１    ハウジング
７２    操作部
７３    コネクタ
７４    撮像情報演算部
７４１    赤外線フィルタ
７４２    レンズ
７４３    撮像素子
７４４    画像処理回路
７５    通信部
７５１    マイコン
７５２    メモリ
７５３    無線モジュール
７５４    アンテナ
８    センサバー
８ａ，８ｂ    マーカ
【図１】
2008125550.tif 000003
【図２】
2008125550.tif 000004
【図３】
2008125550.tif 000005
【図４】
2008125550.tif 000006
【図５】
2008125550.tif 000007
【図６】
2008125550.tif 000008
【図７】
2008125550.tif 000009
【図８】
2008125550.tif 000010
【図９】
2008125550.tif 000011
【図１０】
2008125550.tif 000012
【図１１】
2008125550.tif 000013
【図１２】
2008125550.tif 000014
【図１３】
2008125550.tif 000015
【図１４】
2008125550.tif 000016
【図１５】
2008125550.tif 000017
【図１６】
2008125550.tif 000018
【図１７】
2008125550.tif 000019
【図１８】
2008125550.tif 000020
【図１９】
2008125550.tif 000021
【図２０】
2008125550.tif 000022