(57)【特許請求の範囲】
【請求項１】
入力手段から入力されたプレイヤからの指示に従ってキャラクタを仮想３次元空間内で移動させるキャラクタ移動手段と、
前記キャラクタ移動手段によって移動された前記キャラクタの仮想３次元空間内における位置と仮想カメラの視点の位置との間の距離を算出する距離算出手段と、
前記距離算出手段が算出した距離が予め定められた臨界遠距離よりも長いかどうかを判定する遠距離判定手段と、前記臨界遠距離よりも短く、予め定められた臨界近距離より前記距離算出手段が算出した距離が短いかどうかを判定する近距離判定手段とを含む距離判定手段と、
前記距離判定手段の判定結果に応じて、前記視点の位置の移動を制御する視点移動手段と、
前記仮想３次元空間内を移動する前記キャラクタを、前記仮想カメラの視点から仮想スクリーン上に透視変換する透視変換手段とを備え、
前記視点移動手段は、
前記遠距離判定手段により前記距離算出手段が算出した距離が臨界遠距離よりも長いと判定された場合に、前記視点の位置を前記キャラクタに近づくように移動する近距離化移動手段と、
前記近距離判定手段により前記距離算出手段が算出した距離が臨界近距離よりも短いと判定された場合に、前記視点の位置を前記キャラクタから遠ざかるように移動する遠距離化移動手段と、
前記距離算出手段が算出した距離が前記臨界遠距離と前記臨界近距離の間の範囲内にあると判定された場合に、前記視点の位置を移動させない非移動手段とを含む
ことを特徴とするビデオゲーム装置。
【請求項２】
前記キャラクタ移動手段により前記キャラクタが所定期間において所定範囲を超えて移動したかどうかを判定するキャラクタ移動判定手段をさらに備え、
前記視点移動手段は、前記キャラクタ移動判定手段が所定範囲を超える移動がないと判定した場合に、前記キャラクタの位置との間の距離が前記臨界近距離よりも長く前記臨界遠距離よりも短い所定の距離となるように、前記視点の位置を移動する中間距離移動手段をさらに含む
ことを特徴とする請求項１に記載のビデオゲーム装置。
【請求項３】
前記視点移動手段は、前記視点の位置を移動する際に、前記キャラクタ移動手段による前記キャラクタの移動速度以上の速度で前記視点の位置を移動する
ことを特徴とする請求項１または２に記載のビデオゲーム装置。
【請求項４】
前記視点移動手段は、前記視点の位置を移動する際に、前記キャラクタ移動手段による前記キャラクタの移動速度に従って、前記視点の位置の移動速度を変更する
ことを特徴とする請求項１乃至３のいずれか１項に記載のビデオゲーム装置。
【請求項５】
前記視点移動手段は、前記視点の位置を移動する際に、前記仮想カメラの視界の広さを一定に保ちつつ、前記視点の位置を移動する
ことを特徴とする請求項１乃至４のいずれか１項に記載のビデオゲーム装置。
【請求項６】
入力手段から入力されたプレイヤからの指示に従ってキャラクタを仮想３次元空間内で移動させるキャラクタ移動手段と、
前記キャラクタ移動手段によって移動された前記キャラクタの仮想３次元空間内における位置と仮想カメラの視点の位置との間の距離を算出する距離算出手段と、
前記距離算出手段が算出した距離が予め定められた臨界遠距離よりも長いかどうかを判定する遠距離判定手段と、前記臨界遠距離よりも短く、予め定められた臨界近距離より前記距離算出手段が算出した距離が短いかどうかを判定する近距離判定手段とを含む距離判定手段と、
前記距離判定手段の判定結果に応じて、前記仮想カメラの視界の広さを制御する視界制御手段と、
前記仮想３次元空間内を移動する前記キャラクタを、前記仮想カメラの視点から仮想スクリーン上に透視変換する透視変換手段とを備え、
前記視界制御手段は、
前記遠距離判定手段により前記距離算出手段が算出した距離が臨界遠距離よりも長いと判定された場合に、前記仮想カメラの視界の広さを狭くなるように変更する狭小化変更手段と、
前記近距離判定手段により前記距離算出手段が算出した距離が臨界近距離よりも短いと判定された場合に、前記仮想カメラの視界の広さを広くなるように変更する広大化変更手段と、
前記距離算出手段が算出した距離が前記臨界遠距離と前記臨界近距離の間の範囲内にあると判定された場合に、前記仮想カメラの視界の広さを変更しない非変更手段とを含む
ことを特徴とするビデオゲーム装置。
【請求項７】
前記視界制御手段は、前記視界の広さを変更する際に、前記距離算出手段が算出した距離と前記キャラクタの大きさとの関係に基づいて、前記視界の広さを変更する
ことを特徴とする請求項６に記載のビデオゲーム装置。
【請求項８】
前記キャラクタには、任意個の参照点が設定されており、
前記距離算出手段は、前記視点の位置と各参照点の位置との間の距離をそれぞれ求め、その平均を前記キャラクタの位置と前記視点の位置との間の距離として算出する
ことを特徴とする請求項１乃至７のいずれか１項に記載のビデオゲーム装置。
【請求項９】
前記キャラクタには、任意個の参照点が設定されており、
前記距離算出手段は、前記視点の位置と各参照点の位置との間の距離をそれぞれ求め、そのうちで最も短いものを前記キャラクタの位置と前記視点の位置との間の距離として算出する
ことを特徴とする請求項１乃至７のいずれか１項に記載のビデオゲーム装置。
【請求項１０】
コンピュータ装置において実行される３次元ビデオゲームにおいて、
入力手段から入力されたプレイヤからの指示に従ってキャラクタを仮想３次元空間内で移動させ、前記コンピュータ装置の備える記憶手段に記憶されている該キャラクタの仮想３次元空間における位置を移動後の位置に更新して該記憶手段に記憶させ、
前記記憶手段に記憶されている前記キャラクタの仮想３次元空間内における位置と前記記憶手段に記憶されている仮想カメラの視点の位置との間の距離を算出し、
前記算出した距離と、予め定められた臨界遠距離及び臨界近距離との長短の関係を判定し、
前記算出した距離が前記臨界遠距離よりも長いと判定した場合に、前記視点の位置を前記キャラクタに近づくように移動し、前記記憶手段に記憶されている仮想カメラの視点の位置を移動後の位置に更新して該記憶手段に記憶させ、
前記算出した距離が前記臨界近距離よりも短いと判定した場合に、前記視点の位置を前記キャラクタから遠ざかるように移動し、前記記憶手段に記憶されている仮想カメラの視点の位置を移動後の位置に更新して該記憶手段に記憶させ、
前記算出した距離が前記臨界遠距離と前記臨界近距離の間の範囲内にあると判定した場合に、前記記憶手段に記憶されている仮想カメラの視点の位置を更新せずにそのままの位置で該記憶手段に記憶させておき、
前記記憶手段に仮想３次元空間における位置の記憶された前記キャラクタを、前記記憶手段に位置の記憶された前記仮想カメラの視点から仮想スクリーン上に透視変換し、該透視変換により生成された画像を前記コンピュータ装置の備える表示手段に表示させる
ことを特徴とするビデオゲームにおけるキャラクタの表示方法。
【請求項１１】
コンピュータ装置において実行される３次元ビデオゲームにおいて、
入力手段から入力されたプレイヤからの指示に従ってキャラクタを仮想３次元空間内で移動させ、前記コンピュータ装置の備える記憶手段に記憶されている該キャラクタの仮想３次元空間における位置を移動後の位置に更新して該記憶手段に記憶させ、
前記記憶手段に記憶されている前記キャラクタの仮想３次元空間内における位置と前記記憶手段に記憶されている仮想カメラの視点の位置との間の距離を算出し、
前記算出した距離と、予め定められた臨界遠距離及び臨界近距離との長短の関係を判定し、
前記算出した距離が前記臨界遠距離よりも長いと判定した場合に、前記記憶手段に記憶されている仮想カメラの視界の広さを狭くなるように更新して該記憶手段に記憶させ、
前記算出した距離が前記臨界近距離よりも短いと判定した場合に、前記記憶手段に記憶されている仮想カメラの視界の広さを広くなるように更新して該記憶手段に記憶させ、
前記算出した距離が前記臨界遠距離と前記臨界近距離の間の範囲内にあると判定した場合に、前記記憶手段に記憶されている仮想カメラの視界の広さを更新せずにそのままの位置で該記憶手段に記憶させておき、
前記仮想３次元空間内を移動する前記キャラクタを、前記記憶手段に記憶された視界の広さで前記仮想カメラの視点から仮想スクリーン上に透視変換し、該透視変換により生成された画像を前記コンピュータ装置の備える表示手段に表示させる
ことを特徴とするビデオゲームにおけるキャラクタの表示方法。
【請求項１２】
入力手段から入力されたプレイヤからの指示に従ってキャラクタを仮想３次元空間内で移動させるキャラクタ移動手段、
前記キャラクタ移動手段によって移動された前記キャラクタの仮想３次元空間内における位置と仮想カメラの視点の位置との間の距離を算出する距離算出手段、
前記距離算出手段が算出した距離が予め定められた臨界遠距離よりも長いかどうかを判定する遠距離判定手段、及び前記臨界遠距離よりも短く、予め定められた臨界近距離より前記距離算出手段が算出した距離が短いかどうかを判定する近距離判定手段とを含む距離判定手段、
前記距離判定手段の判定結果に応じて、前記視点の位置の移動を制御する視点移動手段、並びに、
前記仮想３次元空間内を移動する前記キャラクタを、前記仮想カメラの視点から仮想スクリーン上に透視変換する透視変換手段としてコンピュータ装置を機能させるためのプログラムであって、
前記視点移動手段は、
前記遠距離判定手段により前記距離算出手段が算出した距離が臨界遠距離よりも長いと判定された場合に、前記視点の位置を前記キャラクタに近づくように移動する近距離化移動手段、
前記近距離判定手段により前記距離算出手段が算出した距離が臨界近距離よりも短いと判定された場合に、前記視点の位置を前記キャラクタから遠ざかるように移動する遠距離化移動手段、及び、
前記距離算出手段が算出した距離が前記臨界遠距離と前記臨界近距離の間の範囲内にあると判定された場合に、前記視点の位置を移動させない非移動手段として前記コンピュータ装置を機能させる
ことを特徴とするプログラム。
【請求項１３】
入力手段から入力されたプレイヤからの指示に従ってキャラクタを仮想３次元空間内で移動させるキャラクタ移動手段、
前記キャラクタ移動手段によって移動された前記キャラクタの仮想３次元空間内における位置と仮想カメラの視点の位置との間の距離を算出する距離算出手段、
前記距離算出手段が算出した距離が予め定められた臨界遠距離よりも長いかどうかを判定する遠距離判定手段、及び前記臨界遠距離よりも短く、予め定められた臨界近距離より前記距離算出手段が算出した距離が短いかどうかを判定する近距離判定手段とを含む距離判定手段、
前記距離判定手段の判定結果に応じて、前記仮想カメラの視界の広さを制御する視界制御手段、並びに、
前記仮想３次元空間内を移動する前記キャラクタを、前記仮想カメラの視点から仮想スクリーン上に透視変換する透視変換手段としてコンピュータ装置を機能させるためのプログラムであって、
前記視界制御手段は、
前記遠距離判定手段により前記距離算出手段が算出した距離が臨界遠距離よりも長いと判定された場合に、前記仮想カメラの視界の広さを狭くなるように変更する狭小化変更手段、
前記近距離判定手段により前記距離算出手段が算出した距離が臨界近距離よりも短いと判定された場合に、前記仮想カメラの視界の広さを広くなるように変更する広大化変更手段、及び、
前記距離算出手段が算出した距離が前記臨界遠距離と前記臨界近距離の間の範囲内にあると判定された場合に、前記仮想カメラの視界の広さを変更しない非変更手段として前記コンピュータ装置を機能させる
ことを特徴とするプログラム。
【請求項１４】
入力手段から入力されたプレイヤからの指示に従ってキャラクタを仮想３次元空間内で移動させるキャラクタ移動手段、
前記キャラクタ移動手段によって移動された前記キャラクタの仮想３次元空間内における位置と仮想カメラの視点の位置との間の距離を算出する距離算出手段、
前記距離算出手段が算出した距離が予め定められた臨界遠距離よりも長いかどうかを判定する遠距離判定手段、及び前記臨界遠距離よりも短く、予め定められた臨界近距離より前記距離算出手段が算出した距離が短いかどうかを判定する近距離判定手段とを含む距離判定手段、
前記距離判定手段の判定結果に応じて、前記視点の位置の移動を制御する視点移動手段、並びに、
前記仮想３次元空間内を移動する前記キャラクタを、前記仮想カメラの視点から仮想スクリーン上に透視変換する透視変換手段としてコンピュータ装置を機能させるためのプログラムであって、
前記視点移動手段は、
前記遠距離判定手段により前記距離算出手段が算出した距離が臨界遠距離よりも長いと判定された場合に、前記視点の位置を前記キャラクタに近づくように移動する近距離化移動手段、
前記近距離判定手段により前記距離算出手段が算出した距離が臨界近距離よりも短いと判定された場合に、前記視点の位置を前記キャラクタから遠ざかるように移動する遠距離化移動手段、及び、
前記距離算出手段が算出した距離が前記臨界遠距離と前記臨界近距離の間の範囲内にあると判定された場合に、前記視点の位置を移動させない非移動手段として前記コンピュータ装置を機能させる
プログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項１５】
入力手段から入力されたプレイヤからの指示に従ってキャラクタを仮想３次元空間内で移動させるキャラクタ移動手段、
前記キャラクタ移動手段によって移動された前記キャラクタの仮想３次元空間内における位置と仮想カメラの視点の位置との間の距離を算出する距離算出手段、
前記距離算出手段が算出した距離が予め定められた臨界遠距離よりも長いかどうかを判定する遠距離判定手段、及び前記臨界遠距離よりも短く、予め定められた臨界近距離より前記距離算出手段が算出した距離が短いかどうかを判定する近距離判定手段とを含む距離判定手段、
前記距離判定手段の判定結果に応じて、前記仮想カメラの視界の広さを制御する視界制御手段、並びに、
前記仮想３次元空間内を移動する前記キャラクタを、前記仮想カメラの視点から仮想スクリーン上に透視変換する透視変換手段としてコンピュータ装置を機能させるためのプログラムであって、
前記視界制御手段は、
前記遠距離判定手段により前記距離算出手段が算出した距離が臨界遠距離よりも長いと判定された場合に、前記仮想カメラの視界の広さを狭くなるように変更する狭小化変更手段、
前記近距離判定手段により前記距離算出手段が算出した距離が臨界近距離よりも短いと判定された場合に、前記仮想カメラの視界の広さを広くなるように変更する広大化変更手段、及び、
前記距離算出手段が算出した距離が前記臨界遠距離と前記臨界近距離の間の範囲内にあると判定された場合に、前記仮想カメラの視界の広さを変更しない非変更手段として前記コンピュータ装置を機能させる
プログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、３次元ビデオゲームにおいて仮想３次元空間内を移動するキャラクタを表示する手法に関するものである。
【０００２】
【従来の技術】
３次元ビデオゲームは、プレイヤからの指示によって動作するプレイヤキャラクタを仮想３次元空間内を移動させ、当該プレイヤキャラクタを含む仮想３次元空間を所定の位置（仮想カメラの視点）から仮想スクリーン上に透視変換して、プレイヤキャラクタが移動する様子を示す画像を表示装置に表示させている。
【０００３】
プレイヤキャラクタの動きは、ゲームの進行にとって最も重要な要素である。従って、プレイヤキャラクタをプレイヤに分かり易く表示するためには、プレイヤキャラクタの移動に追随して視点の位置を移動する必要がある。プレイヤキャラクタの移動に追随して視点の位置を移動するビデオゲームとして、プレイヤキャラクタの位置との間に一定の間隔を保って視点の位置を移動させるものが従来からあった。
【０００４】
【発明が解決しようとする課題】
しかしながら、プレイヤキャラクタの位置と視点の位置との間の距離が常に一定に保たれていれば、表示装置に映し出される画像におけるプレイヤキャラクタの大きさは全く変化しないこととなる。例えば、仮想３次元空間内に砂漠のように変化に乏しいフィールドが形成されている場合においては、当該部分でプレイヤキャラクタが移動しても、表示画面上の変化がほとんど見られない。このため、プレイヤは、プレイヤキャラクタが移動していることを表示画面からはっきりと認識できないものとなってしまう。また、各フレームにおいて必ず視点の位置を決定しなければならないので、処理量が大きくなってしまうという問題がある。
【０００５】
これに対して、視点の位置を完全に固定して透視変換を行うビデオゲームもある。この場合には、プレイヤキャラクタが移動すれば、表示画面上の大きさの変化として表れる。格闘ゲームのようにプレイヤキャラクタが移動可能な空間が狭ければこれでもあまり問題は生じない。しかしながら、ロールプレイングゲームのように非常に広い空間を移動可能としたものでは、プレイヤキャラクタの位置が視点に近づきすぎて表示画面上にフィールドを映し出すことができなかったり、プレイヤキャラクタの位置が視点から遠すぎて、プレイヤキャラクタが表示画面上でほとんど見えなくなってしまう場合もある。
【０００６】
ところで、特開平１１−４９６３号公報及び特開平１１−７５４３号公報では、仮想空間内に第１、第２の表示物がある場合に、第１の表示物と第２の表示物との位置関係に基づいて仮想カメラの視点を移動させたり、画角を変化させたりする技術が開示されている。
【０００７】
しかしながら、これらの公報に記載のように２つの表示物が存在するものでなくても、ゲームが進行しているビデオゲームは多数ある。例えば、ロールプレイングゲームなどにおいて仮想３次元空間内に形成されたフィールド上をプレイヤキャラクタが移動するようなビデオゲームである。このようなビデオゲームにおいては、上記した２つの公報に記載の技術を全く適用することができない。
【０００８】
本発明は、３次元ビデオゲームにおいて仮想３次元空間内で移動するキャラクタの動きをプレイヤに効果的に認識させることができるビデオゲーム装置、ビデオゲームにおけるキャラクタの表示方法、ビデオゲームを実行するためのプログラム及びこのプログラムを記録したコンピュータ読み取り可能な記録媒体を提供することを目的とする。
【０００９】
【課題を解決するための手段】
上記目的を達成するため、本発明の第１の観点にかかるビデオゲーム装置は、入力手段から入力されたプレイヤからの指示に従ってキャラクタを仮想３次元空間内で移動させるキャラクタ移動手段と、前記キャラクタ移動手段によって移動された前記キャラクタの仮想３次元空間内における位置と仮想カメラの視点の位置との間の距離を算出する距離算出手段と、前記距離算出手段が算出した距離が予め定められた臨界遠距離よりも長いかどうかを判定する遠距離判定手段と、前記臨界遠距離よりも短く、予め定められた臨界近距離より前記距離算出手段が算出した距離が短いかどうかを判定する近距離判定手段とを含む距離判定手段と、前記距離判定手段の判定結果に応じて、前記視点の位置の移動を制御する視点移動手段と、前記仮想３次元空間内を移動する前記キャラクタを、前記仮想カメラの視点から仮想スクリーン上に透視変換する透視変換手段とを備え、前記視点移動手段は、前記遠距離判定手段により前記距離算出手段が算出した距離が臨界遠距離よりも長いと判定された場合に、前記視点の位置を前記キャラクタに近づくように移動する近距離化移動手段と、前記近距離判定手段により前記距離算出手段が算出した距離が臨界近距離よりも短いと判定された場合に、前記視点の位置を前記キャラクタから遠ざかるように移動する遠距離化移動手段と、前記距離算出手段が算出した距離が前記臨界遠距離と前記臨界近距離の間の範囲内にあると判定された場合に、前記視点の位置を移動させない非移動手段とを含むことを特徴とする。
【００１１】
ここで、上記第１の観点にかかるビデオゲーム装置は、前記キャラクタ移動手段により前記キャラクタが所定期間において所定範囲を超えて移動したかどうかを判定するキャラクタ移動判定手段をさらに備えていてもよい。この場合において、前記視点移動手段は、前記キャラクタ移動判定手段が所定範囲を超える移動がないと判定した場合に、前記キャラクタの位置との間の距離が前記臨界近距離よりも長く前記臨界遠距離よりも短い所定の距離となるように、前記視点の位置を移動する中間距離移動手段をさらに含むものとすることができる。
【００１３】
上記第１の観点にかかるビデオゲーム装置では、キャラクタの位置と視点の位置との間の距離が臨界遠距離以下および臨界近距離以上であれば、仮想カメラの視点を移動させずに透視変換を行っている。キャラクタ移動手段によってキャラクタの位置が移動されることで、キャラクタ−視点間の距離が変化するので、透視変換されて画面上に表示されるキャラクタの大きさが変化することとなる。このキャラクタの大きさの変化によって、プレイヤは、キャラクタが仮想３次元空間内を移動することを容易に認識することができる。
【００１４】
また、キャラクタの位置と視点の位置との間の距離が臨界遠距離より遠い、または臨界近距離よりも近い場合には、キャラクタの移動に伴って視点の位置を移動させている。これにより、画面上に表示されるキャラクタの大きさを適切なものとすることができる。さらに、キャラクタの位置と視点の位置との間の距離が臨界遠距離以下および臨界近距離以上である場合には、視点を移動する必要がないため、処理量を少なく抑えることができる。
【００１５】
さらに、視点の移動を行った後の所定の期間においてキャラクタが所定範囲を超えて移動しないときには、プレイヤが表示画面上でキャラクタの移動を認識できる必要もない。この場合において、キャラクタとの間の距離が中間距離となる位置に視点を移動させるものとすれば、キャラクタをさらに適切な大きさで画面上に表示することが可能となる。なお、中間距離とは、臨界遠距離と臨界近距離のちょうど真ん中の距離であっても、臨界遠距離または臨界近距離のいずれかに近いものであってもよい。
【００１６】
上記第１の観点にかかる各ビデオゲーム装置において、前記視点移動手段は、前記視点の位置を移動する際に、前記キャラクタ移動手段による前記キャラクタの移動速度以上の速度で前記視点の位置を移動するものとすることができる。また、前記視点移動手段は、前記視点の位置を移動する際に、前記キャラクタ移動手段による前記キャラクタの移動速度に従って、前記視点の位置の移動速度を変更するものとすることができる。
【００１７】
視点の移動速度をキャラクタの移動速度以上とすることで、透視変換する際のキャラクタ−視点間の距離を所定の範囲内のものとすることができ、画面上に表示されるキャラクタの大きさをさらに適切なものとすることができる。キャラクタの移動速度に従って視点の移動速度を変更することで、例えば、キャラクタの背景の画像が必要以上に切り替わってしまうことを防ぐことができる。
【００１８】
上記第１の観点にかかる各ビデオゲーム装置において、前記視点移動手段は、前記視点の位置を移動する際に、前記仮想カメラの視界の広さを一定に保ちつつ、前記視点の位置を移動するものであってもよい。
【００１９】
このようにキャラクタ−視点間の距離に関わらず、仮想カメラの視界の広さは一定に保たれることにより、透視変換を行う際の仮想カメラの視界について決定する必要がなくなり、処理量を少なく抑えることができる。
【００２０】
上記目的を達成するため、本発明の第２の観点にかかるビデオゲーム装置は、入力手段から入力されたプレイヤからの指示に従ってキャラクタを仮想３次元空間内で移動させるキャラクタ移動手段と、前記キャラクタ移動手段によって移動された前記キャラクタの仮想３次元空間内における位置と仮想カメラの視点の位置との間の距離を算出する距離算出手段と、前記距離算出手段が算出した距離が予め定められた臨界遠距離よりも長いかどうかを判定する遠距離判定手段と、前記臨界遠距離よりも短く、予め定められた臨界近距離より前記距離算出手段が算出した距離が短いかどうかを判定する近距離判定手段とを含む距離判定手段と、前記距離判定手段の判定結果に応じて、前記仮想カメラの視界の広さを制御する視界制御手段と、前記仮想３次元空間内を移動する前記キャラクタを、前記仮想カメラの視点から仮想スクリーン上に透視変換する透視変換手段とを備え、前記視界制御手段は、前記遠距離判定手段により前記距離算出手段が算出した距離が臨界遠距離よりも長いと判定された場合に、前記仮想カメラの視界の広さを狭くなるように変更する狭小化変更手段と、前記近距離判定手段により前記距離算出手段が算出した距離が臨界近距離よりも短いと判定された場合に、前記仮想カメラの視界の広さを広くなるように変更する広大化変更手段と、前記距離算出手段が算出した距離が前記臨界遠距離と前記臨界近距離の間の範囲内にあると判定された場合に、前記仮想カメラの視界の広さを変更しない非変更手段とを含むことを特徴とする。
【００２３】
上記第２の観点にかかるビデオゲーム装置では、キャラクタの位置と視点の位置との間の距離が臨界遠距離以下および臨界近距離以上であれば、仮想カメラの視界を変更せずに透視変換を行っている。キャラクタ移動手段によってキャラクタの位置が移動されることで、透視変換されて画面上に表示されるキャラクタの大きさが変化することとなる。このキャラクタの大きさの変化によって、プレイヤは、キャラクタが仮想３次元空間内を移動することを容易に認識することができる。
【００２４】
また、キャラクタの位置と視点の位置との間の距離が臨界遠距離より遠い、または臨界近距離よりも近い場合には、キャラクタの移動に伴って視界の広さを変化させている。これにより、画面上に表示されるキャラクタの大きさを適切なものとすることができる。さらに、キャラクタの位置と視点の位置との間の距離が臨界遠距離以下および臨界近距離以上である場合には、視界の広さを変更する必要がないため、処理量を少なく抑えることができる。
【００２５】
上記第２の観点にかかる各ビデオゲーム装置において、前記視界制御手段は、前記視界の広さを変更する際に、前記距離算出手段が算出した距離と前記キャラクタの大きさとの関係に基づいて、前記視界の広さを変更するものとすることが好ましい。
【００２６】
上記第１、第２の観点にかかる各ビデオゲーム装置において、前記キャラクタには、任意個の参照点が設定されているものであってもよい。ここで、前記距離算出手段は、前記視点の位置と各参照点の位置との間の距離をそれぞれ求め、その平均を前記キャラクタの位置と前記視点の位置との間の距離として算出するものとすることができる。また、前記距離算出手段は、前記視点の位置と各参照点の位置との間の距離をそれぞれ求め、そのうちで最も短いものを前記キャラクタの位置と前記視点の位置との間の距離として算出するものとすることもできる。
【００２７】
キャラクタに参照点を設定し、この参照点との距離に従ってキャラクタと視点との間の距離を算出することで、キャラクタ−視点間の距離を求めるのに複雑な処理が必要なくなり、処理量を少なくすることができる。複数の参照点を設け、各参照点と視点との間の距離の平均値や最短値をキャラクタ−視点間の距離として適用することで、特に形状や大きさの変化が激しいキャラクタについて視点からの距離を適切に求めることができるようになる。
【００２９】
プレイヤキャラクタは、ゲームの進行上不可欠であり、プレイヤにとって最も認識されやすいものでなくてはならない。このプレイヤキャラクタの移動に伴って視点の位置を移動させたり、視界の広さを変更させたりすることで、ゲームを円滑に進行させることができるようになる。
【００３０】
上記目的を達成するため、本発明の第３の観点にかかるビデオゲームにおけるキャラクタの表示方法は、コンピュータ装置において実行される３次元ビデオゲームにおいて、入力手段から入力されたプレイヤからの指示に従ってキャラクタを仮想３次元空間内で移動させ、前記コンピュータ装置の備える記憶手段に記憶されている該キャラクタの仮想３次元空間における位置を移動後の位置に更新して該記憶手段に記憶させ、前記記憶手段に記憶されている前記キャラクタの仮想３次元空間内における位置と前記記憶手段に記憶されている仮想カメラの視点の位置との間の距離を算出し、前記算出した距離と、予め定められた臨界遠距離及び臨界近距離との長短の関係を判定し、前記算出した距離が前記臨界遠距離よりも長いと判定した場合に、前記視点の位置を前記キャラクタから遠ざかるように移動し、前記記憶手段に記憶されている仮想カメラの視点の位置を移動後の位置に更新して該記憶手段に記憶させ、前記算出した距離が前記臨界近距離よりも短いと判定した場合に、前記視点の位置を前記キャラクタに近づくように移動し、前記記憶手段に記憶されている仮想カメラの視点の位置を移動後の位置に更新して該記憶手段に記憶させ、前記算出した距離が前記臨界遠距離と前記臨界近距離の間の範囲内にあると判定した場合に、前記記憶手段に記憶されている仮想カメラの視点の位置を更新せずにそのままの位置で該記憶手段に記憶させておき、前記記憶手段に仮想３次元空間における位置の記憶された前記キャラクタを、前記記憶手段に位置の記憶された前記仮想カメラの視点から仮想スクリーン上に透視変換し、該透視変換により生成された画像を前記コンピュータ装置の備える表示手段に表示させることを特徴とする。
【００３４】
上記目的を達成するため、本発明の第４の観点にかかるビデオゲームにおけるキャラクタの表示方法は、コンピュータ装置において実行される３次元ビデオゲームにおいて、入力手段から入力されたプレイヤからの指示に従ってキャラクタを仮想３次元空間内で移動させ、前記コンピュータ装置の備える記憶手段に記憶されている該キャラクタの仮想３次元空間における位置を移動後の位置に更新して該記憶手段に記憶させ、前記記憶手段に記憶されている前記キャラクタの仮想３次元空間内における位置と前記記憶手段に記憶されている仮想カメラの視点の位置との間の距離を算出し、前記算出した距離と、予め定められた臨界遠距離及び臨界近距離との長短の関係を判定し、前記算出した距離が前記臨界遠距離よりも長いと判定した場合に、前記記憶手段に記憶されている仮想カメラの視界の広さを狭くなるように更新して該記憶手段に記憶させ、前記算出した距離が前記臨界近距離よりも短いと判定した場合に、前記記憶手段に記憶されている仮想カメラの視界の広さを広くなるように更新して該記憶手段に記憶させ、前記算出した距離が前記臨界遠距離と前記臨界近距離の間の範囲内にあると判定した場合に、前記記憶手段に記憶されている仮想カメラの視界の広さを更新せずにそのままの位置で該記憶手段に記憶させておき、前記仮想３次元空間内を移動する前記キャラクタを、前記記憶手段に記憶された視界の広さで前記仮想カメラの視点から仮想スクリーン上に透視変換し、該透視変換により生成された画像を前記コンピュータ装置の備える表示手段に表示させることを特徴とする。
【００３６】
上記目的を達成するため、本発明の第５の観点にかかるプログラムは、入力手段から入力されたプレイヤからの指示に従ってキャラクタを仮想３次元空間内で移動させるキャラクタ移動手段、前記キャラクタ移動手段によって移動された前記キャラクタの仮想３次元空間内における位置と仮想カメラの視点の位置との間の距離を算出する距離算出手段、前記距離算出手段が算出した距離が予め定められた臨界遠距離よりも長いかどうかを判定する遠距離判定手段、及び前記臨界遠距離よりも短く、予め定められた臨界近距離より前記距離算出手段が算出した距離が短いかどうかを判定する近距離判定手段とを含む距離判定手段、前記距離判定手段の判定結果に応じて、前記視点の位置の移動を制御する視点移動手段、並びに、前記仮想３次元空間内を移動する前記キャラクタを、前記仮想カメラの視点から仮想スクリーン上に透視変換する透視変換手段としてコンピュータ装置を機能させるためのプログラムであって、前記視点移動手段は、前記遠距離判定手段により前記距離算出手段が算出した距離が臨界遠距離よりも長いと判定された場合に、前記視点の位置を前記キャラクタに近づくように移動する近距離化移動手段、前記近距離判定手段により前記距離算出手段が算出した距離が臨界近距離よりも短いと判定された場合に、前記視点の位置を前記キャラクタから遠ざかるように移動する遠距離化移動手段、及び、前記距離算出手段が算出した距離が前記臨界遠距離と前記臨界近距離の間の範囲内にあると判定された場合に、前記視点の位置を移動させない非移動手段として前記コンピュータ装置を機能させることを特徴とする。
【００３８】
上記目的を達成するため、本発明の第６の観点にかかるプログラムは、入力手段から入力されたプレイヤからの指示に従ってキャラクタを仮想３次元空間内で移動させるキャラクタ移動手段、前記キャラクタ移動手段によって移動された前記キャラクタの仮想３次元空間内における位置と仮想カメラの視点の位置との間の距離を算出する距離算出手段、前記距離算出手段が算出した距離が予め定められた臨界遠距離よりも長いかどうかを判定する遠距離判定手段、及び前記臨界遠距離よりも短く、予め定められた臨界近距離より前記距離算出手段が算出した距離が短いかどうかを判定する近距離判定手段とを含む距離判定手段、前記距離判定手段の判定結果に応じて、前記仮想カメラの視界の広さを制御する視界制御手段、並びに、前記仮想３次元空間内を移動する前記キャラクタを、前記仮想カメラの視点から仮想スクリーン上に透視変換する透視変換手段としてコンピュータ装置を機能させるためのプログラムであって、前記視界制御手段は、前記遠距離判定手段により前記距離算出手段が算出した距離が臨界遠距離よりも長いと判定された場合に、前記仮想カメラの視界の広さを狭くなるように変更する狭小化変更手段、前記近距離判定手段により前記距離算出手段が算出した距離が臨界近距離よりも短いと判定された場合に、前記仮想カメラの視界の広さを広くなるように変更する広大化変更手段、及び、前記距離算出手段が算出した距離が前記臨界遠距離と前記臨界近距離の間の範囲内にあると判定された場合に、前記仮想カメラの視界の広さを変更しない非変更手段として前記コンピュータ装置を機能させることを特徴とする。
【００４０】
上記目的を達成するため、本発明の第７の観点にかかるコンピュータ読み取り可能な記録媒体は、入力手段から入力されたプレイヤからの指示に従ってキャラクタを仮想３次元空間内で移動させるキャラクタ移動手段、前記キャラクタ移動手段によって移動された前記キャラクタの仮想３次元空間内における位置と仮想カメラの視点の位置との間の距離を算出する距離算出手段、前記距離算出手段が算出した距離が予め定められた臨界遠距離よりも長いかどうかを判定する遠距離判定手段、及び前記臨界遠距離よりも短く、予め定められた臨界近距離より前記距離算出手段が算出した距離が短いかどうかを判定する近距離判定手段とを含む距離判定手段、前記距離判定手段の判定結果に応じて、前記視点の位置の移動を制御する視点移動手段、並びに、前記仮想３次元空間内を移動する前記キャラクタを、前記仮想カメラの視点から仮想スクリーン上に透視変換する透視変換手段としてコンピュータ装置を機能させるためのプログラムであって、前記視点移動手段は、前記遠距離判定手段により前記距離算出手段が算出した距離が臨界遠距離よりも長いと判定された場合に、前記視点の位置を前記キャラクタに近づくように移動する近距離化移動手段、前記近距離判定手段により前記距離算出手段が算出した距離が臨界近距離よりも短いと判定された場合に、前記視点の位置を前記キャラクタから遠ざかるように移動する遠距離化移動手段、及び、前記距離算出手段が算出した距離が前記臨界遠距離と前記臨界近距離の間の範囲内にあると判定された場合に、前記視点の位置を移動させない非移動手段として前記コンピュータ装置を機能させるプログラムを記録したことを特徴とする。
【００４２】
上記目的を達成するため、本発明の第８の観点にかかるコンピュータ読み取り可能な記録媒体は、入力手段から入力されたプレイヤからの指示に従ってキャラクタを仮想３次元空間内で移動させるキャラクタ移動手段、前記キャラクタ移動手段によって移動された前記キャラクタの仮想３次元空間内における位置と仮想カメラの視点の位置との間の距離を算出する距離算出手段、前記距離算出手段が算出した距離が予め定められた臨界遠距離よりも長いかどうかを判定する遠距離判定手段、及び前記臨界遠距離よりも短く、予め定められた臨界近距離より前記距離算出手段が算出した距離が短いかどうかを判定する近距離判定手段とを含む距離判定手段、前記距離判定手段の判定結果に応じて、前記仮想カメラの視界の広さを制御する視界制御手段、並びに、前記仮想３次元空間内を移動する前記キャラクタを、前記仮想カメラの視点から仮想スクリーン上に透視変換する透視変換手段としてコンピュータ装置を機能させるためのプログラムであって、前記視界制御手段は、前記遠距離判定手段により前記距離算出手段が算出した距離が臨界遠距離よりも長いと判定された場合に、前記仮想カメラの視界の広さを狭くなるように変更する狭小化変更手段、前記近距離判定手段により前記距離算出手段が算出した距離が臨界近距離よりも短いと判定された場合に、前記仮想カメラの視界の広さを広くなるように変更する広大化変更手段、及び、前記距離算出手段が算出した距離が前記臨界遠距離と前記臨界近距離の間の範囲内にあると判定された場合に、前記仮想カメラの視界の広さを変更しない非変更手段として前記コンピュータ装置を機能させるプログラムを記録したことを特徴とする。
【００４４】
なお、上記第３、第４の観点にかかるキャラクタの表示方法、及び第５、第６の観点にかかるプログラム、第７、第８の観点にかかる記録媒体にいうコンピュータ装置とは、汎用のパーソナルコンピュータなどとすることも、ビデオゲームの実行専用のビデオゲーム装置とすることもできる。上記第１、第２の観点にかかるビデオゲーム装置は、ビデオゲームの専用機の他に、パーソナルコンピュータなどの汎用コンピュータであってプログラムにより上記各手段を構築したものを適用することができる。さらには、携帯電話機のようにコンピュータ装置として動作することが可能な他の電子機器を適用することもできる。また、据え置き型であるか携帯型であるかを問わないものとする。また、第５、第６の観点にかかるプログラムは、コンピュータ読み取り可能な記録媒体に記録して提供することも、ネットワークを通じて配信することもできる。
【００４５】
【発明の実施の形態】
以下、添付図面を参照して、本発明の実施の形態について説明する。
【００４６】
本発明の実施の形態に適用されるビデオゲームをコンピュータ・プログラムにより実施する場合において、当該コンピュータ・プログラムを実行するコンピュータ１０００の一例を図１に示す。コンピュータ１０００は、ビデオゲーム専用機であるコンピュータ本体１０１を中心として構築される。このコンピュータ本体１０１は、その内部バス１１９に接続された制御部１０３、ＲＡＭ（Random Access Memory）１０５、ハードディスク・ドライブ（ＨＤＤ）１０７、サウンド処理部１０９、グラフィック処理部１１１、ＤＶＤ／ＣＤ−ＲＯＭドライブ１１３、通信インターフェイス１１５、及びインターフェイス部１１７を含む。
【００４７】
このコンピュータ本体１０１のサウンド処理部１０９は、スピーカーであるサウンド出力装置１２５に、グラフィック処理部１１１は、表示画面１２２を有する表示装置１２１に接続されている。また、ＤＶＤ／ＣＤ−ＲＯＭドライブ１１３には、記録媒体（ＤＶＤ−ＲＯＭまたはＣＤ−ＲＯＭ）１３１を装着し得る。通信インターフェイス１１５は、ネットワーク１５１に接続される。インターフェイス部１１７には、入力部（コントローラ）１６１とメモリカード１６２とが接続されている。
【００４８】
制御部１０３は、ＣＰＵ（Central Processing Unit）やＲＯＭ（Read Only Memory）などを含み、ＨＤＤ１０７や記録媒体１３１上に格納されたプログラムを実行し、コンピュータ１０００の制御を行う。ＲＡＭ１０５は、制御部１０３のワークエリアである。ＨＤＤ１０７は、プログラムやデータを保存するための記憶領域である。サウンド処理部１０９は、制御部１０３により実行されているプログラムがサウンド出力を行うよう指示している場合に、その指示を解釈して、サウンド出力装置１２５にサウンド信号を出力する。
【００４９】
グラフィック処理部１１１は、制御部１０３から出力される描画命令に従って、フレームメモリ１１２に画像を展開し、表示装置１２１の表示画面１２２に表示を行うためのビデオ信号を出力する。出力されるビデオ信号に含まれる画像の１フレーム時間は、例えば３０分の１秒とする。ＤＶＤ／ＣＤ−ＲＯＭドライブ１１３は、記録媒体１３１に対しプログラム及びデータの読み書きを行う。通信インターフェイス１１５は、ネットワーク１５１に接続され、ネットワーク１５１上に存在し、複数のコンピュータの協働でゲームを進行させるためのサーバ装置などの他のコンピュータとの通信を行う。
【００５０】
インターフェイス部１１７は、入力部１６１からの入力データをＲＡＭ１０５に出力し、制御部１０３がそれを解釈して演算処理を実施する。入力部１６１は、方向キー及び複数の操作キーを備え、方向キーの操作により後述するキャラクタを移動させ、操作キーの操作により所定の処理を行わせるものである。インターフェイス部１１７は、また、制御部１０３からの指示に基づいて、ＲＡＭ１０５に記憶されているゲームの進行状況を示すデータをメモリーカード１６２に保存させ、メモリーカード１６２に保存されている中断時のゲームのデータを読み出して、ＲＡＭ１０５に転送する。
【００５１】
本発明に係るプログラム及びデータは、最初例えば記録媒体１３１に記憶されている。そして、このプログラム及びデータは実行時にＤＶＤ／ＣＤ−ＲＯＭドライブ１１３により読み出されて、ＲＡＭ１０５にロードされる。制御部１０３は、ＲＡＭ１０５にロードされた、本発明に係るプログラム及びデータを処理し、描画命令をグラフィック処理部１１１に出力し、サウンド出力の指示をサウンド処理部１０９に出力する。制御部１０３が処理を行っている間の中間的なデータは、ＲＡＭ１０５に記憶される。
【００５２】
上記コンピュータ１０００のうちコンピュータ本体１０１は、同様の構成要素を備えるのであれば、汎用のパーソナルコンピュータなどによるものとしてもよい。コンピュータ本体１０１と同様の機能を備えた携帯電話機を適用してもよい。また、表示装置１２１及びサウンド出力装置１２５をコンピュータ本体１０１と同一の筐体内に納めた携帯ゲーム機を構成するものとしてもよい。携帯ゲーム機の場合は、記録媒体１３１として、ＤＶＤ−ＲＯＭやＣＤ−ＲＯＭの代わりに半導体メモリカードを適用し、このメモリカードを挿入するためのカードスロットをＤＶＤ／ＣＤ−ＲＯＭドライブ１１３の代わりに設けるものとしてもよい。
【００５３】
次に、この実施の形態にかかるビデオゲームを実行するのに必要となる各種のデータについて説明する。このビデオゲームは、仮想３次元空間に設けられたフィールド上を、プレイヤが入力部１６１を操作して動作させるキャラクタ（プレイヤキャラクタ）が移動していくことによりゲームが進行していく。このフィールドが形成された仮想３次元空間は、ワールド座標系（Ｘ，Ｙ，Ｚ）によって示される。フィールドは、各構成面の頂点の座標を特徴点として表したものである。
【００５４】
図２は、プレイヤキャラクタの例を示す図である。プレイヤキャラクタ３００は、ポリゴンによって構成されており、ローカル座標系（ｘ，ｙ，ｚ）によって示される。プレイヤキャラクタ３００は、そのほぼ中心の点を参照点３０１として設定しており、仮想３次元空間内における位置は、参照点３０１のワールド座標系における座標で示される。また、プレイヤキャラクタ３００の方向は、ローカル座標系の各軸がワールド座標系の各軸に対してなす角で表される。そして、表示処理を行う際においては、プレイヤキャラクタ３００の特徴点（各ポリゴンの頂点）の座標がワールド座標系の座標に変換される。
【００５５】
上記したプレイヤキャラクタ３００が仮想３次元空間内のフィールド上を移動していく様子は、仮想カメラにより仮想３次元空間を透視変換することで表示画面１２２上に映し出され、プレイヤに認識されるものとなる。図３は、この透視変換の様子を模式的に示す。仮想３次元空間内に仮想カメラ４０１が置かれ、スクリーン４０２上に投影された画像が表示画面１２２に表示される画像となる。この仮想カメラ４０１の位置が視点４０３、仮想カメラ４０１の向きが光軸４０４、視点４０３とスクリーン４０２の四隅を結んだ４本の直線が作る領域が視界４０５となる。スクリーン４０２の大きさは固定であり、視界４０５の広さを決めればスクリーン４０２の位置が決まり、スクリーン４０２の位置を決めれば視界４０５の広さが決まるという関係がある。
【００５６】
このようにスクリーン４０２上に画像を投影するために用いられる座標系が視点座標系（Ｘ’，Ｙ’，Ｚ’）であり、光軸４０４の方向が視点座標系のＺ’軸となる。ワールド座標系の座標（ローカル座標系の座標から変換された座標を含む）は、視点座標系の座標に変換されて、次に示す隠面消去の処理を含む透視変換の処理が行われる。
【００５７】
透視変換によりスクリーン４０２上に投影した画像を生成する場合には、前面に他の物体があって隠されてしまう面を消去する隠面消去を行う必要がある。隠面消去の方法としては、ここでは、Ｚバッファ法を用いるものとしている。制御部１０３は、ワールド座標系の座標を視点座標系の座標へ変換すると、各特徴点の座標をグラフィック処理部１１１に送ると共に、描画命令を出力する。この描画命令に基づいて、グラフィック制御部１１１は、各特徴点について、前側にある点（Ｚ’座標の小さな点）のデータ（Ｚ’の値）が残るようにＺバッファの内容を更新し、更新の都度、当該点についての画像データをフレームメモリ１１２に展開していく。
【００５８】
ここで、各フレームにおいて透視変換を行う際の視点４０３の位置は、当該フレーム期間におけるプレイヤキャラクタ３００の位置と前のフレーム期間における視点４０３の位置との間の距離に基づいて決められる。図４は、プレイヤキャラクタ３００の位置に従って新たな視点４０３の位置を決定するための処理を説明する図である。
【００５９】
図４において、座標点（Ｘc，Ｙc，Ｚc）は、現フレーム期間におけるプレイヤキャラクタ３００の位置を示す。座標点（Ｘoc，Ｙoc，Ｚoc）は、前のフレーム期間におけるプレイヤキャラクタ３００の位置を示す。座標点（Ｘe，Ｙe，Ｚe）は、前のフレーム期間における視点４０３の位置を示す。また、座標点（Ｘfe，Ｙfe，Ｚfe）は、プレイヤキャラクタ３００の位置と前のフレームにおける視点４０３の位置との間の距離が第１距離未満であった場合の視点４０３の移動位置を、座標点（Ｘne，Ｙne，Ｚne）は、プレイヤキャラクタ３００の位置と前のフレームにおける視点４０３の位置との間の距離が第２距離を超えた場合の視点４０３の移動位置を示す。
【００６０】
ここで、第１距離とは、視点４０３の位置を移動しない限界として、プレイヤキャラクタ３００の位置と視点４０３の位置とが最も近くなる臨界の近距離である。また、第２距離とは、視点４０３の位置を移動しない限界として、プレイヤキャラクタ３００の位置と視点４０３の位置とが最も遠くなる臨界の遠距離である。
【００６１】
視点４０３の新たな位置を決定するためには、まず、数式１に従って現在のフレーム期間におけるプレイヤキャラクタ３００の位置と前のフレーム期間における視点４０３の位置との間の距離Ｄを求める。
【数１】
0003816375.tif 000002
【００６２】
次に、この距離Ｄが第１距離未満であるかどうか、また第２距離を超えているかどうかを判定する。ここで、第１距離は、プレイヤキャラクタ３００が表示画面１２２上で一定の大きさを超えずに背景の画像も認識できる程度の所定の距離に設定される。第２距離は、第１距離よりも長い距離であり、プレイヤキャラクタ３００が表示画面１２２上で一定の大きさよりも小さくならずにプレイヤが容易に認識できる程度とする所定の距離に設定される。
【００６３】
距離Ｄが第１距離未満であった場合には、次に示す数式２に従って現フレーム期間における視点４０３の位置の座標値を求める。距離Ｄが第２距離を超えていた場合には、次に示す数式３に従って現フレーム期間における視点４０３の位置の座標値を求める。距離Ｄが第１距離以上第２距離以下であった場合には、前のフレーム期間における視点４０３の位置をそのまま現フレーム期間における視点４０３の位置として決定する。
【００６４】
【数２】
0003816375.tif 000003
【数３】
0003816375.tif 000004
ここで、ｍ及びｎは、０よりも大きい定数であり、視点４０３の移動速度がプレイヤキャラクタ３００の移動速度以上となる所定の値に設定される。
【００６５】
なお、仮想３次元空間に形成されたフィールド、及びフィールド上に存在するプレイヤキャラクタ３００を表示画面１２２に映し出すためは、シェーディング、テクスチャマッピングなどの処理も必要となる。しかし、これらの処理は、本発明と特に関係がないので、詳細な説明を省略する。
【００６６】
以下、この実施の形態にかかるコンピュータ１０００で実行されるゲームの進行について説明する。ここでは、プレイヤからの指示に従ってプレイヤキャラクタ３００がマップ上を移動していく場合を例として説明する。また、プレイヤキャラクタ３００と仮想カメラ４０１の視点４０３との間に障害物が存在することはないものとする。
【００６７】
図５は、この実施の形態にかかるビデオゲームにおけるメイン処理を示すフローチャートである。この処理は、１フレーム時間毎（ここでは、３０分の１秒毎）に生じるタイマ割り込みによって実行され、少なくとも１フレーム時間以内（ここでは、３０分の１秒以内）において終了するものである。
【００６８】
制御部１０３は、インターフェイス部１１７が受信した入力部１６１からの入力データであって、プレイヤによる方向キーの操作に従ってプレイヤキャラクタ３００の移動を指示するためのデータがＲＡＭ１０５に記憶されているかどうかを判定する（ステップＳ１０１）。プレイヤキャラクタ３００の移動を指示するためのデータが記憶されていなかった場合には、そのままステップＳ１０３の処理に進む。
【００６９】
一方、プレイヤキャラクタ３００の移動を指示するための信号が記憶されていた場合には、ＲＡＭ１０５に記憶されたプレイヤキャラクタ３００の移動を指示するためのデータと、前のフレーム期間以前に求めたプレイヤキャラクタ３００の位置とに従って、プレイヤキャラクタ３００が移動した後の位置（参照点３０１のワールド座標系での座標及びプレイヤキャラクタ３００のローカル座標系がワールド座標系に対してなす角度）を求め、ＲＡＭ１０５に上書き保存する（ステップＳ１０２）。その後、ステップＳ１０３の処理に進む。
【００７０】
ステップＳ１０３では、制御部１０３は、ＲＡＭ１０５に保存されているプレイヤキャラクタ３００の位置を取得する。制御部１０３は、さらに、前のフレーム期間におけるステップＳ１０７またはＳ１０９（後述）で求めた視点４０３の位置を取得する（ステップＳ１０４）。制御部１０３は、ステップＳ１０３で取得したプレイヤキャラクタ３００の位置とステップＳ１０４で取得した視点４０３の位置とに従って上記した数式１の計算を行い、現フレーム期間におけるプレイヤキャラクタ３００の位置と前のフレーム期間における視点４０３の位置との間の距離Ｄを求める（ステップＳ１０５）。
【００７１】
次に、制御部１０３は、求めた距離Ｄが上記した第１距離未満であるかどうかを判定する（ステップＳ１０６）。第１距離未満であった場合は、制御部１０３は、上記した数式２に従って新たな視点４０３の位置を求め、現フレーム期間における視点４０３の位置を前のフレームにおける視点４０３の位置よりもプレイヤキャラクタ３００の位置から遠ざける（ステップＳ１０７）。そして、ステップＳ１１０の処理に進む。
【００７２】
また、ステップＳ１０６において距離Ｄが第１距離以上あった場合には、制御部１０３は、距離Ｄが上記した第２距離を超えているかどうかを判定する（ステップＳ１０８）。第２距離を超えていた場合は、制御部１０３は、上記した数式３に従って新たな視点４０３の位置を求め、現フレーム期間における視点４０３の位置を前のフレームにおける視点４０３の位置よりもプレイヤキャラクタ３００の位置に近づける（ステップＳ１０９）。そして、ステップＳ１１０の処理に進む。距離Ｄが第２距離以下であれば、そのままステップＳ１１０の処理に進む。
【００７３】
ステップＳ１０７またはＳ１０９において新たな視界４０３の位置が求められ、また、ステップＳ１０８の判定結果もＮＯで前のフレーム期間と同じに視界４０３の位置が設定されると、制御部１０３は、光軸４０４の方向を決定する。光軸４０４の方向は、常にプレイヤキャラクタ３００の参照点３０１の方向を向くものとすることができる（ステップＳ１１０）。なお、視界４０５の広さ（視点４０３からのスクリーン４０２の距離）は、視点４０３の位置及び光軸４０４の向きに関わらず、一定に保たれる。
【００７４】
上記したように仮想カメラ４０１の視点４０３及び光軸４０４が決まると、制御部１０３は、視界４０５によって定められるスクリーン４０２に視点４０３からプレイヤキャラクタを含む仮想３次元空間を透視変換して、表示画面１２２に表示する２次元画像を生成するための表示処理を行う（ステップＳ１１１）。表示処理を終了すると、このメイン処理を終了し、次のフレーム期間の開始タイミングにおいて、再びメイン処理が実行されることとなる。
【００７５】
なお、ステップＳ１１１の表示処理において、制御部１０３は、まず、プレイヤキャラクタ３００の各特徴点のローカル座標系での座標を、参照点３０１のワールド座標系での座標とプレイヤキャラクタの向きとに基づいて、全てワールド座標系での座標に変換する。次に、制御部１０３は、視点４０３のワールド座標系での座標と、光軸４０４の向きとに従って、透視変換される範囲に含まれるプレイヤキャラクタ３００及びフィールドを構成する各面を構成する点の座標を、視点座標系の座標に変換する。そして、制御部１０３は、視点座標系に変換した各面を構成する点の座標をグラフィック処理部１１１に送り、グラフィック処理部１１１に描画命令を出力する。
【００７６】
描画命令を受け取ったグラフィック制御部１１１は、視点座標系の座標に基づいて、各面を構成する各点について、前側にある点（Ｚ’座標の小さな点）のデータ（Ｚ’の値）が残るようにＺバッファの内容を更新する。Ｚバッファの内容を更新した場合には、グラフィック制御部１１１は、当該点についての画像データをフレームメモリ１１２に展開していく。グラフィック処理部１１１は、展開される画像データに対してシェーディングやテクスチャマッピングなどの処理も行っている。
【００７７】
グラフィック処理部１１１は、また、フレームメモリ１１２に展開された画像データを順次読み出し、同期信号を付加してビデオ信号を生成し、表示装置１２１に出力する。表示装置１２１は、グラフィック処理部１１１から出力されたビデオ信号に対応した画像を表示画面１２２の表示画面に表示する。１フレーム時間毎に表示画面１２２が切り替えられていくことで、プレイヤは、プレイヤキャラクタ３００がフィールド上を移動し、その移動に伴って視点も移動していく画像を見ることができるようになる。
【００７８】
以下、この実施の形態にかかるビデオゲームにおけるプレイヤキャラクタ３００の位置と視点４０３の位置との関係について、プレイヤキャラクタ３００が視点４０３に近づいていく場合と遠ざかる場合とに分けて、具体的に説明する。
【００７９】
図６（ａ）〜（ｅ）は、プレイヤキャラクタ３００が視点４０３の方向に進むときのプレイヤキャラクタ３００の位置と視点４０３の位置との関係を示す図である。図７（ａ）〜（ｅ）は、図６（ａ）〜（ｅ）のそれぞれの場合における表示画面１２２を示す図である。ここでは、位置関係を分かり易く示すため、プレイヤキャラクタ３００の背景にあるフィールド上に建物２００が存在するものとする。プレイヤキャラクタ３００は、直線上を一方向にのみ移動し、高低の変化はないものとする。図６では、プレイヤキャラクタ３００の位置をＣａ〜Ｃｅ、視点４０３の位置をＥａ〜Ｅｃ、建物２００の位置をＢで表している。
【００８０】
この例で考慮している最初のフレームでは、図６（ａ）に示すように、プレイヤキャラクタ３００は、建物２００の位置Ｂに近い位置Ｃａに位置している。視点４０３は、位置Ｅａに位置するものとする。このときの表示画面１２２上の画像が図７（ａ）である。このときのプレイヤキャラクタ３００の位置Ｃａと視点４０３の位置Ｅａとの間の距離Ｄは、第１距離よりもかなり長くなっている。
【００８１】
次のフレームまでにプレイヤキャラクタ３００が視点４０３の方向に移動し、建物２００の位置Ｂ、プレイヤキャラクタ３００の位置Ｃｂは、図６（ｂ）に示すような位置関係になったものとする。プレイヤキャラクタ３００の位置Ｃｂと前のフレームでの視点４０３の位置Ｅａとの間の距離Ｄが第１距離よりも長いので、現フレームにおける視点４０３は、前のフレームにおける位置Ｅａに存在することになる。このときの表示画面１２２上の画像が図７（ｂ）であり、プレイヤキャラクタ３００は、少し視点４０３に近づくので図７（ａ）より大きく、建物２００の位置Ｂと視点４０３の位置Ｅａとの間の距離は変わらないので、建物２００は、図７（ａ）の場合と同じ大きさで表示される。
【００８２】
次のフレームまでにプレイヤキャラクタ３００が視点４０３の方向に移動し、建物２００の位置Ｂ、プレイヤキャラクタ３００の位置Ｃｃは、図６（ｃ）に示すような位置関係になったものとする。ここで、プレイヤキャラクタ３００の位置Ｃｃと前のフレームでの視点４０３の位置Ｅａとの間の距離Ｄが第１距離になったとする。ここでも距離Ｄが第１距離未満ではないので、現フレームにおける視点４０３は、前のフレームにおける視点４０３の位置Ｅａにとどまることになる。このときの表示画面１２２上の画像が図７（ｃ）であり、プレイヤキャラクタ３００は、視点４０３にさらに近づくので図７（ｂ）より大きく表示され、建物２００の位置Ｂと視点４０３の位置Ｅｃとの間の距離は変わらないので、建物２００は、図７（ｂ）の場合と同じ大きさで表示される。
【００８３】
次のフレームまでにプレイヤキャラクタ３００が視点４０３の方向に移動し、建物２００の位置Ｂ、プレイヤキャラクタ３００の位置Ｃｄは、図６（ｄ）に示すような位置関係になったものとする。ここで、プレイヤキャラクタ３００の位置Ｃｄと前のフレームでの視点４０３の位置Ｅａとの間の距離Ｄは、第１距離未満となる。そこで、視点４０３の位置がプレイヤキャラクタ３００から遠ざかるように、位置Ｅａから位置Ｅｂへと移動する。このときの表示画面１２２上の画像が図７（ｄ）であり、プレイヤキャラクタ３００は、視点４０３との間の距離がほぼかわらないため図７（ｃ）と同様の大きさで表示され、建物２００の位置Ｂと視点４０３の位置Ｅｃとの間の距離は長くなって、建物２００が表示される大きさが図７（ｃ）に比べて小さくなる。
【００８４】
次のフレームまでにプレイヤキャラクタ３００が視点４０３の方向に移動し、建物２００の位置Ｂ、プレイヤキャラクタ３００の位置Ｃｅは、図６（ｅ）に示すような位置関係になったものとする。ここでも、プレイヤキャラクタ３００の位置Ｃｅと前のフレームでの視点４０３の位置Ｅｂとの間の距離Ｄは、第１距離未満となる。そこで、視点４０３の位置がプレイヤキャラクタ３００から遠ざかるように、位置Ｅｂから位置Ｅｃへと移動する。このときの表示画面１２２上の画像が図７（ｅ）であり、プレイヤキャラクタ３００は、視点４０３との間の距離がほぼかわらないため図７（ｄ）と同様の大きさで表示され、建物２００の位置Ｂと視点４０３の位置Ｅｃとの間の距離はさらに長くなって、建物２００が表示される大きさが図７（ｄ）に比べて小さくなる。
【００８５】
図８（ａ）〜（ｅ）は、プレイヤキャラクタ３００から視点４０３から遠ざかる方向に進むときのプレイヤキャラクタ３００の位置と視点４０３の位置との関係を示す図である。図９（ａ）〜（ｅ）は、図８（ａ）〜（ｅ）のそれぞれの場合における表示画面１２２を示す図である。ここでも、位置関係を分かり易く示すため、プレイヤキャラクタ３００の背景にあるフィールド上に建物２００が存在するものとする。プレイヤキャラクタ３００は、直線上を一方向にのみ移動し、高低の変化はないものとする。図８では、プレイヤキャラクタ３００の位置をＣａ〜Ｃｅ、視点４０３の位置をＥａ〜Ｅｃ、建物２００の位置をＢで表している。
【００８６】
この例で考慮している最初のフレームでは、図８（ａ）に示すように、プレイヤキャラクタ３００は、建物２００の位置Ｂから遠い位置Ｃａに位置している。視点４０３は、位置Ｅａに位置するものとする。このときの表示画面１２２上の画像が図９（ａ）であり、プレイヤキャラクタ３００は、視点４０３から近いので大きく表示され、建物２００は、後述する図９（ｄ）、（ｅ）の場合よりも視点４０３から遠いので小さく表示される。また、このときのプレイヤキャラクタ３００の位置Ｃａと視点４０３の位置Ｅａとの間の距離Ｄは、第２距離よりもかなり短くなっている。
【００８７】
次のフレームまでにプレイヤキャラクタ３００が視点４０３から遠ざかる方向に移動し、建物２００の位置Ｂ、プレイヤキャラクタ３００の位置Ｃｂは、図８（ｂ）に示すような位置関係になったものとする。プレイヤキャラクタ３００の位置Ｃｂと前のフレームでの視点４０３の位置Ｅａとの間の距離Ｄが第２距離よりも短いので、現フレームにおける視点４０３は、前のフレームと同じ位置Ｅａに存在することになる。このときの表示画面１２２上の画像が図９（ｂ）であり、プレイヤキャラクタ３００は、少し視点４０３から遠ざるので図９（ａ）より小さく表示され、建物２００の位置Ｂと視点４０３の位置Ｅａとの間の距離は変わらないので、建物２００は、図９（ａ）の場合と同じ大きさで表示される。
【００８８】
次のフレームまでにプレイヤキャラクタ３００が視点４０３から遠ざかる方向にさらに移動し、建物２００の位置Ｂ、プレイヤキャラクタ３００の位置Ｃｃは、図８（ｃ）に示すような位置関係になったものとする。ここで、プレイヤキャラクタ３００の位置Ｃｃと前のフレームでの視点４０３の位置Ｅａとの間の距離Ｄが第２距離になったとする。ここでも距離Ｄが第２距離を超えていないので、現フレームにおける視点４０３は、前のフレームと同じ位置Ｅａに存在することになる。このときの表示画面１２２上の画像が図９（ｃ）であり、プレイヤキャラクタ３００は、視点４０３から遠ざかるので図９（ｂ）に比べて小さく表示され、建物２００の位置Ｂと視点４０３の位置Ｅａとの間の距離は変わらないので、建物２００は、図９（ｂ）の場合と同じ大きさで表示される。
【００８９】
次のフレームまでにプレイヤキャラクタ３００が視点４０３から遠ざかる方向にさらに移動し、建物２００の位置Ｂ、プレイヤキャラクタ３００の位置Ｃｄは、図８（ｄ）に示すような位置関係になったものとする。ここで、プレイヤキャラクタ３００の位置Ｃｄと前のフレームでの視点４０３の位置Ｅａとの間の距離Ｄは、第２距離を超える。そこで、視点４０３の位置がプレイヤキャラクタ３００に近づくように、位置Ｅａから位置Ｅｂへと移動する。このときの表示画面１２２上の画像が図９（ｄ）であり、プレイヤキャラクタ３００は、視点４０３との間の距離がほぼかわらないため同程度に表示され、建物２００の位置Ｂと視点４０３の位置Ｅｂとの間の距離は短くなって、建物２００が表示される大きさが図９（ｃ）に比べて大きくなる。
【００９０】
次のフレームまでにプレイヤキャラクタ３００が視点４０３から遠ざかる方向にさらに移動し、建物２００の位置Ｂ、プレイヤキャラクタ３００の位置Ｃｅは、図８（ｅ）に示すような位置関係になったものとする。ここでも、プレイヤキャラクタ３００の位置Ｃｅと前のフレームでの視点４０３の位置Ｅｂとの間の距離Ｄは、第２距離を超える。そこで、視点４０３の位置がプレイヤキャラクタ３００に近づくように、位置Ｅｂから位置Ｅｃへと移動する。このときの表示画面１２２上の画像が図９（ｅ）であり、プレイヤキャラクタ３００は、視点４０３との間の距離がほぼかわらないため図９（ｄ）と同程度に表示され、建物２００の位置Ｂと視点４０３の位置Ｅｃとの間の距離はさらに短くなって、建物２００が表示される大きさが図９（ｄ）よりも大きくなる。
【００９１】
上記の例では、プレイヤキャラクタ３００が移動する様子を分かり易く示すため、比較対照として建物２００も表示画面に表示させるものとしていたが、建物２００がなく、仮に変化に乏しいフィールド上をプレイヤキャラクタ３００が移動するような場合でも、次のようなことがいえる。
【００９２】
プレイヤキャラクタ３００の位置と視点４０３の位置との間の距離Ｄが第１距離以上第２距離以下にある場合は、プレイヤキャラクタ３００を視点４０３に近づける場合も遠ざける場合も、表示画面１２２上におけるプレイヤキャラクタ３００の大きさが変化する。これにより、ユーザは、プレイヤキャラクタ３００が仮想３次元空間内を移動していること及びその方向を表示画面１２２上の画像におけるプレイヤキャラクタ３００の大きさから認識できるようになる。
【００９３】
以上説明したように、この実施の形態にかかるビデオゲームでは、現フレーム期間におけるプレイヤキャラクタ３００の位置と前のフレーム期間における視点４０３の位置との間の距離Ｄが第１距離以上第２距離以下であれば、現フレーム期間における視点４０３の位置は移動しない。
【００９４】
この場合において、プレイヤキャラクタ３００が仮想３次元空間を移動すると、視点４０３からの距離が変化することで、表示画面１２２上に表示されるプレイヤキャラクタ３００の大きさが変化する。プレイヤは、表示されたプレイヤキャラクタ３００の大きさの変化から、プレイヤキャラクタ３００が仮想３次元空間内を移動する様を容易に認識することができる。
【００９５】
また、距離Ｄが第１距離未満であってプレイヤキャラクタ３００が視点４０３に近づいてきたときには、現フレームにおける視点４０３の位置をプレイヤキャラクタ３００から遠ざけている。距離Ｄが第２距離を超えていてプレイヤキャラクタ３００が視点から遠ざかった時には、現フレームにおける視点４０３の位置をプレイヤキャラクタ３００に近づけている。ここで、視点４０３の位置の移動速度は、プレイヤキャラクタ３００の移動速度以上となるようにしている。
【００９６】
これにより、ステップＳ１１１の表示処理において透視変換を行う際のプレイヤキャラクタ３００の位置と視点４０３との位置は、常に第１距離以上第２距離以下であり、表示画面１２２に表示されるプレイヤキャラクタは、常に一定範囲の大きさとなる。このため、表示画面１２２に表示されたプレイヤキャラクタ３００が大きすぎて背景の画像が見えなかったり、プレイヤキャラクタ３００が小さすぎて見えなくなってしまうことがなく、プレイヤは、常に適切な大きさでプレイヤキャラクタ３００を認識することができる。
【００９７】
また、距離Ｄが第１距離以上第２距離以下である場合には、視点４０３の位置を移動しないで済むため、視点４０３の位置を決定するための処理量が少なくて済む。さらに、視界４０５の広さは常に一定であり、フレーム期間毎に決定する必要がない。つまり、仮想３次元空間内に存在するプレイヤキャラクタ３００を透視変換する前に行っておかなければならない処理が少なくて済むので、全体としての処理量を小さくすることができる。
【００９８】
プレイヤキャラクタ３００には、そのほぼ中央に１つの参照点３０１が設定されていて、プレイヤキャラクタ３００の位置と視点４０３の位置との間の距離Ｄは、参照点３０１の座標と視点４０３の座標を用いて数式１で求められる。このようにプレイヤキャラクタ３００を構成するポリゴンの面の探索などの複雑な処理が必要なく、比較的少ない処理で距離Ｄを求めることが可能となる。
【００９９】
ところで、プレイヤキャラクタ３００は、ゲームを進めていく上ではなくてはならない存在であり、プレイヤに最も認識され易くする必要がある。この実施の形態にかかるビデオゲームでは、プレイヤキャラクタ３００の移動に伴って視点４０３の位置を移動し、プレイヤキャラクタ３００の表示の適正化を図っているため、ゲームの円滑な進行が可能となる。
【０１００】
本発明は、上記の実施の形態に限られず、種々の変形、応用が可能である。以下、本発明に適用可能な上記の実施の形態の変形態様について説明する。
【０１０１】
上記の実施の形態では、プレイヤキャラクタ３００の位置と視点４０３の位置との間の距離Ｄが第１距離未満であった場合における視点４０３の移動速度（前のフレームと現フレームとの間の視点４０３の移動距離）は一定であった。プレイヤキャラクタ３００の位置と視点４０３の位置との間の距離Ｄが第２距離を超えていた場合における視点４０３の移動速度（前のフレームと現フレームとの間の視点４０３の移動距離）も一定であった。しかしながら、ステップＳ１０７またはＳ１０９において移動される視点４０３の移動速度は、変動可能なものとしてもよい。
【０１０２】
視点４０３の移動速度を変動させる場合の第１の例としては、ステップＳ１０７またはＳ１０９において、前のフレームと現フレームとの間でプレイヤキャラクタ３００が移動した距離を求め、その距離に応じた距離だけ視点４０３の位置を移動させるものとしてもよい。第２の例としては、ステップＳ１０７またはＳ１０９において、距離Ｄが第１距離をどれくらい下回ったか、或いは第２距離をどれくらい上回ったかを求め、下回ったまたは上回った距離に応じた距離だけ視点４０３の位置を移動させるものとしてもよい。
【０１０３】
以上のように視点４０３の移動速度を変動可能なものとすることで、視点４０３は、移動するかどうかだけでなく、その移動速度までプレイヤキャラクタ３００の移動に従ったものとなるので、プレイヤは、表示画面１２２上に表示される画像においてプレイヤキャラクタ３００がどのように仮想３次元空間を移動しているかをより認識し易くなる。
【０１０４】
上記の実施の形態では、プレイヤキャラクタ３００の位置と前のフレームにおける視点４０３の位置との間の距離Ｄが第１距離未満か第２距離を超えていた場合、１フレーム期間内で視点４０３の位置を移動させるものとしていた。これに対して、距離Ｄが第１距離未満か第２距離を超えていた場合に視点４０３の移動先の位置を求めて、複数フレーム期間において求めた移動先まで徐々に視点４０３の位置を移動させるものとしてもよい。これにより、１フレーム期間における視点４０３の移動距離を一定範囲内に抑えることができ、表示画面１２２に映し出される画像の背景が急激に切り替わってプレイヤを惑わせるような場合がなくなる。
【０１０５】
上記の実施の形態では、プレイヤキャラクタ３００には１つの参照点３０１が設けられており、制御部１０３は、参照点３０１の位置との間の距離をプレイヤキャラクタ３００の位置と視点４０３の位置との間の距離として求めていた。これに対して、プレイヤキャラクタ３００に複数の参照点を設けるものとしてもよい。図１０は、複数の参照点を設けたプレイヤキャラクタの例を示す。このプレイヤキャラクタ３１０は、ほぼ中心の点に設けられた参照点３１１の他に、手及び足の先並びに頭に参照点３１２〜３１６が設けられている。
【０１０６】
このようなプレイヤキャラクタ３１０を採用した場合において、ステップＳ１０５においてプレイヤキャラクタ３１０の位置と視点４０３の位置との間の距離を求める場合に、制御部１０３は、視点４０３の位置と各参照点３１１〜３１６の位置との間の距離ｄ１〜ｄ５をそれぞれ求めるものとする。そして、求めた各参照点３１１〜３１６との間の距離ｄ１〜ｄ５に従って、次のようにプレイヤキャラクタ３１０の位置と視点４０３の位置との間の距離Ｄを求めることができる。
【０１０７】
第１の例として、距離ｄ１〜ｄ５の加算平均を距離Ｄとして適用することができる。また、第２の例として、距離ｄ１〜ｄ５のうちで最も短いものを距離Ｄとして適用することができる。このような方法を適用することにより、視点４０３の位置とプレイヤキャラクタ３００の位置との間の距離Ｄとしてより適切な値を用いることができる。このような方法は、特に形状や大きさの変化が激しいプレイヤキャラクタに対して有効となる。
【０１０８】
上記の実施の形態では、プレイヤキャラクタ３００が移動するのに伴って仮想カメラ４０１の視点４０３を移動させるものとしていた。これに対して、視点４０３の位置は固定しておくが、プレイヤキャラクタ３００が移動するのに伴って視界４０５の広さ（スクリーン４０２の視点４０３からの距離）を変えることによっても、上記した視点４０３を移動させるのとほぼ同様の効果を得ることができる。
【０１０９】
図１１は、この変形例にかかるメイン処理を示すフローチャートである。ステップＳ２０１〜Ｓ２０３の処理は、図５のステップＳ１０１〜Ｓ１０３の処理と同じである。プレイヤキャラクタ３００の位置を取得すると、制御部１０３は、予め分かっている視点４０３の位置とステップＳ２０３で取得したプレイヤキャラクタ３００の位置との間の距離Ｄを求める（ステップＳ２０４）。
【０１１０】
次に、制御部１０３は、求めた距離Ｄが第１距離未満であるかどうかを判定する（ステップＳ２０５）。第１距離未満であった場合は、制御部１０３は、視界４０５の広さを広くし、スクリーン４０３に投影されるプレイヤキャラクタ３００が小さくなるようにする（ステップＳ２０６）。そして、ステップＳ２０９の処理に進む。
【０１１１】
また、ステップＳ２０５において距離Ｄが第１距離以上であった場合には、制御部１０３は、距離Ｄが第２距離を超えているかどうかを判定する（ステップＳ２０７）。第２距離を超えていた場合は、制御部１０３は、視界４０５の広さを狭くし、スクリーン４０３に投影されるプレイヤキャラクタ３００が大きくなるようにする（ステップＳ２０８）。そして、ステップＳ２０９の処理に進む。距離Ｄが第２距離以下であれば、そのままステップＳ２０９の処理に進む。
【０１１２】
ステップＳ２０９、Ｓ２１０の処理は、図５のステップＳ１１０、Ｓ１１１の処理と同じである。なお、この変形例における第１距離、第２距離は、上記した実施の形態のものと同じものを適用することができる。また、ステップＳ２０６またはＳ２０８において視界４０５の広さを変更する場合、制御部１０３は、ステップＳ２０４で求めた距離Ｄとプレイヤキャラクタ３００の大きさとに基づいて決定することができる。
【０１１３】
以上のような処理によっても、プレイヤキャラクタ３００の位置と視点４０３の位置との間の距離Ｄが所定の範囲外になると、プレイヤキャラクタ３００の移動に追随して視界４０５の広さが変化し、表示画面１２２に映し出される背景が大きく変化するので、プレイヤは、プレイヤキャラクタ３００が仮想３次元空間内で移動していることを容易に認識することができるようになる。距離Ｄが所定の範囲内で視界４０５の広さが変化しない場合には、視点４０３の位置との間の距離の変動により表示画面１２２上に映し出されるプレイヤキャラクタ３００の大きさが変化する。これにより、プレイヤは、プレイヤキャラクタ３００が仮想３次元空間内で移動していることを容易に認識することができるようになる。
【０１１４】
また、表示画面１２２上に映し出されるプレイヤキャラクタ３００の大きさをある程度の範囲内の大きさに保つことができるので、プレイヤは、ゲームの進行にとって最も重要なプレイヤキャラクタ３００を常に適切な範囲の大きさで見ることができる。さらに、視点４０３の位置からプレイヤキャラクタ３００の位置までの距離Ｄが所定範囲内にあれば、視点４０３の位置だけでなく、視界４０５の広さも変更する必要がないので、処理量を軽減することができる。
【０１１５】
上記の実施の形態では、仮想カメラ４０１の光軸４０４は、常にプレイヤキャラクタ３００を向くものとしていた。これに対して、距離Ｄが第１距離以上第２距離以下であって、仮想カメラの視点４０３を移動しない場合或いは視界４０５の広さを変更しない場合には、前のフレーム期間におけるものと光軸４０４の向きを変化させず、視点４０３が移動したり視界４０５の広さを変更した場合のみ、光軸４０４の向きを変化させるものとしてもよい。
【０１１６】
上記の実施の形態では、プレイヤキャラクタ３００の位置と前のフレーム期間における視点４０３の位置との間の距離Ｄが第１距離以上第２距離以下であれば、視点４０３の位置を変化させないものとしていた。しかしながら、仮想３次元空間内に形成されたフィールドをによっては、距離Ｄが第１距離以上第２距離以下であっても視点４０３との間に障害物が存在することにより、プレイヤキャラクタ３００が見えなくなってしまう場合がある。距離Ｄが第１距離未満または第２距離を超えて視点４０３の位置が移動しても、その移動先の位置とプレイヤキャラクタ３００との間に障害物が存在する場合もある。
【０１１７】
そこで、図５のフローチャートに図１２に示すような処理を追加することで、このような問題を回避することができる。ステップＳ１０７またはＳ１０９で視点４０３の位置を移動した場合、またはステップＳ１０８で第２距離以下であると判定された場合には、制御部１０３は、視点４０３の位置（移動した位置）とプレイヤキャラクタ３００の位置との間に障害物（仮想３次元空間内のフィールドを構成する面など）が存在するかどうかを判定する（ステップＳ１２１）。障害物が存在しなければ、そのままステップＳ１１０の処理に進む。
【０１１８】
障害物が存在した場合には、制御部１０３は、プレイヤキャラクタ３００の位置との間に障害物が存在しない新たな視点４０３の位置を探索する。新たな視点４０３の位置としては、例えば、読み出したプレイヤキャラクタ３００の位置と視点４０３の位置とを結ぶ直線と、当該障害物がなす面との交点とすることができる（ステップＳ１２２）。制御部１０３は、ステップＳ１２２で探索した位置に視点４０３の位置を移動して（ステップＳ１２３）、ステップＳ１１０の処理に進む。
【０１１９】
以上のような処理を追加することで、プレイヤは、表示画面１２２に表示される画像によって、プレイヤキャラクタ３００がどこに存在するかということを常に認識できるようになる。なお、プレイヤキャラクタ３００の移動の軌跡をテーブルに登録しておき、ステップＳ１２２でプレイヤキャラクタ３００との間に障害物が存在しない視点４０３の位置を探索する場合に、テーブルに登録してあるプレイヤキャラクタ３００の過去の位置から選び出すものとすることができる。
【０１２０】
上記の実施の形態では、仮想カメラ４０１の視点４０３の位置は、プレイヤキャラクタ３００の位置と視点４０３の位置との間の距離Ｄが第１距離未満となるか、第２距離を超えたときにだけ移動するものとしていた。これは、表示画面１２２におけるプレイヤキャラクタ３００の大きさを適正化すると共に、プレイヤが、表示画面１２２からプレイヤキャラクタ３００の移動を認識しやすくするためである。ところが、プレイヤキャラクタ３００が仮想３次元空間内で移動していないのであれば、移動の認識というものは必要ない。
【０１２１】
そこで、図５のフローチャートに図１３に示すような処理を追加することで、表示画面１２２上におけるプレイヤキャラクタ３００の大きさをさらに適切なものとすることができる。ステップＳ１０７またはＳ１０９において視点４０３の位置を移動した後は、制御部１０３は、移動距離測定モードに設定し（ステップＳ１３１）、ＲＡＭ１０５に記憶されている時間変数の値を０にリセットする（ステップＳ１３２）。また、制御部１０３は、現在のプレイヤキャラクタ３００の位置をＲＡＭ１０５に一時保存する（ステップＳ１３３）。そして、ステップＳ１１０の処理に進む。
【０１２２】
一方、ステップＳ１０１でプレイヤキャラクタ３００の移動を指示するためのデータが記憶されていなかった場合、或いはステップＳ１０２でプレイヤキャラクタ３００の位置を移動した場合には、制御部１０３は、移動距離測定モードに設定されているかどうかを判定する（ステップＳ１３４）。移動距離測定モードに設定されていなければ、ステップＳ１０３の処理に進む。
【０１２３】
移動距離測定モードに設定されていれば、制御部１０３は、時間変数の値を１だけ加算する（ステップＳ１３５）。次に、制御部１０３は、ステップＳ１３３で一時保存した位置とステップＳ１０２で移動させた位置とに従って、移動距離測定モードにおけるプレイヤキャラクタ３００の移動距離を算出する（ステップＳ１３６）。制御部１０３は、算出したプレイヤキャラクタ３００の移動距離が所定距離（第２距離よりも十分に短い距離）を超えたかどうかを判定する（ステップＳ１３７）。距離変数の値が所定値を超えていれば、制御部１０３は、移動距離測定モードを解除する（ステップＳ１３８）。そして、ステップＳ１０３の処理に進む。
【０１２４】
また、算出したプレイヤキャラクタ３００の移動距離が所定距離を超えていなければ、制御部１０３は、時間変数の値が所定値を超えたかどうか、すなわち移動距離測定モードとなってから所定の時間が経過したかどうかを判定する（ステップＳ１３９）。時間変数の値が所定値を超えていなければ、ステップＳ１０３の処理に進む。
【０１２５】
一方、時間変数の値が所定値以上となった場合には、制御部１０３は、現在の視点４０３の位置とプレイヤキャラクタ３００との位置を結ぶ直線上であって、プレイヤキャラクタ３００との間の距離が、前記した第１距離よりも短く第２距離よりも長い中間距離となる位置に視点４０３の位置を移動する（ステップＳ１４０）。その後、制御部１０３は、移動距離測定モードを解除し（ステップＳ１４１）、ステップＳ１１０の処理に進む。
【０１２６】
以上のようにプレイヤキャラクタ３００が視点４０３の位置を移動してから所定期間内に所定距離を超えて移動しないときは、プレイヤがプレイヤキャラクタ３００の移動を認識する必要性があまりない場合であり、このときに視点４０３の位置をプレイヤキャラクタ３００から中間距離となる位置に移動するものとしている。中間距離は、第１距離よりも短く第２距離よりも長いため、表示画面１２２上におけるプレイヤキャラクタ３００の大きさは、中程度の大きさとなる。これにより、プレイヤキャラクタ３００をさらに適切な大きさで表示することができるようになる。
【０１２７】
上記した中間距離としては、表示画面１２２上におけるプレイヤキャラクタ３００の大きさが適切な大きさとなる値に設定することが好ましく、例えば、第１距離と第２距離とのちょうど真ん中の距離とすることができる。また、移動距離測定モードを解除するかどうかの基準となるプレイヤキャラクタ３００の移動距離は、０であってもよく、少しでもプレイヤキャラクタ３００が移動したら、ステップＳ１３８において移動距離測定モードを解除するものとしてもよい。
【０１２８】
なお、ステップＳ１０７またはＳ１０９で視点４０３の位置を移動した後だけでなく、所定期間内におけるプレイヤキャラクタ３００移動距離が所定範囲を超えない場合には、プレイヤキャラクタ３００との間の距離が中間距離となる位置に視点４０３の位置を移動するものとしてもよい。
【０１２９】
上記の実施の形態では、視点４０３の位置は、プレイヤキャラクタ３００の移動に追随して移動するものであった。ところが、プレイヤキャラクタ３００と同じくらいにゲームの進行に重大な影響を及ぼす他のキャラクタが登場するビデオゲームも存在する。例えば、ネットワークゲームにおいてプレイヤキャラクタ３００とパーティを組むキャラクタや、特定のイベントの発生が前提としたキャラクタなどである。視点４０３の位置は、このようなプレイヤキャラクタ３００以外の他のキャラクタの移動に追随して移動するものとしてもよい。
【０１３０】
上記の実施の形態では、本発明のビデオゲームを実行させるためのプログラムは、記録媒体１３１に格納されて配布されるものとしていた。これに対して、このプログラムをネットワーク１５１上に存在するサーバ装置が有する固定ディスク装置に格納しておき、図１のコンピュータ本体１０１にネットワーク１５１及び通信媒体１４１を介して配信するものとしてもよい。通信インターフェース１１５がサーバ装置から受信したプログラムは、ＨＤＤ１０７に保存し、実行時にＲＡＭ１０５にロードすることができる。
【０１３１】
【発明の効果】
以上説明したように、本発明によれば、仮想カメラの視点から透視変換されることで画面上に表示されるキャラクタの画像から、仮想３次元空間内で移動するキャラクタの動きをプレイヤに効果的に認識させることができる。
【図面の簡単な説明】
【図１】本発明の実施の形態にかかるビデオゲームを実行するためのコンピュータの構成を示すブロック図である。
【図２】仮想３次元空間内を移動するプレイヤキャラクタの例を示す図である。
【図３】プレイヤキャラクタを含む仮想３次元空間を透視変換して表示するための処理を模式的に示す図である。
【図４】プレイヤキャラクタの位置に従って新たな視点の位置を決定するための処理を説明する図である。
【図５】本発明の実施の形態にかかるビデオゲームにおけるメイン処理を示すフローチャートである。
【図６】プレイヤキャラクタが視点の方向に進むときのプレイヤキャラクタの位置と視点の位置との関係を示す図である。
【図７】図５における表示画面を示す図である。
【図８】プレイヤキャラクタが遠ざかる方向に進むときのプレイヤキャラクタの位置と視点の位置との関係を示す図である。
【図９】図７における表示画面を示す図である。
【図１０】プレイヤキャラクタの他の例を示す図である。
【図１１】本発明の実施の形態の変形例にかかるビデオゲームにおけるメイン処理を示すフローチャートである。
【図１２】図５の処理に追加される変形例の処理を示すフローチャートである。
【図１３】図５の処理に追加される変形例の処理を示すフローチャートである。
【符号の説明】
１０１  コンピュータ本体
１０３  制御部
１０５  ＲＡＭ
１０７  ＨＤＤ
１０９  サウンド処理部
１１１  グラフィック処理部
１１２  フレームメモリ
１１３  ＤＶＤ／ＣＤ−ＲＯＭドライブ
１１５  通信インターフェイス
１１７  インターフェイス部
１１９  内部バス
１２１  表示装置
１２２  表示画面
１２５  音声出力装置
１３１  記録媒体
１５１  ネットワーク
１６１  入力部
１６２  メモリーカード
３００  プレイヤキャラクタ
３０１  参照点
４０３  視点
４０５  視界
１０００  コンピュータ
【図１】
0003816375.tif 000005
【図２】
0003816375.tif 000006
【図３】
0003816375.tif 000007
【図４】
0003816375.tif 000008
【図５】
0003816375.tif 000009
【図６】
0003816375.tif 000010
【図７】
0003816375.tif 000011
【図８】
0003816375.tif 000012
【図９】
0003816375.tif 000013
【図１０】
0003816375.tif 000014
【図１１】
0003816375.tif 000015
【図１２】
0003816375.tif 000016
【図１３】
0003816375.tif 000017