(57)【特許請求の範囲】
【請求項１】
第１のオブジェクトを構成するポリゴンの頂点を処理するように構成された画像処理装置であって、
第２のオブジェクトの位置に関する条件を記憶する位置条件記憶手段と、
前記位置条件記憶手段を参照することにより、前記第１のオブジェクトを構成するポリゴンの各頂点が前記条件を満たすどうかを判断し、満たしていないと判断した場合は当該条件を満たすように前記第１のオブジェクトの各頂点の位置を修正するポリゴン位置修正手段と、を備え、
前記条件は、前記第１のオブジェクトを構成するポリゴンと前記第２のオブジェクトを構成するポリゴンが交差しないというものであり、
前記位置条件記憶手段は、前記条件として、前記第２のオブジェクトに相対的に設定された領域を記憶し、
前記領域は、
平面上にあり、
当該平面上において前記第２のオブジェクトに外接する円にさらに外接する多角形の、任意の隣り合う２辺を延長した２直線により分割される４つの平面領域のうち、前記外接する円が含まれる平面領域に対向する平面領域に含まれるものである、
画像処理装置。
【請求項２】
前記領域は、前記２直線に接する円形領域である請求項１記載の画像処理装置。
【請求項３】
第１のオブジェクトを構成するポリゴンの頂点を処理するように構成された画像処理装置であって、
第２のオブジェクトの位置に関する条件を記憶する位置条件記憶手段と、
前記位置条件記憶手段を参照することにより、前記第１のオブジェクトを構成するポリゴンの各頂点が前記条件を満たすどうかを判断し、満たしていないと判断した場合は満たすように前記第１のオブジェクトの各頂点の位置を修正するポリゴン位置修正手段と、を備え、
前記条件は、前記第１のオブジェクトを構成するポリゴンと前記第２のオブジェクトを構成するポリゴンが交差しないというものであり、
前記位置条件記憶手段は、前記条件として、前記第２のオブジェクトに相対的に設定された領域を記憶し、
前記領域は平面上にあり、
前記位置条件記憶手段は、前記領域として、前記平面上において前記第２のオブジェクトに外接する円に外接する平面多角形の任意の隣り合う２辺を延長した２直線に対し、前記外接する円の反対側から接する円形領域を少なくとも記憶し、
更に、前記多角形の任意の１辺を延長した直線に対し、前記外接する円の反対側から接する円形領域を記憶する画像処理装置。
【請求項４】
前記ポリゴン位置修正手段は、前記第１のオブジェクトを構成するポリゴンの頂点が前記領域の中に含まれるかどうかを判断し、含まれないと判断した場合は前記領域の中に含まれるように当該頂点の位置を修正する請求項１乃至３のいずれか一項に記載の画像処理装置。
【請求項５】
前記第１のオブジェクトは、前記第２のオブジェクトの少なくとも一部を覆うように配置されている請求項１乃至４のいずれか一項に記載の画像処理装置。
【請求項６】
前記第１のオブジェクトは人間が身につけている物体を表わすオブジェクトであって、前記第２のオブジェクトは人間の身体又は人間が身につけている物体を表わすオブジェクトであることを特徴とする請求項１乃至３のいずれか一項に記載の画像処理装置。
【請求項７】
コンピュータシステム内に形成される仮想空間にオブジェクトを配置し、入力操作と定められたルールに従って前記オブジェクトの動きを制御しながらゲームを展開し、前記仮想空間内の様子を仮想カメラから見た画面として表示するゲーム装置であって、請求項１乃至３のいずれか一項に記載の画像処理装置を備えるゲーム装置。
【請求項８】
第１のオブジェクトを構成するポリゴンと第２のオブジェクトを構成するポリゴンとが交差しない画像処理を行うコンピュータを、
前記第１のオブジェクトを構成するポリゴンの対応する頂点を処理する手段、
前記第２のオブジェクトに対応して、当該第２のオブジェクトに平面上で外接する円にさらに外接する多角形の、任意の隣り合う２辺を延長した２直線により分割される４つの平面領域のうち、前記外接する円が含まれる平面領域に対向する平面領域に含まれる領域を設定する手段、
前記第１のオブジェクトを構成するポリゴンの各頂点が前記設定された領域に含まれるかを判断する手段、及び
前記第１のオブジェクトの各頂点が前記設定された領域に含まれない場合は、当該領域に含まれるように各頂点の位置を修正する手段、として機能させるための画像処理プログラムを記録したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、ポリゴンの位置を制御するための画像処理技術に関し、特にかかる画像処理技術を用いてゲーム画面を表示するゲーム装置に関する。
【０００２】
【従来の技術】
いわゆるビデオゲーム装置では、画面を見ながら、入力装置を操作してオブジェクトの動きを制御し、ゲームを進行させる。３Ｄ（三次元）表示のゲーム装置では、コンピュータ・システム内に仮想空間を形成し、この空間にゲームのオブジェクトを配置する。そして、コンピュータはゲームルールに従ってオブジェクトの動きを制御する。また、遊戯者の操作に従って、主人公たるオブジェクトを制御してゲームを展開する。このゲームの展開を仮想空間に配置された仮想カメラを通してモニタ画面に表示する。
【０００３】
通常、各オブジェクトは複数のポリゴン（多角形平面）から構成されており、各ポリゴンは３以上の頂点から構成されている。  ポリゴンを構成する各頂点は、ポリゴンが配置される仮想空間内の座標で特定されるのが一般的である。従って、仮想空間におけるオブジェクトの移動は、最終的にはオブジェクトを構成するポリゴンの頂点座標の変更として把握されることになる。
【０００４】
オブジェクトとしては、例えば、地形、植物、動物、建物等の自然界の形態をモデル化したものの他、ゲームの主人公やゲームに登場する人物をモデル化したものが考えられる。人物をモデル化する場合、一つのオブジェクトにより人物を表わすのではなく、複数のオブジェクト（例えば、身体を表わすオブジェクト、衣服、装身具、靴等を表わすオブジェクトなど）により人物を表わすことにより、
よりリアルにモデル化することができる。
【０００５】
ここで、身体、衣服、装身具、靴等の固体が物理的に交わることは、現実世界では原則として起り得ない。そのため、仮想空間における身体や衣服等のオブジェクトに関しても、それらの関係が物理的に矛盾しないように配置することが必要となる。図１３に、身体を表わすオブジェクト４００と衣服を表わすオブジェクト４０１が物理的に矛盾して配置されている例を示す。かかる例では、身体を表わすオブジェクトの一部４０２が衣服を表わすオブジェクト４０１を突き抜けて配置されてしまっている。
【０００６】
このような配置を防ぐためには、オブジェクトを移動させる際に、当該オブジェクトを構成するポリゴンについて、他のオブジェクトを構成するポリゴンとの交差が発生しないように、移動先の座標を決定する必要がある。
【０００７】
交差が発生しないように移動先の座標を決定する方法としては、例えば以下のような方法が存在する。以下の説明では、身体を表わすオブジェクトを構成するポリゴンを身体ポリゴン、衣服を表わすオブジェクトを構成するポリゴンを衣服ポリゴンと呼ぶ。
【０００８】
第１の方法は、２種類のポリゴン（身体ポリゴン、及び衣服ポリゴン）の位置関係を固定化する方法である。かかる方法では、一方のポリゴンの位置が決まれば他方のポリゴンの位置も決まることとなるため、どのようにオブジェクトが移動しようとも、２種類のポリゴンについて交差は発生しない。
【０００９】
第２の方法は、オブジェクト移動後に交差が発生した場合、一方のポリゴンについて交差が発生しないように頂点の座標を修正する方法である。図１４に第２の方法を説明するための概念図を示す。図１４（ａ）頂点座標修正前、（ｂ）は頂点座標修正後の状態を示す。４００は身体を表わすオブジェクト、４０１は衣服を表わすオブジェクトである。
【００１０】
かかる方法は、２種類のポリゴンの関係を固定化せずに、それぞれ独立に移動後の頂点座標を計算することを前提としている。従って、それぞれ独立に計算した結果、図１４（ａ）に示すように、移動後の衣服ポリゴンの頂点４０３が、身体を表わすオブジェクト４００の内部に位置してしまい、２種類のポリゴンについて交差４０４が発生してしまう場合が起りうる。この場合、第２の方法では、頂点４０３の座標が身体を表わすオブジェクト４００の外部に位置するように修正する。このようにすることで、図１４（ｂ）に示すように交差のない状態に修正することができる。
【００１１】
【発明が解決しようとする課題】
しかし、上記の従来の方法では以下のような問題が生じる。
【００１２】
まず、第１の方法では、常に２種類のポリゴンの関係が固定化されているため、ダイナミックな動き、リアルな動きを実現できないという問題が生じる。
【００１３】
３Ｄ表示のゲームでは、如何に現実世界をリアルにシミュレーションできるかが、ゲームのおもしろさの大きな要素となっている。リアルにシミュレーションするためには、例えば、現実世界における「人物が走ることにより、着ている服が風を受けて後方になびく」といった現象を、仮想空間においてもダイナミックに実現する必要がある。
【００１４】
しかし、第１の方法では、衣服ポリゴンは身体ポリゴンに対して固定的に配置されるため、２種類のポリゴンは常に同じ挙動しか許されないことになる。これでは、衣服がまるで甲冑のような硬いものであるかのような印象を与えることになってしまい、衣服についてダイナミックな動き、リアルな動きを実現することができない。そのため、ゲームにおいても非常におもしろみの少ない表示内容となってしまう。
【００１５】
また、第２の方法では、２種類のポリゴンについて交差が発生してしまうことを完全には防止できないという問題がある。
【００１６】
確かに第２の方法では、衣服ポリゴンと身体ポリゴンについて独立に動かすことを許容している点で、第１の方法に比べてダイナミックな動き、リアルな動きを実現することができる。
【００１７】
しかし、衣服ポリゴンの全ての頂点について、身体を表わすオブジェクトの外部に位置するように修正したとしても、交差が発生してしまう場合が起りうる。例えば図１５の例では、衣服ポリゴンの全ての頂点が身体を表わすオブジェクトの外部に位置しているが、２種類のポリゴンについて交差４０４が発生している。これでは、身体の一部が衣服を突き抜けた状態、すなわち物理的に矛盾した不自然な状態となってしまい、ゲームにおいても違和感を与える表示内容となってしまう。
【００１８】
ここで、衣服ポリゴンの数（すなわち頂点数）を増やすことにより、交差が発生してしまう可能性を減らすことは可能である。しかし、ポリゴン数を大きく増やすことは、座標計算などの処理量の増加を招くため好ましくない。また、ポリゴン数を増やしたとしても、交差の発生を完全に防止するのは難しい。
【００１９】
そこで本発明は、オブジェクトを構成するポリゴンについて、ポリゴン数を増やすことなく、他のオブジェクトを構成するポリゴンとの交差を防止できる画像処理技術を提供することを目的とする。
【００２０】
また本発明は、ゲームにおいて、ダイナミックな動きを違和感なくリアルに表示することを目的とする。
【００２１】
【課題を解決するための手段】
本発明の画像処理方法は、第１のオブジェクトを構成するポリゴンの頂点に対応して、第２のオブジェクトに対する位置に関する条件を記憶手段に記憶しておき、前記第１のオブジェクトを構成するポリゴンの頂点が前記条件を満たすどうかを判断し、満たしていないと判断した場合は満たすように当該頂点の位置を修正する画像処理方法であって、前記条件は、前記第１のオブジェクトを構成するポリゴンと前記第２のオブジェクトを構成するポリゴンが交差しないという条件であることを特徴とする。
【００２２】
また、本発明のゲーム方法は、コンピュータシステム内に形成される仮想空間にオブジェクトを配置し、入力操作と定められたルールに従って前記オブジェクトの動きを制御しながらゲームを展開し、前記仮想空間内の様子を仮想カメラから見た画面として表示するゲーム方法であって、本発明の画像処理方法により前記オブジェクトを構成するポリゴンの座標を修正することを特徴とする。
【００２３】
本発明の画像圧縮方法及びゲーム方法はコンピュータにより実施することができるが、そのためのコンピュータプログラムは、ＣＤ−ＲＯＭ、磁気ディスク、半導体メモリ及び通信ネットワークなどの各種の媒体を通じてコンピュータにインストールまたはロードすることができる。
【００２４】
本発明の画像処理装置は、第１のオブジェクトを構成するポリゴンの頂点に対応して、第２のオブジェクトに対する位置に関する条件を記憶する位置条件記憶手段と、前記位置条件記憶手段を参照することにより、前記第１のオブジェクトを構成するポリゴンの頂点が前記条件を満たすどうかを判断し、満たしていないと判断した場合は満たすように当該頂点の位置を修正するポリゴン位置修正手段を備え、前記条件は、前記第１のオブジェクトを構成するポリゴンと前記第２のオブジェクトを構成するポリゴンが交差しないという条件であることを特徴とする。
【００２５】
また、本発明のゲーム装置は、コンピュータシステム内に形成される仮想空間にオブジェクトを配置し、入力操作と定められたルールに従って前記オブジェクトの動きを制御しながらゲームを展開し、前記仮想空間内の様子を仮想カメラから見た画面として表示するゲーム装置であって、本発明の画像処理装置を備えることを特徴とする。
【００２６】
前記位置条件記憶手段は、前記条件として、前記第２のオブジェクトに対して相対的に設定された領域、特に平面上の領域を記憶することが好ましい。
【００２７】
前記領域は、前記平面上において前記第２のオブジェクトに外接する円に外接する多角形の、任意の隣り合う２辺を延長した２直線により分割される４つの平面領域のうち、前記外接する円が含まれる平面領域に対向する平面領域に含まれる領域であることが好ましく、さらに前記２直線に対して接する円形領域であることが好ましい。
【００２８】
また、前記位置条件記憶手段は、前記領域として、前記平面上において前記第２のオブジェクトに外接する円に外接する多角形の、任意の隣り合う２辺を延長した２直線に前記外接する円に対して反対側より接する円形領域を少なくとも記憶し、更に、前記多角形の任意の１辺を延長した直線に前記外接する円に対して反対側より接する円形領域を記憶することが好ましい。
【００２９】
前記ポリゴン位置修正手段は、前記第１のオブジェクトを構成するポリゴンの頂点が前記領域の中に含まれるかどうかを判断し、含まれないと判断した場合は前記領域の中に含まれるように当該頂点の位置を修正することが好ましい。
【００３０】
前記第１のオブジェクトは、前記第２のオブジェクトの少なくとも一部を覆うように配置されていることが好ましく、特に、前記第１のオブジェクトは人間が身につけている物体を表わすオブジェクトであって、前記第２のオブジェクトは人間の身体又は人間が身につけている物体を表わすオブジェクトであることが好ましい。
【００３１】
【発明の実施の形態】
（第１の実施の形態）
図１を参照して本発明の第１の実施の形態を説明する。本発明の第１の実施の形態である画像処理装置１は、位置条件記憶手段１０、ポリゴン位置修正手段１１を含んで構成される。
【００３２】
位置条件記憶手段１０は、仮想空間に配置される所定のオブジェクト（以下、判定オブジェクトと呼ぶ）を構成するポリゴンの頂点に対応づけて、前記対象オブジェクトと物理的に交わらないように設定されたオブジェクト（以下、排他オブジェクトと呼ぶ）に対する位置に関する条件を記憶している。なお、判定オブジェクトと排他オブジェクトの関係は相対的なものであり、２つのオブジェクトのどちらを判定オブジェクトとするかは設計に応じて定めることができる。
【００３３】
判定オブジェクトは複数であってもよい。複数ある場合、判定オブジェクトごとに排他オブジェクトが設定される。また、一つの判定オブジェクトに対して、複数の排他オブジェクトを設定しても良い。
【００３４】
判定オブジェクトとしては、仮想空間に配置される全てのオブジェクトが対象となりうる。特に、遊戯者の操作やコンピュータの制御により移動するオブジェクトについては、移動によりポリゴンの交差が発生する可能性があるため、判定オブジェクトとすることが好ましい。
【００３５】
排他オブジェクトとしては、判定オブジェクトと交差が発生する可能性がある全てのオブジェクトが対象となりうる。
【００３６】
排他オブジェクトに対する相対的位置に関する条件は、例えば、排他オブジェクト内に原点を定めた座標系において、判定オブジェクトを構成するポリゴン（以下、判定ポリゴンと呼ぶ）の頂点座標に対する等式、不等式などの形で記述することができる。かかる条件は、判定ポリゴンと排他オブジェクトを構成するポリゴン（以下、排他ポリゴンと呼ぶ）が交差しないように定められている。
【００３７】
ポリゴン位置修正手段１１は、判定ポリゴンの頂点座標を入力とし、前記位置条件記憶手段１０を参照することにより、前記頂点座標が対応する前記条件を満たすどうかを判断する。入力される判定ポリゴンの頂点座標が、排他オブジェクト内に原点を定めた座標系における座標値でない場合は、座標変換を行ってから前記条件の判断を行う。例えば、頂点座標が判定オブジェクト内に原点を定めた座標系における座標値となっている場合は、かかる頂点座標を絶対座標系に座標変換し、更に排他オブジェクト内に原点を定めた座標系に座標変換すればよい。
【００３８】
ポリゴン位置修正手段１１は、前記条件を満たしていると判断した場合は、当該頂点については修正を行わずに頂点座標を出力する。満たしていないと判断した場合は、前記条件を満たすように（すなわち、判定ポリゴンと排他ポリゴンが交差しないように）当該頂点の位置を修正し、修正後の頂点座標を出力する。このように頂点位置の修正時において交差が発生しないという条件の判断を行うことにより、交差の発生を完全に防止することができる。
（第１の実施の形態の第一実施例）
以下に第１の実施の形態の第一実施例について説明を行う。本実施例において、判定オブジェクトは変形が許されたオブジェクトであるとし、排他オブジェクトは変形しない固定形状のオブジェクトあるとする。なお、２つのオブジェクトのどちらを判定オブジェクトとするかは設計に応じて定めることができるが、変形が許されたオブジェクトを判定オブジェクトとすることが望ましい。
【００３９】
このようなオブジェクトとしては、例えば、判定オブジェクトがズボンの一部を表わすオブジェクトであり、排他オブジェクトが足の一部を表わすオブジェクトである場合が考えられる。現実世界においても、ズボンは変形の自由度が高いが、足はほとんど変形しないからである。すなわち、ズボン等の衣服を表わすオブジェクトは変形の自由度が高いものとしてモデル化し、身体を表わすオブジェクトは固定形状としてモデル化する。
【００４０】
図２に、判定オブジェクト及び排他オブジェクトの例を示す。ここでは、説明を簡単にするために、判定オブジェクト及び排他オブジェクトをともに一つずつとしている。
【００４１】
ズボンの一部を表わす判定オブジェクト２０は、上下面を６角形とする筒状の形状をしている。判定ポリゴンの頂点間の関係は固定化されておらず、６角形の形状は変形可能である。なお、本実施例では上下面を６角形としているが、角数は設計に応じて定めれば良い。また、本実施例では筒状の形状としているが、例えばマントのような一枚の布状のものをまきつけた衣服をモデル化する場合など、筒状以外の形状も考えられる。
【００４２】
足の一部を表わす排他オブジェクト２１は、上下面を４角形とする筒状の形状をしている。固定形状、すなわち、排他ポリゴンの頂点間の関係は固定化されており、４角形の形状は変化しない。なお、本実施例では上下面を４角形としているが、角数は設計に応じて定めれば良い。
【００４３】
図３は、判定オブジェクト２０と排他オブジェクト２１を、判定ポリゴンの頂点を含むＸＹ平面３０で切断し、排他オブジェクト２１の中心を原点とした座標系で表現したものである。排他オブジェクトは固定形状であるため、前記座標系における排他オブジェクトの位置・形状はＺ座標には依存しない。
【００４４】
位置条件記憶手段１０は、排他オブジェクト２１に対する位置に関する条件として、判定ポリゴンの頂点ごとに前記座標系における領域（以下、可動領域と呼ぶ）を記憶している。
【００４５】
可動領域は、判定ポリゴンと排他ポリゴンが交差しないように定められている。すなわち、判定ポリゴンの頂点がそれぞれ対応する可動領域内に位置する限り、判定ポリゴンがどのように移動したとしても、排他ポリゴンとの交差は発生しない。以下に、このような可動領域を定める方法を説明する。
【００４６】
図４において、多角形４０は排他オブジェクトの外接円４１に外接する６角形である。多角形４０の角数は、最も多い場合で前記平面３０に含まれる判定ポリゴンの頂点数に等しい角数となる。図では含まれる頂点数が６個であるため６角形となっている。多角形４０は図４（ａ）のように正多角形であってもよく、（ｂ）のように不均等な多角形であっても良い。多角形４０の形状は、座標を修正した後の判定オブジェクトの形状に密接に関係する。多角形４０の形状は、判定オブジェクトを最も小さくした場合の形状に相当するからである。
【００４７】
判定ポリゴンの頂点ごとの可動領域は、前記多角形４０の隣り合う２辺を延長した２直線により規定される。例えば、判定ポリゴンの頂点４２に対しては直線４４、４５により、判定ポリゴンの頂点４３に対しては直線４５、４６により可動領域が規定されることになる。
【００４８】
すなわち、頂点４２に対する可動領域は、直線４４、４５により分割された４つの領域のうち、排他オブジェクト２１が含まれる領域に対向している領域４７となり、頂点４３に対する可動領域は、直線４５、４６により分割された４つの領域のうち、排他オブジェクト２１が含まれる領域４９に対向している領域４８となる。
【００４９】
頂点４２が可動領域４７内に、頂点４３が可動領域４８内に含まれる限り、頂点４２と頂点４３を有する判定ポリゴン４９は、必ず直線４５に対して排他オブジェクト２１と反対側に位置することになる。このことは、判定ポリゴン４９について、排他ポリゴンに対する交差が発生しないことを意味する。
【００５０】
このような可動領域は２直線に対する不等式で表わすことができるため、位置条件記憶手段１０は、それぞれの可動領域を規定する２直線の係数（傾き及び切片）及び不等号の情報（大なり又は小なり）を記憶することにより、各可動領域を記憶する。
【００５１】
ポリゴン位置修正手段１１は、判定ポリゴンの頂点座標を入力とし、前記位置条件記憶手段１０を参照することにより、前記頂点座標ごとに対応する可動領域、すなわち２直線の係数及び不等号の情報を読み出す。そして、前記頂点座標がかかる可動領域内にあるかどうか、すなわち不等式を満たすかどうかを判断する。
【００５２】
例えば、頂点ａの座標が（ｐ、ｑ）、頂点ａに対応する可動領域がｙ≧ａｘ＋ｂ及びｙ≦ｃｘ＋ｄの２つの不等式で表わされているとする。この場合、（ｐ、ｑ）がｑ≧ａｐ＋ｂ及びｑ≦ｃｐ＋ｄの関係を満たす場合、頂点ａは可動領域内にあると判断される。
【００５３】
入力される判定ポリゴンの頂点座標が、排他オブジェクト２１内に原点を定めた座標系における座標値でない場合は、座標変換を行ってから前記条件の判断を行う。例えば、頂点座標が判定オブジェクト２０内に原点を定めた座標系における座標値となっている場合は、かかる頂点座標を絶対座標系に座標変換し、更に排他オブジェクト内に原点を定めた座標系に座標変換すればよい。
【００５４】
可動領域内にあると判断された場合は、当該頂点については修正を行わずに、入力された座標をそのまま出力する。
【００５５】
可動領域内にないと判断された場合は、当該頂点が可動領域内に含まれるように座標を修正し、修正後の座標を出力する。修正の仕方の例を図５を参照して説明する。図５において、点５０は修正前の頂点座標、領域５１はかかる頂点に対応する可動領域である。
【００５６】
例えば、頂点５０を、可動領域５１を規定する２直線の交点５２に修正することが考えられる。この方法の場合、あらかじめ可動領域とともに交点座標も位置条件記憶手段１０に記憶しておくようにしておけば、修正するたびに座表計算をする必要がないため、高速に修正を行うことができる。
【００５７】
また、例えば、頂点５０を、可動領域５１を規定する直線上の点５３に修正することが考えられる。点５３は、可動領域５１内において最も頂点５０に近い点である。この方法の場合、修正による頂点の移動量が最も少なくなり、修正による影響を抑えることができる。
【００５８】
また、例えば、頂点５０を、可動領域５１を規定する直線上の点５４に修正することが考えられる。点５４は、可動領域５１内に含まれる点であって、頂点５０とＸ座標又はＹ座標が等しい点である。
（第１の実施の形態の第二実施例）
以下に第１の実施の形態の第二実施例について説明を行う。第二実施例においても、第一実施例と同様に、判定オブジェクトは変形が許されたオブジェクトであるとし、排他オブジェクトは変形しない固定形状のオブジェクトあるとする。
【００５９】
位置条件記憶手段１０は、判定ポリゴンの頂点ごとに可動領域を記憶している点では第一実施例と同様であるが、かかる可動領域が円形の領域となっている点で第一実施例と異なる。以下に、このような可動領域を定める方法を説明する。
【００６０】
図６において、多角形４０は排他オブジェクトの外接円４１に外接する６角形である。多角形４０の角数は前記平面３０に含まれる判定ポリゴンの頂点数に等しく、図では含まれる頂点数が６個であるため６角形となっている。
【００６１】
判定ポリゴンの頂点ごとの可動領域は、前記多角形４０の隣り合う２辺を延長した２直線に接する円として規定される。かかる円は、２直線に対して、排他オブジェクトの外接円４１とは反対側から接している。例えば、判定ポリゴンの頂点４２に対しては直線４４、４５に接する円６０が、判定ポリゴンの頂点４３に対しては直線４５、４６に接する円６１が、それぞれ可動領域となる。
【００６２】
頂点４２が可動領域６０内に、頂点４３が可動領域６１内に含まれる限り、頂点４２と頂点４３を有する判定ポリゴン４９は、必ず直線４５に対して排他オブジェクト２１と反対側に位置することになる。このことは、判定ポリゴン４９について、排他ポリゴンに対する交差が発生しないことを意味する。
【００６３】
かかる可動領域は円に対する不等式で表わすことができるため、位置条件記憶手段１０は、それぞれの可動領域を規定する円の係数（中心及び半径）及び不等号の情報（大なり又は小なり）を記憶することにより、各可動領域を記憶する。
【００６４】
ポリゴン位置修正手段１１は、判定ポリゴンの頂点座標を入力とし、前記位置条件記憶手段を参照することにより、前記頂点座標ごとに対応する可動領域、すなわち円の係数及び不等号の情報を読み出す。そして、前記頂点座標がかかる可動領域内にあるかどうか、すなわち不等式を満たすかどうかを判断する。
【００６５】
例えば、頂点ａの座標が（ｐ、ｑ）、頂点ａに対応する可動領域がｒ２≧ａｘ２＋ｂｙ２の不等式で表わされているとする。この場合、（ｐ、ｑ）がｒ２≧ａｐ２＋ｂｑ２の関係を満たす場合、頂点ａは可動領域内にあると判断される。
【００６６】
入力される判定ポリゴンの頂点座標が、排他オブジェクト２１内に原点を定めた座標系における座標値でない場合は、座標変換を行ってから前記条件の判断を行う。例えば、頂点座標が判定オブジェクト２０内に原点を定めた座標系における座標値となっている場合は、かかる頂点座標を絶対座標系に座標変換し、更に排他オブジェクト内に原点を定めた座標系に座標変換すればよい。
【００６７】
可動領域内にあると判断された場合は、当該頂点については修正を行わずに、入力された座標をそのまま出力する。
【００６８】
可動領域内にないと判断された場合は、当該頂点が可動領域内に含まれるように座標を修正し、修正後の座標を出力する。修正の仕方の例を図７を参照して説明する。図７において、点７０は修正前の頂点座標、領域７１はかかる頂点に対応する可動領域、中心点７２は可動領域の中心点である。
【００６９】
例えば、頂点７０を、中心点７２に修正することが考えられる。この方法の場合、あらかじめ可動領域とともに中心点座標も位置条件記憶手段１０に記憶しておくようにしておけば、修正するたびに座表計算をする必要がないため、高速に修正を行うことができる。
【００７０】
例えば、頂点７０を交点７４に修正することが考えられる。かかる交点７４は、頂点７０と中心点７２を結んだ線分７３と、可動領域７１の外周との交点に相当する。交点７４は、可動領域７１内において最も頂点７０に近い点となっているため、修正による頂点の移動量が最も少なくなり、修正による影響を抑えることができる。
【００７１】
本実施例において、可動領域である円の大きさは、判定ポリゴンの各頂点の位置に関する自由度に密接に関係する。例えば、図８の円８０のように、円の大きさを大きくすると、頂点の存在が許される範囲は広がるが、排他オブジェクト２１との距離８２は増加する。一方、図８の円８１のように、円の大きさを小さくすると、頂点の存在が許される範囲は狭くなるが、排他オブジェクト２１との距離８３は減少する。かかる円の大きさは、判定オブジェクトや排他オブジェクトが何をモデル化しているのか、といったモデリング情報に基づいて設定することが好ましい。なお、排他オブジェクト２１までの距離は、多角形４０の形状によっても、各頂点ごとに相違することになる。
【００７２】
また、判定ポリゴンの各頂点について等しい大きさの可動領域を持つか、又は異なる大きさの可動領域を持つか、は判定オブジェクトの形状に密接に関係する。可動領域である円の大きさを等しくした場合（図９（ａ）参照）、判定ポリゴンの頂点の位置に関する自由度が等しくなるため、座標を修正した後の判定オブジェクトはバランスのとれた形状を示すことになる。一方、可動領域である円の大きさを頂点によって異ならせた場合（図９（ｂ）参照）、可動領域が小さい頂点は排他オブジェクトに張り付いている印象を与え、可動領域が大きい頂点は排他オブジェクトとの固着度が弱い印象を与えることになる。
（第１の実施の形態の第三実施例）
以下に第１の実施の形態の第三実施例について説明を行う。第三実施例においても、第二実施例と同様に、判定オブジェクトは変形が許されたオブジェクトであるとし、排他オブジェクトは変形しない固定形状のオブジェクトあるとする。
【００７３】
位置条件記憶手段１０は、判定ポリゴンの頂点ごとに円形の可動領域を記憶している点では第二実施例と同様であるが、多角形４０の角数が、前記平面３０に含まれる判定ポリゴンの頂点数より少ない点で、第二実施例と異なる。
【００７４】
図１０において、多角形４０は排他オブジェクトの外接円４１に外接する４角形である。多角形４０の角数は、前記平面３０に含まれる判定ポリゴンの頂点数６より少ない４となっている。多角形４０は図１０（ａ）のように正多角形であってもよく、（ｂ）のように不均等な多角形であっても良い。
【００７５】
判定ポリゴンの頂点ごとの可動領域は、前記多角形４０の角数分の頂点（本実施例では４つ）については、前記多角形４０の隣り合う２辺を延長した２直線に接する円として規定される。かかる円は、２直線に対して、排他オブジェクトの外接円４１とは反対側から接している。例えば、判定ポリゴンの頂点９０に対しては直線９３、９４に接する円６２が、判定ポリゴンの頂点９１に対しては直線９４、９５に接する円６３が、それぞれ可動領域となる。
【００７６】
残りの判定ポリゴンの頂点については、前記多角形４０の１辺を延長した１直線に接する円として規定される。かかる円は、直線に対して、排他オブジェクトの外接円４１とは反対側から接している。例えば、判定ポリゴンの頂点９２に対しては直線９４に接する円６４が可動領域となる。
【００７７】
可動領域６４は、可動領域６２や６３に比べて、より排他オブジェクト２１に近い位置に設定することができるため、頂点９２の排他オブジェクト２１に対する自由度は高くなり、ダイナミックな動きを実現することが可能となる。
【００７８】
頂点９０が可動領域６２内に、頂点９１が可動領域６３内に、頂点９２が可動領域６４内にに含まれる限り、頂点９０と頂点９２を有する判定ポリゴン９６及び頂点９２と頂点９１を有する判定ポリゴン９７は、必ず直線９４に対して排他オブジェクト２１と反対側に位置することになる。このことは、判定ポリゴン９６及び９７について、排他ポリゴンに対する交差が発生しないことを意味する。
【００７９】
かかる可動領域は円に対する不等式で表わすことができるため、位置条件記憶手段１０は、それぞれの可動領域を規定する円の係数（中心及び半径）及び不等号の情報（大なり又は小なり）を記憶することにより、各可動領域を記憶する。
【００８０】
ポリゴン位置修正手段１１の構成・動作は第二実施例と同様である。すなわち、判定ポリゴンの頂点座標を入力とし、前記位置条件記憶手段を参照することにより、前記頂点座標ごとに対応する可動領域、すなわち円の係数及び不等号の情報を読み出す。そして、前記頂点座標がかかる可動領域内にあるかどうか、すなわち不等式を満たすかどうかを判断する。
（その他の変形例）
なお、本発明は上記の各実施例に限定されることなく、種々に変形して適用することが可能である。例えば、ポリゴン位置修正手段１１は、読み出した可動領域を変形し、頂点座標が変形後の可動領域内にあるかどうかを判断するようにしてもよい。このようにすることで、排他オブジェクトが変形を許されたオブジェクトである場合に、移動により変形した排他オブジェクトの形状に応じて可動領域を変形させることができる。可動領域が２直線により規定されている場合であれば直線の傾きや切片を、円として規定されている場合であれば円の半径や中心を変えることにより、可動領域を変形させることができる。
【００８１】
また、本実施例では、判定オブジェクトを衣服を表わすオブジェクト、排他オブジェクトを身体を表わすオブジェクトとしたが、本発明の対象となるオブジェクトはこれらに限定されるものではない。仮想空間におけるルールに基づいて互いに交わらないと設定されたオブジェクトどうしであれば、どのようなオブジェクトであってもかまわない。
（第２の実施の形態）
図１１を参照して本発明の第２の実施の形態を説明する。本発明の第２の実施の形態であるゲーム装置２は、ＣＰＵブロック１２，ビデオブロック１３およびサウンドブロック１４などを備えている。
【００８２】
ＣＰＵブロック１２は、バスアビータ１００、ＣＰＵ１０１、メインメモリ１０２、ＲＯＭ１０３およびＣＤ−ＲＯＭドライブ１０４を備えている。バスアビータ１００は、バスを介して相互に接続されるデバイスにバス占有時間を割り振ることにより、データの送受信を制御可能に構成されている。ＣＰＵ１０１は、メインメモリ１０２、ＲＯＭ１０３、ＣＤ−ＲＯＭドライブ１０４、ビデオブロック１３およびサウンドブロック１４、コントローラ３を介してバックアップメモリ３０１にアクセス可能に構成されている。ＣＰＵ１０１は、電源投入時にＲＯＭ１０３に格納されたイニシャルプログラム（初期実行プログラム）を実行し、装置全体の初期化を行い、ＣＤ−ＲＯＭドライブ１０４にＣＤ−ＲＯＭが装着されたことを検出すると、ＣＤ−ＲＯＭに格納されているオペレーティングシステム用プログラムデータをメインメモリ１０２に転送するようになっている。その後、ＣＰＵ１０１はオペレーティングシステムに従って動作するようになり、引き続きＣＤ−ＲＯＭに格納されている本発明のゲームプログラムをメインメモリ１０２に転送し実行するようになっている。またＣＰＵ１０１は、ゲーム処理用画像データをグラフィックメモリ１１１に転送し、音声データをサウンドメモリ１２１に転送可能になっている。ＣＰＵ１０１が実行するプログラムによる処理は、コントローラ３からの操作信号や通信装置１３０からの通信データの入力、ビデオブロック１３に行わせる画像出力の制御およびサウンドブロック１４に行わせる音声出力の制御などである。メインメモリ１０２は、主として上記オペレーティングシステム用プログラムデータおよびプログラムを格納する他、静的変数や動的変数等を格納するワークエリアを提供可能になっている。ＲＯＭ１０３は、イニシャルプログラムローダの格納領域である。ＣＤ−ＲＯＭドライブ１０４は、ＣＤ−ＲＯＭが着脱可能になっており、ＣＤ−ＲＯＭが装着されるとＣＰＵ１０１にその旨のデータを出力し、ＣＰＵ１０１の制御によりデータを転送可能になっている。ＣＤ−ＲＯＭには、本発明のゲームプログラム、画像表示のための画像データ、および音声出力のための音声データなどが格納される。なお、記録媒体はＣＤ−ＲＯＭに限ることなく、他の各種記録媒体を読取可能に構成してもよい。通信装置１３０経由でＣＤ−ＲＯＭに格納されるようなデータ群を各メモリに転送するように構成してもよい。このように設定すれば遠隔地のサーバの固定ディスクなどからデータの転送が可能である。
【００８３】
ビデオブロック１３は、ＶＤＰ（Video Display Processor）１１０、グラフィックメモリ１１１およびビデオエンコーダ１１２を備えている。グラフィックメモリ１１１には、上記したようにＣＤ−ＲＯＭから読み取られた画像データが格納されている。ＶＤＰ１１０は、グラフィックメモリ１１１に格納されている画像データのうち、画像表示に必要な画像データを読み取って、ＣＰＵ１０１から供給される画像表示に必要な情報、すなわちコマンドデータ、視点位置データ、光源位置データ、オブジェクト指定データ、オブジェクト位置データ、ポリゴン座標データ、テクスチャ指定データ、テクスチャ濃度データ、視野変換マトリクスデータ等に従って、座標変換（ジオメトリ演算）、テクスチャマッピング処理、表示優先処理、シェーディング処理等を実行可能になっている。なお前記座標変換等の処理は、ＣＰＵ１０１が行うように構成してもよい。すなわち各デバイスの演算能力を勘案してどの処理をどのデバイスにさせるかを割り振ればよい。ビデオエンコーダ１１２は、ＶＤＰ１１０が生成した画像データをＮＴＳＣ方式等の所定のテレビジョン信号に変換し外部に接続されるメインモニタ１１３に出力可能に構成されている。
【００８４】
サウンドブロック１４は、サウンドプロセッサ１２０、サウンドメモリ１２１およびＤ／Ａコンバータ１２２を備えている。サウンドメモリ１２１には、上記したようにＣＤ−ＲＯＭから読み取られた音声データが格納されている。サウンドプロセッサ１２０は、ＣＰＵ１０１から供給されるコマンドデータに基づいて、サウンドメモリ１２１に格納されている波形データ等の音声データを読み取って、ＤＳＰ（Digital Signal Processor）機能に基づく各種エフェクト処理、デジタル／アナログ変換処理等を行うようになっている。そしてＤ／Ａコンバータ１２２は、サウンドプロセッサ１２０により生成された音声データをアナログ信号に変換し、外部に接続されるスピーカ１２３に出力可能に構成されている。
【００８５】
通信装置１３０は、例えばモデムやターミナルアダプタであり、本ゲーム装置２に接続可能に構成され、本ゲーム装置本体２と外部回線とを接続するアダプターとして機能可能になっている。そして通信装置１３０は、公衆回線網に接続されるゲーム供給用サーバから送信されたデータを受信し、ＣＰＵブロック１２のバスに供給可能になっている。公衆回線網としては、加入者回線、専用線、有線無線の別を問わない。
【００８６】
コントローラ３は、操作ボタン群３０２や十字キー３０３の操作状況を定期的にコードに変換してゲーム機本体２に送信可能になっている。各コントローラ３からの操作信号は、当該ゲームで表示されるキャラクタを動かすために用いられる。さらにコントローラ３は、ゲーム処理状況を特定するパラメータやキャラクタの設定データなどをゲーム機本体２と送受信し、それらデータをバックアップメモリ３０１から読み出したり、書き込んだりできるようになっている。バックアップメモリ３０１は、コントローラ３に着脱自在に接続できるようになっており、ＣＰＵ１０１からアクセス可能に構成されている。そしてＣＰＵ１０１から転送される、ゲーム中に発生するゲームの進行状況やゲームの成績、操作方法などの設定を含む設定データの格納領域になっている。これら設定データは、電源遮断時に電源遮断直前の状態からゲームを再開するためのバックアップデータとして機能する他、バックアップメモリを交換することにより他のゲーム装置の操作状態をそのまま当該ゲーム装置に反映するためのデータとすることもできる。
【００８７】
ＣＰＵ１０１は、本発明のゲームプログラムを実行することにより、コンピュータシステム内に形成される仮想空間にオブジェクトを配置し、入力操作と定められたルールに従って前記オブジェクトの動きを制御しながらゲームを展開し、前記仮想空間内の様子を仮想カメラから見た画面として表示する。また、ＣＰＵ１０１は、本発明のゲームプログラムを実行することにより、第１の実施形態の画像処理装置と同様の機能を備える。
【００８８】
ＣＰＵ１０１は、第１のオブジェクトを構成するポリゴンの頂点に対応して、第２のオブジェクトに対する位置に関する条件をメインメモリ１０２に記憶しておく。かかる条件は、前記第１のオブジェクトを構成するポリゴンと前記第２のオブジェクトを構成するポリゴンが交差しないという条件である。
【００８９】
このような条件としては、平面上において前記第２のオブジェクトに外接する円に外接する多角形の、任意の隣り合う２辺を延長した２直線により分割される４つの平面領域のうち、前記外接する円が含まれる平面領域に対向する平面領域に含まれること、という条件が考えられる。
【００９０】
また、平面上において前記第２のオブジェクトに外接する円に外接する多角形の、任意の隣り合う２辺を延長した２直線により分割される４つの平面領域のうち、前記外接する円が含まれる平面領域に対向する平面領域に含まれ、前記２直線に対して接する円形領域であること、という条件も考えられる。
【００９１】
図１２はＣＰＵ１０１により実行される画像処理のフローチャートを示す。
【００９２】
ステップＳ２０１では、メインメモリ１０２から第１のオブジェクトを構成するポリゴンの頂点座標を読み出し、かかる頂点座標が第２のオブジェクト内に原点を定めた座標系における座標値でない場合に、座標変換を行う。例えば、頂点座標が第１のオブジェクト内に原点を定めた座標系における座標値となっている場合は、かかる頂点座標を絶対座標系に座標変換し、更に第２のオブジェクト内に原点を定めた座標系に座標変換すればよい。
【００９３】
ステップＳ２０２では、メインメモリ１０２から、第１のオブジェクトを構成するポリゴンの頂点座標ごとに対応する可動領域を読み出す。例えば、可動領域が２直線により規定されている場合であれば、２直線の係数及び不等号の情報を読み出す。また、可動領域が円として規定されている場合であれば、円の係数及び不等号の情報を読み出す。
【００９４】
ステップＳ２０３では、前記頂点座標がステップＳ２０２で読み出した可動領域内に含まれるかどうか、すなわち不等式を満たすかどうかを判断する。可動領域内に含まれると判断した場合はステップＳ２０６に進み、含まれないと判断した場合はステップＳ２０５に進む。
【００９５】
ステップＳ２０５では、前記頂点座標がステップＳ２０２で読み出した可動領域内に含まれるように座標を修正する。修正の方法としては、第１の実施形態で説明した種々の方法を用いることができる。
【００９６】
ステップＳ２０６では、頂点座標をメインメモリ１０２に出力する。
（その他の変形例）
なお、本発明は上記の実施形態に限定されることなく、種々に変形して適用することが可能である。例えば、本発明のゲーム装置は、家庭用ゲーム装置及びアミューズメント施設において利用されるゲーム装置の両方を含むものであり、後者の場合においては、第２の実施の形態のコントローラ３に代えて、操作ボタン群といわゆるジョイスティックを備えたコントローラを用いることもできる。
（第３の実施の形態）
次に、本発明の第３の実施の形態について説明する。第３の実施の形態は、画像処理プログラムを記録した記録媒体を備える。この記録媒体はＣＤ−ＲＯＭ、磁気ディスク、半導体メモリその他の記録媒体であってよく、ネットワークを介して流通する場合も含む。
【００９７】
画像処理プログラムは記録媒体からデータ処理装置に読み込まれ、データ処理装置の動作を制御する。データ処理装置は画像処理プログラムの制御により、第１のオブジェクトを構成するポリゴンの頂点に対応して、第２のオブジェクトに対する相対的位置に関する条件を記憶手段に記憶しておき、前記第１のオブジェクトを構成するポリゴンの頂点が前記条件を満たすどうかを判断し、満たしていないと判断した場合は満たすように当該頂点の位置を修正する。前記条件は、前記第１のオブジェクトを構成するポリゴンと前記第２のオブジェクトを構成するポリゴンが交差しないという条件となっている。
【００９８】
すなわち、データ処理装置はゲームプログラムの制御により、図１における、位置条件記憶手段１０とポリゴン位置修正手段１１による処理と同一の処理を実行する。
【００９９】
【発明の効果】
本発明は、オブジェクトを構成するポリゴンについて、ポリゴン数を増やすことなく、他のオブジェクトを構成するポリゴンとの交差を防止することができる。特に、物理的に交わらないように設定されたオブジェクトを構成するポリゴンとの交差を防止することにより、仮想空間において物理的に矛盾しないようにオブジェクトを配置することができる。
【０１００】
また、本発明は、ポリゴンの交差の発生を防止したことにより、ゲームにおいてダイナミックな動きを違和感なくリアルに表示することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態の構成を示すブロック図である。
【図２】判定オブジェクト及び排他オブジェクトの一例を示す斜視図である。
【図３】判定オブジェクト及び排他オブジェクトの一例を示す断面図である。
【図４】第一実施例における可動領域の定め方を説明するための図である。
【図５】第一実施例における頂点座標の修正の仕方を説明するための図である。
【図６】第二実施例における可動領域の定め方を説明するための図である。
【図７】第二実施例における頂点座標の修正の仕方を説明するための図である。
【図８】可動領域と排他オブジェクトまでの距離の関係を示す図である。
【図９】可動領域のバリエーションを説明するための図である。
【図１０】第三実施例における可動領域の定め方を説明するための図である。
【図１１】本発明の第２の実施形態の構成を示すブロック図である。
【図１２】本発明の処理の流れを示すフローチャートである。
【図１３】ポリゴンが交差した状態を説明するための模式図である。
【図１４】従来技術を説明するための図である。
【図１５】従来技術の問題点を説明するための図である。
【符号の説明】
１  画像処理装置
２  ゲーム装置
１０  位置条件記憶手段
１１  ポリゴン位置修正手段
【図１】
0004150944.tif 000002
【図２】
0004150944.tif 000003
【図３】
0004150944.tif 000004
【図４】
0004150944.tif 000005
【図５】
0004150944.tif 000006
【図６】
0004150944.tif 000007
【図７】
0004150944.tif 000008
【図８】
0004150944.tif 000009
【図９】
0004150944.tif 000010
【図１０】
0004150944.tif 000011
【図１１】
0004150944.tif 000012
【図１２】
0004150944.tif 000013
【図１３】
0004150944.tif 000014
【図１４】
0004150944.tif 000015
【図１５】
0004150944.tif 000016