(57)【特許請求の範囲】
【請求項１】
仮想的に設定した仮想空間に存在する障害物の形状データを記憶する形状データ記憶手段と、
遊戯者が操作し且つ前記仮想空間に存在する被写体の位置データを特定する位置データ特定手段と、
前記障害物の形状データ、前記特定された被写体の位置データ、及び視点の位置データと、該障害物に与えられたベクトルと該視点から該被写体に向けられたベクトルとの成す角度と、に基づいて、該視点から見たときに、前記被写体が前記障害物に隠れる位置にあるか否かを判定する判定手段と、
前記判定手段において、前記被写体が前記障害物に隠れる位置にあると判定された場合に、前記障害物に対して所定の透過処理が施された仮想画像を生成する画像生成手段と、
を備えたゲーム装置としてコンピュータを機能させる方法。
【請求項２】
前記判定手段は、
前記障害物又は被写体の画像表示用のポリゴンデータとは別個に用意された重なり判定用の形状データを使用して、前記被写体が前記障害物に隠れる位置にあるか否かを判定するものである、
請求項１記載のコンピュータを機能させる方法。
【請求項３】
前記判定手段は、
前記視点から前記被写体へ向かう方向と、前記障害物から該被写体へ向かう方向と、に基づいて、前記被写体が前記障害物に隠れるか否かを判定する処理を実行するものである、
請求項１又は２記載のコンピュータを機能させる方法。
【請求項４】
前記判定手段は、
前記視点から前記被写体へ向かう第１のベクトルと、前記障害物から該被写体へ向かう第２のベクトルと、該第１のベクトルと第２のベクトルとが成す角度とを計算し、該角度に基づいて、前記被写体が前記障害物に隠れるか否かを判定する処理を実行するものである、
請求項１〜３のいずれか１項に記載のコンピュータを機能させる方法。
【請求項５】
前記判定手段は、
前記被写体に予め設定した第１基点と所定の地点との第１の変位と、前記障害物に予め設定した第２基点と所定の地点との第２の変位とを計算し、該第１の変位と第２の変位との大小関係に基づいて、前記被写体が前記障害物に隠れるか否かを判定する処理を実行するものである、
請求項１〜４のいずれか１項に記載のコンピュータを機能させる方法。
【請求項６】
前記画像生成手段は、
前記所定の透過処理として、前記視点から見たときに、前記被写体と前記障害物とが重なる部分に応じた所定のパターンを作成し、該パターンにしたがって、前記障害物を表示するための画素の代わりに前記被写体を表示するための画素を表示する処理を実行するものである、
請求項１〜５のいずれか１項に記載のコンピュータを機能させる方法。
【請求項７】
前記画像生成手段は、
前記所定の透過処理として、前記所定のパターンを作成し、該パターンにしたがって、前記障害物を表示するための画素と前記被写体を表示するための画素とを交互に並べて表示する処理を実行するものである、
請求項６に記載のコンピュータを機能させる方法。
【請求項８】
前記画像生成手段は、
前記所定の透過処理として、前記視点から見たときに、前記障害物に隠れた前記被写体の部分が認識できるように、前記障害物を表示するための画素の色情報に演算を施す処理を実行するものである、
請求項１〜５のいずれか１項に記載のコンピュータを機能させる方法。
【請求項９】
前記判定手段は、
前記角度として、前記第１のベクトルと前記第２のベクトルとが成す角度のうち、内側の小さい値の角度を用い、該角度が所定の基準角度以内であるときに、前記被写体が前記障害物に隠れると判定する処理を実行するものである、
請求項４記載のコンピュータを機能させる方法。
【請求項１０】
前記判定手段は、
前記第１の変位として、所定の座標平面から前記第１基点までの距離を用い、前記第２の変位として、前記所定の座標平面から前記第２基点までの距離を用いて、前記被写体が前記障害物に隠れるか否かを判定する処理を実行するものである、
請求項４記載のコンピュータを機能させる方法。
【請求項１１】
前記判定手段は、
前記視点から見て前記障害物が前記被写体の前方にあるか否かを判定し、該判定において該障害物が該被写体の前方にあると判定された場合に、該被写体が仮想地平面に対して成す高さよりも該障害物が高いか否かを判定するものであり、
前記画像生成手段は、
前記判定手段において、前記被写体が仮想地平面に対して成す高さよりも前記障害物の方が高いと判定された場合に、前記障害物に対して前記所定の透過処理が施された仮想画像を生成するものである、
請求項１〜１０のいずれか１項に記載のコンピュータを機能させる方法。
【請求項１２】
前記被写体は、前記遊戯者の操作するオブジェクトである、
請求項１〜１１のいずれか１項に記載のコンピュータを機能させる方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はゲーム装置、シミュレータ等に用いる仮想画像の生成技術に係り、特に仮想的に生成した３次元空間（以下「仮想空間」という。）に存在する物体を、所定の視点に対応する２次元平面に投影（透視投影）した際に得られる画像（以下「仮想画像」という。）の生成技術に関する。
【０００２】
【従来の技術】
近年、３次元空間を移動する移動体（オブジェクト）の間で対戦を行うことが可能な仮想画像生成装置を搭載したゲーム装置やシミュレータが開発されている。これら仮想画像生成装置は、一般に、予め記憶したプログラムを実行するコンピュータ装置を内蔵した仮想画像生成装置本体と、画面上に表示するオブジェクトの仮想画像内での移動を指令する操作信号をコンピュータ装置に供給する入力装置と、コンピュータ装置により生成されたプログラム展開に対応する仮想画像を表示するディスプレイと、そのプログラム展開に伴う音響を発生する音響装置とを備えている。
【０００３】
上記のような構成のゲーム装置の例として、操作者自らが操作するオブジェクト（ロボット、人間等）と対戦相手である敵のオブジェクトとが、仮想空間内に設定された地形（以下「仮想地形」という。）を利用して対戦するストーリーをテーマとしたものがある。このゲーム装置の操作者に操作される各オブジェクトは、互いに仮想地形の一部として設けられた障害物等の陰に隠れながら、相手の隙を見て弾を撃つ等の攻撃を加える。
【０００４】
これら仮想空間内の動きを３次元表示するためには、所定の視点から仮想空間を観察した際に認識される画像を用いる。そのため、仮想空間の座標系を所定の視点から透視し、視点の前面の２次元平面に投影する透視投影のための座標変換を行う。多くの場合、操作者に自己の操作するオブジェクトを認識させるために、仮想画像の視点からの視線は自己のオブジェクトに向けられる。自己の操作するオブジェクトは被写体としてディスプレイのほぼ中央に表示されるようになる。
【０００５】
【発明が解決しようとする課題】
しかしながら、仮想画像の視点は自己のオブジェクトと一定の位置関係を有しながら移動するため、時として自己のオブジェクトを観察する視線の間に障害物が入り込む場合がある。かかる場合、自己のオブジェクトは障害物に隠されるので、自己のオブジェクトの動きが認識できなくなり操作が行えなくなるという問題があった。自己のオブジェクトが操作できなければ、ゲーム展開における緊張感が減殺され、ゲームの面白さを損なってしまう。
【０００６】
このようなケースを図６を参照して説明する。被写体Ｒ’を当該仮想画像の視点となる仮想的なカメラＣ’が観察すると、同図（Ａ）に示すように、視線を障害物Ｏが遮ってしまう位置関係となる場合が生ずる。視線が遮られると、生成された仮想画像は同図（Ｂ）のように、被写体Ｒが障害物Ｏに隠されて表示されるものとなる。このため、操作対象たる被写体Ｒ’をどのように操作すればよいのか、操作者は判断できなくなるのである。
【０００７】
かかる事態を回避するためには、
（１）障害物を表示しない、
（２）障害物を最初からワイヤーフレームで表示する、
等の方法が考えられる。
【０００８】
しかし、（１）このような方法を採ると、自己のオブジェクトの認識はできても障害物が認識できなくなるため、新たな問題が生ずる。（２）のような方法を採ると、障害物の認識は一応可能であるが、被写体Ｒが障害物Ｏに隠されていない場合でも、障害物がワイヤーフレームによって表示されるため、ゲーム等の雰囲気を損ねるおそれがある。
【０００９】
このような問題を解決するために、本願発明は、上記（１）及び（２）の手段をとることなく、しかも、ゲーム等の雰囲気を損なわない仮想画像生成装置を提供することを目的とする。本願発明の第２の目的は、仮想空間において被写体が物体に重なって表示され得るか否かを正確に判定し、さらに被写体及び物体をとも好適に認識し得る透過処理をする仮想画像生成装置及びその方法を提供することにある。
【００１０】
【課題を解決するための手段】
このような目的を達成するために、この出願に係わる発明は、仮想的に設定した仮想空間（例えば、ワールド座標系で示される空間）内において仮想空間に存在する被写体（操作者の操作するロボット、飛行機等のオブジェクト）を所定の視点（仮想空間の上下関係から見て被写体の斜め上方等）から観察した際に得られる仮想画像（ゲーム画像、シミュレーション画像等）を生成する仮想画像生成方法であって、仮想空間に存在する物体（仮想的な地形、障害物、地面の凹凸等）に関する形状データ（ポリゴンデータ、形状の位置を特定するデータ、面データ等）と被写体の位置データ（座標データ等）とに基づいて、所定の条件が成立するか否かを判定し、例えば、視点と被写体との間に物体が視点から重なって観察されるか否かを判定し、被写体と物体とが所定の重なり状態であると判定したときには物体に所定の透過処理（メッシュ処理、半透明処理、物体をワイヤーフレームによって構成する等）した仮想画像を生成し、被写体と物体とが所定の重なり状態以外の状態であると判定したときには物体の透過を行わない非透過処理（通常のテクスチャデータの貼り付け処理等）した仮想画像を生成する。
【００１１】
すなわち、本発明によるコンピュータを機能させる方法は、仮想的に設定した仮想空間に存在する障害物の形状データを記憶部に記憶する形状データ記憶手段と、遊戯者が操作し且つ仮想空間に存在する被写体（遊戯者の操作するオブジェクトであってもよい）の位置データを演算部で特定する位置データ特定手段と、障害物の形状データ、特定された被写体の位置データ、及び視点の位置データと、障害物に与えられたベクトルと視点から被写体に向けられたベクトルとの成す角度とに基づいて、視点から見たときに、被写体が、障害物に隠れる位置にあるか否かを判定する判定手段と、判定手段において、被写体が、障害物に隠れる位置にあると判定された場合に、障害物に対して所定の透過処理が施された仮想画像を生成する画像生成手段とを備えるゲーム装置としてコンピュータを機能させる方法である。
【００１２】
また、判定手段は、障害物又は被写体の画像表示用のポリゴンデータとは別個に用意された重なり判定用の形状データを使用して、被写体が障害物に隠れる位置にあるか否かを判定するものであると好ましい。或いは、判定手段は、視点から被写体へ向かう方向と、障害物から被写体へ向かう方向とに基づいて、被写体が障害物に隠れるか否かを判定する処理を実行するものであっても好ましい。
【００１３】
さらに、判定手段は、視点から被写体へ向かう第１のベクトルと、障害物から被写体へ向かう第２のベクトルと、第１のベクトルと第２のベクトルとが成す角度とを計算し、その角度に基づいて、被写体が障害物に隠れるか否かを判定する処理を実行するものであっても好適である。この場合、その角度として、第１のベクトルと第２のベクトルとが成す角度のうち、内側の小さい値の角度（内角）が、所定の基準角度以内であるときに、被写体が障害物に隠れると判定する処理を実行すると一層好ましい。
【００１４】
またさらに、判定手段は、被写体に予め設定した第１基点と所定の地点との第１の変位と、障害物に予め設定した第２基点と所定の地点との第２の変位とを計算し、第１の変位と第２の変位との大小関係に基づいて、被写体が障害物に隠れるか否かを判定する処理を実行するものであってもよい。この際、第１の変位として、所定の座標平面から第１基点までの距離を用い、第２の変位として、所定の座標平面から第２基点までの距離を用いて、被写体が障害物に隠れるか否かを判定する処理を実行するとさらに好ましい。
【００１５】
また、画像生成手段は、所定の透過処理として、視点から見たときに、被写体と障害物とが重なる部分に応じた所定のパターンを作成し、そのパターンにしたがって、障害物を表示するための画素の代わりに被写体を表示するための画素を表示する処理を実行するものであると好ましい。
【００１６】
この場合、そのパターンにしたがって、障害物を表示するための画素と被写体を表示するための画素とを交互に並べて表示する処理を実行するとより好ましい。
【００１７】
或いは、画像生成手段は、所定の透過処理として、視点から見たときに、障害物に隠れた被写体の部分が認識できるように、障害物を表示するための画素の色情報に演算を施す処理を実行するものであっても好適である。
【００１８】
加えて、判定手段は、視点から見て障害物が被写体の前方にあるか否かを判定し、その判定において障害物が被写体の前方にあると判定された場合に、被写体が仮想地平面に対して成す高さよりも障害物が高いか否かを更に判定するものであり、画像生成手段は、判定手段において、被写体が仮想地平面に対して成す高さよりも障害物の方が高いと判定された場合に、障害物に対して所定の透過処理が施された仮想画像を生成するものであっても有用である。また、被写体が、遊戯者の操作するオブジェクトであっても好ましい。
【００１９】
本発明によれば、透過処理されることなく表示されている障害物等の物体を、所定の条件が成立した場合、例えば、視点から被写体を観察した場合に被写体と物体との間に物体が入り込んだ場合、物体に透過処理を適用し、この条件の成立が終了した場合は、物体の画像生成が非透過処理に復帰する。
【００２０】
通常、視点から被写体を観察した場合に被写体の間に物体が入り込む場合には、物体に被写体が遮られて、仮想画像の観察者に対し、被写体の映像が十分に与えられなくなる。本発明は、被写体が物体に隠され得るような状態を重なり状態であると判定し、その物体に対して透過処理を施すので、障害物と被写体との映像が十分に観察者に与えられる。その結果、観察者は障害物の存在を認識しつつ被写体に好適な操作を与えることができ、ゲーム等の雰囲気が損なわれたと感ずることがない。
【００２１】
なお、複数の物体について重なり状態が判定された場合は、重なり状態が判定された物体のそれぞれについて透過処理がされることになる。
【００２２】
特に、視点からみて被写体と視点との間に物体が入り込むような位置関係となるとき、視点から被写体へのベクトルと物体から被写体へのベクトルの方向とは、ほぼ同一の方向を向くことになる。このとき、両ベクトルが互いに成す角度は、比較的小さいものになる。
【００２３】
請求項３に記載の発明によれば、この角度を基準角と比較するので、基準角として重なりを判定する程度に十分な小さい角度を設定しておけば、物体が被写体に重なって観察されるか否かを正確に判定できる。
【００２４】
一方、視点が被写体の上方から被写体を観察するような位置に設定される場合を例に採れば、被写体の高さが物体の高さより低いときに物体が被写体を隠す重なり状態が生じ得る。
【００２５】
請求項４に記載の発明によれば、被写体上の第１基点と物体上の第２基点との各々の変位、すなわち上記例でいえば「高さ」に相当するパラメータを比較するので、被写体と物体とが重なり状態となりうる位置関係にあるか否かを判定できる。請求項５項にあるように、請求項３に記載した重なり判定と併用することが、判定の正確さを期す上で好ましい。
【００２６】
請求項６に記載の発明によれば、透過処理を所定のパターンにしたがって画素を入れ換えて表示するので、物体及び被写体をともに認識し得る仮想画像が生成される。特に、請求項６に記載の発明のように、所定のパターンを物体表示用の画素と背景表示用の画素とを交互に表示する場合には、物体の質感を損ねることなく被写体をも含む物体の陰に入る背景をも十分に明瞭に表示し得る仮想画像が表示される。
【００２７】
【発明の実施の形態】
本発明の好適な実施の形態を図面に基づいて説明する。
（Ｉ）構成の説明
本発明の実施の本形態に係るゲーム装置は、被写体であるオブジェクト（ロボット）同士が３次元空間内で対戦するストーリー展開を有するものである。操作者は、自己のロボットを操作して仮想空間内を自在に移動し、対戦相手のロボットを攻撃する。仮想画像を観察する視点（カメラ）は自己のロボットに付随して移動するものとする。
【００２８】
図１に、本形態に係るゲーム装置の構成図を示す。図１に示すように、当該ゲーム装置１０００は、基本的構成要素としてゲーム装置本体１０、入力装置１１、出力装置１２、ＴＶモニタ１３、及びスピーカ１４を備えている。
【００２９】
入力装置１１は、ロボットを移動させるために操作者の左右の手により操作する操作レバーを備える。操作レバーの操作状態に対応したコードは、操作信号として入出力インターフェース１０６に伝達される。出力装置１２は、操作者に装置の動作状態を知らせるための各種ランプ類を備える。ＴＶモニタ１３は、この対戦型ゲームの画像を表示するもので、ＴＶモニタの代わりに、ヘッドマウントディスプレイ（ＨＭＤ：head mounted display ）、プロジェクタ等を用いてもよい。
【００３０】
画像生成手段としてのゲーム装置本体１０は、カウンタ１００、ＣＰＵ（中央演算処理装置）１０１を有するとともに、ＲＯＭ１０２、ＲＡＭ１０３、サウンド装置１０４、入出力インターフェース１０６、スクロールデータ演算装置１０７、コ・プロセッサ（補助演算処理装置）１０８、地形デ−タＲＯＭ１０９、ジオメタライザ１１０、形状デ−タＲＯＭ１１１、描画装置１１２、テクスチャデ−タＲＯＭ１１３、テクスチャマップＲＡＭ１１４、フレームバッファ１１５、画像合成装置１１６、Ｄ／Ａ変換器１１７を備えている。なお、ゲーム装置本体１０は、所定のインターバル（例えば、テレビジョン方式の垂直同期期間に相当する１／６０秒）毎に新たな仮想画像を生成する。
【００３１】
位置データ特定手段、重なり判定手段としてのＣＰＵ１０１は、バスラインを介して、初期値からカウントするカウンタ１００、ゲームの進行と画像生成を行うプログラムなどを記憶したＲＯＭ１０２、テンポラリデ−タを記憶するＲＡＭ１０３、サウンド装置１０４、入出力インターフェース１０６、スクロールデータ演算装置１０７、コ・プロセッサ１０８、及びジオメタライザ１１０に接続されている。
【００３２】
ＲＡＭ１０３はポリゴンデータの座標変換等を行う際に必要なデータの格納を一時的に行うもので、ジオメタライザに対する各種コマンドの書込み（オブジェクトの表示など）、変換処理の演算時のマトリクス演算結果等を格納する。
【００３３】
入出力インターフェース１０６は、入力装置１１から操作信号が入力されるとＣＰＵ１０１に割り込み処理の要求をし、ＣＰＵ１０１からランプ表示用のデータが供給されるとこのデータを出力装置１２に供給する。
【００３４】
サウンド装置１０４は、電力増幅器１０５を介してスピーカ１４に接続されている。サウンド装置１０４により出力された音声信号は、電力増幅機１０５により電力増幅されスピーカ１４に供給される。
【００３５】
ＲＯＭ１１１は、仮想画像を生成するために必要な物体についての形状データ、すなわち、自己のロボットや対戦相手のロボット、爆弾の炸裂映像、仮想地形を構成する障害物、背景、地形等のポリゴンデータを格納する。
【００３６】
一方、ＲＯＭ１０９には、被写体（オブジェクト）が障害物等の地形に隠されるか否かの重なり判定、及び、被写体が他の地形形状に衝突するか否かの当たり判定に必要な物体（建造物、障害物、地形等）についての形状データを格納する。
【００３７】
ＲＯＭ１０９に格納するデータ群は、ＲＯＭ１１１に格納された画像表示用の比較的精緻なポリゴンデータ群に比べ、重なり判定等を行うに足りる粗い単位で構成されたものである。例えば、仮想地形を構成する各物体やオブジェクトについて、表面の細かい凹凸情報は無視し全体を立方体に見立てた場合に、ＲＯＭ１０９は、当該立方体を表示するためのデータを立方体の各面を特定する番号とともに格納する。
【００３８】
このデータに基づいて、各物体とオブジェクトとの当たりや重なりを判定できる他、各物体についての形状、すなわち、各物体の高さ、幅、奥行き等を判定できる。ここで、例えば地形に関するデータは地形を定義する各面のＩＤを含み、このＩＤと各地形面の関するとはテーブル化されてＲＯＭ１１１に記憶されている。なお、ポリゴンデータとは、複数の頂点の集合からなり、各物体の形状を構成する要素であるポリゴン（多角形：主として３角形又は４角形）の各頂点を相対座標又は絶対座標で指示したデータ群をいう。
【００３９】
仮想画像を生成するためには、仮想空間におけるオブジェクト、障害物等の各物体の相対位置を示す座標系（ワールド座標系）を、ある特定の視点（例えば、カメラ等）から仮想空間を見た２次元の座標系（視点座標系）に変換する必要がある。視点は、操作対象である被写体を所定の位置（例えば、被写体の斜め上方）から観察する位置に設定される。ゲーム展開によって視点と被写体の位置関係が変化する場合もある。被写体の位置を示す座標は入力装置１１から操作信号としてＣＰＵ１０１に供給される。
【００４０】
入力装置１１から操作信号が入力されると、ＣＰＵ１０１は操作信号に対応した被写体の移動をさせるべく、次のインターバルにおける視点の座標及びオブジェクトの座標を生成する。これら座標が定まるとＣＰＵ１０１が物体同士の重なり判定や当たり判定を行う。
【００４１】
オブジェクトや障害物等の各物体は、各々が複数のポリゴンデータにより構成される。各物体は、物体を構成する多角形のうち、いずれかの頂点を原点として他の頂点の座標を示す座標系（ボディ座標系）で全体形が決定され、各物体を構成するポリゴンデータが関連づけられる。
【００４２】
仮想画像を観察する視点からみて、オブジェクト等が障害物の陰に入った際に障害物を透過処理する場合には、物体同士の重なり状態の判定を行う必要がある。この重なり判定は本発明に係り、詳しくは後述する。また、オブジェクトや障害物に弾丸や光線が当たった場合に炸裂映像等を表示させるためには、各物体同士の相対位置を演算して各物体同士が衝突しているか否かを判定する当たり判定を行う必要がある。ボディ座標系で示された各物体の相対的な位置を得るために、仮想空間を構成する所定の座標系（ワールド座標系）に変換する。各物体の相対位置が判れば物体が互いに衝突しているか否かが判定できる。
【００４３】
仮想空間の座標系における各物体の相対位置が定まると、仮想画像を生成するために、これら仮想空間に存在する各物体をいずれかの視点で観察（例えばカメラで撮影）した如く、視野を構成する２次元平面に各物体を投影する変換処理を行う。これを透視投影といい、透視投影のためのマトリクス演算により行う座標変換を透視変換という。実際に表示する仮想画像を作成するために透視変換を実行するのがジオメタライザ１１０である。
【００４４】
ジオメタライザ１１０は、形状デ−タＲＯＭ１１１及び描画装置１１２に接続されている。ジオメタライザ１１０にはＣＰＵ１０１から透視変換に必要なポリゴンデータを指定するデータとともに透視変換に必要なマトリクスデータが供給される。ジオメタライザ１１０は、形状デ−タＲＯＭ１１１に格納されたポリゴンデータをＣＰＵ１０１から供給されたマトリクスに基づいて透視変換し、仮想空間における３次元の座標系から視野座標系に変換したデ−タを得る。このとき、当たり判定の結果、炸裂映像を表示する必要がある場合は、炸裂映像のためのポリゴンデータを用いる。
【００４５】
描画装置１１２は変換した視野座標系の形状デ−タにテクスチャを貼り合わせフレームバッファ１１５に出力する。このとき、ＣＰＵ１０１による重なり判定の結果、オブジェクト等が障害物の陰に隠れている場合は、所定の透過処理を行う。このテクスチャの貼り付けを行うため、描画装置１１２はテクスチャデ−タＲＯＭ１１３及びテクスチャマップＲＡＭ１１４に接続されるとともに、フレームバッファ１１５に接続されている。
【００４６】
スクロールデ−タ演算装置１０７は、文字などのスクロール画面のデ−タ（ＲＯＭ１０２に格納）を演算する。画像合成装置１１６は、演算装置１０７から出力される文字データを前記フレームバッファ１１５から供給された画像データにインポーズして画像を再合成する。再合成された画像データはＤ／Ａ変換器１１７を介してＴＶモニタ１３に出力される。
（ＩＩ）動作の説明
次に、本形態に係る重なり判定について、図２のフローチャートを参照しながら説明する。
【００４７】
ステップＳ１において、ＣＰＵ１０１は障害物を表示する際に必要な初期化を行う。すなわち、入力装置１１から新たな操作信号が供給されると、ＣＰＵ１０１は操作信号に対して割り付けた動き方で操作者の操作するオブジェクトを移動させた場合の移動先の座標を演算する。オブジェクトの移動先が定まると、このオブジェクトを被写体として観察する視点の新しい位置も定まる。
【００４８】
ＣＰＵ１０１は、新たな視点の座標を演算した後、この視点から被写体を中心として仮想空間を観察した際に透視投影する必要のある物体を選択する。この選択の為に、コ・プロセッサ１０８は形状データＲＯＭ１０９に格納された形状データを参照する。選択された物体は、この物体を構成する各面を特定する番号とともにＲＡＭ１０３に格納される。
【００４９】
表示すべき障害物等の物体が、視点から仮想空間を観察した場合の視野に存在しない場合（ステップＳ２：ＮＯ）ＣＰＵ１０１は新たな視点について透視投影するための変換マトリクスデータをジオメタライザ１１０へ供給して処理を終了する。通常は複数の障害物等の物体が視野に含まれるので（ステップＳ２：ＹＥＳ）、視野に含まれる障害物等の物体の各々について順番に以下に述べる重なり判定を行う。
【００５０】
この重なり判定は、図１３に示す右手座標系を備えた仮想空間内で、視点（仮想カメラ）がＸＺ平面に投影された点Ｃから、被写体であるオブジェクトがＸＺ平面に投影された点Ｒに向けられたベクトルＣＲと障害物Ｏから点Ｒに向けられたベクトルＯＲとが互いに成す角度θの大きさによっている（図３参照）。
【００５１】
図３は仮想空間をＹ方向から観てＸＺ平面に向かって表した、平面図に相当するものである。ベクトルＯＲは、図７に示すように各障害物について予め与えられている。図７の障害物Ｏは、図３と同方向から表せられている。この障害物の右側面７２０が臨む領域２には、ＸＹ平面に平行にベクトル７２が定義されている。また、左側面７６０が臨む領域４には、ベクトルと７２と逆方向にベクトル７６が定義されている。
【００５２】
一方、正面７４０が臨む領域３には、ＸＺ平面に平行にベクトル７４が定義されている。また、背面７００が臨む領域１にはベクトル７４とは逆方向にベクトル７０が割り付けられている。これらベクトル７０，７２，７４，及び７６は各面に直角に定義されている。
【００５３】
なお、領域５にはベクトル７０又は７２が割り当てられ、領域６にはベクトル７２又は７４、領域７にはベクトル７４又は７６、領域８にはベクトル７６又は７０がそれぞれ割り付けられる。これら領域毎のベクトルは、テーブル化されて、例えばＲＯＭ１１に記憶されている。
【００５４】
図２のステップＳ３において、オブジェクトの現在座標位置から（ｘ，ｚ）が読み出され、この（ｘ，ｚ）が領域１乃至８のどれに属するか否かによって、障害物からオブジェクトに向けられたベクトルＯＲがベクトル７０乃至７６のいずれかに決定される。
【００５５】
重なり判断は、前記ベクトルＯＲとベクトルＣＲとが成す角度の大きさに基づくために、ベクトルの大きさは一般的には重要でないことから、これらベクトルには、一般に所定の大きさが予め与えられている。
【００５６】
そして、視点の投影点Ｃからオブジェクトの投影点Ｒに向いたベクトルＣＲは、投影点ＣがＸＺ平面に成す座標値（ｘ１，ｚ１）と投影点ＲがＸＺ平面に成す（ｘ２，ｚ２）とから演算する。
【００５７】
次いで、ステップＳ４において、視点から被写体に向けられた視線に対応するベクトルＣＲとベクトルＯＲとが成す角度（ベクトルＣＲを基準としたベクトルＯＲが成す角度のうち、内側の小さい値のほうの角度、以下、便宜上「内角」という。）が計算される。
【００５８】
ステップＳ５において、ＣＰＵ１０１は予めプログラムで設定されている基準角度と、ステップＳ４で求めた内角とを比較し、ベクトルＣＲとベクトルＯＲとがなす内角が基準角度以内である場合には（ステップＳ５：ＹＥＳ）被写体の基点の高さ（Ｙ方向の距離）と障害物の基点の高さとを比較する（ステップＳ６）。
【００５９】
被写体の高さが障害物の高さより低い場合（ステップＳ６：ＹＥＳ）、すなわち、ベクトルＣＲとベクトルＯＲとのなす内角が基準角度以下、且つ、被写体の高さが障害物の高さより低い、という条件に合致した場合には、ＣＰＵ１０１は当該障害物を指定する物体の番号とともに、この障害物を透過処理すべき旨のコードを、ジオメタライザ１１０を介して描画装置１１２へ供給する（ステップＳ８）。被写体が複数の障害物の陰に入る場合は、障害物の各々について重なり判定がされることとなるので、各障害物についての重なり状態が上記条件に合致すれば、複数の物体の番号、コードがジオメタライザに供給される。
【００６０】
ベクトルＣＲとベクトルＯＲとのなす角度が基準角度より大きいか（ステップＳ５：ＮＯ）、又は、被写体の高さが障害物の高さより高い場合（ステップＳ６：ＮＯ）には、通常の障害物の表示方法である非透過処理をすべき旨のコードをジオメタライザ１１０に供給する（ステップＳ７）。
【００６１】
例えば、図３（Ａ）に示すように、オブジェクトのＸＺ平面への投影点Ｒは、図７の領域１に属するので、ベクトルＯＲとしてベクトル７０が選択される。視点たる仮想カメラのＸＺ平面への投影Ｃから投影点Ｒに向けた視線ベクトルＣＲは、図３（Ａ）のように与えられる。そして、ベクトルＣＲとベクトルＯＲとが成す内角θ１は基準値以下であり、オブジェクトＲ’と障害物Ｏとは重なりの可能性があると判断されて（図６参照）、ステップＳ６に移行する。
【００６２】
次いで、図８に示すように、オブジェクトの現在座標から、オブジェクトＲ’が仮想地平面８０に対して成す高さ（ｙ座標）Ｈを演算する。この高さＨと障害物の高さとが比較されて、オブジェクトの第１起点（オブジェクトの下端）の高さ（Ｈ１）が障害物の第２起点（障害物の上端）高さ（Ｈ０）よりも高い場合は、視点Ｃ’からオブジェクト全体を観察できるものであり、オブジェクトと障害物との重なりの可能性が否定されて、障害物Ｏは通常とおり透過処理されることなくその画像が生成される。
【００６３】
一方、オブジェクトの高さ（Ｈ２）が障害物の高さ（Ｈ０）より低い場合は、視点Ｃ’からオブジェクトＲ’を観察できないものとして、障害物Ｏが透過されるようにその画像を生成する。
【００６４】
また、図３（Ｂ）に示すように、オブジェクトのＸＺ平面への投影点Ｒは、図７の領域３に属するので、ベクトルＯＲとしてベクトル７４が選択される。視点たる仮想カメラのＸＺ平面への投影Ｃから投影点Ｒに向けた視線ベクトルＣＲは、図３（Ｂ）のように与えられる。そして、ベクトルＣＲとベクトルＯＲとが成す内角θ２は基準値を越えて、オブジェクトＲと障害物Ｏとが重なることは無いと判定されて、ステップＳ２にリターンする。そして、図３（Ｂ）の場合は、被写体の高さが障害物Ｏの高さより低くても、重なり状態にはならないのでステップＳ６の処理は適用されない。
【００６５】
この発明の形態において、ベクトル同士が成す内角に基づいて、オブジェクトと障害物との重なりを判定するようにしたのは、次の理由による。すなわち、図３（Ａ）のように視点から観たオブジェクトが障害物を越えた位置にある場合は、ベクトルＯＲ及びベクトルＣＲとも障害物の背面７００からオブジェクトを観たほぼ同方向にある。この場合は、両ベクトルが成す内角は小さい値になる傾向を採る。
【００６６】
これに対して、図３（Ｂ）のように、視点から観たオブジェクトが障害物の手前の位置にある場合は、ベクトルＯＲは障害物の背面７００から正面７４０に向かった方向にあり、ベクトルＣＲは、障害物の正面７４０から背面７００に向かった方向にある。これらの方向は互いに逆方向であるから、両ベクトルが成す内角は図３（Ａ）よりも大きな傾向と成る。
【００６７】
したがって、内角として図３（Ａ）の状態と図３（Ｂ）の状態を区別するのに適した基準角度を定義し、両ベクトルが実際に成す内角とこの基準角度を比較することにより、図３（Ａ）と（Ｂ）とを互いに区別することが可能と成る。基準角度としては、視点とオブジェクトが成す角度や距離によっても異なるが、好適には、７０乃至９０°が選択される。
【００６８】
なお、ステップＳ６において、各物体の高さ、すなわち仮想空間のワールド座標系におけるＹ座標を基準としたのは、視点のＹ座標が常に障害物のＹ座標より大きい（高い）からである。したがって、視点の「高さ」を障害物の「高さ」より低く設定するゲーム装置ならば、「高さ」の比較の代わりに各物体のＸ座標の大小関係を比較してもよい。
【００６９】
透過処理が指定された場合（ステップＳ８）、描画装置１１２は当該障害物にテクスチャデータに基づいてテクスチャを貼り付ける際に、「メッシュ」処理を行う。複数の物体について透過処理が指定された場合は、複数の物体について「メッシュ」処理がされる。なお、メッシュ処理とは、当該障害物を表示する画素列の中から所定のパターンに従って、障害物表示のための画素の代わりに、障害物の背景を表示する画素を当てはめる処理をいう。所定のパターンは、背景と障害物とが均等に認識できるようなパターンであって、極端に障害物の質感を変動させないようなパターンがよい。例えば、障害物のための画素と背景のための画素とを交互に配置するパターンが好ましい。
【００７０】
上記のように本形態によれば、視点からオブジェクトに向かったベクトルと、障害物からオブジェクトに向かったベクトルとが成す角度と、両物体の高さの相違という２つの条件に基づいて重なり状態の判定を行うので、正確な重なり状態の判定が行える。もっとも、本発明は、オブジェクトと障害物との重なり判定を両者の座標値から行う等の他の手段によりこの重なり判定を行うことを妨げるものではない。
【００７１】
また、重なり状態であると判定された場合には、透過処理としてメッシュ状に障害物が表示されるので、視点と被写体との間に障害物が入り込んでも、操作者は被写体を見失わずに、しかも障害物の存在を認識しつつ被写体の操作を持続できる。
【００７２】
そして、ベクトルＯＲは予めメモリにテーブルとして記憶され、オブジェクトが障害物に対して成す位置に応じてメモリから読み出されるため、重なり判定を迅速かつ容易に行うことができる。
（ＩＩＩ）他の実施の形態
i) 重なり判定について
上記形態では、ベクトルＣＲとベクトルＯＲとのなす角度の条件、及び、被写体の高さと障害物の高さとの間の条件とを共に満たした場合に重なり状態であると判定していたが、角度の判定のみで重なり判定を行ってもよい。ゲーム装置における被写体の動きは激しいために、視点が障害物から遠方に設定された場合や障害物の高さが低い場合には、おおよその位置関係に基づいて透過処理を実行しても、違和感なく操作者は操作を行えるからである。
【００７３】
また、視点から障害物や被写体等の物体を観察する場合、各物体の大きさ（すなわち、重心から外形までの距離）に応じて、重なりが生ずるときのベクトルＯＲと視線ベクトルＣＲとの成す角度が異なる。視点と各物体との距離によってもこの角度は異なる。そこで、各物体の外形の大きさや視点−各物体間の距離に対応させて、ステップＳ５の比較に用いる基準角度を変更させてもよい。
【００７４】
また、図９に示すように、ベクトルＯＲを、被写体の位置と障害物の位置とに基づいて演算するようにしても良い。このベクトルは、障害物Ｏの所定の基点から被写体Ｒ’の基点に向かうベクトルとして求められる。基点は、例えば、被写体や障害物等の中心点とする。中心点とは幾何学的に見て、各物体を囲む立方体の重心に相当する点とする。なお、ゲーム装置では、各オブジェクトや視点の動きが激しいため、厳密に各物体の中心点を求める必要はなく、おおよその位置を中心点の座標としてＲＯＭ１０９等に格納しておけば十分である。各物体の高さの基準点は、ベクトル演算で用いた各物体の中心点であってもよいが、障害物については障害物の上面の高さ、被写体たるオブジェクトについてはオブジェクトの最下部の高さを基準としてもよい。
【００７５】
ii) 透過処理について
画像生成装置が行う透過処理として上記形態では画素を１ドット毎に変更するメッシュ処理を行ったが、異なるパターンで画素を入れ換えてもよい。すなわち、２ドット毎に画素を入れ換えたり、縞状に背景と障害物とを表示したりしてもよい。また、画素を入れ換える「メッシュ」処理の代わりに、障害物の表示を半透明状態にする透過処理を行ってもよい。半透明状態にするには、障害物を表示する画素の色情報（ＲＧＢ）と背景を表示する画素の色情報とに演算（加算、乗算等）を施して、障害物の陰に隠れた部分が認識できるように処理する。
【００７６】
また、図８と同じ方向から表された図１０に示すように、視点Ｃ’の視野角がθ−１であるとしたとき、Ｙ方向に幅を持ったオブジェクトＲ’が障害物Ｏに重なる部分はθ−２の範囲である。したがって、このθ−２の部分のみの箇所に透過処理を与えるようにしても良い。
【００７７】
前記図２に示す形態では、視点の視野内にある障害物について、重なり判定の処理を実行したが、視野内以外の例えば、仮想空間内にある全ての障害物について図２に示す処理を適用するようにしても良い。このことを図１１を使用しながら説明する。
【００７８】
図１１は図７と同方向に表現されており、仮想空間内にある二つの障害物０１とＯ２をＹ方向から示した図である。図１１は、二つのオブジェクトのＸＺ平面への投影点Ｒ−１，Ｒ−２と、Ｒ−１に対する視点の投影点Ｃ−１とＲ−２に対する視点の投影点Ｃ−２とが次の関係にあることを示している。
【００７９】
0003769747.tif 000002
投影点Ｃ−１と投影点Ｒ−１との間のベクトルＣＲ−１、
障害物Ｏ１と投影点Ｒ−１との間のベクトルＯＲ−１、
投影点Ｃ−２と投影点Ｒ−２との間のベクトルＣＲ−２、
障害物Ｏ２と投影点Ｒ−２との間のベクトルＯＲ−２、
とが互いに成す内角は、図１２に示すとおりである。
【００８０】
図１１、図１２から分かるように、オブジェクトの投影点がＲ−１にあるとき、障害物Ｏ１については透過処理が適用され、障害物Ｏ２には非透過処理が適用される。
【００８１】
一方、オブジェクトの投影点がＲ−２にあるときには、障害物０１及び障害物０２の両方について透過処理が成される。但し、このときの視点はＣ−２にあるために、障害物Ｏ１は視点の視野内に無いことから映像としてはＴｖモニタ１３には表示されない。
【００８２】
仮想空間内にある全ての障害物について重なり判定を適用することは、例えば、それぞれの障害物について識別ＩＤを与え、全てのＩＤについてステップＳ３からステップＳ８までの処理を適用すればよい。
【００８３】
また、それぞれの障害物について、重なり判定が必要か否かのステータスフラグレジスタをＲＯＭ内に設けることができる。例えば、障害物の高さがオブジェクトに比較して小さく、視点の位置が変わってもほぼオブジェクトの全体が障害物に重ならないような場合、このフラグに重なり判定処理を必要としない「１」をたてる。
【００８４】
【実施例】
上記実施の形態に係るゲーム装置を使用した場合の実施例について説明する。
【００８５】
図４は被写体と障害物との重なりが生じない位置関係にある場合を説明する図である。同図（Ｂ）に示すように、本形態では、被写体Ｒを観察する仮想カメラＣ’は被写体Ｒ’の上側から被写体Ｒ’を中心とした仮想空間を観察する。同図（Ａ）の俯瞰図に示すように、カメラＣ’がＰ1の点に位置する場合には、障害物ＯはカメラＣ’から見て被写体Ｒの背後に存在するため、視点から被写体に向いたベクトルと障害物から被写体に向いたベクトルが成す角度は基準角より大きくなり、重なり状態であるとは判定されない。したがって、障害物Ｏについて透過処理は行われず、同図（Ｃ）のように通常の仮想画像がモニタに表示される。
【００８６】
ところが、同図（Ａ）のＰ2の点にカメラＣ’が周り込んだ場合、カメラＣ’と被写体Ｒ’との間に障害物Ｏが入り込み、重なり状態となる。このときのカメラＣ’と被写体Ｒ’との位置関係を俯瞰した図が図５（Ａ）であり、この位置関係を側面から見た図が同図（Ｂ）である。このとき両ベクトルとベクトルとの成す角は基準角以下であり、被写体Ｒ’の高さも障害物の高さより低い。したがって、障害物Ｏは透過処理され、同図（Ｃ）に示すように障害物のテクスチャがメッシュ処理されて、背後に隠れた被写体Ｒが透過した仮想画像がモニタに表示される。
【００８７】
【効果】
本発明によれば、通常、透過処理されることなく生成されている図形が、必要に応じて透過された図形となるように画像が生成されるため、障害物を表示しない、障害物を最初からワイヤーフレームで表示する等の手段をとることなく、しかも、ゲーム等の雰囲気を損なわない仮想画像生成装置を提供することができる。
【００８８】
そして、被写体が物体に遮られる位置関係を重なり状態として判定し、被写体を隠す物体に透過処理を施すので、被写体の映像が十分に与えられ、観察者は困難なく被写体の操作や状況の把握が行える。
【００８９】
特に、視点から被写体に向かうベクトルと障害物から被写体に向かうベクトルとが成す角度に基づいて重なり判定を行えば、物体が被写体に重なって観察されるか否かを正確かつ容易に判定できるので、被写体が物体に隠される位置関係から透過処理をすることにより、違和感のない画像表示がされる。また、被写体と物体の変位を比較することでも、重なり判定を行うことができる。
【００９０】
一方、透過処理を所定のパターンにしたがって画素を入れ換えて表示すれば、物体及び被写体の色彩、形状、質感等を損ねずに、比較的容易な処理で画像の透過を実現できる。特に、物体表示用の画素と背景表示用の画素とを交互に表示すれば、重なり状態においても物体及び被写体とも十分に認識できる仮想画像を得ることができる。
【図面の簡単な説明】
【図１】本発明の実施の形態に係るゲーム装置の概略ブロック図である。
【図２】本発明の実施の形態に係るゲーム装置の動作を説明するフローチャートである。
【図３】重なり判定について説明する動作図である。
【図４】本発明の実施の形態に係る仮想画像の表示の実施例（重なり状態が生じない場合）である。
【図５】本発明の実施の形態に係る仮想画像の表示の実施例（重なり状態が生ずる場合）である。
【図６】従来例に係る重なりが生ずる場合の仮想画像の説明図である。
【図７】障害物から被写体（オブジェクト）に向かったベクトルを障害物の各側面、正面及び背面に与えたことを示す平面図ある。
【図８】障害物と被写体との配置関係を示す側面図である。
【図９】他の実施形態に係わる、図８と同様な側面図である。
【図１０】さらに、他の実施形態に係わる、図８と同様な側面図である。
【図１１】二つの障害物と、被写体及び視点との配置関係を示す、他の実施形態に係わる側面図である。
【図１２】図１１における二つのベクトルが互いに成す内角の状態を示す表図である。
【図１３】仮想空間の右手座標系を示す斜視図である。
【符号の説明】
１０  ゲーム装置本体
１１、１１R、１１L  入力装置（操作レバー）
１２  出力装置
１３  表示装置
１００  カウンタ
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０７  スクロールデ−タ演算装置
１０９  地形デ−タＲＯＭ
１１０  ジオメタライザ
１１１  形状デ−タＲＯＭ
１１２  描画装置
１１５  フレームバッファ
１１６  画像合成装置
【図１】
0003769747.tif 000003
【図２】
0003769747.tif 000004
【図３】
0003769747.tif 000005
【図４】
0003769747.tif 000006
【図５】
0003769747.tif 000007
【図６】
0003769747.tif 000008
【図７】
0003769747.tif 000009
【図８】
0003769747.tif 000010
【図９】
0003769747.tif 000011
【図１０】
0003769747.tif 000012
【図１１】
0003769747.tif 000013
【図１２】
0003769747.tif 000014
【図１３】
0003769747.tif 000015