説明

プログラム、情報記憶媒体、ポリゴンモデル生成装置、及びポリゴンモデル生成方法

【課題】 輪郭線で囲まれた領域で定義できる図形をより高速に描画する。
【解決手段】閉平面図形の輪郭曲線2の定義データから輪郭曲線2上に基準分割点P1〜P9を設定し、隣接する基準分割点間を結ぶ輪郭辺Enm(n,mは自然数)を設定する。それら輪郭辺Enmのうち一方の端点Pcに共有して隣接する2本の輪郭辺の他方の端点Ps,Pe同士を結んで当該閉平面図形の内側に内部辺Etを設定し、更に輪郭辺及び設定済みの内部辺のうち、一方の端点を共有して隣接する2本の辺の他方の端点同士を結んで更なる内部辺を設定する処理を繰り返し、設定された輪郭辺及び内部辺からポリゴンモデルを生成する。輪郭線で定義される図形の内部領域にポリゴンで満たして描画することで、閉平面図形を高速に描画することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータに、滑らかな輪郭曲線によって定義された閉平面図形のポリゴンモデルを生成させるためのプログラム等に関する。
【背景技術】
【0002】
近年の3次元コンピュータグラフィックス(3DCG)における画像生成はポリゴンモデルを利用したものが主流となっており、図形描画に係るさまざまな処理においてCPUの低負荷・高速化を狙った技術開発がなされている。
例えば、ポリゴンの塗り潰し処理に着目した技術としては、対象図形の輪郭線をVRAM上に描画する際に、ポリゴンの各辺と走査ラインとの交点位置に基づいて対象図形の内側を簡単に塗り潰す技術などがある(例えば、特許文献1を参照)。
【特許文献1】特開平10−188010号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
ここでビデオゲーム等のリアルタイム3DCG(3 Dimension Computer Graphics)による画像生成技術に目を移すと、画像内には文字やマークなど輪郭線で閉領域が定義できる図形が多数登場する。それらは、仮想カメラに対して前後に移動制御され、見かけ上、拡大したり縮小するような使われ方をする。しかも、ビデオゲームでは高い操作応答性も要求される。こうした前提条件では、上述のような従来技術であっても図形の描画に多くの時間を要してしまうケースがあった。
【0004】
本発明は、こうした事情を鑑みてなされたものであり、その目的とするところは、輪郭線で囲まれた領域で定義できる図形をより高速に描画することである。
【課題を解決するための手段】
【0005】
上記の課題を解決する第1の発明は、コンピュータに、滑らかな輪郭曲線によって定義された閉平面図形(例えば、図2の図形群40に含まれる文字)のポリゴンモデルを生成させるためのプログラムであって、
前記閉平面図形の前記輪郭曲線上に複数の輪郭点(例えば、図4(a)の輪郭点6)を設定する輪郭点設定手段(例えば、図11の処理部200、ゲーム演算部210、閉平面図形描画制御部212、図16のステップS44〜S46)、
前記輪郭点設定手段によって設定された輪郭点それぞれについて、隣接する輪郭点間を結ぶ輪郭辺を設定する輪郭辺設定手段(例えば、図11の処理部200、ゲーム演算部210、閉平面図形描画制御部212、図17のステップS80〜S82)、
前記輪郭辺設定手段によって設定された輪郭辺のうち、一方の端点を共有点として共有して隣接する2本の輪郭辺の他方の端点同士を結んで前記閉平面図形の内側に内部辺を設定する処理と、前記輪郭辺及び設定済みの内部辺のうち、一方の端点を共有点として共有して隣接する2本の辺の他方の端点同士を結んで更なる内部辺を設定する処理とを行う内部辺設定手段(例えば、図11の処理部200、ゲーム演算部210、閉平面図形描画制御部212、図17のステップS94)、
前記輪郭辺設定手段によって設定された輪郭辺と、前記内部辺設定手段によって設定された内部辺とに基づいてポリゴンモデルを生成するポリゴンモデル生成手段(例えば、図11の処理部200、ゲーム演算部210、閉平面図形描画制御部212、図17のステップS102)、として前記コンピュータを機能させるためのプログラムである。
【0006】
また、別形態として、滑らかな輪郭曲線によって定義された閉平面図形のポリゴンモデルを生成するポリゴンモデル生成装置であって、
前記閉平面図形の前記輪郭曲線上に複数の輪郭点を設定する輪郭点設定手段(例えば、図1の制御ユニット1210、図16のステップS44〜S46)と、
前記輪郭点設定手段によって設定された輪郭点それぞれについて、隣接する輪郭点間を結ぶ輪郭辺を設定する輪郭辺設定手段(例えば、図1の制御ユニット1210、図17のステップS80〜S82)と、
前記輪郭辺設定手段によって設定された輪郭辺のうち、一方の端点を共有して隣接する2本の輪郭辺の他方の端点同士を結んで前記閉平面図形の内側に内部辺を設定する処理と、前記輪郭辺及び設定済みの内部辺のうち、一方の端点を共有して隣接する2本の辺の他方の端点同士を結んで更なる内部辺を設定する処理とを行う内部辺設定手段(例えば、図1の制御ユニット1210、図17のステップS94)と、
前記輪郭辺設定手段によって設定された輪郭辺と、前記内部辺設定手段によって設定された内部辺とに基づいてポリゴンモデルを生成するポリゴンモデル生成手段(例えば、図1の制御ユニット1210、図17のステップS102)と、を備えたポリゴンモデル生成装置(例えば、図1の家庭用ゲーム装置1200)を構成しても良い。
【0007】
また、更に別形態として、滑らかな輪郭曲線によって定義された閉平面図形のポリゴンモデルを生成するポリゴンモデル生成方法であって、
前記閉平面図形の前記輪郭曲線上に複数の輪郭点を設定する輪郭点設定ステップ(例えば、図16のステップS44〜S46)と、
前記輪郭点それぞれについて、隣接する輪郭点間を結ぶ輪郭辺を設定する輪郭辺設定ステップ(例えば、図17のステップS80〜S82)と、
前記輪郭辺のうち、一方の端点を共有して隣接する2本の輪郭辺の他方の端点同士を結んで前記閉平面図形の内側に内部辺を設定する処理と、前記輪郭辺及び設定済みの内部辺のうち、一方の端点を共有して隣接する2本の辺の他方の端点同士を結んで更なる内部辺を設定する処理とを行う内部辺設定ステップ(例えば、図17のステップS94)と、
前記輪郭辺及び前記内部辺に基づいてポリゴンモデルを生成するポリゴンモデル生成ステップ(例えば、図17のステップS102)と、を含むポリゴンモデル生成方法を構成しても良い。
【0008】
ここで言う「閉平面図形」とは、輪郭線が定義されており、その輪郭線で囲まれた領域を塗りつぶすことで描画することのできる図形である。例えば、文字やピクトグラム、矢印、記号などが該当する。また、人物や動物、自然物、乗り物、ロボットなどといったゲームやビデオグラムに登場するキャラクタも図形として扱うことで閉平面図形と見なすことができる。
【0009】
第1及びその別形態の発明によれば、閉平面図形の輪郭曲線の定義データから輪郭曲線上に複数の輪郭点を設定し、それら輪郭点それぞれについて、隣接する輪郭点間を結ぶ輪郭辺を設定することができる。そして、それら輪郭辺のうち一方の端点を共有して隣接する2本の輪郭辺の他方の端点同士を結んで当該閉平面図形の内側に内部辺を設定し、更に輪郭辺及び設定済みの内部辺のうち、一方の端点を共有して隣接する2本の辺の他方の端点同士を結んで更なる内部辺を設定する処理を繰り返す。そうして設定された輪郭辺及び内部辺からポリゴンモデルを生成することができる。
つまり、輪郭線で定義される図形の内部領域にポリゴンを満たして描画することで、閉平面図形を高速に描画することができる。しかも、家庭用ゲーム装置などはポリゴンモデルの生成・描画に最適なハードウェア及びソフトウェアで構築されているので、ハードウェアの特性を最大限に利用した演算の高速化が期待できる。
【0010】
また、輪郭線が定義された閉平面図形は、例えばポストスクリプト(登録商標)形式のフォントのように拡大縮小されても輪郭が滑らかに表現されることが望まれる図形のデータ形式として存在する。従って、3DCG内で文字等をポリゴンモデルで表現することを望む場合、既存の閉平面図形のデータを流用するだけでよいことになり、事前に専用のポリゴンモデルを製作する必要が無いので製作工数の大幅な削減が可能になるといった副次的な効果も得られる。
【0011】
また、第2の発明は、第1の発明のプログラムであって、前記輪郭点設定手段によって設定された輪郭点間の前記輪郭曲線上に、新たな輪郭点を追加設定する追加輪郭点設定手段(例えば、図11の処理部200、ゲーム演算部210、閉平面図形描画制御部212、図19のステップS166)、
前記輪郭辺設定手段によって設定された輪郭辺と、前記内部辺設定手段によって設定された内部辺と、前記追加輪郭点設定手段によって設定された輪郭点とに基づいて、前記ポリゴンモデル生成手段によって生成されたポリゴンモデルを細分化して再構成するポリゴンモデル細分化手段(例えば、図11の処理部200、ゲーム演算部210、閉平面図形描画制御部212、図19のステップS168、S170)、として前記コンピュータを更に機能させるためのプログラムである。
【0012】
第2の発明によれば、第1の発明と同様の効果を奏するとともに、輪郭曲線により沿った滑らかな外形のポリゴンモデルを生成することができる。
【0013】
第3の発明は、第1又は第2の発明のプログラムであって、前記閉平面図形と仮想カメラとを仮想3次元空間に配置する配置手段(例えば、図11の処理部200、ゲーム演算部210、図15のステップS6、S10)、として前記コンピュータを機能させるとともに、前記輪郭点設定手段が、前記閉平面図形と前記仮想カメラとの距離に応じて、前記輪郭曲線上に設定する輪郭点の数を可変するように前記コンピュータを機能させるためのプログラムである。
【0014】
また、第4の発明は、第2の発明のプログラムであって、前記閉平面図形と仮想カメラとを仮想3次元空間に配置する配置手段、前記閉平面図形及び/又は前記仮想カメラを移動する移動手段、前記閉平面図形と前記仮想カメラとの距離が所定距離以内に近接したことを検出する近接検出手段、として前記コンピュータを機能させるとともに、前記追加輪郭点設定手段が、前記近接検出手段による検出に応じて新たな輪郭点を追加設定するように前記コンピュータを機能させるためのプログラムである。
【0015】
第3又は第4の発明によれば、仮想カメラから閉平面図形までの距離に応じて設定する輪郭点の数を適当に変更できるので、閉平面図形のポリゴンモデルの外形の滑らかさを適当に維持しつつ、不必要なポリゴンを作らずに済む。従って、閉平面図形について単一のポリゴンモデルを用意してそれを仮想カメラと当該図形との相対距離に係わらず使用する場合に比べて3DCGの生成負荷を低減できる。
【0016】
第5の発明は、第1〜第4の発明の何れかのプログラムであって、前記閉平面図形が外側と内側とに輪郭曲線を有する図形である場合に、外側の輪郭曲線上の輪郭点のうちの1つと内側の輪郭曲線上の輪郭点のうちの1つとを結ぶ1つの辺を前記輪郭辺又は前記内部辺として設定する手段(例えば、図11の処理部200、ゲーム演算部210、図17のステップS84、S86)として前記コンピュータを機能させるためのプログラムである。
【0017】
第5の発明によれば、閉平面図形が外側と内側とに輪郭曲線を有する図形(例えば、アルファベットの「B」、数字の「6」は該当するが、アルファベットの「X」、数字の「7」は該当しない。)であっても、同様に事前に専用のポリゴンモデルを製作する工数を削減し、3DCG生成時には高速な塗り潰しが可能になる。
【0018】
第6の発明は、第1〜第5の発明の何れかのプログラムであって、前記輪郭辺と前記内部辺とをもとに三角形パッチ群を生成して、生成した三角形パッチ群をドロネー三角形網化処理するドロネー三角形網化手段として前記コンピュータを機能させるとともに、前記ポリゴンモデル生成手段がドロネー三角形網化処理された前記三角形パッチ群に基づいてポリゴンモデルを生成するように前記コンピュータを機能させるためのプログラムである。
【0019】
第6の発明によれば、第1〜第5の発明の何れかと同様の効果を奏するとともに、ポリゴンモデルをより3DCG生成に適した形状とすることができる。
【0020】
第7の発明は、第1〜第6の発明の何れかのプログラムであって、前記内部辺設定手段が、(1)対象辺の両端点のどちらかが共有点で無く、且つ(2)当該対象辺が前記輪郭辺及び前記内部辺と重複せず、且つ(3)当該対象辺が前記輪郭辺及び前記内部辺と交差せず、且つ(4)当該対象辺と端点を共有する前記輪郭辺又は前記内部辺とで形成する三角形内部に他の輪郭辺及び内部辺が存在せず、且つ(5)当該対象辺が前記閉平面図形の閉領域内に存在する、場合に当該対象辺を新たな内部辺として設定するように前記コンピュータを機能させるためのプログラムである。
【0021】
第7の発明によれば、第1〜第6の発明の何れかと同様の効果を奏するとともに、更に効率的に内部辺を設定できる。
【0022】
第8の発明は、第1〜第7の発明の何れかのプログラムを記憶したコンピュータ読取可能な情報記憶媒体である。ここで言う「情報記憶媒体」とは、例えば磁気ディスクや光学ディスク、ICメモリなどを含む。第8の発明によれば、第1〜第7の発明の何れかのプログラムをコンピュータに読み取らせて実行させることによって、コンピュータに第1〜第7の発明の何れかと同様の効果を発揮させることができる。
【発明の効果】
【0023】
本発明によれば、閉平面図形の輪郭曲線の定義データから輪郭曲線上に複数の輪郭点を設定し、それら輪郭点それぞれについて、隣接する輪郭点間を結ぶ輪郭辺を設定することができる。そして、それら輪郭辺のうち一方の端点を共有して隣接する2本の輪郭辺の他方の端点同士を結んで当該閉平面図形の内側に内部辺を設定し、更に輪郭辺及び設定済みの内部辺のうち、一方の端点を共有して隣接する2本の辺の他方の端点同士を結んで更なる内部辺を設定する処理を繰り返す。そうして設定された輪郭辺及び内部辺からポリゴンモデルを生成することができる。従って、輪郭線で定義される図形の内部領域にポリゴンを満たして描画することで、閉平面図形を高速に描画することができる。
【発明を実施するための最良の形態】
【0024】
〔第1実施形態〕
次に、本発明を適用した第1実施形態として、家庭用ゲーム装置で閉平面図形の高速塗り潰しを利用したロールプレイングゲーム(RPG)を実行する例を説明する。
【0025】
図1は、本実施形態におけるポリゴン生成装置に相当する家庭用ゲーム装置の構成例を説明するシステム構成図である。同図に示すように、家庭用ゲーム装置1200は、ゲーム装置本体1201と、ゲームコントローラ1230と、ビデオモニタ1220とを備える。
【0026】
ゲーム装置本体1201は、制御ユニット1210と、光学ディスク1202やメモリカード1204といった情報記憶媒体の読み取り装置1206,1208とを備える。そして、家庭用ゲーム装置1200は、光学ディスク1202やメモリカード1204からゲームプログラム及び各種設定データを読み出し、ゲームコントローラ1230に為される操作入力に基づいて制御ユニット1210が各種のゲーム演算を実行し、所与のビデオゲームを実行する。
【0027】
制御ユニット1210は、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)及びDSP(Digital Signal Processor)などの各種マイクロプロセッサ、ASIC(Application Specific Integrated Circuit)、ICメモリなどの電気電子機器を備え家庭用ゲーム装置1200の各部を制御する。また、制御ユニット1210は、インターネットやLAN(Local Area Network)、WAN(Wide Area Network)と言った通信回線1と接続して外部装置との間でデータ通信を実現する通信装置1212を備える。
【0028】
ゲームコントローラ1230は、選択の決定やキャンセル、タイミングの入力などに用いられるコントローラ上面に設けられたプッシュボタン1232と、左右の前側面に設けられたプッシュボタン1233R,1233Lと、図で言うところの上下左右の各方向を単独入力するための方向入力キー1234と、右アナログレバー1236Rと、左アナログレバー1236Lとを備える。
【0029】
本実施形態では、方向入力キー1234で行動させるプレーヤキャラクタや、行動内容を選択入力し、プッシュボタン1232で行動の決定やキャンセル等の操作を入力する。
【0030】
ゲーム装置本体1201の制御ユニット1210は、ゲームコントローラ1230から受信した操作入力信号に基づいてゲーム画像やゲーム音を生成してビデオゲームを実行する。生成されたゲーム画像やゲーム音は、信号ケーブル1209で接続されたビデオモニタ1220(音声信号や映像信号の外部入力機能を備えたテレビジョンを含む)に出力される。ビデオモニタ1220には、画像を表示するディスプレイ1222と音声を放音するスピーカ1224とが備えられており、プレーヤはディスプレイ1222に映し出されるゲーム画像を見ながら、スピーカ1224から放音されるゲーム音を聞きつつゲームをプレイする。
【0031】
[ゲーム画面例の説明]
図2は、本実施形態におけるゲーム画面例W2を示す図である。ゲーム画面は、仮想3次元空間に配置されたポリゴンモデルを仮想カメラで撮影した画像を使用する所謂3DCGを主体に生成される。
【0032】
本実施形態におけるゲームでは、プレーヤが操作するプレーヤキャラクタ32は味方キャラクタ34,36とともにゲームフィールド内で遭遇する敵キャラクタ群38と交戦する。この際、プレーヤキャラクタ32は、魔法を唱えて敵を攻撃することができる。そして呪文詠唱の演出表現として、図形群40がまるで詠唱するプレーヤキャラクタ32の付近から空間に出現し、周りを飛び回って魔法が発動するといった演出表現が行なわれる。この図形群40は、アルファベットや象形文字、シンボルマークなどの文字や図形を近似型スプラインによって輪郭曲線が定義された複数の閉平面図形を含む。閉平面図形のデータとしては、例えば、ポストスクリプト形式の文字フォント、ベクトル形式で描かれたシンボルマークなどがこれに該当する。
【0033】
図形群40に含まれる各図形は、例えば図3の略ハート型図形の例のように、滑らかな輪郭曲線2の内側に複数の三角形ポリゴン4を設定して、プレーヤキャラクタ32やその他のキャラクタのポリゴンモデルと同様に表示制御することで、輪郭曲線2で囲まれた閉平面図形の高速塗り潰しを行う。尚、同図の例は、説明を簡明化させるために、少ない数の三角形ポリゴン4で輪郭曲線2を表現している。そのため、全体として、本来滑らかな輪郭曲線2のカーブに沿わない多角形を成しているが、実際にはより多数の三角形ポリゴン4を配置して見かけ上は輪郭曲線2のカーブに近い外形となる。
【0034】
[高速塗り潰しの原理の説明]
次に、図4〜図10を参照して、本実施形態における閉平面図形の高速塗り潰しの原理について説明する。
【0035】
先ず図4(a)に示すように、ベジエ曲線で定義された輪郭曲線2の始点P1から曲線方向に沿って複数の輪郭点6(図中の黒点)を設定する。
輪郭点6は、例えば「ド・カステリョのアルゴリズム」によって求められ、その数は当該閉平面図形が画面内に最も大きく表示される想定条件において、多角形のポリゴンモデルとして表してもその輪郭が十分に滑らかに表現される「最大分割数」だけ求める。つまり、設定する輪郭点6の数は、当該図形が仮想カメラに対して最も近接した状態において当該図形内に三角形ポリゴン4を並べて満たしたときにその外形が適度な滑らかさをもって輪郭曲線2のカーブを表現できる程度に十分な数とされる。この値は、図形群40の各図形を仮想カメラに対してゲーム画面内のどの当たりで飛び回らせ、ゲーム画面内でどれだけアップで見せるかといった演出上の観点から適宜設定される。すなわち、ゲーム画面内に表示される図形の大きさや図形の移動速度等を勘案し、本来滑らかな輪郭であるはずの図形が多角形状の輪郭になっていることをプレーヤに視認されないように、輪郭点6の数が設定される。そして、ここで求められた輪郭点6は、以降「最大分割点」とも呼ぶ。尚、後述する三角形ポリゴン細分化処理によって、三次元仮想空間中の当該図形と仮想カメラとの距離に応じて、輪郭点間に分割点が設定されて、より小さい三角形ポリゴンに細分化される。このため、ここで設定される「最大分割数」は初期値として設定されるものとも言える。
【0036】
次に、図4(b)に示すように、最大分割数だけ設定した複数の輪郭点6の中から、始点P1を含むようにして基準数だけ輪郭点を設定し、これを「基準分割点(同図の例ではP1〜P9)」とする。基準分割点の数(基準数)は、当該閉平面図形がゲーム画面内で最も小さく表示される想定条件においてその輪郭が適当に滑らかに表現される分割数とされる。
【0037】
そして、輪郭曲線2(同図中の一点鎖線)に沿って隣接する二つの基準分割点間を結ぶ辺を求め、これを「輪郭辺」とする。輪郭辺E12,E23,E34,…,E91(同図中の実線;Enm(n,mは自然数)は基準分割点Pnと基準分割点Pmを結ぶ辺を言う)は、閉平面図形の閉領域内を満たすように並べられる三角形ポリゴン4の集合の外形となるものであり、三角形ポリゴン4を生成するためのエッジの一部となる。
【0038】
次に、図4(c)に示すように、輪郭辺E12,E23,…,E91より内側、つまり閉平面図形の閉領域内に「内部辺(Et)」を設定する。
その為には、先ず先に求めた各輪郭辺E12,E23,…,E91をベジエ曲線の曲線方向に沿った順に判定対象(判定対象輪郭辺)として設定し、更に設定した輪郭辺の一方の端点Pcを共有して隣接する「隣接輪郭辺」との組み合わせを全て求める。そして、求めた全ての判定対象輪郭辺と隣接輪郭辺との組み合わせにおいて共通点とならなかった端点Ps,Peを結ぶ辺を仮設定する。この仮設定された辺が、次の条件(1)〜(5)の全てを満たす場合に当該仮設定辺を内部辺Etとして決定する。
【0039】
条件(1):仮設定した辺の両端のどちらかが隣接する輪郭辺の共有点になった履歴が無い(未だ共有点になっていない)。
条件(2):仮設定した辺は、輪郭辺又は既に設定されている内部辺と重複しない。
条件(3):仮設定した辺は、輪郭辺又は既に設定されている内部辺と交差しない。
条件(4):対象とする隣接する2本の輪郭辺と仮設定した辺とで作られる三角形内部に、輪郭辺又は既に設定されている内部辺が存在しない。
条件(5):設定した辺は、閉平面図形の閉領域内に存在している。
【0040】
図4(c)の例では、基準分割点P1と基準分割点P2とを結ぶ輪郭辺E12を判定対象輪郭辺(図中の太黒線)とした場合、隣接輪郭辺としては、基準分割点P2を共有点Pcとする輪郭辺E23と、基準分割点P1を共有点Pcとする輪郭辺E91(輪郭点P9〜P1)との二つの組み合わせが考えられる。
【0041】
輪郭辺E23の組み合わせでは、同図に示すように非共有点Ps,Peとなる基準分割点P1と基準分割点P3とを結ぶ辺Et(図中の破線)が仮設定される。図4(c)のように輪郭辺しか設定さていない状態では、仮設定された辺Etは上記5つの条件全てを満たすので内部辺として確定される。一方、輪郭辺E91の組み合わせは、図5(a)に示すように、仮設定した辺Etは、先に設定した内部辺E13と交差するため上記条件(3)を満たさないので、内部辺としては確定されないことになる。
【0042】
次に、輪郭曲線2に沿って次に位置する基準分割点P2を端点とする輪郭辺E23を判定対象輪郭辺とする。この場合、隣接輪郭辺としては、輪郭辺E12(基準分割点P1〜P2)と、輪郭辺E34(基準分割点P3〜P4)との二つの組み合わせが考えられる。尚、この時内部辺E13(基準分割点P1〜P3)は隣接輪郭辺の対象とはしない。
【0043】
輪郭辺E12の組み合わせで仮設定される辺Etは、内部辺E13と重複し上記条件(2)を満たさないので内部辺としては確定されない。また、輪郭辺E34の組み合わせで仮設定される辺Etは、図5(b)に示すように、閉平面図形の閉領域外を通るので上記条件(5)を満たさないので内部辺としては確定されないことになる。
【0044】
次に、輪郭曲線2に沿って基準分割点P2の次に位置する基準分割点P3を端点とする輪郭辺E34(基準分割点P3〜P4)を判定対象輪郭辺とする。この場合、隣接輪郭辺としては、輪郭辺E23(基準分割点P2〜P3)と、輪郭辺E45(基準分割点P4〜P5)との二つの組み合わせが考えられる。
【0045】
輪郭辺E23の組み合わせで仮設定される辺Etは、図5(b)と同様になり、閉平面図形の閉領域外を通るので上記条件(5)を満たさないので内部辺としては確定されないことになる。一方、輪郭辺E45の組み合わせで仮設定される辺Etは、図5(c)に示すように、基準分割点P3と基準分割点P5とを結ぶ辺であり、上記の5つの条件全てを満たすので新たな内部辺として確定される。
【0046】
次に、基準分割点P3の次に輪郭曲線2に沿って位置する基準分割点P4を端点とする輪郭辺E45(基準分割点P4〜P5)を判定対象輪郭辺とする。この場合、隣接輪郭辺としては、輪郭辺E34(基準分割点P3〜P4)と、輪郭辺E56(基準分割点P5〜P6)との二つの組み合わせが考えられる。
【0047】
輪郭辺E34の組み合わせで仮設定される辺Etは、先に確定された内部辺E35(基準分割点P3〜P5)と重複し上記条件(2)を満たさないので内部辺としては確定されない。一方、輪郭辺E56の組み合わせで仮設定される辺Etは、図6(a)に示すように、先に設定した内部辺E35と交差するため上記条件(3)を満たさないので、内部辺としては確定されないことになる。
【0048】
以下、同様に判定対象とする輪郭辺を輪郭曲線2の曲線方向に順送りしつつ処理を繰り返すと、図6(b)に示すように判定対象輪郭辺が輪郭辺E56の場合では、基準分割点P5と基準分割点P7を結ぶ仮設定辺Etは内部辺として確定されるが、図6(c)に示すように判定対象輪郭辺が輪郭辺E67の場合では、これと交差す基準分割点P6と基準分割点P8を結ぶ仮設定辺Etは内部辺として確定されない。
【0049】
更に、図7(a)に示すように判定対象輪郭辺が輪郭辺E78の場合では、基準分割点P7と基準分割点P9を結ぶ仮設定辺Etは内部辺として確定されるが、図7(b)に示すように判定対象輪郭辺が輪郭辺E89の場合では、これと交差する基準分割点P8と基準分割点P1を結ぶ仮設定された辺Etは内部辺として確定されない。
【0050】
また更に、輪郭辺E91(基準分割点P9〜P1)を判定対象輪郭辺とした場合では、図7(c)に示すように、基準分割点P9と基準分割点P2を結ぶ仮設定辺Etは既に確定している内部辺E13(基準分割点P1〜P3)と交差するために内部辺として確定されない。
【0051】
一通り全ての輪郭辺を判定対象として内部辺の候補選択と確定判定を行った後、新たに追加設定された内部辺が存在する場合、それらの各内部辺を新たな判定対象として、同様にして更なる内部辺の候補選択と確定判定を行う。図4〜図7の例では、内部辺E13、E35、E57,E79が新たに設定されているので、これらの内部辺が次の判定対象となる。
【0052】
内部辺E13を判定対象とした場合、図8(a)に示すように、輪郭辺E12(基準分割点P1〜P2)、輪郭辺E23(基準分割点P2〜P3)、輪郭辺E34(基準分割点P3〜P4)、内部辺E56(基準分割点P3〜P5)、輪郭辺E91(基準分割点P9〜P1)をそれぞれ隣接輪郭辺とする5つの組み合わせが考えられる。
【0053】
前4つの組み合わせについては、仮設定される辺Etは、何れも既存の輪郭辺又は内部辺と重複するために確定されない。残る輪郭辺E91との組み合わせについては、図8(a)に示すように、仮設定した辺Et(基準分割点P3〜P9)は上記5つの条件全てを満たすので新たな内部辺E39として確定される。
【0054】
次に、内部辺E35を対象とした場合、図8(b)に示すように輪郭辺E23、内部辺E13、内部辺E39、輪郭辺E34、輪郭辺E45、輪郭辺E56、内部辺E57をそれぞれ隣接辺とする7つの組み合わせが考えられる。
【0055】
前6つの組み合わせについては仮設定される辺はいずれも既存の輪郭辺又は内部辺と重複するので新たな内部辺として確定されることはない。残る内部辺E57との組み合わせについては、仮設定辺Et(基準分割点P3〜P7)は上記5つの条件全てを満たすので新たな内部辺E37として確定される。
【0056】
以下、同様に内部辺E79を対象とした場合には、新たな内部辺は確定されない。
更に、新たに追加された内部辺E39、E37についても同様に処理するが、仮設定した辺Etが既存の輪郭辺又は内部辺と重複するので新たな内部辺として確定されることはない。
【0057】
全ての輪郭辺及び内部辺について処理を完了した結果、図8(c)で示すような各辺が確定され、基準輪郭点を元にした三角形ポリゴンが完成する。これを「基準三角形ポリゴン」と呼ぶ。そして、この基準三角形ポリゴンに基づいて当該閉平面図形のポリゴンモデルが生成される。
【0058】
ただし、基準三角形ポリゴンは、閉平面図形がゲーム画面内において想定される最小サイズにおいてその輪郭が適当に滑らかに見えるように設定されている。その為、呪文詠唱演出のように閉平面図形が仮想3次元空間内を移動し、仮想カメラに対して近づくタイミングが想定されるが、仮想カメラに近接して大写しになると今度は基準三角形ポリゴンによる分割では閉平面図形の輪郭が角張って見えてしまう。
そこで、本実施形態では基準三角形ポリゴンを閉平面図形の予定配置位置から仮想カメラまでの近接度合に応じて細分化した「適用三角形ポリゴン」を生成し、この適用三角形ポリゴンに従って図形群40の各閉平面図形のポリゴンモデルを形成・配置する。
【0059】
具体的には、閉平面図形の予定配置位置から仮想カメラまでの距離に応じた輪郭線の分割数(別の見方をすると三角形ポリゴンを形成すべき分割点の数)が予め「分割数設定TBL」として定義されている。そして、ゲーム画面を描画するタイミングにおいて、仮想3次元空間における閉平面図形の予定配置位置から仮想カメラまでの距離を算出し、算出した距離に対応する分割数を分割数設定TBLから取得する。
この分割数が基準三角形ポリゴンの分割数よりも多い場合には、予め設定されている最大分割点の中から新たに分割点を設定し、この設定した分割点と基準三角形ポリゴンの各辺とに基づいて三角形ポリゴンを細分化・再構成して適用三角形ポリゴンとする。
【0060】
適用三角形ポリゴンを求めるための細分化の具体的な手法は、公知の三角形ポリゴンの細分化技術を適宜応用することによって実現できる。
本実施形態では次のように細分化する。
例えば図9(a)のように、最大分割点(図4(a)の輪郭点6)の中から基準分割点P1〜P9の間にそれぞれ一つずつ新たな分割点(図中の符号無しの黒点)が設定されたとする。そして、新たに設定・追加された分割点をもとに、三角形ポリゴンの細分化を行う。
【0061】
図9(b)の基準分割点P3〜P4〜P5で形成される三角形ポリゴンのように、隣接する2辺が閉平面図形の輪郭に面している場合には、当該2辺の共有点(この例ではP4)から対面の辺(この例では内部辺E35)の中点を求めてこれを新たな頂点P10として登録する。そして、図9(c)に示すように、輪郭辺E34に代えて、基準分割点P3〜P4間に新たに設定された分割点P3bと基準分割点P3を結ぶ辺と、分割点P3bと基準分割点P4を結ぶ辺を新たに設定する。そして、これら両辺の各端点と新たな頂点P10を結ぶ辺を設定する。また、輪郭辺E45に代えて、基準分割点P4〜P5間に新たに設定された分割点P4bと基準分割点P4を結ぶ辺と、分割点P4bと基準分割点P5を結ぶ辺を新たに設定する。そして、これら両辺の各端点と新たな頂点P10を結ぶ辺を設定し、元は一つの三角形ポリゴンを4つに細分化する。
同様の細分化は、基準分割点P1〜P2〜P3、基準分割点点P5〜P6〜P7、基準分割点P7〜P8〜P9でそれぞれ形成される三角形ポリゴンにも適用される。
【0062】
また、図9(b)の基準分割点P1〜P3〜P9で形成される三角形ポリゴンのように、1辺(この例では輪郭辺E91)のみが閉平面図形の輪郭に面している場合には、その輪郭をなしている輪郭辺E91の両端の基準分割点P1と基準分割点P9との間に新たに設定された分割点P9bと基準分割点P9を結ぶ辺と、分割点P9bと基準分割点P1とを結ぶ辺を新たに設定する。そして、分割点P9bとその対面に存在する基準分割点P3を結ぶ辺を設定することで、元は一つの三角形ポリゴンを二つに細分化する。
【0063】
尚、基準分割点P3〜P7〜P9、基準分割点P3〜P5〜P7でそれぞれ形成される三角形ポリゴンのように、1辺も閉平面図形の輪郭に面している辺がない場合には細分化の対象から除外する。
【0064】
細分化の結果、例えば図10の様に基準三角形ポリゴンが細分化されて適用三角形ポリゴンとされる。そして、適用三角形ポリゴンに従ってポリゴンモデルが生成されるので仮想カメラに近づくほど精細に分割され滑らかな輪郭のポリゴンモデルを表示することができる。
【0065】
こうした閉平面図形の輪郭曲線2に基づいて三角形ポリゴンの頂点となる分割点を算出する処理は極めて高速に処理できる。また、近年の家庭用ゲーム装置では3DCGをゲーム画面生成の基礎にすることが一般的であり、ポリゴンモデルを扱うハードウェア及びソフトウェアの機能が充実し高速描画に適している。従って、輪郭曲線2に基づいて三角形ポリゴンの頂点となる分割点を算出して図形群40の各閉平面図形の閉領域内それぞれに三角形ポリゴンを高速で満たす方法をとることで、図形の高速塗り潰しを実現することができる。また、図形として文字フォントを転用することができるといったメリットが得られることも大きな特徴の1つである。
【0066】
[機能ブロックの説明]
次に、上述のようなポリゴンモデルによる閉平面図形の高速塗り潰し描画を利用したゲームを実現するための機能構成について説明する。
【0067】
図11は、本実施形態における家庭用ゲーム装置1200の機能構成例を示す機能ブロック図である。家庭用ゲーム装置1200は、操作入力部100と、処理部200と、音出力部350と、画像表示部360と、通信部370と、記憶部500とを備える。
【0068】
操作入力部100は、プッシュボタンや、レバー、タッチパッド、ダイヤル、キーボード、マウス、各種ポインタ、加速度センサ、傾斜センサなどの入力デバイスやセンサ類によって実現され、プレーヤによって為された各種の操作入力に応じて操作入力信号を処理部200に出力する。図1のゲームコントローラ1230が操作入力部100に該当する。
【0069】
処理部200は、例えばマイクロプロセッサやASIC(特定用途向け集積回路)、ICメモリなどの電子部品によって実現され、各機能部との間でデータの入出力を行うとともに所定のプログラムやデータ及び操作入力部100からの操作入力信号に基づいて各種の演算処理を実行して、家庭用ゲーム装置1200の動作を制御する。図1では、ゲーム装置本体1201に内蔵された制御ユニット1210が処理部200に該当する。
【0070】
そして、本実施形態における処理部200は、ゲーム演算部210と、音生成部250と、画像生成部260と、通信制御部270とを備える。
【0071】
ゲーム演算部210は、ゲームの進行に係る処理を実行する。例えば、仮想3次元空間中に各種オブジェクトを配置してゲーム空間を形成する処理や、ゲーム空間中に配置されたキャラクタ等のオブジェクトの移動制御処理、仮想カメラの移動制御処理、敵キャラクタ群38のNPC(ノンプレイアブルキャラクタ)の動作の自動制御処理、ヒット判定処理、物理演算処理、ゲーム結果の判定処理が実行対象に含まれる。
【0072】
より具体的には、呪文詠唱演出を実現するための閉平面図形描画制御部212を含んでいる。閉平面図形描画制御部212は更に、(1)呪文詠唱演出で描画される閉平面図形を所定の移動軌跡データに従ってプレーヤキャラクタ32の指先から出現させて移動制御する図形移動制御部216と、(2)描画する閉平面図形の輪郭曲線に最大分割点や基準分割点といった分割点を設定する分割点設定部218と、(3)基準三角形ポリゴンに係るデータを生成する三角形ポリゴンデータ生成部220と、(4)描画する閉平面図形と仮想カメラとの距離に応じて三角形ポリゴンを細分化処理する三角形ポリゴン細分化部222と、(5)三角形ポリゴンデータを元に仮想3次元空間に配置するポリゴンモデルを生成するポリゴンモデル生成部224とを含む。
【0073】
音生成部250は、例えばデジタルシグナルプロセッサ(DSP)などのプロセッサやその制御プログラムなどの公知技術によって実現され、ゲーム演算部210による処理結果に基づいてゲームに係る効果音やBGM、各種操作音の音信号を生成し、音出力部350に出力する。
【0074】
音出力部350は、音生成部250から入力される音信号に基づいて効果音やBGM等を音出力する装置によって実現される。図1ではビデオモニタ1220のスピーカ1224がこれに該当する。
【0075】
画像生成部260は、例えば、デジタルシグナルプロセッサ(DSP)などのプロセッサ、その制御プログラム、フレームバッファ等の描画フレーム用ICメモリ等の公知技術によって実現される。例えば画像生成部260は、ゲーム演算部210による演算処理によって移動制御された仮想3次元空間内のオブジェクトの様子を仮想カメラで撮影した画像を所定の描画サイクル(例えば、1/60秒。画像表示部360のリフレッシュレートに基づく。)で1枚のゲーム画像を生成し、生成したゲーム画像の画像信号を画像表示部360に出力する。
【0076】
画像表示部360は、画像生成部260から入力される画像信号に基づいて各種ゲーム画像を表示する。例えば、フラットパネルディスプレイ、ブラウン管(CRT)、プロジェクター、ヘッドマウントディスプレイといった画像表示装置によって実現できる。図1ではビデオモニタ1220のディスプレイ1222が該当する。
【0077】
通信制御部270は、データ通信に係るデータ処理を実行し、通信部370を介して外部装置とのデータのやりとりを実現する。
【0078】
通信部370は、通信回線2と接続して通信を実現する。例えば、無線通信機、モデム、TA(ターミナルアダプタ)、有線用の通信ケーブルのジャックや制御回路等によって実現され、図1では通信装置1212がこれに該当する。
【0079】
記憶部500は、予め定義されたプログラムやデータを記憶するとともに、処理部200の作業領域として用いられて処理部200が各種プログラムに従って実行した演算結果や操作部100から入力される入力データ等を一時的に記憶する。この機能は、例えばRAMやROMなどのICメモリ、ハードディスク等の磁気ディスク、CD−ROMやDVDなどの光学ディスクなどによって実現される。図1の光学ディスク1202やメモリカード1204、制御ユニット1210に搭載されたICメモリがこれに該当する。
【0080】
本実施形態における記憶部500は、処理部200にゲーム装置1200を統合的に制御させるための諸機能を実現するためのシステムプログラム502や、ゲームを実行させるために必要なゲームプログラム504、並びに各種データ等を記憶する。
処理部200がゲームプログラム504を読み出して実行することによって、処理部200にゲーム演算部210としての機能を実現させることができる。そして、ゲームプログラム504は、処理部200に閉平面図形描画制御部212として機能させるための画像表示制御プログラム506を含んでいる。
【0081】
また記憶部500には、予め記憶されるデータとしてゲーム空間設定データ510と、キャラクタ初期設定データ512と、シナリオデータ514と、詠唱呪文データ516と、閉平面図形データライブラリ520と、分割数設定TBL522とが記憶されている。
更にゲームの進行に伴って生成され、適宜書き換えられるデータとして、描画用閉平面図形データ530と、新規確定辺登録フラグ550とが記憶される。
また、ゲームの進行に係る処理を実行するに当たり必要となる情報として、例えば仮想カメラを制御するための画角・視線方向・姿勢情報などのデータ、各種制限時間のカウントデータなどが適宜記憶される。
【0082】
ゲーム空間設定データ510には、仮想3次元空間にゲーム空間を形成するための各種データが格納されている。例えば、ゲームの舞台となる空や地表、建物などの配置物に関するモデルデータやテクスチャデータ及びモーションデータが格納されている。
【0083】
キャラクタ初期設定データ512には、プレーヤキャラクタ32や味方キャラクタ34,36、敵キャラクタ群38の各キャラクタに関する初期設定データが格納されている。具体的には、ポリゴンモデル、テクスチャ、初期配置位置座標、最高速度や最高加速度、耐久力の初期値(初期ヒットポイント)、性能、使用可能な魔法の種類などの能力パラメータ値の初期値が格納されている。
【0084】
シナリオデータ514には、ゲームの物語の進行に係る情報が格納されている。例えば、連続するステージの順番、各ステージに登場する敵キャラクタの種類や登場条件、各ステージのクリア条件、各ステージで使用可能になる魔法の種類などがそれに当たる。
【0085】
詠唱呪文データ516は、魔法の種類毎の詠唱する呪文詠唱演出に係る情報が定義されている。本実施形態では、呪文詠唱演出でゲーム画面内に表示される閉平面図形の種類、配置順番、表示サイズ、移動経路や回転などを含む移動パターン、塗り潰しの色などが定義されている。
【0086】
閉平面図形データライブラリ520は、呪文詠唱演出で使用される全ての閉平面図形の輪郭曲線2を定義するデータを格納している。
【0087】
分割数設定TBL(テーブル)522は、呪文詠唱演出で使用される閉平面図形と仮想カメラとの仮想3次元空間内での距離に応じた閉平面領域の分割度合を定義する。例えば図12に示すように、仮想カメラからの距離条件522a毎に、輪郭線2の分割数522bを対応付けて格納している。
【0088】
描画用閉平面図形データ530は、呪文詠唱演出で使用される閉平面図形それぞれについて生成される。一つの描画用閉平面図形データ530には、最大分割点データ532と、共有点履歴データ534と、確定辺データ536と、基準三角形ポリゴンデータ538と、適用三角形ポリゴンデータ540とが含まれる。
【0089】
最大分割点データ532は、対応する閉平面図形の輪郭曲線2の最大分割数で分割した輪郭点6を特定するデータが格納される。
共有点履歴データ534は、例えば図13に示すように、輪郭点の識別情報を格納する輪郭点ID534aと対応づけて、内部辺の設定処理において共有点となったことがある場合に立てられる共有点履歴フラグ534bを格納する。
【0090】
確定辺データ536は、図4〜図7を参照して説明した基準三角形ポリゴンの辺を設定する処理において輪郭辺Enm(n,mは自然数)又は内部辺Etとして確定した辺を特定するためのデータを格納する。
例えば図14に示すように、自動的に付与される辺ID536aに対応づけて、辺の両端となる頂点ID536bと、当該辺の種類を示す情報を格納する辺種類536cと、新規確定辺探索処理対象フラグ536dを格納する。
【0091】
辺種類536cとしては、輪郭辺、隣接する2本の輪郭辺の組み合わせから確定された内部辺である1次内部辺、輪郭辺と1次内部辺のうち2本の隣接する辺の組み合わせから確定された内部辺である2次内部辺、・・・輪郭辺とn次内部辺(nは自然数)のうち2本の隣接する辺の組み合わせから確定された内部辺であるn+1次内部辺、の何れかを示す情報が格納される。
【0092】
新規確定辺探索処理対象フラグ536dは、図4〜図8を参照して説明した輪郭辺Enmや内部辺Etの探索・登録に係る処理の処理対象となったことがあれば立てられる。尚、確定辺データ536に新たに辺が登録される時点での初期状態は「0」でフラグは立っていない状態とする。
【0093】
基準三角形ポリゴンデータ538は、基準分割点に基づいて確定された輪郭辺及び内部辺とで形成される三角形ポリゴンデータを格納する。
【0094】
適用三角形ポリゴンデータ540は、基準三角形ポリゴンを元に閉平面図形と仮想カメラとの距離に応じて細分化された三角形ポリゴンデータを格納する。仮想3次元空間に配置される閉平面図形のポリゴンモデルはこの適用三角形ポリゴンデータ540に従って形成される。
【0095】
新規確定辺登録フラグ550は、輪郭辺を判定対象輪郭辺として内部辺Etの設定処理を実行し、確定された内部辺Etが存在する場合に立てられる。そして、一旦フラグをクリアし、新たに確定された内部辺Etを判定対象として更なる内部辺の設定処理を実行し、確定された内部辺がある場合に再びフラグが立てられる、と言った具合に使用される。
【0096】
[処理の流れの説明]
次に、本実施形態における処理の流れについて説明する。ここで説明される処理は、処理部200がゲームプログラム504を実行することによって実現される。尚、ゲーム画面の生成制御や表示制御、及びゲーム音の再生制御については公知のビデオゲームと同様に実現できるので、ここでの詳細な説明は省略する。
【0097】
図15は、本実施形態における主たる処理の流れについて説明するためのフローチャートである。
処理部200は先ず、ゲーム空間設定データ510を参照して、仮想3次元空間内に各種オブジェクトを配置してゲーム空間を形成し(ステップS2)、キャラクタ初期設定データ512とシナリオデータ514とを参照して、形成されたゲーム空間内にプレーヤキャラク32、味方キャラクタ34,36及び敵キャラクタ群38等のキャラクタのオブジェクトを配置する(ステップS4)。
【0098】
そして、ゲーム画面の生成及び表示制御と、ゲーム音の再生制御を開始する(ステップS6)。これ以降、処理部200は、公知のビデオゲームと同様に所定描画サイクル(例えば、1/60秒。ビデオモニタ1222のリフレッシュレート以下の時間間隔。)で、仮想3次元空間を仮想カメラで撮影した画像を生成し、これを元にゲーム画面を生成する。そして、ビデオモニタ1220の画像表示装置1222にゲーム画面を表示させる。また、同様にBGMやSE(サウンドエフェクト)などのゲーム音の生成処理や再生処理を行ってスピーカ1224から放音させる。
【0099】
ゲームコントローラ1230に為されたゲームスタート操作を検出したならば(ステップS8のYES)、処理部200は、ゲーム画面の描画サイクル分だけ仮想カメラの移動制御と(ステップS10)、味方キャラクタ34,36及び敵キャラクタ群38のNPCの動作の自動制御とを行う(ステップS12)。更にゲームコントローラ1230へ為された操作入力に応じてプレーヤキャラク32の動作を決定する(ステップS14)。
【0100】
魔法攻撃以外の動作である場合(ステップS16のNO)、処理部200はゲーム画面の描画サイクル分だけプレーヤキャラクタ32がその魔法攻撃以外の動作をするように動作制御する(ステップS18)。例えば、ゲーム空間内での移動、防御、剣など魔法以外での攻撃などがこれに含まれる。
【0101】
一方、プレーヤキャラク32の動作が魔法攻撃の場合、又は魔法攻撃動作が継続中の場合(ステップS16のYES)、処理部200は、呪文の詠唱から魔法発動に至る一連の動作をプレーヤキャラクタ32がするように制御する。その為に、処理部200は呪文詠唱動作の終了判定をする(ステップS20)。
【0102】
呪文詠唱動作が終了していれば(ステップS20のYES)、処理部200は魔法発動の動作制御をする(ステップS26)。例えば、火炎系の魔法ならば、指先から火炎球が敵キャラクタ群38に向かって飛翔するといった表示制御をゲーム画面の描画サイクル分だけ実行する。
呪文詠唱動作が終了していなければ(ステップS20のNO)、処理部200はプレーヤキャラクタ32の呪文詠唱動作の制御を実行する(ステップS22)。例えば、右手を挙げて呪文を唱えるように表情の変化をつけるといった制御をゲーム画面の描画サイクル分だけ実行する。そして更に、呪文詠唱演出処理を実行する(ステップS24)。
【0103】
図16は、本実施形態における呪文詠唱演出処理の流れを説明するためのフローチャートである。呪文詠唱演出処理では、処理部200は先ず詠唱呪文データ516を参照して今回詠唱される呪文に含まれる全閉平面図形のデータ(輪郭曲線2を定義するデータ、ベジエ曲線データ)を閉平面図形データライブラリ520より読み出す(ステップS40)。
【0104】
そして、処理部200は読み出した全ての閉平面図形についてループAの処理を実行する(ステップS42〜S68)。
具体的にループAの処理では、先ず、処理対象の閉平面図形の最大分割点データ532が未設定であるかどうかを判定する(ステップS44)。未設定の場合には(ステップS44のYES)、当該処理対象の閉平面図形について閉平面図形データライブラリ520より読み出したデータに基づいて最大分割点(図4(a)の輪郭点6)を求めて、最大分割点データ532を生成する(ステップS46)。
【0105】
次に、処理部200は、処理対象の閉平面図形の基準三角形ポリゴンデータ538が未設定であるか否かを判定する(ステップS50)。そして、未設定の場合には(ステップS50のYES)、基準三角形ポリゴンデータ生成処理を実行する(ステップS50)。
【0106】
図17は、本実施形態における基準三角形ポリゴンデータ生成処理の流れを説明するためのフローチャートである。
基準三角形ポリゴンデータ生成処理では、先ず、最大分割点データ532を参照して、最大分割点の中から処理対象とされる閉平面図形の輪郭曲線2上に基準分割点を選択・設定し(ステップS80;図4(b)等を参照)、更に輪郭曲線2に沿って隣接する基準分割点を結ぶ全ての辺を輪郭辺Enm(n,mは自然数)として確定辺データ536に登録する(ステップS82)。
【0107】
次に、処理対象とされる閉平面図形の内側に穴部があるか、換言すると外側の輪郭線の他に内側の輪郭線があるか否かを判定する(ステップS84)。
例えば、アルファベットの「E」は全て外側の輪郭線で閉平面図形としての閉領域が定義されるが、アルファベットの「A」や数字の「0」は、外側の輪郭線に加えて内側の空間、抜け部分表す内側の輪郭線をもって閉領域を定義している。ステップS84では前者は否定判定、後者は肯定判定となる。
そして肯定判定された場合(ステップS84のYES)、処理部200は外側の輪郭線の基準分割点と、内側の輪郭線の基準分割点のうち、最近接点間を設定して両点間を結ぶ辺を輪郭辺Enmとして確定辺データ536に登録する(ステップS86)。尚、登録されるそれらの辺の新規確定辺探索処理対象フラグ536dには、初期値「0」を設定する。
【0108】
次に、処理部200は、新規確定辺登録フラグ550を「0」に設定してフラグをクリアした初期状態とし(ステップS88)、現時点において確定辺データ536に登録されているが新規確定辺探索登録処理フラグ536dが立っていない確定辺を抽出する(ステップS90)。そして、抽出した全ての確定辺についてループB(ステップS92〜S98)の処理を実行してそれら全ての確定辺についてそれぞれ新規確定辺探索登録処理を実行する(ステップS94)。
【0109】
図18は、本実施形態における新規確定辺探索登録処理の流れを説明するためのフローチャートである。新規確定辺探索登録処理では、処理部200は先ず処理対象とする確定辺と、当該辺の一方の端点を共有点Pcとして隣接する他の確定辺(隣接確定辺)との組み合わせを全て求める(ステップS120)。
図4(c)の例では、処理対象とする確定辺を輪郭辺E12としているので、輪郭辺E12と輪郭辺E23との組み合わせと、輪郭辺E12と輪郭辺E91との組み合わせが求められる。
【0110】
そして、求めた全ての組み合わせについてループCを実行する(ステップS122〜S142)。ループCでは、処理部200は処理対象とされる確定辺と求めた組み合わせの相方となる隣接確定辺の非共有点PsとPeとを結ぶ辺を内部辺Etの候補として仮設定し(ステップS124)、この仮設定された辺について、ステップS126〜S134によって先に述べた条件(1)〜(5)を満たすか否かを判定する。
【0111】
より具体的には、共有点例歴データ534を参照して非共有点Ps,Peのどちらかが共有点Pcになった事が無いか判定する(ステップS126)。無ければ(ステップS126のYES;条件(1)合致相当)、更に確定辺データ536を参照して当該仮設定辺と同じ確定辺が無いか判定する(ステップS128)。
【0112】
次いで、同じ確定辺が無ければ(ステップS128のYES;条件(2)合致相当)、処理部200は更に確定辺データ536を参照して当該仮設定辺が他の確定辺と交差するか否かを判定する(ステップS130)。そして、交差しなければ(ステップS130のYES;条件(3)合致相当)、更に確定辺データ536を参照して仮設定辺の共有点Pc及び非共有点Ps,Peで形成される三角形の内部に他の確定辺が存在を判定する(ステップS132)。
【0113】
存在しない場合(ステップS132のYES;条件(4)合致相当)、処理部200は更に仮設定辺がループAの処理対象とされる閉平面図形の閉領域内部に存在を判定する(ステップS134)。そして、閉平面図形の内部に存在していれば(ステップS134のYES;条件(5)合致相当)、処理部200は前述の条件(1)〜(5)を全て満たしていると判断して、当該仮設定辺を新たな内部辺Etとして確定辺データ536に登録する(ステップS136)。
【0114】
新たな内部辺が確定したので、処理部200は共有点履歴データ534に当該確定した内部辺Etの共有点Pcの共有点履歴を「1」に設定して登録し(ステップS138)、新規確定辺登録フラグ550を「1」に設定してフラグを立てる(ステップS140)。
【0115】
勿論、ステップS126〜S134にて何れかで否定判定された場合には、ステップS136〜S140は実行されず、次に処理対象の組み合わせについてループCを実行する。
【0116】
図17に戻って、ループBの処理対象とされる確定辺について新規確定辺探索登録処理を実行したならば、確定辺データ536の当該確定辺に対応する新規確定辺探索登録処理フラグ536dを「1」に設定してフラグを立て(ステップS96)、当該処理対象の確定辺についてのループBの処理を終了する。
【0117】
ステップS90で抽出した全ての確定辺についてループBを終了したならば、処理部200は新規確定辺登録フラグ550が「1」であるか、つまり新たに追加された確定辺の有無を判定する(ステップS100)。
【0118】
新規確定辺登録フラグ550が「1」であれば(ステップS100のYES)、ステップS88に戻って、その資金着に追加された確定辺についてループBを実行する。
一方、新規確定辺登録フラグ550が「0」であれば(ステップS100のNO)、確定辺データ536に登録されている確定辺を元に基準三角形ポリゴンデータ538を生成・更新し(ステップS102)、生成した基準三角形ポリゴンデータについてドロネー三角形網化処理を実行して(ステップS104)、基準三角形ポリゴンデータ生成処理を終了する。
【0119】
図16に戻って、処理部200は次に処理対象とされる閉平面図形の予定配置位置を算出する(ステップS52)。本実施形態における呪文詠唱演出では、閉平面図形は、所定の順番で出現し所定の移動経路をたどるように移動制御されるので、詠唱開始からの時間経過から各閉平面図形の予定配置位置を算出することができる。
予定配置位置を算出したら、当該閉平面図形の代表点から仮想カメラまでの距離を算出する(ステップS54)。そして、分割数設定TBL522を参照して、算出した仮想カメラまでの距離に応じた分割数522bを決定する(ステップS56)。
【0120】
ここで、決定された分割数が所定の基準分割数より大きいか否かを判定する(ステップS58)。基準分割数は、想定される最も仮想カメラから離れた位置にあるときに適した分割数である。処理対象とされる閉平面図形が想定される最も離れた位置よりも近づけばステップS56で決定される分割数は基準分割数よりも大きくなる可能性がある。
【0121】
そして、基準分割数よりも大きければ(ステップS58のYES)、処理部200は三角形ポリゴン細分化処理を実行して、図9及び図10を参照して説明したようにして基準三角形ポリゴンデータ538で定義されている三角形ポリゴンを細分化する(ステップS60)。
【0122】
図19は、本実施形態における三角形ポリゴン細分化処理の流れを説明するためのフローチャートである。三角形ポリゴン細分化処理では、処理部200は基準三角形ポリゴンデータ538の全三角形ポリゴンについてループDの処理を実行する(ステップS160〜S172)。
【0123】
具体的にループDでは、先ず、処理対象とされる三角形ポリゴンの頂点が、ループAの処理対象とされる閉平面図形の輪郭線上にあるか否かを判定して細分化の対象とするかどうかのふるいにかける(ステップS162)。
【0124】
3頂点が輪郭線上に有ると判定した場合(ステップS162のYES)、処理部200は処理対象とされる三角形ポリゴンの輪郭辺、つまりは、その辺よりも外側、輪郭線側に他の確定辺が存在しない辺を抽出する(ステップS164)。例えば図9(a)の例で言うと、基準分割点P3,P4,P5を有する三角形ポリゴンについては輪郭辺E34,E45が抽出され、基準分割点P1,P3,P9を有する三角形ポリゴンについては輪郭辺E91が抽出されることになる。
【0125】
次に、最大分割点データ532を参照して、抽出した輪郭辺の両端点に挟まれる範囲の輪郭線上に設定されている輪郭点の中から、ステップS56で決定した分割数の不足を補う為に、処理対象とされる閉平面図形の全輪郭辺で平均化された数の輪郭点を設定する(ステップS166)。設定する数は、例えば{(ステップS56で決定した分割数−基準分割数)/処理対象とされる閉平面図形の輪郭辺数}より大きくて最近似する自然数である。
【0126】
そして、図9〜図10で説明したようにして、設定された輪郭点と処理対象とされる三角形ポリゴンの3頂点とからより細分化した三角形ポリゴンを生成し(ステップS168)、適用三角形ポリゴンデータ540の処理対象とされる三角形ポリゴンの部分を新たに細分化・生成された三角形ポリゴンに更新する(ステップS170)。
【0127】
基準三角形ポリゴンデータ538の全ての三角形ポリゴンについてループDを実行したならば図16のフローチャートに戻って、処理部200は細分化した結果を、適用三角形ポリゴンデータ540に格納する(ステップS62)。一方、ステップS56で決定された分割数が基準分割数よりも大きく無ければ(ステップS58のNO)、細分化は行わずに基準三角形ポリゴンデータ538を適用三角形ポリゴンデータ540に複製するだけとする(ステップS64)。
【0128】
そして、処理部200は適用三角形ポリゴンデータ540に基づくポリゴンモデルをステップS52で算出した予定配置位置に配置して(ステップS66)、ループAの処理を終了する(ステップS68)。
ステップS40で読み出した全ての閉平面図形についてループAを実行したならば呪文詠唱演出処理を終了して図15のフローチャートに戻る。
【0129】
次いで、処理部200はゲーム結果の算出処理を実行する(ステップS28)。例えば、公知のRPGと同様にして、魔法攻撃他ゲーム中に登場する攻撃技のヒット判定処理や、防御判定処理、攻撃を受けた側のダメージ判定処理、ダメージ分をヒットポイント(耐久値)から減算する処理などを実行する。
そして、算出したゲーム結果がゲーム終了条件を満たしていなければ(ステップS30のNO)、ステップS10に戻る。ゲーム終了条件を満たしていれば(ステップS30のYES)、エンディング画面を表示したり、総合ゲーム結果を表示するなど所定のゲーム終了処理を実行して(ステップS32)、一連の処理を終了する。
【0130】
このように、呪文詠唱演出で使用する閉平面図形の輪郭曲線の定義データから、当該図形と仮想カメラからの距離に適した輪郭の滑らかさを有するポリゴンモデルを自動生成することができる。
輪郭線が定義された閉平面図形は、例えばポストスクリプト形式のフォントのように拡大縮小されても輪郭が滑らかに表現されることが望まれる図形のデータ形式として一般的である。また、新規に製作するとしてもポリゴンモデルの作成に比べると工数が少なくて済む。よって、ゲーム製作工数の大幅な削減が可能になる。
【0131】
そして、三角形ポリゴンは近年の家庭用ゲーム装置1200において画像生成の基本要素とされており、ハードウェア及びソフトウェアがポリゴンモデルの処理に適したように性能が高められている。従って、閉平面図形の閉領域内を高速に塗り潰すことができる。
【0132】
〔第2実施形態〕
次に、本発明を適用した第2実施形態について説明する。本実施形態は、基本的に第1実施形態と同様の構成を有するが、描画用閉平面図形データ530の基準三角形ポリゴンデータ538及び適用三角形ポリゴンデータ540をストリップデータ形式で記憶する構成とする点と、それに伴って、三角形ポリゴン細分化処理をストリップデータの生成に適した手法で行う点が異なる。尚、第1実施形態と同様の構成要素については同じ符合を付与し説明は省略する。
【0133】
図20は、本実施形態における機能構成例を示す機能ブロック図である。本実施形態では、記憶部500にストリップ生成パターンTBL(テーブル)523を予め複数記憶している。ストリップ生成パターンTBL523は、三角形ポリゴン細分化処理の対象とされる三角形ポリゴンにおける輪郭辺の数と、輪郭辺と当該三角形ポリゴン部分のストリップデータの始点側頂点と終点側頂点との位置関係とに基づいて、合計8パターン用意されている。
【0134】
図21〜図28は8通りのストリップ生成パターンについて説明するための図であり、各図の(a)が細分化の概念図、(b)がストリップ生成パターンTBL523のデータ構成例の図に相当する。ストリップ生成パターンTBL523は、それぞれ適用条件523aと、ストリップデータの連結順523bに連結される頂点識別523cとが対応づけられたデータを含む。
【0135】
図21は、三角形ポリゴン細分化処理の対象とされる三角形ポリゴンが、3つの外周辺の何れも閉平面図形の輪郭線2に面していないケース、つまり当該三角形ポリゴンに一つも輪郭辺が含まれていないケースを示している。
この場合、対象とする三角形ポリゴンは閉平面図形の内部に存在し、細分化するか否かは閉平面図形の外形の見かけの滑らかさには影響しない。よって、実質的には三角形ポリゴンの細分化は行われず、ストリップ生成パターンTBL523−1は、三角形ポリゴンの3つの頂点V0(ストリップ上流側、始点側の頂点),V1,V2(ストリップ下流側、終点側の頂点)といった具合に、細分化される前のストリップデータの頂点順のままとなるように定義されている。
【0136】
図22は、三角形ポリゴン細分化処理の対象とされる三角形ポリゴンが、3つの外周辺全てが輪郭辺となるケースを示している。
この場合、各輪郭辺V0〜V1、V1〜V2、V2〜V0の両端に挟まれる区間の輪郭辺2(図22中の一点鎖線)に設定されている最大分割点の中から新たな頂点Va,Vb,Vcが選択される。そして、既存の頂点V0,V1,V2にそれら新規追加頂点を追加して、新たに4つの三角形ポリゴンV0〜Va〜Vc、Va〜V1〜Vc、Vc〜V1〜Vb、Vb〜V2〜Vcを形成するように細分化される。図中の破線が、細分化されて生まれた三角形ポリゴンの境界となる辺に相当する。そして、細分化に伴って新たに生成されるストリップデータは、例えば、ストリップ生成パターンTBL523−2に示す連結順となる。
【0137】
図23〜図25は、三角形ポリゴン細分化処理の対象とされる三角形ポリゴンが、1辺のみ輪郭辺となるケースに相当し、それぞれストリップ順に見た各頂点と輪郭辺との相対位置違いのケースである。
【0138】
例えば、図23はストリップ順第1点〜第2点を結ぶ辺が輪郭辺であるケースを示している。この場合、輪郭辺V0〜V1の両端に挟まれる区間に設定されている新規追加頂点Vaが選択され、この新規追加頂点を含む格好で2つの新たな三角形ポリゴンに細分化される。新たに生成されるストリップデータは、ストリップ生成パターンTBL523−3に示す連結順となる。同様に、図24及び図25のケースにおいて新たに生成されるストリップデータは、それぞれストリップ生成パターンTBL523−4、523−5に示す連結順となる。
【0139】
図26〜図28は、三角形ポリゴン細分化処理の対象とされる三角形ポリゴンが、2つの輪郭辺を有するケースに相当し、それぞれストリップ順に見た各頂点と輪郭辺との相対値違いのケースである。
【0140】
例えば、図26はストリップ順第1点〜第2点を結ぶ辺と、ストリップ順第2点〜第3点を結ぶ辺とが輪郭辺となるケースである。この場合、輪郭辺V0〜V1の両端に挟まれる区間に設定されている新規追加頂点Vaが選択され、輪郭辺V1〜V2の両端に挟まれる区間に設定されている新規追加頂点Vbが選択される。そして、元の三角形ポリゴンは、これらの新規追加頂点を含む格好で3つの新たな三角形ポリゴンに細分化される。新たに生成されるストリップデータは、ストリップ生成パターンTBL523−6に示す連結順となる。同様に、図27及び図28のケースにおいて新たに生成されるストリップデータは、それぞれストリップ生成パターンTBL523−7、523−8に示す連結順となる。
【0141】
図29は、本実施形態における呪文詠唱演出処理(呪文詠唱演出処理B)の流れを説明するためのフローチャートである。同図に示すように、基本的には第1実施形態の同処理と同様の流れを有するが、本実施形態では、仮想カメラから処理対象の閉平面図形の代表点までの距離に応じた分割数を決定したならば(ステップS56)、ここで基準三角形ポリゴンデータ538のストリップデータを、適用三角形ポリゴンデータ540に複製・格納する(ステップS57a)。
そして、ステップS56で決定された分割数が基準分割数より大きい場合(ステップS57bのYES)、ステップS60に代えて三角形ポリゴン細分化処理Bを実行し(ステップS57c)、同細分化処理の結果が先に決定された分割数に達するまでこれを繰り返す(ステップS57dのNO)。同細分化処理の繰り返しの結果、分割数がステップS56で求めた分割数に達しならば、それまでの細分化処理の結果が反映された適用三角形ポリゴンデータ540に基づいてループAの処理対象とされる閉平面図形をステップS52で算出した予定配置位置に配置する(ステップS66)。
【0142】
図30は、本実施形態における三角形ポリゴン細分化処理(三角形ポリゴン細分化処理B)の流れを説明するためのフローチャートである。
処理部200は、適用三角形ポリゴンデータ540として記憶されているストリップデータを読み出し、同データで定義される全ての三角形ポリゴンについてストリップ順にループEの処理を実行する(ステップS190〜S202)。
【0143】
ループEでは、先ず処理対象とされている三角形ポリゴンの輪郭辺を抽出する(ステップS192)。具体的には、確定辺データ536(図14)を参照して対象の三角形ポリゴンの頂点を頂点ID536bに含み、辺種類536cが「0(輪郭辺)」に設定されている辺を抽出する。
【0144】
次に、抽出された輪郭辺毎に、輪郭辺の両端間に存在する分割点を最大分割点データ532を参照して一つずつ新規追加頂点を選択する(ステップS194)。新規追加される頂点は両端点間の中間にある分割点を選択するとしても良い。或いは、同端点間の輪郭線2の曲率の大きい側の分割点を選択するとしても良い。
【0145】
次に、処理部200は先に抽出された輪郭辺の数と、当該輪郭辺と処理対象三角形ポリゴンの各頂点との位置関係に基づいて、適用するストリップ生成パターンTBL523を選択し(ステップS196)、選択したストリップ生成パターンTBL523を参照して、頂点識別523cに該当する頂点データを連結順523bに従って連結して新たなストリップデータを生成する(ステップS198)。そして、適用三角形ポリゴンデータ540のストリップデータの内、処理対象となっている三角形ポリゴンの部分を新たに生成したストリップデータで更新し(ステップS200)、ループEの処理を終了する。
【0146】
よって、本実施形態によればポリゴンモデルのデータをストリップデータ形式で保有する形態に適した三角形ポリゴンの細分化処理を実現できる。
【0147】
〔第3実施形態〕
次に、本発明を適用した第3実施形態について説明する。本実施形態は、基本的には第2実施形態と同様に実現されるが、三角形ポリゴンの細分化の度合いを閉平面図形単位でなく、三角形ポリゴン単位で調整する点が異なる。尚、第2実施形態と同様の構成要素については同じ符合を付与し、説明は省略するものとする。
【0148】
図31は、本実施形態における機能構成例を示す機能ブロック図である。本実施形態では、第2実施形態と比較すると、記憶部500に分割数設定TBL522に代えて輪郭辺分割回数設定TBL524を予め記憶している。
【0149】
輪郭辺分割回数設定TBL524は、仮想カメラから細分化対象とされる三角形ポリゴンの代表点との距離に応じて、細分化処理する度合いを定義する。
例えば、図32に示すように、仮想カメラからの距離条件524aと対応づけて輪郭辺分割回数524bを格納する。例えば、仮想カメラからの距離条件524aが「L1以上L2未満」では輪郭辺分割回数524bが「2」に設定されている。本実施形態の三角形ポリゴン細分化処理は、第2実施形態のそれと同様に、輪郭辺に対面する輪郭線部分に新規追加頂点を一回の細分化処理で一つ追加し、この新規追加頂点を含むように細分化する。つまり、輪郭辺が二つに分割される。よって、この場合、輪郭辺分割回数524bが「2」なので合計2回細分化処理されることになるので、基準三角形ポリゴンデータ538に格納されているポリゴンモデルと比べると輪郭辺が4倍細かくなる。
尚、仮想カメラからの距離条件524a及び輪郭辺分割回数524bは、ゲームに登場する閉平面図形の大きさや演出の内容に応じて適宜設定するものとする。
【0150】
次に、処理の流れについて説明する。
図33は、本実施形態における呪文詠唱演出処理(呪文詠唱演出処理C)の流れを説明するためのフローチャートである。基本的には第2実施形態の呪文詠唱演出処理Bに類似しているが、処理部200は、ループAの処理対象とされる閉平面図形の予定配置位置を算出したならば(ステップS52)、本実施形態における三角形ポリゴン細分化処理(三角形ポリゴン細分化処理C)を実行する(ステップS53)。そして、同細分化処理の結果が反映された適用三角形ポリゴンデータ540に基づいてループAの処理対象とされる閉平面図形のポリゴンモデルをステップS52で求めた予定配置位置に配置する(ステップS66)。
【0151】
図34は、本実施形態における三角形ポリゴン細分化処理の流れを説明するためのフローチャートである。同処理では先ず、処理部200は基準三角形ポリゴンデータ538のストリップデータを適用三角形ポリゴンデータ540に複製・格納する(ステップS220)。そして、適用三角形ポリゴンデータ540のストリップ順に全ての三角形ポリゴンについてループFの処理を実行する(ステップS222〜S246)。
【0152】
ループFの処理では、処理部200は処理対象とされる三角形ポリゴンの輪郭辺を抽出し(ステップS224)、抽出された輪郭辺の数が「0」であれば(ステップS226のNO)、ループFの処理を終了する。
【0153】
一方、抽出された輪郭辺の数が「1」以上であれば(ステップS226のYES)、処理部200は次に処理対象の三角形ポリゴンの代表点から仮想カメラまでの距離を算出し(ステップS228)、輪郭辺分割回数設定TBL524を参照して、算出した距離に適合する距離条件524aに対応する輪郭辺分割回数524bを取得する(ステップS230)。
【0154】
次いで、処理部200は、記憶部500に分割回数カウンタを設け、これを「0」に初期設定し(ステップS232)、第2実施形態と同様に当該処理対象の三角形ポリゴンの細分化を行う。
すなわち、抽出された輪郭辺毎に、輪郭辺の両端間に存在する分割点を、最大分割点データ532を参照して一つずつ新規追加頂点として選択し(ステップS234)、ステップS224で抽出された輪郭辺の数と、当該輪郭辺と処理対象三角形ポリゴンの各頂点との位置関係に基づいて、適用するストリップ生成パターンTBL523を選択する(ステップS236)。そして、選択したストリップ生成パターンTBL523を参照して、頂点識別523cに該当する頂点データを連結順523bに従って連結して新たなストリップデータを生成し(ステップS198)、適用三角形ポリゴンデータ540のストリップデータの内、処理対象となっている三角形ポリゴンの部分を新たに生成したストリップデータで更新する(ステップS240)。
【0155】
三角形ポリゴンの細分化を終えたら、処理部200は分割回数カウンタを「1」加算して(ステップS242)、同カウンタの加算後の値がステップS230で取得した輪郭辺分割回数に達したか否かを判定する(ステップS244)。
達していなければ(ステップS244のNO)、ステップS234に戻って再びループFの処理対象とされる三角形ポリゴンについて細分化を行う(ステップS234〜S240)。もし、達していれば(ステップS244のYES)、当該三角形ポリゴンについてのループFの処理を終了する。
【0156】
よって、三角形ポリゴン細分化処理Cによって、仮想カメラから近い位置の三角形ポリゴンほど遠く離れた位置にある三角形ポリゴンよりも回数、細分化処理が繰り返され、基準三角形ポリゴンデータに設定されているポリゴンよりも輪郭線が滑らかに見るようになる。例えば、図35に示すように基準三角形ポリゴンデータ538のポリゴンモデル30が仮想カメラの視線に対して立面姿勢に配置された場合と(図35(a))、傾斜姿勢で配置された場合とでは(図35(b))、仮想カメラに近い三角形ポリゴン(例えば、三角形ポリゴンV7〜V8〜V9)に新規追加頂点(V10、V11)が追加されて細分化されるが、それ以外は分割されないといった違いが生じる。
尚、同図では図面に向かって手前側に仮想カメラが有り図面に向かって前後方向に視線が向いているものと想定して図示されている。そして、ポリゴンモデル全体としての傾きが分かるように全体を細線で囲っている。また、基準三角形ポリゴンデータに基づく三角形ポリゴンの各辺を実線で示し、細分化にともない新たに生成された三角形ポリゴンの境界となる辺と破線で示している。
【0157】
従って、本実施形態によれば、見かけ上のポリゴンモデルの輪郭が滑らかにみえるようにしつつ、仮想カメラから離れている三角形ポリゴンの細分化処理にかかる負担を軽減し、図形の塗り潰し描画をより高速化することができる。
【0158】
〔変形例〕
以上、本発明を適用した第1〜第3実施形態について説明したが、本発明の適用形態がこれらに限定されるものではなく、発明の主旨を逸脱しない限りにおいて適宜構成要素の追加・省略・変更ができる。
【0159】
例えば、閉平面図形は上記実施形態のように文字やシンボルマークといった図形に限らない。例えば、図36に示すようにゲームに登場するキャラクタ20であっても良い。キャラクタ20は、左耳22、右耳23、左目24、右目25、頭部26、口元27、鼻28、左腕29、右腕30、胴体31、左足32、右足33の集合として定義されている。これらは、それぞれ輪郭線が近似曲線関数で定義された閉平面図形である。これらの大きさや相対位置等を変化させることで、キャラクタ20に様々な動作をさせることができる。そして、上記実施形態と同様にこれら各要素を描画することで、キャラクタ20が仮想カメラに近づいたり離れたりする演出が行われても、低処理負荷で高速にキャラクタを描画することができる。
【0160】
例えば、上記実施形態では適用三角形ポリゴンデータ540の更新に際し、閉平面図形と仮想カメラとの距離に応じて、輪郭曲線上に設定する輪郭点の数を、分割設定TBL522を参照して可変する構成としたがこれに限るものではない。
例えば、図16のステップS56〜S58に代えて、閉平面図形と仮想カメラとの距離が所定距離以内に近接したか否かを判定するステップを設けて閉平面図形と仮想カメラとの近接検出手段として処理部200を機能させる。この時所定距離の設定は一つに限らず複数、段階的に設定することができる。そして、近接したと判定された条件に応じて基準三角形ポリゴンモデルに新規追加する頂点を設定するステップを設けるとしても良い。
【0161】
また、図17のステップS84〜S86では、閉平面図形が外側と内側とに輪郭曲線を有する図形である場合に、外側の輪郭曲線上の輪郭点のうちの1つと内側の輪郭曲線上の輪郭点のうちの1つとを結ぶ1つの辺を輪郭辺として設定する構成としているが、当該ステップの代わりに新規確定辺探索登録処理にて、該当辺を内部辺として設定するステップを設けた構成としても良い。
【0162】
また、最大分割点データ532及び基準三角形ポリゴンデータ538は、ゲーム製作工程において予め用意しておいて、閉平面図形データライブラリ520に各閉平面図形と対応づけて格納しておく構成としても良い。その場合、図16の最大分割点データ532及び基準三角形ポリゴンデータ538の生成に係るステップS44〜S50を省略することができる。
【0163】
また、上記実施形態では本発明を実現するプログラムとしてゲームプログラムを挙げたが、その他、ポリゴンを用いて3DCGを生成するプログラムであればアニメーション作成用プログラムや、プレゼンテーション用プログラムなどその他のプログラムでも良い。
【0164】
また、上記実施形態ではポリゴンモデル生成装置の例として家庭用ゲーム装置1200を挙げたが、携帯型ゲーム装置や業務用ゲーム装置は勿論のこと、ゲームプログラム504など本発明を適用したプログラムを実行可能な情報処理装置であれば、携帯電話やPHSの機能を有する携帯情報端末やパソコン、PDAなどとしても良い。
【図面の簡単な説明】
【0165】
【図1】家庭用ゲーム装置の構成例を示すシステム構成図。
【図2】ゲーム画面例を示す図。
【図3】閉平面図形の塗り潰しの概念を説明するための図。
【図4】閉平面図形の高速塗り潰しの原理について説明するための図。
【図5】閉平面図形の高速塗り潰しの原理について説明するための図。
【図6】閉平面図形の高速塗り潰しの原理について説明するための図。
【図7】閉平面図形の高速塗り潰しの原理について説明するための図。
【図8】閉平面図形の高速塗り潰しの原理について説明するための図。
【図9】閉平面図形の高速塗り潰しの原理について説明するための図。
【図10】閉平面図形の高速塗り潰しの原理について説明するための図。
【図11】家庭用ゲーム装置の機能構成例を示す機能ブロック図。
【図12】分割数設定TBL(テーブル)のデータ構成例を示すデータ構成図。
【図13】共有点履歴データのデータ構成例を示すデータ構成図。
【図14】確定辺データのデータ構成例を示すデータ構成図。
【図15】主たる処理の流れについて説明するためのフローチャート。
【図16】呪文詠唱演出処理の流れを説明するためのフローチャート。
【図17】基準三角形ポリゴンデータ生成処理の流れを説明するためのフローチャート。
【図18】新規確定辺探索登録処理の流れを説明するためのフローチャート。
【図19】三角形ポリゴン細分化処理の流れを説明するためのフローチャート。
【図20】第2実施形態の機能構成例を示す機能ブロック図。
【図21】第1のストリップ生成パターンの例について説明するための図。
【図22】第2のストリップ生成パターンの例について説明するための図。
【図23】第3のストリップ生成パターンの例について説明するための図。
【図24】第4のストリップ生成パターンの例について説明するための図。
【図25】第5のストリップ生成パターンの例について説明するための図。
【図26】第6のストリップ生成パターンの例について説明するための図。
【図27】第7のストリップ生成パターンの例について説明するための図。
【図28】第8のストリップ生成パターンの例について説明するための図。
【図29】第2実施形態における呪文詠唱演出処理の流れを説明するためのフローチャート。
【図30】第2実施形態における三角形ポリゴン細分化処理の流れを説明するためのフローチャート。
【図31】第3実施形態における機能構成例を示す機能ブロック図。
【図32】輪郭辺分割回数設定TBLのデータ構成例を示す図。
【図33】第3実施形態における呪文詠唱演出処理の流れを説明するためのフローチャート。
【図34】第3実施形態における三角形ポリゴン細分化処理の流れを説明するためのフローチャート。
【図35】基準三角形ポリゴンデータのポリゴンモデルが仮想カメラの視線に対して(a)立面姿勢に配置された場合と、(b)傾斜姿勢で配置された場合の三角形ポリゴンの細分化の違いの例を示す図。
【図36】閉平面図形の変形例を示す図。
【符号の説明】
【0166】
2 輪郭曲線
4 三角形ポリゴン
6 輪郭点
32 プレーヤキャラクタ
40 図形群
100 操作入力部
200 処理部
210 ゲーム演算部
212 閉平面図形描画制御部
216 図形移動制御部
218 分割点設定部
220 三角形ポリゴンデータ生成部
222 三角形ポリゴン細分化部
224 ポリゴンモデル生成部
500 記憶部
504 ゲームプログラム
506 画像表示制御プログラム
516 詠唱呪文データ
520 閉平面図形データライブラリ
522 分割数設定TBL
523 ストリップ生成パターンTBL
524 輪郭辺分割回数設定TBL
530 描画用閉平面図形データ
532 最大分割点データ
534 共有点履歴データ
536 確定辺データ
538 基準三角形ポリゴンデータ
540 適用三角形ポリゴンデータ
550 新規確定辺登録フラグ

【特許請求の範囲】
【請求項1】
コンピュータに、滑らかな輪郭曲線によって定義された閉平面図形のポリゴンモデルを生成させるためのプログラムであって、
前記閉平面図形の前記輪郭曲線上に複数の輪郭点を設定する輪郭点設定手段、
前記輪郭点設定手段によって設定された輪郭点それぞれについて、隣接する輪郭点間を結ぶ輪郭辺を設定する輪郭辺設定手段、
前記輪郭辺設定手段によって設定された輪郭辺のうち、一方の端点を共有点として共有して隣接する2本の輪郭辺の他方の端点同士を結んで前記閉平面図形の内側に内部辺を設定する処理と、前記輪郭辺及び設定済みの内部辺のうち、一方の端点を共有点として共有して隣接する2本の辺の他方の端点同士を結んで更なる内部辺を設定する処理とを行う内部辺設定手段、
前記輪郭辺設定手段によって設定された輪郭辺と、前記内部辺設定手段によって設定された内部辺とに基づいてポリゴンモデルを生成するポリゴンモデル生成手段、
として前記コンピュータを機能させるためのプログラム。
【請求項2】
前記輪郭点設定手段によって設定された輪郭点間の前記輪郭曲線上に、新たな輪郭点を追加設定する追加輪郭点設定手段、
前記輪郭辺設定手段によって設定された輪郭辺と、前記内部辺設定手段によって設定された内部辺と、前記追加輪郭点設定手段によって設定された輪郭点とに基づいて、前記ポリゴンモデル生成手段によって生成されたポリゴンモデルを細分化して再構成するポリゴンモデル細分化手段、
として前記コンピュータを更に機能させるための請求項1に記載のプログラム。
【請求項3】
前記閉平面図形と仮想カメラとを仮想3次元空間に配置する配置手段として前記コンピュータを機能させるとともに、
前記輪郭点設定手段が、前記閉平面図形と前記仮想カメラとの距離に応じて、前記輪郭曲線上に設定する輪郭点の数を可変するように前記コンピュータを機能させるための請求項1又は2に記載のプログラム。
【請求項4】
前記閉平面図形と仮想カメラとを仮想3次元空間に配置する配置手段、
前記閉平面図形及び/又は前記仮想カメラを移動する移動手段、
前記閉平面図形と前記仮想カメラとの距離が所定距離以内に近接したことを検出する近接検出手段、
として前記コンピュータを機能させるとともに、
前記追加輪郭点設定手段が、前記近接検出手段による検出に応じて新たな輪郭点を追加設定するように前記コンピュータを機能させるための請求項2に記載のプログラム。
【請求項5】
前記閉平面図形が外側と内側とに輪郭曲線を有する図形である場合に、外側の輪郭曲線上の輪郭点のうちの1つと内側の輪郭曲線上の輪郭点のうちの1つとを結ぶ1つの辺を前記輪郭辺又は前記内部辺として設定する手段として前記コンピュータを機能させるための請求項1〜4の何れか一項に記載のプログラム。
【請求項6】
前記輪郭辺と前記内部辺とをもとに三角形パッチ群を生成して、生成した三角形パッチ群をドロネー三角形網化処理するドロネー三角形網化手段として前記コンピュータを機能させるとともに、
前記ポリゴンモデル生成手段がドロネー三角形網化処理された前記三角形パッチ群に基づいてポリゴンモデルを生成するように前記コンピュータを機能させるための請求項1〜5の何れか一項に記載のプログラム。
【請求項7】
前記内部辺設定手段が、(1)対象辺の両端点のどちらかが共有点で無く、且つ(2)当該対象辺が前記輪郭辺及び前記内部辺と重複せず、且つ(3)当該対象辺が前記輪郭辺及び前記内部辺と交差せず、且つ(4)当該対象辺と端点を共有する前記輪郭辺又は前記内部辺とで形成する三角形内部に他の輪郭辺及び内部辺が存在せず、且つ(5)当該対象辺が前記閉平面図形の閉領域内に存在する、場合に当該対象辺を新たな内部辺として設定するように前記コンピュータを機能させるための請求項1〜6の何れか一項に記載のプログラム。
【請求項8】
請求項1〜7の何れか一項に記載のプログラムを記憶したコンピュータ読み出し可能な情報記憶媒体。
【請求項9】
滑らかな輪郭曲線によって定義された閉平面図形のポリゴンモデルを生成するポリゴンモデル生成装置であって、
前記閉平面図形の前記輪郭曲線上に複数の輪郭点を設定する輪郭点設定手段と、
前記輪郭点設定手段によって設定された輪郭点それぞれについて、隣接する輪郭点間を結ぶ輪郭辺を設定する輪郭辺設定手段と、
前記輪郭辺設定手段によって設定された輪郭辺のうち、一方の端点を共有して隣接する2本の輪郭辺の他方の端点同士を結んで前記閉平面図形の内側に内部辺を設定する処理と、前記輪郭辺及び設定済みの内部辺のうち、一方の端点を共有して隣接する2本の辺の他方の端点同士を結んで更なる内部辺を設定する処理とを行う内部辺設定手段と、
前記輪郭辺設定手段によって設定された輪郭辺と、前記内部辺設定手段によって設定された内部辺とに基づいてポリゴンモデルを生成するポリゴンモデル生成手段と、
を備えたポリゴンモデル生成装置。
【請求項10】
滑らかな輪郭曲線によって定義された閉平面図形のポリゴンモデルを生成するポリゴンモデル生成方法であって、
前記閉平面図形の前記輪郭曲線上に複数の輪郭点を設定する輪郭点設定ステップと、
前記輪郭点それぞれについて、隣接する輪郭点間を結ぶ輪郭辺を設定する輪郭辺設定ステップと、
前記輪郭辺のうち、一方の端点を共有して隣接する2本の輪郭辺の他方の端点同士を結んで前記閉平面図形の内側に内部辺を設定する処理と、前記輪郭辺及び設定済みの内部辺のうち、一方の端点を共有して隣接する2本の辺の他方の端点同士を結んで更なる内部辺を設定する処理とを行う内部辺設定ステップと、
前記輪郭辺及び前記内部辺に基づいてポリゴンモデルを生成するポリゴンモデル生成ステップと、
を含むポリゴンモデル生成方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate

【図36】
image rotate


【公開番号】特開2010−117900(P2010−117900A)
【公開日】平成22年5月27日(2010.5.27)
【国際特許分類】
【出願番号】特願2008−290843(P2008−290843)
【出願日】平成20年11月13日(2008.11.13)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】