説明

プログラム、情報記憶媒体及び画像生成システム

【課題】品質が高く自然な頭髪画像を生成できるプログラム、情報記憶媒体、画像生成システム等の提供。
【解決手段】画像生成システムは、オブジェクト空間設定部と、オブジェクト空間において仮想カメラから見える画像を生成する画像生成部を含む。オブジェクト空間設定部は、頭髪テクスチャがマッピングされた複数のポリゴンにより形成される頭髪画像用サブオブジェクトSBIと頭髪のシェーディング用サブオブジェクトSBSとにより構成される頭髪オブジェクトOBHAが、頭部オブジェクトに対して設定されたモデルオブジェクトを、オブジェクト空間に配置設定する処理を行い、画像生成部は、シェーディング用サブオブジェクトに対してシェーディング処理を行いながら頭髪オブジェクトOBHAの描画処理を行って、モデルオブジェクトの頭髪画像を生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報記憶媒体及び画像生成システム等に関する。
【背景技術】
【0002】
従来より、キャラクタ等のモデルオブジェクトが配置設定されるオブジェクト空間内(仮想的な3次元空間)において仮想カメラ(所与の視点)から見える画像を生成する画像生成システム(ゲームシステム)が知られており、いわゆる仮想現実を体験できるものとして人気が高い。格闘ゲームを楽しむことができる画像生成システムを例にとれば、プレーヤは、操作部(ゲームコントローラ)を用いてキャラクタ(モデルオブジェクト)を操作し、相手プレーヤやコンピュータが操作する他キャラクタ(敵キャラクタ)と対戦することでゲームを楽しむ。
【0003】
このような画像生成システムでは、キャラクタの頭髪についてもリアルに表現できることが望ましい。このようなキャラクタの頭髪画像の生成手法に関する従来技術としては、例えば特許文献1に開示される技術がある。また樹木画像の生成手法に関する従来技術としては特許文献2に開示される技術がある。
【0004】
しかしながら、これまでの頭髪画像生成手法では、例えばアフロヘアーのような膨らみのある頭髪表現を実現することが難しかった。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2001−84390号公報
【特許文献2】特開2004−298375号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明の幾つかの態様によれば、品質が高く自然な頭髪画像を生成できるプログラム、情報記憶媒体、画像生成システム等を提供できる。
【課題を解決するための手段】
【0007】
本発明の一態様は、オブジェクト空間にオブジェクトを配置設定する処理を行うオブジェクト空間設定部と、前記オブジェクトの描画処理を行って、前記オブジェクト空間において仮想カメラから見える画像を生成する画像生成部とを含み、前記オブジェクト空間設定部は、頭髪テクスチャがマッピングされた複数のポリゴンにより形成される頭髪画像用サブオブジェクトと頭髪のシェーディング用サブオブジェクトとにより構成される頭髪オブジェクトが、頭部オブジェクトに対して設定されたモデルオブジェクトを、前記オブジェクト空間に配置設定する処理を行い、前記画像生成部は、前記シェーディング用サブオブジェクトに対してシェーディング処理を行いながら前記頭髪オブジェクトの描画処理を行って、前記モデルオブジェクトの頭髪画像を生成する画像生成システムに関する。また本発明は、上記各部としてコンピュータを機能させるプログラム、又は該プログラムを記憶したコンピュータ読み取り可能な情報記憶媒体に関係する。
【0008】
本発明の一態様によれば、頭髪オブジェクトは、頭髪画像用サブオブジェクトとシェーディング用サブオブジェクトにより構成され、頭髪画像用サブオブジェクトは、頭髪テクスチャがマッピングされた複数のポリゴンにより形成される。そして、このような頭髪オブジェクトが頭部オブジェクトに対して設定されたモデルオブジェクトが、オブジェクト空間に配置設定される。そして、シェーディング用サブオブジェクトに対してシェーディング処理を行いながら頭髪オブジェクトの描画処理が行われて、モデルオブジェクトの頭髪画像が生成される。このようにすれば、頭髪画像用サブオブジェクトを用いて頭髪の基本的な画像を生成しながら、シェーディング処理についてはシェーディング用サブオブジェクトを用いて実行して、頭髪画像を生成できるようになる。従って、品質が高く自然な頭髪画像の生成が可能になる。
【0009】
また本発明の一態様では、前記画像生成部は、前記頭髪画像用サブオブジェクトについてはコンスタントシェーディングにより描画処理を行ってもよい。
【0010】
このようにすれば、例えば半透明処理の際の頭髪画像用サブオブジェクトのソーティング処理等を不要にできるため、処理負荷を軽減できる。
【0011】
また本発明の一態様では、前記頭髪画像用サブオブジェクトは、中心線から放射状に配置設定される複数のポリゴンにより形成されてもよい。
【0012】
このようにすれば、中心線が目立ってしまう画像が生成されるのを防止できるようになる。
【0013】
また本発明の一態様では、前記頭髪画像用サブオブジェクトにマッピングされる前記頭髪テクスチャは、前記中心線に対応するテクセルの色が頭髪の色に設定されてもよい。
【0014】
このようにすれば、頭髪画像用サブオブジェクトの中心線が目立って見える事態を防止できる。
【0015】
また本発明の一態様では、前記画像生成部は、前記頭髪画像用サブオブジェクトを形成する前記複数のポリゴンの各ポリゴンの法線方向と前記仮想カメラの視線方向とのなす角度が90度に近づくにつれて、前記各ポリゴンを透明に近づける半透明処理を行ってもよい。
【0016】
このようにすれば、頭髪画像用サブオブジェクトを形成するポリゴンのエッジが目立って見えてしまう事態を防止できる。
【0017】
また本発明の一態様では、前記頭髪オブジェクトは、前記頭髪画像用サブオブジェクトに交差する交差サブオブジェクトを更に有してもよい。
【0018】
このようにすれば、様々な仮想カメラの視線方向から頭髪オブジェクトを見た場合にも、破綻が少なく高品質な頭髪画像を生成できるようになる。
【0019】
また本発明の一態様では、前記画像生成部は、前記交差サブオブジェクトを形成する交差ポリゴンの法線方向と前記仮想カメラの視線方向とのなす角度が90度に近づくにつれて、前記交差ポリゴンを透明に近づける半透明処理を行ってもよい。
【0020】
このようにすれば、交差サブオブジェクトを形成する交差ポリゴンのエッジが目立って見えてしまう事態を防止できる。
【0021】
また本発明の一態様では、前記シェーディング用サブオブジェクトは、前記頭髪画像用サブオブジェクトの中心を内包するように配置設定されるオブジェクトであってもよい。
【0022】
このようにすれば、シェーディング用サブオブジェクトを用いたシェーディング処理による頭髪の質感表現を効果的に実現できる。
【0023】
また本発明の一態様では、前記オブジェクト空間設定部は、前記頭髪オブジェクトと前記頭部オブジェクトとの間に、前記頭部オブジェクトのカバーオブジェクトが設定された前記モデルオブジェクトを、前記オブジェクト空間に配置設定する処理を行ってもよい。
【0024】
このようにすれば、頭髪オブジェクトの隙間等から頭部オブジェクトの表面が見えてしまう事態等を防止できる。
【0025】
また本発明の一態様では、前記オブジェクト空間設定部は、前記頭部オブジェクトに対するめり込み部分がカリングされた前記頭髪オブジェクトが、前記頭部オブジェクトに対して設定された前記モデルオブジェクトを、前記オブジェクト空間に配置設定する処理を行ってもよい。
【0026】
このようにすれば、頭部オブジェクトに対してめり込む部分が無駄なポリゴンとして描画されてしまう事態を防止できる。
【図面の簡単な説明】
【0027】
【図1】本実施形態の画像生成システムの構成例。
【図2】従来例の問題点の説明図。
【図3】図3(A)、図3(B)は頭髪画像の例。
【図4】図4(A)〜図4(C)は頭髪画像用サブオブジェクトの説明図。
【図5】図5(A)、図5(B)は頭髪画像用サブオブジェクトの他の例。
【図6】図6(A)、図6(B)はシェーディング用サブオブジェクトの説明図。
【図7】図7(A)、図7(B)は頭髪画像用サブオブジェクトとシェーディング用サブオブジェクトにより構成される頭髪オブジェクトの説明図。
【図8】図8(A)、図8(B)は頭髪オブジェクトのカリング手法の説明図。
【図9】交差サブオブジェクトを更に設ける手法の説明図。
【図10】カバーオブジェクトの説明図。
【図11】図11(A)、図11(B)は頭髪画像サブオブジェクトを構成するポリゴンの半透明処理手法の説明図。
【図12】図12(A)、図12(B)は交差サブオブジェクトを構成する交差ポリゴンの半透明処理手法の説明図。
【図13】頭髪画像用サブオブジェクトの具体例。
【図14】図13に対して更に交差サブオブジェクトを設けた例。
【図15】図14に対して更にシェーディング用サブオブジェクトを設けた例。
【図16】頭髪画像用サブオブジェクトを用いて生成される画像の例。
【図17】シェーディング用サブオブジェクトを用いて生成される画像の例。
【図18】頭髪画像用サブオブジェクト及びシェーディング用サブオブジェクトの両方を用いて生成される画像の例。
【図19】本実施形態の処理のフローチャート。
【図20】本実施形態の処理のフローチャート。
【発明を実施するための形態】
【0028】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0029】
1.構成
図1に本実施形態の画像生成システム(ゲームシステム)のブロック図の例を示す。なお、本実施形態の画像生成システムの構成は図1に限定されず、その構成要素(各部)の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【0030】
操作部160は、プレーヤが操作データを入力するためのものであり、その機能は、方向指示キー、操作ボタン、アナログスティック、レバー、各種センサ(角速度センサ、加速度センサ等)、マイク、或いはタッチパネル型ディスプレイなどにより実現できる。
【0031】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(DRAM、VRAM)などにより実現できる。そしてゲームプログラムや、ゲームプログラムの実行に必要なゲームデータは、この記憶部170に保持される。
【0032】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、HDD(ハードディスクドライブ)、或いはメモリ(ROM等)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータ(操作部、処理部、記憶部、出力部を備える装置)を機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
【0033】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、LCD、有機ELディスプレイ、CRT、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【0034】
補助記憶装置194(補助メモリ、2次メモリ)は、記憶部170の容量を補うために使用される記憶装置であり、SDメモリーカード、マルチメディアカードなどのメモリーカードなどにより実現できる。
【0035】
通信部196は、有線や無線のネットワークを介して外部(例えば他の画像生成システム、サーバ、ホスト装置)との間で通信を行うものであり、その機能は、通信用ASIC又は通信用プロセッサなどのハードウェアや、通信用ファームウェアにより実現できる。
【0036】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、サーバ(ホスト装置)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(あるいは記憶部170、補助記憶装置194)に配信してもよい。このようなサーバ(ホスト装置)による情報記憶媒体の使用も本発明の範囲内に含めることができる。
【0037】
処理部100(プロセッサ)は、操作部160からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などを行う。処理部100は記憶部170をワーク領域として各種処理を行う。この処理部100の機能は、各種プロセッサ(CPU、GPU等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0038】
処理部100は、ゲーム演算部102、オブジェクト空間設定部104、移動処理部106、モーション処理部107、仮想カメラ制御部108、画像生成部120、音生成部130を含む。なおこれらの一部の構成要素を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【0039】
ゲーム演算部102はゲーム演算処理を行う。ここでゲーム演算としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。
【0040】
オブジェクト空間設定部104は、移動体(人、ロボット、車、戦闘機、ミサイル、弾等)、マップ(地形)、建物、コース(道路)、樹木、壁などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。具体的には、記憶部170のオブジェクトデータ記憶部172には、オブジェクト(パーツオブジェクト)の位置、回転角度、移動速度、移動方向等のデータであるオブジェクトデータがオブジェクト番号に対応づけて記憶される。
【0041】
移動処理部106は、モデルオブジェクト等の移動オブジェクトを移動させる処理を行う。例えば操作部160によりプレーヤが入力した操作データや、プログラム(移動アルゴリズム)や、各種データなどに基づいて、移動オブジェクトをオブジェクト空間内で移動させる。具体的には、移動オブジェクトの移動情報(位置、回転角度、速度、或いは加速度)を、1フレーム(1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、移動処理やモーション処理や画像生成処理を行う時間の単位である。
【0042】
モーション処理部107は、キャラクタ等のモデルオブジェクトにモーション(アニメーション)を行わせるモーション処理(モーション再生、モーション生成)を行う。このモーション処理は、モデルオブジェクトのモーションを、モーションデータ記憶部173に記憶されているモーションデータに基づいて再生することなどで実現できる。
【0043】
具体的にはモーションデータ記憶部173には、モデルオブジェクトのスケルトンを構成する各骨(モデルオブジェクトを構成する各パーツオブジェクト)の位置又は回転角度(親の骨に対する子の骨の3軸周りの回転角度)等を含むモーションデータが記憶されている。モーション処理部107は、このモーションデータをモーションデータ記憶部173から読み出し、読み出されたモーションデータに基づいてモデルオブジェクトのスケルトンを構成する各骨(パーツオブジェクト)を動かすことで(スケルトン形状を変形させることで)、モデルオブジェクトのモーションを再生する。
【0044】
モデルデータ記憶部174は、モデルオブジェクトのモデルデータを記憶する。このモデルデータは、例えばモデルオブジェクトの形状を規定するデータであり、モデルオブジェクトの基本姿勢や基本形状などを決めるデータである。具体的にはモデルデータ記憶部174は、モデルオブジェクトのスケルトンを構成する骨の位置(親の骨からの相対位置)や初期回転角度(基本姿勢での各骨の回転角度)などの初期状態情報を記憶する。またモデルオブジェクトの頂点データ(頂点位置等)を記憶する。モーション処理は、モデルデータに含まれる初期回転角度などの初期状態情報を、モーションデータに基づき更新して行くことで実現される。
【0045】
仮想カメラ制御部108は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、仮想カメラの位置(X、Y、Z)又は回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置、視線方向あるいは画角を制御する処理)を行う。
【0046】
例えば仮想カメラによりキャラクタ、車などのモデルオブジェクト(移動体)を後方から撮影する場合には、モデルオブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度(仮想カメラの向き)を制御する。この場合には、移動処理部106で得られたモデルオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。
【0047】
画像生成部120は、処理部100で行われる種々の処理(ゲーム処理、シミュレーション処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。具体的には、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、透視変換、或いは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ(プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)が作成される。そして、この描画データ(プリミティブ面データ)に基づいて、透視変換後(ジオメトリ処理後)のオブジェクト(1又は複数プリミティブ面)を、描画バッファ176(フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファ)に描画する。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。
【0048】
例えば画像生成部120は、頂点処理部122、ピクセル処理部124を含むことができる。
【0049】
頂点処理部122(頂点シェーダ、ジオメトリーシェーダ)は頂点処理を行う。具体的には、オブジェクトの頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)に基づいて、頂点処理(頂点シェーダによるシェーディング)を行う。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。
【0050】
頂点処理では、頂点処理プログラム(頂点シェーダプログラム、第1のシェーダプログラム)に従って、頂点の移動処理や、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、あるいは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。
【0051】
ピクセル処理部124(ピクセルシェーダ)はピクセル処理を行う。具体的には、ラスタライズ後に、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(ピクセルシェーダによるシェーディング、フラグメント処理)を行う。
【0052】
ピクセル処理では、ピクセル処理プログラム(ピクセルシェーダプログラム、第2のシェーダプログラム)に従って、テクスチャ記憶部175からのテクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ174に出力(描画)する。即ち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。
【0053】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現できる。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【0054】
また画像生成部120は、αブレンディング処理、テクスチャマッピング処理、シェーディング処理等を行う。
【0055】
αブレンディング処理(α合成処理)は、α値(A値)に基づいて行う処理であり、通常αブレンディング、加算αブレンディング或いは減算αブレンディングなどがある。なおα値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、半透明度(透明度、不透明度と等価)情報、マスク情報、或いはバンプ情報などとして使用できる。
【0056】
テクスチャマッピング処理(テクスチャフェッチ・テクスチャサンプリング処理)は、テクスチャ記憶部175に記憶されるテクスチャ(テクセル値)をオブジェクトにマッピングする処理である。具体的には、オブジェクト(プリミティブ面)の頂点等に設定(付与)されるテクスチャ座標等を用いてテクスチャ記憶部175からテクスチャ(色、α値などの表面プロパティ)を読み出す。そして、2次元の画像又はパターンであるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理やバイリニア補間(広義にはテクセル補間)などを行う。
【0057】
シェーディング処理(ライティング処理、陰影処理)は、照明モデル等に基づいて行われる。具体的にはこのシェーディング処理は、光源情報(光源ベクトル、光源色、明るさ、光源タイプ等)、仮想カメラ(視点)の視線ベクトル、オブジェクト(ポリゴン、半透明ポリゴン)の法線ベクトル、オブジェクトのマテリアル(色、材質)などを用いて行われる。なお照明モデルとしては、アンビエント光とディフューズ光だけを考慮したランバードの拡散照明モデルや、アンビエント光、ディフューズ光に加えてスペキュラ光も考慮するフォンの照明モデルやブリン(フォン・ブリン)の照明モデルなどがある。
【0058】
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
【0059】
そして本実施形態では、頭髪オブジェクト(毛オブジェクト)は、頭髪画像用サブオブジェクト(毛画像用サブオブジェクト)と、頭髪(毛)のシェーディング用サブオブジェクトとにより構成される。また頭髪画像用サブオブジェクトは、頭髪テクスチャ(毛テクスチャ)がマッピングされた複数のポリゴン(プリミティブ面)により形成される。そしてオブジェクト空間設定部104は、この頭髪オブジェクトが頭部オブジェクト(毛が生える対象となるオブジェクト)に設定(結合)されたモデルオブジェクトを、オブジェクト空間に配置設定する処理を行う。そして画像生成部120は、シェーディング用サブオブジェクトに対してシェーディング処理を行いながら頭髪オブジェクトの描画処理を行って、モデルオブジェクトの頭髪画像(毛画像)を生成する。
【0060】
ここで頭髪画像用サブオブジェクトにマッピングされる頭髪テクスチャは、頭髪の基本色(例えば黒)を表すためのテクスチャである。この頭髪テクスチャでは、例えば頭髪画像用サブオブジェクトの中心線(基準線)に対応するテクセルの色が黒色(ほぼ黒色)に設定される。
【0061】
頭髪画像用サブオブジェクト(頭髪形状用サブオブジェクト)は、頭髪の基本形状を表すためのサブオブジェクトであり、複数のポリゴンにより構成される。例えば頭髪画像用サブオブジェクトは、中心線(基準線)から放射状に配置設定される複数のポリゴン(複数のパーツオブジェクト)により構成される。例えば中心線をその一辺(共通辺)とし、その面の法線方向が異なる複数のポリゴンにより構成される。なお頭髪画像用サブオブジェクトを形成するポリゴンの中には、中心線が共通辺とならないポリゴンが存在してもよい。
【0062】
シェーディング用サブオブジェクト(質感表現用サブオブジェクト)は、頭髪オブジェクトのシェーディング処理用(ライティング処理用)に設けられるサブオブジェクトであり、頭髪の質感を表現するためのサブオブジェクトである。このシェーディング用サブオブジェクトには、例えば頭髪の質感表現用のテクスチャ(RGB色のテクスチャ)や、頭髪のハイライト(艶)を表現するためのスペキュラマッピング用のテクスチャ(グレースケールのテクスチャ)がマッピングされる。
【0063】
例えば頭髪の質感表現用のテクスチャでは、頭髪の白い部分や頭髪の輪郭でのふさふさ感(黒いもや)が表現される。これらの表現は例えばα値を用いたαブレンディング処理などで実現できる。またスペキュラマッピング用テクスチャ(スペキュラ用テクスチャ)では、例えばハイライトが表示される領域が白色に設定され、ハイライトが表示されない領域が黒色に設定される。また弱いハイライトが表示される領域はグレー色に設定される。
【0064】
また画像生成部120は、シェーディング用サブオブジェクトに対してはシェーディング処理を行いながら描画処理を行う一方で、頭髪画像用サブオブジェクトについてはコンスタントシェーディングにより描画処理を行う。ここでコンスタントシェーディングは、フォンやブリンやランバードなどの照明モデルを用いない描画処理(光源計算を行わない描画処理)である。
【0065】
また画像生成部120は、仮想カメラの視線方向(視線ベクトル)と頭髪オブジェクトの各ポリゴンの法線方向(法線ベクトル)とのなす角度(内積)に応じて、各ポリゴンの半透明処理を行う。例えば画像生成部120は、頭髪画像用サブオブジェクトを形成する複数のポリゴンの各ポリゴンの法線方向と、仮想カメラの視線方向とのなす角度が90度に近づくにつれて、各ポリゴンを透明に近づける半透明処理を行う。或いは、頭髪オブジェクトが、頭髪画像用サブオブジェクトに交差する交差サブオブジェクトを更に有する場合には、交差サブオブジェクトを形成する交差ポリゴンの法線方向と、仮想カメラの視線方向とのなす角度が90度に近づくにつれて、各交差ポリゴンを透明に近づける半透明処理を行う。
【0066】
これらの半透明処理は、ポリゴン又は交差ポリゴンの頂点や面に設定されたα値を用いて実現できる。この場合には、例えば仮想カメラの視線ベクトルと、ポリゴン又は交差ポリゴンの法線ベクトルの内積を求め、この内積に基づいてポリゴン又は交差ポリゴンのα値を設定すればよい。
【0067】
シェーディング用サブオブジェクトは、頭髪画像用サブオブジェクトの少なくとも中心を内包するように配置設定される。例えばシェーディング用サブオブジェクトは、頭髪画像用サブオブジェクトを覆う形状のオブジェクトであり、例えば球形状(略球形状を含む)のオブジェクトである。シェーディング用サブオブジェクトの形状は、キャラクタの頭髪の形状等に応じて、変更することができる。
【0068】
またオブジェクト空間設定部104は、頭髪オブジェクトと頭部オブジェクトとの間にカバーオブジェクトが設定されたモデルオブジェクトを、オブジェクト空間に配置設定する処理を行う。この頭髪オブジェクトのカバーオブジェクトは、外側からキャラクタの頭部を見た時に、頭髪画像用サブオブジェクト等の隙間領域から、キャラクタの頭部の表面が見えてしまう事態を防止するためのオブジェクトであり、例えばその色が黒色に設定されている。そしてカバーオブジェクトは、キャラクタの頭部オブジェクトの形状(頭髪が生える部分の形状)に応じた形状にすることができる。
【0069】
またオブジェクト空間設定部104は、頭部オブジェクトに対するめり込み部分がカリング(削除)された頭髪オブジェクトが、頭部オブジェクトに対して設定されたモデルオブジェクトを、オブジェクト空間に配置設定する処理を行う。即ち、頭部オブジェクトに対して結合する側の形状が、頭部オブジェクトの形状に適合するような形状になるように、頭髪オブジェクトのカリング処理を行う。こうすることで、頭部オブジェクトに対してめり込む部分が無駄なポリゴンとして描画されてしまう事態を防止できる。
【0070】
またオブジェクト空間設定部104は、複数の頭髪オブジェクトが、頭部オブジェクトに対して設定されたモデルオブジェクトを、オブジェクト空間に配置設定する処理を行ってもよい。即ち頭部オブジェクトの複数の場所の各場所に、複数の頭髪オブジェクトのうちの対応する頭髪オブジェクトを設定する。こうすることで、例えばおさげの髪型やお団子頭の髪型などの多様な髪型を表現できる。
【0071】
2.本実施形態の手法
2.1 頭髪画像の生成
図2に本実施形態の比較例となる頭髪画像の生成手法を示す。この比較例では、頭髪テクスチャがマッピングされた頭髪ポリゴンを、キャラクタの頭部オブジェクトに何枚も重ねて配置することで頭髪画像を生成する。この頭髪テクスチャでは、髪の毛の絵が描かれていない領域には、透明のα値(α=0)が設定されており、この頭髪テクスチャがマッピングされた複数の頭髪ポリゴン(短冊ポリゴン)を、いわゆる松ぼっくりのように頭部オブジェクトに重ねて配置する。
【0072】
しかしながら、この比較例の手法では、生成される頭髪画像が平面的になり、図3(A)、図3(B)に示すようなボリューム感のある頭髪(例えばアフロヘアー)を表現することが難しい。また、多数の頭髪ポリゴンを半透明処理で描画する必要があり、半透明合成の優先度を決めるために頭髪ポリゴンのソーティング処理を行う必要があるなどの問題がある。
【0073】
一方、図3(A)、図3(B)に示すようなキャラクタの頭髪画像を生成する場合には、頭髪と光源方向との位置関係に応じたハイライト表現(艶、テカリの表現)を行うことができれば、生成される画像のリアリティを増すことができる。
【0074】
そこで本実施形態では、後述する図7(A)に示すように、頭髪オブジェクトOBHAを、図4(A)〜図4(C)で説明するような頭髪画像用サブオブジェクトSBIと、図6(A)、図6(B)で説明するようなシェーディング用サブオブジェクトSBSにより構成する。そして図7(B)に示すようなキャラクタ(モデルオブジェクト)の頭部オブジェクトOBHDに対して、この頭髪オブジェクトOBHAを設定(結合、かぶせる)することで、キャラクタの頭髪を表現する。
【0075】
具体的には、図4(A)に示すような複数のポリゴンPL1、PL2、PL3により形成される頭髪画像用サブオブジェクトSBIを用意する。図4(A)では、頭髪画像用サブオブジェクトSBIは、中心線LCから放射状に配置設定される複数のポリゴンPL1、PL2、PL3により形成される。これらのポリゴンPL1、PL2、PL3は中心線LCを共通辺としている。なお、頭髪画像用サブオブジェクトSBIを形成するポリゴンの枚数は任意である。
【0076】
また図4(B)に示すような頭髪テクスチャTEXを用意する。この頭髪テクスチャTEXでは、A1に示すように、その中心領域のテクセルの色は黒色等の髪の毛の色に設定されている。またA2に示すように、その境界付近のパターン形状は、例えばアフロヘアーの縮れ毛等の髪型の特徴を表すパターン形状になっている。またA3に示すように、頭髪画像用サブオブジェクトSBIの中心線LCに対応するテクセルの色が、黒色等の頭髪の色に設定されている。
【0077】
そして図4(C)に示すように、頭髪画像用サブオブジェクトSBIを形成する各ポリゴンに対して、図4(B)の頭髪テクスチャTEXをマッピングする。
【0078】
このようにすれば、様々な視線方向の仮想カメラから見た場合にも、あたかもボリューム感のある頭髪(髪の毛)が存在しているかのように見える画像を生成できる。また図4(B)のA3に示すように中心線に対応するテクセルを、黒色等の頭髪の色に設定すれば、図4(C)に示すように、ポリゴンPL1、PL2、PL3の境界が黒色に塗りつぶされて目立たなくなり、不自然さのない頭髪画像を生成できるようになる。
【0079】
なお頭髪画像用サブオブジェクトSBIの形状は図4(A)には限定されず、図5(A)、図5(B)に示すように様々な形状を採用できる。例えば図5(A)では3枚のポリゴンが中心線から放射状に配置され、図5(B)では6枚のポリゴンが中心線から放射状に配置されている。このように頭髪画像用サブオブジェクトSBIの中心線から放射状に配置されるポリゴンの枚数は任意である。
【0080】
また図4(A)では、中心線LCから第1の方向にポリゴンPL1が配置され、第2の方向にポリゴンPL2が配置され、第3の方向にポリゴンPL3が配置されるというように、各方向(各放射方向)に対して1枚のポリゴンだけが配置されているが、本実施形態はこれに限定されない。例えば後述する図13等に示すように、各方向に複数枚のポリゴンを配置してもよい。
【0081】
また本実施形態では、図6(A)に示すようなシェーディング用サブオブジェクトSBSを用意する。
【0082】
シェーディング用サブオブジェクトSBSは、髪の毛のパターンや艶などの頭髪の質感を表現するためのオブジェクトである。そして図4(C)の頭髪画像用サブオブジェクトSBIではシェーディングがコンスタントに設定され、フォンやブリンやランバードなどの照明モデルに基づくライティング処理が行われない設定になっている。一方、図6(A)のシェーディング用サブオブジェクトSBSでは、頭髪の艶(ハイライト)を表現するために、フォンやブリンやランバードなどの照明モデルに基づくライティング処理が行われる設定になっている。またシェーディング用サブオブジェクトSBSは、例えば球形状(略球形状)になっている。
【0083】
本実施形態では、図6(A)のシェーディング用サブオブジェクトSBSに対して、例えば質感表現用の色テクスチャやハイライト表現用のスペキュラマップテクスチャをマッピングする。図6(B)に、これらの色テクスチャやスペキュラマップテクスチャが、シェーディング用サブオブジェクトSBSにマッピングされた画像の例を示す。
【0084】
図6(B)において、シェーディング用サブオブジェクトSBSにマッピングされる色テクスチャにより、頭髪の白い部分や髪のパターン形状などの質感が表現される。また、色テクスチャの輪郭は黒いもやがかかったような画像になっており、これにより頭髪の輪郭でのふさふさ感が表現される。
【0085】
またシェーディング用サブオブジェクトSBSにマッピングされるスペキュラマップテクスチャにより、光源による頭髪のハイライト(艶)が表現される。即ち、光源からの光が頭髪に照射されると、スペキュラマップテクスチャによりハイライト部分として設定される領域(例えば白色の領域)では、光源からの光が強く反射しているように見える画像が生成され、ハイライト表現が実現される。一方、非ハイライト部分として設定される領域では、光源からの光の反射表現が行われない。
【0086】
このようにすれば、図4(C)の頭髪画像用サブオブジェクトSBIのシェーディングがコンスタントに設定されていても、シェーディング用サブオブジェクトSBSのスペキュラマップテクスチャを用いて、ハイライト表現等を実現できる。そして、頭髪画像用サブオブジェクトSBIのシェーディングをコンスタントに設定すれば、頭髪画像用サブオブジェクトSBIを用いた半透明合成処理を行った場合に、描画順番を並び替えるためのソーティング処理等を行う必要がなくなり、処理を簡素化できる。
【0087】
図7(A)に示すように、頭髪オブジェクトOBHAは、図4(C)の頭髪画像用サブオブジェクトSBIと図6(A)のシェーディング用サブオブジェクトSBSにより構成される。即ち、シェーディング用サブオブジェクトSBSが、頭髪画像用サブオブジェクトSBIの中心を内包するように配置設定される。そして頭髪画像用サブオブジェクトSBIとシェーディング用サブオブジェクトSBSを重ねて描画することで、頭髪画像を生成する。具体的には、図7(B)に示すキャラクタの頭部オブジェクトOBHDに対して、頭髪画像用サブオブジェクトSBIとシェーディング用サブオブジェクトSBSにより構成される頭髪オブジェクトOBHAを設定して、描画処理を行う。例えば頭部オブジェクトOBHDに対して、頭髪画像用サブオブジェクトSBIとシェーディング用サブオブジェクトSBSを重ねて描画することで、頭髪画像を生成する。
【0088】
2.2 カリング処理、交差サブオブジェクト
さて、頭髪オブジェクトOBHAを頭部オブジェクトOBHDに設定して描画処理を行う際に、キャラクタの頭部オブジェクトOBHDにめり込む部分のポリゴンについても描画してしまうと、描画ポリゴン枚数が無駄に増えてしまい、描画処理負荷が増加する。
【0089】
そこで図8(A)に示すように頭髪オブジェクトOBHAのカリング処理を行ってもよい。即ち、頭部オブジェクトOBHDに対してめり込む部分をカリングして、頭部オブジェクトOBHDの表面の形状に適合した形状にする。更に図8(B)に示すように、頭髪オブジェクトOBHAの上側の部分も、髪型の形状に適合するようにカリングする。こうすることで、描画ポリゴン枚数が無駄に増えてしまい描画処理負荷が無駄に増加してしまう事態を防止できる。
【0090】
なお図8(A)、図8(B)に示すようなカリング処理(トリミング)を行う場合には、後述する図13に示すように、頭髪オブジェクトOBHAの中心線から各方向(各放射方向)に複数のポリゴンを連ねて配置することが望ましい。即ち、複数のポリゴンの連結を、頭髪オブジェクトOBHAの中心線から放射状に配置する。こうすれば、連結されるポリゴンの枚数を増やすことで、カリング時での頭髪オブジェクトOBHAの外形形状を、滑らかな形状にすることが可能になる。
【0091】
また図9では、頭髪オブジェクトOBHAに対して、頭髪画像用サブオブジェクトSBIに交差(直交等)する交差サブオブジェクトSBCが更に設けられている。このような交差サブオブジェクトSBCを設ければ、例えば上方向等から頭部を見た場合に、隙間領域等が表示されて、不自然な画像が生成されてしまう事態を防止できる。また、交差サブオブジェクトSBCを設けることで、例えば頭髪のボリューム感等の表現も向上できる。なお図9では、1個の交差サブオブジェクトSBCを設ける場合について示しているが、複数個の交差サブオブジェクトSBCを設けてもよい。
【0092】
また交差サブオブジェクトSBCは、例えば複数の交差ポリゴンにより形成できる。このようにすれば、例えば図9のような円形状(略円形状)の交差サブオブジェクトSBCも表現できるようになる。また、交差サブオブジェクトSBCを形成する交差ポリゴンは、例えば頭髪画像用サブオブジェクトSBIを形成するポリゴンの頂点を利用して形成することが望ましい。即ち頭髪画像用サブオブジェクトSBIを形成するポリゴンの頂点を利用して、交差サブオブジェクトSBCの各交差ポリゴンを形成する。このようにすれば、頂点データ量の節約等を図れる。
【0093】
また図10では、頭髪オブジェクトOBHAと頭部オブジェクトOBHDとの間に、カバーオブジェクトOBCVが設けられている。即ち、頭髪オブジェクトOBHAの下側に、頭部オブジェクトOBHDをカバーするためのカバーオブジェクトOBCVが設けられている。そして、このカバーオブジェクトOBCVは、例えば黒色(髪の毛の色)に設定されている。またカバーオブジェクトOBCVは、例えばおわん型形状になっており、その内側の形状が、頭部オブジェクトOBHDの形状に適合するような形状になっている。
【0094】
このようなカバーオブジェクトOBCVを設けて、頭部オブジェクトOBHDの上部を覆うようにすれば、頭髪オブジェクトOBHAの隙間等から、頭部オブジェクトOBHDの表面の地色等が外部に見えてしまう事態を防止できる。
【0095】
なお図10では、頭部オブジェクトに対して1つの頭髪オブジェクトを設定する場合について示しているが、頭部オブジェクトに対して複数の頭髪オブジェクトを設定してもよい。例えば図10のような頭髪オブジェクトを頭部オブジェクトに設定すると共に、おさげを表す頭髪オブジェクトやお団子頭を表す頭髪オブジェクトを更に設定する。例えばおさげの髪型の場合は、頭部オブジェクトの左右に細長い2つの頭髪オブジェクトを設ければよい。また、お団子頭の髪型の場合には、お団子頭の形状の1又は複数の頭髪オブジェクトを、頭部オブジェクトの対応する場所に設ければよい。
【0096】
2.3 半透明処理
図4(C)に示すような形状の頭髪画像用サブオブジェクトSBIを用いると、仮想カメラの視線方向との位置関係によっては、頭髪画像用サブオブジェクトSBIを形成するポリゴンPL1〜PL3のエッジの部分が目立って見えてしまう可能性がある。
【0097】
そこで本実施形態では、仮想カメラの視線方向とポリゴンの法線方向との関係に応じた半透明処理を行うようにしている。例えば図11(A)、図11(B)に示すように、頭髪画像用サブオブジェクトSBIを形成するPL1〜PL3の各ポリゴンの法線方向N1〜N3と仮想カメラVCの視線方向DVとのなす角度が90度に近づくにつれて、各ポリゴンを透明に近づける半透明処理を行う。例えば、N1〜N3の各法線方向と視線方向DVとのなす角度が90度に近づくにつれて、対応するポリゴンのα値を変化させて、その透明度を高くする。
【0098】
例えば図11(A)では、ポリゴンPL1の法線方向N1と仮想カメラVCの視線方向DVとのなす角度が90度になっているため、ポリゴンPL1を透明にする。一方、ポリゴンPL2、PL3の法線方向N2、N3と視線方向DVとのなす角度は90度ではないため、これらのポリゴンPL2、PL3は不透明(半透明)にする。
【0099】
また図11(B)では、ポリゴンPL2の法線方向N2と視線方向DVとのなす角度が90度になっているため、ポリゴンPL2を透明にする。一方、ポリゴンPL1、PL3の法線方向N1、N3と視線方向DVとのなす角度は90度ではないため、これらのポリゴンPL1、PL3は不透明(半透明)にする。
【0100】
このようにすれば、例えば図11(A)においてポリゴンPL1のエッジが目立って見えてしまったり、図11(B)においてポリゴンPL2のエッジが目立って見えてしまう事態を防止できる。従って、図4(C)に示すような形状の頭髪画像用サブオブジェクトSBIを用いた場合に、ポリゴンのエッジ部分等の不自然な画像が生成されるのを防止できる。
【0101】
また、図9に示すように頭髪オブジェクトOBHAが交差サブオブジェクトSBCを有する場合にも、同様の手法を採用できる。即ち、この場合には、交差サブオブジェクトSBCを形成する交差ポリゴンの法線方向と仮想カメラの視線方向とのなす角度が90度に近づくにつれて、交差ポリゴンを透明に近づける半透明処理を行う。
【0102】
例えば図12(A)では、仮想カメラVCの視線方向DVと、交差サブオブジェクトSBCの交差ポリゴンPLCの法線方向NCとのなす角度は90度になっておらず、例えば0度になっている。従って、この場合には、交差ポリゴンPLCを不透明にする。一方、図12(B)では、視線方向DVと法線方向NCとのなす角度は90度になっている。従って、この場合には、交差ポリゴンPLCを透明にする。
【0103】
このようにすれば、例えば図12(B)においてポリゴンPLCのエッジが目立って見えてしまう事態を防止でき、不自然な画像が生成されてしまう事態を防止できる。
【0104】
2.4 オブジェクト例及び画像例
次に本実施形態の具体的なオブジェクト例及び画像例について説明する。図13は、頭髪画像用サブオブジェクトSBIの具体例である。図13の頭髪画像用サブオブジェクトSBIでは、中心線から10方向に複数のポリゴンが放射状に連なって配置されている。また図9で説明したようなカリング処理も行われている。更に頭髪画像用サブオブジェクトSBIの下方には、カバーオブジェクトOBCVが設けられている。
【0105】
図14は、図13に対して更に交差サブオブジェクトSBCを設けた例である。この交差サブオブジェクトSBCを形成する交差ポリゴンPLCは、頭髪画像用サブオブジェクトSBIを形成するポリゴンPLと、その頂点を共用している。即ちポリゴンPLの頂点を利用して交差ポリゴンPLCが形成される。これにより頂点データ数を節約できる。
【0106】
図15は、図14に対して更にシェーディング用サブオブジェクトSBSを設けた例である。図15に示すようにシェーディング用サブオブジェクトSBSは、頭髪画像用サブオブジェクトSBIを覆うように設けられる。なお図15では、頭髪画像用サブオブジェクトSBIの一部がシェーディング用サブオブジェクトSBSからはみ出しているが、この部分には頭髪の画像が描かれないため、不自然な画像にはならない。
【0107】
図16は、頭髪画像用サブオブジェクトSBIを用いて生成された画像の例である。図16では、シェーディング用サブオブジェクトSBSについては用いられていないため、頭髪のハイライト等の質感は表現されていない。
【0108】
図17は、シェーディング用サブオブジェクトSBSを用いて生成された画像の例である。図17では、シェーディング用サブオブジェクトSBSにマッピングされる色テクスチャによる質感表現や、スペキュラマップテクスチャによるハイライト表現等が実現されている。
【0109】
図18は、頭髪画像用サブオブジェクトSBIとシェーディング用サブオブジェクトSBSの両方を用いて生成された画像(SBIとSBSの合成画像)の例である。図18に示すようにサブオブジェクトSBIとSBSの両方を用いることで、よりリアルで自然な頭髪画像の生成に成功している。
【0110】
3.処理例
次に本実施形態の処理例について図19、図20のフローチャートを用いて説明する。図19は画像生成システムの全体的な処理の例を表すフローチャートである。
【0111】
まず、モデルオブジェクトなどの複数のオブジェクトをオブジェクト空間に配置設定するオブジェクト空間設定処理を行う(ステップS1)。そして、モデルオブジェクトなどの移動体をオブジェクト空間内で移動させる移動処理や、モデルオブジェクトの動きを表現するモーション処理などを行う(ステップS2、S3)。具体的には、操作部からの操作データ等に基づいてモデルオブジェクトを移動させる移動処理を行ったり、モデルオブジェクトのスケルトンを構成する各骨を、モーションデータに基づいて動かすモーション処理を行う。
【0112】
次に頂点シェーダプログラムによる頂点シェーダ処理を行う(ステップS4)。この頂点シェーダ処理(頂点処理)では、頂点単位での座標変換処理(ローカル座標系からワールド座標系への変換等)、頂点単位での陰影処理(シェーディング処理)、頂点単位での光源処理(ライティング処理)、テクスチャ座標の演算処理などが行われる。例えばモーション処理後のモデルオブジェクトの頂点位置を求める処理を、この頂点シェーダ処理により実現してもよい。そして、この頂点シェーダ処理により得られた頂点座標、視線ベクトル、光源ベクトル、法線ベクトル等は、出力レジスタに格納され、ピクセルシェーダ処理に渡される。
【0113】
次に、ピクセルシェーダプログラムによるピクセルシェーダ処理を開始する(ステップS5)。このピクセルシェーダ処理では、ラスタライズ後にピクセル単位の様々な処理が行われる。具体的には、ピクセル単位での陰影処理(シェーディング処理)、テクスチャマッピング処理、半透明処理などが行われる。これにより、表示部に表示される最終的な画像(ゲーム画像)が生成される。
【0114】
図20は、頭髪オブジェクトの描画処理についてのフローチャートである。
【0115】
まず頭髪オブジェクトが頭部オブジェクトに設定されたモデルオブジェクトをオブジェクト空間に配置設定する(ステップS11)。そしてモデルオブジェクトの移動処理、モーション処理を行う(ステップS12)。
【0116】
次に、図11(A)〜図12(B)で説明したように、仮想カメラの視線方向と頭髪オブジェクトの各ポリゴン、各交差ポリゴンの法線方向とのなす角度に応じて、各ポリゴン、各交差ポリゴンのα値を設定する(ステップS13)。そして、設定されたα値を用いた半透明処理等を行いながら、モデルオブジェクトの描画処理を行う(ステップS14)。
【0117】
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語(プリミティブ面等)と共に記載された用語(ポリゴン等)は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また、オブジェクトの配置設定処理、頭髪画像の生成処理、半透明処理等も本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。また本発明は種々のゲームに適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレイヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
【符号の説明】
【0118】
SBI 頭髪画像用サブオブジェクト、PL1〜PL3 ポリゴン、TEX テクスチャ、
SBS シェーディング用サブオブジェクト、OBHA 頭髪オブジェクト、
OBHD 頭部オブジェクト、SBC 交差サブオブジェクト、
OBCV カバーオブジェクト、OBHD 頭部オブジェクト、
100 処理部、102 ゲーム演算部、104 オブジェクト空間設定部、
106 移動処理部、107 モーション処理部、108 仮想カメラ制御部、
120 画像生成部、122 頂点処理部、124 ピクセル処理部、
130 音生成部、160 操作部、170 記憶部、
172 オブジェクトデータ記憶部、173 モーションデータ記憶部、
174 モデルデータ記憶部、175 テクスチャ記憶部、176 描画バッファ、
180 情報記憶媒体、190 表示部、192 音出力部、194 補助記憶装置、
196 通信部

【特許請求の範囲】
【請求項1】
オブジェクト空間にオブジェクトを配置設定する処理を行うオブジェクト空間設定部と、
前記オブジェクトの描画処理を行って、前記オブジェクト空間において仮想カメラから見える画像を生成する画像生成部として、
コンピュータを機能させ、
前記オブジェクト空間設定部は、
頭髪テクスチャがマッピングされた複数のポリゴンにより形成される頭髪画像用サブオブジェクトと頭髪のシェーディング用サブオブジェクトとにより構成される頭髪オブジェクトが、頭部オブジェクトに対して設定されたモデルオブジェクトを、前記オブジェクト空間に配置設定する処理を行い、
前記画像生成部は、
前記シェーディング用サブオブジェクトに対してシェーディング処理を行いながら前記頭髪オブジェクトの描画処理を行って、前記モデルオブジェクトの頭髪画像を生成することを特徴とするプログラム。
【請求項2】
請求項1において、
前記画像生成部は、
前記頭髪画像用サブオブジェクトについてはコンスタントシェーディングにより描画処理を行うことを特徴とするプログラム。
【請求項3】
請求項1又は2において、
前記頭髪画像用サブオブジェクトは、中心線から放射状に配置設定される複数のポリゴンにより形成されることを特徴とするプログラム。
【請求項4】
請求項3において、
前記頭髪画像用サブオブジェクトにマッピングされる前記頭髪テクスチャは、前記中心線に対応するテクセルの色が頭髪の色に設定されることを特徴とするプログラム。
【請求項5】
請求項3又は4において、
前記画像生成部は、
前記頭髪画像用サブオブジェクトを形成する前記複数のポリゴンの各ポリゴンの法線方向と前記仮想カメラの視線方向とのなす角度が90度に近づくにつれて、前記各ポリゴンを透明に近づける半透明処理を行うことを特徴とするプログラム。
【請求項6】
請求項3乃至5のいずれかにおいて、
前記頭髪オブジェクトは、前記頭髪画像用サブオブジェクトに交差する交差サブオブジェクトを更に有することを特徴とするプログラム。
【請求項7】
請求項6において、
前記画像生成部は、
前記交差サブオブジェクトを形成する交差ポリゴンの法線方向と前記仮想カメラの視線方向とのなす角度が90度に近づくにつれて、前記交差ポリゴンを透明に近づける半透明処理を行うことを特徴とするプログラム。
【請求項8】
請求項1乃至7のいずれかにおいて、
前記シェーディング用サブオブジェクトは、前記頭髪画像用サブオブジェクトの中心を内包するように配置設定されるオブジェクトであることを特徴とするプログラム。
【請求項9】
請求項1乃至8のいずれかにおいて、
前記オブジェクト空間設定部は、
前記頭髪オブジェクトと前記頭部オブジェクトとの間に、前記頭部オブジェクトのカバーオブジェクトが設定された前記モデルオブジェクトを、前記オブジェクト空間に配置設定する処理を行うことを特徴とするプログラム。
【請求項10】
請求項1乃至9のいずれかにおいて、
前記オブジェクト空間設定部は、
前記頭部オブジェクトに対するめり込み部分がカリングされた前記頭髪オブジェクトが、前記頭部オブジェクトに対して設定された前記モデルオブジェクトを、前記オブジェクト空間に配置設定する処理を行うことを特徴とするプログラム。
【請求項11】
請求項1乃至10のいずれかにおいて、
前記オブジェクト空間設定部は、
複数の前記頭髪オブジェクトが、前記頭部オブジェクトに対して設定された前記モデルオブジェクトを、前記オブジェクト空間に配置設定する処理を行うことを特徴とするプログラム。
【請求項12】
コンピュータ読み取り可能な情報記憶媒体であって、請求項1乃至11のいずれかに記載のプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項13】
オブジェクト空間にオブジェクトを配置設定する処理を行うオブジェクト空間設定部と、
前記オブジェクトの描画処理を行って、前記オブジェクト空間において仮想カメラから見える画像を生成する画像生成部とを含み、
前記オブジェクト空間設定部は、
頭髪テクスチャがマッピングされた複数のポリゴンにより形成される頭髪画像用サブオブジェクトと頭髪のシェーディング用サブオブジェクトとにより構成される頭髪オブジェクトが、頭部オブジェクトに対して設定されたモデルオブジェクトを、前記オブジェクト空間に配置設定する処理を行い、
前記画像生成部は、
前記シェーディング用サブオブジェクトに対してシェーディング処理を行いながら前記頭髪オブジェクトの描画処理を行って、前記モデルオブジェクトの頭髪画像を生成することを特徴とする画像生成システム。

【図1】
image rotate

【図2】
image rotate

【図5】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図19】
image rotate

【図20】
image rotate

【図3】
image rotate

【図4】
image rotate

【図6】
image rotate

【図7】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate


【公開番号】特開2011−95936(P2011−95936A)
【公開日】平成23年5月12日(2011.5.12)
【国際特許分類】
【出願番号】特願2009−248307(P2009−248307)
【出願日】平成21年10月28日(2009.10.28)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】