この発明は、三次元空間座標上に構成された移動体を移動させるとともに、前記移動体を所定の視点から見た視点画像を生成する画像処理装置において、
前記移動体に関する情報が表現された情報表現体を三次元空間座標上に構成する情報表現体生成手段を備えるものである。
この発明は、前記情報表現体生成手段は、前記情報表現体として前記移動体の位置を表す面状体を構成するものである。
この発明は、前記情報表現体生成手段は、前記面状体を折り畳まれた状態から開いた状態へと変化させるものである。
この発明は、前記情報表現体が構成されたときに、前記移動体及び前記情報表現体の両方を表示するように前記視点を動かす視点移動手段を備えるものである。
この発明は、前記視点移動手段は、さらに、前記視点を前記情報表現体に向けて移動させるものである。
この発明は、さらに、生成された前記視点画像を表示する表示手段を備えるものである。
この発明は、三次元空間座標上を前記移動体で移動しながらゲームを行うゲーム装置であって、上記いずれかの画像処理装置を備えるものである。
この発明は、三次元空間座標上に構成された移動体及びこの移動体に関する情報が表現された情報表現体を所定の視点から見た視点画像を生成する画像処理方法において、
前記移動体のみを表示する位置に前記視点を動かす第1のステップと、
前記移動体及び前記情報表現体の両方を表示する位置に前記視点を動かす第2のステップと、
前記情報表現体を大きく表現するように前記視点を前記情報表現体に向けて移動させる第3のステップとを備えるものである。
この発明によれば、面状体等の情報表現体を三次元空間座標上に前記移動表示体との関連で表示する画像処理をしているので、必要な情報が書き込まれた面状体を違和感なく見ることができ、以後の画像に円滑につなげることができる。また、この発明によれば、ゲーム展開に関して効果的な画像処理が可能になる。
また、この発明によれば、視点を前記面状体に向けて移動させる制御させているため、面状体(例えばマップ)を徐々に拡大表示させることができ、ゲーム画面中でマップを実際に眺めているような間隔をプレイヤーに与えることができる。
また、この発明では、面状体が折り畳まれた状態から開いた状態に表示されるように画像処理されているので、現実に近い感覚を与える装置とすることができる。
この発明は、三次元空間座標内に構成された移動体と、前記移動体がこれから通過する軌道上に設けられた注目点と、前記移動体がこれまでに通過した軌道上に設けられた通過点と、前記注目点の位置情報と前記通過点位置の情報とに基づいて、視軸方向を決定する視軸決定手段とを備えるものである。
この発明は、前記視軸決定手段は、前記移動体の前後等距離にある前記注目点及び前記通過点の位置情報に基づいて、視軸方向を決定するものである。
この発明は、前記視点決定手段は、前記移動体が曲線上を移動している場合に、当該曲線の性質に応じて、前記移動体から前記注目点及び前記通過点までの距離をそれぞれ変更するものである。
この発明は、生成された前記視点画像を表示する表示手段を備えるものである。
この発明は、三次元空間座標上を前記移動体で移動しながらゲームを行うゲーム装置であって、前記いずれかに記載の画像処理装置を備えるものである。
この発明は、三次元空間座標上に構成された移動体を移動させるとともに、前記移動体の視点から見た視点画像を生成する画像処理装置において、
前記視点を中心とした視線を前記移動体の軌跡に従って滑らかに変える視点決定手段を備えるものである。
前記視線を前記移動体の軌跡に従って滑らかに変えるとは、予め定められた軌跡あるいは前記移動体が移動した結果に基づく軌跡の性質、例えば、曲率、接線ベクトル、微分係数等に基づいて全体的にあるいは少なくとも一部の区間において連続的に視線を変えるということである。
この発明は、前記視点決定手段は、前記移動体の前後の軌跡上の座標に基づき、前記視点を中心とした視線の方向を決定するものである。
この発明は、前記視点決定手段は、前記移動体の前後等距離にある2つの座標を算出し、これらの座標を結ぶ直線を前記視線の方向とするものである。
この発明は、前記視点決定手段は、前記移動体が曲線上を移動している場合に、当該曲線の性質に応じて、前記移動体から前後の座標までのそれぞれの距離を変更するものである。
この発明は、さらに、生成された前記視点画像を表示する表示手段を備えるものである。
この発明は、三次元空間座標上を前記移動体で移動しながらゲームを行うゲーム装置であって、前記いずれかの画像処理装置を備えるものである。
この発明は、三次元空間座標上に構成された移動体を移動させるとともに、前記移動体の視点から見た視点画像を生成する画像処理方法において、
前記移動体の位置を読み込む第1のステップと、
前記移動体の位置から予め定められた距離離れた前方の軌道上に第1の点を設定する第2のステップと、
前記移動体の位置から予め定められた距離離れた後方の軌道上に第2の点を設定する第3のステップと、
前記第1の点と前記第2の点とを結ぶ線に基づき前記視点の視線の方向を定める第4のステップとを備えるものである。
この発明によれば、移動表示体が所定方向に進行状態にあるときに、この移動表示体の現在の座標の前後少なくとも一つ以上の座標を取り込み、これら座標を基に視点の方向を決定しているので、視点の動きが実際の視点の動きに合った近いものとなり、より自然な表現が可能な装置とすることができる。また、ゲーム展開に関して効果的な画像処理が可能になる。
また、この発明では、移動表示体の現在の座標の前後等距離の座標を取り込み、それら2点の座標を直線で結んで得られた方向を視点の方向しているので、視点の動きが実際の視点の動きに近いものとなる。
また、この発明では、前記移動表示体が曲線上を移動しているときには、この曲線の曲率に応じて移動表示体の現在の座標の前後の取り込み座標の距離を変更しているので、より現実に近い視点の動きを得ることができる。
この発明は、連結された複数のポリゴンのそれぞれにテクスチャをはりつけ、所定の画像を生成する画像処理装置において、
互いに連結された複数のポリゴン毎に基準ベクトルを決定し、前記テクスチャを前記基準ベクトルの方向に移動させる座標処理手段を備え、移動された前記テクスチャを前記ポリゴンにはりつけるものである。
この発明は、連結された複数のポリゴンのそれぞれにテクスチャをはりつけ、所定の画像を生成する画像処理装置において、
縦横に連結された複数のポリゴンの縦または横方向のポリゴン列毎に基準ベクトルを決定し、前記テクスチャを変形することなく、この基準ベクトルの方向に移動させる座標処理手段を備えるものである。
この発明は、前記座標処理手段は、予め定められた曲線に基づき前記基準ベクトルを決定するものである。
この発明は、前記複数のポリゴン毎の基準ベクトルは連続し、前記テクスチャは前記曲線に沿った流れに対応するものである。
この発明は、さらに、生成された前記画像を表示する表示手段を備えるものである。
この発明は、連結された複数のポリゴンのそれぞれにテクスチャをはりつけ、所定の画像を生成する画像処理方法において、
互いに連結された複数のポリゴン毎に基準ベクトルを決定する第1のステップと、
前記テクスチャを前記基準ベクトルの方向に移動させる第2のステップと、
移動された前記テクスチャを前記ポリゴンにはりつける第3のステップとを備えるものである。
この発明によれば、縦横に連結された複数のポリゴンに対して、縦または横のいずれかのポリゴン列毎に基準となるベクトルを与えておき、その基準となるベクトルの方向にテクスチャを変形させることなく移動している。このため、例えば川の水の流れのような流れのある画面を、より現実的に表現できる。
また、この発明では、前記基準となる線分を予め定められた曲線(例えば川の流れる経路)を基に与えているので、テクスチャーの密度の変化がなく、かつ自然な流れを表現できる。
この発明は、三次元空間座標上に構成された移動体を移動させるとともに、この移動体の位置の視点から見た視点画像を生成する画像処理装置において、
遠方の背景を表す背景画像を、前記視点の移動とともに移動させる移動処理手段を備えるものである。
この発明は、前記背景画像は円筒形あるいは球形をなすものである。
この発明は、さらに、生成された前記視点画像を表示する表示手段を備えるものである。
この発明は、三次元空間座標上を前記移動体で移動しながらゲームを行うゲーム装置であって、前記いずれかの画像処理装置を備えるものである。
この発明は、三次元空間座標上に構成された移動体を移動させるとともに、この移動体の位置の視点から見た視点画像を生成する画像処理方法において、
前記移動体の移動量を求める第1のステップと、
前記移動量に基づき、遠方の背景を表す背景画像を移動させる第2のステップとを備えるものである。
この発明では、所定の画面を、視点の移動に応じて移動させるので、視点が移動しても、無限遠あるいは距離の関係ない物体等を正しく表示することができ、より現実に近い表現ができる。また、ゲーム展開に関して効果的な画像処理が可能になる。
また、この発明では、所定の画面を円筒あるいは球状位置に配置し、その中心に視点を配置し、視点の移動に伴って当該中心を移動させることができるので、無限遠あるいは距離の関係ない物体等を正しく表示することができる。
この発明は、三次元空間座標上に構成された移動体を移動させるとともに、この移動体の位置の視点から見た視点画像をポリゴンを用いて生成する画像処理装置において、
前記視点画像を構成するポリゴンを複数に分類し、各分類毎にポリゴンの表示個数が予め定められた最大表示個数以下となるように、ポリゴンの表示個数を制御するポリゴン数制御手段を備えるものである。
この発明は、前記ポリゴン数制御手段は、前記視点画像を構成するポリゴンを、少なくとも背景を表すポリゴンおよびその他のポリゴンに分類するものである。
この発明は、さらに、生成された前記視点画像を表示する表示手段を備えるものである。
この発明は、三次元空間座標上を前記移動体で移動しながらゲームを行うゲーム装置であって、前記いずれかの画像処理装置を備えるものである。
この発明は、三次元空間座標上に構成された移動体を移動させるとともに、この移動体の位置の視点から見た視点画像をポリゴンを用いて生成する画像処理方法において、
前記視点画像を構成するポリゴンを複数に分類し、前記各分類毎にポリゴンの表示個数の最大表示個数を定める第1のステップと、
前記最大表示個数を超えない範囲において前記各分類毎にポリゴンの表示個数を制御する第2のステップとを備えるものである。
この発明によれば、移動表示体以外の他の画面を複数の種類に分け、各画面に割り当てるポリゴン数を個別に制限し、各画面を当該制限内で構成している。したがって、例えば、エネミーが数多く出現したような場合であっても、背景画像のポリゴンが欠落することはない。
この発明は、三次元空間座標上に構成された移動体を移動させるとともに、この移動体の位置の視点から見た視点画像を生成する画像処理装置において、
前記視点画像の視野を移動方向の状況に応じて変更する視野変更手段を備えるものである。
この発明は、前記視野変更手段は、前記移動体の前方に物体がないときは視野を広くし、物体があるときは視野を狭くするものである。
この発明は、さらに、生成された前記視点画像を表示する表示手段を備えるものである。
この発明は、三次元空間座標上を前記移動体で移動しながらゲームを行うゲーム装置であって、前記いずれかの画像処理装置を備えるものである。
この発明は、三次元空間座標上に構成された移動体を移動させるとともに、この移動体の位置の視点から見た視点画像を生成する画像処理方法において、
前記移動体の前方の物体の状況を調べる第1のステップと、
物体がないときに視野を広くし、物体があるときに視野を狭くする第2のステップとを備えるものである。
この発明によれば、移動体の前方の状況に応じて視野を変化させるので、自然な画像を得ることができる。例えば、キャラクタを乗せたトロッコが原野を走っているときは視野を広くすることにより広大な感じが得られるし、トンネルの中を走っているときは視野を狭くすることにより閉塞感が得られる。また、例えば市街地を走るときはこれらの中間と考えて中間の視野にすることにより、臨場感・スピード感が得られる。
この発明は、前記いずれかの方法を処理装置に実行させる手順が記憶される記憶媒体である。記憶媒体には、例えば、フロッピー(登録商標)ディスク、磁気テープ、光磁気ディスク、CD−ROM、DVD、ROMカートリッジ、バッテリバックアップ付きのRAMあるいはフラッシュメモリを備えるカートリッジ、不揮発性RAMカートリッジ等を含む。記憶媒体とは、何等かの物理的手段により情報(主にデジタルデータ、プログラム)が記録されているものであって、コンピュータ、専用プロセッサ等の処理装置に所定の機能を行わせることができるものである。
以下、本発明の実施の形態について、図1〜図5に基づき説明する。図1に、このゲーム装置の外観を示す。この図において、符号1は、ゲーム装置本体を示している。このゲーム装置本体1は箱状の形状をしている。このゲーム装置本体1には、表示手段としてのCRT、プロジェクタ、液晶表示装置、プラズマディスプレイ等を備えるディスプレイ1aが設けられている。このディスプレイ1aの下部の前面には、操作パネル2が設けられている。
前記ディスプレイ1aの横にはスピーカ取付孔(図示せず)が設けられており、これら孔の内部にはスピーカ14が設けられている。
このゲーム装置本体1の内部には、ゲーム処理ボード10が設けられている。なお、ディスプレイ1a、操作パネル2の操作装置11、及びスピーカ14はゲーム処理ボード10に接続されている。このような構造としたことにより、遊技者は、ディスプレイ1a及び操作パネル2の操作装置11を使用してゲームを楽しむことができる。
この操作パネル2に設けられた操作装置11は、ジョイステック2aと、押ボタン2bとから構成されている。このジョイステッィク2a及びボタン2bによって、遊技者はキャラクタを操作できる。
図2は、同実施例のデータ処理装置が適用されたゲーム装置を示すブロック図である。このゲーム装置は、ディスプレイ1a、操作パネル2に配置された操作装置11、ゲーム処理ボード10、及びスピーカ14からなる。
この操作装置11のジョイステック2aと、押ボタン2bとから入力された操作信号はゲーム処理ボード10に入力される。ディスプレイ1aは例えば「デルチェースI」と同様なゲ−ムの画像を表示するもので、このディスプレイ1aの代わりにプロジェクタを使ってもよい。
ゲーム処理ボード10は、CPU(中央演算処理装置)101を有するとともに、ROM102、RAM103、サウンド装置104、AMP(増幅器)105、入出力インターフェース106、スクロールデータ演算装置107、コ・プロセッサ(補助演算処理装置)108、図形デ−タROM109、ジオメタライザ110、モーションデ−タROM111、描画装置112、テクスチャデ−タROM113、テクスチャマップRAM114、フレームバッファ115、画像合成装置116、D/A変換器117を備えている。
CPU101は、バスラインを介して、所定のプログラムや画像処理プログラムなどを記憶したROM102、デ−タを記憶するRAM103、サウンド装置104、入出力インターフェース106、スクロールデータ演算装置107、コ・プロセッサ108、及びジオメタライザ110に接続されている。RAM103はバッファ用として機能させるもので、ジオメタライザに対する各種コマンドの書込み(オブジェクトの表示など)、各種演算時の必要なデータの書込みなどが行われる。
入出力インターフェース106は前記操作装置11に接続されており、これにより操作装置11のジョイステック2a等の操作信号がデジタル量としてCPU101に取り込まれる。サウンド装置104は電力増幅器105を介してスピーカ14に接続されており、サウンド装置104で生成された音響信号が電力増幅の後、スピーカ14に与えられる。
CPU101は、この実施の形態では、ROM102に内蔵したプログラムに基づいて操作装置11からの操作信号及び図形データROM109からの図形データ、またはモーションデータROM111からのモーションデータ(「自己、エネミー等のキャラクタ」、及び、「移動路、地形、空、各種構造物等の背景」等の三次元データ)を読み込んで、挙動計算(シミュレーション)、及び特殊効果の計算を少なくとも行うようになっている。
挙動計算は、操作装置11からの遊技者の操作信号により仮想空間でのキャラクタの動きをシミュレートするもので、三次元空間での座標値が決定された後、この座標値を視野座標系に変換するための変換マトリクスと、形状デ−タ(ポリゴンデ−タ)とがジオメタライザ110に指定される。コ・プロセッサ108には図形デ−タROM109が接続され、したがって、予め定めた図形デ−タがコ・プロセッサ108(及びCPU101)に渡される。コ・プロセッサ108は、主に、浮動小数点の演算を引き受けるようになっている。この結果、コ・プロセッサ108により各種の判定が実行されて、その判定結果がCPU101に与えられるようにされているから、CPUの計算負荷を低減できる。
ジオメタライザ110はモーションデ−タROM111及び描画装置112に接続されている。モーションデ−タROM111には、既述のように予め複数のポリゴンからなる形状デ−タ(各頂点から成るキャラクタ、地形、背景などの三次元デ−タ)が記憶されており、この形状デ−タがジオメタライザ110に渡される。ジオメタライザ110はCPU101から送られてくる変換マトリクスで指定された形状デ−タを透視変換し、三次元仮想空間での座標系から視野座標系に変換したデ−タを得る。描画装置112は変換した視野座標系の形状デ−タにテクスチャを貼り合わせフレームバッファ115に出力する。このテクスチャの貼り付けを行うため、描画装置112はテクスチャデ−タROM113及びテクスチャマップRAM114に接続されるとともに、フレームバッファ115に接続されている。なお、ポリゴンデータとは、複数の頂点の集合からなるポリゴン(多角形:主として3角形又は4角形)の各頂点の相対ないしは絶対座標のデータ群をいう。前記図形データROM109には、所定の判定を実行する上で足りる、比較的粗く設定されたポリゴンのデータが格納されている。これに対して、モーションデータROM111には、キャラクタ、トロッコ、背景等の画面を構成する形状に関して、より緻密に設定されたポリゴンのデータが格納されている。
スクロールデータ演算装置107は文字などのスクロール画面のデ−タ(ROM102に格納されている)を演算するもので、この演算装置107の出力信号と前記フレームバッファ115の出力信号とが画像合成装置116により合成され、この合成信号は、さらにD/A変換器117によりデジタル信号からアナログ信号に変換されてディスプレイ1aに入力される。これにより、フレームバッファ115に一時記憶されたキャラクタ、トロッコ、地形(背景)などのポリゴン画面(シミュレーション結果)と必要な文字情報のスクロール画面とが指定されたプライオリティにしたがって合成され、最終的なフレーム画像デ−タが生成される。この画像デ−タはD/A変換器117でアナログ信号に変換されてディスプレイ1aに送られ、ゲ−ムの画像がリアルタイムに表示される。
<地図(面状体)の表示処理>
次に、文字や図形等の付された面状体(地図)を三次元空間座標上に表示する動作について図3〜図5を参照して説明する。
図3は同動作を説明するフローチャートである。図4及び図5は同動作の説明図である。
この実施の形態のゲーム装置において、主人公のキャラクタがトロッコに乗って移動する場面がある。図4及び図5はこの場面を例にとった説明図である。
図4において、トロッコ20が線路21の上を背景23の方向に走行している。この状態は、トロッコ20を停止状態にし、背景23等が図示矢印のように迫ってくるものとして扱ってもよい。トロッコ20にはキャラクタ24(25)が乗っている。キャラクタ24(25)は地図26を広げている。図4においてキャラクタ24(25)をぐるっと回る曲線は後述のカメラの視点の座標が動くときの軌跡である。この曲線上には6つの点が存在し、それぞれ「1」「2」「3」「4」「5」「6」の符合が付されている。この数字の順番にカメラの視点が移動する。すなわち、キャラクタ24(25)を中心として下から上へ行き、さらに下に向かう。図4においてカメラの視点の移動方向は左回りである。
図5において、6つの画面が示されている。これら画面はそれぞれ図5(a)、(b)、(c)、(d)、(e)、(f)である。この順番で画面は変わっていく。また、これら図5(a)〜(f)は、それぞれ図4のカメラの視点1〜6において撮影された画像に相当する。
図5(a)は、トロッコ1の先端をカメラの視点1とした状態で描かれたものであり、トロッコ1が進む方向の線路21、地面22、山等の背景23が映し出されている。このカメラの視点1ではキャラクタ24(25)は映らない。
図5(b)は、キャラクタ24(25)の後ろをカメラの視点2とした状態で描かれたものであり、線路21等に加えてキャラクタ24(25)も映っている。
図5(c)は、キャラクタ24(25)の後ろ上方をカメラの視点3とした状態で描かれたものであり、線路21を走っていくトロッコ20の全景が映っている。
図5(d)は、視点3から少し前に移動した視点4を基準に描かれたものであり、キャラクタ24(25)が地図26を広げているのがわかる。
図5(e)は、視点4からさらに前に、かつ、下方に移動した視点5を基準に描かれたものであり、地図26がさらに拡大表示されている。
図5(f)は、さらに地図26に近づいた視点6を基準に描かれたものであり、画面全体に地図26が現されている。
次に図3のフローチャートに基づき動作について説明する。
まず、CPU101は、ROM102に内蔵しているプログラムに従ってゲームの展開処理を実行している(ステップ301、ステップ302;NO)。
次に、CPU101はゲームの処理が終了して1ステージが終了したと判定すると(ステップ302;YES)、視点移動制御のステップに移行する。視点の座標が所定値以内であるとは、例えば、あるステージをクリアした結果、キャラクタがゲーム上で定義された位置まで進むような場合である。物語的に言えば、キャラクタがさまざまな危機を乗り越えて難所を突破し、再びトロッコに乗り込み移動するような場合である。いわば場面転換の場合である。
まず、CPU101は、カメラの最初の視点の座標をROM102から取り出してRAM103の所定のエリアに格納する(ステップ303)。
ついで、CPU101は、RAM103に記憶した最初の視点の座標を基にキャラクタや背景等の表示データを画像処理する(ステップ304)。
次に、CPU101は、ROM102内に記憶された視点の座標が所定値以内であるときには(ステップ305;YES)、地図を折り畳んだ状態で表示する画像処理を行う(ステップ306)。このステップ306の処理の結果、図4に示すように、カメラの視点の座標はキャラクタ25(26)の前面に位置する視点「1」になる。また、この視点「1」から見た表示画面は、図5(a)に示すように、トロッコ20の先端部分と、線路21や地面22や背景23から構成される。そして、これらがディスプレイ1a上に表示される。
そして、CPU101は、カメラの最終座標位置に達したか否かを判定する(ステップ307)。この場合には、当然達していないので(ステップ307;NO)、RAM103の所定のエリアに格納されているカメラの視点の座標を更新し(ステップ308)、再び、ステップ304の処理に移行する。
このような処理(ステップ304〜308)を繰り返していくと、カメラの視点の座標が、図4に示すように、キャラクタ24(25)の後面に位置する視点「2」になる。この視点(「2」)から見た表示画面は、図5(b)に示すように、トロッコ20と、これに乗ったキャラクタ24(25)と、線路21や地面22や背景23とから構成される。そして、これらがディスプレイ1aに表示される。
このような処理(ステップ304〜308)をさらに繰り返していくと、カメラの視点の座標が、図4に示すように、キャラクタ24(25)の後面のはるか上に位置する視点「3」になる。この視点(「3」)から見た表示画面は、図5(c)に示すように、トロッコ20と、これに乗ったキャラクタ24(25)と、線路21や地面22とから構成される。そして、これらは、上空から見た様な状態で、ディスプレイ1aに表示される。
なお、このような処理(ステップ304〜308)を繰り返していく途中で、カメラの視点の座標が、図4の「4」に達する前に、RAM103の所定のエリアに格納された視点の座標が所定値を超えたとCPU101によって判断されたものとする(ステップ305;NO)。すると、CPU101は、地図26を折り畳んだ状態から徐々に広げるように表示される画像処理を実行する(ステップ309)。この処理は、例えば、地図を構成するポリゴンの座標の2点を共通にし、他の各2点をこのステップを通過する毎に更新するような画像処理を行っている。これによって、本状になっている地図が、閉じられた状態から徐々に開かれた状態に表示される。したがって、このステップを通過する毎に、本のようになっている地図が開かれていき、完全に開いた状態に達したところで、以後ポリゴンの座標の更新を行わないようになっている。
同様に、このような処理(ステップ304〜305、309、307、308)を繰り返していくと、カメラの視点の座標が、図4に示すように、キャラクタ24(25)の後面の斜め上に位置する視点「4」に達する。この視点(「4」)から見た表示画面は、図5(d)に示すように、拡大されたトロッコ20と、これに乗ったキャラクタ24(25)の上半身と、これら上半身の間から見える開かれた地図26と、線路21や地面22や背景23とから構成される。そして、これらがディスプレイ1aに表示される。
再び、ステップ304〜305、309、307、308の処理をCPU101が繰り返していくと、カメラの視点の座標が、図4に示すようにキャラクタ24(25)の真上に位置する視点「5」に達する。この視点(「5」)から見た表示画面は、図5(e)に示すように、トロッコ20の一部と、これに乗ったキャラクタ24(25)の拡大上半身と、拡大上半身の間から見える拡大された地図26とから構成される。そして、これらがディスプレイ1aに表示される。
さらに、ステップ304〜305、309、307、308の処理をCPU101が繰り返していくと、カメラの視点の座標が、図4に示すように、キャラクタ24(25)の前面に位置する視点「6」に達する。この視点(「6」)から見た表示画面は、図5(f)に示すように、完全にディスプレイ1aの画面一杯に拡大された状態の地図26そのものから構成される。そして、これらがディスプレイ1aに表示される。この場合、CPU101は、視点座標が最終値に達したと判断し(ステップ307;YES)、前記地図26を見ながら次のステージの前処理を実行し(ステップ310)、再び、ゲーム処理に移行する(ステップ301)。
ところで、遊技者が必要とする図、文字、数値等の情報がポリゴンで構成される地図26に書き込まれている。したがって、遊技者は必要な情報を得るために特別の地図を表示させる必要もない。ゲーム画面上のキャラクタに地図を広げさせることにより必要な情報を得ることができる。従来はコマンドで、あるいは自動的に必要な地図を、ゲーム画面に代えて別画面表示体として表示させていた。
以上のように、この発明の実施の形態によれば、地図26をゲーム画面上のキャラクタに広げさせるという動作をさせるとともに、この地図26をカメラワーク(視点の移動)による「のぞき込む」という状態でディスプレイ1aに表示するので、画面を切り換えて表示することを避け、ゲームの流れの中断を防止できる。すなわち、ゲーム空間内のオブジェクトに、遊技者の状態、ゲーム全体での立場など遊技者が必要とする情報を書き込み、カメラワークを利用して、その情報をゲーム内のキャラクタ24(25)との関連で表示することにより、必要な情報の提供とゲーム画面の継続を同時に実現することができる。このことにより遊技者はゲームをプレイ中であるという意識を起こすことなく、あたかもキャラクタと一体となって冒険しているような気持ちになり、ゲームに対する没入感が増すことになる。
なお、カメラ視点の位置はキャラクタの回りを一周回る必要はなく、例えば、地図26の表示は、例えば、視点「5」の部分で停止するようにしてもよい。また、カメラ視点の位置は、図4の点1〜6を順々にたどってもよいし、この逆の順序でたどってもよいし、あるいはばらばらの順番でたどってもよい。また、カメラ視点の位置はこれらの点の間を連続的に動いていってもよいし、点1〜6の点上のみを移動してもよい。また、カメラ視点の位置は、図4のように垂直面内を動いていってもよいし、あるいは水平面内を動いていってもよい。また、映画の撮影の際のようにカメラを左右あるいは上下にゆっくり振ってパンしたり、ズームしたりしてもよい。要するに、ゲーム画面を中断することなく、連続的に必要な地図、説明文、図表等の情報源に画面表示を徐々に切り替えるようにすればよい。そのときに周囲の風景やキャラクタを含めて表示するようにしてもよい。
上記説明において、トロッコの走行シーンを例にとり説明したが、このような移動のシーンに限らないのは言うまでもない。他にも、ステージをクリアしたときとか、休憩をとるときとか、装備を選択するときにも適用できる。要するに、画面転換あるいは一時的な中断を必要とするいかなるシーンにも適用できる。
<視点決定の動作>
次に、図6〜図10を参照してこのゲーム装置における視線決定の動作について説明する。
ここで、図6は同動作のフローチャートである。
図7〜図9は同動作の説明図である。
図10はカーブの曲率に応じて視線決定の取り方を説明するための図である。
以下の説明は上記の場合と同じように、キャラクタがトロッコ20に乗って移動している場合を例にとり説明する。図6に示すフローチャートは、CPU101がゲームのプログラムを処理している途中で、主人公のキャラクタの乗ったトロッコ20がカーブに差しかかったときに入るものとする。
このフローチャートに入ると、CPU101は、トロッコ20の現在のポイントq20の座標を取り込む(ステップ401)。すなわち、図7(a)に示すように、トロッコ20の現在のポイントq20の座標(X,Y,Z)がCPU101に取り込まれる。
次に、CPU101は、予め定められた距離設定値αに従って、トロッコ20の現在の座標から距離設定値αだけ離れた、軌道上の前側のポイントq21の座標を取り込む(ステップ402)。ここに、符号αはトロッコ20の現在のポイントに対して前後所定距離離れたポイントの座標を得るための距離設定値であり、例えばRAM103の所定のエリアに格納されている。そして、CPU101はこの距離設定値αを基にトロッコ20の前後の座標を取り込む。
次に、CPU101は、前記距離設定値αを用いて、トロッコ20の現在の座標の後ろ側に距離設定値αだけ離れたポイントq22の座標を取り込む(ステップ403)。これにより、トロッコ20の現在の座標の前後等距離のポイント(位置)q21、q22の座標が取り込まれたことになる。
次に、CPU101は、ステップ402、403で得た各座標を直線で結ぶ計算処理を行う(ステップ404)。これは、図7(b)に示すように、ポイントq21とポイントq22とを直線Nで結んだ処理を行ったことに相当する。
ところで、ポイントq21、q22の座標は既知であるから、CPU101は、前記ステップ404の計算で直線Nの長さを求めることができる。この直線Nの長さからカーブの角度を判定することができる。例えば、図8(a)に示すように、カーブの角度が鈍角である場合には、ポイントq21,q22の間の直線Naは大きくなる。ちなみにポイントq20、q21、q22が直線上にあるときに直線Naの長さは最大値2αをとる。一方、図8(b)に示すように、カーブの角度が鋭角に近くなればなる程、ポイントq21,q22を結ぶ直線Nbは小さくなる。つまり、θa>θbのときNa>Nbである。なお、θ=90°のときの直線の長さN(90°)は予め計算できるから(N2=2α2)、このN(90°)を基準として鈍角か、鋭角かを判定できる。
そこで、CPU101は、ステップ404で得た直線の距離Nの値を判定する(ステップ405)。ここで、図8(a)に示すように、直線Naが長いときに、CPU101は、カーブの角度が鈍角であるとして距離設定値αを標準値に設定し、RAM103に格納する(ステップ407)。一方、図8(b)に示すように、直線Naが短いときに、CPU101は、カーブの角度が鋭角であるとして距離設定値αを小さい値に設定し、RAM103に格納する(ステップ406)。このようにカーブの角度が鋭角か、鈍角かに応じて距離設定値αを切り替えるのは、トロッコ20の線路21が急にカーブしている場所でも、カーブに沿って自然にカメラの向きを変えるようにするためである。
そして、CPU101は、前記ステップ404で求めた直線Nを図7(b)のように平行移動して現在のポイントq20に適用し、これをカメラの向きFとして例えばRAM103の所定のエリアに格納する(ステップ408)。
これらの処理ステップ401〜408を繰り返すことにより、カーブに沿って滑らかにカメラ視線を変えることが可能である。例えば、図9に示すように、ポイントq10におけるカメラの向きF10で、視野がG10となる。また、ポイントq20ではポイントq21,q22からカメラの向きをF20とし、視野がG20となる。また、ポイントq30ではポイントq31,q32からカメラの向きをF30とし、視野がG30となる。図9から明らかなように、視野が互いにその一部を重ねあわせながら変わって行く。ちなみに、図24の従来の場合では視野の重複部分はほとんどなく、ポイントが変わるたびに表示される画面が大きく振られていた。この実施の形態の処理によれば図9のように視野Gが滑らかに推移してゆくことが分かる。
なお、角度に応じて距離設定値αを可変しているので、例えば図10(a)に示すように、緩やかなカーブのときには距離設定値αの間隔を大きくとり、図10(b)に示すように、急なカーブのときには距離設定値αの間隔を小さくとることができる。直線Nの計算を何回くり返すかに関しては、図10(a)の場合は比較的少なく、図10(b)の場合は比較的多い。したがって、角度に応じて距離設定値αを可変することにより、CPU101の負担を軽減しつつ最適な処理が可能になる。
なお、距離設定値αを小さくすればするほどカーブにより忠実にカメラ視線を定めることができるが、CPU101の負担は大きくなる。一方、αを大きくすればするほどカメラ視線の動きは滑らかでなくなるものの、CPU101の負担は小さくなる。したがって、実際にαを定めるにあたっては、これら2つの条件を勘案して定める。予め最も急なカーブがわかっているなら、このカーブを基準に不自然でない最少のαを定め、カーブがゆるくなるに従って徐々にαを大きくしていく。例えば、一定の増分Δαを定めておき、カーブの半径が増えるに伴いn・Δα(nは整数)を加算するようにすればよい。なお、αを非常に小さくすれば、ある一点(例えばポイントq20)における曲線の接線の方向が得られる。もっとも、デジタル処理においては曲線も連続でなく、離散的に表現されるから、その間隔より小さくする必要はない。
この実施の形態によれば、トロッコの前後の線路上に2つのポイントをとり、これら2つのポイントに基づきカメラ視線を決定するようにしたので、カーブ時に視点の移動(カメラの向きF)が大きく動くことがなく、自然な動きを生み出すことができる。また、カーブ時に感じる物体の重さの表現が可能となる。さらに、現在座標ポイントの前後のポイントから視点の方向を決定しているので、視点の進行が逆になっても対応できる。加えて、二つのポイントの間隔の設定が調整可能になっているので、視点の振り幅の調節が可能である。また、二つのポイントを結ぶ直線Nによりカーブの角度を判定できるので、モーションデータに直接反映させることができる。
なお、上記の処理の適用はトロッコが線路上を移動する場合に限られない。例えば、車がカーブしたり、飛行機が上昇あるいは下降したりする場合にも適用できる。また、曲線は必ずしも滑らかである必要もなく、例えば、複数の直線が接続された線についても適用可能である。要するに、上記処理は、一定の規則により画面表示の基準方向を定める場合に適用できる。
また、画面表示の基準方向を定めるにあたって、他の方法、例えば直線を平行移動することなく、直線の角度情報に基づきカメラの向きを定めるようにしてもよい。あるいは、曲線に対応して予め求められた方向情報(角度情報)に基づき、直線を求めることなく処理を行うようにしてもよい。
また、直線Nを算出する点は、必ずしも、軌道上の移動体を挟む2点である必要はなく、移動体の現在の位置情報と移動体がこれから通過する点の位置情報(例えば、少し前の点とずっと前の点)としても良い。
<川の流れを表現する座標処理の動作>
図11はこの実施の形態の川の流れを説明するためのフローチャートである。図12はポリゴンと各座標の関係を説明するための説明図である。図13はテクスチャの座標系の説明図であり、横軸にu、縦軸にvがとってある。川を表す画像は、uvの各方向に連結された複数のポリゴンによって表されている。図14は、この処理によって表現される川の流れを示す説明図である。
川の流れを表現するためには次のようにする。図12に示されるように、複数のポリゴンPG1、PG2、…を連続に接続してなるポリゴンPGMにより、川に相当する部分を構成する。次に、各ポリゴンPG1、PG2、…に水の流れに見えるテクスチャをそれぞれ貼付ける。そのテクスチャ座標を時間の経過に応じて川の流れる方向に変化させる。これにより、川の流れを表現できる。
この実施の形態では、図12に示すように、各ポリゴンPG1、PG2、…に、テクスチャ座標の基準となる曲線(ポリゴンの列方向と同数)K1,K2,…を
用意しておく。なお、この図に示されたポリゴンPG1、PG2、・・・は縦横に連結された複数のポリゴンのうちの一部を示している。したがって、ポリゴンPG1,PG2の横方向においても、図示されていないポリゴンが連結されている。
ここで、川の流れを表現する処理にCPU101が移行したとする。これにより、CPU101は図11のフローチャートを処理することになる。まず、CPU101は、各ポリゴンPG1に用意されているテクスチャ座標の基準となる基準ベクトルK1を読み込む(ステップ501)。基準ベクトルは、予め定められた川の経路(曲線)に基づき、横方向(川の流れる方向に直交する方向)のポリゴン列毎に定められている。例えば、ポリゴンPG1を含むポリゴン列の基準ベクトルK1、ポリゴンPG2を含むポリゴン列の基準ベクトルK2がそれぞれ決定されている。基準ベクトルは川の流れを示す。
次に、CPU101は、この基準ベクトルK1を使用してテクスチャ座標を計算する(ステップ502)。この計算は例えば次のようにする。図12のポリゴンPG1において、例えば基準ベクトルK1に平行な線分をL1,L3,L4とし、基準ベクトルK1に直交する線分をL2,L5,L6とする。すると、ポリゴンPG1の頂点p1、p2、p3、p4のテクスチャ座標は、
p1=(u,v)
p2=(p1.u+L2,p1.v+L3)
p3=(p2.u+L4,p2.v+L5)
p4=(p1.u+L6,p1.v+L1)
から求められる。ここで、p1.uはp1のu成分を、p1.vはp1のv成分を意味する。この変換により、テクスチャ座標とポリゴンPG1、PG2、・・・の座標とを対応づけることができる。
このような計算をした後に、CPU101は、全ポリゴンを終了したか判断する(ステップ503)。
ここでは、まだ終了していないので(ステップ503;NO)、次のポリゴンPGの計算ができるように、ポリゴンPGの添字の数を更新し(ステップ504)、再びステップ501の処理に戻る。
このステップ501〜504の処理によって、予め定められた基準ベクトルに従い各テクスチャを移動させることにより、川の流れを表す画像を得ることができる。
この実施の形態では、テクスチャマッピングを施したポリゴンで、流れる水のような表現を行うときに、図14に示すように、ポリゴン51,52,…におけるテクスチャ61,62,…の密度が変化することなく、かつ川の流れに沿う形で水が流れるように表現されるので、自然な水の流れを再現することが可能になる。
すなわち、川の流れに沿った基準ベクトルに基づき、テクスチャ座標で表現されたマッピングデータを川の流れを示すポリゴンへ写像することにより、川の流れを表現するためのテクスチャを川の流れの形状にあわせて適切に変形することができる。したがって川の流れを自然に表現することができる。
ところで、基準ベクトルK1、K2、・・・は、ポリゴンPG1、PG2、・・・ひとつひとつに対応する。基準ベクトルはそのポリゴンにおける川の流れの基準となる。基準ベクトルは、例えば辺に対して垂直である線とか、辺の中点を結ぶ線のようにポリゴンの形状から定められることもある。また、川の流れる方向が予め決まっているときは、この流れを示す曲線に基づきポリゴンごとに基準ベクトルを定めるようにしてもよい。
また、テクスチャ座標とポリゴンとの間の変換式は上記の例に限らず、他の変換式を用いてもよい。例えば、ポリゴンの辺と基準ベクトルとのなす角度に基づき変換するようにしてもよい。
なお、上記の例において川の流れを表現する場合を例にとり説明した。この実施の形態は他の流れを表現する場合について適用することができる。
<画面移動処理の動作>
図15は同実施の形態の画面移動処理について説明するためのフローチャートである。図16は同画面移動処理について説明図である。図17は同画面移動処理について説明図である。
この実施の形態では、対話型コンピュータグラフィクスを使用して表示を行っている。この表示に、陰面消去のためにZバッファ法を使用する場合は、Z方向の表示範囲内で最大の大きさの物体を用意する。また、この表示にZソート法に使用する場合は、他の物体と比較して十分大きな物体を用意する。
例えば、Zバッファ法に使用した場合、図17の(a)に示すように、視点69の表示範囲Gの中では最大の物体は物体71であるので、これを移動できるようにしておく。物体71は、例えば、山岳、天体とか空などの背景である。なお、同図中の符号72、73、74・・・は、背景の手前にある各種物体を表している。
まず、CPU101はゲームの展開処理を実行し(ステップ601)、視点移動がなければ(ステップ602;NO)、再びステップ601の処理に移行する。例えば、このとき図17(a)で示される状態にある。
次に、例えば、図17(b)のように、視点69が移動すると(ステップ602;YES)、CPU101は移動後の現在の視点の座標を取り込む(ステップ603)。
次に、CPU101は、前回取り込んでおいた以前の視点の座標をRAM103の所定のエリアから取り出すとともに、今回の座標をRAM103の所定のエリアに書込み、かつ、今回取り込んだ座標との差引計算を実行する(ステップ604)。
CPU101は、この計算結果が所定の値以上でないと判断したときには(ステップ605;NO)、ステップ601の処理に戻る。移動距離があまり大きくないときは遠方の物体71の見えかたがあまり変化しないからである。このステップ601のしきい値は、物体71までの距離などに基づき遊技者に違和感を与えない範囲で定められる。
また、CPU101は、この計算結果が所定の値以上であると判断したときには(ステップ605;YES)、所定の物体71の座標を読み込む(ステップ606)。
ついで、CPU101は、前記計算結果を基に所定の物体71の座標を変更する(ステップ607)。例えば、視点69が物体71に対して近づいた距離と同じ距離だけ、物体71を遠ざけるようにする。このとき、図17(b)のように物体71と物体72とが離れ、これらの間が不連続になることがあるが、物体71は非常な遠景であるからさほど違和感は生じない。
そして、CPU101は、再び、この座標をRAM103の所定のエリアに格納する(ステップ608)。その後、CPU101は、再び、ステップ601の処理に移行する。
このように、この実施の形態では、図17(b)に示すように、視点69が移動すると、これに伴って背景70は当然のこと、物体71も移動することになる。したがって、視点移動に伴う見え方の変化を防ぐことができる。
すなわち、天体や青空などの無限遠にある物体、巨大な物体、光学現象といった距離のない物の表現を行う際でも、違和感を生じない。この方法は、特に、処理の高速化のために、物体の奥行きを表現するためのZバッファを整数で表現する場合において有効である。従来、このような場合は無限遠にある物体の奥行き表現のための特別な処理が必要であったが、この実施の形態によればそのような処理は不要になる。したがって、ハードウエア上の制約が緩和される。
なお、図16に示すように、星空等の表現を施した表示範囲での最大の大きさの球76を形成し、この球76の中心に視点69が位置するようにし、かつ視点の移動に伴って当該中心を移動させるようにしてもよい。この球76の位置は、視点69の移動とともに変化する。この球76の半径は、Zバッファ法を用いた場合はZ方向の表示範囲内で最大の大きさである。Zソートを用いた場合は他の物体と比べて十分な大きさの物体を用意し、その物体の位置を視点の移動と同じ距離に移動させることにより、無限遠にある天球等の表現を行う。また、球76に代えて円筒形の無限遠背景画像を用いても良い。
このようにすると、例えば視点69の位置は変更しないが、仰ぎ見たり、振り返ったりしても、その向きに対応する適切な星空等の背景を常に得ることができる。従来はこの種の背景として表示画面に張り付いた背景画面を容易することがあったが、この場合、どの方向を見ても表示が変わらず不自然であった。
<ポリゴン数制限の説明>
図18は同実施の形態のポリゴン数制限の動作のフローチャートである。図19は同実施の形態の説明図である。図20は、同実施の形態の説明図である。
この実施の形態では、まず、キャラクタ24、25等を構成するポリゴンと、エネミー等を構成するポリゴンと、背景等を構成するポリゴンに、それぞれ制限値が設けられている。この実施の形態では、図19に示すように、キャラクタ24、25等を構成するポリゴンの制限数R1を設定したバッファ81と、エネミー等を構成するポリゴンの制限数R2が設定されたバッファ82と、背景等を構成するポリゴンの制限数R3が設定されたバッファ83とを備えている。このバッファ81〜83は例えばRAM103に設けてもよい。これらの制限数R1〜R3はROM102に格納されており、動作立ち上げ時に制限数R1〜R3をバッファ82、83に格納する。
次に動作について図18のフローチャートに基づき説明する。
CPU101は、ゲームの展開処理を実行する(ステップ701)。これにより、CPU101は、バッファ81からポリゴンの制限数R1を読み込む(ステップ702)。ついで、CPU101は、これを必要なキャラクタに割りつける(ステップ703)。CPU101は、その割りつけられたポリゴン数を超えないようにしてキャラクタを作成する(ステップ704)。
次に、CPU101は、バッファ83からポリゴンの制限数R3を読み込む(ステップ705)。ついで、CPU101は、これを必要な背景に割りつける(ステップ706)。CPU101は、その割りつけられたポリゴン数を超えないようにして背景を作成する(ステップ707)。
そして、CPU101はエネミーの出現があるか否かを判断する(ステップ708)。エネミーの出現がない場合(ステップ708;NO)、CPU101は、再びステップ701の処理に移行する。このようにステップ701〜708までの処理を実行すると、表示画面は、例えば、図20(a)に示すようになる。図20(a)には、トロッコ20と、これに乗ったキャラクタ24,25と、線路21、地面22、背景23が表現されている。
さらに、エネミーの出現がある場合(ステップ708;YES)、CPU101は、再びステップ709の処理に移行する。ステップ709では、CPU101は、バッファ82からポリゴンの制限数R2を読み込む(ステップ709)。ついで、CPU101は、これを必要なエネミーに割りつける(ステップ710)。CPU101は、その割りつけられたポリゴン数を超えないようにしてエネミーを作成する(ステップ711)。このようなステップ708〜711が処理されると、表示画面は、例えば、図20(b)に示すようになる。図20(b)には、トロッコ20と、これに乗ったキャラクタ24,25と、線路21、地面22、背景23等と、側面からピストルでねらうエネミー27が表現されている。
従来は、エネミー27、背景23等のポリゴンの総数を管理していたため、数多くのエネミー27の出現により背景23のポリゴンが欠落するという問題が生じていた。ところが、本実施の形態によれば、エネミー27、背景23のそれぞれのポリゴンの上限を個別に管理しているため、エネミー27が数多く出現したとしても、背景23のポリゴンが欠落することはない。
<視野角の説明>
図21は、同実施の形態による視野角の変更動作を説明するためのフローチャートである。
図21において、CPU101は、ROM102からのプログラムを基にゲーム展開の動作を実行する(ステップ801)。視野角は、ゲーム展開で変化し、かつ、予め決まっている。そこで、そのゲーム展開からCPU101は、視野角の判断を行う(ステップ802)。CPU101は、ゲーム処理中で例えばトロッコ20が原野等を走っていて、視野角が大ならば(ステップ802;大)、視野角を大に設定する(ステップ803)。CPU101は、ゲーム処理中で例えば山やビル等の間を走行していて、視野角が中位ならば(ステップ802;中)、視野角を中に設定する(ステップ804)。また、CPU101は、ゲーム処理中で例えばトンネル内を走行していて、視野角が小さいならば(ステップ802;小)、視野角を小に設定する(ステップ805)。
したがって、CPU101は、次のステップ806で、設定された視野角を読みだして視野角の処理を実行する(ステップ806)。
これにより、例えばトンネル内をトロッコ20が走行中では視野角が著しく小さくなり遠くを表示する。山中等を走行中では視野角を中位に設定する。また、平原等を走行中では、視野角が大きくなる。このような視野角の変化は、人間の視覚特性に合致したものであるため、現実感溢れるゲーム画面を提供することが可能となる。