説明

ゲームプログラム、ゲーム装置、およびゲーム制御方法

【課題】カメラの視線が移動体に追随するときに映像が見やすくなるようにする。
【解決手段】本プログラムでは、カメラ視点Pcの位置を示す視点用の位置データが、制御部1に認識される。そして、視錐領域Vsおよび視錐内領域Vsnが、制御部1に認識される。そして、移動体Bが視錐内領域Vsnの内部に位置するか否かが、制御部1により判定される。そして、移動体Bが視錐内領域Vsnの外部に位置すると制御部1に判定された場合に、移動体Bが視錐内領域Vsnの内部に位置するように、カメラ視点Pcおよびカメラの注視点Pfの少なくともいずれか一方を移動する処理が、制御部1により実行される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ゲームプログラム、特に、3次元ゲーム空間に配置されたカメラの位置にカメラ座標系を規定し、前記3次元ゲーム空間を移動する移動体を画像表示部に表示するゲームを実現するためのゲームプログラムに関する。また、このゲームプログラムを実行可能なゲーム装置、およびこのゲームプログラムに基づいてコンピュータにより制御されるゲーム制御方法に関する。
【背景技術】
【0002】
従来から様々なビデオゲームが提案されている。これらビデオゲームは、ゲーム装置において実行されるようになっている。たとえば、一般的なゲーム装置は、モニタと、モニタとは別体のゲーム機本体と、ゲーム機本体とは別体の入力装置たとえばコントローラとを有している。コントローラには、複数の入力釦が配置されている。
【0003】
このようなゲーム装置において実現されるビデオゲームの1つとして、たとえば、野球ゲームが知られている(非特許文献1を参照)。
【0004】
この野球ゲームでは、たとえば、投手キャラクタと右打者キャラクタとが対戦する場合、投手キャラクタがモニタ中央部に表示され、右打者キャラクタがモニタ左部に表示される。また、このときには、ホームベースがモニタ中央下部に表示され、外野のスタンドがモニタ上部に表示される。この状態において、投手キャラクタが投球モーションを開始し、ボールが投手キャラクタから投球されると、投球されたボールがモニタに表示される。そして、投球されたボールが打者キャラクタにより打ち返されると、打ち返されたボールがモニタに表示される。
【0005】
この場合、投手キャラクタが投球モーションを開始してから、投球されたボールが打者キャラクタにより打ち返されるまでの間は、3次元ゲーム空間に配置されたカメラの視線は、投手キャラクタの位置に固定されている。そして、投球されたボールが打者キャラクタにより打ち返されると、カメラの視線が、打ち返されたボール(移動中のボール)を追いかけながら移動する。このようにカメラの視線を制御することにより、投手キャラクタが投球モーションを開始してから、投球されたボールが打者キャラクタにより打ち返された後までの画像を、モニタに表示することができる。
【非特許文献1】プロ野球スピリッツ4、コナミデジタルエンタテインメント、PS3版、2007年4月1日
【発明の開示】
【発明が解決しようとする課題】
【0006】
従来の野球ゲームでは、対戦状況に応じて、カメラの視線が投手キャラクタの位置に固定されていたり、カメラの視線がボールの移動に追随したりするようになっていた。このため、たとえば打者キャラクタにより打ち返されたボールがスタンドに入った場合、スタンドでボールが飛び跳ねると、カメラの視線がボールの動きに連動して逐一移動してしまい、映像が見づらくなるという問題があった。
【0007】
一方で、従来の野球ゲームでは、ゲーム提供者が、対戦状況ごとにカメラの視線の動きを任意に設定していた。たとえば、上記の例では、ゲーム提供者が、カメラの視線を投手キャラクタの位置に固定する命令と、カメラの視線をボールの移動に追随させる命令を、任意に設定していた。
【0008】
しかしながら、近年のゲーム装置の高速化に伴い、現実世界の野球と同じような多彩な対戦状況が、野球ゲームにおいても実現されるようになると、対戦状況の数が非常に多くなってしまい、ゲーム提供者がカメラの視線の動きを設定する際に費やす労力が、大きくなってしまうという問題があった。
【0009】
このような問題を解決するために、本発明では、カメラの視線が移動体に追随したとしても映像が見やすいゲームを提供することを目的とする。また、本発明では、カメラの視線の動きを容易に設定することができるゲームを提供することを目的とする。
【課題を解決するための手段】
【0010】
請求項1に係るゲームプログラムは、3次元ゲーム空間に配置されたカメラの位置にカメラ座標系を規定し、3次元ゲーム空間を移動する移動体を画像表示部に表示するゲームを実行可能なコンピュータに、以下の機能を実現させるためのプログラムである。
(1)カメラ視点の位置を示す視点用の位置データを、制御部に認識させる視点位置認識機能。
(2)カメラの注視点の位置を示す注視点用の位置データを、制御部に認識させる注視点位置認識機能。
(3)視点用の位置データが示すカメラの視点から注視点用の位置データが示すカメラの注視点へと向かう方向に向いたカメラから見える視錐領域を、制御部に認識させる視錐領域認識機能。
(4)カメラ視点およびカメラの注視点の少なくともいずれか一方の移動を制御するために視錐領域の内部に設けられた視錐内領域を、制御部に認識させる視錐内領域認識機能。
(5)移動体が視錐内領域の内部に位置するか否かを制御部に判定させる位置判定機能。
(6)移動体が視錐内領域の外部に位置すると制御部に判定された場合に、移動体が視錐内領域の内部に位置するように、カメラ視点およびカメラの注視点の少なくともいずれか一方を移動する処理を制御部に実行させる第1視点制御機能。
【0011】
このゲームプログラムでは、視点位置認識機能において、カメラ視点の位置を示す視点用の位置データが、制御部に認識される。注視点位置認識機能においては、カメラの注視点の位置を示す注視点用の位置データが、制御部に認識される。視錐領域認識機能においては、視点用の位置データが示すカメラの視点から注視点用の位置データが示すカメラの注視点へと向かう方向に向いたカメラから見える視錐領域が、制御部に認識される。視錐内領域認識機能においては、カメラ視点およびカメラの注視点の少なくともいずれか一方の移動を制御するために視錐領域の内部に設けられた視錐内領域が、制御部に認識される。位置判定機能においては、移動体が視錐内領域の内部に位置するか否かが、制御部により判定される。第1視点制御機能においては、移動体が視錐内領域の外部に位置すると制御部に判定された場合に、移動体が視錐内領域の内部に位置するように、カメラ視点およびカメラの注視点の少なくともいずれか一方を移動する処理が制御部により実行される。
【0012】
たとえば、本ゲームプログラムを用いることにより野球ゲームが実行された場合、カメラ視点の位置を示す視点用の位置データが、制御部に認識される。また、カメラの注視点の位置を示す注視点用の位置データが、制御部に認識される。そして、視点用の位置データが示すカメラの視点から注視点用の位置データが示すカメラの注視点へと向かう方向に向いたカメラから見える視錐領域が、制御部に認識される。そして、カメラ視点およびカメラの注視点の少なくともいずれか一方の移動を制御するために視錐領域の内部に設けられた視錐内領域が、制御部に認識される。そして、ボールが視錐内領域の内部に位置するか否かが、制御部により判定される。そして、ボールが視錐内領域の外部に位置すると制御部に判定された場合に、ボールが視錐内領域の内部に位置するように、カメラ視点およびカメラの注視点の少なくともいずれか一方を移動する処理が制御部により実行される。
【0013】
この場合、ボールが視錐内領域の外部に位置すると制御部に判定された場合に、ボールが視錐内領域の内部に位置するように、カメラ視点およびカメラの注視点の少なくともいずれか一方を移動する処理が制御部により実行される。すなわち、ボールが視錐内領域の外部に位置したときに、ボールが視錐内領域の内部に位置するように、カメラ視点およびカメラの注視点の少なくともいずれか一方がボールの動きに追随して移動する。
【0014】
これにより、たとえば、ボールが視錐内領域の内部に位置するときには、カメラ視点およびカメラの注視点がボールの動きに追随しないようにしておけば、打者キャラクタにより打ち返されたボールがスタンドで飛び跳ねても、カメラの視線がボールの動きに連動して逐一移動しなくなり、映像が見やすくなる。また、ボールが視錐内領域の内部に位置するようにカメラ視点およびカメラの注視点の少なくともいずれか一方をボールの動きに追随して移動させることにより、ゲーム提供者が対戦状況ごとにカメラの視線の動きを任意に設定しなくても、カメラの視線の動きを自動的に設定することができる。
【0015】
以上の内容を一般的に記述すると、請求項1の発明では、カメラの視線が移動体に追随したとしても、映像が見にくくならないようにすることができる。また、請求項1の発明では、カメラの視線の動きを容易に設定することができる。
【0016】
請求項2に係るゲームプログラムは、請求項1に記載のゲームプログラムにおいて、コンピュータに以下の機能をさらに実現させるためのプログラムである。
(7)移動体の位置を示す移動体用の位置データを、制御部に認識させる移動体位置認識機能。
(8)視点用の位置データおよび移動体用の位置データに基づいて、カメラ視点の位置と移動体の位置との間の距離を示す距離データを算出する処理を、制御部に実行させる距離算出機能。
(9)距離データに対応する、カメラの視点およびカメラの注視点の少なくともいずれか一方の移動速度を示すカメラ用の速度データを、制御部に認識させるカメラ速度認識機能。
【0017】
このゲームプログラムでは、移動体位置認識機能において、移動体の位置を示す移動体用の位置データが、制御部に認識される。距離算出機能においては、視点用の位置データおよび移動体用の位置データに基づいて、カメラ視点の位置と移動体の位置との間の距離を示す距離データを算出する処理が、制御部により実行される。カメラ速度認識機能においては、距離データに対応する、カメラ視点およびカメラの注視点の少なくともいずれか一方の移動速度を示すカメラ用の速度データが、制御部に認識される。そして、第1視点制御機能においては、移動体が視錐内領域の外部に位置すると制御部に判定された場合に、カメラ用の速度データに基づいて、移動体が視錐内領域の内部に位置するようにカメラ視点およびカメラの注視点の少なくともいずれか一方を移動する処理が、制御部により実行される。
【0018】
たとえば、本ゲームプログラムを用いることにより野球ゲームが実行された場合、ボールの位置を示すボール用の位置データが、制御部に認識される。そして、視点用の位置データおよびボール用の位置データに基づいて、カメラ視点の位置とボールの位置との間の距離を示す距離データを算出する処理が、制御部により実行される。そして、距離データに対応する、カメラ視点およびカメラの注視点の少なくともいずれか一方の移動速度を示すカメラ用の速度データが、制御部に認識される。そして、ボールが視錐内領域の外部に位置すると制御部に判定された場合に、カメラ用の速度データに基づいて、ボールが視錐内領域の内部に位置するようにカメラ視点およびカメラの注視点の少なくともいずれか一方を移動する処理が、制御部により実行される。
【0019】
この場合、ボールが視錐内領域の外部に位置すると制御部に判定された場合に、カメラ視点の位置とボールの位置との間の距離を示す距離データに対応するカメラ用の速度データに基づいて、ボールが視錐内領域の内部に位置するようにカメラ視点およびカメラの注視点の少なくともいずれか一方を移動する処理が、制御部により実行される。
【0020】
これにより、たとえば、ボールが視錐内領域の外部に位置したときに、カメラ視点とボールとの距離が近いときにはカメラ視点やカメラの注視点を速く動かしたり、カメラ視点とボールとの距離が遠いときにはカメラ視点やカメラの注視点を遅く動かしたりすることができる。反対に、ボールが視錐内領域の外部に位置したときに、カメラ視点とボールとの距離が近いときにはカメラ視点やカメラの注視点を遅く動かしたり、カメラ視点とボールとの距離が遠いときにはカメラ視点やカメラの注視点を速く動かしたりすることもできる。
【0021】
このように、カメラ視点とボールとの距離に応じてカメラ視点およびカメラの注視点の少なくともいずれか一方の移動速度を変化させることにより、対戦状況に応じてカメラ視点およびカメラの注視点の少なくともいずれか一方がボールの動きにどのように追随して移動しても、ボールの動きを違和感なく画像表示部に表示することができる。以上の内容を一般的に記述すると、請求項2の発明では、カメラの視線が移動体に追随したとしても、移動体の動きを違和感なく画像表示部に表示することができる。
【0022】
請求項3に係るゲームプログラムは、請求項2に記載のゲームプログラムにおいて、コンピュータに以下の機能をさらに実現させるためのプログラムである。
【0023】
このゲームプログラムでは、カメラ速度認識機能において、距離データが示す距離に応じてカメラ視点およびカメラの注視点の少なくともいずれか一方の移動速度が小さくなるような、カメラ用の速度データが、制御部に認識される。
【0024】
たとえば、本ゲームプログラムを用いることにより野球ゲームが実行された場合、距離データが示す距離に応じてカメラ視点およびカメラの注視点の少なくともいずれか一方の移動速度が小さくなるような、カメラ用の速度データが、制御部に認識される。
【0025】
この場合、ボールが視錐内領域の外部に位置したときに、カメラ視点とボールとの距離が近いときにはカメラ視点やカメラの注視点を速く動かしたり、カメラ視点とボールとの距離が遠いときにはカメラ視点やカメラの注視点を遅く動かしたりすることができる。このようにカメラ視点およびカメラの注視点の少なくともいずれか一方の移動を制御することにより、カメラ視点からボールまでの深度(距離)に応じて異なるボールの移動状態を、適切に画像表示部に表示することができる。以上の内容を一般的に記述すると、請求項3の発明では、カメラの視線が移動体に追随したとしても、カメラ視点およびカメラの注視点の少なくともいずれか一方の移動速度を上記のように調節することによって、移動体の動きを違和感なく画像表示部に表示することができる。
【0026】
請求項4に係るゲームプログラムは、請求項3に記載のゲームプログラムにおいて、コンピュータに以下の機能をさらに実現させるためのプログラムである。
【0027】
このゲームプログラムでは、カメラ速度認識機能において、距離データが示す距離に応じてカメラ視点およびカメラの注視点の少なくともいずれか一方の移動速度が小さくなるような、距離データに対応するカメラ視点用の加速度データが、制御部に認識される。そして、カメラ視点用の加速度データに基づいて算出されたカメラ用の速度データが、制御部に認識される。
【0028】
この場合、カメラ視点とボールとの距離に応じてカメラ視点およびカメラの注視点の少なくともいずれか一方の移動速度が小さくなるときにカメラ視点の移動速度が減速する程度を、カメラ視点の加速度によって調節することができる。これにより、カメラ視点からボールまでの深度(距離)に応じて異なるボールの移動状態を、カメラ視点およびカメラの注視点の少なくともいずれか一方の移動速度を調節することによって、適切に画像表示部に表示することができる。以上の内容を一般的に記述すると、請求項4の発明では、カメラの視線が移動体に追随したとしても、カメラ視点およびカメラの注視点の少なくともいずれか一方の移動速度を加速度を介して上記のように調節することによって、移動体の動きを違和感なく画像表示部に表示することができる。
【0029】
請求項5に係るゲームプログラムは、請求項1から4のいずれかに記載のゲームプログラムにおいて、コンピュータに以下の機能をさらに実現させるためのプログラムである。
(10)移動体の位置を示す移動体用の位置データを、制御部に認識させる移動体位置認識機能。
(11)視点用の位置データおよび注視点用の位置データに基づいて、カメラ視点を基点としてカメラ視点とカメラの注視点とを結ぶ第1方向の第1方向ベクトルを算出する処理を、制御部に実行させる第1方向ベクトル算出機能。
(12)視点用の位置データおよび移動体用の位置データに基づいて、カメラ視点を基点としてカメラ視点と移動体とを結ぶ第2方向の第2方向ベクトルを算出する処理を、制御部に実行させる第2方向ベクトル算出機能。
(13)第1方向ベクトルと第2方向ベクトルとに基づいて、第1方向と第2方向とが一致するか否かを制御部に判別させる方向判別機能。
(14)第1方向と第2方向とが一致したと制御部により判別された場合に、カメラの視点およびカメラの注視点の少なくともいずれか一方の移動を停止する処理を、制御部に実行させる第2視点制御機能。
【0030】
このゲームプログラムでは、移動体位置認識機能において、移動体の位置を示す移動体用の位置データが、制御部に認識される。第1方向ベクトル算出機能においては、視点用の位置データおよび注視点用の位置データに基づいて、カメラ視点を基点としてカメラ視点とカメラの注視点とを結ぶ第1方向の第1方向ベクトルを算出する処理が、制御部により実行される。第2方向ベクトル算出機能においては、視点用の位置データおよび移動体用の位置データに基づいて、カメラ視点を基点としてカメラ視点と移動体とを結ぶ第2方向の第2方向ベクトルを算出する処理が、制御部により実行される。方向判別機能においては、第1方向ベクトルと第2方向ベクトルとに基づいて、第1方向と第2方向とが一致するか否かが、制御部により判別される。第2視点制御機能においては、第1方向と第2方向とが一致したと制御部により判別された場合に、カメラの視点およびカメラの注視点の少なくともいずれか一方の移動を停止する処理が、制御部により実行される。
【0031】
たとえば、本ゲームプログラムを用いることにより野球ゲームが実行された場合、ボールの位置を示す移動体用の位置データが、制御部に認識される。そして、視点用の位置データおよび注視点用の位置データに基づいて、カメラ視点を基点としてカメラ視点とカメラの注視点とを結ぶ第1方向の第1方向ベクトルを算出する処理が、制御部により実行される。また、視点用の位置データおよび移動体用の位置データに基づいて、カメラ視点を基点としてカメラ視点と移動体とを結ぶ第2方向の第2方向ベクトルを算出する処理が、制御部により実行される。そして、第1方向ベクトルと第2方向ベクトルとに基づいて、第1方向と第2方向とが一致するか否かが、制御部により判別される。そして、第1方向と第2方向とが一致したと制御部により判別された場合に、カメラの視点およびカメラの注視点の少なくともいずれか一方の移動を停止する処理が、制御部により実行される。
【0032】
この場合、カメラ視点を基点としてカメラ視点と基準点とを結ぶ第1方向と、カメラ視点を基点としてカメラ視点と移動体とを結ぶ第2方向とが一致したと制御部により判別された場合に、カメラの視点およびカメラの注視点の少なくともいずれか一方の移動を停止する処理が、制御部により実行される。具体的には、カメラ視線の方向(第1方向)とカメラ視点から見たボールの方向(第2方向)とが一致した場合、すなわちカメラ視線の方向にボールが位置した場合、カメラの移動を停止する処理が、制御部により実行される。
【0033】
これにより、たとえば、打者キャラクタにより打ち返されたボールが移動しているときに、ボールがカメラ視線の方向に位置すると、カメラ視点の移動が停止されるので、打者キャラクタにより打ち返されたボールが移動する状態を示す映像が見やすくなる。また、たとえば、打者キャラクタにより打ち返されたボールがカメラ視線の方向に位置すると、カメラ視点の移動が停止されるので、打者キャラクタにより打ち返されたボールがスタンドで飛び跳ねても、カメラの視線がボールの動きに連動して逐一移動しなくなり、映像が見やすくなる。以上の内容を一般的に記述すると、請求項5の発明では、移動体がカメラの視線の方向に捉えられると、カメラの移動が停止されるので、映像が見やすくなる。
【0034】
請求項6に係るゲームプログラムは、請求項5に記載のゲームプログラムにおいて、コンピュータに以下の機能をさらに実現させるためのプログラムである。
【0035】
このゲームプログラムでは、第1視点制御機能において、移動体が視錐内領域の外部に位置すると制御部に判定された場合に、移動体が視錐内領域の内部に位置するようにカメラ視点を移動する処理が、制御部により実行される。第2視点制御機能においては、移動体が視錐内領域の外部に位置すると制御部に判定された後に、移動体が視錐内領域の内部に位置すると制御部に判定された場合、第1方向と第2方向とが一致したと制御部により判別されたときに、カメラ視点およびカメラの注視点の少なくともいずれか一方の移動を停止する処理が、制御部により実行される。
【0036】
たとえば、本ゲームプログラムを用いることにより野球ゲームが実行された場合、ボールが視錐内領域の外部に位置すると制御部に判定された場合に、ボールが視錐内領域の内部に位置するようにカメラ視点を移動する処理が、制御部により実行される。そして、ボールが視錐内領域の外部に位置すると制御部に判定された後に、ボールが視錐内領域の内部に位置すると制御部に判定された場合、第1方向と第2方向とが一致したと制御部により判別されたときに、カメラ視点およびカメラの注視点の少なくともいずれか一方の移動を停止する処理が、制御部により実行される。
【0037】
この場合、ボールが視錐内領域の外部に位置すると制御部に判定された後に、ボールが視錐内領域の内部に位置すると制御部に判定された場合、第1方向と第2方向とが一致したと制御部により判別されたときに、カメラ視点およびカメラの注視点の少なくともいずれか一方の移動を停止する処理が、制御部により実行される。
【0038】
これにより、たとえば、打者キャラクタにより打ち返されたボールが移動しているときに、ボールが視錐内領域の外部から内部に戻ってきた場合、ボールがカメラ視線の方向に位置すると、カメラの移動が停止されるので、打者キャラクタにより打ち返されたボールが移動する状態を示す映像が見やすくなる。また、たとえば、ボールが視錐内領域の外部から内部に戻ってきたときに、打者キャラクタにより打ち返されたボールがカメラ視線の方向に位置すると、カメラの移動が停止されるので、打者キャラクタにより打ち返されたボールがスタンドで飛び跳ねても、カメラの視線がボールの動きに連動して逐一移動しなくなり、映像が見やすくなる。以上の内容を一般的に記述すると、請求項6の発明では、移動体が視錐内領域の外部から内部に戻ってきたときに、移動体がカメラの視線の方向に捉えられると、カメラの移動が停止されるので、映像が見やすくなる。
【0039】
請求項7に係るゲーム装置は、3次元ゲーム空間に配置されたカメラの位置にカメラ座標系を規定し、3次元ゲーム空間を移動する移動体を画像表示部に表示するゲームを実行可能なゲーム装置である。このゲーム装置は、カメラの視点の位置を示す視点用の位置データを制御部に認識させる視点位置認識手段と、カメラの注視点の位置を示す注視点用の位置データを制御部に認識させる注視点位置認識手段と、視点用の位置データが示すカメラの視点から注視点用の位置データが示すカメラの注視点へと向かう方向に向いたカメラから見える視錐領域を、制御部に認識させる視錐領域認識手段と、カメラの視点およびカメラの注視点の少なくともいずれか一方の移動を制御するために視錐領域の内部に設けられた視錐内領域を、制御部に認識させる視錐内領域認識手段と、移動体が視錐内領域の内部に位置するか否かを制御部に判定させる位置判定手段と、移動体が視錐内領域の外部に位置すると制御部に判定された場合に、移動体が視錐内領域の内部に位置するように、カメラの視点およびカメラの注視点の少なくともいずれか一方を移動する処理を制御部に実行させる第1視点制御手段と、を備えている。
【0040】
請求項8に係るゲーム制御方法は、3次元ゲーム空間に配置されたカメラの位置にカメラ座標系を規定し、3次元ゲーム空間を移動する移動体を画像表示部に表示するゲームをコンピュータにより制御可能なゲーム制御方法である。このゲーム制御方法は、カメラの視点の位置を示す視点用の位置データを制御部に認識させる視点位置認識ステップと、カメラの注視点の位置を示す注視点用の位置データを制御部に認識させる注視点位置認識ステップと、視点用の位置データが示すカメラの視点から注視点用の位置データが示すカメラの注視点へと向かう方向に向いたカメラから見える視錐領域を、制御部に認識させる視錐領域認識ステップと、カメラの視点およびカメラの注視点の少なくともいずれか一方の移動を制御するために視錐領域の内部に設けられた視錐内領域を、制御部に認識させる視錐内領域認識ステップと、移動体が視錐内領域の内部に位置するか否かを制御部に判定させる位置判定ステップと、移動体が視錐内領域の外部に位置すると制御部に判定された場合に、移動体が視錐内領域の内部に位置するように、カメラの視点およびカメラの注視点の少なくともいずれか一方を移動する処理を制御部に実行させる第1視点制御ステップと、を備えている。
【発明の効果】
【0041】
本発明では、移動体が視錐内領域の外部に位置すると制御部に判定された場合に、移動体が視錐内領域の内部に位置するように、カメラ視点を移動する処理が制御部により実行される。すなわち、移動体が視錐内領域の外部に位置したときに、移動体が視錐内領域の内部に位置するようにカメラ視点が移動体の動きに追随して移動する。これにより、カメラの視線が移動体に追随したとしても、映像が見にくくならないようにすることができる。また、カメラの視線の動きの設定を容易に実行することができる。
【発明を実施するための最良の形態】
【0042】
〔ゲーム装置の構成と動作〕
図1は、本発明の一実施形態によるゲーム装置の基本構成を示している。ここでは、ビデオゲーム装置の一例として、家庭用ビデオゲーム装置を対象として説明を行うこととする。家庭用ビデオゲーム装置は、家庭用ゲーム機本体および家庭用テレビジョンを備える。家庭用ゲーム機本体には、記録媒体10が装填可能となっており、記録媒体10からゲームデータが適宜読み出されてゲームが実行される。このようにして実行されるゲーム内容が家庭用テレビジョンに表示される。
【0043】
家庭用ビデオゲーム装置のゲームシステムは、制御部1と、記憶部2と、画像表示部3と、音声出力部4と、操作入力部5、通信部23とからなっており、それぞれがバス6を介して接続される。このバス6は、アドレスバス、データバス、およびコントロールバスなどを含んでいる。ここで、制御部1、記憶部2、音声出力部4および操作入力部5は、家庭用ビデオゲーム装置の家庭用ゲーム機本体に含まれており、画像表示部3は家庭用テレビジョンに含まれている。
【0044】
制御部1は、主に、ゲームプログラムに基づいてゲーム全体の進行を制御するために設けられている。制御部1は、たとえば、CPU(Central Processing Unit)7と、信号処理プロセッサ8と、画像処理プロセッサ9とから構成されている。CPU7と信号処理プロセッサ8と画像処理プロセッサ9とは、それぞれがバス6を介して互いに接続されている。CPU7は、ゲームプログラムからの命令を解釈し、各種のデータ処理や制御を行う。たとえば、CPU7は、信号処理プロセッサ8に対して、画像データを画像処理プロセッサに供給するように命令する。信号処理プロセッサ8は、主に、3次元空間上における計算と、3次元空間上から擬似3次元空間上への位置変換計算と、光源計算処理と、3次元空間上又は擬似3次元空間上で実行された計算結果に基づいた画像および音声データの生成加工処理とを行っている。画像処理プロセッサ9は、主に、信号処理プロセッサ8の計算結果および処理結果に基づいて、描画すべき画像データをRAM12に書き込む処理を行っている。また、CPU7は、信号処理プロセッサ8に対して、各種データを処理するように命令する。信号処理プロセッサ8は、主に、3次元空間上における各種データに対応する計算と、3次元空間上から擬似3次元空間上への位置変換計算とを行っている。
【0045】
記憶部2は、主に、プログラムデータや、プログラムデータで使用される各種データなどを格納しておくために設けられている。記憶部2は、たとえば、記録媒体10と、インターフェース回路11と、RAM(Random Access Memory)12とから構成されている。記録媒体10には、インターフェース回路11が接続されている。そして、インターフェース回路11とRAM12とはバス6を介して接続されている。記録媒体10は、オペレーションシステムのプログラムデータや、画像データ、音声データ並びに各種プログラムデータからなるゲームデータなどを記録するためのものである。この記録媒体10は、たとえば、ROM(Read Only Memory)カセット、光ディスク、およびフレキシブルディスクなどであり、オペレーティングシステムのプログラムデータやゲームデータなどが記憶される。なお、記録媒体10にはカード型メモリも含まれており、このカード型メモリは、主に、ゲームを中断するときに中断時点での各種ゲームパラメータを保存するために用いられる。RAM12は、記録媒体10から読み出された各種データを一時的に格納したり、制御部1からの処理結果を一時的に記録したりするために用いられる。このRAM12には、各種データとともに、各種データの記憶位置を示すアドレスデータが格納されており、任意のアドレスを指定して読み書きすることが可能になっている。
【0046】
画像表示部3は、主に、画像処理プロセッサ9によってRAM12に書き込まれた画像データや、記録媒体10から読み出される画像データなどを画像として出力するために設けられている。この画像表示部3は、たとえば、テレビジョンモニタ20と、インターフェース回路21と、D/Aコンバータ(Digital-To-Analogコンバータ)22とから構成されている。テレビジョンモニタ20にはD/Aコンバータ22が接続されており、D/Aコンバータ22にはインターフェース回路21が接続されている。そして、インターフェース回路21にバス6が接続されている。ここでは、画像データが、インターフェース回路21を介してD/Aコンバータ22に供給され、ここでアナログ画像信号に変換される。そして、アナログ画像信号がテレビジョンモニタ20に画像として出力される。
【0047】
ここで、画像データには、たとえば、ポリゴンデータやテクスチャデータなどがある。ポリゴンデータはポリゴンを構成する頂点の座標データのことである。テクスチャデータは、ポリゴンにテクスチャを設定するためのものであり、テクスチャ指示データとテクスチャカラーデータとからなっている。テクスチャ指示データはポリゴンとテクスチャとを対応づけるためのデータであり、テクスチャカラーデータはテクスチャの色を指定するためのデータである。ここで、ポリゴンデータとテクスチャデータとには、各データの記憶位置を示すポリゴンアドレスデータとテクスチャアドレスデータとが対応づけられている。このような画像データでは、信号処理プロセッサ8により、ポリゴンアドレスデータの示す3次元空間上のポリゴンデータ(3次元ポリゴンデータ)が、画面自体(視点)の移動量データおよび回転量データに基づいて座標変換および透視投影変換されて、2次元空間上のポリゴンデータ(2次元ポリゴンデータ)に置換される。そして、複数の2次元ポリゴンデータでポリゴン外形を構成して、ポリゴンの内部領域にテクスチャアドレスデータが示すテクスチャデータを書き込む。このようにして、各ポリゴンにテクスチャが貼り付けられた物体つまり各種キャラクタを表現することができる。
【0048】
音声出力部4は、主に、記録媒体10から読み出される音声データを音声として出力するために設けられている。音声出力部4は、たとえば、スピーカ13と、増幅回路14と、D/Aコンバータ15と、インターフェース回路16とから構成されている。スピーカ13には増幅回路14が接続されており、増幅回路14にはD/Aコンバータ15が接続されており、D/Aコンバータ15にはインターフェース回路16が接続されている。そして、インターフェース回路16にバス6が接続されている。ここでは、音声データが、インターフェース回路16を介してD/Aコンバータ15に供給され、ここでアナログ音声信号に変換される。このアナログ音声信号が増幅回路14によって増幅され、スピーカ13から音声として出力される。音声データには、たとえば、ADPCM(Adaptive Differential Pulse Code Modulation)データやPCM(Pulse Code Modulation)データなどがある。ADPCMデータの場合、上述と同様の処理方法で音声をスピーカ13から出力することができる。PCMデータの場合、RAM12においてPCMデータをADPCMデータに変換しておくことで、上述と同様の処理方法で音声をスピーカ13から出力することができる。
【0049】
操作入力部5は、主に、コントローラ17と、操作情報インターフェース回路18と、インターフェース回路19とから構成されている。コントローラ17には、操作情報インターフェース回路18が接続されており、操作情報インターフェース回路18にはインターフェース回路19が接続されている。そして、インターフェース回路19にバス6が接続されている。
【0050】
コントローラ17は、プレイヤが種々の操作命令を入力するために使用する操作装置であり、プレイヤの操作に応じた操作信号をCPU7に送出する。コントローラ17には、第1ボタン17a、第2ボタン17b、第3ボタン17c、第4ボタン17d、上方向キー17U、下方向キー17D、左方向キー17L、右方向キー17R、L1ボタン17L1、L2ボタン17L2、R1ボタン17R1、R2ボタン17R2、スタートボタン17e、セレクトボタン17f、左スティック17SL及び右スティック17SRが設けられている。
【0051】
上方向キー17U、下方向キー17D、左方向キー17L及び右方向キー17Rは、例えば、キャラクタやカーソルをテレビジョンモニタ20の画面上で上下左右に移動させるコマンドをCPU7に与えるために使用される。
【0052】
スタートボタン17eは、記録媒体10からゲームプログラムをロードするようにCPU7に指示するときなどに使用される。
【0053】
セレクトボタン17fは、記録媒体10からロードされたゲームプログラムに対して、各種選択をCPU7に指示するときなどに使用される。
【0054】
左スティック17SL及び右スティック17SRは、いわゆるジョイスティックとほぼ同一構成のスティック型コントローラである。このスティック型コントローラは、直立したスティックを有している。このスティックは、支点を中心として直立位置から前後左右を含む360°方向に亘って、傾倒可能な構成になっている。左スティック17SL及び右スティック17SRは、スティックの傾倒方向及び傾倒角度に応じて、直立位置を原点とするx座標及びy座標の値を、操作信号として操作情報インターフェース回路18とインターフェース回路19とを介してCPU7に送出する。
【0055】
第1ボタン17a、第2ボタン17b、第3ボタン17c、第4ボタン17d、L1ボタン17L1、L2ボタン17L2、R1ボタン17R1及びR2ボタン17R2には、記録媒体10からロードされるゲームプログラムに応じて種々の機能が割り振られている。
【0056】
なお、左スティック17SL及び右スティック17SRを除くコントローラ17の各ボタン及び各キーは、外部からの押圧力によって中立位置から押圧されるとオンになり、押圧力が解除されると中立位置に復帰してオフになるオンオフスイッチになっている。
【0057】
通信部23は、通信制御回路24および通信インターフェース25を有している。通信制御回路24および通信インターフェース25は、ゲーム機をサーバや他のゲーム機等に接続するために用いられる。通信制御回路20および通信インターフェース21は、バス16を介してCPU11に接続されている。通信制御回路20および通信インターフェース21は、CPU11からの命令に応じて、ゲーム機をインターネットに接続するための接続信号を制御し発信する。また、通信制御回路20および通信インターフェース21は、インターネットを介してゲーム機をサーバや他のゲーム機に接続するための接続信号を制御し発信する。
【0058】
以上のような構成からなる家庭用ビデオゲーム装置の概略動作を、以下に説明する。電源スイッチ(図示省略)がオンにされゲームシステム1に電源が投入されると、CPU7が、記録媒体10に記憶されているオペレーティングシステムに基づいて、記録媒体10から画像データ、音声データ、およびプログラムデータを読み出す。読み出された画像データ、音声データ、およびプログラムデータの一部若しくは全部は、RAM12に格納される。そして、CPU7が、RAM12に格納されたプログラムデータに基づいて、RAM12に格納された画像データや音声データを画像や音声としてテレビジョンモニタ20やスピーカ13に出力するためのコマンドを発行する。
【0059】
画像データの場合、CPU7からのコマンドに基づいて、まず、信号処理プロセッサ8が、3次元空間上におけるキャラクタの位置計算および光源計算などを行う。次に、画像処理プロセッサ9が、信号処理プロセッサ8の計算結果に基づいて、描画すべき画像データのRAM12への書き込み処理などを行う。そして、RAM12に書き込まれた画像データが、インターフェース回路21を介してD/Aコンバータ22に供給される。ここで、画像データがD/Aコンバータ22でアナログ映像信号に変換される。そして、画像データはテレビジョンモニタ20に供給され画像として表示される。
【0060】
音声データの場合、まず、信号処理プロセッサ8が、CPU7からのコマンドに基づいて音声データの生成および加工処理を行う。ここでは、音声データに対して、たとえば、ピッチの変換、ノイズの付加、エンベロープの設定、レベルの設定及びリバーブの付加などの処理が施される。次に、音声データは、信号処理プロセッサ8から出力されて、インターフェース回路16を介してD/Aコンバータ15に供給される。ここで、音声データがアナログ音声信号に変換される。そして、音声データは増幅回路14を介してスピーカ13から音声として出力される。
【0061】
〔ゲーム装置における各種処理概要〕
本ゲーム機において実行されるゲームプログラムは、たとえば野球ゲームプログラムである。この野球ゲームプログラムに基づいて実行される野球ゲームでは、カメラが3次元ゲーム空間に配置されており、このカメラの位置にカメラ座標系(ビュー座標系)が定義されている。また、この野球ゲームでは、このカメラ視点から見たボールが、3次元ゲーム空間を移動する状態がテレビジョンモニタ20に表示されるようになっている。
【0062】
以下では、本発明で主要な役割を果たす機能を説明する。また、図2は、本発明で主要な役割を果たす機能を示した機能ブロック図である。なお、本実施形態では、位置データという文言は、位置座標データという文言に対応する文言として用いられている。
【0063】
視点位置認識手段50は、カメラ視点の位置を示す視点用の位置データを、CPU7に認識させる機能を備えている。視点位置認識手段50では、カメラ視点の位置を示す視点用の位置データが、CPU7に認識される。
【0064】
この手段では、カメラ視点の位置を示す視点用の位置データが、CPU7に認識される。たとえば、カメラ視点の初期位置は、シーンごとに所定の位置に設定される。このカメラ視点の初期位置を示す視点用の位置データは、ゲームプログラムにおいて予め規定されている。この視点用の位置データは、ゲームプログラムのロード時に、記録媒体10からRAM12にロードされ、RAM12に格納されている。また、カメラ視点の移動時には、移動後のカメラ視点の位置を示す視点用の位置データが、CPU7に認識される。
【0065】
注視点位置認識手段51は、カメラの注視点の位置を示す注視点用の位置データを、CPU7に認識させる機能を備えている。注視点位置認識手段51では、カメラの注視点の位置を示す注視点用の位置データが、CPU7に認識される。
【0066】
この手段では、カメラの注視点の位置を示す注視点用の位置データが、CPU7に認識される。たとえば、カメラの注視点の初期位置は、シーンごとに所定の位置に設定される。このカメラの注視点の初期位置を示す注視点用の位置データは、ゲームプログラムにおいて予め規定されている。この注視点用の位置データは、ゲームプログラムのロード時に、記録媒体10からRAM12にロードされ、RAM12に格納されている。
【0067】
視錐領域認識手段52は、視点用の位置データが示すカメラの視点から注視点用の位置データが示すカメラの注視点へと向かう方向に向いたカメラから見える視錐領域を、CPU7に認識させる機能を備えている。視錐領域認識手段52では、視点用の位置データが示すカメラの視点から注視点用の位置データが示すカメラの注視点へと向かう方向に向いたカメラから見える視錐領域が、CPU7に認識される。
【0068】
この手段では、視点用の位置データが示すカメラの視点から注視点用の位置データが示すカメラの注視点へと向かう方向に向いたカメラから見える領域が、3次元ゲーム空間においてテレビジョンモニタ20に表示される領域(視錐領域)として、CPU7に認識される。
【0069】
ここでは、視錐領域は、次のようにゲームプログラムにおいて定義されている。たとえば、カメラの視点からカメラの注視点に向くカメラの視界に入る全ての領域(視界領域Vk)において、テレビジョンモニタ20に表示される領域のカメラ側の面(第1面:ニアクリップ面)およびカメラから離反する側の面(第2面:ファークリップ面)を設定することにより、第1面と第2面との間の視界領域Vkが、視錐領域として設定される(図3を参照)。この視錐領域の8つの隅角部の位置を示す位置データをCPU7に認識させることにより、3次元ゲーム空間における視錐領域の位置および視錐領域の範囲を、CPU7に認識させることができる。
【0070】
なお、上記の視界領域Vkは、カメラ視点の位置、カメラの注視点の位置、およびカメラの画角を定義することにより設定することが可能である。具体的には、視界領域Vkは、カメラ視点の位置を示す視点用の位置データ、カメラの注視点の位置を示す注視点用の位置データ、およびカメラの画角を示す画角データに基づいて定義することができる。ここで用いられるカメラの画角を示す画角データは、ゲームプログラムにおいて予め規定されている。この画角データは、ゲームプログラムのロード時に、記録媒体10からRAM12にロードされ、RAM12に格納されている。
【0071】
視錐内領域認識手段53は、カメラ視点の移動を制御するために視錐領域の内部に設けられた視錐内領域を、CPU7に認識させる機能を備えている。視錐内領域認識手段53では、カメラ視点およびカメラの注視点の少なくともいずれか一方の移動を制御するために視錐領域の内部に設けられた視錐内領域が、CPU7に認識される。
【0072】
この手段では、カメラ視点およびカメラの注視点の少なくともいずれか一方の移動を制御するために視錐領域の内部に設けられた視錐内領域が、CPU7に認識される。
【0073】
ここでは、上記の視錐領域が、カメラ視点がボールの移動に追随しない領域と、カメラ視点がボールの移動に追随する領域とから構成されている。ここでは、視錐内領域が、カメラ視点がボールの移動に追随しない領域に対応している。また、視錐内領域を除く視錐領域(視錐内領域の外部の領域)が、カメラ視点がボールの移動に追随する領域に対応している。すなわち、視錐領域は、視錐内領域と、視錐内領域を除く視錐領域(視錐内領域の外部の領域)とから構成されている。この視錐内領域の8つの隅角部の位置を示す位置データをCPU7に認識させることにより、3次元ゲーム空間における視錐内領域の位置および視錐内領域の範囲を、CPU7に認識させることができる。
【0074】
なお、視錐内領域の8つの隅角部の位置を示す位置データは、視錐領域の重心を原点とする相対座標で定義されている。また、視錐領域の重心すなわち視錐内領域の原点は、視錐内領域の内部に定義されている。ここでは、視錐領域の重心すなわち視錐内領域の原点に対する、視錐内領域の8つの隅角部の位置を示す位置データは、ゲームプログラムにおいて予め規定されている。この位置データは、ゲームプログラムのロード時に、記録媒体10からRAM12にロードされ、RAM12に格納されている。
【0075】
ボール位置認識手段54は、ボールの位置を示すボール用の位置データを、CPU7に認識させる機能を備えている。ボール位置認識手段54では、ボールの位置を示すボール用の位置データが、CPU7に認識される。
【0076】
この手段では、ボールの位置を示すボール用の位置データが、CPU7に認識される。たとえば、3次元ゲーム空間におけるボールの位置を示すボール用の位置データが、CPU7に認識される。
【0077】
距離算出手段55は、視点用の位置データおよびボール用の位置データに基づいて、カメラ視点の位置とボールの位置との間の距離を示す距離データを算出する処理を、CPU7に実行させる機能を備えている。距離算出手段55では、視点用の位置データおよびボール用の位置データに基づいて、カメラ視点の位置とボールの位置との間の距離を示す距離データを算出する処理が、CPU7により実行される。
【0078】
この手段では、視点用の位置データおよびボール用の位置データに基づいて、カメラ視点の位置とボールの位置との間の距離を示す距離データを算出する処理が、CPU7により実行される。ここでは、2点間の距離を算出する方程式に、視点用の位置データおよびボール用の位置データを代入する処理をCPU7に実行させることにより、カメラ視点の位置とボールの位置との間の距離を示す距離データが算出される。
【0079】
第1方向ベクトル算出手段56は、視点用の位置データおよび注視点用の位置データに基づいて、カメラ視点を基点としてカメラ視点とカメラの注視点とを結ぶ第1方向の第1方向ベクトルを算出する処理を、CPU7に実行させる機能を備えている。第1方向ベクトル算出手段56では、視点用の位置データおよび注視点用の位置データに基づいて、カメラ視点を基点としてカメラ視点とカメラの注視点とを結ぶ第1方向の第1方向ベクトルを算出する処理が、CPU7により実行される。
【0080】
この手段では、カメラ視点の位置を示す位置データ(視点用の位置データ)、およびカメラの注視点の位置を示す位置データ(注視点用の位置データ)に基づいて、カメラ視点を基点としてカメラ視点とカメラの注視点とを結ぶ第1方向の第1方向ベクトルを算出する処理が、CPU7により実行される。ここでは、カメラの注視点の位置を示す位置データ(注視点用の位置データ)からカメラ視点の位置を示す位置データ(視点用の位置データ)を減算する処理をCPU7に実行させることにより、第1方向ベクトルは算出される。
【0081】
第2方向ベクトル算出手段57は、視点用の位置データおよびボール用の位置データに基づいて、カメラ視点を基点としてカメラ視点とボールとを結ぶ第2方向の第2方向ベクトルを算出する処理を、CPU7に実行させる機能を備えている。第2方向ベクトル算出手段57では、視点用の位置データおよびボール用の位置データに基づいて、カメラ視点を基点としてカメラ視点とボールとを結ぶ第2方向の第2方向ベクトルを算出する処理が、CPU7により実行される。
【0082】
この手段では、カメラ視点の位置を示す位置データ(視点用の位置データ)、およびボールの位置を示す位置データ(ボール用の位置データ)に基づいて、カメラ視点を基点としてカメラ視点とボールとを結ぶ第2方向の第2方向ベクトルを算出する処理が、CPU7により実行される。ここでは、ボールの位置を示す位置データ(ボール用の位置データ)からカメラ視点の位置を示す位置データ(視点用の位置データ)を減算する処理をCPU7に実行させることにより、第2方向ベクトルが算出される。
【0083】
カメラ速度認識手段58は、距離データに対応する、カメラ視点およびカメラの注視点の少なくともいずれか一方の移動速度を示すカメラ用の速度データを、CPU7に認識させる機能を備えている。カメラ速度認識手段58は、距離データが示す距離に応じてカメラ視点およびカメラの注視点の少なくともいずれか一方の移動速度が小さくなるような、カメラ用の速度データを、CPU7に認識させる機能を備えている。カメラ速度認識手段58は、距離データが示す距離に応じてカメラ視点およびカメラの注視点の少なくともいずれか一方の移動速度が小さくなるような、距離データに対応するカメラ用の加速度データをCPU7に認識させ、カメラ用の加速度データに基づいて算出されたカメラ用の速度データをCPU7に認識させる機能を備えている。
【0084】
カメラ速度認識手段58では、距離データが示す距離に応じてカメラ視点およびカメラの注視点の少なくともいずれか一方の移動速度が小さくなるような、距離データに対応するカメラ用の加速度データが、CPU7に認識される。そして、カメラ用の加速度データに基づいて算出されたカメラ用の速度データが、CPU7に認識される。
【0085】
この手段では、距離データが示す距離に応じてカメラ視点およびカメラの注視点の少なくともいずれか一方の移動速度が小さくなるような、カメラ用の加速度データが、CPU7に認識される。たとえば、カメラ視点の位置とボールの位置との間の距離が大きくなるとカメラ視点およびカメラの注視点の少なくともいずれか一方の移動速度が小さくなるような、カメラ用の加速度データが、CPU7に認識される。そして、たとえば、カメラ用の加速度データを微分する処理をCPU7に実行させることにより、カメラ用の速度データが算出される。そして、このカメラ用の速度データが、CPU7に認識される。
【0086】
位置判定手段59は、ボールが視錐内領域の内部に位置するか否かをCPU7に判定させる機能を備えている。位置判定手段59では、ボールが視錐内領域の内部に位置するか否かが、CPU7により判定される。
【0087】
この手段では、ボールが視錐内領域の内部に位置するか否かが、CPU7により判定される。たとえば、8つの隅角部の位置を示す位置データにより定義される視錐内領域の内部にボールが位置するか否かが、CPU7により判定される。具体的には、8つの隅角部の位置を示す位置データが示す範囲内に、ボールの位置を示す位置データが含まれているか否かの判定が、CPU7により実行される。
【0088】
第1視点制御手段60は、ボールが視錐内領域の外部に位置するとCPU7に判定された場合に、ボールが視錐内領域の内部に位置するように、カメラ視点およびカメラの注視点の少なくともいずれか一方を移動する処理をCPU7に実行させる機能を備えている。第1視点制御手段60は、ボールが視錐内領域の外部に位置するとCPU7に判定された場合に、カメラ用の速度データに基づいて、ボールが視錐内領域の内部に位置するようにカメラ視点およびカメラの注視点の少なくともいずれか一方を移動する処理をCPU7に実行させる機能を備えている。
【0089】
第1視点制御手段60では、ボールが視錐内領域の外部に位置するとCPU7に判定された場合に、カメラ用の速度データに基づいて、ボールが視錐内領域の内部に位置するようにカメラ視点およびカメラの注視点の少なくともいずれか一方を移動する処理が、CPU7により実行される。
【0090】
この手段では、ボールが視錐内領域の外部に位置するとCPU7に判定された場合に、カメラ用の速度データに基づいて、ボールが位置する方向にカメラ視点およびカメラの注視点の少なくともいずれか一方を移動する処理が、CPU7により実行される。たとえば、ボールが視錐内領域の外部に位置するとCPU7に判定された場合に、カメラ用の速度データに基づいて、ボールが位置する方向にカメラ視点およびカメラの注視点の少なくともいずれか一方を移動する処理が、CPU7により実行される。具体的には、ボールが視錐内領域の外部に位置するとCPU7に判定された場合に、カメラ用の速度データに基づいて、カメラ視点およびカメラの注視点の少なくともいずれか一方を移動することによりボールが位置する方向にカメラの視線を移動する処理が、CPU7により実行される。
【0091】
方向判別手段61は、第1方向ベクトルと第2方向ベクトルとに基づいて、第1方向と第2方向とが一致するか否かをCPU7に判別させる機能を備えている。方向判別手段61では、第1方向ベクトルと第2方向ベクトルとに基づいて、第1方向と第2方向とが一致するか否かが、CPU7により判別される。
【0092】
この手段では、カメラ視点を基点としてカメラ視点と基準点とを結ぶ方向を示す第1方向ベクトルと、カメラ視点を基点としてカメラ視点とボールとを結ぶ方向を示す第2方向ベクトルとに基づいて、第1方向と第2方向とが一致するか否かが、CPU7により判別される。たとえば、第1方向ベクトルと第2方向ベクトルとの内積を計算する処理が、CPU7により実行される。そして、この内積が「1」であるか否かが、CPU7により判別される。ここでは、第1方向ベクトルと第2方向ベクトルとは、大きさが「1」になるように正規化された状態で、内積の計算が実行される。
【0093】
第2視点制御手段62は、第1方向と第2方向とが一致したとCPU7により判別された場合に、カメラ視点およびカメラの注視点の少なくともいずれか一方の移動を停止する処理を、CPU7に実行させる機能を備えている。第2視点制御手段62は、ボールが視錐内領域の外部に位置するとCPU7に判定された後に、ボールが視錐内領域の内部に位置するとCPU7に判定された場合、第1方向と第2方向とが一致したとCPU7により判別されたときに、カメラ視点およびカメラの注視点の少なくともいずれか一方の移動を停止する処理を、CPU7に実行させる機能を備えている。
【0094】
第2視点制御手段62では、ボールが視錐内領域の外部に位置するとCPU7に判定された後に、ボールが視錐内領域の内部に位置するとCPU7に判定された場合、第1方向と第2方向とが一致したとCPU7により判別されたときに、カメラ視点およびカメラの注視点の少なくともいずれか一方の移動を停止する処理が、CPU7により実行される。
【0095】
この手段では、ボールが視錐内領域の外部に位置するとCPU7に判定され後に、ボールが視錐内領域の内部に位置するとCPU7に判定された場合は、次のような処理がCPU7より実行される。たとえば、ボールが視錐内領域の外部から内部に戻ってきたときに、第1方向と第2方向とが一致したとCPU7により判別されると、カメラ視点およびカメラの注視点の少なくともいずれか一方の移動を停止する処理が、CPU7により実行される。具体的には、ボールが視錐内領域の外部から内部に戻ってきたときに、第1方向と第2方向とが一致したとCPU7により判別されると、カメラ視点およびカメラの注視点の少なくともいずれか一方の移動を停止する命令、すなわちカメラ視点およびカメラの注視点の少なくともいずれか一方を移動することによりボールが位置する方向にカメラの視線を移動する処理を停止する命令が、CPU7から発行される。これにより、カメラ視点およびカメラの注視点の少なくともいずれか一方をボールが位置する方向に移動する処理が、CPU7により停止される。
〔野球ゲームにおけるボール追随システムの処理フローと説明〕
次に、野球ゲームにおけるボール追随システムについて説明する。また、図9および図10に示すフローについても同時に説明する。なお、図9は野球ゲームの全体概要を説明するためのフローであり、図10はボール追随システムを説明するためのフローである。
【0096】
まず、ゲーム機の電源が投入されゲーム機が起動されると、野球ゲームプログラムが、記録媒体10からRAM12にロードされ格納される。このときには、野球ゲームを実行する上で必要となる各種の基本ゲームデータも、同時に、記録媒体10からRAM12にロードされ格納される(S1)。
【0097】
たとえば、基本ゲームデータには、3次元ゲーム空間用の各種の画像に関するデータが含まれている。そして、この3次元ゲーム空間用の各種の画像に関するデータ、たとえば、スタジアム用の画像データ、選手キャラクタ用の画像データ、および各種のオブジェクトの画像データ等が、CPU7に認識される。また、基本ゲームデータには、3次元ゲーム空間用の各種の画像に関するデータを3次元ゲーム空間に配置するための位置座標データが含まれている。また、基本ゲームデータには、ボール追随システムで用いられるデータも、含まれている。
【0098】
続いて、RAM12に格納された野球ゲームプログラムが、基本ゲームデータに基づいて、CPU7により実行される(S2)。すると、野球ゲームの起動画面がテレビジョンモニタ20に表示される。すると、野球ゲームを実行するための各種の設定画面がテレビジョンモニタ20に表示される。ここでは、たとえば、野球ゲームのプレイモードを選択するためのモード選択画面が、テレビジョンモニタ20に表示される(図示しない)。このモード選択画面において、プレイヤがコントローラ17を操作することにより、プレイモードが決定される(S3)。プレイモードには、たとえば、12球団の中から好きなチームを選択して1試合の対戦を楽しむ対戦モード、12球団の中から好きなチームを選択してペナントレースを戦うペナントモード、およびプレイヤが監督の立場でチームの選手キャラクタを育成する育成モード等が、用意されている。
【0099】
続いて、モード選択画面で選択されたプレイモードにおいて、各種のイベントが、CPU7により実行される(S4)。ここで実行される各種のイベントには、たとえば、AIプログラムに基づいてCPU7により自動制御されるイベントや、コントローラ17からの入力信号に基づいてプレイヤにより手動制御されるイベントのようなイベントがある。また、選手キャラクタの制御には、AIプログラムに基づいて選手キャラクタに命令を自動的に指示する自動制御や、コントローラ17からの入力信号に基づいて選手キャラクタに命令を直接的に指示する手動制御等がある。このように、本野球ゲームでは、コントローラ17からの指示やAIプログラムからの指示に応じて、イベントが制御されたり、選手キャラクタに命令が指示されたりするようになっている。
【0100】
続いて、選択されたプレイモードが終了したか否かが、CPU7により判断される(S5)。具体的には、プレイモードが終了したことを示す命令が発行されたか否かが、CPU7により判断される。そして、プレイモードが終了したことを示す命令が発行されたとCPU7により判断された場合(S5でYes)、ゲーム継続用のデータをRAM12に格納する処理が、CPU7により実行される。そして、ゲーム継続用のデータがRAM12に格納されると、この野球ゲームを終了するか否かを選択する選択画面が、テレビジョンモニタ20に表示される(S6)。そして、この選択画面において、プレイヤがコントローラ17を操作することにより、野球ゲームの終了を示す項目が選択されると(S6でYes)、野球ゲームを終了するための処理がCPU7により実行される(S7)。一方で、この選択画面において、プレイヤがコントローラ17を操作することにより、野球ゲームの継続を示す項目が選択されると(S6でNo)、ステップ3(S3)のモード選択画面が、テレビジョンモニタ20に再表示される。
【0101】
なお、プレイモードが終了するための命令が発行されたとCPU7に判断されない限り(S5でNo)、モード選択画面で選択されたプレイモードにおいて、各種のイベントがCPU7により実行される(S4)。
【0102】
次に、ボール追随システムの詳細を説明する。
【0103】
以下には、ボール追随システムが対戦モードにおいて実行された場合の例が示される。たとえば、モード選択画面において対戦モードが選択され、対戦モードにおいて試合イベントが実行されたときに、ボール追随システムが機能する場合の例が示される。また、Aプレイヤ(自プレイヤ)とBプレイヤ(敵プレイヤ)とが対戦し、Aプレイヤが打者キャラクタ70に対して命令を指示する場合の例が示される。
【0104】
モード選択画面において対戦モードがAプレイヤ又はBプレイヤにより選択されると、対戦モードがCPU7により実行される(S401)。すると、カメラ視点Pcの初期位置を示す視点用の位置データが、CPU7に認識される(S402)。ここでは、たとえば、図3に示すように、3次元ゲーム空間におけるバックネット裏の位置に、カメラ視点Pcが設定されている。このカメラ視点Pcの位置すなわち視点用の位置データは、ゲームプログラムにおいて予め規定されており、この視点用の位置データが、CPU7に認識される。なお、図3に示したカメラ視点Pcは、打者キャラクタが左利きである場合の例が示されている。
【0105】
続いて、カメラの注視点Pfの初期位置を示す注視点用の位置データが、CPU7に認識される(S403)。ここでは、たとえば、図3に示すように、ホームベースと投手キャラクタとを結ぶ直線より右側のセンターのスタンドに、カメラの注視点Pfが設定されている。このカメラの注視点Pfの位置すなわち注視点用の位置データは、ゲームプログラムにおいて予め規定されており、この注視点用の位置データが、CPU7に認識される。
【0106】
続いて、3次元ゲーム空間においてテレビジョンモニタ20に表示される領域が、視点用の位置データが示す位置に配置されたカメラの視点から見える視錐領域Vsとして、CPU7に認識される(S404)。
【0107】
ここでは、視錐領域が、図3および図4に示すように定義されている。たとえば、カメラ視点Pcの視界に入る全ての領域(視界領域)Vkにおいて、テレビジョンモニタ20に表示される領域のカメラ視点側の面(第1面)S1およびカメラ視点から離反する側の面(第2面)S2を設定することにより、第1面S1と第2面S2との間の視界領域Vkが、視錐領域Vsとして設定される。この視錐領域Vsの8つの隅角部v1,v2,v3,v4,v5,v6,v7,v8の位置を示す位置データをCPU7に認識させることにより、3次元ゲーム空間における視錐領域Vsの位置および視錐領域の範囲を、CPU7に認識させることができる。
【0108】
なお、視界領域Vkは、図3に示すように、カメラ視点Pcの位置、カメラの注視点Pfの位置、およびカメラの画角αを定義することにより設定される。具体的には、視界領域Vkは、カメラ視点Pcの位置を示す視点用の位置データ、カメラの注視点Pfの位置を示す注視点用の位置データ、およびカメラの画角αを示す画角データに基づいて定義される。
【0109】
続いて、カメラの注視点Pfの移動を制御するために視錐領域Vsの内部に設けられた視錐内領域Vsnが、CPU7に認識される(S406)。ここでは、視錐領域Vsは、カメラ視点Pcがボールの移動に追随しない視錐内領域Vsnと、カメラ視点Pcがボールの移動に追随する領域(視錐内領域Vsnを除く視錐領域、視錐内領域Vsnの外部の領域)とから構成されている。視錐内領域Vsnは、視錐領域Vsの内部に設けられており、視錐内領域Vsnの8つの隅角部v’1,v’2,v’3,v’4,v’5,v’6,v’7,v’8の位置を示す位置データをCPU7に認識させることにより、3次元ゲーム空間における視錐内領域Vsnの位置および視錐内領域Vsnの範囲が、CPU7に認識される。図4では、図を見やすくするため視錐内領域Vsnの8つの隅角部v’1〜v’8は図示していない。
【0110】
なお、視錐内領域Vsnの8つの隅角部v’1〜v’8の位置を示す位置データは、ゲームプログラムにおいて予め規定されている。視錐内領域Vsnの8つの隅角部の位置を示す位置データは、視錐領域Vsの重心を原点とする相対座標で定義される。
【0111】
このようにして、視錐領域Vsおよび視錐内領域Vsnが設定されると、視錐領域Vsの内部に位置するオブジェクトおよびキャラクタ等が、テレビジョンモニタ20に表示される(S407)。
【0112】
たとえば、図5に示すように、スタジアムの内部、打者キャラクタ70、および投手キャラクタ71が、スタジアム用の画像データおよび各キャラクタ用の画像データを用いて、テレビジョンモニタ20に表示される。また、打者キャラクタ70がスイング動作を行うときの目印に対応するミートゾーン81が、ミートゾーン用の画像データを用いてテレビジョンモニタ20に表示される。この状態において、ミートゾーン81を移動させるための移動命令がAプレイヤのコントローラ17から指示されると、ミートゾーン81がコントローラ17の操作方向にテレビジョンモニタ20において移動する。
【0113】
さらに、ミートゾーン81が移動する面(ヒッティング面)を3次元ゲーム空間の所定の位置に配置する処理が、CPU7により実行される。ヒッティング面は、投手キャラクタ71からリリースされたボールが、打者キャラクタ70のスイング動作により打ち返される面である。また、ヒッティング面上にはストライクゾーン80が設定されており、このストライクゾーン80はテレビジョンモニタ20に表示される。なお、ヒッティング面の位置および範囲と、ストライクゾーン80の位置および範囲とは、ゲームプログラムにおいて予め規定されている。
【0114】
続いて、投手キャラクタ71を動作させるための動作命令が投手キャラクタ71に対して指示されたか否かが、CPU7により判断される(S408)。たとえば、投手キャラクタ71の投球に関する動作命令(投球関連命令)がコントローラ17から投手キャラクタ71に対して指示されたか否かが、CPU7により判断される。そして、投手キャラクタ71に対して投球関連命令がコントローラ17から指示されたとCPU7により判断された場合(S408でYes)、投手キャラクタ71に対する投球関連命令が、CPU7に認識される。
【0115】
ここでは、投球関連命令が、球種を指示するための球種指示命令、投球の開始を指示するための投球開始命令、投球コースを指示するためのコース指示命令、およびボールのリリースを指示するためのリリース命令等から構成されている。
【0116】
続いて、投手キャラクタ71に対する投球関連命令がCPU7に認識されると、投手キャラクタ71が動作する状態が、投手用の画像データを用いてテレビジョンモニタ20に表示される。たとえば、球種指示命令がCPU7に認識された後に、投球開始命令がCPU7に認識されると、投手キャラクタ71が投球動作を開始し投手キャラクタ71が投球動作を行う状態が、テレビジョンモニタ20に表示される。そして、コース指示命令がCPU7に認識された後に、リリース命令がCPU7に認識されると、投手キャラクタ71がボールをリリースし投手キャラクタ71がフォロースルーする状態が、テレビジョンモニタ20に表示される。
【0117】
続いて、投手キャラクタ71からボールが投球されると、投手キャラクタ71から投球されたボールが、ボール用の画像データを用いてテレビジョンモニタ20に表示される(S409)。また、投手キャラクタ71からボールが投球されると、投球されたボールがヒッティング面を通過する位置を予想してAプレイヤに報知するためのマーク(ボールの予想通過位置)が、ボール形状の画像データをテレビジョンモニタ20に表示される(図示しない)。
【0118】
また、投手キャラクタ71からボールBが投球されると、ボールBの位置を示すボール用の位置データが、CPU7に認識される。たとえば、3次元ゲーム空間におけるボールBの位置を示すボール用の位置データが、CPU7に認識される。
【0119】
すると、図6に示すように、視点用の位置データおよびボール用の位置データに基づいて、カメラ視点Pcの位置とボールBの位置との間の距離Lを示す距離データを算出する処理が、CPU7により実行される(S410)。ここでは、2点間の距離を算出する方程式に、視点用の位置データおよびボール用の位置データを代入する処理をCPU7に実行させることにより、カメラ視点Pcの位置とボールBの位置との間の距離Lを示す距離データが算出される。
【0120】
続いて、図6に示すように、カメラ視点Pcの位置を示す位置データ(視点用の位置データ)、およびカメラの注視点Pfの位置を示す位置データ(注視点用の位置データ)に基づいて、カメラ視点Pcを基点としてカメラ視点Pcと注視点Pfとを結ぶ視線方向ベクトル(第1方向ベクトル)H1を算出する処理が、CPU7により実行される(S411)。ここでは、カメラの注視点Pfの位置を示す位置データ(注視点用の位置データ)からカメラ視点Pcの位置を示す位置データ(視点用の位置データ)を減算する処理をCPU7に実行させることにより、視線方向ベクトルH1は算出される。ここで、視線方向ベクトルH1は正規化される。
【0121】
続いて、カメラ視点Pcの位置を示す位置データ(視点用の位置データ)、およびボールBの位置を示す位置データ(ボール用の位置データ)に基づいて、カメラ視点Pcを基点としてカメラ視点PcとボールBとを結ぶボール用の方向ベクトル(第2方向ベクトル)H2を算出する処理が、CPU7により実行される(S412)。ここでは、ボールBの位置を示す位置データ(ボール用の位置データ)からカメラ視点Pcの位置を示す位置データ(視点用の位置データ)を減算する処理をCPU7に実行させることにより、ボール用の方向ベクトルH2が算出される。ここで、ボール用の方向ベクトルH2は正規化される。
【0122】
続いて、カメラ視点Pcの位置とボールBの位置との間の距離Lに応じてカメラ視点Pcの移動速度が小さくなるような、カメラ視点用の加速度データAcが、CPU7に認識される(S413)。たとえば、カメラ視点Pcの位置とボールBの位置との間の距離Lが大きくなるとカメラ視点Pcの移動速度が小さくなるような、カメラ視点用の加速度データAcが、CPU7に認識される。
【0123】
ここでは、距離Lとカメラ視点用の加速度データAcとは、図7に示すような関数f(Ac=f(L))で互いに関連づけられている。この対応関係は、ゲームプログラムにおいて予め規定されている。なお、図7におけるLoは、カメラ視点Pcから第1面S1までの距離である(図6を参照)。また、図7におけるL1は、カメラ視点Pcから投手キャラクタまでの距離である。さらに、図7におけるLnは、カメラ視点Pcから最も近い外野スタンドのフェンスまでの距離である。
【0124】
続いて、カメラ視点用の加速度データAcに基づいてカメラ用の速度データBcが算出される(S414)。そして、このカメラ用の速度データBcが、CPU7に認識される。具体的には、カメラ視点用の速度データをBcとし、カメラ視点用の基準速度データをBkとし、時間間隔をdt(=1/60(sec))とすると、カメラ視点用の加速度データAcは、「Ac=(Bc−Bk)/dt」と記載することができる。これにより、カメラ視点用の速度データBcが、「Bc=Bk+Ac・dt」式に基づいて、CPU7により算出される。なお、カメラ視点用の基準速度データBkは、ゲームプログラムにおいて予め規定されており、RAM12に格納されている。
【0125】
ここでは、カメラ視点用の加速度データAcおよびカメラ用の速度データBcは、注視点Pfに定義されている。すなわち、後述するように、注視点Pfをカメラ用の速度データBcが示す速度で移動させることにより、カメラの視点Pcを中心としてカメラの視線の向きが変化する。すなわち、カメラの視点Pcを中心として、視錐領域Vsおよび視錐内領域Vsnが3次元ゲーム空間において移動する。
【0126】
なお、ここでは、上記のようにカメラ視点用の加速度データAcに基づいてカメラ用の速度データBcが算出される場合の例を示したが、カメラ視点Pcの位置とボールBの位置との間の距離Lを示す距離データと、カメラ用の速度データBcとの対応関係を、ゲームプログラムにおいて予め規定しておくことにより、カメラ視点Pcの位置とボールBの位置との間の距離Lが大きくなるとカメラ視点Pcの速度が小さくなるようなカメラ用の速度データBcを、直接的に設定するようにしても良い。
【0127】
続いて、打者キャラクタ70をスイング動作させるための動作命令(打撃関連命令)がCPU7に認識されたか否かが、CPU7により判断される(S415)。
【0128】
ここでは、打撃関連命令が、ミートゾーン81を移動するためのミートゾーン移動命令、およびスイングの開始を指示するスイング開始命令等から構成されている。ここでは、打席で構えの姿勢をとる打者キャラクタ70がテレビジョンモニタ20に表示されているときに、スイング開始命令がCPU7に認識されたか否かが、CPU7により判断される。たとえば、ミートゾーン移動命令が指示された場合、ミートゾーン移動命令に基づいてミートゾーン81が移動した後に、スイング開始命令がCPU7に認識されたか否かが、CPU7により判断される。また、ミートゾーン移動命令が指示されていない場合、ミートゾーン81が静止した状態で、スイング開始命令がCPU7に認識されたか否かが、CPU7により判断される。
【0129】
そして、スイング開始命令がCPU7に認識された場合(S415でYes)、投手キャラクタからリリースされたボールBが打ち返されたか否かが、CPU7により判断される(S416)。たとえば、投手キャラクタからリリースされたボールBの少なくとも一部の領域とミートゾーンの少なくとも一部の領域とが一致したか否かが、CPU7により判断される。そして、投手キャラクタからリリースされたボールBの少なくとも一部の領域とミートゾーンの少なくとも一部の領域とが一致した場合(S416でYes)、投手キャラクタからリリースされたボールBがバットにより打ち返され、打ち返されたボールBが移動する状態が、ボール用の画像データを用いてテレビジョンモニタ20に表示される(S417)。
【0130】
続いて、投手キャラクタからリリースされたボールBが打者キャラクタにより打ち返されると、ボールBが視錐内領域Vsnの内部に位置するか否かが、CPU7により判定される(S418)。たとえば、8つの隅角部の位置を示す位置データにより定義される視錐内領域Vsnの内部にボールBが位置するか否かが、CPU7により判定される。具体的には、視錐内領域Vsnの8つの隅角部の位置を示す位置データが示す範囲内に、ボールBの位置を示す位置データが含まれているか否かの判定が、CPU7により実行される。
【0131】
なお、ここでは、投手キャラクタからリリースされたボールBが打者キャラクタにより打ち返されなかった場合(S418でNo)、ボールBが視錐内領域Vsnの内部に位置するように設定されている。
【0132】
そして、ボールBが視錐内領域Vsnの外部に位置するとCPU7に判定された場合(S418でNo)、カメラ用の速度データBcに基づいて、ボールBが位置する方向にカメラの注視点Pfを移動する処理が、CPU7により実行される(S419)。たとえば、ボールBが視錐内領域Vsnを除く視錐領域Vsの内部に位置するとCPU7に判定された場合に、カメラ用の速度データBcに基づいて、ボールBが位置する方向にカメラの注視点Pfを移動する処理が、CPU7により実行される。具体的には、視錐内領域Vsnの8つの隅角部の位置を示す位置データが示す範囲外に、ボールBの位置を示す位置データが含まれているとCPU7により判定された場合、ボールBが位置する方向にカメラの注視点Pfをカメラ用の速度データBcが示す速度で移動する処理が、CPU7により実行される。
【0133】
これにより、カメラの視点Pcを中心としてカメラの注視点PfがボールBの位置する方向に回転し、このカメラの注視点Pfの回転に連動して、視錐領域Vsおよび視錐内領域Vsnが移動する。すると、視点用の位置データが示す位置に配置されたカメラの視点から見える映像が、図8に示すように、テレビジョンモニタ20に表示される。ここでは、カメラ視点PcがボールBの移動に追随するような映像(図8(a)→図8(b))が、テレビジョンモニタ20に表示される。図8では、図を見やすくするために、キャラクタは表示せず、ボールBのみが表示されている。
【0134】
一方で、ボールBが視錐内領域Vsnの内部に位置するとCPU7に判定された場合(S418でYes)、カメラの注視点Pfを移動する処理はCPU7により実行されず、カメラの注視点Pfは固定された状態で維持される(S420)。
【0135】
なお、カメラ視点Pcを基点としてボールが位置する方向にカメラの注視点Pfを移動する処理がCPU7により実行されている間は、視錐内領域Vsnの8つの隅角部の位置を示す位置データが示す範囲内に、ボールの位置を示す位置データが含まれているか否かの判定が、CPU7により常に実行されている(S421)。たとえば、この間は、視錐内領域Vsnの8つの隅角部の位置を示す位置データが示す範囲内に、ボールの位置を示す位置データが含まれているか否かの判定が、所定の時間(1/60(sec))毎にCPU7により実行されている。
【0136】
続いて、ボールが視錐内領域Vsnの外部に位置するとCPU7に判定され後に(S418でNo)、ボールが視錐内領域Vsnの内部に位置するとCPU7に判定された場合(S421でYes)、カメラ視点Pcを基点としてカメラ視点Pcとカメラの注視点Pfとを結ぶ方向を示す視線方向ベクトルH1と、カメラ視点Pcを基点としてカメラ視点Pcとボールとを結ぶ方向を示すボール用の方向ベクトルH2とに基づいて、第1方向と第2方向とが一致するか否かが、CPU7により判別される(S422)。たとえば、視線方向ベクトルH1とボール用の方向ベクトルH2との内積を計算する処理が、CPU7により実行される。そして、この内積が「1」であるか否かが、CPU7により判別される。
【0137】
そして、視線方向ベクトルH1とボール用の方向ベクトルH2との内積が「1」であるとCPU7により判別された場合(H1・H2=1、S422でYes)、カメラの注視点Pfの移動を停止する処理が、CPU7により実行される(S423)。たとえば、ボールが視錐内領域Vsnの外部から内部に戻ってきたときに、カメラの視線方向にボールが位置するとCPU7により判別されると、カメラの注視点Pfの移動を停止する命令が、CPU7から発行される。これにより、カメラ視点Pcを基点としてボールが位置する方向にカメラの注視点Pfを移動する処理が、CPU7により停止される。
【0138】
一方で、視線方向ベクトルH1とボール用の方向ベクトルH2との内積が「1」でない場合(H1・H2≠1、S422でNo)、視線方向ベクトルH1とボール用の方向ベクトルH2との内積が「1」になるまで、カメラの注視点Pfの移動は継続される。
【0139】
なお、一般的に、CPU7において計算が実行されると、機械的な誤差が必ず発生する。この誤差は、上記のような内積計算においても同様に発生する。このため、実際の計算では、許容誤差を「dg(<1)」とすると、視線方向ベクトルH1とボール用の方向ベクトルH2との内積Nが、「1−dg≦N≦1+dg」であるか否かが、CPU7により判別されている。このため、たとえば「ステップ422でNo」の場合、内積Nが、「1−dg≦N≦1+dg」を満たすまで、カメラの注視点Pfの移動は継続される。
【0140】
続いて、打者キャラクタ70、投手キャラクタ71、および野手キャラクタ72に対する動作に関する命令の受け付けが終了したか否かが、CPU7により判断される(S424)。たとえば、一人の打者キャラクタに対するプレイ(1プレイ)が終了したか否かを示すフラグが立ったか否かが、CPU7により判断される。ここでは、一人の打者キャラクタに対するプレイ(1プレイ)が終了したときに、1プレイが終了したことを示すフラグの値に「1」を割り当てる処理が、CPU7により実行される。
【0141】
このため、1プレイが終了したか否かを示すフラグの値が「1」であるか否かがCPU7により判断され(S424)、1プレイが終了したか否かを示すフラグの値が「1」であるとCPU7により判断された場合(S424でYes)、打者キャラクタ70、投手キャラクタ71、および野手キャラクタ72に対する動作に関する命令の受け付けが、CPU7により終了される(S425)。一方で、1プレイが終了したか否かを示すフラグの値が「0」であるとCPU7により判断された場合(S424でNo)、ステップ403(S403)以降の処理が、CPU7により再実行される。
【0142】
続いて、対戦モードが終了したか否かが、CPU7により判断される(S426)。たとえば、対戦モードが終了したか否かを示すフラグが立ったか否かが、CPU7により判断される。具体的には、対戦モードが終了したか否かを示すフラグの値が「1」であるか否かが、CPU7により判断される。
【0143】
そして、対戦モードが終了したか否かを示すフラグの値が「1」であるとCPU7に判断された場合(S426でYes)、データをRAM12に格納する処理が、CPU7により実行される(S427)。一方で、対戦モードが終了したか否かを示すフラグの値が「0」であるとCPU7に判断された場合(S426でNo)、ステップ402(S402)以降の処理が、CPU7により再実行される。
【0144】
上記のように、本実施形態では、ボールBが視錐内領域Vsnの外部に位置するとCPU7に判定された場合に、ボールBが視錐内領域Vsnの内部に位置するように、カメラの注視点Pfを移動する処理が、CPU7により実行される。すなわち、ボールBが視錐内領域Vsnの外部に位置したときに、ボールBが視錐内領域Vsnの内部に位置するようにカメラの注視点PfがボールBの動きに追随して移動する。
【0145】
これにより、たとえば、打者キャラクタにより打ち返されたボールBがスタンドや外野で飛び跳ねても、ボールBが視錐内領域Vsnの内部に位置すれば、カメラの視線がボールBの動きに連動して逐一移動しなくなり、映像が見やすくなる。また、ボールBが視錐内領域Vsnの内部に位置するようにカメラの注視点PfをボールBの動きに追随して移動させることにより、ゲーム提供者が対戦状況ごとにカメラの視線の動きを任意に設定しなくても、カメラの視線の動きを自動的に設定することができる。
【0146】
また、本実施形態では、ボールBが視錐内領域Vsnの外部に位置するとCPU7に判定された場合に、カメラ視点Pcの位置とボールBの位置との間の距離Lを示す距離データに対応するカメラ用の速度データBcに基づいて、ボールBが視錐内領域Vsnの内部に位置するようにカメラの注視点Pfを移動する処理が、CPU7により実行される。
【0147】
これにより、ボールBが視錐内領域の外部に位置したときに、カメラ視点とボールとの距離が近いときにはカメラの注視点Pfを速く移動し、カメラ視点とボールとの距離が遠いときにはカメラの注視点Pfを遅く移動することができる。このように、カメラの注視点の移動速度を変化させることにより、ボールの動きを違和感なく画像表示部に表示することができる。
【0148】
〔他の実施形態〕
(a)前記実施形態では、ゲームプログラムを適用しうるコンピュータの一例としての家庭用ビデオゲーム装置を用いた場合の例を示したが、ゲーム装置は、前記実施形態に限定されず、モニタが別体に構成されたゲーム装置、モニタが一体に構成されたゲーム装置、ゲームプログラムを実行することによってゲーム装置として機能するパーソナルコンピュータやワークステーションなどにも同様に適用することができる。また、ゲーム装置は、前記実施形態に限定されず、携帯型コンピュータ、携帯型ゲーム装置などにも同様に適用することができる。
【0149】
(b)本発明には、前述したようなゲームを実行するプログラムおよびこのプログラムを記録したコンピュータ読み取り可能な記録媒体も含まれる。この記録媒体としては、カートリッジ以外に、たとえば、コンピュータ読み取り可能なフレキシブルディスク、半導体メモリ、CD−ROM、DVD、MO、ROMカセット、その他のものが挙げられる。
【0150】
(c)前記実施形態では、カメラの注視点Pfのみが移動する場合の例を示したが、
カメラの視点Pcのみが移動する場合、およびカメラの視点Pcおよびカメラの注視点Pfが移動する場合にも、本発明は適用することができる。この場合も、上記と同様の効果を得ることができる。
【図面の簡単な説明】
【0151】
【図1】本発明の一実施形態によるゲーム装置の基本構成図。
【図2】前記ゲーム装置の機能ブロック図。
【図3】カメラ視点、視錐領域、および視錐内領域等の設定形態を示す図。
【図4】カメラ視点、視錐領域、および視錐内領域等の設定形態の詳細を示す図。
【図5】投球前にテレビジョンモニタに表示される図。
【図6】ボールと注視点との関係を説明するための図。
【図7】カメラ視点の位置とボールの位置との間の距離データとカメラ視点用の加速度データとの関係を示す図。
【図8】カメラ視点がボールBの移動に追随したときの映像を示す図。
【図9】野球ゲームの全体概要を示すフロー。
【図10A】野球ゲームにおけるボール追随システムを示すフロー。
【図10B】野球ゲームにおけるボール追随システムを示すフロー。
【図10C】野球ゲームにおけるボール追随システムを示すフロー。
【符号の説明】
【0152】
1 制御部
2 記憶部
3 画像表示部
4 音声出力部
5 操作入力部
7 CPU
12 RAM
17 コントローラ
20 テレビジョンモニタ
23 通信部
50 視点位置認識手段
51 注視点位置認識手段
52 視錐領域認識手段
53 視錐内領域認識手段
54 ボール位置認識手段
55 距離算出手段
56 第1方向ベクトル算出手段
57 第2方向ベクトル算出手段
58 カメラ速度認識手段
59 位置判定手段
60 第1視点制御手段
61 方向判別手段
62 第2視点制御手段
B ボール
Pc カメラ視点
Pf カメラの注視点
Vs 視錐領域
Vsn 視錐内領域
Ac カメラ用の加速度データ
Bc カメラ用の速度データ

【特許請求の範囲】
【請求項1】
3次元ゲーム空間に配置されたカメラの位置にカメラ座標系を規定し、前記3次元ゲーム空間を移動する移動体を画像表示部に表示するゲームを実行可能なコンピュータに、
前記カメラの視点の位置を示す視点用の位置データを、制御部に認識させる視点位置認識機能と、
前記カメラの注視点の位置を示す注視点用の位置データを、制御部に認識させる注視点位置認識機能と、
前記視点用の位置データが示す前記カメラの視点から前記注視点用の位置データが示す前記カメラの注視点へと向かう方向に向いた前記カメラから見える視錐領域を、制御部に認識させる視錐領域認識機能と、
前記カメラの視点および前記カメラの注視点の少なくともいずれか一方の移動を制御するために前記視錐領域の内部に設けられた視錐内領域を、制御部に認識させる視錐内領域認識機能と、
前記移動体が前記視錐内領域の内部に位置するか否かを制御部に判定させる位置判定機能と、
前記移動体が前記視錐内領域の外部に位置すると制御部に判定された場合に、前記移動体が前記視錐内領域の内部に位置するように、前記カメラの視点および前記カメラの注視点の少なくともいずれか一方を移動する処理を制御部に実行させる第1視点制御機能と、
を実現させるためのゲームプログラム。
【請求項2】
前記コンピュータに、
前記移動体の位置を示す移動体用の位置データを、制御部に認識させる移動体位置認識機能と、
前記視点用の位置データおよび前記移動体用の位置データに基づいて、前記カメラの視点の位置と前記移動体の位置との間の距離を示す距離データを算出する処理を、制御部に実行させる距離算出機能と、
前記距離データに対応する、前記カメラの視点および前記カメラの注視点の少なくともいずれか一方の移動速度を示すカメラ用の速度データを、制御部に認識させるカメラ速度認識機能と、
をさらに実現させ、
前記第1視点制御機能では、前記移動体が前記視錐内領域の外部に位置すると制御部に判定された場合に、前記カメラ用の速度データに基づいて、前記移動体が前記視錐内領域の内部に位置するように前記カメラの視点および前記カメラの注視点の少なくともいずれか一方を移動する処理が、制御部により実行される、
請求項1に記載のゲームプログラム。
【請求項3】
前記カメラ速度認識機能では、前記距離データが示す距離に応じて前記カメラの視点および前記カメラの注視点の少なくともいずれか一方の移動速度が小さくなるような、前記カメラ用の速度データが、制御部に認識される、
請求項2に記載のゲームプログラム。
【請求項4】
前記カメラ速度認識機能では、前記距離データが示す距離に応じて前記カメラの視点および前記カメラの注視点の少なくともいずれか一方の移動速度が小さくなるような、前記距離データに対応する前記カメラ用の加速度データが制御部に認識され、前記カメラ用の加速度データに基づいて算出された前記カメラ用の速度データが制御部に認識される、
請求項3に記載のゲームプログラム。
【請求項5】
前記コンピュータに、
前記移動体の位置を示す移動体用の位置データを、制御部に認識させる移動体位置認識機能と、
前記視点用の位置データおよび前記注視点用の位置データに基づいて、前記カメラの視点を基点として前記カメラの視点と前記カメラの注視点とを結ぶ第1方向の第1方向ベクトルを算出する処理を、制御部に実行させる第1方向ベクトル算出機能と、
前記視点用の位置データおよび前記移動体用の位置データに基づいて、前記カメラの視点を基点として前記カメラの視点と前記移動体とを結ぶ第2方向の第2方向ベクトルを算出する処理を、制御部に実行させる第2方向ベクトル算出機能と、
前記第1方向ベクトルと前記第2方向ベクトルとに基づいて、前記第1方向と前記第2方向とが一致するか否かを制御部に判別させる方向判別機能と、
前記第1方向と前記第2方向とが一致したと制御部により判別された場合に、前記カメラの視点および前記カメラの注視点の少なくともいずれか一方の移動を停止する処理を、制御部に実行させる第2視点制御機能と、
請求項1から4のいずれかに記載のゲームプログラム。
【請求項6】
前記第1視点制御機能では、前記移動体が前記視錐内領域の外部に位置すると制御部に判定された場合に、前記移動体が前記視錐内領域の内部に位置するように前記カメラの視点を移動する処理が、制御部により実行され、
前記第2視点制御機能では、前記移動体が前記視錐内領域の外部に位置すると制御部に判定された後に、前記移動体が前記視錐内領域の内部に位置すると制御部に判定された場合、前記第1方向と前記第2方向とが一致したと制御部により判別されたときに、前記カメラの視点および前記カメラの注視点の少なくともいずれか一方の移動を停止する処理が、制御部により実行される、
請求項5に記載のゲームプログラム。
【請求項7】
3次元ゲーム空間に配置されたカメラの位置にカメラ座標系を規定し、前記3次元ゲーム空間を移動する移動体を画像表示部に表示するゲームを実行可能なゲーム装置であって、
前記カメラの視点の位置を示す視点用の位置データを、制御部に認識させる視点位置認識手段と、
前記カメラの注視点の位置を示す注視点用の位置データを、制御部に認識させる注視点位置認識手段と、
前記視点用の位置データが示す前記カメラの視点から前記注視点用の位置データが示す前記カメラの注視点へと向かう方向に向いた前記カメラから見える視錐領域を、制御部に認識させる視錐領域認識手段と、
前記カメラの視点および前記カメラの注視点の少なくともいずれか一方の移動を制御するために前記視錐領域の内部に設けられた視錐内領域を、制御部に認識させる視錐内領域認識手段と、
前記移動体が前記視錐内領域の内部に位置するか否かを制御部に判定させる位置判定手段と、
前記移動体が前記視錐内領域の外部に位置すると制御部に判定された場合に、前記移動体が前記視錐内領域の内部に位置するように、前記カメラの視点および前記カメラの注視点の少なくともいずれか一方を移動する処理を制御部に実行させる第1視点制御手段と、
を備えるゲーム装置。
【請求項8】
3次元ゲーム空間に配置されたカメラの位置にカメラ座標系を規定し、前記3次元ゲーム空間を移動する移動体を画像表示部に表示するゲームをコンピュータにより制御可能なゲーム制御方法であって、
前記カメラの視点の位置を示す視点用の位置データを、制御部に認識させる視点位置認識ステップと、
前記カメラの注視点の位置を示す注視点用の位置データを、制御部に認識させる注視点位置認識ステップと、
前記視点用の位置データが示す前記カメラの視点から前記注視点用の位置データが示す前記カメラの注視点へと向かう方向に向いた前記カメラから見える視錐領域を、制御部に認識させる視錐領域認識ステップと、
前記カメラの視点および前記カメラの注視点の少なくともいずれか一方の移動を制御するために前記視錐領域の内部に設けられた視錐内領域を、制御部に認識させる視錐内領域認識ステップと、
前記移動体が前記視錐内領域の内部に位置するか否かを制御部に判定させる位置判定ステップと、
前記移動体が前記視錐内領域の外部に位置すると制御部に判定された場合に、前記移動体が前記視錐内領域の内部に位置するように、前記カメラの視点および前記カメラの注視点の少なくともいずれか一方を移動する処理を制御部に実行させる第1視点制御ステップと、
を備えるゲーム制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10A】
image rotate

【図10B】
image rotate

【図10C】
image rotate


【公開番号】特開2009−82188(P2009−82188A)
【公開日】平成21年4月23日(2009.4.23)
【国際特許分類】
【出願番号】特願2007−252052(P2007−252052)
【出願日】平成19年9月27日(2007.9.27)
【出願人】(506113602)株式会社コナミデジタルエンタテインメント (1,441)
【Fターム(参考)】