(57)【特許請求の範囲】
【請求項１】
光源は真上にあり、影はオブジェクトの真下に現れ、視点は正面の斜め上からオブジェクトを見た状態での表示機能を有する表示装置において、
オブジェクトＯＢＪ、バックグラウンドＢＧ、および影とを、それぞれ別々のオブジェクトとして扱い、
視点から見て、いずれのオブジェクトを手前に表示するかを、オブジェクトＯＢＪ、バックグラウンドＢＧ、および影の座標から計算し、
影をバックグラウンドＢＧ上に表示するのか、バックグラウンドＢＧの裏側あって表示しないか、を区別することを特徴とする影の表示機能を有する表示装置。
【請求項２】
長方形を１単位として複数の行列に分けられた領域に配置されたオブジェクトと、長方形に区切られた各領域におけるオブジェクトの高さデータとから、対象領域の隠れ易さの指標を求め、
視点から見て、いずれのオブジェクトを手前に表示するかを、隠れ易さの指標と、オブジェクトＯＢＪ、バックグラウンドＢＧ、および影の座標とから、計算することを特徴とする請求項１に記載の影の表示機能を有する表示装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、ＴＶゲーム装置に最適な影の表示機能を有する表示装置に関する。
【０００２】
【従来の技術】
ＴＶゲーム装置において、３次元空間における影の表示、即ち、太陽光をオブジェクト（例えばゲームキャラクタ）に照射して生ずる影の表示を行うことは、処理量が多くなるので、従来の低速なＴＶゲーム装置においては行われていなかった。
【０００３】
【発明が解決しようとする課題】
しかしながら、３次元空間においても影の表示を行うことは、現実感を増大させることで好ましい。
【０００４】
本発明は、上記の問題点に鑑みてなされたもので、３次元空間において、オブジェクトとその影とを、高速に表示することを目的とする。
【０００５】
【課題を解決するための手段】
この目的を達成するために、請求項１の発明による影の表示機能を有する表示装置は、光源は真上にあり、影はオブジェクトの真下に現れ、視点は正面の斜め上からオブジェクトを見た状態での表示機能を有する表示装置において（段落００１２）、オブジェクトＯＢＪ、バックグラウンドＢＧ、および影とを、それぞれ別々のオブジェクトとして扱い、視点から見て、いずれのオブジェクトを手前に表示するか（表示優先順位）を、オブジェクトＯＢＪ、バックグラウンドＢＧ、および影の座標から計算し、影をバックグラウンドＢＧ上に表示するのか（図２（ｂ））、バックグラウンドＢＧの裏側あって表示しないか（図２（ｃ））、を区別することを特徴とする。
請求項２の発明による影の表示機能を有する表示装置は、請求項１において、長方形を１単位として複数の行列に分けられた領域に配置されたオブジェクトと、長方形に区切られた各領域におけるオブジェクトの高さデータとから、対象領域の隠れ易さの指標（隠れ領域の高さデータ）を求め、視点から見て、いずれのオブジェクトを手前に表示するか（表示優先順位）を、隠れ易さの指標（隠れ領域の高さデータ）と、オブジェクトＯＢＪ、バックグラウンドＢＧ、および影の座標とから、計算することを特徴とする。
【０００６】
【作用】
上記構成の本発明によれば、オブジェクトとその影とを、それぞれ独立したオブジェクトとして扱うようにしたので、３次元空間においても、複数のオブジェクトの処理として扱うだけなので計算量が削減され、高速に表示することが可能となる。
【０００７】
【実施例】
以下、本発明の実施例を図面に基づいて説明する。
【０００８】
図１は、本発明による影の表示機能を有する表示装置の一実施例を示すブロック結線図である。
【０００９】
図１において、ＴＶゲーム装置２１には、操作装置２２およびモニタ２３が接続されている。操作装置２２は、パッド、ボタン、レバー等のプレイヤーによって操作される装置である。モニタ２３は、ＴＶゲーム装置２１の画像出力信号を可視像に変換して表示する。なお、図１では音声出力回路については省略してある。
【００１０】
ＴＶゲーム装置２１は、入出力制御回路６、ＣＰＵ回路７、ワークメモリ９、キャラクタメモリ１２、およびスクリーンメモリ１４等から構成されている。入出力制御回路６は、プレイヤーがパッド、ボタン、レバー等の操作装置２２を操作した状態を検出して、ＣＰＵ回路７に伝達する。ＣＰＵ回路７との信号の授受は、システムバス８を介して行われる。ワークメモリ９は、ＣＰＵ回路７の作業領域として用いられる。プログラムメモリ１０には、ＣＰＵ回路７のプログラムが記憶されている。
【００１１】
ＣＰＵ回路７が画像出力を行うには、システムバス８を介してスクリーンメモリ１４に画像データを書き込む。ＣＰＵ回路７は、キャラクタメモリ１２から読み出したオブジェクト画像や背景画像をスクリーンメモリ１４に書き込むことで、モニタ２３に画像表示を行う。モニタ２３は、スクリーンメモリ１４に書き込まれた画像データを読み出し、可視像に変換して表示する。プレイヤーは、このモニタ２３の可視像を見ながら、パッド、ボタン、レバー等の操作装置２２を操作してゲームを進行する。
【００１２】
なお、ＣＰＵ回路７が音声出力を行う場合には、図外の音声回路で音声信号処理を行い、音声信号を画像信号と並行してモニタ２３に供給して、モニタ２３のスピーカ（図示せず）から可聴音として出力する。プレイヤーは、この音声出力を聞きながら、またモニタ２３の可視像を見ながら、パッド、ボタン、レバー等の操作装置２２を操作してゲームを進行する。
【００１３】
次に、ＣＰＵ回路７の処理について図２から図７と共に説明する。なお、この発明では、正面の斜め上からオブジェクトを見た状態を想定している。また、光源である太陽は頭上（真上）に存在するものとする。
【００１４】
図２は、ＣＰＵ回路７の後述する処理によってモニタ３に表示される結果を示している。図２（ａ）は、バックグラウンドＢＧの高さデータを示している。即ち、高さ２の４つの領域が１つにまとまったビルディングを想定している。なお、図２から図７においては、長方形を１つの単位として６行６列に分けられた領域（座標）で管理される。図２（ｂ）および図２（ｃ）は、バックグラウンドＢＧと２つのオブジェクトがモニタ３に表示された状態を示している。影は、頭上の太陽から照射された光がオブジェクトＯＢＪによって遮断されることを想定して計算により生成される。図２（ｂ）では、オブジェクトＯＢＪはバックグラウンドＢＧ（ビルディング）の真上に位置するために、バックグラウンドＢＧ（ビルディング）の屋上に影が生成されている。図２（ｃ）では、オブジェクトＯＢＪはバックグラウンドＢＧ（ビルディング）の奥側に位置するために、影はバックグラウンドＢＧ（ビルディング）に遮られて見えない状態を示している。後述するように、オブジェクトＯＢＪと影とを共にオブジェクトとして扱うようにしている点が本発明の特徴である。
【００１５】
図３は、ＣＰＵ回路７が図２に示す結果を得るための動作を説明するフローチャートである。図４および図５は、図３に示すステップＳ３を詳細に説明する概念図およびフローチャートである。図６および図７は、図３に示すステップＳ４を詳細に説明する概念図およびフローチャートである。
【００１６】
図３のプログラムがスタートすると、まずオブジェクトＯＢＪのＸＹＺ座標（図４および図６参照）を特定する（ステップＳ１）。次に、特定した座標のＸＺ座標（図２（ａ）参照）から高さデータを特定する（ステップＳ２）。次に、バックグラウンドＢＧと影との隠れ処理を行う。以下、ステップＳ３の隠れ処理について、図４および図５と共に説明する。なお、この発明では、正面の斜め上からオブジェクトを見た状態を想定して、複数のオブジェクトの位置計算を行うものとする。
【００１７】
図４は、段部を有するバックグラウンドＢＧを斜め後方から見た斜視図である。この図４を参照しながら図５のフローチャートについて説明する。なお、隠れ易さの指標（隠れ領域の高さデータ）を求めようとする領域は、長方形を１つの単位として６行６列に分けられた領域の一部、即ち図４に斜線で示したＡ［３，３］、Ａ［３，４］、Ａ［４，３］、およびＡ［４，４］の領域とする。
【００１８】
図５のプログラムがスタートすると、まず隠れ易さの指標を求めようとする対象（領域Ａ）を特定する（ステップＳ３１）。ここでは図４の例で、領域Ａ［４，３］であるものとする。まずＺ方向（図４参照）に１つ進む。即ち、領域Ａ［４，４］に進む。次に、領域Ａ［４，４］の高さデータが、１以上か否かを判断する（ステップＳ３３）。高さデータが１より小さいときはステップＳ３２に戻り、高さデータが１以上のときはステップＳ３４に移行する。ここでは、領域Ａ［４，４］の高さデータがゼロなので、ステップＳ３２に戻る。
【００１９】
ステップＳ３２では、Ｚ方向に１つ進む。即ち、領域Ａ［４，５］に進む。次に、領域Ａ［４，５］の高さデータが、１以上か否かを判断する（ステップＳ３３）。ここでは、領域Ａ［４，５］の高さデータが４なので、ステップＳ３４に移行する。ここまで移動した距離（ステップＳ３２の繰り返し量）は２である。
【００２０】
ステップＳ３４では、次式から隠れ易さの指標ａを求める。
【００２１】
ａ＝｛（高さ−距離＋１）＆（−１）｝／２    ・・・（１）
【００２２】
数式１で＆は、論理積（ＡＮＤ）処理を意味する。また、分母の２は、俯瞰する角度（水平面と視線とが成す角度）が６０度であり、高さが１／２に見えることを意味している。従って、俯瞰する角度が大きくなって高さが１／３に見える場合には、分母は３になる。更に、１を加算して（−１）と論理積（ＡＮＤ）をとっているのは、２で割ったときに整数になるようにするためである。
【００２３】
ステップＳ３４で、数式１から隠れ易さの指標ａを求めると、
【００２４】
ａ＝｛（４−２＋１）＆（−１）｝／２＝２
となる。このａ＝２をステップＳ３５において一時記憶する。ステップＳ３６では、高さマップ（６行６列に分けられた領域全体）の端に至ったか否かを判断する。ここでは、Ｚ方向に進むことができるので（即ち、端に至っておらず）、ステップＳ３２に戻る。
【００２５】
ステップＳ３２では、Ｚ方向に１つ進む。即ち、領域Ａ［４，６］に進む。次に、領域Ａ［４，６］の高さデータが、１以上か否かを判断する（ステップＳ３３）。ここでは、領域Ａ［４，６］の高さデータが２なので、ステップＳ３４に移行する。ここまで移動した距離（ステップＳ３２の繰り返し量）は３である。
【００２６】
ステップＳ３４で、数式１から隠れ易さの指標ａを求めると、
【００２７】
ａ＝｛（２−３＋１）＆（−１）｝／２＝０
となる。このａ＝０をステップＳ３５において一時記憶する。ステップＳ３６では、高さマップの端に至ったか否かを判断する。ここでは、Ｚ方向に進むことができない（最端に至った）ので、ステップＳ３７に移行する。ステップＳ３７では、これまでの計算結果を比較して、最も大きい隠れ易さの指標値である２を出力（格納）して、プログラムを終了する。
【００２８】
なお、他のＡ［３，３］、Ａ［３，４］、およびＡ［４，４］の領域についても上述したプログラムが実行され、図４に斜線で示した全ての領域について隠れ易さの指標が求められ、隠れ領域の高さデータが取得される。この隠れ領域の高さデータは、次のステップＳ４（図３）において利用される。
【００２９】
ステップＳ４では、オブジェクトＯＢＪと影との隠れ処理が行われる。以下、ステップＳ４の隠れ処理について、図６および図７と共に説明する。なお、図６および図７では、ゲームのプレイヤーが正面の斜め上からオブジェクトを見る状態を想定して、複数のオブジェクトの位置計算を行うものとする。
【００３０】
図６は、直方体（オブジェクト１〜４）を正面の斜め上から見た状態を示す斜視図である。オブジェクト１〜４は、直方体を１つの単位としてそれぞれ表示される。ＣＰＵ回路７は、オブジェクト１〜４の３次元位置座標（Ｘ，Ｙ，Ｚ）から、オブジェクト１〜４の前後関係の位置を算出して、どのオブジェクトをどのオブジェクトの前に表示するかを、次のようにして決定する。なお、Ｘ、Ｙ、およびＺは、それぞれ左右方向、高さ方向、奥行方向の座標である。また、オブジェクト１〜４の座標は、Ｘ、Ｙ、およびＺがそのオブジェクトの中で最も高位となる交点（即ち、右側面と上面と手前面とが交差する角点）の座標として表現される。
【００３１】
図７は、ＣＰＵ回路７の動作を説明するフローチャートである。図７においてプログラムがスタートすると、まずステップＳ４１において、オブジェクト１〜４の中からＹ軸方向に一番高いオブジェクトを探す。複数のオブジェクトが見つかった場合には、グループを作成する。例えば、図６に示すように、オブジェクト１〜４の座標がそれぞれ（４，５，６）、（５，４，４）、（６，３，６）、（２，５，５）とする。Ｙ軸方向に一番高い（大きい）オブジェクトを探すと、オブジェクト１とオブジェクト４のＹ座標（５）が一番高いので、ステップＳ４１ではオブジェクト１とオブジェクト４のグループを作成する。
【００３２】
ステップＳ４２では、グループの中から一番手前の（Ｚ軸方向に一番大きい）オブジェクトを探す。図６に示す例では、オブジェクト４は、オブジェクト１よりもＺ軸方向に大きいので、ステップＳ４２でオブジェクト１を見付け、見付けたオブジェクトに優先順位をセットする（ステップＳ４３）。セットされたオブジェクト（ここではオブジェクト１）は、探索対象（ここではグループ）から外す（ステップＳ４４）。次に、グループ内に他のオブジェクトが存在するか否かを判断する（ステップＳ４５）。存在する場合はステップＳ４２に戻り、存在しない場合はステップＳ４６に移行する。図６の例では、オブジェクト４が残っているのでステップＳ４２に戻り、ステップＳ４５に再度到達したときは、オブジェクト１、オブジェクト４の順に優先順位が設定されている。
【００３３】
ステップＳ４６では、未セットのオブジェクトが存在するか否かを判断する。存在する場合はステップＳ４１に戻り、存在しない場合はステップＳ４７に移行する。図６の例では、オブジェクト２とオブジェクト３とが残っているので、ステップＳ４１に戻る。ステップＳ４６から戻ってからのステップＳ４１では、オブジェクト２のＹ座標（４）が高いので、ステップＳ４１およびステップＳ４２では、オブジェクト２を見付けて優先順位をセットする（ステップＳ４３）。オブジェクト２を探索対象から外し（ステップＳ４４）、ステップＳ４５およびステップＳ４６を経由してステップＳ４１に戻る。ステップＳ４１およびステップＳ４２では、オブジェクト３を見付けて、優先順位をセットする（ステップＳ４３）。オブジェクト３を探索対象から外し（ステップＳ４４）、ステップＳ４５を経由してステップＳ４６に至る。
【００３４】
ステップＳ４６に到達したときは、未セットのオブジェクトが存在しないので、ステップＳ４７に移行する。ステップＳ４７では、これまで設定された優先順位（ここではオブジェクト１、オブジェクト４、オブジェクト２、オブジェクト３の順）の逆順で上書き表示を行う。即ち、オブジェクト３を描いてからオブジェクト２を描き、更にオブジェクト４を描いてからオブジェクト１を描くと、図６に示したように、オブジェクト１、オブジェクト４、オブジェクト２、オブジェクト３の順に、上側の手前に在るように表示される。
【００３５】
即ち、図５のプログラムを終了して図３のステップＳ５に移行し、バックグラウンドＢＧ、影、オブジェクトＯＢＪの順に、上側の手前に在るように表示した場合には、図２（ｂ）に示すようにしてモニタ３に表示される。また、影、バックグラウンドＢＧ、オブジェクトＯＢＪの順に、上側の手前に在るように表示した場合には、図２（ｃ）に示すようにしてモニタ３に表示される。
【００３６】
【発明の効果】
以上のように、本発明の影の表示機能を有する表示装置によれば、オブジェクトとその影とを、それぞれ独立したオブジェクトとして扱うようにしたので、３次元空間においても、複数のオブジェクトの処理として扱うだけなので計算量が削減され、高速に表示することが可能となる。
【図面の簡単な説明】
【図１】本発明による影の表示機能を有する表示装置の一実施例を示すブロック結線図である。
【図２】本発明による影の表示機能を有する表示装置の一実施例を示す概念図である。
【図３】本発明によるの影の表示機能を有する表示装置の一実施例を示すフローチャートである。
【図４】本発明による影の表示機能を有する表示装置の一実施例を示す概念図である。
【図５】本発明による影の表示機能を有する表示装置の一実施例を示すフローチャートである。
【図６】本発明による影の表示機能を有する表示装置の一実施例を示す概念図である。
【図７】本発明による影の表示機能を有する表示装置の一実施例を示すフローチャートである。
【符号の説明】
１    オブジェクト
２    オブジェクト
３    オブジェクト
４    オブジェクト
６    入出力制御回路
７    ＣＰＵ回路
８    システムバス
９    ワークメモリ
１０    プログラムメモリ
１２    キャラクタメモリ
１４    スクリーンメモリ
２１    ＴＶゲーム装置
２２    操作装置
２３    モニタ
ＢＧ    バックグラウンド
Ａ    領域
【図１】
0003559602.tif 000002
【図２】
0003559602.tif 000003
【図３】
0003559602.tif 000004
【図４】
0003559602.tif 000005
【図５】
0003559602.tif 000006
【図６】
0003559602.tif 000007
【図７】
0003559602.tif 000008