プログラム、情報記憶媒体及びオブジェクト生成システム
【課題】切断されたオブジェクトの切断面の多様な表現を可能にするプログラム、情報記憶媒体及びオブジェクト生成システムを提供すること。
【解決手段】複数のポリゴンにより構成される第1の多面体オブジェクトPO1と、少なくとも1のポリゴンにより構成される面オブジェクトPLのオブジェクト情報を記憶し、第1の多面体オブジェクトPO1を、第1の多面体オブジェクトPO1と交差する面オブジェクトPLにより切断して第2及び第3の多面体オブジェクトPO2、PO3を生成する。第2及び第3の多面体オブジェクトPO2、PO3それぞれの切断面CPには、面オブジェクトPLを構成するポリゴンの属性情報が設定される。
【解決手段】複数のポリゴンにより構成される第1の多面体オブジェクトPO1と、少なくとも1のポリゴンにより構成される面オブジェクトPLのオブジェクト情報を記憶し、第1の多面体オブジェクトPO1を、第1の多面体オブジェクトPO1と交差する面オブジェクトPLにより切断して第2及び第3の多面体オブジェクトPO2、PO3を生成する。第2及び第3の多面体オブジェクトPO2、PO3それぞれの切断面CPには、面オブジェクトPLを構成するポリゴンの属性情報が設定される。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報記憶媒体及びオブジェクト生成システムに関する。
【背景技術】
【0002】
従来から、切断面を設定して、当該切断面でオブジェクトを切断する技術が知られている(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2000−157729号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の技術は、切断されたオブジェクトの切断面についてオブジェクト内部の表現を行う等の多様な表現を行うものではなかった。
【0005】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、切断されたオブジェクトの切断面の多様な表現を可能にするプログラム、情報記憶媒体及びオブジェクト生成システムを提供することにある。
【課題を解決するための手段】
【0006】
(1)本発明に係るプログラムは、
複数のポリゴンにより構成される第1の多面体オブジェクトと、少なくとも1のポリゴンにより構成される面オブジェクトのオブジェクト情報を記憶する記憶部と、
前記第1の多面体オブジェクトを、前記第1の多面体オブジェクトと交差する前記面オブジェクトにより切断して第2及び第3の多面体オブジェクトを生成するオブジェクト生成部としてコンピュータを機能させ、
前記第2及び第3の多面体オブジェクトそれぞれの切断面には、前記面オブジェクトを構成するポリゴンの属性情報が設定されることを特徴とする。また本発明は、上記各部を含むオブジェクト生成システムに関する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶した情報記憶媒体に関する。
【0007】
ここで、ポリゴンの属性情報とは、例えば、ポリゴンに設定されたテクスチャ座標、反射モデル、色情報等の属性情報をいう。
【0008】
本発明によれば、面オブジェクトを構成するポリゴンに属性情報を設定しておくだけで、多面体オブジェクトの切断面の多様な表現を行うことができる。
【0009】
(2)また本発明に係るプログラム、情報記憶媒体及びオブジェクト生成システムでは、
前記オブジェクト生成部が、
前記第1の多面体オブジェクトを構成するポリゴンを、前記面オブジェクトを構成するポリゴンとの交線において分割し、分割されたポリゴンのうち、前記面オブジェクトを構成するポリゴンの表側にあるポリゴンを第1のグループに分け、前記面オブジェクトを構成するポリゴンの裏側にあるポリゴンを第2のグループに分ける処理を行い、
前記面オブジェクトを構成するポリゴンを、前記第1の多面体オブジェクトを構成するポリゴンとの交線において分割し、分割されたポリゴンのうち、前記第1の多面体オブジェクトを構成するポリゴンの表側にあるポリゴンを第3のグループに分け、前記第1の多面体オブジェクトを構成するポリゴンの裏側にあるポリゴンを第4のグループに分ける処理を行い、
前記第1のグループに属するポリゴンと前記第4のグループに属するポリゴンを結合して前記第2の多面体オブジェクトを生成し、前記第2のグループに属するポリゴンと前記第4のグループに属するポリゴンを結合して前記第3の多面体オブジェクトを生成するようにしてもよい。
【0010】
ここで、ポリゴンの表側にあるか裏側にあるかの判断は、当該ポリゴンに設定された法線ベクトルに基づき行うようにしてもよい。
【0011】
本発明によれば、第2及び第3の多面体オブジェクトそれぞれの切断面には、第1の多面体オブジェクトにより切断された面オブジェクトを構成するポリゴンのうち、第1の多面体オブジェクトの裏側にあるポリゴン(第4のグループに属するポリゴン)が設定され
ることになり、多面体オブジェクトの切断面に面オブジェクトを構成するオブジェクトの属性情報を反映させることができる。
【0012】
(3)また本発明に係るプログラム、情報記憶媒体及びオブジェクト生成システムでは、
前記オブジェクト生成部が、
前記第1の多面体オブジェクトを構成するポリゴンのうち、前記面オブジェクトを構成するポリゴンと交差しないポリゴンを、前記第1の多面体オブジェクトを構成する他のポリゴンとの隣接関係に基づき前記第1及び第2のグループに分ける処理を行い、
前記面オブジェクトを構成するポリゴンのうち、前記第1の多面体オブジェクトを構成するポリゴンと交差しないポリゴンを、前記面オブジェクトを構成する他のポリゴンとの隣接関係に基づき前記第3及び第4のグループに分ける処理を行うようにしてもよい。
【0013】
(4)また本発明に係るプログラム、情報記憶媒体及びオブジェクト生成システムでは、
前記オブジェクト生成部が、
前記分割されたポリゴンを三角形化し、三角形化されたポリゴンを前記第1〜第4のグループに分ける処理を行うようにしてもよい。
【0014】
(5)また本発明に係るプログラム、情報記憶媒体では、
前記第1の多面体オブジェクトと、前記第1の多面体オブジェクトと交差する前記面オブジェクトとをオブジェクト空間に設定するオブジェクト空間設定部と、
操作部からの操作情報に基づきゲーム演算を行うゲーム演算部と、
前記オブジェクト空間において仮想カメラから見える画像を描画する描画部として更にコンピュータを機能させ、
前記オブジェクト生成部が、
前記ゲーム演算の結果に基づいて、前記第1の多面体オブジェクトを前記面オブジェクトにより切断して第2及び第3の多面体オブジェクトを生成するようにしてもよい。
【0015】
また本発明に係るオブジェクト生成システムでは、
前記第1の多面体オブジェクトと、前記第1の多面体オブジェクトと交差する前記面オブジェクトとをオブジェクト空間に設定するオブジェクト空間設定部と、
操作部からの操作情報に基づきゲーム演算を行うゲーム演算部と、
前記オブジェクト空間において仮想カメラから見える画像を描画する描画部とを更に含み、
前記オブジェクト生成部が、
前記ゲーム演算の結果に基づいて、前記第1の多面体オブジェクトを前記面オブジェクトにより切断して第2及び第3の多面体オブジェクトを生成するようにしてもよい。
【0016】
ここで、前記オブジェクト空間設定部は、前記ゲーム演算の結果に基づいて、前記面オブジェクトの位置、回転角度を決定するようにしてもよい。
【0017】
本発明によれば、ゲーム演算の結果に基づき多面体オブジェクトが切断されるゲームにおいて、多面体オブジェクトの切断面の多様な表現を行うことができる。
【0018】
(6)また本発明に係るプログラム、情報記憶媒体及びオブジェクト生成システムでは、
前記オブジェクト空間設定部が、
前記第1の多面体オブジェクトと交差する複数の前記面オブジェクトをオブジェクト空間に設定し、
前記オブジェクト生成部が、
前記ゲーム演算の結果に基づいて、複数の前記面オブジェクトのうち1の前記面オブジェクトを選択し、前記第1の多面体オブジェクトを、選択された前記面オブジェクトにより切断して前記第2及び第3の多面体オブジェクトを生成するようにしてもよい。
【0019】
(7)また本発明に係るプログラム、情報記憶媒体では、
前記第1の多面体オブジェクトが前記面オブジェクトにより切断された場合に、前記面オブジェクトの位置又は回転角度に応じたエフェクトを生成するエフェクト処理部として更にコンピュータを機能させ、
前記描画部が、
前記生成されたエフェクトを含む画像を描画するようにしてもよい。
【0020】
また本発明に係るオブジェクト生成システムでは、
前記第1の多面体オブジェクトが前記面オブジェクトにより切断された場合に、前記面オブジェクトの位置又は回転角度に応じたエフェクトを生成するエフェクト処理部を更に含み、
前記描画部が、
前記生成されたエフェクトを含む画像を描画するようにしてもよい。
【0021】
(8)また本発明に係るプログラム、情報記憶媒体では、
前記第1の多面体オブジェクトが前記面オブジェクトにより切断された場合に、前記面オブジェクトを構成するポリゴンの属性情報に応じたエフェクトを生成するエフェクト処理部として更にコンピュータを機能させ、
前記描画部が、
前記生成されたエフェクトを含む画像を描画するようにしてもよい。
【0022】
また本発明に係るオブジェクト生成システムでは、
前記第1の多面体オブジェクトが前記面オブジェクトにより切断された場合に、前記面オブジェクトを構成するポリゴンの属性情報に応じたエフェクトを生成するエフェクト処理部を更に含み、
前記描画部が、
前記生成されたエフェクトを含む画像を描画するようにしてもよい。
【図面の簡単な説明】
【0023】
【図1】本実施形態のオブジェクト生成システムの機能ブロック図の一例。
【図2】第1の多面体オブジェクトと面オブジェクトについて説明するための図。
【図3】図3(A)、図3(B)、図3(C)は、第1の多面体オブジェクトを構成するポリゴンの分割・三角形化・グループ分けについて説明するための図。
【図4】図4(A)、図4(B)、図4(C)は、第1の多面体オブジェクトを構成するポリゴンの分割・三角形化・グループ分けについて説明するための図。
【図5】第1の多面体オブジェクトを構成するポリゴンのグループ分けについて説明するための図。
【図6】図6(A)、図6(B)、図6(C)は、面オブジェクトを構成するポリゴンの分割・三角形化・グループ分けについて説明するための図。
【図7】オブジェクトデータのデータ構造を示す図。
【図8】第1乃至4のグループに属するポリゴンを示す図。
【図9】ポリゴンの結合について説明するための図。
【図10】建物を表す第1の多面体オブジェクトを面オブジェクトにより切断して生成された第2の及び第3の多面体オブジェクトの画像の例。
【図11】本実施形態の処理の一例を示すフローチャート。
【図12】本発明を適用したゲームシステムの機能ブロック図の一例。
【図13】本発明を適用したゲームシステムで行われるゲームについて説明するための図。
【発明を実施するための形態】
【0024】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0025】
1.機能ブロック図
図1に本実施形態のオブジェクト生成システムの機能ブロック図の一例を示す。なお本実施形態のオブジェクト生成システムは図1の構成要素(各部)の一部を省略した構成としてもよい。
【0026】
操作部160は、ユーザ(プレーヤ)が操作情報(操作データ)を入力するためのものであり、ユーザの操作情報を処理部100に出力する。操作部160の機能は、キーボート、マウス、ボタン、タッチパネル型ディスプレイなどのハードウェアにより実現することができる。
【0027】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。そして、本実施形態の記憶部170は、ワーク領域として使用される主記憶部172と、最終的な表示画像等が記憶されるフレームバッファ174と、オブジェクトのモデルデータ(オブジェクト情報)が記憶されるオブジェクトデータ記憶部176と、各オブジェクトデータ用のテクスチャが記憶されるテクスチャ記憶部178と、オブジェクトの画像の生成処理時にZ値が記憶されるZバッファ179とを含む。なお、これらの一部を省略する構成としてもよい。
【0028】
特に本実施形態のオブジェクトデータ記憶部176は、複数のポリゴンにより構成される第1の多面体オブジェクトと、少なくとも1のポリゴンにより構成される面オブジェクトのオブジェクトデータを記憶する。また、オブジェクトデータ記憶部176は、異なる形状の複数の第1の多面体オブジェクトと、異なる形状の複数の面オブジェクトのオブジェクトデータを記憶するようにしてもよい。また、オブジェクトデータ記憶部176は、第1の多面体オブジェクトを面オブジェクトにより切断することにより生成された第2及び第3の多面体オブジェクトのオブジェクトデータを記憶する。
【0029】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)を記憶することができる。
【0030】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、或いはタッチパネル型ディスプレイなどにより実現できる。
【0031】
通信部196は外部(例えば他のオブジェクト生成システム、ゲームシステム、サーバ)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0032】
処理部100(プロセッサ)は、操作部160からの入力情報やプログラムなどに基づいて、オブジェクト生成処理、描画処理などの処理を行う。この処理部100は主記憶部172をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0033】
処理部100は、オブジェクト空間設定部110、オブジェクト生成部112、仮想カメラ制御部118、描画部120を含む。
【0034】
オブジェクト空間設定部110は、オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。例えば、ワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義であり、例えば、ワールド座標系でのX、Y、Z軸の各軸の正方向からみて時計回りに回る場合における回転角度)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
【0035】
特に本実施形態のオブジェクト空間設定部110は、複数のポリゴンにより構成される第1の多面体オブジェクトと、前記第1の多面体オブジェクトと交差する前記面オブジェクトとをオブジェクト空間に設定する。また、オブジェクト空間設定部110は、操作部160からの操作情報に基づき前記第1の多面体オブジェクトと前記面オブジェクトの位置や回転角度を決定するようにしてもよい。また、オブジェクト空間設定部110は、操作部160からの操作情報に基づきオブジェクト空間に設定する前記第1の多面体オブジェクトと前記面オブジェクトをそれぞれ決定し、決定された前記第1の多面体オブジェクトと前記面オブジェクトとをオブジェクト空間に設定するようにしてもよい。
【0036】
オブジェクト生成部112は、操作部160からの操作情報に基づいて、前記第1の多面体オブジェクトを、前記第1の多面体オブジェクトと交差する前記面オブジェクトにより切断して第2及び第3の多面体オブジェクトを生成する処理を行う。
【0037】
また、オブジェクト生成部112は、前記第1の多面体オブジェクトを構成するポリゴンを、前記面オブジェクトを構成するポリゴンとの交線において分割し、分割されたポリゴンのうち、前記面オブジェクトを構成するポリゴンの表側にあるポリゴンを第1のグループに分け、前記面オブジェクトを構成するポリゴンの裏側にあるポリゴンを第2のグループに分ける処理を行い、前記面オブジェクトを構成するポリゴンを、前記第1の多面体オブジェクトを構成するポリゴンとの交線において分割し、分割されたポリゴンのうち、前記第1の多面体オブジェクトを構成するポリゴンの表側にあるポリゴンを第3のグループに分け、前記第1の多面体オブジェクトを構成するポリゴンの裏側にあるポリゴンを第4のグループに分ける処理を行い、前記第1のグループに属するポリゴンと前記第4のグループに属するポリゴンを結合して前記第2の多面体オブジェクトを生成し、前記第2のグループに属するポリゴンと前記第4のグループに属するポリゴンを結合して前記第3の多面体オブジェクトを生成するようにしてもよい。
【0038】
また、オブジェクト生成部112は、前記第1の多面体オブジェクトを構成するポリゴンのうち、前記面オブジェクトを構成するポリゴンと交差しないポリゴンを、前記第1の多面体オブジェクトを構成する他のポリゴンとの隣接関係に基づき前記第1及び第2のグループに分ける処理を行い、前記面オブジェクトを構成するポリゴンのうち、前記第1の多面体オブジェクトを構成するポリゴンと交差しないポリゴンを、前記面オブジェクトを構成する他のポリゴンとの隣接関係に基づき前記第3及び第4のグループに分ける処理を行うようにしてもよい。
【0039】
また、オブジェクト生成部112は、前記分割されたポリゴンを三角形化し、三角形化されたポリゴンを前記第1〜第4のグループに分ける処理を行うようにしてもよい。
【0040】
仮想カメラ制御部118は、操作部160からの操作情報やプログラムなどに基づいて、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、ワールド座標系における仮想カメラの位置(X、Y、Z)又は回転角度(例えば、X、Y、Z軸の各軸の正方向からみて時計回りに回る場合における回転角度)を制御する処理を行う。要するに、視点位置、視線方向、画角を制御する処理を行う。
【0041】
描画部120は、処理部100で行われる種々の処理の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。いわゆる3次元画像を生成する場合には、まずオブジェクトの各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)を含むオブジェクトデータ(モデルデータ)が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理(頂点シェーダによるシェーディング)が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。
【0042】
頂点処理では、頂点処理プログラム(頂点シェーダプログラム、第1のシェーダプログラム)に従って、頂点の移動処理や、座標変換、例えばワールド座標変換、視野変換(カメラ座標変換)、クリッピング処理、射影変換(透視変換、投影変換)、ビューポート変換(スクリーン座標変換)、光源計算等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。ジオメトリ処理後のオブジェクトデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)は、オブジェクトデータ記憶部176に保存される。
【0043】
そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(ピクセルシェーダによるシェーディング、フラグメント処理)が行われる。
【0044】
ピクセル処理では、ピクセル処理プログラム(ピクセルシェーダプログラム、第2のシェーダプログラム)に従って、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ174(ピクセル単位で画像情報を記憶できるバッファ。VRAM)に出力(描画)する。すなわち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。
【0045】
そして描画部120は、オブジェクトを描画する際に、テクスチャマッピング、隠面消去処理等を行う。
【0046】
テクスチャマッピングは、記憶部170のテクスチャ記憶部178に記憶されるテクスチャ(テクセル値)をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定(付与)されるテクスチャ座標等を用いて記憶部170のテクスチャ記憶部178からテクスチャ(色(RGB)、α値などの表面プロパティ)を読み出す。そして、2次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【0047】
隠面消去処理としては、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ179(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファ179に格納されるZ値を参照する。そして参照されたZバッファ179のZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファ179のZ値を新たなZ値に更新する。
【0048】
2.本実施形態の手法
次に本実施形態の手法について図面を用いて説明する。
【0049】
2−1.概要
本実施形態では、図2に示すように、第1の多面体オブジェクトPO1を、第1の多面体オブジェクトPO1と交差する面オブジェクトPLにより切断(分割)して、第2及び第3の多面体オブジェクトPO2、PO3を生成する。そして、本実施形態では、第2及び第3の多面体オブジェクトPO2、PO3のそれぞれの切断面CP(分割面)には、面オブジェクトPLの属性情報(色情報、テクスチャ座標、反射モデル等)が設定される。なお、ここでは、第1の多面体オブジェクトの一例として直方体のオブジェクトを示し、面オブジェクトの一例として平面のオブジェクトを示しているが、それ以外の形状でもよい。例えば、面オブジェクトは、凹凸のある面オブジェクトでもよい。
【0050】
ユーザは、操作部160を操作することで、異なる形状の複数の第1の多面体オブジェクトから切断対象とする1の第1の多面体オブジェクトを選択し、また、異なる形状の複数の面オブジェクトから切断に用いる1の面オブジェクトを選択することができる。また、ユーザは、表示部190を見ながら操作部160を操作することで、第1の多面体オブジェクトPO1と交差する面オブジェクトPLの位置や回転角度を任意の位置や回転角度に設定することができる。
【0051】
以下、第1の多面体オブジェクトPO1を面オブジェクトPLにより切断して第2及び第3の多面体オブジェクトPO2、PO3を生成するアルゴリズムについて説明する。
【0052】
2−2.第1の多面体オブジェクトのポリゴンの分割・グループ分け
本実施形態では、まず、第1の多面体オブジェクトPO1を構成する複数のポリゴンと、面オブジェクトPLを構成する複数のポリゴンの中から、互いに交差するポリゴンの組み合わせをリストアップする。
【0053】
図3(A)は、ポリゴンの組み合わせの一例であり、第1の多面体オブジェクトPO1の側面を構成するポリゴンPO110と、面オブジェクトPLを構成するポリゴンであって、ポリゴンPO110と交差するポリゴンPL10を示している。
【0054】
次に、リストアップされた第1の多面体オブジェクトPO1を構成するポリゴンを、面オブジェクトPLを構成するポリゴンとの交線により分割する。図3(B)に示す例では、第1の多面体オブジェクトPO1を構成するポリゴンPO110と、面オブジェクトPLを構成するポリゴンPL10の交線NLを求め、第1の多面体オブジェクトPO1を構成するポリゴンPO110を、求めた交線NLにおいて分割し、ポリゴンPO111、PO112を生成している。
【0055】
次に、図3(C)に示すように、分割されたポリゴンPO111、PO112を三角形化する。ここでは、分割されたポリゴンのうち、三角形でないポリゴンPO112を三角形化し、ポリゴンPO113、PO114を生成している。
【0056】
次に、図3(C)に示すように、三角形化されたポリゴンPO111、PO113、PO114のうち、面オブジェクトPLを構成するポリゴンであって、交線NLを含むポリゴンPL10の表側にあるポリゴンPO111を第1のグループに分け、ポリゴンPL10の裏側にあるポリゴンPO113、PO114を第2のグループに分ける。ポリゴンPL10の表側にあるか裏側にあるかは、ポリゴンPL10に設定された法線ベクトルNV(図3(A)参照)に基づき判断することができる。
【0057】
そして、第1の多面体オブジェクトPO1を構成するポリゴンのうち、面オブジェクトPLを構成するポリゴンと交差する他の全てのポリゴン(リストアップされた他の全てのポリゴン)について同様の処理を行う。図4(A)〜図4(C)に示す例では、第1の多面体オブジェクトPO1の側面を構成するポリゴンPO120を、面オブジェクトPLを構成するポリゴンPL10との交線NLにおいて分割し、三角形化することで、ポリゴンPO123、PO124、PO122を生成し、また、ポリゴンPL110の表側にあるポリゴンPO123、PO124を第1のグループに分け、ポリゴンPL110の裏側にあるポリゴンPO122を第2のグループに分けている。
【0058】
次に、図5に示すように、第1の多面体オブジェクトPO1を構成するポリゴンのうち、面オブジェクトPLを構成するポリゴンと交差しないポリゴンPO130、PO140、PO150、PO160を、第1の多面体オブジェクトPO1を構成する他のポリゴンとの隣接関係に基づき第1及び第2のグループに分ける。例えば、第1のグループに分けられたポリゴンPO123と隣接するポリゴンPO140を第1のグループに分け、第2のグループに分けられたPO114と隣接するポリゴンPO160を、第2のグループに分ける。同様に、ポリゴンPO130を第1のグループに分け、ポリゴンPO150を第2のグループに分ける。
【0059】
2−3.面オブジェクトのポリゴンの分割・グループ分け
本実施形態では、次に、リストアップされた面オブジェクトPLを構成するポリゴンを、第1の多面体オブジェクトPO1を構成するポリゴンとの交線により分割する。図6(A)、図6(B)に示す例では、面オブジェクトPLを構成するポリゴンPL10と、第1の多面体オブジェクトPO1を構成しポリゴンPL10と交差するポリゴンPO110、PO120、PO170、PO180との交線(PL10とPO110との交線NL1、PL10とPO120との交線NL2、PL10とPO170との交線NL3、PL10とPO180との交線NL4)を求め、面オブジェクトPLを構成するポリゴンPL10を、求めた交線NL1、NL2、NL3、NL4において分割し、ポリゴンPL11、PL12を生成している。
【0060】
次に、図6(C)に示すように、分割されたポリゴンを三角形化する。ここでは、分割されたポリゴンのうち、三角形でないポリゴンPL11を三角形化し、ポリゴンPL13、PL14、PL15、PL16を生成している。
【0061】
次に、図6(C)に示すように、三角形化されたポリゴンPL12、PL13、PL14、PL15、PL16のうち、第1の多面体オブジェクトPO1を構成するポリゴンであって、交線NL1、NL2、NL3、NL4を含むポリゴンPO110、PO120、PO170、PO180の表側にあるポリゴンPL13、PL14、PL15、PL16を第3のグループに分け、ポリゴンPO110、PO120、PO170、PO180の裏側にあるポリゴンPL12を第4のグループに分ける。ポリゴンの表側にあるか裏側にあるかは、ポリゴンPO110、PO120、PO170、PO180に設定された法線ベクトルNV1、NV2、NV3、NV4に基づき判断することができる。
【0062】
そして、面オブジェクトPLを構成するポリゴンのうち、第1の多面体オブジェクトPO1を構成するポリゴンと交差する他の全てのポリゴン(リストアップされた他の全てのポリゴン)について同様の処理を行う。図6(A)に示す例では、面オブジェクトPLを構成するポリゴンPL20について同様の処理を行う。
【0063】
次に、面オブジェクトPLを構成するポリゴンのうち、第1の多面体オブジェクトPO1を構成するポリゴンと交差しないポリゴンを、面オブジェクトPLを構成する他のポリゴンとの隣接関係に基づき第3及び第4のグループに分ける。なお、図6(A)に示す例では、面オブジェクトPLを構成するポリゴンのうち、第1の多面体オブジェクトPO1を構成するポリゴンと交差しないポリゴンは存在しないため、当該処理は行われない。
【0064】
図7に、オブジェクトデータ記憶部176に記憶されるオブジェクトデータ(オブジェクト情報)の一例を示す。図7に示すように、オブジェクトデータ200は、オブジェクトを構成するポリゴン毎に、ポリゴンID210、各頂点の頂点座標220、各頂点の色情報230、各頂点のテクスチャ座標240、法線ベクトル250、隣接するポリゴンを特定する隣接情報260、属するグループを特定するグループ情報270を格納する。また、オブジェクトデータ200は、ポリゴン毎の各頂点の反射モデルの情報も格納する。
【0065】
図7に示すオブジェクトデータ200には、第1の多面体オブジェクトPO1を構成する各ポリゴンと面オブジェクトPLを構成する各ポリゴンが、分割・三角形化されることによって生成されたポリゴンの各情報が格納されている。ここで、各ポリゴンの色情報230、テクスチャ情報240、反射モデル、法線ベクトル250の属性情報は、分割・三角形化される前のポリゴンの属性情報から求められる。例えば、各ポリゴンの色情報230、テクスチャ情報240は、分割・三角形化によって頂点座標が変わらなかった場合には、分割・三角形化前の色情報、テクスチャ情報がそのまま引き継がれ、分割・三角形化によって頂点座標が変わった場合には再計算される。また、各ポリゴンのグループ情報270は、上記グループ分けの処理により求められる。また、各ポリゴンの隣接情報260は、上記隣接関係に基づくグループ分けを行う際に参照される。
【0066】
2−4.ポリゴンの結合
上記処理により、図8に示すように、第1の多面体オブジェクトPO1を構成するポリゴンは、第1のグループに属するポリゴンと、第2のグループに属するポリゴンとに分割及びグループ分けされ、面オブジェクトPLを構成するポリゴンは、第3のグループに属するポリゴンと、第4のグループに属するポリゴンとに分割及びグループ分けされる。なお、図8では、説明の便宜上、第1〜第4のグループに属するポリゴンをそれぞれ分離して示しているが、実際には上記処理により各ポリゴンの位置が変わるわけではない。
【0067】
本実施形態では、次に、第1のグループに属するポリゴンと第4のグループに属するポリゴンを結合して第2の多面体オブジェクトを生成し、第2のグループに属するポリゴンと第4のグループに属するポリゴンを結合して第3の多面体オブジェクトを生成する。
【0068】
これにより、図9(A)、図9(B)に示すように、第2の多面体オブジェクトPO2の下部(切断面)及び第3の多面体オブジェクトPO3の上部(切断面)は、それぞれ第4のグループに属するポリゴン(面オブジェクトPLを構成するポリゴンから分割・三角形化・グループ分けされたポリゴン)により形成されることになる。すなわち、第2及び第3の多面体オブジェクトPO2、PO3のそれぞれの切断面には、面オブジェクトPLを構成するポリゴンに設定された色情報、テクスチャ座標、反射モデル等の属性情報が設定されることになり、また、第2及び第3の多面体オブジェクトPO2、PO3のそれぞれの切断面の形状は、第4のグループに属するポリゴンの形状となる。
【0069】
なお、本実施形態の第4のグループに属するポリゴンに設定された法線ベクトルは、+Y軸を向いているため、第1のグループに属するポリゴンと第4のグループに属するポリゴンをそのまま結合すると、当該法線ベクトルが第2の多面体オブジェクトPO2の内部を向くことになってしまう。
【0070】
そこで、本実施形態では、図9(B)に示すように、第4のグループに属する各ポリゴンに設定された法線ベクトルNVを反転させてから、第4のグループに属するポリゴンと第1のグループに属するポリゴンとを結合し、第2の多面体オブジェクトPO2を生成している。このようにすると、ポリゴンの結合を行った際に第4のグループに属するポリゴンが描画されなくなってしまうことを防止することができる。なお、図9(A)に示すように、第4のグループに属するポリゴンに設定された法線ベクトルNVは第3の多面体オブジェクトPO3の外部(+Y軸方向)を向いているため、第4のグループに属するポリゴンと第2のグループに属するポリゴンとを結合して第3の多面体オブジェクトPO3を生成する場合には、当該法線ベクトルNVを反転させない。
【0071】
図10に、建物を表す第1の多面体オブジェクトPO1を面オブジェクトPLにより切断して生成された第2の及び第3の多面体オブジェクトの画像の例を示す。図10に示すように、第2及び第3の多面体オブジェクトPO2、PO3のそれぞれの切断面には、面オブジェクトPLにマッピングされたテクスチャがマッピングされており、第2及び第3の多面体オブジェクトPO2、PO3のそれぞれの切断面の形状は、面オブジェクトPLのうち第1の多面体オブジェクトPO1と交差する部分の形状となる。
【0072】
このように本実施形態によれば、面オブジェクトPLを構成するポリゴンに属性情報を設定しておくだけで、当該属性情報を、第1の多面体オブジェクトPO1を切断することで生成される第2及び第3の多面体オブジェクトPO2、PO3の切断面に反映させることができ、多面体オブジェクトの切断面の多様な表現を簡単な処理で実現することができる。例えば、多面体オブジェクトの内部の色、模様、質感等を表す属性情報(色情報、テクスチャ座標、反射モデル)が設定された面オブジェクトにより多面体オブジェクトを切断することで、多面体オブジェクト内部の色、模様、質感等が切断面に表された新たな多面体オブジェクトを生成することができる。
【0073】
3.処理
次に、本実施形態の処理の一例について図11のフローチャートを用いて説明する。
【0074】
まず、オブジェクト生成部112は、第1の多面体オブジェクトPO1を構成する複数のポリゴンと、面オブジェクトPLを構成する複数のポリゴンの中から、互いに交差するポリゴンの組み合わせをリストアップする(ステップS10)。
【0075】
次に、オブジェクト生成部112は、リストアップされた第1の多面体オブジェクトPO1を構成するポリゴンを、面オブジェクトPLを構成するポリゴンとの交線において分割する(S12)。次に、オブジェクト生成部112は、分割されたポリゴンを三角形化する(ステップS14)。
【0076】
次に、オブジェクト生成部112は、三角形化されたポリゴンを、面オブジェクトPLを構成するポリゴンに設定された法線ベクトルに基づき第1及び第2のグループに分ける処理を行う(ステップS16)。具体的には、三角形化されたポリゴンが面オブジェクトPLを構成するポリゴンの表側にあるか裏側にあるかを、面オブジェクトPLのポリゴン(交線を含むポリゴン)に設定された法線ベクトルに基づき判断し、表側にあると判断されたポリゴンを第1のグループに分け、裏側にあると判断されたポリゴンを第2のグループに分ける。
【0077】
次に、オブジェクト生成部112は、第1の多面体オブジェクトPO1を構成するポリゴンのうち、面オブジェクトPLを構成するポリゴンと交差する全てのポリゴン(リストアップされた全てのポリゴン)を処理したか否かを判断し(ステップS18)、処理していない場合には、ステップS12の処理に進み、第1の多面体オブジェクトPO1を構成するポリゴンのうち、面オブジェクトPLを構成するポリゴンと交差する他の全てのポリゴンについて、ステップS12からステップS16の処理を繰り返す。
【0078】
ステップS18において、交差する全てのポリゴンを処理したと判断した場合には、オブジェクト生成部112は、第1の多面体オブジェクトPO1を構成するポリゴンのうち、面オブジェクトPLを構成するポリゴンと交差しないポリゴン(リストアップされなかったポリゴン)を、第1の多面体オブジェクトPO1を構成する他のポリゴンとの隣接関係に基づき第1及び第2のグループに分ける処理を行う(ステップS20)。具体的には、リストアップされなかったポリゴンが、第1のグループに分けられたポリゴンと隣接する場合には、当該ポリゴンを第1のグループに分け、第2のグループに分けられたポリゴンと隣接する場合には、当該ポリゴンを第2のグループに分ける。
【0079】
次に、オブジェクト生成部112は、第1の多面体オブジェクトPO1を構成するポリゴンのうち、面オブジェクトPLを構成するポリゴンと交差しない全てのポリゴンを処理したか否かを判断し(ステップS22)、処理していない場合には、面オブジェクトPLのポリゴンと交差しない他の全てのポリゴンについてステップS20の処理を繰り返す。
【0080】
ステップS18において、交差しない全てのポリゴンを処理したと判断した場合には、オブジェクト生成部112は、リストアップされた面オブジェクトPLを構成するポリゴンを、第1の多面体オブジェクトPO1を構成するポリゴンとの交線において分割する(S24)。次に、オブジェクト生成部112は、分割されたポリゴンを三角形化する(ステップS26)。
【0081】
次に、オブジェクト生成部112は、三角形化されたポリゴンを、第1の多面体オブジェクトPO1を構成するポリゴンに設定された法線ベクトルに基づき第3及び第4のグループに分ける処理を行う(ステップS28)。具体的には、三角形化されたポリゴンが第1の多面体オブジェクトPO1を構成するポリゴンの表側にあるか裏側にあるかを、第1の多面体オブジェクトPO1のポリゴン(交線を含むポリゴン)に設定された法線ベクトルに基づき判断し、表側にあると判断されたポリゴンを第3のグループに分け、裏側にあると判断されたポリゴンを第4のグループに分ける。
【0082】
次に、オブジェクト生成部112は、面オブジェクトPLを構成するポリゴンのうち、第1の多面体オブジェクトPO1を構成するポリゴンと交差する全てのポリゴン(リストアップされた全てのポリゴン)を処理したか否かを判断し(ステップS30)、処理していない場合には、ステップS24の処理に進み、面オブジェクトPLを構成するポリゴンのうち、第1の多面体オブジェクトPO1を構成するポリゴンと交差する他の全てのポリゴンについて、ステップS24からステップS28の処理を繰り返す。
【0083】
ステップS30において、交差する全てのポリゴンを処理したと判断した場合には、オブジェクト生成部112は、面オブジェクトPLを構成するポリゴンのうち、第1の多面体オブジェクトPO1を構成するポリゴンと交差しないポリゴン(リストアップされなかったポリゴン)を、面オブジェクトPLを構成する他のポリゴンとの隣接関係に基づき第3及び第4のグループに分ける処理を行う(ステップS32)。具体的には、リストアップされなかったポリゴンが、第3のグループに分けられたポリゴンと隣接する場合には、当該ポリゴンを第3のグループに分け、第4のグループに分けられたポリゴンと隣接する場合には、当該ポリゴンを第4のグループに分ける。
【0084】
次に、オブジェクト生成部112は、面オブジェクトPLを構成するポリゴンのうち、第1の多面体オブジェクトPO1を構成するポリゴンと交差しない全てのポリゴンを処理したか否かを判断し(ステップS34)、処理していない場合には、第1の多面体オブジェクトPO1を構成するポリゴンと交差しない他の全てのポリゴンについてステップS32の処理を繰り返す。
【0085】
ステップS34において、交差しない全てのポリゴンを処理したと判断した場合には、オブジェクト生成部112は、第4のグループに属するポリゴンに設定された法線ベクトルを反転させ、第1のグループに属するポリゴンと第4のグループに属するポリゴンとを結合して第2の多面体オブジェクトを生成する(ステップS36)。
【0086】
次に、オブジェクト生成部112は、第2のグループに属するポリゴンと第4のグループに属するポリゴンとを結合して第3の多面体オブジェクトを生成する(ステップS38)。
【0087】
4.変形例
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【0088】
例えば、本実施形態では、第1の多面体オブジェクトを1の面オブジェクトにより切断する場合について説明したが、第1の多面体オブジェクトを、第1の多面体オブジェクトと交差する複数の面オブジェクトにより切断するようにしてもよい。この場合には、例えば、第1の多面体オブジェクトを第1の面オブジェクトにより切断して第2及び第3の多面体オブジェクトを生成し、第2及び第3の多面体オブジェクトのいずれか一方を第2の面オブジェクトにより切断して第4及び第5の多面体オブジェクトを生成する。
【0089】
また、本実施形態では、本発明をオブジェクト生成システムに適用する場合について説明したが、本発明をゲームシステム(ゲーム装置)に適用するようにしてもよい。
【0090】
図12に、本発明を適用したゲームシステムの機能ブロック図の一例を示す。なお、図12において、図1の構成要素と同様の構成要素については同符号を付し、説明を省略する。
【0091】
処理部100は、ゲーム演算部111を含む。ゲーム演算部111は、操作部160からの操作情報に基づきゲーム演算を行う。例えば、ゲーム演算部111は、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトをオブジェクト空間内で移動させたりオブジェクトを動作させたりする処理、オブジェクトを表示する処理、ヒットチェック処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理を行う。
【0092】
オブジェクト生成部112は、ゲーム演算部111によるゲーム演算の結果に基づいて、オブジェクト空間に配置された第1の多面体オブジェクトを面オブジェクトにより切断して第2及び第3の多面体オブジェクトを生成する。例えば、オブジェクト生成部112は、ゲーム演算部111によって、オブジェクト空間を移動するオブジェクトが第1の多面体オブジェクトにヒットしたと判断された場合に、第1の多面体オブジェクトを面オブジェクトにより切断する処理を行う。
【0093】
また、オブジェクト空間設定部110は、第1の多面体オブジェクトと交差する複数の面オブジェクトをオブジェクト空間に設定し、オブジェクト生成部112は、ゲーム演算部111によるゲーム演算の結果(例えば、オブジェクト空間を移動するオブジェクトが第1の多面体オブジェクトにヒットした位置)に基づいて、複数の面オブジェクトのうち1の面オブジェクトを選択し、第1の多面体オブジェクトを、選択された面オブジェクトにより切断して第2及び第3の多面体オブジェクトを生成するようにしてもよい。
【0094】
また、オブジェクト生成部112は、ゲーム演算部111によるゲーム演算の結果(例えば、オブジェクト空間を移動するオブジェクトが第1の多面体オブジェクトにヒットした位置や、オブジェクト空間を移動するオブジェクトの移動方向)に基づいて、第1の多面体オブジェクトと交差する面オブジェクトの位置及び回転角度の少なくとも一方を決定し、その位置にその回転角度で配置された面オブジェクトにより第1の多面体オブジェクトを切断するようにしてもよい。
【0095】
また処理部100は、エフェクト処理部114を含むようにしてもよい。エフェクト処理部114は、オブジェクト生成部112によって第1の多面体オブジェクトが前記面オブジェクトにより切断された場合に、エフェクトを生成する。例えば、エフェクト処理部114は、第1の多面体オブジェクトが切断されることによって第2及び第3の多面体オブジェクトの切断面から放出される液体、光、炎、煙、瓦礫等の放出物を表すエフェクト表示物の表示制御を行うようにしてもよい。
【0096】
またエフェクト処理部114は、第1の多面体オブジェクトが面オブジェクトにより切断された場合に、オブジェクト空間に設定された面オブジェクトの位置又は回転角度に応じたエフェクトを生成するようにしてもよいし、面オブジェクトを構成するポリゴンに設定された属性情報に応じたエフェクトを生成するようにしてもよい。また、描画部120は、オブジェクト空間内において仮想カメラから見える画像であって、エフェクト処理部114によって生成されたエフェクトを含む画像を生成する。
【0097】
次に、本発明を適用したゲームシステムで行われるゲームの一例について、図13(A)、図13(B)を用いて説明する。図13(A)、図13(B)に示すゲームでは、プレーヤは、操作部160を操作することで、オブジェクト空間内で戦闘機APを移動させ、また、戦闘機APからミサイルMSを発射させることで敵の戦闘機や建物を攻撃し破壊することができる。
【0098】
すなわち、図13(A)に示す例では、オブジェクト空間内のマップMP上に、建物を表す第1の多面体オブジェクトPO1と、第1の多面体オブジェクトPO1と交差する複数の面オブジェクトPL1〜PL4が配置されている。なお、複数の面オブジェクトPL1〜PL4は非表示となる(描画されない)ように設定されている。
【0099】
そして、ゲーム演算部111が、戦闘機APから発射されたミサイルMSが第1の多面体オブジェクトPO1にヒットしたと判断すると、オブジェクト生成部112は、ヒットしたときのミサイルMSの位置(攻撃位置)に基づき複数の面オブジェクトPL1〜PL4から1の面オブジェクトを選択し、選択された面オブジェクトにより第1の多面体オブジェクトPO1を切断する処理を行う。
【0100】
図13(A)、図13(B)に示す例では、オブジェクト生成部112は、ヒットしたときのミサイルMSの位置に最も近い位置に配置された面オブジェクトPL2を選択し、面オブジェクトPL2により第1の多面体オブジェクトPO1を切断して第2及び第3の多面体オブジェクトPO2、PO3を生成している。また、生成された第2の多面体オブジェクトPO2は、第3の多面体オブジェクトから分離するように移動し、攻撃によって建物が崩れる様を表現している。
【0101】
なお、オブジェクト生成部112は、ヒットしたときのミサイルMSの位置、移動方向(移動ベクトル)に基づき面オブジェクトの位置、回転角度を決定し、決定された位置、回転角度に配置された面オブジェクトにより第1の多面体オブジェクトPO1を切断するようにしてもよい。
【0102】
そして、エフェクト処理部114は、第1の多面体オブジェクトPO1が面オブジェクトにより切断され第2及び第3の多面体オブジェクトPO2、PO3が生成された場合に、面オブジェクトの位置、回転角度に応じて、エフェクトを生成する。図13(B)に示す例では、エフェクト処理部114は、切断に用いられた面オブジェクトPL2の位置に応じて、第2及び第3の多面体オブジェクトPO2、PO3の切断面付近から面オブジェクトPL2が延びる方向に放出される煙、瓦礫等を表すエフェクト表示物を表示させている。
【0103】
また、エフェクト処理部114は、面オブジェクトを構成するポリゴンに設定された色情報、テクスチャ座標、反射モデル等の属性情報に応じたエフェクトを生成する。例えば、エフェクト表示物EFをパーティクルにより表現する場合には、面オブジェクトPL2を構成するポリゴンに設定された色情報を、エフェクト表示物EFを表現するパーティクルの色情報に設定するようにしてもよい。また、エフェクト表示物EFを飛散する多数のポリゴンにより表現する場合には、面オブジェクトPL2を構成するポリゴンに設定されたテクスチャを、エフェクト表示物EFを表現するポリゴンにマッピングするようにしてもよい。
【0104】
このようにすると、例えば、第1の多面体オブジェクトPO1(建物)内部の色、構造物、質感を表す色情報、テクスチャ、反射モデルが設定された面オブジェクトにより第1の多面体オブジェクトPO1を切断することで、第2及び第3の多面体オブジェクトPO2、PO3の切断面から建物の内部の色、構造物、質感を反映した煙、瓦礫等が放出するようなリアルなエフェクト表現を簡単な処理で実現することができる。
【符号の説明】
【0105】
100 処理部、110 オブジェクト空間設定部、111 ゲーム演算部、112 オブジェクト生成部、114 エフェクト処理部、118 仮想カメラ制御部、120 描画部、160 操作部、170 記憶部、180 情報記憶媒体、190 表示部、196 通信部
【技術分野】
【0001】
本発明は、プログラム、情報記憶媒体及びオブジェクト生成システムに関する。
【背景技術】
【0002】
従来から、切断面を設定して、当該切断面でオブジェクトを切断する技術が知られている(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2000−157729号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の技術は、切断されたオブジェクトの切断面についてオブジェクト内部の表現を行う等の多様な表現を行うものではなかった。
【0005】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、切断されたオブジェクトの切断面の多様な表現を可能にするプログラム、情報記憶媒体及びオブジェクト生成システムを提供することにある。
【課題を解決するための手段】
【0006】
(1)本発明に係るプログラムは、
複数のポリゴンにより構成される第1の多面体オブジェクトと、少なくとも1のポリゴンにより構成される面オブジェクトのオブジェクト情報を記憶する記憶部と、
前記第1の多面体オブジェクトを、前記第1の多面体オブジェクトと交差する前記面オブジェクトにより切断して第2及び第3の多面体オブジェクトを生成するオブジェクト生成部としてコンピュータを機能させ、
前記第2及び第3の多面体オブジェクトそれぞれの切断面には、前記面オブジェクトを構成するポリゴンの属性情報が設定されることを特徴とする。また本発明は、上記各部を含むオブジェクト生成システムに関する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶した情報記憶媒体に関する。
【0007】
ここで、ポリゴンの属性情報とは、例えば、ポリゴンに設定されたテクスチャ座標、反射モデル、色情報等の属性情報をいう。
【0008】
本発明によれば、面オブジェクトを構成するポリゴンに属性情報を設定しておくだけで、多面体オブジェクトの切断面の多様な表現を行うことができる。
【0009】
(2)また本発明に係るプログラム、情報記憶媒体及びオブジェクト生成システムでは、
前記オブジェクト生成部が、
前記第1の多面体オブジェクトを構成するポリゴンを、前記面オブジェクトを構成するポリゴンとの交線において分割し、分割されたポリゴンのうち、前記面オブジェクトを構成するポリゴンの表側にあるポリゴンを第1のグループに分け、前記面オブジェクトを構成するポリゴンの裏側にあるポリゴンを第2のグループに分ける処理を行い、
前記面オブジェクトを構成するポリゴンを、前記第1の多面体オブジェクトを構成するポリゴンとの交線において分割し、分割されたポリゴンのうち、前記第1の多面体オブジェクトを構成するポリゴンの表側にあるポリゴンを第3のグループに分け、前記第1の多面体オブジェクトを構成するポリゴンの裏側にあるポリゴンを第4のグループに分ける処理を行い、
前記第1のグループに属するポリゴンと前記第4のグループに属するポリゴンを結合して前記第2の多面体オブジェクトを生成し、前記第2のグループに属するポリゴンと前記第4のグループに属するポリゴンを結合して前記第3の多面体オブジェクトを生成するようにしてもよい。
【0010】
ここで、ポリゴンの表側にあるか裏側にあるかの判断は、当該ポリゴンに設定された法線ベクトルに基づき行うようにしてもよい。
【0011】
本発明によれば、第2及び第3の多面体オブジェクトそれぞれの切断面には、第1の多面体オブジェクトにより切断された面オブジェクトを構成するポリゴンのうち、第1の多面体オブジェクトの裏側にあるポリゴン(第4のグループに属するポリゴン)が設定され
ることになり、多面体オブジェクトの切断面に面オブジェクトを構成するオブジェクトの属性情報を反映させることができる。
【0012】
(3)また本発明に係るプログラム、情報記憶媒体及びオブジェクト生成システムでは、
前記オブジェクト生成部が、
前記第1の多面体オブジェクトを構成するポリゴンのうち、前記面オブジェクトを構成するポリゴンと交差しないポリゴンを、前記第1の多面体オブジェクトを構成する他のポリゴンとの隣接関係に基づき前記第1及び第2のグループに分ける処理を行い、
前記面オブジェクトを構成するポリゴンのうち、前記第1の多面体オブジェクトを構成するポリゴンと交差しないポリゴンを、前記面オブジェクトを構成する他のポリゴンとの隣接関係に基づき前記第3及び第4のグループに分ける処理を行うようにしてもよい。
【0013】
(4)また本発明に係るプログラム、情報記憶媒体及びオブジェクト生成システムでは、
前記オブジェクト生成部が、
前記分割されたポリゴンを三角形化し、三角形化されたポリゴンを前記第1〜第4のグループに分ける処理を行うようにしてもよい。
【0014】
(5)また本発明に係るプログラム、情報記憶媒体では、
前記第1の多面体オブジェクトと、前記第1の多面体オブジェクトと交差する前記面オブジェクトとをオブジェクト空間に設定するオブジェクト空間設定部と、
操作部からの操作情報に基づきゲーム演算を行うゲーム演算部と、
前記オブジェクト空間において仮想カメラから見える画像を描画する描画部として更にコンピュータを機能させ、
前記オブジェクト生成部が、
前記ゲーム演算の結果に基づいて、前記第1の多面体オブジェクトを前記面オブジェクトにより切断して第2及び第3の多面体オブジェクトを生成するようにしてもよい。
【0015】
また本発明に係るオブジェクト生成システムでは、
前記第1の多面体オブジェクトと、前記第1の多面体オブジェクトと交差する前記面オブジェクトとをオブジェクト空間に設定するオブジェクト空間設定部と、
操作部からの操作情報に基づきゲーム演算を行うゲーム演算部と、
前記オブジェクト空間において仮想カメラから見える画像を描画する描画部とを更に含み、
前記オブジェクト生成部が、
前記ゲーム演算の結果に基づいて、前記第1の多面体オブジェクトを前記面オブジェクトにより切断して第2及び第3の多面体オブジェクトを生成するようにしてもよい。
【0016】
ここで、前記オブジェクト空間設定部は、前記ゲーム演算の結果に基づいて、前記面オブジェクトの位置、回転角度を決定するようにしてもよい。
【0017】
本発明によれば、ゲーム演算の結果に基づき多面体オブジェクトが切断されるゲームにおいて、多面体オブジェクトの切断面の多様な表現を行うことができる。
【0018】
(6)また本発明に係るプログラム、情報記憶媒体及びオブジェクト生成システムでは、
前記オブジェクト空間設定部が、
前記第1の多面体オブジェクトと交差する複数の前記面オブジェクトをオブジェクト空間に設定し、
前記オブジェクト生成部が、
前記ゲーム演算の結果に基づいて、複数の前記面オブジェクトのうち1の前記面オブジェクトを選択し、前記第1の多面体オブジェクトを、選択された前記面オブジェクトにより切断して前記第2及び第3の多面体オブジェクトを生成するようにしてもよい。
【0019】
(7)また本発明に係るプログラム、情報記憶媒体では、
前記第1の多面体オブジェクトが前記面オブジェクトにより切断された場合に、前記面オブジェクトの位置又は回転角度に応じたエフェクトを生成するエフェクト処理部として更にコンピュータを機能させ、
前記描画部が、
前記生成されたエフェクトを含む画像を描画するようにしてもよい。
【0020】
また本発明に係るオブジェクト生成システムでは、
前記第1の多面体オブジェクトが前記面オブジェクトにより切断された場合に、前記面オブジェクトの位置又は回転角度に応じたエフェクトを生成するエフェクト処理部を更に含み、
前記描画部が、
前記生成されたエフェクトを含む画像を描画するようにしてもよい。
【0021】
(8)また本発明に係るプログラム、情報記憶媒体では、
前記第1の多面体オブジェクトが前記面オブジェクトにより切断された場合に、前記面オブジェクトを構成するポリゴンの属性情報に応じたエフェクトを生成するエフェクト処理部として更にコンピュータを機能させ、
前記描画部が、
前記生成されたエフェクトを含む画像を描画するようにしてもよい。
【0022】
また本発明に係るオブジェクト生成システムでは、
前記第1の多面体オブジェクトが前記面オブジェクトにより切断された場合に、前記面オブジェクトを構成するポリゴンの属性情報に応じたエフェクトを生成するエフェクト処理部を更に含み、
前記描画部が、
前記生成されたエフェクトを含む画像を描画するようにしてもよい。
【図面の簡単な説明】
【0023】
【図1】本実施形態のオブジェクト生成システムの機能ブロック図の一例。
【図2】第1の多面体オブジェクトと面オブジェクトについて説明するための図。
【図3】図3(A)、図3(B)、図3(C)は、第1の多面体オブジェクトを構成するポリゴンの分割・三角形化・グループ分けについて説明するための図。
【図4】図4(A)、図4(B)、図4(C)は、第1の多面体オブジェクトを構成するポリゴンの分割・三角形化・グループ分けについて説明するための図。
【図5】第1の多面体オブジェクトを構成するポリゴンのグループ分けについて説明するための図。
【図6】図6(A)、図6(B)、図6(C)は、面オブジェクトを構成するポリゴンの分割・三角形化・グループ分けについて説明するための図。
【図7】オブジェクトデータのデータ構造を示す図。
【図8】第1乃至4のグループに属するポリゴンを示す図。
【図9】ポリゴンの結合について説明するための図。
【図10】建物を表す第1の多面体オブジェクトを面オブジェクトにより切断して生成された第2の及び第3の多面体オブジェクトの画像の例。
【図11】本実施形態の処理の一例を示すフローチャート。
【図12】本発明を適用したゲームシステムの機能ブロック図の一例。
【図13】本発明を適用したゲームシステムで行われるゲームについて説明するための図。
【発明を実施するための形態】
【0024】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0025】
1.機能ブロック図
図1に本実施形態のオブジェクト生成システムの機能ブロック図の一例を示す。なお本実施形態のオブジェクト生成システムは図1の構成要素(各部)の一部を省略した構成としてもよい。
【0026】
操作部160は、ユーザ(プレーヤ)が操作情報(操作データ)を入力するためのものであり、ユーザの操作情報を処理部100に出力する。操作部160の機能は、キーボート、マウス、ボタン、タッチパネル型ディスプレイなどのハードウェアにより実現することができる。
【0027】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。そして、本実施形態の記憶部170は、ワーク領域として使用される主記憶部172と、最終的な表示画像等が記憶されるフレームバッファ174と、オブジェクトのモデルデータ(オブジェクト情報)が記憶されるオブジェクトデータ記憶部176と、各オブジェクトデータ用のテクスチャが記憶されるテクスチャ記憶部178と、オブジェクトの画像の生成処理時にZ値が記憶されるZバッファ179とを含む。なお、これらの一部を省略する構成としてもよい。
【0028】
特に本実施形態のオブジェクトデータ記憶部176は、複数のポリゴンにより構成される第1の多面体オブジェクトと、少なくとも1のポリゴンにより構成される面オブジェクトのオブジェクトデータを記憶する。また、オブジェクトデータ記憶部176は、異なる形状の複数の第1の多面体オブジェクトと、異なる形状の複数の面オブジェクトのオブジェクトデータを記憶するようにしてもよい。また、オブジェクトデータ記憶部176は、第1の多面体オブジェクトを面オブジェクトにより切断することにより生成された第2及び第3の多面体オブジェクトのオブジェクトデータを記憶する。
【0029】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)を記憶することができる。
【0030】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、或いはタッチパネル型ディスプレイなどにより実現できる。
【0031】
通信部196は外部(例えば他のオブジェクト生成システム、ゲームシステム、サーバ)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0032】
処理部100(プロセッサ)は、操作部160からの入力情報やプログラムなどに基づいて、オブジェクト生成処理、描画処理などの処理を行う。この処理部100は主記憶部172をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0033】
処理部100は、オブジェクト空間設定部110、オブジェクト生成部112、仮想カメラ制御部118、描画部120を含む。
【0034】
オブジェクト空間設定部110は、オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。例えば、ワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義であり、例えば、ワールド座標系でのX、Y、Z軸の各軸の正方向からみて時計回りに回る場合における回転角度)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
【0035】
特に本実施形態のオブジェクト空間設定部110は、複数のポリゴンにより構成される第1の多面体オブジェクトと、前記第1の多面体オブジェクトと交差する前記面オブジェクトとをオブジェクト空間に設定する。また、オブジェクト空間設定部110は、操作部160からの操作情報に基づき前記第1の多面体オブジェクトと前記面オブジェクトの位置や回転角度を決定するようにしてもよい。また、オブジェクト空間設定部110は、操作部160からの操作情報に基づきオブジェクト空間に設定する前記第1の多面体オブジェクトと前記面オブジェクトをそれぞれ決定し、決定された前記第1の多面体オブジェクトと前記面オブジェクトとをオブジェクト空間に設定するようにしてもよい。
【0036】
オブジェクト生成部112は、操作部160からの操作情報に基づいて、前記第1の多面体オブジェクトを、前記第1の多面体オブジェクトと交差する前記面オブジェクトにより切断して第2及び第3の多面体オブジェクトを生成する処理を行う。
【0037】
また、オブジェクト生成部112は、前記第1の多面体オブジェクトを構成するポリゴンを、前記面オブジェクトを構成するポリゴンとの交線において分割し、分割されたポリゴンのうち、前記面オブジェクトを構成するポリゴンの表側にあるポリゴンを第1のグループに分け、前記面オブジェクトを構成するポリゴンの裏側にあるポリゴンを第2のグループに分ける処理を行い、前記面オブジェクトを構成するポリゴンを、前記第1の多面体オブジェクトを構成するポリゴンとの交線において分割し、分割されたポリゴンのうち、前記第1の多面体オブジェクトを構成するポリゴンの表側にあるポリゴンを第3のグループに分け、前記第1の多面体オブジェクトを構成するポリゴンの裏側にあるポリゴンを第4のグループに分ける処理を行い、前記第1のグループに属するポリゴンと前記第4のグループに属するポリゴンを結合して前記第2の多面体オブジェクトを生成し、前記第2のグループに属するポリゴンと前記第4のグループに属するポリゴンを結合して前記第3の多面体オブジェクトを生成するようにしてもよい。
【0038】
また、オブジェクト生成部112は、前記第1の多面体オブジェクトを構成するポリゴンのうち、前記面オブジェクトを構成するポリゴンと交差しないポリゴンを、前記第1の多面体オブジェクトを構成する他のポリゴンとの隣接関係に基づき前記第1及び第2のグループに分ける処理を行い、前記面オブジェクトを構成するポリゴンのうち、前記第1の多面体オブジェクトを構成するポリゴンと交差しないポリゴンを、前記面オブジェクトを構成する他のポリゴンとの隣接関係に基づき前記第3及び第4のグループに分ける処理を行うようにしてもよい。
【0039】
また、オブジェクト生成部112は、前記分割されたポリゴンを三角形化し、三角形化されたポリゴンを前記第1〜第4のグループに分ける処理を行うようにしてもよい。
【0040】
仮想カメラ制御部118は、操作部160からの操作情報やプログラムなどに基づいて、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、ワールド座標系における仮想カメラの位置(X、Y、Z)又は回転角度(例えば、X、Y、Z軸の各軸の正方向からみて時計回りに回る場合における回転角度)を制御する処理を行う。要するに、視点位置、視線方向、画角を制御する処理を行う。
【0041】
描画部120は、処理部100で行われる種々の処理の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。いわゆる3次元画像を生成する場合には、まずオブジェクトの各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)を含むオブジェクトデータ(モデルデータ)が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理(頂点シェーダによるシェーディング)が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。
【0042】
頂点処理では、頂点処理プログラム(頂点シェーダプログラム、第1のシェーダプログラム)に従って、頂点の移動処理や、座標変換、例えばワールド座標変換、視野変換(カメラ座標変換)、クリッピング処理、射影変換(透視変換、投影変換)、ビューポート変換(スクリーン座標変換)、光源計算等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。ジオメトリ処理後のオブジェクトデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)は、オブジェクトデータ記憶部176に保存される。
【0043】
そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(ピクセルシェーダによるシェーディング、フラグメント処理)が行われる。
【0044】
ピクセル処理では、ピクセル処理プログラム(ピクセルシェーダプログラム、第2のシェーダプログラム)に従って、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ174(ピクセル単位で画像情報を記憶できるバッファ。VRAM)に出力(描画)する。すなわち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。
【0045】
そして描画部120は、オブジェクトを描画する際に、テクスチャマッピング、隠面消去処理等を行う。
【0046】
テクスチャマッピングは、記憶部170のテクスチャ記憶部178に記憶されるテクスチャ(テクセル値)をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定(付与)されるテクスチャ座標等を用いて記憶部170のテクスチャ記憶部178からテクスチャ(色(RGB)、α値などの表面プロパティ)を読み出す。そして、2次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【0047】
隠面消去処理としては、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ179(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファ179に格納されるZ値を参照する。そして参照されたZバッファ179のZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファ179のZ値を新たなZ値に更新する。
【0048】
2.本実施形態の手法
次に本実施形態の手法について図面を用いて説明する。
【0049】
2−1.概要
本実施形態では、図2に示すように、第1の多面体オブジェクトPO1を、第1の多面体オブジェクトPO1と交差する面オブジェクトPLにより切断(分割)して、第2及び第3の多面体オブジェクトPO2、PO3を生成する。そして、本実施形態では、第2及び第3の多面体オブジェクトPO2、PO3のそれぞれの切断面CP(分割面)には、面オブジェクトPLの属性情報(色情報、テクスチャ座標、反射モデル等)が設定される。なお、ここでは、第1の多面体オブジェクトの一例として直方体のオブジェクトを示し、面オブジェクトの一例として平面のオブジェクトを示しているが、それ以外の形状でもよい。例えば、面オブジェクトは、凹凸のある面オブジェクトでもよい。
【0050】
ユーザは、操作部160を操作することで、異なる形状の複数の第1の多面体オブジェクトから切断対象とする1の第1の多面体オブジェクトを選択し、また、異なる形状の複数の面オブジェクトから切断に用いる1の面オブジェクトを選択することができる。また、ユーザは、表示部190を見ながら操作部160を操作することで、第1の多面体オブジェクトPO1と交差する面オブジェクトPLの位置や回転角度を任意の位置や回転角度に設定することができる。
【0051】
以下、第1の多面体オブジェクトPO1を面オブジェクトPLにより切断して第2及び第3の多面体オブジェクトPO2、PO3を生成するアルゴリズムについて説明する。
【0052】
2−2.第1の多面体オブジェクトのポリゴンの分割・グループ分け
本実施形態では、まず、第1の多面体オブジェクトPO1を構成する複数のポリゴンと、面オブジェクトPLを構成する複数のポリゴンの中から、互いに交差するポリゴンの組み合わせをリストアップする。
【0053】
図3(A)は、ポリゴンの組み合わせの一例であり、第1の多面体オブジェクトPO1の側面を構成するポリゴンPO110と、面オブジェクトPLを構成するポリゴンであって、ポリゴンPO110と交差するポリゴンPL10を示している。
【0054】
次に、リストアップされた第1の多面体オブジェクトPO1を構成するポリゴンを、面オブジェクトPLを構成するポリゴンとの交線により分割する。図3(B)に示す例では、第1の多面体オブジェクトPO1を構成するポリゴンPO110と、面オブジェクトPLを構成するポリゴンPL10の交線NLを求め、第1の多面体オブジェクトPO1を構成するポリゴンPO110を、求めた交線NLにおいて分割し、ポリゴンPO111、PO112を生成している。
【0055】
次に、図3(C)に示すように、分割されたポリゴンPO111、PO112を三角形化する。ここでは、分割されたポリゴンのうち、三角形でないポリゴンPO112を三角形化し、ポリゴンPO113、PO114を生成している。
【0056】
次に、図3(C)に示すように、三角形化されたポリゴンPO111、PO113、PO114のうち、面オブジェクトPLを構成するポリゴンであって、交線NLを含むポリゴンPL10の表側にあるポリゴンPO111を第1のグループに分け、ポリゴンPL10の裏側にあるポリゴンPO113、PO114を第2のグループに分ける。ポリゴンPL10の表側にあるか裏側にあるかは、ポリゴンPL10に設定された法線ベクトルNV(図3(A)参照)に基づき判断することができる。
【0057】
そして、第1の多面体オブジェクトPO1を構成するポリゴンのうち、面オブジェクトPLを構成するポリゴンと交差する他の全てのポリゴン(リストアップされた他の全てのポリゴン)について同様の処理を行う。図4(A)〜図4(C)に示す例では、第1の多面体オブジェクトPO1の側面を構成するポリゴンPO120を、面オブジェクトPLを構成するポリゴンPL10との交線NLにおいて分割し、三角形化することで、ポリゴンPO123、PO124、PO122を生成し、また、ポリゴンPL110の表側にあるポリゴンPO123、PO124を第1のグループに分け、ポリゴンPL110の裏側にあるポリゴンPO122を第2のグループに分けている。
【0058】
次に、図5に示すように、第1の多面体オブジェクトPO1を構成するポリゴンのうち、面オブジェクトPLを構成するポリゴンと交差しないポリゴンPO130、PO140、PO150、PO160を、第1の多面体オブジェクトPO1を構成する他のポリゴンとの隣接関係に基づき第1及び第2のグループに分ける。例えば、第1のグループに分けられたポリゴンPO123と隣接するポリゴンPO140を第1のグループに分け、第2のグループに分けられたPO114と隣接するポリゴンPO160を、第2のグループに分ける。同様に、ポリゴンPO130を第1のグループに分け、ポリゴンPO150を第2のグループに分ける。
【0059】
2−3.面オブジェクトのポリゴンの分割・グループ分け
本実施形態では、次に、リストアップされた面オブジェクトPLを構成するポリゴンを、第1の多面体オブジェクトPO1を構成するポリゴンとの交線により分割する。図6(A)、図6(B)に示す例では、面オブジェクトPLを構成するポリゴンPL10と、第1の多面体オブジェクトPO1を構成しポリゴンPL10と交差するポリゴンPO110、PO120、PO170、PO180との交線(PL10とPO110との交線NL1、PL10とPO120との交線NL2、PL10とPO170との交線NL3、PL10とPO180との交線NL4)を求め、面オブジェクトPLを構成するポリゴンPL10を、求めた交線NL1、NL2、NL3、NL4において分割し、ポリゴンPL11、PL12を生成している。
【0060】
次に、図6(C)に示すように、分割されたポリゴンを三角形化する。ここでは、分割されたポリゴンのうち、三角形でないポリゴンPL11を三角形化し、ポリゴンPL13、PL14、PL15、PL16を生成している。
【0061】
次に、図6(C)に示すように、三角形化されたポリゴンPL12、PL13、PL14、PL15、PL16のうち、第1の多面体オブジェクトPO1を構成するポリゴンであって、交線NL1、NL2、NL3、NL4を含むポリゴンPO110、PO120、PO170、PO180の表側にあるポリゴンPL13、PL14、PL15、PL16を第3のグループに分け、ポリゴンPO110、PO120、PO170、PO180の裏側にあるポリゴンPL12を第4のグループに分ける。ポリゴンの表側にあるか裏側にあるかは、ポリゴンPO110、PO120、PO170、PO180に設定された法線ベクトルNV1、NV2、NV3、NV4に基づき判断することができる。
【0062】
そして、面オブジェクトPLを構成するポリゴンのうち、第1の多面体オブジェクトPO1を構成するポリゴンと交差する他の全てのポリゴン(リストアップされた他の全てのポリゴン)について同様の処理を行う。図6(A)に示す例では、面オブジェクトPLを構成するポリゴンPL20について同様の処理を行う。
【0063】
次に、面オブジェクトPLを構成するポリゴンのうち、第1の多面体オブジェクトPO1を構成するポリゴンと交差しないポリゴンを、面オブジェクトPLを構成する他のポリゴンとの隣接関係に基づき第3及び第4のグループに分ける。なお、図6(A)に示す例では、面オブジェクトPLを構成するポリゴンのうち、第1の多面体オブジェクトPO1を構成するポリゴンと交差しないポリゴンは存在しないため、当該処理は行われない。
【0064】
図7に、オブジェクトデータ記憶部176に記憶されるオブジェクトデータ(オブジェクト情報)の一例を示す。図7に示すように、オブジェクトデータ200は、オブジェクトを構成するポリゴン毎に、ポリゴンID210、各頂点の頂点座標220、各頂点の色情報230、各頂点のテクスチャ座標240、法線ベクトル250、隣接するポリゴンを特定する隣接情報260、属するグループを特定するグループ情報270を格納する。また、オブジェクトデータ200は、ポリゴン毎の各頂点の反射モデルの情報も格納する。
【0065】
図7に示すオブジェクトデータ200には、第1の多面体オブジェクトPO1を構成する各ポリゴンと面オブジェクトPLを構成する各ポリゴンが、分割・三角形化されることによって生成されたポリゴンの各情報が格納されている。ここで、各ポリゴンの色情報230、テクスチャ情報240、反射モデル、法線ベクトル250の属性情報は、分割・三角形化される前のポリゴンの属性情報から求められる。例えば、各ポリゴンの色情報230、テクスチャ情報240は、分割・三角形化によって頂点座標が変わらなかった場合には、分割・三角形化前の色情報、テクスチャ情報がそのまま引き継がれ、分割・三角形化によって頂点座標が変わった場合には再計算される。また、各ポリゴンのグループ情報270は、上記グループ分けの処理により求められる。また、各ポリゴンの隣接情報260は、上記隣接関係に基づくグループ分けを行う際に参照される。
【0066】
2−4.ポリゴンの結合
上記処理により、図8に示すように、第1の多面体オブジェクトPO1を構成するポリゴンは、第1のグループに属するポリゴンと、第2のグループに属するポリゴンとに分割及びグループ分けされ、面オブジェクトPLを構成するポリゴンは、第3のグループに属するポリゴンと、第4のグループに属するポリゴンとに分割及びグループ分けされる。なお、図8では、説明の便宜上、第1〜第4のグループに属するポリゴンをそれぞれ分離して示しているが、実際には上記処理により各ポリゴンの位置が変わるわけではない。
【0067】
本実施形態では、次に、第1のグループに属するポリゴンと第4のグループに属するポリゴンを結合して第2の多面体オブジェクトを生成し、第2のグループに属するポリゴンと第4のグループに属するポリゴンを結合して第3の多面体オブジェクトを生成する。
【0068】
これにより、図9(A)、図9(B)に示すように、第2の多面体オブジェクトPO2の下部(切断面)及び第3の多面体オブジェクトPO3の上部(切断面)は、それぞれ第4のグループに属するポリゴン(面オブジェクトPLを構成するポリゴンから分割・三角形化・グループ分けされたポリゴン)により形成されることになる。すなわち、第2及び第3の多面体オブジェクトPO2、PO3のそれぞれの切断面には、面オブジェクトPLを構成するポリゴンに設定された色情報、テクスチャ座標、反射モデル等の属性情報が設定されることになり、また、第2及び第3の多面体オブジェクトPO2、PO3のそれぞれの切断面の形状は、第4のグループに属するポリゴンの形状となる。
【0069】
なお、本実施形態の第4のグループに属するポリゴンに設定された法線ベクトルは、+Y軸を向いているため、第1のグループに属するポリゴンと第4のグループに属するポリゴンをそのまま結合すると、当該法線ベクトルが第2の多面体オブジェクトPO2の内部を向くことになってしまう。
【0070】
そこで、本実施形態では、図9(B)に示すように、第4のグループに属する各ポリゴンに設定された法線ベクトルNVを反転させてから、第4のグループに属するポリゴンと第1のグループに属するポリゴンとを結合し、第2の多面体オブジェクトPO2を生成している。このようにすると、ポリゴンの結合を行った際に第4のグループに属するポリゴンが描画されなくなってしまうことを防止することができる。なお、図9(A)に示すように、第4のグループに属するポリゴンに設定された法線ベクトルNVは第3の多面体オブジェクトPO3の外部(+Y軸方向)を向いているため、第4のグループに属するポリゴンと第2のグループに属するポリゴンとを結合して第3の多面体オブジェクトPO3を生成する場合には、当該法線ベクトルNVを反転させない。
【0071】
図10に、建物を表す第1の多面体オブジェクトPO1を面オブジェクトPLにより切断して生成された第2の及び第3の多面体オブジェクトの画像の例を示す。図10に示すように、第2及び第3の多面体オブジェクトPO2、PO3のそれぞれの切断面には、面オブジェクトPLにマッピングされたテクスチャがマッピングされており、第2及び第3の多面体オブジェクトPO2、PO3のそれぞれの切断面の形状は、面オブジェクトPLのうち第1の多面体オブジェクトPO1と交差する部分の形状となる。
【0072】
このように本実施形態によれば、面オブジェクトPLを構成するポリゴンに属性情報を設定しておくだけで、当該属性情報を、第1の多面体オブジェクトPO1を切断することで生成される第2及び第3の多面体オブジェクトPO2、PO3の切断面に反映させることができ、多面体オブジェクトの切断面の多様な表現を簡単な処理で実現することができる。例えば、多面体オブジェクトの内部の色、模様、質感等を表す属性情報(色情報、テクスチャ座標、反射モデル)が設定された面オブジェクトにより多面体オブジェクトを切断することで、多面体オブジェクト内部の色、模様、質感等が切断面に表された新たな多面体オブジェクトを生成することができる。
【0073】
3.処理
次に、本実施形態の処理の一例について図11のフローチャートを用いて説明する。
【0074】
まず、オブジェクト生成部112は、第1の多面体オブジェクトPO1を構成する複数のポリゴンと、面オブジェクトPLを構成する複数のポリゴンの中から、互いに交差するポリゴンの組み合わせをリストアップする(ステップS10)。
【0075】
次に、オブジェクト生成部112は、リストアップされた第1の多面体オブジェクトPO1を構成するポリゴンを、面オブジェクトPLを構成するポリゴンとの交線において分割する(S12)。次に、オブジェクト生成部112は、分割されたポリゴンを三角形化する(ステップS14)。
【0076】
次に、オブジェクト生成部112は、三角形化されたポリゴンを、面オブジェクトPLを構成するポリゴンに設定された法線ベクトルに基づき第1及び第2のグループに分ける処理を行う(ステップS16)。具体的には、三角形化されたポリゴンが面オブジェクトPLを構成するポリゴンの表側にあるか裏側にあるかを、面オブジェクトPLのポリゴン(交線を含むポリゴン)に設定された法線ベクトルに基づき判断し、表側にあると判断されたポリゴンを第1のグループに分け、裏側にあると判断されたポリゴンを第2のグループに分ける。
【0077】
次に、オブジェクト生成部112は、第1の多面体オブジェクトPO1を構成するポリゴンのうち、面オブジェクトPLを構成するポリゴンと交差する全てのポリゴン(リストアップされた全てのポリゴン)を処理したか否かを判断し(ステップS18)、処理していない場合には、ステップS12の処理に進み、第1の多面体オブジェクトPO1を構成するポリゴンのうち、面オブジェクトPLを構成するポリゴンと交差する他の全てのポリゴンについて、ステップS12からステップS16の処理を繰り返す。
【0078】
ステップS18において、交差する全てのポリゴンを処理したと判断した場合には、オブジェクト生成部112は、第1の多面体オブジェクトPO1を構成するポリゴンのうち、面オブジェクトPLを構成するポリゴンと交差しないポリゴン(リストアップされなかったポリゴン)を、第1の多面体オブジェクトPO1を構成する他のポリゴンとの隣接関係に基づき第1及び第2のグループに分ける処理を行う(ステップS20)。具体的には、リストアップされなかったポリゴンが、第1のグループに分けられたポリゴンと隣接する場合には、当該ポリゴンを第1のグループに分け、第2のグループに分けられたポリゴンと隣接する場合には、当該ポリゴンを第2のグループに分ける。
【0079】
次に、オブジェクト生成部112は、第1の多面体オブジェクトPO1を構成するポリゴンのうち、面オブジェクトPLを構成するポリゴンと交差しない全てのポリゴンを処理したか否かを判断し(ステップS22)、処理していない場合には、面オブジェクトPLのポリゴンと交差しない他の全てのポリゴンについてステップS20の処理を繰り返す。
【0080】
ステップS18において、交差しない全てのポリゴンを処理したと判断した場合には、オブジェクト生成部112は、リストアップされた面オブジェクトPLを構成するポリゴンを、第1の多面体オブジェクトPO1を構成するポリゴンとの交線において分割する(S24)。次に、オブジェクト生成部112は、分割されたポリゴンを三角形化する(ステップS26)。
【0081】
次に、オブジェクト生成部112は、三角形化されたポリゴンを、第1の多面体オブジェクトPO1を構成するポリゴンに設定された法線ベクトルに基づき第3及び第4のグループに分ける処理を行う(ステップS28)。具体的には、三角形化されたポリゴンが第1の多面体オブジェクトPO1を構成するポリゴンの表側にあるか裏側にあるかを、第1の多面体オブジェクトPO1のポリゴン(交線を含むポリゴン)に設定された法線ベクトルに基づき判断し、表側にあると判断されたポリゴンを第3のグループに分け、裏側にあると判断されたポリゴンを第4のグループに分ける。
【0082】
次に、オブジェクト生成部112は、面オブジェクトPLを構成するポリゴンのうち、第1の多面体オブジェクトPO1を構成するポリゴンと交差する全てのポリゴン(リストアップされた全てのポリゴン)を処理したか否かを判断し(ステップS30)、処理していない場合には、ステップS24の処理に進み、面オブジェクトPLを構成するポリゴンのうち、第1の多面体オブジェクトPO1を構成するポリゴンと交差する他の全てのポリゴンについて、ステップS24からステップS28の処理を繰り返す。
【0083】
ステップS30において、交差する全てのポリゴンを処理したと判断した場合には、オブジェクト生成部112は、面オブジェクトPLを構成するポリゴンのうち、第1の多面体オブジェクトPO1を構成するポリゴンと交差しないポリゴン(リストアップされなかったポリゴン)を、面オブジェクトPLを構成する他のポリゴンとの隣接関係に基づき第3及び第4のグループに分ける処理を行う(ステップS32)。具体的には、リストアップされなかったポリゴンが、第3のグループに分けられたポリゴンと隣接する場合には、当該ポリゴンを第3のグループに分け、第4のグループに分けられたポリゴンと隣接する場合には、当該ポリゴンを第4のグループに分ける。
【0084】
次に、オブジェクト生成部112は、面オブジェクトPLを構成するポリゴンのうち、第1の多面体オブジェクトPO1を構成するポリゴンと交差しない全てのポリゴンを処理したか否かを判断し(ステップS34)、処理していない場合には、第1の多面体オブジェクトPO1を構成するポリゴンと交差しない他の全てのポリゴンについてステップS32の処理を繰り返す。
【0085】
ステップS34において、交差しない全てのポリゴンを処理したと判断した場合には、オブジェクト生成部112は、第4のグループに属するポリゴンに設定された法線ベクトルを反転させ、第1のグループに属するポリゴンと第4のグループに属するポリゴンとを結合して第2の多面体オブジェクトを生成する(ステップS36)。
【0086】
次に、オブジェクト生成部112は、第2のグループに属するポリゴンと第4のグループに属するポリゴンとを結合して第3の多面体オブジェクトを生成する(ステップS38)。
【0087】
4.変形例
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【0088】
例えば、本実施形態では、第1の多面体オブジェクトを1の面オブジェクトにより切断する場合について説明したが、第1の多面体オブジェクトを、第1の多面体オブジェクトと交差する複数の面オブジェクトにより切断するようにしてもよい。この場合には、例えば、第1の多面体オブジェクトを第1の面オブジェクトにより切断して第2及び第3の多面体オブジェクトを生成し、第2及び第3の多面体オブジェクトのいずれか一方を第2の面オブジェクトにより切断して第4及び第5の多面体オブジェクトを生成する。
【0089】
また、本実施形態では、本発明をオブジェクト生成システムに適用する場合について説明したが、本発明をゲームシステム(ゲーム装置)に適用するようにしてもよい。
【0090】
図12に、本発明を適用したゲームシステムの機能ブロック図の一例を示す。なお、図12において、図1の構成要素と同様の構成要素については同符号を付し、説明を省略する。
【0091】
処理部100は、ゲーム演算部111を含む。ゲーム演算部111は、操作部160からの操作情報に基づきゲーム演算を行う。例えば、ゲーム演算部111は、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトをオブジェクト空間内で移動させたりオブジェクトを動作させたりする処理、オブジェクトを表示する処理、ヒットチェック処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理を行う。
【0092】
オブジェクト生成部112は、ゲーム演算部111によるゲーム演算の結果に基づいて、オブジェクト空間に配置された第1の多面体オブジェクトを面オブジェクトにより切断して第2及び第3の多面体オブジェクトを生成する。例えば、オブジェクト生成部112は、ゲーム演算部111によって、オブジェクト空間を移動するオブジェクトが第1の多面体オブジェクトにヒットしたと判断された場合に、第1の多面体オブジェクトを面オブジェクトにより切断する処理を行う。
【0093】
また、オブジェクト空間設定部110は、第1の多面体オブジェクトと交差する複数の面オブジェクトをオブジェクト空間に設定し、オブジェクト生成部112は、ゲーム演算部111によるゲーム演算の結果(例えば、オブジェクト空間を移動するオブジェクトが第1の多面体オブジェクトにヒットした位置)に基づいて、複数の面オブジェクトのうち1の面オブジェクトを選択し、第1の多面体オブジェクトを、選択された面オブジェクトにより切断して第2及び第3の多面体オブジェクトを生成するようにしてもよい。
【0094】
また、オブジェクト生成部112は、ゲーム演算部111によるゲーム演算の結果(例えば、オブジェクト空間を移動するオブジェクトが第1の多面体オブジェクトにヒットした位置や、オブジェクト空間を移動するオブジェクトの移動方向)に基づいて、第1の多面体オブジェクトと交差する面オブジェクトの位置及び回転角度の少なくとも一方を決定し、その位置にその回転角度で配置された面オブジェクトにより第1の多面体オブジェクトを切断するようにしてもよい。
【0095】
また処理部100は、エフェクト処理部114を含むようにしてもよい。エフェクト処理部114は、オブジェクト生成部112によって第1の多面体オブジェクトが前記面オブジェクトにより切断された場合に、エフェクトを生成する。例えば、エフェクト処理部114は、第1の多面体オブジェクトが切断されることによって第2及び第3の多面体オブジェクトの切断面から放出される液体、光、炎、煙、瓦礫等の放出物を表すエフェクト表示物の表示制御を行うようにしてもよい。
【0096】
またエフェクト処理部114は、第1の多面体オブジェクトが面オブジェクトにより切断された場合に、オブジェクト空間に設定された面オブジェクトの位置又は回転角度に応じたエフェクトを生成するようにしてもよいし、面オブジェクトを構成するポリゴンに設定された属性情報に応じたエフェクトを生成するようにしてもよい。また、描画部120は、オブジェクト空間内において仮想カメラから見える画像であって、エフェクト処理部114によって生成されたエフェクトを含む画像を生成する。
【0097】
次に、本発明を適用したゲームシステムで行われるゲームの一例について、図13(A)、図13(B)を用いて説明する。図13(A)、図13(B)に示すゲームでは、プレーヤは、操作部160を操作することで、オブジェクト空間内で戦闘機APを移動させ、また、戦闘機APからミサイルMSを発射させることで敵の戦闘機や建物を攻撃し破壊することができる。
【0098】
すなわち、図13(A)に示す例では、オブジェクト空間内のマップMP上に、建物を表す第1の多面体オブジェクトPO1と、第1の多面体オブジェクトPO1と交差する複数の面オブジェクトPL1〜PL4が配置されている。なお、複数の面オブジェクトPL1〜PL4は非表示となる(描画されない)ように設定されている。
【0099】
そして、ゲーム演算部111が、戦闘機APから発射されたミサイルMSが第1の多面体オブジェクトPO1にヒットしたと判断すると、オブジェクト生成部112は、ヒットしたときのミサイルMSの位置(攻撃位置)に基づき複数の面オブジェクトPL1〜PL4から1の面オブジェクトを選択し、選択された面オブジェクトにより第1の多面体オブジェクトPO1を切断する処理を行う。
【0100】
図13(A)、図13(B)に示す例では、オブジェクト生成部112は、ヒットしたときのミサイルMSの位置に最も近い位置に配置された面オブジェクトPL2を選択し、面オブジェクトPL2により第1の多面体オブジェクトPO1を切断して第2及び第3の多面体オブジェクトPO2、PO3を生成している。また、生成された第2の多面体オブジェクトPO2は、第3の多面体オブジェクトから分離するように移動し、攻撃によって建物が崩れる様を表現している。
【0101】
なお、オブジェクト生成部112は、ヒットしたときのミサイルMSの位置、移動方向(移動ベクトル)に基づき面オブジェクトの位置、回転角度を決定し、決定された位置、回転角度に配置された面オブジェクトにより第1の多面体オブジェクトPO1を切断するようにしてもよい。
【0102】
そして、エフェクト処理部114は、第1の多面体オブジェクトPO1が面オブジェクトにより切断され第2及び第3の多面体オブジェクトPO2、PO3が生成された場合に、面オブジェクトの位置、回転角度に応じて、エフェクトを生成する。図13(B)に示す例では、エフェクト処理部114は、切断に用いられた面オブジェクトPL2の位置に応じて、第2及び第3の多面体オブジェクトPO2、PO3の切断面付近から面オブジェクトPL2が延びる方向に放出される煙、瓦礫等を表すエフェクト表示物を表示させている。
【0103】
また、エフェクト処理部114は、面オブジェクトを構成するポリゴンに設定された色情報、テクスチャ座標、反射モデル等の属性情報に応じたエフェクトを生成する。例えば、エフェクト表示物EFをパーティクルにより表現する場合には、面オブジェクトPL2を構成するポリゴンに設定された色情報を、エフェクト表示物EFを表現するパーティクルの色情報に設定するようにしてもよい。また、エフェクト表示物EFを飛散する多数のポリゴンにより表現する場合には、面オブジェクトPL2を構成するポリゴンに設定されたテクスチャを、エフェクト表示物EFを表現するポリゴンにマッピングするようにしてもよい。
【0104】
このようにすると、例えば、第1の多面体オブジェクトPO1(建物)内部の色、構造物、質感を表す色情報、テクスチャ、反射モデルが設定された面オブジェクトにより第1の多面体オブジェクトPO1を切断することで、第2及び第3の多面体オブジェクトPO2、PO3の切断面から建物の内部の色、構造物、質感を反映した煙、瓦礫等が放出するようなリアルなエフェクト表現を簡単な処理で実現することができる。
【符号の説明】
【0105】
100 処理部、110 オブジェクト空間設定部、111 ゲーム演算部、112 オブジェクト生成部、114 エフェクト処理部、118 仮想カメラ制御部、120 描画部、160 操作部、170 記憶部、180 情報記憶媒体、190 表示部、196 通信部
【特許請求の範囲】
【請求項1】
複数のポリゴンにより構成される第1の多面体オブジェクトと、少なくとも1のポリゴンにより構成される面オブジェクトのオブジェクト情報を記憶する記憶部と、
前記第1の多面体オブジェクトを、前記第1の多面体オブジェクトと交差する前記面オブジェクトにより切断して第2及び第3の多面体オブジェクトを生成するオブジェクト生成部としてコンピュータを機能させ、
前記第2及び第3の多面体オブジェクトそれぞれの切断面には、前記面オブジェクトを構成するポリゴンの属性情報が設定されることを特徴とするプログラム。
【請求項2】
請求項1において、
前記オブジェクト生成部が、
前記第1の多面体オブジェクトを構成するポリゴンを、前記面オブジェクトを構成するポリゴンとの交線において分割し、分割されたポリゴンのうち、前記面オブジェクトを構成するポリゴンの表側にあるポリゴンを第1のグループに分け、前記面オブジェクトを構成するポリゴンの裏側にあるポリゴンを第2のグループに分ける処理を行い、
前記面オブジェクトを構成するポリゴンを、前記第1の多面体オブジェクトを構成するポリゴンとの交線において分割し、分割されたポリゴンのうち、前記第1の多面体オブジェクトを構成するポリゴンの表側にあるポリゴンを第3のグループに分け、前記第1の多面体オブジェクトを構成するポリゴンの裏側にあるポリゴンを第4のグループに分ける処理を行い、
前記第1のグループに属するポリゴンと前記第4のグループに属するポリゴンを結合して前記第2の多面体オブジェクトを生成し、前記第2のグループに属するポリゴンと前記第4のグループに属するポリゴンを結合して前記第3の多面体オブジェクトを生成することを特徴とするプログラム。
【請求項3】
請求項2において、
前記オブジェクト生成部が、
前記第1の多面体オブジェクトを構成するポリゴンのうち、前記面オブジェクトを構成するポリゴンと交差しないポリゴンを、前記第1の多面体オブジェクトを構成する他のポリゴンとの隣接関係に基づき前記第1及び第2のグループに分ける処理を行い、
前記面オブジェクトを構成するポリゴンのうち、前記第1の多面体オブジェクトを構成するポリゴンと交差しないポリゴンを、前記面オブジェクトを構成する他のポリゴンとの隣接関係に基づき前記第3及び第4のグループに分ける処理を行うことを特徴とするプログラム。
【請求項4】
請求項2又は3において、
前記オブジェクト生成部が、
前記分割されたポリゴンを三角形化し、三角形化されたポリゴンを前記第1〜第4のグループに分ける処理を行うことを特徴とするプログラム。
【請求項5】
請求項1乃至4のいずれかにおいて、
前記第1の多面体オブジェクトと、前記第1の多面体オブジェクトと交差する前記面オブジェクトとをオブジェクト空間に設定するオブジェクト空間設定部と、
操作部からの操作情報に基づきゲーム演算を行うゲーム演算部と、
前記オブジェクト空間において仮想カメラから見える画像を描画する描画部として更にコンピュータを機能させ、
前記オブジェクト生成部が、
前記ゲーム演算の結果に基づいて、前記第1の多面体オブジェクトを前記面オブジェクトにより切断して第2及び第3の多面体オブジェクトを生成することを特徴とするプログラム。
【請求項6】
請求項5において、
前記オブジェクト空間設定部が、
前記第1の多面体オブジェクトと交差する複数の前記面オブジェクトをオブジェクト空間に設定し、
前記オブジェクト生成部が、
前記ゲーム演算の結果に基づいて、複数の前記面オブジェクトのうち1の前記面オブジェクトを選択し、前記第1の多面体オブジェクトを、選択された前記面オブジェクトにより切断して前記第2及び第3の多面体オブジェクトを生成することを特徴とするプログラム。
【請求項7】
請求項5又は6において、
前記第1の多面体オブジェクトが前記面オブジェクトにより切断された場合に、前記面オブジェクトの位置又は回転角度に応じたエフェクトを生成するエフェクト処理部として更にコンピュータを機能させ、
前記描画部が、
前記生成されたエフェクトを含む画像を描画することを特徴とするプログラム。
【請求項8】
請求項5乃至7のいずれかにおいて、
前記第1の多面体オブジェクトが前記面オブジェクトにより切断された場合に、前記面オブジェクトを構成するポリゴンの属性情報に応じたエフェクトを生成するエフェクト処理部として更にコンピュータを機能させ、
前記描画部が、
前記生成されたエフェクトを含む画像を描画することを特徴とするプログラム。
【請求項9】
コンピュータ読み取り可能な情報記憶媒体であって、請求項1乃至8のいずれかに記載のプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項10】
複数のポリゴンにより構成される第1の多面体オブジェクトと、少なくとも1のポリゴンにより構成される面オブジェクトのオブジェクト情報を記憶する記憶部と、
前記第1の多面体オブジェクトを、前記第1の多面体オブジェクトと交差する前記面オブジェクトにより切断して第2及び第3の多面体オブジェクトを生成するオブジェクト生成部とを含み、
前記第2及び第3の多面体オブジェクトそれぞれの切断面には、前記面オブジェクトを構成するポリゴンの属性情報が設定されることを特徴とするオブジェクト生成システム。
【請求項1】
複数のポリゴンにより構成される第1の多面体オブジェクトと、少なくとも1のポリゴンにより構成される面オブジェクトのオブジェクト情報を記憶する記憶部と、
前記第1の多面体オブジェクトを、前記第1の多面体オブジェクトと交差する前記面オブジェクトにより切断して第2及び第3の多面体オブジェクトを生成するオブジェクト生成部としてコンピュータを機能させ、
前記第2及び第3の多面体オブジェクトそれぞれの切断面には、前記面オブジェクトを構成するポリゴンの属性情報が設定されることを特徴とするプログラム。
【請求項2】
請求項1において、
前記オブジェクト生成部が、
前記第1の多面体オブジェクトを構成するポリゴンを、前記面オブジェクトを構成するポリゴンとの交線において分割し、分割されたポリゴンのうち、前記面オブジェクトを構成するポリゴンの表側にあるポリゴンを第1のグループに分け、前記面オブジェクトを構成するポリゴンの裏側にあるポリゴンを第2のグループに分ける処理を行い、
前記面オブジェクトを構成するポリゴンを、前記第1の多面体オブジェクトを構成するポリゴンとの交線において分割し、分割されたポリゴンのうち、前記第1の多面体オブジェクトを構成するポリゴンの表側にあるポリゴンを第3のグループに分け、前記第1の多面体オブジェクトを構成するポリゴンの裏側にあるポリゴンを第4のグループに分ける処理を行い、
前記第1のグループに属するポリゴンと前記第4のグループに属するポリゴンを結合して前記第2の多面体オブジェクトを生成し、前記第2のグループに属するポリゴンと前記第4のグループに属するポリゴンを結合して前記第3の多面体オブジェクトを生成することを特徴とするプログラム。
【請求項3】
請求項2において、
前記オブジェクト生成部が、
前記第1の多面体オブジェクトを構成するポリゴンのうち、前記面オブジェクトを構成するポリゴンと交差しないポリゴンを、前記第1の多面体オブジェクトを構成する他のポリゴンとの隣接関係に基づき前記第1及び第2のグループに分ける処理を行い、
前記面オブジェクトを構成するポリゴンのうち、前記第1の多面体オブジェクトを構成するポリゴンと交差しないポリゴンを、前記面オブジェクトを構成する他のポリゴンとの隣接関係に基づき前記第3及び第4のグループに分ける処理を行うことを特徴とするプログラム。
【請求項4】
請求項2又は3において、
前記オブジェクト生成部が、
前記分割されたポリゴンを三角形化し、三角形化されたポリゴンを前記第1〜第4のグループに分ける処理を行うことを特徴とするプログラム。
【請求項5】
請求項1乃至4のいずれかにおいて、
前記第1の多面体オブジェクトと、前記第1の多面体オブジェクトと交差する前記面オブジェクトとをオブジェクト空間に設定するオブジェクト空間設定部と、
操作部からの操作情報に基づきゲーム演算を行うゲーム演算部と、
前記オブジェクト空間において仮想カメラから見える画像を描画する描画部として更にコンピュータを機能させ、
前記オブジェクト生成部が、
前記ゲーム演算の結果に基づいて、前記第1の多面体オブジェクトを前記面オブジェクトにより切断して第2及び第3の多面体オブジェクトを生成することを特徴とするプログラム。
【請求項6】
請求項5において、
前記オブジェクト空間設定部が、
前記第1の多面体オブジェクトと交差する複数の前記面オブジェクトをオブジェクト空間に設定し、
前記オブジェクト生成部が、
前記ゲーム演算の結果に基づいて、複数の前記面オブジェクトのうち1の前記面オブジェクトを選択し、前記第1の多面体オブジェクトを、選択された前記面オブジェクトにより切断して前記第2及び第3の多面体オブジェクトを生成することを特徴とするプログラム。
【請求項7】
請求項5又は6において、
前記第1の多面体オブジェクトが前記面オブジェクトにより切断された場合に、前記面オブジェクトの位置又は回転角度に応じたエフェクトを生成するエフェクト処理部として更にコンピュータを機能させ、
前記描画部が、
前記生成されたエフェクトを含む画像を描画することを特徴とするプログラム。
【請求項8】
請求項5乃至7のいずれかにおいて、
前記第1の多面体オブジェクトが前記面オブジェクトにより切断された場合に、前記面オブジェクトを構成するポリゴンの属性情報に応じたエフェクトを生成するエフェクト処理部として更にコンピュータを機能させ、
前記描画部が、
前記生成されたエフェクトを含む画像を描画することを特徴とするプログラム。
【請求項9】
コンピュータ読み取り可能な情報記憶媒体であって、請求項1乃至8のいずれかに記載のプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項10】
複数のポリゴンにより構成される第1の多面体オブジェクトと、少なくとも1のポリゴンにより構成される面オブジェクトのオブジェクト情報を記憶する記憶部と、
前記第1の多面体オブジェクトを、前記第1の多面体オブジェクトと交差する前記面オブジェクトにより切断して第2及び第3の多面体オブジェクトを生成するオブジェクト生成部とを含み、
前記第2及び第3の多面体オブジェクトそれぞれの切断面には、前記面オブジェクトを構成するポリゴンの属性情報が設定されることを特徴とするオブジェクト生成システム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図11】
【図12】
【図13】
【図10】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図11】
【図12】
【図13】
【図10】
【公開番号】特開2011−65396(P2011−65396A)
【公開日】平成23年3月31日(2011.3.31)
【国際特許分類】
【出願番号】特願2009−215149(P2009−215149)
【出願日】平成21年9月17日(2009.9.17)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】
【公開日】平成23年3月31日(2011.3.31)
【国際特許分類】
【出願日】平成21年9月17日(2009.9.17)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】
[ Back to top ]