(57)【特許請求の範囲】
【請求項１】
三次元空間内に存在する或る視点位置を中心として平行に回転したときに視認できる３６０度の範囲を複数の背景画面に分割し、背景画面毎に複数のドットの集合からなる画像をディスプレイに表示する画像表示装置であって、
前記三次元空間内に存在する物体を複数のポリゴンによって表現するために、ポリゴン毎に三次元座標データとテクスチュアデータからなるポリゴン画像データを発生するポリゴン画像データ発生手段、
複数の背景画面分のドット数に対応する記憶容量を有し、各背景画面のそれぞれのドット毎に色データを一時記憶するための色データ記憶手段、
複数の背景画面分のドット数に対応する記憶容量を有し、前記各背景画面のそれぞれのドット毎に奥行データを一時記憶するための奥行データ記憶手段、
前記或る視点位置から三次元空間の異なる２以上の方向に向いたときに得られる前記ポリゴン画像データをドット画像データに変換し、各ポリゴンのテクスチュアデータに基づいてドット毎の色データを前記色データ記憶手段の対応する記憶位置に書込む色データ書込手段、および
前記或る視点位置から三次元空間の異なる２以上の方向に向いたときに得られる前記ポリゴン画像データをドット画像データに変換するとき、前記各ポリゴン毎の三次元座標データに基づいて各ドットの奥行データを演算によって求め、ドット毎の奥行きデータを前記奥行データ記憶手段の対応する記憶位置に書込む奥行データ書込手段、
前記視点位置からの視線方向に基づいて、１つまたは隣接する２つ分の背景画面の特定の範囲に相当する色データおよび奥行きデータを前記色データ記憶手段および奥行データ記憶手段から読出す読出手段、
前記読出手段で読出した色データおよび奥行きデータに基づいて背景画面をディスプレイに表示する表示手段を備えた画像表示装置。
【請求項２】
前記色データ記憶手段および奥行データ記憶手段は、前記視点位置を中心として平行に回転したときの３６０度の範囲を複数の背景画面に分割して、それぞれの背景画面中に存在する物体のドット毎に色データと奥行データをそれぞれ記憶する記憶容量を有し、
前記色データ書込手段は、前記分割した各背景画面中に存在する物体のドット毎の色データを前記色データ記憶手段の各背景画面に対応する記憶位置に書込み、
前記奥行データ書込手段は、前記分割した各背景画面のドット毎の奥行データを前記奥行データ記憶手段の各背景画面中に存在する物体に対応する記憶位置に書込む、請求項１に記載の画像表示装置。
【請求項３】
前記色データ記憶手段および奥行データ記憶手段は、背景画面としてそれぞれ４面分の記憶領域を有し、
前記色データ書込手段及び前記奥行データ書込手段は、前記視点位置から見て前後左右の４面について前記色データ記憶手段及び奥行データ記憶手段の対応する面であって各物体の各ドットに対応する記憶位置に色データと奥行データをそれぞれ書込む、請求項２に記載の画像表示装置。
【請求項４】
前記ポリゴン画像データ発生手段は、
前記三次元空間内に存在する背景物体を複数のポリゴンによって表現するために、各背景物体のそれぞれのポリゴン毎に三次元座標データとテクスチュアデータからなる背景ポリゴン画像データを発生する第１のポリゴン画像データ発生手段と、
前記第１のポリゴン画像データ発生手段によって発生された背景物体のポリゴン画像と合成しかつ表示すべき移動物体を複数のポリゴンによって表現するために、移動物体のポリゴン毎に三次元座標データとテクスチュアデータからなる移動ポリゴン画像データを発生する第２のポリゴン画像データ発生手段とを含み、
前記色データ書込手段は、前記第１のポリゴン画像データ発生手段から発生される各背景物体の背景ポリゴン画像データを背景物体のドット画像データに変換するとともに、前記第２のポリゴン画像データ発生手段から発生される前記移動物体のポリゴン画像データを移動物体のドット画像データに変換し、前記背景物体のポリゴンと前記移動物体のポリゴンのそれぞれの奥行データに基づいて、背景物体及び移動物体のうちの視点位置から近いものの色データを前記色データ記憶手段の対応する記憶位置に書込み、
前記奥行データ書込手段は、前記色データ書込手段が背景物体のポリゴン又は移動物体のポリゴンの色データを前記色データ記憶手段の対応する記憶位置に書込むとき、背景物体のポリゴンと移動物体のポリゴンの奥行データに基づいて背景物体及び移動物体のうちの視点位置から近いものの奥行データを前記奥行データの対応する記憶位置に書込む、請求項１ないし請求項３のいずれかに記載の画像表示装置。
【請求項５】
入力手段からの操作状態データを読み込む操作状態データ読込手段、
前記操作状態データに基づいて前記視点位置からの視線方向を右または左方向に変化させる視線方向変化手段を備えた請求項１に記載の画像表示装置。
【請求項６】
前記読出手段は、前記視点位置からの視線方向が右方向に変化したとき、前記隣接する２つ分の背景画面の特定の範囲を右にずらして各々の範囲に相当する色データおよび奥行きデータを前記色データ記憶手段および奥行データ記憶手段から読出し、前記視点位置からの視線方向が左方向に変化したとき、前記隣接する２つ分の背景画面の特定の範囲を左にずらして各々の範囲に相当する色データおよび奥行きデータを前記色データ記憶手段および奥行データ記憶手段から読出し、
前記表示手段は、前記視点位置からの視線方向が右方向に変化したとき、背景画面を左方向にスクロールして表示し、前記視点位置からの視線方向が左方向に変化したとき、背景画面を右方向にスクロールして表示する、請求項１ないし請求項５のいずれかに記載の画像表示装置。
【請求項７】
前記画像表示装置は、視点位置から見た背景画面の表示範囲を変更させるための入力手段を含み、前記読出手段は、前記入力手段の操作に応答して背景画面の範囲を変更するように前記色データ記憶手段の読出アドレスを変更する、請求項１ないし請求項６のいずれかに記載の画像表示装置。
【請求項８】
前記ポリゴン画像データ発生手段は、
前記三次元空間内に存在する背景物体を複数のポリゴンによって表現するために、各背景物体のポリゴン毎に三次元座標データとテクスチュアデータからなる背景ポリゴン画像データを発生する第１のポリゴン画像データ発生手段と、
前記第１のポリゴン画像データ発生手段によって発生された背景物体のポリゴン画像と合成しかつ表示すべき移動物体を複数のポリゴンによって表現するために、移動物体のポリゴン毎に三次元座標データとテクスチュアデータからなる移動物体ポリゴン画像データを発生する第２のポリゴン画像データ発生手段とを含み、
前記色データ書込手段は、前記第１のポリゴン画像データ発生手段から発生される前記背景物体のポリゴン画像データを背景ドット画像データに変換するとともに、前記第２のポリゴン画像データ発生手段から発生される前記移動物体のポリゴン画像データをドット画像データに変換し、背景物体のポリゴンと移動物体のポリゴンの奥行データに基づいて背景物体及び移動物体のうちの視点位置から近いものの色データを前記色データ記憶手段の対応する記憶位置に書込み、
前記奥行データ書込手段は、前記色データ書込手段が背景物体及び／又は移動物体のテクスチュアデータに基づく色データを前記色データ記憶手段の対応する記憶位置に書込むとき、背景物体と移動物体の奥行データに基づいて背景物体及び移動物体のうちの視点位置から近いものの奥行データを前記奥行データ記憶手段の対応する記憶位置に書込む、請求項１ないし請求項７のいずれかに記載の画像表示装置。
【請求項９】
所定のゲームプログラムに基づいて、三次元空間内に存在する或る視点位置を中心として平行に回転したときに視認できる３６０度の範囲を複数の背景画面に分割し、背景画面毎に複数のドットの集合からなる画像をディスプレイに表示させるゲーム装置であって、
前記ゲームプログラムを記憶するためのゲームプログラム記憶手段、
前記ゲームプログラムに基づいて、前記三次元空間内に存在する物体を複数のポリゴンによって表現するために、ポリゴン毎に三次元座標データとテクスチュアデータからなるポリゴン画像データを発生するポリゴン画像データ発生手段、
複数の背景画面分のドット数に対応する記憶容量を有し、各背景画面のそれぞれのドット毎に色データを一時記憶するための色データ記憶手段、
複数の背景画面分のドット数に対応する記憶容量を有し、前記各背景画面のそれぞれのドット毎に奥行データを一時記憶するための奥行データ記憶手段、
前記ゲームプログラムに基づいて決定される所定の視点位置から三次元空間の異なる２以上の方向に向いたときに得られる前記ポリゴン画像データをドット画像データに変換し、各ポリゴンのテクスチュアデータに基づいてドット毎の色データを前記色データ記憶手段の対応する記憶位置に書込む色データ書込手段、
前記所定の視点位置から三次元空間の異なる２以上の方向に向いたときに得られる前記ポリゴン画像データをドット画像データに変換するとき、前記各ポリゴン毎の三次元座標データに基づいて各ドットの奥行データを演算によって求め、
ドット毎の奥行きデータを前記奥行データ記憶手段の対応する記憶位置に書込む奥行データ書込手段、および
前記視点位置からの視線方向に基づいて、１つまたは隣接する２つ分の背景画面の特定の範囲に相当する色データおよび奥行きデータを前記色データ記憶手段および奥行データ記憶手段から読出す読出手段、
前記読出手段で読出した色データおよび奥行きデータに基づいて背景画面をディスプレイに表示する表示手段を備えた、ゲーム装置。
【請求項１０】
前記ポリゴン画像データ発生手段は、三次元空間内を移動する移動物体を表現するために、ポリゴン画像データを発生し、
前記ゲームプログラムは、前記移動物体が三次元空間内の前記所定の位置に存在するか否かを判断し、
前記色データ書込手段は、前記ゲームプログラムが、前記移動物体が所定の位置に存在したことを判断したときに、前記ドット毎の色データを前記色データ記憶手段の対応する記憶位置に書込み、
前記奥行データ書込手段は、前記ゲームプログラムが、前記移動物体が所定の位置に存在したことを判断したときに、ドット毎の奥行きデータを前記奥行データ記憶手段の対応する記憶位置に書込むことを特徴とする請求項９記載のゲーム装置。
【０００１】
【発明の詳細な説明】
【発明の属する技術分野】
この発明は、画像作成装置，画像表示装置およびゲーム装置に関し、特にポリゴン表現を用いて画像を表示する場合に現実的な三次元画像表示に近似の画像データを発生し及び／又は表示する画像作成装置，画像表示装置およびゲーム装置に関する。
【０００２】
【従来技術】
従来の三次元表示（３Ｄ）ゲームは、ポリゴン表示のための三次元座標データとテクスチュア（色を含む模様や材質感）からなる三次元画像データによって、背景物体や移動物体の画像を所定の方向および距離からカメラで撮影したような画像を表示するに過ぎなかった。
また、従来の二次元表示ゲームは、背景物体（又は背景キャラクタ若しくは背景画）と移動物体（移動キャラクタ又は若しくはゲームの主人公キャラクタ等）を合成した画像表示していたが、背景物体と移動物体の位置関係が移動物体を基準として背景物体より前か後ろかの一方しか選択できなかった。そのため、１枚の背景画面中の有る複数の背景物体の間（例えば、家と山の間とか、車と建物の間等）に描かれている個々の背景物体毎に前後関係を設定して表示することが出来なかった。そのため、従来の背景画は、奥行きのデータを持たない単なる平面的な画像であり、その中に描かれている移動物体（例えば、主人公キャラクタ）が他の複数の背景物体間を通るときに各物体の奥行きの遠近によって後ろまたは前若しくは間を通るように表現することができなかった。
【０００３】
図１は、従来の技術で背景物体と移動物体を表示するためのスクリーン空間の図である。図１の例では、移動物体１として人間が描かれ、背景物体として建物２と樹木３が描かれる際に、移動物体１が背景物体よりも優先して表示される場合を示している。そして、移動物体１が背景物体２，３よりも高い優先順位に設定されている。この場合、移動物体１は、位置(a) から(b) 及び位置(b) から(c) へ移動するときに建物２の前に存在するように表示され、位置(c) から(d) へ移動するときに樹木３の前に表示され、位置(d) から(e) へ移動するときに背景に重ねずに（単独で）表示される。
【０００４】
図２は、従来の技術で背景物体と移動物体を表示するためのスクリーン空間の図である。図２の例では、移動物体１として人間が描かれ、背景物体として建物２と樹木３が描かれる場合において、移動物体１が背景物体２，３よりも低い優先順位に設定されている。この場合、移動物体１は、位置(a) から(b) へ移動する際に、建物２に重なる位置まで来ると、そのときから建物２と重なった部分が表示されないことにより、見かけ上建物２の後ろに存在するように表示され、位置(b) から(d) まで移動する間は同様に表示される。そして、移動物体１が、建物２の左端を過ぎて位置(d) から(e) へ移動するとき、建物２も樹木３もないので単独で表示される。
上述のように、従来の技術では、移動物体１と背景物体２又は３が重なったとき、移動物体１と背景物体２，３の何れか一方の優先順位の高いものが表示されるだけであった。その理由は、各背景物体又は移動物体毎に奥行を規定するデータ（奥行データ）を持っていなかったからである。
【０００５】
【発明が解決しようとする課題】
複数のポリゴンの集合体からなる物体（背景物体及び／又は移動物体を含む；背景キャラクタ，移動キャラクタともいう）を表示するための三次元データ（又はポリゴンデータ；すなわち各ポリゴンの角のＸ，Ｙ，Ｚの座標データ）に基づき、ディスプレイに三次元画像を表示させる場合、よりリアルで細かい画像を表示させようとすると、より多くのポリゴンを表示する必要がある。しかし、ポリゴン数を増大させるに従って、計算時間が長くなり、１フレーム中（又は垂直ブランキング中）に１フレーム分の三次元画像を表示するための計算ができなくなり、処理オーバーする場合がある。その結果、表示画像がコマ送りのような不自然な変化となり、三次元画像をリアルタイムで滑らかに変化させることが困難であった。
また、背景物体に移動物体（主人公キャラクタ）を合成して表示する場合、背景に描かれている各背景物体と移動物体との前後関係が設定されていなかったので、背景物体と移動物体の前後関係を現実の動きに合致させることができなかった。
【０００６】
それゆえに、この発明の目的は、複数のポリゴンの集合体からなる物体を表示するための三次元データに基づき、背景物体を表示させる場合、ディスプレイに表示されている背景物体のピクセル（画素）を構成するドット毎に奥行きデータを持たせて、現実的な三次元表示に利用できる画像を作成し得る、画像作成装置を提供することである。
この発明の他の目的は、複数のポリゴンの集合体からなる物体を表示するための三次元データに基づき、背景物体と移動物体を合成して表示させる場合、ディスプレイの表示されている背景物体及び背景物体のピクセル（画素）を構成するドット毎に奥行データを持たせて、現実的な三次元表示に利用し得る画像を作成することのできる、画像作成装置を提供することである。
この発明のその他の目的は、複数のポリゴンの集合体からなる物体を表示するための三次元データに基づき、背景物体を表示させる場合、ディスプレイの表示されている背景物体の画素を構成するドット毎に奥行きデータを持たせて、現実的な三次元表示するのに有効な、画像表示装置およびゲーム装置を提供することである。この発明のさらに他の目的は、三次元空間に存在しかつ表示する物体の数が多い場合でも、ＣＰＵの負担を大幅に増大させたり、処理オーバーにならない画像作成装置，画像表示装置及び／又はゲーム装置を提供することである。
【０００７】
【実施例】
図３はこの発明の原理を説明するためのオブジェクト空間（三次元空間）の一例を示す斜視図である。移動物体１は、操作者（プレイヤ）によって操作されるコントローラ（後述の図４に示す４０）からのデータに基づいて、三次元空間中を移動する物体であり、ゲームでは主人公キャラクタ，動物，車（又は主人公キャラクタとの関係から見れば、敵キャラクタと味方キャラクタ）等がある。背景物体は、プログラムに基づき所定の座標位置に固定的に表示される建物２ａ〜２ｃ及び樹木３ａ〜３ｅ等の近景や、ゲームの種類及び／又は場面によっては山，海，雲等の遠景等、自然界にある様々な物体である。これらの背景物体が複数個集合することによって背景画面を構成する。
ゲーム実行中にディスプレイに表示される背景物体及び／又は移動物体の合成画像の表示は、限られた仮想の三次元空間内に存在する背景物体及び／又は移動物体を例えば主人公キャラクタ等の視点位置Ｏにある仮想のカメラから或る方向に向けかつ平行に３６０度回転させたときに、カメラに写し出されるであろう画像のデータ発生することによって行われる。
【０００８】
具体的には、各背景物体は、それぞれが複数のポリゴンの集合体によって構成される。各ポリゴンは、三次元座標データ（Ｘ，Ｙ，Ｚの座標データ）と、各ポリゴンの面に貼りつけられた表すべき色，模様，材質感等のテクスチュアを決定するためのテクスチュアデータ等によって定義付けられている。視点位置Ｏ（又は仮想カメラの撮影位置）及び視線方向（仮想カメラの撮影方向）は、操作者がコントローラを操作するときに発生される操作データに基づいて変化する。仮想カメラは、視点位置及び視線方向に基づいて背景物体及び／又は移動物体を撮影する。そして、仮想カメラによって撮影したときに写し出される三次元空間中の背景物体（又は背景物体と移動物体）のポリゴンの三次元座標データを演算によって求め、かつ各ポリゴン毎にテクスチュアマッピングすることにより三次元画像を作り、これらのポリゴンの三次元座標データとテクスチュアデータに基づいてスクリーン空間におけるドット毎の画像データを後述のバッファメモリ（図５に示すＲＡＭ１５）に書込むことにより、表示のための画像データを得る。このようにして、本願実施例では、画像データの作成をドット毎の色データを記憶するイメージバッファ及びドット毎の奥行データを記憶するＺバッファを用いることによって実現している。その動作の詳細は、後述する。
【０００９】
次に、この発明の画像作成装置及び／又は画像表示装置の一例の画像処理システムの構成を説明する。図４はこの発明の一実施例の画像処理装置のシステム構成を示す外観図である。画像処理システムは、例えばビデオゲームシステムであって、画像処理装置本体１０と、外部記憶装置の一例のＲＯＭカートリッジ２０と、画像処理装置本体１０に接続される表示手段の一例のＣＲＴディスプレイ３０と、操作手段の一例のコントローラ４０と、コントローラ４０に着脱自在に装着される拡張装置の一例のＲＡＭカートリッジ５０とを含んで構成される。なお、操作手段は、本願の画像作成装置がパーソナルコンピュータに適用される場合であれば、キーボードやマウス等の入力装置を用いてもよい。
【００１０】
図５はこの発明の一実施例の画像処理装置のブロック図である。画像処理装置１０には、中央処理ユニット（以下「ＣＰＵ」と略称する）１１及びコプロセッサ（リアリティメディアコプロセッサ：以下「ＲＣＰ」と略称する）１２が内蔵される。ＲＣＰ１２には、ポリゴンの座標変換や陰影処理等を行うための画像処理ユニット（リアリティー・シグナル・プロセッサ；以下「ＲＳＰ」と略称する）１２２と、ポリゴンデータを表示すべき画像にラスタライズしかつフレームメモリに記憶可能なデータ形式（ドットデータ）に変換するための画像処理ユニット（リアリティー・ディスプレイ・プロセッサ；以下「ＲＤＰ」と略称する）１２３と、バスの制御を行うためのバス制御回路１２１とが含まれる。ＲＣＰ１２には、ＲＯＭカートリッジ２０を着脱自在に装着するためのカートリッジ用コネクタ１３と、ディスクドライブ２２を着脱自在に装着するためのディスクドライブ用コネクタ１４と、ＲＡＭ１５とが接続される。また、ＲＣＰ１２には、ＣＰＵ１１によって処理された音声信号を出力するための音声信号発生回路１６及び画像信号を出力するための画像信号発生回路１７が接続される。さらに、ＲＣＰ１２には、１つ又は複数のコントローラ４０の操作データ及び／又はＲＡＭカートリッジ５０のデータをシリアル転送するためのコントローラ制御回路１８が接続される。
【００１１】
音声信号発生回路１６には、画像処理装置１０の後面に設けられるコネクタ１９５が接続される。画像信号発生回路１７には、画像処理装置１０の後面に設けられるコネクタ１９６が接続される。コネクタ１９５には、テレビのスピーカ等の音声発生装置３２の接続部が着脱自在に接続される。コネクタ１９６には、テレビのＣＲＴ等のディスプレイ３１の接続部が着脱自在に接続される。なお、図５の実施例では、コネクタ１９５とコネクタ１９６が別々に設けられた場合を示すが、コネクタ１９５と１９６の両方の端子数を有する１個のコネクタで構成してもよい。
【００１２】
コントローラ制御回路１８には、画像処理装置１０の前面に設けられるコントローラ用コネクタ（以下「コネクタ」と略称する）１９１〜１９４が接続される。コネクタ１９１〜１９４には、接続用ジャック４１を介してコントローラ４０が着脱自在に接続される。このように、コネクタ１９１〜１９４にコントローラ４０を接続することにより、コントローラ４０が画像処理装置１０と電気的に接続され、相互間のデータの送受信が可能とされる。
【００１３】
ＲＯＭカートリッジ２０は、ゲーム処理のためのデータを記憶した外部ＲＯＭ２１を基板に実装し、その基板をハウジングに収納して構成される。外部ＲＯＭ２１は、ゲーム等の画像処理のための画像データやプログラムデータを記憶するとともに、必要に応じて音楽や効果音等の音声データを記憶するものである。なお、外部記憶装置は、ＲＯＭカートリッジ２０に代えて、ＣＤ−ＲＯＭや磁気ディスク等の各種記憶媒体を用いてもよい。
外部ＲＯＭ２１は、大別して、図６に示すようにプログラム記憶領域２００，画像データ領域２１０及びサウンドメモリ領域２２０を有し、各種のプログラムを予め固定的に記憶している。プログラム記憶領域２００は、ゲーム等の画像処理を行なうために必要なプログラム（例えば、後述の図１０，図１４，図１６，図１７及び図１８に示すフローチャートの機能を実現するための制御プログラムや、ゲーム内容に応じたゲームプログラム等）を記憶しているが、そのプログラムの詳細については後述する。画像データ領域２１０は、背景物体及び／又は移動物体の各物体毎に複数のポリゴンの座標データおよびテクスチュアデータ等の画像データを記憶している。サウンドメモリ領域２２０は、ゲーム等に用いられる効果音や音楽等のサウンドデータを記憶している。
具体的には、プログラム領域２００は、ＣＰＵ１１の動作プログラムを予め固定的に記憶するためのプログラム領域２０１〜２０７を含む。メインプログラム領域２０１には、ゲーム等のメインプログラムデータが記憶される。操作状態判断プログラム記憶領域２０２には、コントローラ４０の操作状態等を示すデータを処理するためのプログラムが記憶される。書込処理プログラム記憶領域２０３は、ＣＰＵ１１がＲＣＰ１２に書込処理させるべき書込プログラムを記憶するものであって、例えば１つの背景画面で表示すべき複数の背景物体のテクスチュアデータに基づく画像データとして、色データをＲＡＭ１５のイメージバッファ領域（図７に示す１５２）に書き込みかつ奥行データをＺバッファ領域（図７に示す１５３）に書き込むプログラムと、表示のために背景イメージバッファ領域１５４中の領域１〜６の何れかの背景画面に対応する色データをイメージバッファ領域（１５２）に書込むプログラムと、背景Ｚバッファ領域１５５中の領域１〜６の何れかの背景画面に対応する奥行データをＺバッファ領域（１５３）に書込むプログラムとをそれぞれ記憶している。合成プログラム記憶領域２０４は、ＣＰＵ１１がＲＣＰ１２に作用して背景物体と移動物体を合成させるための合成プログラムを記憶している。移動制御プログラム記憶領域２０５は、ＣＰＵ１１がＲＣＰ１２に作用して三次元空間中の移動物体の位置を変化させるための制御プログラムを記憶している。背景画作成プログラム記憶領域２０６は、ＣＰＵ１１がＲＣＰ１２に作用して、全方向の背景画を作成させるための背景画作成プログラムを記憶している。カメラ制御プログラム記憶領域２０７は、ＣＰＵ１１がＲＣＰ１２に作用して、仮想のカメラによって三次元空間中のどの位置でどの方向を撮影させるかを制御する（又はオブジェクト空間の読み込むべき背景画面を決定する）ためのカメラ制御プログラムを記憶している。
【００１４】
ディスクドライブ２２は、ＲＯＭカートリッジ２０に代えて又はＲＯＭカートリッジ２０に加えて使用され、ゲームのための各種データ（プログラムデータ及び画像処理のためのデータを含む）を記憶した光学式または磁気等のディスク状記憶媒体からデータを読み出すための記録再生装置である。ディスクドライブ２２は、磁気ディスク等が装着されているとき、磁気ディスクに記憶されたデータを読み出し、そのデータをＲＡＭ１５に転送する。
【００１５】
図７はＲＡＭ１５の記憶領域を図解的に示すメモリマップである。ＲＡＭ１５には、プログラム領域１５１と、イメージバッファ領域１５２と、Ｚバッファ領域１５３と、色データ記憶手段の一例の背景イメージバッファ領域１５４と、奥行データ記憶手段の一例の背景Ｚバッファ領域１５５と、画像データ領域１５６と、サウンドメモリ領域１５７と、操作状態データ記憶領域１５８と、作業用（ワーキング）メモリ領域１５９とが含まれる。ＲＡＭ１５の各領域１５１〜１５９は、ＣＰＵ１１がバス制御回路１２１を介して、又はＲＣＰ１２が直接アクセスできるメモリ空間であって、使用されるゲームによって任意の容量（又は記憶空間）に割り当てられる。
【００１６】
具体的には、プログラム領域１５１は、ＲＯＭカートリッジ２０に記憶されているゲーム等のプログラムの一部を転送して記憶するものである。イメージバッファ領域１５２は、ディスプレイ３１の画素（ピクセル又はドット）数×１画素当たりの色データのビット数に相当する記憶容量を有し、ディスプレイ３１の画素に対応してドット毎の色データを記憶するものである。このイメージバッファ領域１５２は、画像処理モードにおいて画像データ領域１５６に記憶されている１つの背景画面中に表示すべき背景物体及び／又は移動物体の１つ以上の物体を複数のポリゴンの集合体で表示するための三次元座標データに基づいて視点位置から見える物体のドット毎の色データを一時記憶するとともに、表示モードにおいて背景イメージバッファ領域１５４に記憶されている何れかの面の背景画面を表示する際に当該背景画面のドット毎の色データを一時記憶する。Ｚバッファ領域１５３は、ディスプレイ３１の画素（ピクセル又はドット）数×１画素当たりの奥行データのビット数に相当する記憶容量を有し、ディスプレイ３１の画素に対応してドット毎の奥行データを記憶するものである。このＺバッファ領域１５３は、イメージバッファ領域１５２と同様に、画像処理モードにおいて背景物体及び／又は移動物体の１つ以上の物体を複数のポリゴンの集合体で表示するための三次元座標データに基づいて視点位置から見える部分の物体のドット毎に奥行データを一時記憶するとともに、表示モードにおいて背景Ｚバッファ領域１５５に記憶されている何れかの面の背景画面を当該背景画面のドット毎の奥行データを一時記憶する。背景イメージバッファ領域１５４及び背景Ｚバッファ領域１５５は、仮想カメラを視点位置から平行移動した３６０度の範囲を複数画面（例えば、前後左右の４画面）に分割し、それに上面と下面（底面）の６面の背景画像の色データ及び奥行データをそれぞれ記憶可能な記憶容量を有し、各面の背景画面毎に画面の画素数（又はドット数）に対応する記憶位置（アドレス）を有する。背景イメージバッファ領域１５４は、三次元空間中の或る方向に向けて仮想のカメラで撮影したときに写し出される背景画面（ＲＣＰ１２に含まれるＲＳＰ１２２及びＲＤＰ１２３によって作成される画像）のドット毎の色データを背景画像として記憶する。背景Ｚバッファ領域１５５は、背景イメージバッファ領域１５４に記憶されている色データに対応して、背景画像を構成する各ドット毎の奥行きデータを記憶する。画像データ領域１５６は、ＲＯＭカートリッジ２０に記憶されているゲーム表示のための背景物体及び／又は移動物体の物体毎に複数の集合体で構成されるポリゴンの座標データおよびテクスチュアデータを各物体毎に記憶するものであって、画像処理動作に先立って少なくとも１画面分のデータがＲＯＭカートリッジ２０から転送される。サウンドメモリ領域１５７は、ＲＯＭカートリッジ２０に記憶されている音声データが転送され、音声発生装置３２から発生させるべき音声の音声データを記憶するものである。操作状態データ記憶領域１５８は、コントローラ４０から読み込まれた操作状態を示す操作状態データを記憶する。作業用メモリ領域１５９は、ＣＰＵ１１がプログラムを実��中にパラメータ等のデータを一時記憶する。
【００１７】
ＲＣＰ１２に含まれるバス制御回路１２１は、ＣＰＵ１１からバスを介してパラレル信号で与えられたコマンドをパラレル−シリアル変換して、シリアル信号としてコントローラ制御回路１８に供給する。また、バス制御回路１２１は、コントローラ制御回路１８から入力されたシリアル信号をパラレル信号に変換し、バスを介してＣＰＵ１１へ出力する。コントローラ４０から読み込まれた走査状態を示すデータは、ＣＰＵ１１によって処理されたり、ＲＡＭ１５に書き込まれて一時記憶される等の処理が行われる。換言すれば、ＲＡＭ１５は、ＣＰＵ１１によって処理されるデータを一時記憶する記憶領域を含み、バス制御回路１２１を介してデータの読出又は書込を円滑に行うことに利用される。
【００１８】
図８はコントローラ制御回路１８の詳細な回路図である。コントローラ制御回路１８は、ＲＣＰ１２とコントローラ用コネクタ１９１〜１９４との間でデータをシリアルで送受信するために設けられ、データ転送制御回路１８１，送信回路１８２，受信回路１８３及び送受信データを一時記憶するためのＲＡＭ１８４を含む。データ転送制御回路１８１は、データ転送時にデータフォーマットを変換するためにパラレル−シリアル変換回路とシリアル−パラレル変換回路を含み、ＲＡＭ１８４の書込み読出し制御を行う。シリアル−パラレル変換回路は、ＲＣＰ１２から供給されるシリアルデータをパラレルデータに変換してＲＡＭ１８４又は送信回路１８２に与える。パラレル−シリアル変換回路は、ＲＡＭ１８４又は受信回路１８３から供給されるパラレルデータをシリアルデータに変換して、ＲＣＰ１２に与える。送信回路１８２は、データ転送制御回路１８１から供給されるコントローラ４０の信号読込制御のためのコマンド及びＲＡＭカートリッジ５０への書込データ（パラレルデータ）をシリアルデータに変換して、複数のコントローラ４０のそれぞれに対応するチャンネルＣＨ１〜ＣＨ４へ送出する。受信回路１８３は、各コントローラ４０に対応するチャンネルＣＨ１〜ＣＨ４から入力される各コントローラ４０の操作状態を示すデータ及びＲＡＭカートリッジ５０からの読出データをシリアルデータで受信し、パラレルデータに変換してデータ転送制御回路１８１に与える。データ転送制御回路１８１は、ＲＣＰ１２から転送されたデータ又は受信回路１８３で受信されたコントローラ４０の操作状態データやＲＡＭカートリッジ５０の読出データをＲＡＭ１８４に書込み制御したり、ＲＣＰ１２からの命令に基づいてＲＡＭ１８４のデータを読出してＲＣＰ１２へ転送するように働く。
【００１９】
ＲＡＭ１８４は、図示を省略しているが、記憶エリア１８４ａ〜１８４ｈを含む。エリア１８４ａには第１チャンネル用のコマンドが記憶され、エリア１８４ｂには第１チャンネル用の送信データ及び受信データが記憶される。同様に、エリア１８４ｃには第２チャンネル用のコマンド、エリア１８４ｄには第２チャンネル用の送信データ及び受信データがそれぞれ記憶される。エリア１８４ｅには第３チャンネル用のコマンド、エリア１８４ｆには第３チャンネル用の送信データ及び受信データがそれぞれ記憶される。エリア１８４ｇには第４チャンネル用のコマンド、エリア１８４ｈには第４チャンネル用の送信データ及び受信データがそれぞれ記憶される。
【００２０】
図９はコントローラ４０及び拡張装置の一例のＲＡＭカートリッジ５０の詳細な回路図である。コントローラ４０のハウジング内には、各スイッチ４０３〜４０７又はジョイスティック４５等の操作状態を検出しかつその検出データをコントローラ制御回路１８へ転送するために、操作信号処理回路４４等の電子回路が内蔵される。
操作信号処理回路４４は、受信回路４４１，制御回路４４２，スイッチ信号検出回路４４３，カウンタ回路４４４，ジョイポート制御回路４４６，リセット回路４４７及びＮＯＲゲート４４８を含む。受信回路４４１は、コントローラ制御回路１８から送信される制御信号やＲＡＭカートリッジ５０への書込データ等のシリアル信号をパラレル信号に変換して制御回路４４２に与える。制御回路４４２は、コントローラ制御回路１８から送信される制御信号がジョイスティック４５のＸ，Ｙ座標のリセット信号であるとき、リセット信号を発生してＮＯＲゲート４４８を介してカウンタ４４４内のＸ軸用カウンタ４４４ＸとＹ軸用カウンタ４４４Ｙの計数値をリセット（０）させる。
ジョイステック４５は、レバーの傾き方向のＸ軸方向とＹ軸方向に分解して傾き量に比例したパルス数を発生するように、Ｘ軸用とＹ軸用のフォトインタラプトを含み、それぞれのパルス信号をカウンタ４４４Ｘ及びカウンタ４４４Ｙに与える。カウンタ４４４Ｘは、ジョイスティック４５がＸ軸方向に傾けられたとき、その傾き量に応じて発生されるパルス数を計数する。カウンタ４４４Ｙは、ジョイスティック４５がＹ軸方向に傾けられたとき、その傾き量に応じて発生されるパルス数を計数する。従って、カウンタ４４４Ｘとカウンタ４４４Ｙとの計数値によって決まるＸ軸とＹ軸の合成ベクトルによって、主人公キャラクタ又はカーソルの移動方向と座標位置が決定される。なお、カウンタ４４４Ｘ及びカウンタ４４４Ｙは、電源投入時にリセット信号発生回路４４７から与えられるリセット信号、又はプレイヤが所定の２つのスイッチを同時に押圧されたときにスイッチ信号検出回路４４３から与えられるリセット信号によっても、その計数値がリセットされる。
スイッチ信号検出回路４４３は、制御回路４４２から一定周期（例えばテレビジョンのフレーム周期の１／３０秒間隔）で与えられるスイッチ状態の出力指令信号に応答して、十字スイッチ４０３，スイッチ４０４Ａ〜４０４Ｆ，４０５，４０６Ｌ，４０６Ｒ及び４０７の押圧状態によって変化する信号を読込み、それを制御回路４４２へ与える。制御回路４４２は、コントローラ制御回路１８からの操作状態データの読出指令信号に応答して、各スイッチ４０３〜４０７の操作状態データ及びカウンタ４４４Ｘ，４４４Ｙの計数値を所定のデータフォーマットの順序で送信回路４４５に与える。送信回路４４５は、制御回路４４２から出力されたこれらのパラレル信号をシリアルデータに変換して、変換回路４３及び信号線４２を介してコントローラ制御回路１８へ転送する。制御回路４４２には、アドレスバス及びデータバス並びにポートコネクタ４６を介してポート制御回路４４６が接続される。ポート制御回路４４６は、ＲＡＭカートリッジ５０がポートコネクタ４６に接続されているとき、ＣＰＵ１１の命令に従ってデータの入出力制御（又は送受信制御）を行う。
【００２１】
ＲＡＭカートリッジ５０は、アドレスバス及びデータバスにＲＡＭ５１を接続し、ＲＡＭ５１に電源を供給するための電池５２を接続するように構成される。ＲＡＭ５１は、アドレスバスを用いてアクセス可能な最大メモリ容量の半分以下の容量のＲＡＭであって、例えば２５６ｋビットのＲＡＭから成る。ＲＡＭ５１は、ゲームに関連するバックアップデータを記憶するものであり、ＲＡＭカートリッジ５０がポートコネクタ４６から抜き取られても電池５２からの電源供給を受けて記憶データを保持する。
【００２２】
図１０は本願発明の一実施例のビデオゲーム装置のメイン動作を示すフローチャートである。ステップ（図では「Ｓ」を付けて示す）１０において、ＣＰＵ１１は電源投入直後の画像処理装置１０を所定の初期状態に設定するための初期設定を行う。例えば、ＲＯＭカートリッジ２０内のプログラム領域に記憶されているゲームプログラムのうち、所定のゲームプログラムをＲＡＭ１５のプログラム領域１５１に転送し、各パラメータを初期値に設定する。
【００２２】
ステップ２０において、ＲＳＰ１２２は、ＣＰＵ１１の制御の下に、ＲＡＭ１５の画像データ領域１５６に記憶されている物体毎の複数のポリゴンの座標データ及びテクスチュアデータに基づいて、座標変換処理を行う。
まず、ＲＳＰ１２２がポリゴンの座標変換処理を行う場合の詳細を説明する。図１１は図３の背景物体の１つである建物２を表した図である。建物２は立方体であり、６枚の四角形の面から構成される。それぞれの四角形は、図１２に示すように、三角形ａｂｄとｂｃｄの２つの三角形に分割される。三角形の３つの頂点座標がポリゴンの三次元座標データＰ１（Ｘ１，Ｙ１，Ｚ１），Ｐ２（Ｘ２，Ｙ２，Ｚ２），Ｐ３（Ｘ３，Ｙ３，Ｚ３）で表される数値データである。同様に、他のコントローラ４０で操作可能な移動物体１と建物２や樹木３を表す背景物体も複数の三角形の集合体で構成されており、それぞれがポリゴンの座標データで表される。
ところで、ポリゴンのテクスチュアデータは、各ポリゴンの三次元座標データで規定される三角形の内部にどのような色，模様又は材質感を張り付けるかを指定するデータである。なお、テクスチュアデータは、三角形で囲まれる領域に存在する複数のドットの集合のうち或る１点のドットに着目すれば、色を指定する色データとなる。
図１３は図３に示す３次元空間（オブジェクト空間）を真上から見た平面図である。例えば、図１３に示すように、視点位置Ｏから見て前後左右の４面をカメラで撮影するとすれば、カメラ４から見える移動物体（主人公キャラクタ）１と建物２ａ，２ｂおよび２ｄと樹木３ａの内のカメラに対向している部分を規定する複数のポリゴンの座標データを処理すればよい。このとき、各物体毎にカメラ４の位置から見える範囲に存在するか否か（すなわち、物体のポリゴンを表示すべきか否か）を判断したのち、表示すべきポリゴンの座標データに基づいてカメラ４から見える斜線部分を前面の画像として撮影するごとく、二次元の画像データの読込みを行う。
【００２３】
次に、ＣＰＵ１１の制御の下に、ＲＤＰ１２３がイメージバッファ及びＺバッファの描画処理を行なう。この描画処理は、座標変換処理によって作成されたテクスチュアデータ及び二次元データに基づいて、ドット毎の色データに変換するとともに、奥行データを演算によって求め、色データをイメージバッファ１５２に書込むとともに、奥行データをＺバッファ１５３に書込む。このように、座標変換処理および描画処理をポリゴン毎に行なうことにより、表示すべき画像が作成される。
なお、図３には示されていないが、三次元空間には、コントローラ４０によって操作できない移動物体が存在してもよい。この場合の移動物体は、敵キャラクタ又は味方キャラクタとして、前述の主人公キャラクタと同時に表示され、プログラムに従って自動的に移動する物体として利用される。
【００２４】
ステップ３０において、ＣＰＵ１１は、ジョイスティックがどの方向にどれだけ傾けられているかを判断する。その判断結果に基づいて、ジョイステッィクの傾いている方向であって、傾き量に応じた速度で移動物体を移動させる。この処理は、ＣＰＵ１１がＸカウンタ４４４Ｘ，Ｙカウンタ４４４Ｙの計数値に基づいて、三次元空間中の移動物体を形成しているポリゴンの三次元座標データを徐々に変化させることによって達成される。
【００２５】
ステップ４０において、ＣＰＵ１１は、移動物体が三次元空間中の所定の位置に存在するか否かを判断する。もし、移動物体が所定の位置に存在しなかったことが判断されたときはステップ２０及び３０の動作を繰り返し、移動物体が所定の位置に存在したことが判断されたときにステップ５０の処理を実行する。
【００２６】
ステップ５０において、所定撮影位置から前後左右と上下の６方向の背景画面が順次撮影される。その詳細は、図１４のサブルーチンに示される。図１４を参照して、ステップ５１において、撮影している面の数を表す変数Ｓが１に設定される。変数Ｓは、ＲＡＭ１５の作業用メモリ領域１５９の一部に一時書込みされる。ステップ５２において、撮影すべき（画像データを書込むべき）場所及び方向が決定される。撮影場所は、ステップ３０において、移動物体が存在した位置又は背景画像を撮影するのに都合の良い位置等であって、ゲームの状況に応じてゲームプログラムによって決定される。撮影方向は、移動物体が存在する位置から前後左右上下の６方向のうち、撮影の完了していない方向を順次設定することによって決定される。ステップ５３において、ＲＣＰ１２が図１０のステップ２０と同様の処理を行なう。１つの背景画面の各ドットに対応する記憶位置にそれぞれの色データの書込みが全てのドットについて終了すると、ステップ５４において、ＣＰＵ１１はイメージバッファ１５２に作成された二次元画像の色データを背景イメージバッファ１５４に含まれる領域１〜６のうちの撮影した背景画面に対応する領域に転送して一時記憶させる。ステップ５５において、ＣＰＵ１１は、Ｚバッファ１５３上に作成された或る背景画面（例えば、最初は前面）の各ドット毎の奥行データを複数の背景Ｚバッファ１５４の領域１〜６うち撮影した背景画面に対応する領域（例えば、最初は前面に対応する領域１）に転送して書込み、一時記憶させる。ステップ５６において、ＣＰＵ１１は、変数Ｓを１だけインクリメントして、次に撮影すべき方向を指定する。続くステップ５７において、ＣＰＵ１１は、変数Ｓの値が６より大きいか否かを判断することにより、６面の背景画面の画像データの転送・書込みが完了したか否かを判断する。
もし、変数Ｓが６より大きくない（５以下の）場合は、ステップ５２へ戻り、ステップ５２から５６を繰り返すことにより、６面分の背景画面の画像データの書込みが行われるまで、同様の処理を続ける。一方、変数Ｓが６以上であることを判断すると、図１４（ステップ５０）のサブルーチンを終了する。
このようにして、ステップ５０のサブルーチンの全ての処理が終了したとき、背景イメージバッファ１５４の各領域１〜６には撮影位置から見た前後左右上下を示す６面の背景画像のドット毎の色データが一時記憶されるとともに、背景Ｚバッファ１５５の領域１〜６には撮影位置から見た前後左右上下を示す６面の背景画像のドット毎の奥行データが記憶されたこととなる。
【００２７】
ステップ５０のサブルーチンの全ての処理が終了した状態において、撮影位置から前後左右の４方向の背景画面の色データと奥行データを作成した場合において、主人公キャラクタの移動物体１から前後左右の背景画面を見わたせば図１５に示す三次元の背景画面と等価となる。ここで、図１５を参照して詳細に説明すると、図３に示すオブジェクト空間において視点位置０からカメラ４を前面（正面）に向けて撮影したときの背景画面５Ｆが正面の壁に貼りつけたことと等価となる。同様にして、カメラ４を背面に向けて撮影したときの背景画面５Ｂが背面の壁に貼りつけられ、カメラ４を右側に向けて撮影したときの背景画面５Ｒが右側面の壁に貼りつけられ、カメラ４を左側に向けて撮影したときの背景画面５Ｒが左側面の壁に貼りつけられたことと等価となる。なお、図示を省略しているが、同様にして、カメラ４を上面に向けて撮影したときの背景画面５Ｒが天井面に貼りつけられ、カメラ４を下面（底面）に向けて撮影したときの背景画面５Ｒが下面（又は床面）に貼りつけられたことになる。実際の画像データの処理としては、これらの背景画面５Ｆ，５Ｂ，５Ｒ，５Ｌ，５Ｕ，５  を構成するドット毎の色データが背景イメージバッファ１５４の領域１〜領域６に一時書込みされ、その奥行データが背景Ｚバッファ１５５の領域１〜領域６に一時書込みされることになる。
【００２８】
実際のゲームにおいては、前述のように前後左右上下の６面の背景画面の画像データにもとづいて、図１０に示すステップ６０において、背景物体と移動物体を合成して表示するための処理が行われる。この合成処理は、図１６に示すサブルーチンのフローチャートによって達成されるる。図１６を参照して、ＲＤＰ１２２は、ＣＰＵ１１の制御の下に、ステップ６１において、コントローラからの操作状態データの読込処理を行なう。
【００２９】
このステップ６１の詳細は、図１７の操作状態データ処理サブルーチンに示される。図１７を参照して、ＣＰＵ１１は、ステップ６１１において、操作状態データ領域１５８から操作状態データを読み出した後、以下の処理を行う。ステップ６１２において、Ｘカウンタ４４４Ｘの計数値Ｘが０より大きいか否かが判断される。もし、Ｘカウンタ４４４Ｘの計数値Ｘが０より大きいことが判断されると、ステップ６１３において、ＲＳＰ１２２は移動物体１を右向きに表示させるように移動物体１を構成しているポリゴンの三次元座標データの変更処理（例えば、移動物体１を構成する複数のポリゴンのＸ座標データをマイナスの値を増大させる処理）を行なう。続くステップ６１４において、三次元空間中の移動物体１の位置が右方向に移動される。これに連動して、ステップ６１５において、カメラが４撮影位置を中心として正面から右方向に平行移動されることにより徐々に３６０度回動されて、背景画面を右から左へスクロール（左スクロール）させる。この処理は、例えば背景イメージバッファ１５４及び背景Ｚバッファ１５５の複数の領域のうち、表示すべき背景画面（例えば５Ｆと５Ｒ）の範囲が設定された後、その設定範囲を一定にしたままで表示すべき背景画面を少しずつ右へずらせることによって達成される。その後、ステップ６１６へ進む。
【００３０】
一方、前述のステップ６１２において、Ｘカウンタ４４４Ｘの計数値Ｘが０より小さいことが判断されると、ステップ６１７へ進む。ステップ６１７において、ＲＳＰ１２２は移動物体１が左向きとなるように、移動物体１を構成しているポリゴンの三次元座標データの変更処理（例えば、Ｘ座標データをマイナスの値を増大させる処理）を行なう。ステップ６１８において、三次元空間中の移動物体１の表示位置が左方向へ徐々に移動させられる。ステップ６１９において、撮影位置０を中心としてカメラ４が正面から左方向に平行移動されることにより、徐々に３６０度左方向へ回動されて、背景画を左から右方向へスクロール（右スクロール）させる。この処理は、背景用イメージバッファ領域および背景用Ｚバッファ領域のうち、表示すべき背景画の範囲（例えば５Ｆと５Ｌ）の範囲が設定された後、その設定範囲を一定にしたままで表示すべき背景画面を少しずつ左へずらせることによって達成される。その後、ステップ６２０へ進む。
なお、ステップ６１６において、Ｘカウンタ４４４Ｘの計数値Ｘが０より小さくない（すなわち大きい）と判断された場合は、ステップ６２０へ進む。
【００３１】
ステップ６２０において、ＣＰＵ１１はＹカウンタ４４４Ｙの計数値Ｙが０より大きいか否かを判断する。この判断は、移動物体１を奥行方向に移動すべきか否かの判断であって、ジョイスティック４５が前方向に倒されると前進し、後方向に倒されると後退するように表示させるためである。もし、Ｙカウンタ４４４Ｙの計数値Ｙが０より大きいと判断された場合は、ステップ６２１において、移動物体１を後向きに表示させるように、移動物体１を構成しているポリゴンの三次元座標データの変更処理が行われる。この座標変更処理に応じて、ステップ６２２において、移動物体１が三次元空間中の奥行方向に移動表示される。具体的には、移動物体１がカメラ４から遠ざかる（奥行方向に進む）ように表示するために、移動物体１を構成する複数のポリゴンの三次元座標データ中のＺ座標データを増大させるように座標変換される。その結果、移動物体１は、画面の奥行方向へ進むように表示される。その後、ステップ６２３へ進む。
一方、ステップ６２０において、Ｙカウンタ４４４Ｙの計数値Ｙが０より大きくない（小さい）ことが判断された場合も、ステップ６２３へ進む。
【００３２】
ステップ６２３において、ＣＰＵ１１は、Ｙカウンタ４４４Ｙの計数値Ｙが０より小さいか否かを判断する。もし、Ｙカウンタ４４４Ｙの計数値Ｙが０より小さいことが判断されると、続くステップ６２４において、移動物体１を前向き（プレイヤ側向き）に表示するために、移動物体１を構成しているポリゴンの座標データの変更処理（例えば、移動物体１の背中側のポリゴンのＺ座標データよりも胸側のポリゴンのＺ座標データを小さく設定する処理）が行われる。ステップ６２５において、移動物体１が三次元空間中の手前方向に移動されるように表示処理される。その後、ステップ６３へ進む。
なお、移動物体１の三次元空間中の位置の変化量は、Ｘカウンタ４４４ＸとＹウンタ４４４Ｙのそれぞれのカウント値の大小に応じて変化する。例えば、Ｘカウンタ４４４Ｘのカウント値が大きければ移動物体１を右へ大きく移動させ、Ｙカウンタ４４４Ｙのカウント値が大きければ、移動物体１を奥行方向へ大きく移動させることになる。
【００３３】
再び、図１６を参照して、ステップ６３において、ステップ６１で設定された表示すべき背景画面（例えば、カメラ４が正面を向いている場合は背景画面５Ｆに対応する領域１）の色データが背景イメージバッファ１５４からイメージバッファ１５２へ転送される。ステップ６４において、ステップ６１で設定された表示すべき背景画面（例えば、５Ｆに対応する領域１）の奥行データが背景Ｚバッファ領域１５５からＺバッファ領域１５３へ転送される。その後、ステップ６５へ進む。
【００３４】
ステップ６５において、背景画面に移動物体を合成して表示するための画像合成処理が行われる。この画像合成処理の詳細は、図１８の画像合成処理サブルーチンに示される。図１８を参照して、ステップ６５１において、ＲＣＰ１２が移動物体１を構成する複数のポリゴンの三次元座標データからスクリーン座標に座標変換し、カメラ４で写される（見える）移動物体１のドット毎のスクリーン座標と奥行値を求める。ここで、「スクリーン座標」とは、ディスプレイ３０の画面に対応する表示画面座標であり、スクリーン表示の各ドット位置がイメージバッファ１５２及びＺバッファ１５３のアドレスに対応している。ステップ６５２において、ＲＤＰ１２３は、ステップ６５１で求めた移動物体１の或るドット位置の奥行データと、そのドット位置に対応する（すなわち、Ｘ座標データとＹ座標データの両方が共通する）背景画面の奥行データをＺバッファ領域１５３から読出し、ステップ６５３において移動物体１と背景画面のＸ，Ｙ座標の同じ位置のそれぞれの奥行データを比較する。その比較の結果、移動物体１の奥行データが小さい（背景画面より手前にある）場合は、ステップ６５４において、当該ドットの色データをイメージバッファ１５２の対応するアドレスに書込むとともに、ステップ６５５において、移動物体１の当該ドットの奥行データをＺバッファ１５３の対応するアドレスに書込む。
一方、前述のステップ６５３において、移動物体１と背景画面のＸ，Ｙ座標の同じドット位置のそれぞれの奥行データを比較した場合に、移動物体１の奥行データの方が大きいことが判断されると、移動物体１の奥行方向位置が背景画面５Ｆよりも遠く背景画面中のいずれかの背景物体に隠れて見えないため、移動物体１の色データ及び奥行データの何れもイメージバッファ１５２，Ｚバッファ１５３に書き込まれない。そして、ステップ６５６において、スクリーン座標の全てのドット位置について、上述のステップ６５１〜６５５の処理が終了したか否かが判断され、終了していないことが判断されるとステップ６５１へ戻り、上述のステップ６５１〜６５６の処理が繰り返される。終了したことが判断されると、ステップ６６へ進む。
【００３５】
ステップ６６において、バス制御回路１２１は、イメージバッファ１５２に記憶されているドット毎の色データに基づいて、画像信号発生回路１７に画像信号を出力する。これによって、画像信号発生回路１７が例えばビデオ信号又はＲＧＢ信号等のカラー表示のための信号を発生してディスプレイ３１に供給することにより、使用者はディスプレイ３１上で三次元表示された画像を見ることができる。
【００３６】
その後、ＣＰＵ１１は、ステップ６７において、合成処理サブルーチンが終了したか否かを判断し、合成処理が終了していないことを判断すると、ステップ６１へ戻り、前述のステップ６１〜６７の動作を繰り返す。一方、合成処理が終了したことを判断すると、ステップ７０へ進む。ステップ７０において、ゲームが終了したか否かが判断される。ゲームオーバではないと判断された場合は、ステップ２０に戻り、上述の動作を繰り返す。一方、ＣＰＵ１１は、ＲＡＭ１５のプログラム領域１５１に記憶されているゲームプログラムを実行し終えた（又は外部ＲＯＭ２１に記憶されているゲームプログラムを全て実行した）か、操作者が１回のゲームにおいて許容されている回数だけミスをしたか、それともライフを使い切ったこと等のゲームプログラムで設定されたゲームオーバー条件に達したことに基づいて、ゲームを終了させる。
【００３７】
次に、本願実施例を用いて、移動物体１が背景物体との関係で前後関係を自由自在に変化させて表示する場合の動作原理を説明する。
図１９は本願実施例を用いて移動物体１が建物２と樹木３の間を通り抜けるように表示制御する場合の表示結果の図解図である。背景画面に現れる複数の背景物体は三次元空間でモデリングされ、二次元の平面画像としてレンダリングされることにより、背景画像とされる。このとき、イメージバッファ１５２とＺバッファ１５３には、図１４に示すフローチャートとその動作説明のようにして、複数の背景物体２，３のテクスチュアデータに基づくドット毎の色データと、当該ドットの奥行データが書き込まれているものとする。
【００３８】
例えば、移動物体１が建物２と樹木３の間を通るように表示する場合は、建物２が最も遠くに位置し、その前に移動物体１が通り、移動物体１の通る位置より前に樹木３が表示される。その場合、建物２を構成する複数のポリゴンの各ドットの奥行データ（Ｚデータ）が最も大きく（遠く）選ばれ、樹木３を構成する複数のポリゴンの各ドットの奥行データが最も小さく（近く）選ばれ、移動物体１を構成する複数のポリゴンの各ドットの奥行データが両物体の中間の値に選ばれる。そして、移動物体１が位置(a) から(b) を通って左へ移動する際に、樹木３の手前の位置(c)に到達するまでは移動物体１の奥行データが建物２の奥行データよりも小さい（手前にある）ため、移動物体と背景物体との合成処理においては移動物体１の各ドットの色データがデスプレイ３１の所定のフレーム毎にイメージバッファ１５２の当該各ドットのＸ座標及びＹ座標に対応するアドレスに重書きされる。これと同時に、移動物体１の各ドットの奥行データがＺバッファ１５３の当該各ドットのＸ座標及びＹ座標に対応するアドレスに重ね書きされる。そのため、ディスプレイ３１に表示する場合は、イメージバッファ１５２に記憶されている色データを順次読み出すことにより、移動物体１が建物２の前を移動物体１が移動しているように見える。
そして、移動物体１が樹木３の位置(c)に来ると、樹木３よりも奥を通るため、樹木３の葉で隠れる部分（移動物体１の胸より上の部分）の奥行データが樹木３の奥行データよりも大きくなり、その部分の色データがイメージバッファ１５２に重ね書きされず、下半身の部分の色データのみがイメージバッファ１５２の当該各ドットの対応するアドレスに重書きされる。このとき、移動物体１の当該ドットの奥行データもＺバッファ１５３の対応するアドレスに書き込まれる。その結果、移動物体１の下半身の部分が樹木３の幹の横から見えるように表示される。さらに、移動物体１が樹木３の幹の後ろを通るときは、その部分の色データがイメージバッファ１５２に書き込まれず、表示された場合は移動物体１の下半身が幹に隠れて見えない。さらに、移動物体１が左に移動すると、下半身が幹の後ろから現れ、やがて位置(d) を過ぎたときから全身の色データがイメージバッファ１５２に書き込まれるので、移動物体１の全身が表示される。
【００３９】
一方、移動物体１が建物２及び樹木３の前を通り過ぎるような画像を表示する場合は、移動物体１を構成する全てのポリゴンのドット毎のＺ座標データが建物２及び樹木３のそれぞれを構成するポリゴンのドット毎のＺ座標データよりも小さくなるようにプロクラム設定しておくことにより、移動物体１が位置(a) から(e) に至るまでの全期間において移動物体１を構成する全てのポリゴンのドット毎の色データがイメージバッファ１５２に順次書き込まれるとともに、当該ドットの奥行データがＺバッファ１５３に順次書き込まれる。その結果、イメージバッファ１５２に記憶されている色データがディスプレイ３１のラスタスキャンに同期して読み出されると、図１に示すような画像が表示される。
逆に、移動物体１が建物２及び樹木３の後ろ通り過ぎるような画像を表示する場合は、移動物体１を構成する全てのポリゴンのドット毎のＺ座標データが建物２及び樹木３のそれぞれを構成するポリゴンのドット毎のＺ座標データよりも大きくなるようにプロクラム設定しておくとにより、移動物体１が建物２の右端から左端まで移動する期間において、移動物体１を構成する全てのポリゴンのドット毎の色データがイメージバッファ１５２に書き込まれず、背景物体が何もない位置に居るときだけ書き込まれる。その結果、イメージバッファ１５２に記憶されている色データがディスプレイ３１のラスタスキャンに同期して読み出されると、図２に示すような画像が表示される。
【００４０】
以上説明したように、この実施例によれば、背景画面は、イメージバッファの１枚分のみであるにも関わらず、レンダリング時に奥行データをＺバッファに一時記憶させておくことで、複数の物体を重ね合わせても、重なった部分と重なってない部分で実際に見える場合と同様の三次元表現が可能となる。
【００４１】
なお、上述の実施例では、複数の背景物体と少なくとも１つの移動物体を重ねて表示する場合を説明したが、この発明の原理は背景物体だけの奥行き方向の位置関係に基づいて近い背景物体を優先的に表示することもできる。また、上述の実施例では、イメージバッファ１５２から色データを読み出して表示する前の段階で、背景物体と移動物体を合成し、イメージバッファ１５２に記憶されている色データをラスタスキャンに同期して読み出す場合を説明したが、処理能力の早いＣＰＵ１１を利用するならば、背景画面の画像データだけをイメージバッファ１５２に記憶させておき、イメージバッファ１５２から色データを読出すときに移動物体との優先順位の優劣（すなわち、奥行データの大小）に基づいて、背景画面と移動物体の何れか一方の色データを出力するようにしてもよい。
【００４２】
【発明の効果】
以上のように、本願発明によれば、ポリゴンで描かれた多くの背景物体及び／又は移動物体等の各種物体が存在する三次元空間において、各種物体を表示する場合に複数の物体が重なっても様々な組合せの重なり具合を表現でき、現実に則した画像表現を実現できる。
【００４３】
本願の実施例又は実施態様によれば、リアルタイムで三次元空間の全てのポリゴンを処理しているのと同様な視覚効果を発揮することができる。さらに、カメラ位置の周囲の複数の背景画面で表示すべき多数の物体のポリゴンを事前にドット単位の色データに変換しておくことにより、ポリゴンで表現される物体の一画面に表示可能な数が大幅に増加しても、画像処理能力の低下をきたすことなく処理できる利点がある。
また、背景画面に移動物体を合成して表示する場合であっても、背景画面に描かれているそれぞれの背景物体と移動物体の前後関係を表現することができるため、恰も移動物体が絵本の中に入り込み、その中を動き回るかのような表現が可能となる利点もある。
さらに、背景画面のドット毎に奥行データを持たせているので、移動物体との間でドット毎の前後関係を指定することが可能となり、よりリアルな三次元画像を表示可能となる利点もある。
【００４４】
【図面の簡単な説明】
【図１】従来技術で背景物体と移動物体を表示する場合のスクリーン空間の一例を示す図である。
【図２】従来技術で背景物体と移動物体を表示する場合のスクリーン空間の他の例を示す図である。
【図３】この発明の原理を説明するためのオブジェクト（三次元）空間の一例を示す斜視図である。
【図４】この発明の一実施例の画像処理装置のシステム構成を示す外観図である。
【図５】この発明の一実施例の画像処理装置のブロック図である。
【図６】外部ＲＯＭ２１のメモリ空間を図解的に示したメモリマップである。
【図７】ＲＡＭ１５のメモリ空間を図解的に示したメモリマップである。
【図８】コントローラ制御回路１８の詳細な回路図である。
【図９】コントローラ４０のブロック図である。
【図１０】ゲーム処理のメインフローチャートである。
【図１１】背景物体の一例の建物をポリゴン表示する場合の外観斜視図である。
【図１２】背景物体の一例の建物の或る１つの面を構成するポリゴンを分解的に示した平面図である。
【図１３】本願の実施例によって表現される一例の三次元空間を上部から見た平面図である。
【図１４】６方向からカメラで撮影するように背景画像データを取り込む場合のフローチャートである。
【図１５】三次元空間を二次元の背景画像に変換した結果を視覚的に表現した図である。
【図１６】背景物体と移動物体の合成処理動作のサブルーチンフローチャートである。
【図１７】コントローラの操作状態データを判断する動作のサブルーチンのフローチャートである。
【図１８】移動物体を背景画像に合成する動作を説明するためのフローチャートである。
【図１９】本願発明の背景物体と移動物体を合成表示する一例を示す図である。
【符号の説明】
１０・・・画像処理装置
１１・・・ＣＰＵ（中央処理装置）
１２・・・ＲＣＰ
１５・・・ＲＡＭ（色データ記憶手段、奥行データ記憶手段）
１８・・・コントローラ制御回路
２０・・・ＲＯＭカートリッジ
３０・・・表示装置
４０・・・コントローラ
４４・・・操作信号処理回路
４４４・・・Ｘカウンタ４４４ＸとＹカウンタ４４４Ｙを含むカウンタ
４５・・・ジョイスティック
５０・・・ＲＡＭカートリッジ
５１・・・ＲＡＭ（書込読出し可能な記憶手段）
【図１】
0003723301.tif 000002
【図２】
0003723301.tif 000003
【図３】
0003723301.tif 000004
【図４】
0003723301.tif 000005
【図５】
0003723301.tif 000006
【図６】
0003723301.tif 000007
【図７】
0003723301.tif 000008
【図８】
0003723301.tif 000009
【図９】
0003723301.tif 000010
【図１０】
0003723301.tif 000011
【図１１】
0003723301.tif 000012
【図１２】
0003723301.tif 000013
【図１３】
0003723301.tif 000014
【図１４】
0003723301.tif 000015
【図１５】
0003723301.tif 000016
【図１６】
0003723301.tif 000017
【図１７】
0003723301.tif 000018
【図１８】
0003723301.tif 000019
【図１９】
0003723301.tif 000020