(57)【特許請求の範囲】
【請求項１】
３次元ゲーム空間に配置されたカメラの位置にカメラ座標系を規定し、前記３次元ゲーム空間を移動する移動体を画像表示部に表示するゲームを実行可能なコンピュータの制御部に、
記憶部に格納される、前記カメラの視点の位置を示す視点用の位置データを、認識する視点位置認識機能と、
記憶部に格納される、前記カメラの注視点の位置を示す注視点用の位置データを、認識する注視点位置認識機能と、
前記視点用の位置データが示す前記カメラの視点から前記注視点用の位置データが示す前記カメラの注視点へと向かう方向に向いた前記カメラから見える視錐領域を、認識する視錐領域認識機能と、
前記カメラの視点および前記カメラの注視点の少なくともいずれか一方の移動を制御するために前記視錐領域の内部に設けられた視錐内領域を、認識する視錐内領域認識機能と、
前記移動体の位置を示す移動体用の位置データを、認識する移動体位置認識機能と、
記憶部に格納された、前記視点用の位置データおよび前記注視点用の位置データに基づいて、前記カメラの視点を基点として前記カメラの視点と前記カメラの注視点とを結ぶ第１方向の第１方向ベクトルを算出する処理を、実行する第１方向ベクトル算出機能と、
記憶部に格納された、前記視点用の位置データおよび前記移動体用の位置データに基づいて、前記カメラの視点を基点として前記カメラの視点と前記移動体とを結ぶ第２方向の第２方向ベクトルを算出する処理を、実行する第２方向ベクトル算出機能と、
前記移動体が前記視錐内領域の内部に位置するか否かを、判定する位置判定機能と、
前記移動体が前記視錐内領域の外部に位置すると判定された場合に、前記移動体が前記視錐内領域の内部に位置するように、前記カメラの視点および前記カメラの注視点の少なくともいずれか一方を移動する処理を、実行する第１視点制御機能と、
前記第１方向ベクトルと前記第２方向ベクトルとに基づいて、前記第１方向と前記第２方向とが一致するか否かを、判別する方向判別機能と、
前記第１方向と前記第２方向とが一致したと判別された場合に、前記カメラの視点の移動および前記カメラの注視点の移動を停止する処理を、実行する第２視点制御機能と、
を実現させるためのゲームプログラム。
【請求項２】
前記第１視点制御機能では、前記移動体が前記視錐内領域の外部に位置すると判定された場合に、前記移動体が前記視錐内領域の内部に位置するように前記カメラの視点を移動する処理を、実行し、
前記第２視点制御機能では、前記移動体が前記視錐内領域の外部に位置すると判定された後に、前記移動体が前記視錐内領域の内部に位置すると判定された場合、前記第１方向と前記第２方向とが一致したと判別されたときに、前記カメラの視点の移動および前記カメラの注視点の移動を停止する処理を、実行する、
請求項１に記載のゲームプログラム。
【請求項３】
前記コンピュータの制御部に、
前記移動体の位置を示す移動体用の位置データを、認識する移動体位置認識機能と、
記憶部に格納された、前記視点用の位置データおよび前記移動体用の位置データに基づいて、前記カメラの視点の位置と前記移動体の位置との間の距離を示す距離データを算出する処理を、実行する距離算出機能と、
前記距離データに対応する、前記カメラの視点および前記カメラの注視点の少なくともいずれか一方の移動速度を示すカメラ用の速度データを、認識するカメラ速度認識機能と、
をさらに実現させ、
前記第１視点制御機能では、前記移動体が前記視錐内領域の外部に位置すると判定された場合に、前記カメラ用の速度データに基づいて、前記移動体が前記視錐内領域の内部に位置するように前記カメラの視点および前記カメラの注視点の少なくともいずれか一方を移動する処理を、実行する、
請求項１又は２に記載のゲームプログラム。
【請求項４】
前記カメラ速度認識機能では、前記距離データが示す距離の増加に応じて前記カメラの視点および前記カメラの注視点の少なくともいずれか一方の移動速度が小さくなるような、前記カメラ用の速度データを、認識する、
請求項３に記載のゲームプログラム。
【請求項５】
前記カメラ速度認識機能では、前記距離データが示す距離の増加に応じて前記カメラの視点および前記カメラの注視点の少なくともいずれか一方の移動速度が小さくなるような、前記距離データに対応する前記カメラ用の加速度データを、認識し、前記カメラ用の加速度データに基づいて算出された前記カメラ用の速度データを、認識する、
請求項４に記載のゲームプログラム。
【請求項６】
３次元ゲーム空間に配置されたカメラの位置にカメラ座標系を規定し、前記３次元ゲーム空間を移動する移動体を画像表示部に表示するゲームを実行可能なゲーム装置であって、
前記ゲーム装置の制御部は、
記憶部に格納される、前記カメラの視点の位置を示す視点用の位置データを、認識する視点位置認識手段と、
記憶部に格納される、前記カメラの注視点の位置を示す注視点用の位置データを、認識する注視点位置認識手段と、
前記視点用の位置データが示す前記カメラの視点から前記注視点用の位置データが示す前記カメラの注視点へと向かう方向に向いた前記カメラから見える視錐領域を、認識する視錐領域認識手段と、
前記カメラの視点および前記カメラの注視点の少なくともいずれか一方の移動を制御するために前記視錐領域の内部に設けられた視錐内領域を、認識する視錐内領域認識手段と、
前記移動体の位置を示す移動体用の位置データを、認識する移動体位置認識手段と、
記憶部に格納された、前記視点用の位置データおよび前記注視点用の位置データに基づいて、前記カメラの視点を基点として前記カメラの視点と前記カメラの注視点とを結ぶ第１方向の第１方向ベクトルを算出する処理を、実行する第１方向ベクトル算出手段と、
記憶部に格納された、前記視点用の位置データおよび前記移動体用の位置データに基づいて、前記カメラの視点を基点として前記カメラの視点と前記移動体とを結ぶ第２方向の第２方向ベクトルを算出する処理を、実行する第２方向ベクトル算出手段と、
前記移動体が前記視錐内領域の内部に位置するか否かを、判定する位置判定手段と、
前記移動体が前記視錐内領域の外部に位置すると判定された場合に、前記移動体が前記視錐内領域の内部に位置するように、前記カメラの視点および前記カメラの注視点の少なくともいずれか一方を移動する処理を、実行する第１視点制御手段と、
前記第１方向ベクトルと前記第２方向ベクトルとに基づいて、前記第１方向と前記第２方向とが一致するか否かを、判別する方向判別手段と、
前記第１方向と前記第２方向とが一致したと判別された場合に、前記カメラの視点の移動および前記カメラの注視点の移動を停止する処理を、実行する第２視点制御手段と、
を備えるゲーム装置。
【請求項７】
３次元ゲーム空間に配置されたカメラの位置にカメラ座標系を規定し、前記３次元ゲーム空間を移動する移動体を画像表示部に表示するゲームをコンピュータにより制御可能なゲーム制御方法であって、
前記コンピュータの制御部は、
記憶部に格納される、前記カメラの視点の位置を示す視点用の位置データを、認識する視点位置認識ステップと、
記憶部に格納される、前記カメラの注視点の位置を示す注視点用の位置データを、認識する注視点位置認識ステップと、
前記視点用の位置データが示す前記カメラの視点から前記注視点用の位置データが示す前記カメラの注視点へと向かう方向に向いた前記カメラから見える視錐領域を、認識する視錐領域認識ステップと、
前記カメラの視点および前記カメラの注視点の少なくともいずれか一方の移動を制御するために前記視錐領域の内部に設けられた視錐内領域を、認識する視錐内領域認識ステップと、
前記移動体の位置を示す移動体用の位置データを、認識する移動体位置認識ステップと、
記憶部に格納された、前記視点用の位置データおよび前記注視点用の位置データに基づいて、前記カメラの視点を基点として前記カメラの視点と前記カメラの注視点とを結ぶ第１方向の第１方向ベクトルを算出する処理を、実行する第１方向ベクトル算出ステップと、
記憶部に格納された、前記視点用の位置データおよび前記移動体用の位置データに基づいて、前記カメラの視点を基点として前記カメラの視点と前記移動体とを結ぶ第２方向の第２方向ベクトルを算出する処理を、実行する第２方向ベクトル算出ステップと、
前記移動体が前記視錐内領域の内部に位置するか否かを、判定する位置判定ステップと、
前記移動体が前記視錐内領域の外部に位置すると判定された場合に、前記移動体が前記視錐内領域の内部に位置するように、前記カメラの視点および前記カメラの注視点の少なくともいずれか一方を移動する処理を、実行する第１視点制御ステップと、
前記第１方向ベクトルと前記第２方向ベクトルとに基づいて、前記第１方向と前記第２方向とが一致するか否かを、判別する方向判別ステップと、
前記第１方向と前記第２方向とが一致したと判別された場合に、前記カメラの視点の移動および前記カメラの注視点の移動を停止する処理を、実行する第２視点制御ステップと、
を実行するゲーム制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲームプログラム、特に、３次元ゲーム空間に配置されたカメラの位置にカメラ座標系を規定し、前記３次元ゲーム空間を移動する移動体を画像表示部に表示するゲームを実現するためのゲームプログラムに関する。また、このゲームプログラムを実行可能なゲーム装置、およびこのゲームプログラムに基づいてコンピュータにより制御されるゲーム制御方法に関する。
【背景技術】
【０００２】
従来から様々なビデオゲームが提案されている。これらビデオゲームは、ゲーム装置において実行されるようになっている。たとえば、一般的なゲーム装置は、モニタと、モニタとは別体のゲーム機本体と、ゲーム機本体とは別体の入力装置たとえばコントローラとを有している。コントローラには、複数の入力釦が配置されている。
【０００３】
このようなゲーム装置において実現されるビデオゲームの１つとして、たとえば、野球ゲームが知られている（非特許文献１を参照）。
【０００４】
この野球ゲームでは、たとえば、投手キャラクタと右打者キャラクタとが対戦する場合、投手キャラクタがモニタ中央部に表示され、右打者キャラクタがモニタ左部に表示される。また、このときには、ホームベースがモニタ中央下部に表示され、外野のスタンドがモニタ上部に表示される。この状態において、投手キャラクタが投球モーションを開始し、ボールが投手キャラクタから投球されると、投球されたボールがモニタに表示される。そして、投球されたボールが打者キャラクタにより打ち返されると、打ち返されたボールがモニタに表示される。
【０００５】
この場合、投手キャラクタが投球モーションを開始してから、投球されたボールが打者キャラクタにより打ち返されるまでの間は、３次元ゲーム空間に配置されたカメラの視線は、投手キャラクタの位置に固定されている。そして、投球されたボールが打者キャラクタにより打ち返されると、カメラの視線が、打ち返されたボール（移動中のボール）を追いかけながら移動する。このようにカメラの視線を制御することにより、投手キャラクタが投球モーションを開始してから、投球されたボールが打者キャラクタにより打ち返された後までの画像を、モニタに表示することができる。
【非特許文献１】プロ野球スピリッツ４、コナミデジタルエンタテインメント、ＰＳ３版、２００７年４月１日
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来の野球ゲームでは、対戦状況に応じて、カメラの視線が投手キャラクタの位置に固定されていたり、カメラの視線がボールの移動に追随したりするようになっていた。このため、たとえば打者キャラクタにより打ち返されたボールがスタンドに入った場合、スタンドでボールが飛び跳ねると、カメラの視線がボールの動きに連動して逐一移動してしまい、映像が見づらくなるという問題があった。
【０００７】
一方で、従来の野球ゲームでは、ゲーム提供者が、対戦状況ごとにカメラの視線の動きを任意に設定していた。たとえば、上記の例では、ゲーム提供者が、カメラの視線を投手キャラクタの位置に固定する命令と、カメラの視線をボールの移動に追随させる命令を、任意に設定していた。
【０００８】
しかしながら、近年のゲーム装置の高速化に伴い、現実世界の野球と同じような多彩な対戦状況が、野球ゲームにおいても実現されるようになると、対戦状況の数が非常に多くなってしまい、ゲーム提供者がカメラの視線の動きを設定する際に費やす労力が、大きくなってしまうという問題があった。
【０００９】
このような問題を解決するために、本発明では、カメラの視線が移動体に追随したとしても映像が見やすいゲームを提供することを目的とする。また、本発明では、カメラの視線の動きを容易に設定することができるゲームを提供することを目的とする。
【課題を解決するための手段】
【００１０】
請求項１に係るゲームプログラムは、３次元ゲーム空間に配置されたカメラの位置にカメラ座標系を規定し、３次元ゲーム空間を移動する移動体を画像表示部に表示するゲームを実行可能なコンピュータの制御部に、以下の機能を実現させるためのプログラムである。
（１）記憶部に格納される、カメラの視点の位置を示す視点用の位置データを、認識する視点位置認識機能。
（２）記憶部に格納される、カメラの注視点の位置を示す注視点用の位置データを、認識する注視点位置認識機能。
（３）視点用の位置データが示すカメラの視点から注視点用の位置データが示すカメラの注視点へと向かう方向に向いたカメラから見える視錐領域を、認識する視錐領域認識機能。
（４）カメラの視点およびカメラの注視点の少なくともいずれか一方の移動を制御するために視錐領域の内部に設けられた視錐内領域を、認識する視錐内領域認識機能。
（５）移動体の位置を示す移動体用の位置データを、認識する移動体位置認識機能。
（６）記憶部に格納された、視点用の位置データおよび注視点用の位置データに基づいて、カメラの視点を基点としてカメラの視点とカメラの注視点とを結ぶ第１方向の第１方向ベクトルを算出する処理を、実行する第１方向ベクトル算出機能。
（７）記憶部に格納された、視点用の位置データおよび移動体用の位置データに基づいて、カメラの視点を基点としてカメラの視点と移動体とを結ぶ第２方向の第２方向ベクトルを算出する処理を、実行する第２方向ベクトル算出機能。
（８）移動体が視錐内領域の内部に位置するか否かを、判定する位置判定機能と、
（９）移動体が視錐内領域の外部に位置すると判定された場合に、移動体が視錐内領域の内部に位置するように、カメラの視点およびカメラの注視点の少なくともいずれか一方を移動する処理を、実行する第１視点制御機能。
（１０）第１方向ベクトルと第２方向ベクトルとに基づいて、第１方向と第２方向とが一致するか否かを、判別する方向判別機能。
（１１）第１方向と第２方向とが一致したと判別された場合に、カメラの視点の移動およびカメラの注視点の移動を停止する処理を、実行する第２視点制御機能。
【００１１】
このゲームプログラムでは、視点位置認識機能において、記憶部に格納される、カメラの視点の位置を示す視点用の位置データを、認識する。注視点位置認識機能においては、記憶部に格納される、カメラの注視点の位置を示す注視点用の位置データを、認識する。視錐領域認識機能においては、視点用の位置データが示すカメラの視点から注視点用の位置データが示すカメラの注視点へと向かう方向に向いたカメラから見える視錐領域を、認識する。視錐内領域認識機能においては、カメラの視点およびカメラの注視点の少なくともいずれか一方の移動を制御するために視錐領域の内部に設けられた視錐内領域を、認識する。移動体位置認識機能においては、移動体の位置を示す移動体用の位置データを、認識する。第１方向ベクトル算出機能においては、記憶部に格納された、視点用の位置データおよび注視点用の位置データに基づいて、カメラの視点を基点としてカメラの視点とカメラの注視点とを結ぶ第１方向の第１方向ベクトルを算出する処理を、実行する。第２方向ベクトル算出機能においては、記憶部に格納された、視点用の位置データおよび移動体用の位置データに基づいて、カメラの視点を基点としてカメラの視点と移動体とを結ぶ第２方向の第２方向ベクトルを算出する処理を、実行する。位置判定機能においては、移動体が視錐内領域の内部に位置するか否かを、判定する。第１視点制御機能においては、移動体が視錐内領域の外部に位置すると判定された場合に、移動体が視錐内領域の内部に位置するように、カメラの視点およびカメラの注視点の少なくともいずれか一方を移動する処理を、実行する。方向判別機能においては、第１方向ベクトルと第２方向ベクトルとに基づいて、第１方向と第２方向とが一致するか否かを、判別する。第２視点制御機能においては、第１方向と第２方向とが一致したと判別された場合に、カメラの視点の移動およびカメラの注視点の移動を停止する処理を、実行する。
【００１２】
たとえば、本ゲームプログラムを用いることにより野球ゲームが実行された場合、カメラ視点の位置を示す視点用の位置データが、認識される。また、カメラの注視点の位置を示す注視点用の位置データが、認識される。そして、視点用の位置データが示すカメラの視点から注視点用の位置データが示すカメラの注視点へと向かう方向に向いたカメラから見える視錐領域が、認識される。そして、カメラ視点およびカメラの注視点の少なくともいずれか一方の移動を制御するために視錐領域の内部に設けられた視錐内領域が、認識される。そして、ボールが視錐内領域の内部に位置するか否かが、判定される。そして、ボールが視錐内領域の外部に位置すると判定された場合に、ボールが視錐内領域の内部に位置するように、カメラ視点およびカメラの注視点の少なくともいずれか一方を移動する処理が、実行される。そして、ボールが視錐内領域の内部の所定の位置に位置した場合に、カメラの視点の移動およびカメラの注視点の移動を停止する処理が、実行される。
【００１３】
この場合、ボールが視錐内領域の外部に位置すると判定された場合に、ボールが視錐内領域の内部に位置するように、カメラ視点およびカメラの注視点の少なくともいずれか一方を移動する処理が、実行される。すなわち、ボールが視錐内領域の外部に位置したときに、ボールが視錐内領域の内部に位置するように、カメラ視点およびカメラの注視点の少なくともいずれか一方がボールの動きに追随して移動する。
【００１４】
これにより、たとえば、ボールが視錐内領域の内部に位置するときには、カメラ視点およびカメラの注視点がボールの動きに追随しないようにしておけば、打者キャラクタにより打ち返されたボールがスタンドで飛び跳ねても、カメラの視線がボールの動きに連動して逐一移動しなくなり、映像が見やすくなる。また、ボールが視錐内領域の内部に位置するようにカメラ視点およびカメラの注視点の少なくともいずれか一方をボールの動きに追随して移動させることにより、ゲーム提供者が対戦状況ごとにカメラの視線の動きを任意に設定しなくても、カメラの視線の動きを自動的に設定することができる。
【００１５】
以上の内容を一般的に記述すると、請求項１の発明では、カメラの視線が移動体に追随したとしても、映像が見にくくならないようにすることができる。また、請求項１の発明では、カメラの視線の動きを容易に設定することができる。
【００１６】
また、この場合、ボールが視錐内領域の内部の所定の位置に位置した場合に、カメラの視点の移動およびカメラの注視点の移動を停止する処理が、実行される。これにより、たとえば、打者キャラクタにより打ち返されたボールが移動しているときに、ボールが視錐内領域の内部の所定の位置に位置すると、カメラ視点の移動が停止されるので、打者キャラクタにより打ち返されたボールが移動する状態を示す映像が見やすくなる。また、打者キャラクタにより打ち返されたボールがスタンドで飛び跳ねても、カメラの視線がボールの動きに連動して逐一移動しなくなり、映像が見やすくなる。以上の内容を一般的に記述すると、請求項１の発明では、移動体が所定の位置においてカメラに捉えられると、カメラの移動が停止されるので、映像が見やすくなる。
【００１７】
さらに、本野球ゲームでは、ボールの位置を示す移動体用の位置データが、認識される。そして、視点用の位置データおよび注視点用の位置データに基づいて、カメラ視点を基点としてカメラ視点とカメラの注視点とを結ぶ第１方向の第１方向ベクトルを算出する処理が、実行される。また、視点用の位置データおよび移動体用の位置データに基づいて、カメラ視点を基点としてカメラ視点と移動体とを結ぶ第２方向の第２方向ベクトルを算出する処理が、実行される。そして、第１方向ベクトルと第２方向ベクトルとに基づいて、第１方向と第２方向とが一致するか否かが、判別される。そして、第１方向と第２方向とが一致したと判別された場合に、カメラ視点の移動およびカメラの注視点の移動を停止する処理が、実行される。
【００１８】
この場合、カメラ視点を基点としてカメラ視点と基準点とを結ぶ第１方向と、カメラ視点を基点としてカメラ視点と移動体とを結ぶ第２方向とが一致したと判別された場合に、カメラ視点の移動およびカメラの注視点の移動を停止する処理が、実行される。具体的には、カメラ視線の方向（第１方向）とカメラ視点から見たボールの方向（第２方向）とが一致した場合、すなわちカメラ視線の方向にボールが位置した場合、カメラの移動を停止する処理が、実行される。
【００１９】
これにより、たとえば、打者キャラクタにより打ち返されたボールが移動しているときに、ボールがカメラ視線の方向に位置すると、カメラ視点の移動が停止されるので、打者キャラクタにより打ち返されたボールが移動する状態を示す映像が見やすくなる。また、たとえば、打者キャラクタにより打ち返されたボールがカメラ視線の方向に位置すると、カメラ視点の移動が停止されるので、打者キャラクタにより打ち返されたボールがスタンドで飛び跳ねても、カメラの視線がボールの動きに連動して逐一移動しなくなり、映像が見やすくなる。以上の内容を一般的に記述すると、請求項２の発明では、移動体がカメラの視線の方向に捉えられると、カメラの移動が停止されるので、映像が見やすくなる。
【００２０】
請求項２に係るゲームプログラムは、請求項１に記載のゲームプログラムにおいて、コンピュータの制御部に以下の機能をさらに実現させるためのプログラムである。
【００２１】
このゲームプログラムでは、第１視点制御機能において、移動体が視錐内領域の外部に位置すると判定された場合に、移動体が視錐内領域の内部に位置するようにカメラ視点を移動する処理を、実行する。第２視点制御機能においては、移動体が視錐内領域の外部に位置すると判定された後に、移動体が視錐内領域の内部に位置すると判定された場合、第１方向と第２方向とが一致したと判別されたときに、カメラ視点の移動およびカメラの注視点の移動を停止する処理を、実行する。
【００２２】
たとえば、本ゲームプログラムを用いることにより野球ゲームが実行された場合、ボールが視錐内領域の外部に位置すると判定された場合に、ボールが視錐内領域の内部に位置するようにカメラ視点を移動する処理が、実行される。そして、ボールが視錐内領域の外部に位置すると判定された後に、ボールが視錐内領域の内部に位置すると判定された場合、第１方向と第２方向とが一致したと判別されたときに、カメラ視点の移動およびカメラの注視点の移動を停止する処理が、実行される。
【００２３】
この場合、ボールが視錐内領域の外部に位置すると判定された後に、ボールが視錐内領域の内部に位置すると判定された場合、第１方向と第２方向とが一致したと判別されたときに、カメラ視点の移動およびカメラの注視点の移動を停止する処理が、実行される。
【００２４】
これにより、たとえば、打者キャラクタにより打ち返されたボールが移動しているときに、ボールが視錐内領域の外部から内部に戻ってきた場合、ボールがカメラ視線の方向に位置すると、カメラの移動が停止されるので、打者キャラクタにより打ち返されたボールが移動する状態を示す映像が見やすくなる。また、たとえば、ボールが視錐内領域の外部から内部に戻ってきたときに、打者キャラクタにより打ち返されたボールがカメラ視線の方向に位置すると、カメラの移動が停止されるので、打者キャラクタにより打ち返されたボールがスタンドで飛び跳ねても、カメラの視線がボールの動きに連動して逐一移動しなくなり、映像が見やすくなる。以上の内容を一般的に記述すると、請求項２の発明では、移動体が視錐内領域の外部から内部に戻ってきたときに、移動体がカメラの視線の方向に捉えられると、カメラの移動が停止されるので、映像が見やすくなる。
【００２５】
請求項３に係るゲームプログラムは、請求項１又は２に記載のゲームプログラムにおいて、コンピュータの制御部に以下の機能をさらに実現させるためのプログラムである。
（１２）移動体の位置を示す移動体用の位置データを、認識する移動体位置認識機能。
（１３）記憶部に格納された、視点用の位置データおよび移動体用の位置データに基づいて、カメラの視点の位置と移動体の位置との間の距離を示す距離データを算出する処理を、実行する距離算出機能。
（１４）距離データに対応する、カメラの視点およびカメラの注視点の少なくともいずれか一方の移動速度を示すカメラ用の速度データを、認識するカメラ速度認識機能。
【００２６】
このゲームプログラムでは、移動体位置認識機能において、移動体の位置を示す移動体用の位置データを、認識する。距離算出機能においては、記憶部に格納された、視点用の位置データおよび移動体用の位置データに基づいて、カメラ視点の位置と移動体の位置との間の距離を示す距離データを算出する処理を、実行する。カメラ速度認識機能においては、距離データに対応する、カメラ視点およびカメラの注視点の少なくともいずれか一方の移動速度を示すカメラ用の速度データを、認識する。そして、第１視点制御機能においては、移動体が視錐内領域の外部に位置すると判定された場合に、カメラ用の速度データに基づいて、移動体が視錐内領域の内部に位置するようにカメラ視点およびカメラの注視点の少なくともいずれか一方を移動する処理を、実行する。
【００２７】
たとえば、本ゲームプログラムを用いることにより野球ゲームが実行された場合、ボールの位置を示すボール用の位置データが、認識される。そして、視点用の位置データおよびボール用の位置データに基づいて、カメラ視点の位置とボールの位置との間の距離を示す距離データを算出する処理が、実行される。そして、距離データに対応する、カメラ視点およびカメラの注視点の少なくともいずれか一方の移動速度を示すカメラ用の速度データが、認識される。そして、ボールが視錐内領域の外部に位置すると判定された場合に、カメラ用の速度データに基づいて、ボールが視錐内領域の内部に位置するようにカメラ視点およびカメラの注視点の少なくともいずれか一方を移動する処理が、実行される。
【００２８】
この場合、ボールが視錐内領域の外部に位置すると判定された場合に、カメラ視点の位置とボールの位置との間の距離を示す距離データに対応するカメラ用の速度データに基づいて、ボールが視錐内領域の内部に位置するようにカメラ視点およびカメラの注視点の少なくともいずれか一方を移動する処理が、実行される。
【００２９】
これにより、たとえば、ボールが視錐内領域の外部に位置したときに、カメラ視点とボールとの距離が近いときにはカメラ視点やカメラの注視点を速く動かしたり、カメラ視点とボールとの距離が遠いときにはカメラ視点やカメラの注視点を遅く動かしたりすることができる。反対に、ボールが視錐内領域の外部に位置したときに、カメラ視点とボールとの距離が近いときにはカメラ視点やカメラの注視点を遅く動かしたり、カメラ視点とボールとの距離が遠いときにはカメラ視点やカメラの注視点を速く動かしたりすることもできる。
【００３０】
このように、カメラ視点とボールとの距離に応じてカメラ視点およびカメラの注視点の少なくともいずれか一方の移動速度を変化させることにより、対戦状況に応じてカメラ視点およびカメラの注視点の少なくともいずれか一方がボールの動きにどのように追随して移動しても、ボールの動きを違和感なく画像表示部に表示することができる。以上の内容を一般的に記述すると、請求項３の発明では、カメラの視線が移動体に追随したとしても、移動体の動きを違和感なく画像表示部に表示することができる。
【００３１】
請求項４に係るゲームプログラムは、請求項３に記載のゲームプログラムにおいて、コンピュータの制御部に以下の機能をさらに実現させるためのプログラムである。
【００３２】
このゲームプログラムでは、カメラ速度認識機能において、距離データが示す距離の増加に応じてカメラ視点およびカメラの注視点の少なくともいずれか一方の移動速度が小さくなるような、カメラ用の速度データを、認識する。
【００３３】
たとえば、本ゲームプログラムを用いることにより野球ゲームが実行された場合、距離データが示す距離の増加に応じてカメラ視点およびカメラの注視点の少なくともいずれか一方の移動速度が小さくなるような、カメラ用の速度データが、認識される。
【００３４】
この場合、ボールが視錐内領域の外部に位置したときに、カメラ視点とボールとの距離が近いときにはカメラ視点やカメラの注視点を速く動かしたり、カメラ視点とボールとの距離が遠いときにはカメラ視点やカメラの注視点を遅く動かしたりすることができる。このようにカメラ視点およびカメラの注視点の少なくともいずれか一方の移動を制御することにより、カメラ視点からボールまでの深度（距離）に応じて異なるボールの移動状態を、適切に画像表示部に表示することができる。以上の内容を一般的に記述すると、請求項４の発明では、カメラの視線が移動体に追随したとしても、カメラ視点およびカメラの注視点の少なくともいずれか一方の移動速度を上記のように調節することによって、移動体の動きを違和感なく画像表示部に表示することができる。
【００３５】
請求項５に係るゲームプログラムは、請求項４に記載のゲームプログラムにおいて、コンピュータに以下の機能をさらに実現させるためのプログラムである。
【００３６】
このゲームプログラムでは、カメラ速度認識機能において、距離データが示す距離の増加に応じてカメラ視点およびカメラの注視点の少なくともいずれか一方の移動速度が小さくなるような、距離データに対応するカメラ視点用の加速度データを、認識する。そして、カメラ視点用の加速度データに基づいて算出されたカメラ用の速度データを、認識する。
【００３７】
この場合、カメラ視点とボールとの距離の増加に応じてカメラ視点およびカメラの注視点の少なくともいずれか一方の移動速度が小さくなるときにカメラ視点の移動速度が減速する程度を、カメラ視点の加速度によって調節することができる。これにより、カメラ視点からボールまでの深度（距離）に応じて異なるボールの移動状態を、カメラ視点およびカメラの注視点の少なくともいずれか一方の移動速度を調節することによって、適切に画像表示部に表示することができる。以上の内容を一般的に記述すると、請求項５の発明では、カメラの視線が移動体に追随したとしても、カメラ視点およびカメラの注視点の少なくともいずれか一方の移動速度を加速度を介して上記のように調節することによって、移動体の動きを違和感なく画像表示部に表示することができる。
【００３８】
請求項６に係るゲーム装置は、３次元ゲーム空間に配置されたカメラの位置にカメラ座標系を規定し、３次元ゲーム空間を移動する移動体を画像表示部に表示するゲームを実行可能なゲーム装置である。このゲーム装置では、ゲーム装置の制御部が、記憶部に格納される、カメラの視点の位置を示す視点用の位置データを、認識する視点位置認識手段と、記憶部に格納される、カメラの注視点の位置を示す注視点用の位置データを、認識する注視点位置認識手段と、視点用の位置データが示すカメラの視点から注視点用の位置データが示すカメラの注視点へと向かう方向に向いたカメラから見える視錐領域を、認識する視錐領域認識手段と、カメラの視点およびカメラの注視点の少なくともいずれか一方の移動を制御するために視錐領域の内部に設けられた視錐内領域を、認識する視錐内領域認識手段と、移動体の位置を示す移動体用の位置データを、認識する移動体位置認識手段と、記憶部に格納された、視点用の位置データおよび注視点用の位置データに基づいて、カメラの視点を基点としてカメラの視点とカメラの注視点とを結ぶ第１方向の第１方向ベクトルを算出する処理を、実行する第１方向ベクトル算出手段と、記憶部に格納された、視点用の位置データおよび移動体用の位置データに基づいて、カメラの視点を基点としてカメラの視点と移動体とを結ぶ第２方向の第２方向ベクトルを算出する処理を、実行する第２方向ベクトル算出手段と、移動体が視錐内領域の内部に位置するか否かを、判定する位置判定手段と、移動体が視錐内領域の外部に位置すると判定された場合に、移動体が視錐内領域の内部に位置するように、カメラの視点およびカメラの注視点の少なくともいずれか一方を移動する処理を、実行する第１視点制御手段と、第１方向ベクトルと第２方向ベクトルとに基づいて、第１方向と第２方向とが一致するか否かを、判別する方向判別手段と、第１方向と第２方向とが一致したと判別された場合に、カメラの視点の移動およびカメラの注視点の移動を停止する処理を、実行する第２視点制御手段と、を備えている。
【００３９】
請求項７に係るゲーム制御方法は、３次元ゲーム空間に配置されたカメラの位置にカメラ座標系を規定し、３次元ゲーム空間を移動する移動体を画像表示部に表示するゲームをコンピュータにより制御可能なゲーム制御方法である。このゲーム制御方法では、コンピュータの制御部が、記憶部に格納される、カメラの視点の位置を示す視点用の位置データを、認識する視点位置認識ステップと、記憶部に格納される、カメラの注視点の位置を示す注視点用の位置データを、認識する注視点位置認識ステップと、視点用の位置データが示すカメラの視点から注視点用の位置データが示すカメラの注視点へと向かう方向に向いたカメラから見える視錐領域を、認識する視錐領域認識ステップと、カメラの視点およびカメラの注視点の少なくともいずれか一方の移動を制御するために視錐領域の内部に設けられた視錐内領域を、認識する視錐内領域認識ステップと、移動体の位置を示す移動体用の位置データを、認識する移動体位置認識ステップと、記憶部に格納された、視点用の位置データおよび注視点用の位置データに基づいて、カメラの視点を基点としてカメラの視点とカメラの注視点とを結ぶ第１方向の第１方向ベクトルを算出する処理を、実行する第１方向ベクトル算出ステップと、記憶部に格納された、視点用の位置データおよび移動体用の位置データに基づいて、カメラの視点を基点としてカメラの視点と移動体とを結ぶ第２方向の第２方向ベクトルを算出する処理を、実行する第２方向ベクトル算出ステップと、移動体が視錐内領域の内部に位置するか否かを、判定する位置判定ステップと、移動体が視錐内領域の外部に位置すると判定された場合に、移動体が視錐内領域の内部に位置するように、カメラの視点およびカメラの注視点の少なくともいずれか一方を移動する処理を、実行する第１視点制御ステップと、第１方向ベクトルと第２方向ベクトルとに基づいて、第１方向と第２方向とが一致するか否かを、判別する方向判別ステップと、第１方向と第２方向とが一致したと判別された場合に、カメラの視点の移動およびカメラの注視点の移動を停止する処理を、実行する第２視点制御ステップと、を実行する。
【発明の効果】
【００４０】
本発明では、移動体が視錐内領域の外部に位置すると判定された場合に、移動体が視錐内領域の内部に位置するように、カメラ視点を移動する処理が実行される。すなわち、移動体が視錐内領域の外部に位置したときに、移動体が視錐内領域の内部に位置するようにカメラ視点が移動体の動きに追随して移動する。これにより、カメラの視線が移動体に追随したとしても、映像が見にくくならないようにすることができる。また、カメラの視線の動きの設定を容易に実行することができる。
【発明を実施するための最良の形態】
【００４１】
〔ゲーム装置の構成と動作〕
図１は、本発明の一実施形態によるゲーム装置の基本構成を示している。ここでは、ビデオゲーム装置の一例として、家庭用ビデオゲーム装置を対象として説明を行うこととする。家庭用ビデオゲーム装置は、家庭用ゲーム機本体および家庭用テレビジョンを備える。家庭用ゲーム機本体には、記録媒体１０が装填可能となっており、記録媒体１０からゲームデータが適宜読み出されてゲームが実行される。このようにして実行されるゲーム内容が家庭用テレビジョンに表示される。
【００４２】
家庭用ビデオゲーム装置のゲームシステムは、制御部１と、記憶部２と、画像表示部３と、音声出力部４と、操作入力部５、通信部２３とからなっており、それぞれがバス６を介して接続される。このバス６は、アドレスバス、データバス、およびコントロールバスなどを含んでいる。ここで、制御部１、記憶部２、音声出力部４および操作入力部５は、家庭用ビデオゲーム装置の家庭用ゲーム機本体に含まれており、画像表示部３は家庭用テレビジョンに含まれている。
【００４３】
制御部１は、主に、ゲームプログラムに基づいてゲーム全体の進行を制御するために設けられている。制御部１は、たとえば、ＣＰＵ（Central Processing Unit）７と、信号処理プロセッサ８と、画像処理プロセッサ９とから構成されている。ＣＰＵ７と信号処理プロセッサ８と画像処理プロセッサ９とは、それぞれがバス６を介して互いに接続されている。ＣＰＵ７は、ゲームプログラムからの命令を解釈し、各種のデータ処理や制御を行う。たとえば、ＣＰＵ７は、信号処理プロセッサ８に対して、画像データを画像処理プロセッサに供給するように命令する。信号処理プロセッサ８は、主に、３次元空間上における計算と、３次元空間上から擬似３次元空間上への位置変換計算と、光源計算処理と、３次元空間上又は擬似３次元空間上で実行された計算結果に基づいた画像および音声データの生成加工処理とを行っている。画像処理プロセッサ９は、主に、信号処理プロセッサ８の計算結果および処理結果に基づいて、描画すべき画像データをＲＡＭ１２に書き込む処理を行っている。また、ＣＰＵ７は、信号処理プロセッサ８に対して、各種データを処理するように命令する。信号処理プロセッサ８は、主に、３次元空間上における各種データに対応する計算と、３次元空間上から擬似３次元空間上への位置変換計算とを行っている。
【００４４】
記憶部２は、主に、プログラムデータや、プログラムデータで使用される各種データなどを格納しておくために設けられている。記憶部２は、たとえば、記録媒体１０と、インターフェース回路１１と、ＲＡＭ（Random Access Memory）１２とから構成されている。記録媒体１０には、インターフェース回路１１が接続されている。そして、インターフェース回路１１とＲＡＭ１２とはバス６を介して接続されている。記録媒体１０は、オペレーションシステムのプログラムデータや、画像データ、音声データ並びに各種プログラムデータからなるゲームデータなどを記録するためのものである。この記録媒体１０は、たとえば、ＲＯＭ（Read Only Memory）カセット、光ディスク、およびフレキシブルディスクなどであり、オペレーティングシステムのプログラムデータやゲームデータなどが記憶される。なお、記録媒体１０にはカード型メモリも含まれており、このカード型メモリは、主に、ゲームを中断するときに中断時点での各種ゲームパラメータを保存するために用いられる。ＲＡＭ１２は、記録媒体１０から読み出された各種データを一時的に格納したり、制御部１からの処理結果を一時的に記録したりするために用いられる。このＲＡＭ１２には、各種データとともに、各種データの記憶位置を示すアドレスデータが格納されており、任意のアドレスを指定して読み書きすることが可能になっている。
【００４５】
画像表示部３は、主に、画像処理プロセッサ９によってＲＡＭ１２に書き込まれた画像データや、記録媒体１０から読み出される画像データなどを画像として出力するために設けられている。この画像表示部３は、たとえば、テレビジョンモニタ２０と、インターフェース回路２１と、Ｄ／Ａコンバータ（Digital-To-Analogコンバータ）２２とから構成されている。テレビジョンモニタ２０にはＤ／Ａコンバータ２２が接続されており、Ｄ／Ａコンバータ２２にはインターフェース回路２１が接続されている。そして、インターフェース回路２１にバス６が接続されている。ここでは、画像データが、インターフェース回路２１を介してＤ／Ａコンバータ２２に供給され、ここでアナログ画像信号に変換される。そして、アナログ画像信号がテレビジョンモニタ２０に画像として出力される。
【００４６】
ここで、画像データには、たとえば、ポリゴンデータやテクスチャデータなどがある。ポリゴンデータはポリゴンを構成する頂点の座標データのことである。テクスチャデータは、ポリゴンにテクスチャを設定するためのものであり、テクスチャ指示データとテクスチャカラーデータとからなっている。テクスチャ指示データはポリゴンとテクスチャとを対応づけるためのデータであり、テクスチャカラーデータはテクスチャの色を指定するためのデータである。ここで、ポリゴンデータとテクスチャデータとには、各データの記憶位置を示すポリゴンアドレスデータとテクスチャアドレスデータとが対応づけられている。このような画像データでは、信号処理プロセッサ８により、ポリゴンアドレスデータの示す３次元空間上のポリゴンデータ（３次元ポリゴンデータ）が、画面自体(視点)の移動量データおよび回転量データに基づいて座標変換および透視投影変換されて、２次元空間上のポリゴンデータ（２次元ポリゴンデータ）に置換される。そして、複数の２次元ポリゴンデータでポリゴン外形を構成して、ポリゴンの内部領域にテクスチャアドレスデータが示すテクスチャデータを書き込む。このようにして、各ポリゴンにテクスチャが貼り付けられた物体つまり各種キャラクタを表現することができる。
【００４７】
音声出力部４は、主に、記録媒体１０から読み出される音声データを音声として出力するために設けられている。音声出力部４は、たとえば、スピーカ１３と、増幅回路１４と、Ｄ／Ａコンバータ１５と、インターフェース回路１６とから構成されている。スピーカ１３には増幅回路１４が接続されており、増幅回路１４にはＤ／Ａコンバータ１５が接続されており、Ｄ／Ａコンバータ１５にはインターフェース回路１６が接続されている。そして、インターフェース回路１６にバス６が接続されている。ここでは、音声データが、インターフェース回路１６を介してＤ／Ａコンバータ１５に供給され、ここでアナログ音声信号に変換される。このアナログ音声信号が増幅回路１４によって増幅され、スピーカ１３から音声として出力される。音声データには、たとえば、ＡＤＰＣＭ（Adaptive Differential Pulse Code Modulation）データやＰＣＭ（Pulse Code Modulation）データなどがある。ＡＤＰＣＭデータの場合、上述と同様の処理方法で音声をスピーカ１３から出力することができる。ＰＣＭデータの場合、ＲＡＭ１２においてＰＣＭデータをＡＤＰＣＭデータに変換しておくことで、上述と同様の処理方法で音声をスピーカ１３から出力することができる。
【００４８】
操作入力部５は、主に、コントローラ１７と、操作情報インターフェース回路１８と、インターフェース回路１９とから構成されている。コントローラ１７には、操作情報インターフェース回路１８が接続されており、操作情報インターフェース回路１８にはインターフェース回路１９が接続されている。そして、インターフェース回路１９にバス６が接続されている。
【００４９】
コントローラ１７は、プレイヤが種々の操作命令を入力するために使用する操作装置であり、プレイヤの操作に応じた操作信号をＣＰＵ７に送出する。コントローラ１７には、第１ボタン１７ａ、第２ボタン１７ｂ、第３ボタン１７ｃ、第４ボタン１７ｄ、上方向キー１７Ｕ、下方向キー１７Ｄ、左方向キー１７Ｌ、右方向キー１７Ｒ、Ｌ１ボタン１７Ｌ１、Ｌ２ボタン１７Ｌ２、Ｒ１ボタン１７Ｒ１、Ｒ２ボタン１７Ｒ２、スタートボタン１７ｅ、セレクトボタン１７ｆ、左スティック１７ＳＬ及び右スティック１７ＳＲが設けられている。
【００５０】
上方向キー１７Ｕ、下方向キー１７Ｄ、左方向キー１７Ｌ及び右方向キー１７Ｒは、例えば、キャラクタやカーソルをテレビジョンモニタ２０の画面上で上下左右に移動させるコマンドをＣＰＵ７に与えるために使用される。
【００５１】
スタートボタン１７ｅは、記録媒体１０からゲームプログラムをロードするようにＣＰＵ７に指示するときなどに使用される。
【００５２】
セレクトボタン１７ｆは、記録媒体１０からロードされたゲームプログラムに対して、各種選択をＣＰＵ７に指示するときなどに使用される。
【００５３】
左スティック１７ＳＬ及び右スティック１７ＳＲは、いわゆるジョイスティックとほぼ同一構成のスティック型コントローラである。このスティック型コントローラは、直立したスティックを有している。このスティックは、支点を中心として直立位置から前後左右を含む３６０°方向に亘って、傾倒可能な構成になっている。左スティック１７ＳＬ及び右スティック１７ＳＲは、スティックの傾倒方向及び傾倒角度に応じて、直立位置を原点とするｘ座標及びｙ座標の値を、操作信号として操作情報インターフェース回路１８とインターフェース回路１９とを介してＣＰＵ７に送出する。
【００５４】
第１ボタン１７ａ、第２ボタン１７ｂ、第３ボタン１７ｃ、第４ボタン１７ｄ、Ｌ１ボタン１７Ｌ１、Ｌ２ボタン１７Ｌ２、Ｒ１ボタン１７Ｒ１及びＲ２ボタン１７Ｒ２には、記録媒体１０からロードされるゲームプログラムに応じて種々の機能が割り振られている。
【００５５】
なお、左スティック１７ＳＬ及び右スティック１７ＳＲを除くコントローラ１７の各ボタン及び各キーは、外部からの押圧力によって中立位置から押圧されるとオンになり、押圧力が解除されると中立位置に復帰してオフになるオンオフスイッチになっている。
【００５６】
通信部２３は、通信制御回路２４および通信インターフェース２５を有している。通信制御回路２４および通信インターフェース２５は、ゲーム機をサーバや他のゲーム機等に接続するために用いられる。通信制御回路２０および通信インターフェース２１は、バス１６を介してＣＰＵ１１に接続されている。通信制御回路２０および通信インターフェース２１は、ＣＰＵ１１からの命令に応じて、ゲーム機をインターネットに接続するための接続信号を制御し発信する。また、通信制御回路２０および通信インターフェース２１は、インターネットを介してゲーム機をサーバや他のゲーム機に接続するための接続信号を制御し発信する。
【００５７】
以上のような構成からなる家庭用ビデオゲーム装置の概略動作を、以下に説明する。電源スイッチ（図示省略）がオンにされゲームシステム１に電源が投入されると、ＣＰＵ７が、記録媒体１０に記憶されているオペレーティングシステムに基づいて、記録媒体１０から画像データ、音声データ、およびプログラムデータを読み出す。読み出された画像データ、音声データ、およびプログラムデータの一部若しくは全部は、ＲＡＭ１２に格納される。そして、ＣＰＵ７が、ＲＡＭ１２に格納されたプログラムデータに基づいて、ＲＡＭ１２に格納された画像データや音声データを画像や音声としてテレビジョンモニタ２０やスピーカ１３に出力するためのコマンドを発行する。
【００５８】
画像データの場合、ＣＰＵ７からのコマンドに基づいて、まず、信号処理プロセッサ８が、３次元空間上におけるキャラクタの位置計算および光源計算などを行う。次に、画像処理プロセッサ９が、信号処理プロセッサ８の計算結果に基づいて、描画すべき画像データのＲＡＭ１２への書き込み処理などを行う。そして、ＲＡＭ１２に書き込まれた画像データが、インターフェース回路２１を介してＤ／Ａコンバータ２２に供給される。ここで、画像データがＤ／Ａコンバータ２２でアナログ映像信号に変換される。そして、画像データはテレビジョンモニタ２０に供給され画像として表示される。
【００５９】
音声データの場合、まず、信号処理プロセッサ８が、ＣＰＵ７からのコマンドに基づいて音声データの生成および加工処理を行う。ここでは、音声データに対して、たとえば、ピッチの変換、ノイズの付加、エンベロープの設定、レベルの設定及びリバーブの付加などの処理が施される。次に、音声データは、信号処理プロセッサ８から出力されて、インターフェース回路１６を介してＤ／Ａコンバータ１５に供給される。ここで、音声データがアナログ音声信号に変換される。そして、音声データは増幅回路１４を介してスピーカ１３から音声として出力される。
【００６０】
〔ゲーム装置における各種処理概要〕
本ゲーム機において実行されるゲームプログラムは、たとえば野球ゲームプログラムである。この野球ゲームプログラムに基づいて実行される野球ゲームでは、カメラが３次元ゲーム空間に配置されており、このカメラの位置にカメラ座標系（ビュー座標系）が定義されている。また、この野球ゲームでは、このカメラ視点から見たボールが、３次元ゲーム空間を移動する状態がテレビジョンモニタ２０に表示されるようになっている。
【００６１】
以下では、本発明で主要な役割を果たす機能を説明する。また、図２は、本発明で主要な役割を果たす機能を示した機能ブロック図である。なお、本実施形態では、位置データという文言は、位置座標データという文言に対応する文言として用いられている。
【００６２】
視点位置認識手段５０は、カメラ視点の位置を示す視点用の位置データを、ＣＰＵ７に認識させる機能を備えている。視点位置認識手段５０では、カメラ視点の位置を示す視点用の位置データが、ＣＰＵ７に認識される。
【００６３】
この手段では、カメラ視点の位置を示す視点用の位置データが、ＣＰＵ７に認識される。たとえば、カメラ視点の初期位置は、シーンごとに所定の位置に設定される。このカメラ視点の初期位置を示す視点用の位置データは、ゲームプログラムにおいて予め規定されている。この視点用の位置データは、ゲームプログラムのロード時に、記録媒体１０からＲＡＭ１２にロードされ、ＲＡＭ１２に格納されている。また、カメラ視点の移動時には、移動後のカメラ視点の位置を示す視点用の位置データが、ＣＰＵ７に認識される。
【００６４】
注視点位置認識手段５１は、カメラの注視点の位置を示す注視点用の位置データを、ＣＰＵ７に認識させる機能を備えている。注視点位置認識手段５１では、カメラの注視点の位置を示す注視点用の位置データが、ＣＰＵ７に認識される。
【００６５】
この手段では、カメラの注視点の位置を示す注視点用の位置データが、ＣＰＵ７に認識される。たとえば、カメラの注視点の初期位置は、シーンごとに所定の位置に設定される。このカメラの注視点の初期位置を示す注視点用の位置データは、ゲームプログラムにおいて予め規定されている。この注視点用の位置データは、ゲームプログラムのロード時に、記録媒体１０からＲＡＭ１２にロードされ、ＲＡＭ１２に格納されている。
【００６６】
視錐領域認識手段５２は、視点用の位置データが示すカメラの視点から注視点用の位置データが示すカメラの注視点へと向かう方向に向いたカメラから見える視錐領域を、ＣＰＵ７に認識させる機能を備えている。視錐領域認識手段５２では、視点用の位置データが示すカメラの視点から注視点用の位置データが示すカメラの注視点へと向かう方向に向いたカメラから見える視錐領域が、ＣＰＵ７に認識される。
【００６７】
この手段では、視点用の位置データが示すカメラの視点から注視点用の位置データが示すカメラの注視点へと向かう方向に向いたカメラから見える領域が、３次元ゲーム空間においてテレビジョンモニタ２０に表示される領域（視錐領域）として、ＣＰＵ７に認識される。
【００６８】
ここでは、視錐領域は、次のようにゲームプログラムにおいて定義されている。たとえば、カメラの視点からカメラの注視点に向くカメラの視界に入る全ての領域（視界領域Ｖｋ）において、テレビジョンモニタ２０に表示される領域のカメラ側の面（第１面：ニアクリップ面）およびカメラから離反する側の面（第２面：ファークリップ面）を設定することにより、第１面と第２面との間の視界領域Ｖｋが、視錐領域として設定される（図３を参照）。この視錐領域の８つの隅角部の位置を示す位置データをＣＰＵ７に認識させることにより、３次元ゲーム空間における視錐領域の位置および視錐領域の範囲を、ＣＰＵ７に認識させることができる。
【００６９】
なお、上記の視界領域Ｖｋは、カメラ視点の位置、カメラの注視点の位置、およびカメラの画角を定義することにより設定することが可能である。具体的には、視界領域Ｖｋは、カメラ視点の位置を示す視点用の位置データ、カメラの注視点の位置を示す注視点用の位置データ、およびカメラの画角を示す画角データに基づいて定義することができる。ここで用いられるカメラの画角を示す画角データは、ゲームプログラムにおいて予め規定されている。この画角データは、ゲームプログラムのロード時に、記録媒体１０からＲＡＭ１２にロードされ、ＲＡＭ１２に格納されている。
【００７０】
視錐内領域認識手段５３は、カメラ視点の移動を制御するために視錐領域の内部に設けられた視錐内領域を、ＣＰＵ７に認識させる機能を備えている。視錐内領域認識手段５３では、カメラ視点およびカメラの注視点の少なくともいずれか一方の移動を制御するために視錐領域の内部に設けられた視錐内領域が、ＣＰＵ７に認識される。
【００７１】
この手段では、カメラ視点およびカメラの注視点の少なくともいずれか一方の移動を制御するために視錐領域の内部に設けられた視錐内領域が、ＣＰＵ７に認識される。
【００７２】
ここでは、上記の視錐領域が、カメラ視点がボールの移動に追随しない領域と、カメラ視点がボールの移動に追随する領域とから構成されている。ここでは、視錐内領域が、カメラ視点がボールの移動に追随しない領域に対応している。また、視錐内領域を除く視錐領域（視錐内領域の外部の領域）が、カメラ視点がボールの移動に追随する領域に対応している。すなわち、視錐領域は、視錐内領域と、視錐内領域を除く視錐領域（視錐内領域の外部の領域）とから構成されている。この視錐内領域の８つの隅角部の位置を示す位置データをＣＰＵ７に認識させることにより、３次元ゲーム空間における視錐内領域の位置および視錐内領域の範囲を、ＣＰＵ７に認識させることができる。
【００７３】
なお、視錐内領域の８つの隅角部の位置を示す位置データは、視錐領域の重心を原点とする相対座標で定義されている。また、視錐領域の重心すなわち視錐内領域の原点は、視錐内領域の内部に定義されている。ここでは、視錐領域の重心すなわち視錐内領域の原点に対する、視錐内領域の８つの隅角部の位置を示す位置データは、ゲームプログラムにおいて予め規定されている。この位置データは、ゲームプログラムのロード時に、記録媒体１０からＲＡＭ１２にロードされ、ＲＡＭ１２に格納されている。
【００７４】
ボール位置認識手段５４は、ボールの位置を示すボール用の位置データを、ＣＰＵ７に認識させる機能を備えている。ボール位置認識手段５４では、ボールの位置を示すボール用の位置データが、ＣＰＵ７に認識される。
【００７５】
この手段では、ボールの位置を示すボール用の位置データが、ＣＰＵ７に認識される。たとえば、３次元ゲーム空間におけるボールの位置を示すボール用の位置データが、ＣＰＵ７に認識される。
【００７６】
距離算出手段５５は、視点用の位置データおよびボール用の位置データに基づいて、カメラ視点の位置とボールの位置との間の距離を示す距離データを算出する処理を、ＣＰＵ７に実行させる機能を備えている。距離算出手段５５では、視点用の位置データおよびボール用の位置データに基づいて、カメラ視点の位置とボールの位置との間の距離を示す距離データを算出する処理が、ＣＰＵ７により実行される。
【００７７】
この手段では、視点用の位置データおよびボール用の位置データに基づいて、カメラ視点の位置とボールの位置との間の距離を示す距離データを算出する処理が、ＣＰＵ７により実行される。ここでは、２点間の距離を算出する方程式に、視点用の位置データおよびボール用の位置データを代入する処理をＣＰＵ７に実行させることにより、カメラ視点の位置とボールの位置との間の距離を示す距離データが算出される。
【００７８】
第１方向ベクトル算出手段５６は、視点用の位置データおよび注視点用の位置データに基づいて、カメラ視点を基点としてカメラ視点とカメラの注視点とを結ぶ第１方向の第１方向ベクトルを算出する処理を、ＣＰＵ７に実行させる機能を備えている。第１方向ベクトル算出手段５６では、視点用の位置データおよび注視点用の位置データに基づいて、カメラ視点を基点としてカメラ視点とカメラの注視点とを結ぶ第１方向の第１方向ベクトルを算出する処理が、ＣＰＵ７により実行される。
【００７９】
この手段では、カメラ視点の位置を示す位置データ（視点用の位置データ）、およびカメラの注視点の位置を示す位置データ（注視点用の位置データ）に基づいて、カメラ視点を基点としてカメラ視点とカメラの注視点とを結ぶ第１方向の第１方向ベクトルを算出する処理が、ＣＰＵ７により実行される。ここでは、カメラの注視点の位置を示す位置データ（注視点用の位置データ）からカメラ視点の位置を示す位置データ（視点用の位置データ）を減算する処理をＣＰＵ７に実行させることにより、第１方向ベクトルは算出される。
【００８０】
第２方向ベクトル算出手段５７は、視点用の位置データおよびボール用の位置データに基づいて、カメラ視点を基点としてカメラ視点とボールとを結ぶ第２方向の第２方向ベクトルを算出する処理を、ＣＰＵ７に実行させる機能を備えている。第２方向ベクトル算出手段５７では、視点用の位置データおよびボール用の位置データに基づいて、カメラ視点を基点としてカメラ視点とボールとを結ぶ第２方向の第２方向ベクトルを算出する処理が、ＣＰＵ７により実行される。
【００８１】
この手段では、カメラ視点の位置を示す位置データ（視点用の位置データ）、およびボールの位置を示す位置データ（ボール用の位置データ）に基づいて、カメラ視点を基点としてカメラ視点とボールとを結ぶ第２方向の第２方向ベクトルを算出する処理が、ＣＰＵ７により実行される。ここでは、ボールの位置を示す位置データ（ボール用の位置データ）からカメラ視点の位置を示す位置データ（視点用の位置データ）を減算する処理をＣＰＵ７に実行させることにより、第２方向ベクトルが算出される。
【００８２】
カメラ速度認識手段５８は、距離データに対応する、カメラ視点およびカメラの注視点の少なくともいずれか一方の移動速度を示すカメラ用の速度データを、ＣＰＵ７に認識させる機能を備えている。カメラ速度認識手段５８は、距離データが示す距離に応じてカメラ視点およびカメラの注視点の少なくともいずれか一方の移動速度が小さくなるような、カメラ用の速度データを、ＣＰＵ７に認識させる機能を備えている。カメラ速度認識手段５８は、距離データが示す距離に応じてカメラ視点およびカメラの注視点の少なくともいずれか一方の移動速度が小さくなるような、距離データに対応するカメラ用の加速度データをＣＰＵ７に認識させ、カメラ用の加速度データに基づいて算出されたカメラ用の速度データをＣＰＵ７に認識させる機能を備えている。
【００８３】
カメラ速度認識手段５８では、距離データが示す距離に応じてカメラ視点およびカメラの注視点の少なくともいずれか一方の移動速度が小さくなるような、距離データに対応するカメラ用の加速度データが、ＣＰＵ７に認識される。そして、カメラ用の加速度データに基づいて算出されたカメラ用の速度データが、ＣＰＵ７に認識される。
【００８４】
この手段では、距離データが示す距離に応じてカメラ視点およびカメラの注視点の少なくともいずれか一方の移動速度が小さくなるような、カメラ用の加速度データが、ＣＰＵ７に認識される。たとえば、カメラ視点の位置とボールの位置との間の距離が大きくなるとカメラ視点およびカメラの注視点の少なくともいずれか一方の移動速度が小さくなるような、カメラ用の加速度データが、ＣＰＵ７に認識される。そして、たとえば、カメラ用の加速度データを微分する処理をＣＰＵ７に実行させることにより、カメラ用の速度データが算出される。そして、このカメラ用の速度データが、ＣＰＵ７に認識される。
【００８５】
位置判定手段５９は、ボールが視錐内領域の内部に位置するか否かをＣＰＵ７に判定させる機能を備えている。位置判定手段５９では、ボールが視錐内領域の内部に位置するか否かが、ＣＰＵ７により判定される。
【００８６】
この手段では、ボールが視錐内領域の内部に位置するか否かが、ＣＰＵ７により判定される。たとえば、８つの隅角部の位置を示す位置データにより定義される視錐内領域の内部にボールが位置するか否かが、ＣＰＵ７により判定される。具体的には、８つの隅角部の位置を示す位置データが示す範囲内に、ボールの位置を示す位置データが含まれているか否かの判定が、ＣＰＵ７により実行される。
【００８７】
第１視点制御手段６０は、ボールが視錐内領域の外部に位置するとＣＰＵ７に判定された場合に、ボールが視錐内領域の内部に位置するように、カメラ視点およびカメラの注視点の少なくともいずれか一方を移動する処理をＣＰＵ７に実行させる機能を備えている。第１視点制御手段６０は、ボールが視錐内領域の外部に位置するとＣＰＵ７に判定された場合に、カメラ用の速度データに基づいて、ボールが視錐内領域の内部に位置するようにカメラ視点およびカメラの注視点の少なくともいずれか一方を移動する処理をＣＰＵ７に実行させる機能を備えている。
【００８８】
第１視点制御手段６０では、ボールが視錐内領域の外部に位置するとＣＰＵ７に判定された場合に、カメラ用の速度データに基づいて、ボールが視錐内領域の内部に位置するようにカメラ視点およびカメラの注視点の少なくともいずれか一方を移動する処理が、ＣＰＵ７により実行される。
【００８９】
この手段では、ボールが視錐内領域の外部に位置するとＣＰＵ７に判定された場合に、カメラ用の速度データに基づいて、ボールが位置する方向にカメラ視点およびカメラの注視点の少なくともいずれか一方を移動する処理が、ＣＰＵ７により実行される。たとえば、ボールが視錐内領域の外部に位置するとＣＰＵ７に判定された場合に、カメラ用の速度データに基づいて、ボールが位置する方向にカメラ視点およびカメラの注視点の少なくともいずれか一方を移動する処理が、ＣＰＵ７により実行される。具体的には、ボールが視錐内領域の外部に位置するとＣＰＵ７に判定された場合に、カメラ用の速度データに基づいて、カメラ視点およびカメラの注視点の少なくともいずれか一方を移動することによりボールが位置する方向にカメラの視線を移動する処理が、ＣＰＵ７により実行される。
【００９０】
方向判別手段６１は、第１方向ベクトルと第２方向ベクトルとに基づいて、第１方向と第２方向とが一致するか否かをＣＰＵ７に判別させる機能を備えている。方向判別手段６１では、第１方向ベクトルと第２方向ベクトルとに基づいて、第１方向と第２方向とが一致するか否かが、ＣＰＵ７により判別される。
【００９１】
この手段では、カメラ視点を基点としてカメラ視点と基準点とを結ぶ方向を示す第１方向ベクトルと、カメラ視点を基点としてカメラ視点とボールとを結ぶ方向を示す第２方向ベクトルとに基づいて、第１方向と第２方向とが一致するか否かが、ＣＰＵ７により判別される。たとえば、第１方向ベクトルと第２方向ベクトルとの内積を計算する処理が、ＣＰＵ７により実行される。そして、この内積が「１」であるか否かが、ＣＰＵ７により判別される。ここでは、第１方向ベクトルと第２方向ベクトルとは、大きさが「１」になるように正規化された状態で、内積の計算が実行される。
【００９２】
第２視点制御手段６２は、第１方向と第２方向とが一致したとＣＰＵ７により判別された場合に、カメラ視点およびカメラの注視点の少なくともいずれか一方の移動を停止する処理を、ＣＰＵ７に実行させる機能を備えている。第２視点制御手段６２は、ボールが視錐内領域の外部に位置するとＣＰＵ７に判定された後に、ボールが視錐内領域の内部に位置するとＣＰＵ７に判定された場合、第１方向と第２方向とが一致したとＣＰＵ７により判別されたときに、カメラ視点およびカメラの注視点の少なくともいずれか一方の移動を停止する処理を、ＣＰＵ７に実行させる機能を備えている。
【００９３】
第２視点制御手段６２では、ボールが視錐内領域の外部に位置するとＣＰＵ７に判定された後に、ボールが視錐内領域の内部に位置するとＣＰＵ７に判定された場合、第１方向と第２方向とが一致したとＣＰＵ７により判別されたときに、カメラ視点およびカメラの注視点の少なくともいずれか一方の移動を停止する処理が、ＣＰＵ７により実行される。
【００９４】
この手段では、ボールが視錐内領域の外部に位置するとＣＰＵ７に判定され後に、ボールが視錐内領域の内部に位置するとＣＰＵ７に判定された場合は、次のような処理がＣＰＵ７より実行される。たとえば、ボールが視錐内領域の外部から内部に戻ってきたときに、第１方向と第２方向とが一致したとＣＰＵ７により判別されると、カメラ視点およびカメラの注視点の少なくともいずれか一方の移動を停止する処理が、ＣＰＵ７により実行される。具体的には、ボールが視錐内領域の外部から内部に戻ってきたときに、第１方向と第２方向とが一致したとＣＰＵ７により判別されると、カメラ視点およびカメラの注視点の少なくともいずれか一方の移動を停止する命令、すなわちカメラ視点およびカメラの注視点の少なくともいずれか一方を移動することによりボールが位置する方向にカメラの視線を移動する処理を停止する命令が、ＣＰＵ７から発行される。これにより、カメラ視点およびカメラの注視点の少なくともいずれか一方をボールが位置する方向に移動する処理が、ＣＰＵ７により停止される。
〔野球ゲームにおけるボール追随システムの処理フローと説明〕
次に、野球ゲームにおけるボール追随システムについて説明する。また、図９および図１０に示すフローについても同時に説明する。なお、図９は野球ゲームの全体概要を説明するためのフローであり、図１０はボール追随システムを説明するためのフローである。
【００９５】
まず、ゲーム機の電源が投入されゲーム機が起動されると、野球ゲームプログラムが、記録媒体１０からＲＡＭ１２にロードされ格納される。このときには、野球ゲームを実行する上で必要となる各種の基本ゲームデータも、同時に、記録媒体１０からＲＡＭ１２にロードされ格納される（Ｓ１）。
【００９６】
たとえば、基本ゲームデータには、３次元ゲーム空間用の各種の画像に関するデータが含まれている。そして、この３次元ゲーム空間用の各種の画像に関するデータ、たとえば、スタジアム用の画像データ、選手キャラクタ用の画像データ、および各種のオブジェクトの画像データ等が、ＣＰＵ７に認識される。また、基本ゲームデータには、３次元ゲーム空間用の各種の画像に関するデータを３次元ゲーム空間に配置するための位置座標データが含まれている。また、基本ゲームデータには、ボール追随システムで用いられるデータも、含まれている。
【００９７】
続いて、ＲＡＭ１２に格納された野球ゲームプログラムが、基本ゲームデータに基づいて、ＣＰＵ７により実行される（Ｓ２）。すると、野球ゲームの起動画面がテレビジョンモニタ２０に表示される。すると、野球ゲームを実行するための各種の設定画面がテレビジョンモニタ２０に表示される。ここでは、たとえば、野球ゲームのプレイモードを選択するためのモード選択画面が、テレビジョンモニタ２０に表示される（図示しない）。このモード選択画面において、プレイヤがコントローラ１７を操作することにより、プレイモードが決定される（Ｓ３）。プレイモードには、たとえば、１２球団の中から好きなチームを選択して１試合の対戦を楽しむ対戦モード、１２球団の中から好きなチームを選択してペナントレースを戦うペナントモード、およびプレイヤが監督の立場でチームの選手キャラクタを育成する育成モード等が、用意されている。
【００９８】
続いて、モード選択画面で選択されたプレイモードにおいて、各種のイベントが、ＣＰＵ７により実行される（Ｓ４）。ここで実行される各種のイベントには、たとえば、ＡＩプログラムに基づいてＣＰＵ７により自動制御されるイベントや、コントローラ１７からの入力信号に基づいてプレイヤにより手動制御されるイベントのようなイベントがある。また、選手キャラクタの制御には、ＡＩプログラムに基づいて選手キャラクタに命令を自動的に指示する自動制御や、コントローラ１７からの入力信号に基づいて選手キャラクタに命令を直接的に指示する手動制御等がある。このように、本野球ゲームでは、コントローラ１７からの指示やＡＩプログラムからの指示に応じて、イベントが制御されたり、選手キャラクタに命令が指示されたりするようになっている。
【００９９】
続いて、選択されたプレイモードが終了したか否かが、ＣＰＵ７により判断される（Ｓ５）。具体的には、プレイモードが終了したことを示す命令が発行されたか否かが、ＣＰＵ７により判断される。そして、プレイモードが終了したことを示す命令が発行されたとＣＰＵ７により判断された場合（Ｓ５でＹｅｓ）、ゲーム継続用のデータをＲＡＭ１２に格納する処理が、ＣＰＵ７により実行される。そして、ゲーム継続用のデータがＲＡＭ１２に格納されると、この野球ゲームを終了するか否かを選択する選択画面が、テレビジョンモニタ２０に表示される（Ｓ６）。そして、この選択画面において、プレイヤがコントローラ１７を操作することにより、野球ゲームの終了を示す項目が選択されると（Ｓ６でＹｅｓ）、野球ゲームを終了するための処理がＣＰＵ７により実行される（Ｓ７）。一方で、この選択画面において、プレイヤがコントローラ１７を操作することにより、野球ゲームの継続を示す項目が選択されると（Ｓ６でＮｏ）、ステップ３（Ｓ３）のモード選択画面が、テレビジョンモニタ２０に再表示される。
【０１００】
なお、プレイモードが終了するための命令が発行されたとＣＰＵ７に判断されない限り（Ｓ５でＮｏ）、モード選択画面で選択されたプレイモードにおいて、各種のイベントがＣＰＵ７により実行される（Ｓ４）。
【０１０１】
次に、ボール追随システムの詳細を説明する。
【０１０２】
以下には、ボール追随システムが対戦モードにおいて実行された場合の例が示される。たとえば、モード選択画面において対戦モードが選択され、対戦モードにおいて試合イベントが実行されたときに、ボール追随システムが機能する場合の例が示される。また、Ａプレイヤ（自プレイヤ）とＢプレイヤ（敵プレイヤ）とが対戦し、Ａプレイヤが打者キャラクタ７０に対して命令を指示する場合の例が示される。
【０１０３】
モード選択画面において対戦モードがＡプレイヤ又はＢプレイヤにより選択されると、対戦モードがＣＰＵ７により実行される（Ｓ４０１）。すると、カメラ視点Ｐｃの初期位置を示す視点用の位置データが、ＣＰＵ７に認識される（Ｓ４０２）。ここでは、たとえば、図３に示すように、３次元ゲーム空間におけるバックネット裏の位置に、カメラ視点Ｐｃが設定されている。このカメラ視点Ｐｃの位置すなわち視点用の位置データは、ゲームプログラムにおいて予め規定されており、この視点用の位置データが、ＣＰＵ７に認識される。なお、図３に示したカメラ視点Ｐｃは、打者キャラクタが左利きである場合の例が示されている。
【０１０４】
続いて、カメラの注視点Ｐｆの初期位置を示す注視点用の位置データが、ＣＰＵ７に認識される（Ｓ４０３）。ここでは、たとえば、図３に示すように、ホームベースと投手キャラクタとを結ぶ直線より右側のセンターのスタンドに、カメラの注視点Ｐｆが設定されている。このカメラの注視点Ｐｆの位置すなわち注視点用の位置データは、ゲームプログラムにおいて予め規定されており、この注視点用の位置データが、ＣＰＵ７に認識される。
【０１０５】
続いて、３次元ゲーム空間においてテレビジョンモニタ２０に表示される領域が、視点用の位置データが示す位置に配置されたカメラの視点から見える視錐領域Ｖｓとして、ＣＰＵ７に認識される（Ｓ４０４）。
【０１０６】
ここでは、視錐領域が、図３および図４に示すように定義されている。たとえば、カメラ視点Ｐｃの視界に入る全ての領域（視界領域）Ｖｋにおいて、テレビジョンモニタ２０に表示される領域のカメラ視点側の面（第１面）Ｓ１およびカメラ視点から離反する側の面（第２面）Ｓ２を設定することにより、第１面Ｓ１と第２面Ｓ２との間の視界領域Ｖｋが、視錐領域Ｖｓとして設定される。この視錐領域Ｖｓの８つの隅角部ｖ１，ｖ２，ｖ３，ｖ４，ｖ５，ｖ６，ｖ７，ｖ８の位置を示す位置データをＣＰＵ７に認識させることにより、３次元ゲーム空間における視錐領域Ｖｓの位置および視錐領域の範囲を、ＣＰＵ７に認識させることができる。
【０１０７】
なお、視界領域Ｖｋは、図３に示すように、カメラ視点Ｐｃの位置、カメラの注視点Ｐｆの位置、およびカメラの画角αを定義することにより設定される。具体的には、視界領域Ｖｋは、カメラ視点Ｐｃの位置を示す視点用の位置データ、カメラの注視点Ｐｆの位置を示す注視点用の位置データ、およびカメラの画角αを示す画角データに基づいて定義される。
【０１０８】
続いて、カメラの注視点Ｐｆの移動を制御するために視錐領域Ｖｓの内部に設けられた視錐内領域Ｖｓｎが、ＣＰＵ７に認識される（Ｓ４０６）。ここでは、視錐領域Ｖｓは、カメラ視点Ｐｃがボールの移動に追随しない視錐内領域Ｖｓｎと、カメラ視点Ｐｃがボールの移動に追随する領域（視錐内領域Ｖｓｎを除く視錐領域、視錐内領域Ｖｓｎの外部の領域）とから構成されている。視錐内領域Ｖｓｎは、視錐領域Ｖｓの内部に設けられており、視錐内領域Ｖｓｎの８つの隅角部ｖ’１，ｖ’２，ｖ’３，ｖ’４，ｖ’５，ｖ’６，ｖ’７，ｖ’８の位置を示す位置データをＣＰＵ７に認識させることにより、３次元ゲーム空間における視錐内領域Ｖｓｎの位置および視錐内領域Ｖｓｎの範囲が、ＣＰＵ７に認識される。図４では、図を見やすくするため視錐内領域Ｖｓｎの８つの隅角部ｖ’１〜ｖ’８は図示していない。
【０１０９】
なお、視錐内領域Ｖｓｎの８つの隅角部ｖ’１〜ｖ’８の位置を示す位置データは、ゲームプログラムにおいて予め規定されている。視錐内領域Ｖｓｎの８つの隅角部の位置を示す位置データは、視錐領域Ｖｓの重心を原点とする相対座標で定義される。
【０１１０】
このようにして、視錐領域Ｖｓおよび視錐内領域Ｖｓｎが設定されると、視錐領域Ｖｓの内部に位置するオブジェクトおよびキャラクタ等が、テレビジョンモニタ２０に表示される（Ｓ４０７）。
【０１１１】
たとえば、図５に示すように、スタジアムの内部、打者キャラクタ７０、および投手キャラクタ７１が、スタジアム用の画像データおよび各キャラクタ用の画像データを用いて、テレビジョンモニタ２０に表示される。また、打者キャラクタ７０がスイング動作を行うときの目印に対応するミートゾーン８１が、ミートゾーン用の画像データを用いてテレビジョンモニタ２０に表示される。この状態において、ミートゾーン８１を移動させるための移動命令がＡプレイヤのコントローラ１７から指示されると、ミートゾーン８１がコントローラ１７の操作方向にテレビジョンモニタ２０において移動する。
【０１１２】
さらに、ミートゾーン８１が移動する面（ヒッティング面）を３次元ゲーム空間の所定の位置に配置する処理が、ＣＰＵ７により実行される。ヒッティング面は、投手キャラクタ７１からリリースされたボールが、打者キャラクタ７０のスイング動作により打ち返される面である。また、ヒッティング面上にはストライクゾーン８０が設定されており、このストライクゾーン８０はテレビジョンモニタ２０に表示される。なお、ヒッティング面の位置および範囲と、ストライクゾーン８０の位置および範囲とは、ゲームプログラムにおいて予め規定されている。
【０１１３】
続いて、投手キャラクタ７１を動作させるための動作命令が投手キャラクタ７１に対して指示されたか否かが、ＣＰＵ７により判断される（Ｓ４０８）。たとえば、投手キャラクタ７１の投球に関する動作命令（投球関連命令）がコントローラ１７から投手キャラクタ７１に対して指示されたか否かが、ＣＰＵ７により判断される。そして、投手キャラクタ７１に対して投球関連命令がコントローラ１７から指示されたとＣＰＵ７により判断された場合（Ｓ４０８でＹｅｓ）、投手キャラクタ７１に対する投球関連命令が、ＣＰＵ７に認識される。
【０１１４】
ここでは、投球関連命令が、球種を指示するための球種指示命令、投球の開始を指示するための投球開始命令、投球コースを指示するためのコース指示命令、およびボールのリリースを指示するためのリリース命令等から構成されている。
【０１１５】
続いて、投手キャラクタ７１に対する投球関連命令がＣＰＵ７に認識されると、投手キャラクタ７１が動作する状態が、投手用の画像データを用いてテレビジョンモニタ２０に表示される。たとえば、球種指示命令がＣＰＵ７に認識された後に、投球開始命令がＣＰＵ７に認識されると、投手キャラクタ７１が投球動作を開始し投手キャラクタ７１が投球動作を行う状態が、テレビジョンモニタ２０に表示される。そして、コース指示命令がＣＰＵ７に認識された後に、リリース命令がＣＰＵ７に認識されると、投手キャラクタ７１がボールをリリースし投手キャラクタ７１がフォロースルーする状態が、テレビジョンモニタ２０に表示される。
【０１１６】
続いて、投手キャラクタ７１からボールが投球されると、投手キャラクタ７１から投球されたボールが、ボール用の画像データを用いてテレビジョンモニタ２０に表示される（Ｓ４０９）。また、投手キャラクタ７１からボールが投球されると、投球されたボールがヒッティング面を通過する位置を予想してＡプレイヤに報知するためのマーク（ボールの予想通過位置）が、ボール形状の画像データをテレビジョンモニタ２０に表示される（図示しない）。
【０１１７】
また、投手キャラクタ７１からボールＢが投球されると、ボールＢの位置を示すボール用の位置データが、ＣＰＵ７に認識される。たとえば、３次元ゲーム空間におけるボールＢの位置を示すボール用の位置データが、ＣＰＵ７に認識される。
【０１１８】
すると、図６に示すように、視点用の位置データおよびボール用の位置データに基づいて、カメラ視点Ｐｃの位置とボールＢの位置との間の距離Ｌを示す距離データを算出する処理が、ＣＰＵ７により実行される（Ｓ４１０）。ここでは、２点間の距離を算出する方程式に、視点用の位置データおよびボール用の位置データを代入する処理をＣＰＵ７に実行させることにより、カメラ視点Ｐｃの位置とボールＢの位置との間の距離Ｌを示す距離データが算出される。
【０１１９】
続いて、図６に示すように、カメラ視点Ｐｃの位置を示す位置データ（視点用の位置データ）、およびカメラの注視点Ｐｆの位置を示す位置データ（注視点用の位置データ）に基づいて、カメラ視点Ｐｃを基点としてカメラ視点Ｐｃと注視点Ｐｆとを結ぶ視線方向ベクトル（第１方向ベクトル）Ｈ１を算出する処理が、ＣＰＵ７により実行される（Ｓ４１１）。ここでは、カメラの注視点Ｐｆの位置を示す位置データ（注視点用の位置データ）からカメラ視点Ｐｃの位置を示す位置データ（視点用の位置データ）を減算する処理をＣＰＵ７に実行させることにより、視線方向ベクトルＨ１は算出される。ここで、視線方向ベクトルＨ１は正規化される。
【０１２０】
続いて、カメラ視点Ｐｃの位置を示す位置データ（視点用の位置データ）、およびボールＢの位置を示す位置データ（ボール用の位置データ）に基づいて、カメラ視点Ｐｃを基点としてカメラ視点ＰｃとボールＢとを結ぶボール用の方向ベクトル（第２方向ベクトル）Ｈ２を算出する処理が、ＣＰＵ７により実行される（Ｓ４１２）。ここでは、ボールＢの位置を示す位置データ（ボール用の位置データ）からカメラ視点Ｐｃの位置を示す位置データ（視点用の位置データ）を減算する処理をＣＰＵ７に実行させることにより、ボール用の方向ベクトルＨ２が算出される。ここで、ボール用の方向ベクトルＨ２は正規化される。
【０１２１】
続いて、カメラ視点Ｐｃの位置とボールＢの位置との間の距離Ｌに応じてカメラ視点Ｐｃの移動速度が小さくなるような、カメラ視点用の加速度データＡｃが、ＣＰＵ７に認識される（Ｓ４１３）。たとえば、カメラ視点Ｐｃの位置とボールＢの位置との間の距離Ｌが大きくなるとカメラ視点Ｐｃの移動速度が小さくなるような、カメラ視点用の加速度データＡｃが、ＣＰＵ７に認識される。
【０１２２】
ここでは、距離Ｌとカメラ視点用の加速度データＡｃとは、図７に示すような関数ｆ（Ａｃ＝ｆ（Ｌ））で互いに関連づけられている。この対応関係は、ゲームプログラムにおいて予め規定されている。なお、図７におけるＬｏは、カメラ視点Ｐｃから第１面Ｓ１までの距離である（図６を参照）。また、図７におけるＬ１は、カメラ視点Ｐｃから投手キャラクタまでの距離である。さらに、図７におけるＬｎは、カメラ視点Ｐｃから最も近い外野スタンドのフェンスまでの距離である。
【０１２３】
続いて、カメラ視点用の加速度データＡｃに基づいてカメラ用の速度データＢｃが算出される（Ｓ４１４）。そして、このカメラ用の速度データＢｃが、ＣＰＵ７に認識される。具体的には、カメラ視点用の速度データをＢｃとし、カメラ視点用の基準速度データをＢｋとし、時間間隔をｄｔ（＝１／６０（ｓｅｃ））とすると、カメラ視点用の加速度データＡｃは、「Ａｃ＝（Ｂｃ−Ｂｋ）／ｄｔ」と記載することができる。これにより、カメラ視点用の速度データＢｃが、「Ｂｃ＝Ｂｋ＋Ａｃ・ｄｔ」式に基づいて、ＣＰＵ７により算出される。なお、カメラ視点用の基準速度データＢｋは、ゲームプログラムにおいて予め規定されており、ＲＡＭ１２に格納されている。
【０１２４】
ここでは、カメラ視点用の加速度データＡｃおよびカメラ用の速度データＢｃは、注視点Ｐｆに定義されている。すなわち、後述するように、注視点Ｐｆをカメラ用の速度データＢｃが示す速度で移動させることにより、カメラの視点Ｐｃを中心としてカメラの視線の向きが変化する。すなわち、カメラの視点Ｐｃを中心として、視錐領域Ｖｓおよび視錐内領域Ｖｓｎが３次元ゲーム空間において移動する。
【０１２５】
なお、ここでは、上記のようにカメラ視点用の加速度データＡｃに基づいてカメラ用の速度データＢｃが算出される場合の例を示したが、カメラ視点Ｐｃの位置とボールＢの位置との間の距離Ｌを示す距離データと、カメラ用の速度データＢｃとの対応関係を、ゲームプログラムにおいて予め規定しておくことにより、カメラ視点Ｐｃの位置とボールＢの位置との間の距離Ｌが大きくなるとカメラ視点Ｐｃの速度が小さくなるようなカメラ用の速度データＢｃを、直接的に設定するようにしても良い。
【０１２６】
続いて、打者キャラクタ７０をスイング動作させるための動作命令（打撃関連命令）がＣＰＵ７に認識されたか否かが、ＣＰＵ７により判断される（Ｓ４１５）。
【０１２７】
ここでは、打撃関連命令が、ミートゾーン８１を移動するためのミートゾーン移動命令、およびスイングの開始を指示するスイング開始命令等から構成されている。ここでは、打席で構えの姿勢をとる打者キャラクタ７０がテレビジョンモニタ２０に表示されているときに、スイング開始命令がＣＰＵ７に認識されたか否かが、ＣＰＵ７により判断される。たとえば、ミートゾーン移動命令が指示された場合、ミートゾーン移動命令に基づいてミートゾーン８１が移動した後に、スイング開始命令がＣＰＵ７に認識されたか否かが、ＣＰＵ７により判断される。また、ミートゾーン移動命令が指示されていない場合、ミートゾーン８１が静止した状態で、スイング開始命令がＣＰＵ７に認識されたか否かが、ＣＰＵ７により判断される。
【０１２８】
そして、スイング開始命令がＣＰＵ７に認識された場合（Ｓ４１５でＹｅｓ）、投手キャラクタからリリースされたボールＢが打ち返されたか否かが、ＣＰＵ７により判断される（Ｓ４１６）。たとえば、投手キャラクタからリリースされたボールＢの少なくとも一部の領域とミートゾーンの少なくとも一部の領域とが一致したか否かが、ＣＰＵ７により判断される。そして、投手キャラクタからリリースされたボールＢの少なくとも一部の領域とミートゾーンの少なくとも一部の領域とが一致した場合（Ｓ４１６でＹｅｓ）、投手キャラクタからリリースされたボールＢがバットにより打ち返され、打ち返されたボールＢが移動する状態が、ボール用の画像データを用いてテレビジョンモニタ２０に表示される（Ｓ４１７）。
【０１２９】
続いて、投手キャラクタからリリースされたボールＢが打者キャラクタにより打ち返されると、ボールＢが視錐内領域Ｖｓｎの内部に位置するか否かが、ＣＰＵ７により判定される（Ｓ４１８）。たとえば、８つの隅角部の位置を示す位置データにより定義される視錐内領域Ｖｓｎの内部にボールＢが位置するか否かが、ＣＰＵ７により判定される。具体的には、視錐内領域Ｖｓｎの８つの隅角部の位置を示す位置データが示す範囲内に、ボールＢの位置を示す位置データが含まれているか否かの判定が、ＣＰＵ７により実行される。
【０１３０】
なお、ここでは、投手キャラクタからリリースされたボールＢが打者キャラクタにより打ち返されなかった場合（Ｓ４１８でＮｏ）、ボールＢが視錐内領域Ｖｓｎの内部に位置するように設定されている。
【０１３１】
そして、ボールＢが視錐内領域Ｖｓｎの外部に位置するとＣＰＵ７に判定された場合（Ｓ４１８でＮｏ）、カメラ用の速度データＢｃに基づいて、ボールＢが位置する方向にカメラの注視点Ｐｆを移動する処理が、ＣＰＵ７により実行される（Ｓ４１９）。たとえば、ボールＢが視錐内領域Ｖｓｎを除く視錐領域Ｖｓの内部に位置するとＣＰＵ７に判定された場合に、カメラ用の速度データＢｃに基づいて、ボールＢが位置する方向にカメラの注視点Ｐｆを移動する処理が、ＣＰＵ７により実行される。具体的には、視錐内領域Ｖｓｎの８つの隅角部の位置を示す位置データが示す範囲外に、ボールＢの位置を示す位置データが含まれているとＣＰＵ７により判定された場合、ボールＢが位置する方向にカメラの注視点Ｐｆをカメラ用の速度データＢｃが示す速度で移動する処理が、ＣＰＵ７により実行される。
【０１３２】
これにより、カメラの視点Ｐｃを中心としてカメラの注視点ＰｆがボールＢの位置する方向に回転し、このカメラの注視点Ｐｆの回転に連動して、視錐領域Ｖｓおよび視錐内領域Ｖｓｎが移動する。すると、視点用の位置データが示す位置に配置されたカメラの視点から見える映像が、図８に示すように、テレビジョンモニタ２０に表示される。ここでは、カメラ視点ＰｃがボールＢの移動に追随するような映像（図８（ａ）→図８（ｂ））が、テレビジョンモニタ２０に表示される。図８では、図を見やすくするために、キャラクタは表示せず、ボールＢのみが表示されている。
【０１３３】
一方で、ボールＢが視錐内領域Ｖｓｎの内部に位置するとＣＰＵ７に判定された場合（Ｓ４１８でＹｅｓ）、カメラの注視点Ｐｆを移動する処理はＣＰＵ７により実行されず、カメラの注視点Ｐｆは固定された状態で維持される（Ｓ４２０）。
【０１３４】
なお、カメラ視点Ｐｃを基点としてボールが位置する方向にカメラの注視点Ｐｆを移動する処理がＣＰＵ７により実行されている間は、視錐内領域Ｖｓｎの８つの隅角部の位置を示す位置データが示す範囲内に、ボールの位置を示す位置データが含まれているか否かの判定が、ＣＰＵ７により常に実行されている（Ｓ４２１）。たとえば、この間は、視錐内領域Ｖｓｎの８つの隅角部の位置を示す位置データが示す範囲内に、ボールの位置を示す位置データが含まれているか否かの判定が、所定の時間（１／６０（ｓｅｃ））毎にＣＰＵ７により実行されている。
【０１３５】
続いて、ボールが視錐内領域Ｖｓｎの外部に位置するとＣＰＵ７に判定され後に（Ｓ４１８でＮｏ）、ボールが視錐内領域Ｖｓｎの内部に位置するとＣＰＵ７に判定された場合（Ｓ４２１でＹｅｓ）、カメラ視点Ｐｃを基点としてカメラ視点Ｐｃとカメラの注視点Ｐｆとを結ぶ方向を示す視線方向ベクトルＨ１と、カメラ視点Ｐｃを基点としてカメラ視点Ｐｃとボールとを結ぶ方向を示すボール用の方向ベクトルＨ２とに基づいて、第１方向と第２方向とが一致するか否かが、ＣＰＵ７により判別される（Ｓ４２２）。たとえば、視線方向ベクトルＨ１とボール用の方向ベクトルＨ２との内積を計算する処理が、ＣＰＵ７により実行される。そして、この内積が「１」であるか否かが、ＣＰＵ７により判別される。
【０１３６】
そして、視線方向ベクトルＨ１とボール用の方向ベクトルＨ２との内積が「１」であるとＣＰＵ７により判別された場合（Ｈ１・Ｈ２＝１、Ｓ４２２でＹｅｓ）、カメラの注視点Ｐｆの移動を停止する処理が、ＣＰＵ７により実行される（Ｓ４２３）。たとえば、ボールが視錐内領域Ｖｓｎの外部から内部に戻ってきたときに、カメラの視線方向にボールが位置するとＣＰＵ７により判別されると、カメラの注視点Ｐｆの移動を停止する命令が、ＣＰＵ７から発行される。これにより、カメラ視点Ｐｃを基点としてボールが位置する方向にカメラの注視点Ｐｆを移動する処理が、ＣＰＵ７により停止される。
【０１３７】
一方で、視線方向ベクトルＨ１とボール用の方向ベクトルＨ２との内積が「１」でない場合（Ｈ１・Ｈ２≠１、Ｓ４２２でＮｏ）、視線方向ベクトルＨ１とボール用の方向ベクトルＨ２との内積が「１」になるまで、カメラの注視点Ｐｆの移動は継続される。
【０１３８】
なお、一般的に、ＣＰＵ７において計算が実行されると、機械的な誤差が必ず発生する。この誤差は、上記のような内積計算においても同様に発生する。このため、実際の計算では、許容誤差を「ｄｇ（＜１）」とすると、視線方向ベクトルＨ１とボール用の方向ベクトルＨ２との内積Ｎが、「１−ｄｇ≦Ｎ≦１＋ｄｇ」であるか否かが、ＣＰＵ７により判別されている。このため、たとえば「ステップ４２２でＮｏ」の場合、内積Ｎが、「１−ｄｇ≦Ｎ≦１＋ｄｇ」を満たすまで、カメラの注視点Ｐｆの移動は継続される。
【０１３９】
続いて、打者キャラクタ７０、投手キャラクタ７１、および野手キャラクタ７２に対する動作に関する命令の受け付けが終了したか否かが、ＣＰＵ７により判断される（Ｓ４２４）。たとえば、一人の打者キャラクタに対するプレイ（１プレイ）が終了したか否かを示すフラグが立ったか否かが、ＣＰＵ７により判断される。ここでは、一人の打者キャラクタに対するプレイ（１プレイ）が終了したときに、１プレイが終了したことを示すフラグの値に「１」を割り当てる処理が、ＣＰＵ７により実行される。
【０１４０】
このため、１プレイが終了したか否かを示すフラグの値が「１」であるか否かがＣＰＵ７により判断され（Ｓ４２４）、１プレイが終了したか否かを示すフラグの値が「１」であるとＣＰＵ７により判断された場合（Ｓ４２４でＹｅｓ）、打者キャラクタ７０、投手キャラクタ７１、および野手キャラクタ７２に対する動作に関する命令の受け付けが、ＣＰＵ７により終了される（Ｓ４２５）。一方で、１プレイが終了したか否かを示すフラグの値が「０」であるとＣＰＵ７により判断された場合（Ｓ４２４でＮｏ）、ステップ４０３（Ｓ４０３）以降の処理が、ＣＰＵ７により再実行される。
【０１４１】
続いて、対戦モードが終了したか否かが、ＣＰＵ７により判断される（Ｓ４２６）。たとえば、対戦モードが終了したか否かを示すフラグが立ったか否かが、ＣＰＵ７により判断される。具体的には、対戦モードが終了したか否かを示すフラグの値が「１」であるか否かが、ＣＰＵ７により判断される。
【０１４２】
そして、対戦モードが終了したか否かを示すフラグの値が「１」であるとＣＰＵ７に判断された場合（Ｓ４２６でＹｅｓ）、データをＲＡＭ１２に格納する処理が、ＣＰＵ７により実行される（Ｓ４２７）。一方で、対戦モードが終了したか否かを示すフラグの値が「０」であるとＣＰＵ７に判断された場合（Ｓ４２６でＮｏ）、ステップ４０２（Ｓ４０２）以降の処理が、ＣＰＵ７により再実行される。
【０１４３】
上記のように、本実施形態では、ボールＢが視錐内領域Ｖｓｎの外部に位置するとＣＰＵ７に判定された場合に、ボールＢが視錐内領域Ｖｓｎの内部に位置するように、カメラの注視点Ｐｆを移動する処理が、ＣＰＵ７により実行される。すなわち、ボールＢが視錐内領域Ｖｓｎの外部に位置したときに、ボールＢが視錐内領域Ｖｓｎの内部に位置するようにカメラの注視点ＰｆがボールＢの動きに追随して移動する。
【０１４４】
これにより、たとえば、打者キャラクタにより打ち返されたボールＢがスタンドや外野で飛び跳ねても、ボールＢが視錐内領域Ｖｓｎの内部に位置すれば、カメラの視線がボールＢの動きに連動して逐一移動しなくなり、映像が見やすくなる。また、ボールＢが視錐内領域Ｖｓｎの内部に位置するようにカメラの注視点ＰｆをボールＢの動きに追随して移動させることにより、ゲーム提供者が対戦状況ごとにカメラの視線の動きを任意に設定しなくても、カメラの視線の動きを自動的に設定することができる。
【０１４５】
また、本実施形態では、ボールＢが視錐内領域Ｖｓｎの外部に位置するとＣＰＵ７に判定された場合に、カメラ視点Ｐｃの位置とボールＢの位置との間の距離Ｌを示す距離データに対応するカメラ用の速度データＢｃに基づいて、ボールＢが視錐内領域Ｖｓｎの内部に位置するようにカメラの注視点Ｐｆを移動する処理が、ＣＰＵ７により実行される。
【０１４６】
これにより、ボールＢが視錐内領域の外部に位置したときに、カメラ視点とボールとの距離が近いときにはカメラの注視点Ｐｆを速く移動し、カメラ視点とボールとの距離が遠いときにはカメラの注視点Ｐｆを遅く移動することができる。このように、カメラの注視点の移動速度を変化させることにより、ボールの動きを違和感なく画像表示部に表示することができる。
【０１４７】
〔他の実施形態〕
（ａ）前記実施形態では、ゲームプログラムを適用しうるコンピュータの一例としての家庭用ビデオゲーム装置を用いた場合の例を示したが、ゲーム装置は、前記実施形態に限定されず、モニタが別体に構成されたゲーム装置、モニタが一体に構成されたゲーム装置、ゲームプログラムを実行することによってゲーム装置として機能するパーソナルコンピュータやワークステーションなどにも同様に適用することができる。また、ゲーム装置は、前記実施形態に限定されず、携帯型コンピュータ、携帯型ゲーム装置などにも同様に適用することができる。
【０１４８】
（ｂ）本発明には、前述したようなゲームを実行するプログラムおよびこのプログラムを記録したコンピュータ読み取り可能な記録媒体も含まれる。この記録媒体としては、カートリッジ以外に、たとえば、コンピュータ読み取り可能なフレキシブルディスク、半導体メモリ、ＣＤ−ＲＯＭ、ＤＶＤ、ＭＯ、ＲＯＭカセット、その他のものが挙げられる。
【０１４９】
（ｃ）前記実施形態では、カメラの注視点Ｐｆのみが移動する場合の例を示したが、
カメラの視点Ｐｃのみが移動する場合、およびカメラの視点Ｐｃおよびカメラの注視点Ｐｆが移動する場合にも、本発明は適用することができる。この場合も、上記と同様の効果を得ることができる。
【図面の簡単な説明】
【０１５０】
【図１】本発明の一実施形態によるゲーム装置の基本構成図。
【図２】前記ゲーム装置の機能ブロック図。
【図３】カメラ視点、視錐領域、および視錐内領域等の設定形態を示す図。
【図４】カメラ視点、視錐領域、および視錐内領域等の設定形態の詳細を示す図。
【図５】投球前にテレビジョンモニタに表示される図。
【図６】ボールと注視点との関係を説明するための図。
【図７】カメラ視点の位置とボールの位置との間の距離データとカメラ視点用の加速度データとの関係を示す図。
【図８】カメラ視点がボールＢの移動に追随したときの映像を示す図。
【図９】野球ゲームの全体概要を示すフロー。
【図１０Ａ】野球ゲームにおけるボール追随システムを示すフロー。
【図１０Ｂ】野球ゲームにおけるボール追随システムを示すフロー。
【図１０Ｃ】野球ゲームにおけるボール追随システムを示すフロー。
【符号の説明】
【０１５１】
１  制御部
２  記憶部
３  画像表示部
４  音声出力部
５  操作入力部
７  ＣＰＵ
１２  ＲＡＭ
１７  コントローラ
２０  テレビジョンモニタ
２３  通信部
５０  視点位置認識手段
５１  注視点位置認識手段
５２  視錐領域認識手段
５３  視錐内領域認識手段
５４  ボール位置認識手段
５５  距離算出手段
５６  第１方向ベクトル算出手段
５７  第２方向ベクトル算出手段
５８  カメラ速度認識手段
５９  位置判定手段
６０  第１視点制御手段
６１  方向判別手段
６２  第２視点制御手段
Ｂ  ボール
Ｐｃ  カメラ視点
Ｐｆ  カメラの注視点
Ｖｓ  視錐領域
Ｖｓｎ  視錐内領域
Ａｃ  カメラ用の加速度データ
Ｂｃ  カメラ用の速度データ
【図１】
0004521020.tif 000002
【図２】
0004521020.tif 000003
【図３】
0004521020.tif 000004
【図４】
0004521020.tif 000005
【図５】
0004521020.tif 000006
【図６】
0004521020.tif 000007
【図７】
0004521020.tif 000008
【図８】
0004521020.tif 000009
【図９】
0004521020.tif 000010
【図１０Ａ】
0004521020.tif 000011
【図１０Ｂ】
0004521020.tif 000012
【図１０Ｃ】
0004521020.tif 000013