(57)【要約】【課題】色変化イベントにおける描画を簡易に行う。【解決手段】仮想３次元空間内のモデルを投影面上の２次元画像として描画する画像処理装置の制御プログラムであって、前記画像処理装置を構成するコンピュータを、仮想３次元空間内におけるキャラクタモデルに対する色変化イベントの発生位置、作用範囲および発生条件から、キャラクタモデルの各所に対応する各ボーンへの影響量を計算する影響量計算手段、算出された影響量を各ボーンの色変化イベントの影響度パラメータに設定する影響量設定手段、キャラクタモデルを構成する各ポリゴンの各頂点に対して、各頂点の各ボーンへの重みと当該ボーンの影響度パラメータとから当該頂点での頂点影響度パラメータを計算する頂点影響度パラメータ計算手段、キャラクタモデルを構成する各ポリゴンの各ピクセルに対して、各ピクセルにつき補間したピクセル影響度パラメータを計算するピクセル影響度パラメータ計算手段、算出されたピクセル影響度パラメータに応じた色値を当該ピクセルに出力する描画手段として機能させる。【選択図】図１
2010092378.tif 000002
【特許請求の範囲】
【請求項１】
仮想３次元空間内のモデルを投影面上の２次元画像として描画する画像処理装置の制御プログラムであって、
前記画像処理装置を構成するコンピュータを、
仮想３次元空間内におけるキャラクタモデルに対する色変化イベントの発生位置、作用範囲および発生条件から、キャラクタモデルの各所に対応する各ボーンへの影響量を計算する影響量計算手段、
算出された影響量を各ボーンの色変化イベントの影響度パラメータに設定する影響量設定手段、
キャラクタモデルを構成する各ポリゴンの各頂点に対して、各頂点の各ボーンへの重みと当該ボーンの影響度パラメータとから当該頂点での頂点影響度パラメータを計算する頂点影響度パラメータ計算手段、
キャラクタモデルを構成する各ポリゴンの各ピクセルに対して、各ピクセルにつき補間したピクセル影響度パラメータを計算するピクセル影響度パラメータ計算手段、
算出されたピクセル影響度パラメータに応じた色値を当該ピクセルに出力する描画手段
として機能させる画像処理プログラム。
【請求項２】
請求項１に記載の画像処理プログラムにおいて、
前記頂点影響度パラメータ計算手段は、各頂点の法線等の情報に基づいて頂点影響度パラメータに補正を行う
画像処理プログラム。
【請求項３】
請求項１または２のいずれか一項に記載の画像処理プログラムにおいて、
前記ピクセル影響度パラメータ計算手段は、各ピクセルにつき補間したピクセル影響度パラメータにノイズテクスチャから読み出した乱数値を加える
画像処理プログラム。
【請求項４】
請求項１乃至３のいずれか一項に記載の画像処理プログラムにおいて、
前記描画手段は、算出されたピクセル影響度パラメータが所定の閾値を超えた場合にピクセル影響度パラメータに応じた色値を当該ピクセルに出力する
画像処理プログラム。
【請求項５】
請求項１乃至４のいずれか一項に記載の画像処理プログラムにおいて、
前記頂点影響度パラメータ計算手段は各ポリゴンの各頂点に対する処理をバーテックスシェーダにより行い、
前記ピクセル影響度パラメータ計算手段および前記描画手段は、各ポリゴンの各ピクセルに対する処理をピクセルシェーダにより行う
画像処理プログラム。
【請求項６】
仮想３次元空間内のモデルを投影面上の２次元画像として描画する画像処理装置であって、
仮想３次元空間内におけるキャラクタモデルに対する色変化イベントの発生位置、作用範囲および発生条件から、キャラクタモデルの各所に対応する各ボーンへの影響量を計算する影響量計算手段と、
算出された影響量を各ボーンの色変化イベントの影響度パラメータに設定する影響量設定手段と、
キャラクタモデルを構成する各ポリゴンの各頂点に対して、各頂点の各ボーンへの重みと当該ボーンの影響度パラメータとから当該頂点での頂点影響度パラメータを計算する頂点影響度パラメータ計算手段と、
キャラクタモデルを構成する各ポリゴンの各ピクセルに対して、各ピクセルにつき補間したピクセル影響度パラメータを計算するピクセル影響度パラメータ計算手段と、
算出されたピクセル影響度パラメータに応じた色値を当該ピクセルに出力する描画手段と
を備えたことを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想３次元空間内のモデルを投影面上の２次元画像として描画するＣＧ（Computer Graphics）技術に関する。
【背景技術】
【０００２】
ビデオゲーム等においては、攻撃を受けた側あるいは攻撃を行った側の体の部位から流血したりアザができたりといったダメージ状態を描画する場合がある。
【０００３】
従来、このような場合、攻撃を受けあるいは攻撃を行った位置とダメージの及ぶ範囲とをキャラクタのオブジェクト（複数のポリゴンにより表現されるモデル）とは別に管理し、キャラクタのオブジェクトを描画する際にダメージ状態を併せて描画していた。
【０００４】
一方、特許文献１には、オブジェクトのモーションに合わせたしわ（皺）を表現した画像を生成する技術が開示されている。
【特許文献１】特開２００７−８７０３１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来の、攻撃を受けあるいは攻撃を行った位置とダメージの及ぶ範囲とをキャラクタのオブジェクトとは別に管理する手法にあっては、演算処理の負荷が高く、ビデオゲーム装置等におけるリアルタイム処理には適していないという問題があった。また、ビデオゲーム装置の機種によっては、描画するポリゴンの頂点情報を取得することが困難なものもあり、ダメージの及ぶ範囲を計算する処理自体が困難であった。
【０００６】
一方、特許文献１に開示される手法は、関節の角度に応じて発生するしわの描画を対象としており、流血やアザ等のダメージ状態の描画には適用することができない。
【０００７】
なお、ダメージ状態の描画に限らず、例えば水たまりに踏み込んだ場合の泥はね等の描画を含む、モデル表面のピクセルカラーを変化させる色変化イベントにおける描画一般について同様の問題がある。
【０００８】
本発明は上記の従来の問題点に鑑み提案されたものであり、その目的とするところは、色変化イベントにおける描画を簡易に行うことのできる画像処理プログラムおよび画像処理装置を提供することにある。
【課題を解決するための手段】
【０００９】
上記の課題を解決するため、本発明にあっては、請求項１に記載されるように、仮想３次元空間内のモデルを投影面上の２次元画像として描画する画像処理装置の制御プログラムであって、前記画像処理装置を構成するコンピュータを、仮想３次元空間内におけるキャラクタモデルに対する色変化イベントの発生位置、作用範囲および発生条件から、キャラクタモデルの各所に対応する各ボーンへの影響量を計算する影響量計算手段、算出された影響量を各ボーンの色変化イベントの影響度パラメータに設定する影響量設定手段、キャラクタモデルを構成する各ポリゴンの各頂点に対して、各頂点の各ボーンへの重みと当該ボーンの影響度パラメータとから当該頂点での頂点影響度パラメータを計算する頂点影響度パラメータ計算手段、キャラクタモデルを構成する各ポリゴンの各ピクセルに対して、各ピクセルにつき補間したピクセル影響度パラメータを計算するピクセル影響度パラメータ計算手段、算出されたピクセル影響度パラメータに応じた色値を当該ピクセルに出力する描画手段として機能させる画像処理プログラムを要旨としている。
【００１０】
また、請求項２に記載されるように、請求項１に記載の画像処理プログラムにおいて、前記頂点影響度パラメータ計算手段は、各頂点の法線等の情報に基づいて頂点影響度パラメータに補正を行うようにすることができる。
【００１１】
また、請求項３に記載されるように、請求項１または２のいずれか一項に記載の画像処理プログラムにおいて、前記ピクセル影響度パラメータ計算手段は、各ピクセルにつき補間したピクセル影響度パラメータにノイズテクスチャから読み出した乱数値を加えるようにすることができる。
【００１２】
また、請求項４に記載されるように、請求項１乃至３のいずれか一項に記載の画像処理プログラムにおいて、前記描画手段は、算出されたピクセル影響度パラメータが所定の閾値を超えた場合にピクセル影響度パラメータに応じた色値を当該ピクセルに出力するようにすることができる。
【００１３】
また、請求項５に記載されるように、請求項１乃至４のいずれか一項に記載の画像処理プログラムにおいて、前記頂点影響度パラメータ計算手段は各ポリゴンの各頂点に対する処理をバーテックスシェーダにより行い、前記ピクセル影響度パラメータ計算手段および前記描画手段は、各ポリゴンの各ピクセルに対する処理をピクセルシェーダにより行うようにすることができる。
【００１４】
また、請求項６に記載されるように、仮想３次元空間内のモデルを投影面上の２次元画像として描画する画像処理装置であって、仮想３次元空間内におけるキャラクタモデルに対する色変化イベントの発生位置、作用範囲および発生条件から、キャラクタモデルの各所に対応する各ボーンへの影響量を計算する影響量計算手段と、算出された影響量を各ボーンの色変化イベントの影響度パラメータに設定する影響量設定手段と、キャラクタモデルを構成する各ポリゴンの各頂点に対して、各頂点の各ボーンへの重みと当該ボーンの影響度パラメータとから当該頂点での頂点影響度パラメータを計算する頂点影響度パラメータ計算手段と、キャラクタモデルを構成する各ポリゴンの各ピクセルに対して、各ピクセルにつき補間したピクセル影響度パラメータを計算するピクセル影響度パラメータ計算手段と、算出されたピクセル影響度パラメータに応じた色値を当該ピクセルに出力する描画手段とを備える画像処理装置として構成することができる。
【発明の効果】
【００１５】
本発明の画像処理プログラムおよび画像処理装置にあっては、キャラクタモデルに対して従前より設けられていた各頂点から各ボーンへの重みの仕組を利用しているため、色変化イベントにおける描画を簡易に行うことができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の好適な実施形態につき説明する。なお、以下の実施形態では、色変化イベントの描画として流血やアザ等のダメージ状態の描画を対象として説明するが、その他の色変化イベントにおける描画にも適用できることは言うまでもない。
【００１７】
＜構成＞
図１は本発明の一実施形態にかかる画像処理装置の構成例を示す図 である。
【００１８】
図１において、画像処理装置は、ゲームアプリケーション等の３Ｄ（3 Dimension）オブジェクトの描画命令を含む３Ｄアプリケーション１と、この３Ｄアプリケーション１から描画命令等を受け取るＯｐｅｎＧＬ、Ｄｉｒｅｃｔ３Ｄ等の３Ｄ−ＡＰＩ（Application Program Interface）２と、描画処理を実行するＧＰＵ（Graphics Processing Unit）３とを備えている。
【００１９】
ＧＰＵ３は、３Ｄ−ＡＰＩ２からＧＰＵコマンドおよびデータストリームを受け付けるＧＰＵフロントエンド部３１と、このＧＰＵフロントエンド部３１から３Ｄ頂点データを受け取って２Ｄスクリーン空間に投影した座標変換（行列の転置）等を行うプログラマブル頂点プロセッサ（ＶＳ：Vertex Processor）３２と、ＧＰＵフロントエンド部３１から与えられる頂点インデックスストリームとプログラマブル頂点プロセッサ３２で座標変換された頂点データとを組み立てる基本アセンブリ部３３とを備えている。プログラマブル頂点プロセッサ３２および基本アセンブリ部３３の部分は、バーテックスシェーダと呼ばれている。
【００２０】
また、ＧＰＵ３は、基本アセンブリ部３３で組み立てられた多角形、線および点のデータからラスタライズおよび補間を行うラスタライズ／補間部３４と、このラスタライズ／補間部３４からラスタライズ済のピクセル（フラグメント）データを受け取ってテクスチャマッピング等を行うプログラマブルピクセルプロセッサ（ＰＳ：Pixel Processor）３５と、ラスタライズ／補間部３４から与えられるピクセル位置ストリームとプログラマブルピクセルプロセッサ３５から与えられるテクスチャマッピング済のデータからラスタ演算を行うラスタ演算部３６と、ラスタ演算部３６により描画内容が書込・更新されるフレームバッファ３７とを備えている。フレームバッファ３７に書き込まれた内容は周期的に読み出されてビデオ信号に変換され、モニタ装置等によって表示される。ラスタライズ／補間部３４、プログラマブルピクセルプロセッサ３５およびラスタ演算部３６の部分は、ピクセルシェーダと呼ばれている。
【００２１】
また、処理に必要なデータがデータ保持部４に保持されている。主なデータとしては、キャラクタモデル、ボーン群、ノイズテクスチャ等である。
【００２２】
キャラクタモデルとは、人物等のゲームキャラクタの表面形状を特定するデータであり、複数のポリゴンから構成される。各ポリゴンにはポリゴンの輪郭を特定する複数の頂点（３次元の頂点座標）と、ベースとなる色、透明度等の属性が与えられている。また、各頂点には、各ボーンに対する重み（weight）が設定されている。ボーンは「骨」を意味するものであるが、ここでは長さを持った概念ではなく、骨格における代表的な位置（例えば「関節」）を定める点である。ボーンおよび重みはキャラクタモデルの描画を容易にするために導入されたものであり、キャラクタモデルを構成するポリゴンの各頂点はボーンの移動（平行移動、回転）に対して重みの値に応じて追従することとなり、各頂点を個別に移動させなくて済む。
【００２３】
図２はボーンと頂点との関係の例を示す図である。（ａ）に示すように、ポリゴンＰ１が頂点Ｖ１〜Ｖ１２で表され、ポリゴンＰ１の内部にボーンＢ１〜Ｂ３が設定されているものとする。なお、ポリゴンの内部にボーンが設定されている場合を例示しているが、ボーンはポリゴンの内部に存在する必要はない。
【００２４】
ここで、（ｂ）に示すように、ボーンＢ１をＢ１'の位置に移動し、ボーンＢ３をＢ３'の位置に移動したとすると、仮にボーンＢ１'、Ｂ２を基準にしてポリゴンの形を変えなかった場合はＰ１'となり、仮にボーンＢ２、Ｂ３'を基準にしてポリゴンの形を変えなかった場合はＰ１"となる。実際には、ポリゴンＰ１の各頂点Ｖ１〜Ｖ１２にはボーンＢ１〜Ｂ３への重みが設定されているため、（ｂ）におけるポリゴンＰ１'とポリゴンＰ１"が自然につながるように各頂点が移動し、（ｃ）に示すようにポリゴンＰ１の頂点が移動して変形する。逆に言えば、このような自然な変形をするように重みが設定される。
【００２５】
図１に戻り、ボーン群とは、上述したボーンの対応するポリゴン上の位置を特定するデータである。各ボーンには流血やアザ等のダメージの程度を示すダメージパラメータが設定される。ダメージ状態の描画に限らず、例えば水たまりに踏み込んだ場合の泥はね等の描画を含む、モデル表面のピクセルカラーを変化させる色変化イベントにおける描画一般について適用する場合、「ダメージパラメータ」は「影響度パラメータ」と読み替えることができる。
【００２６】
ノイズテクスチャとは、ポリゴンの各ピクセルに対応して乱数値が設定されたデータ構造体である。ノイズテクスチャからはテクスチャ座標（ＵＶ値）を指定することにより値の読み出しを行う。ノイズテクスチャは、流血やアザ等のダメージをベタ塗りで描画するのを避け、自然な表現とするために用いられる。
【００２７】
＜動作＞
図１に示した画像処理装置は、３Ｄアプリケーション１が主たる処理を行い、その過程で３Ｄ−ＡＰＩ２を介してＧＰＵ３に頂点およびピクセルに関する処理を行わせる。なお、３Ｄアプリケーション１はビデオゲーム等における全般の処理を担うが、以下では流血やアザ等のダメージの描画の部分のみについて説明する。また、処理は画面表示単位であるフレーム毎に行われるのが普通であるが、数フレーム毎に行う場合もある。
【００２８】
図３はダメージパラメータ付加処理の例を示すフローチャートである。
【００２９】
図３において、ダメージパラメータ付加処理を開始すると（ステップＳ１０１）、攻撃位置、作用範囲および攻撃条件から、各ボーンへの影響量を計算する（ステップＳ１０２）。ダメージ状態の描画に限らず、色変化イベントにおける描画一般について適用する場合、「攻撃位置、作用範囲および攻撃条件」は「色変化イベントの発生位置、作用範囲および発生条件」と読み替えることができる。
【００３０】
図４は攻撃位置と影響するボーンの関係の例を示す図であり、キャラクタモデルＭの攻撃位置Ａに攻撃が与えられたとすると、攻撃を受けた側なのか攻撃をした側なのか、攻撃の種類、攻撃の強さ等の攻撃条件に応じ、作用範囲における攻撃位置Ａからの距離に応じて、キャラクタモデルＭの各ボーンへの影響量が計算される。ここでは、攻撃位置Ａに最も近いボーンＢ２の影響量が最も大きくなる。なお、図４では攻撃を受けた側のキャラクタモデルＭのみを示しているが、攻撃を行った側のキャラクタモデルでも同様の処理が行われる。
【００３１】
図３に戻り、算出された影響量を各ボーンのダメージパラメータに設定し（ステップＳ１０３）、ダメージパラメータ付加処理を終了する（ステップＳ１０４）。
【００３２】
図５はダメージ描画処理の例を示すフローチャートである。
【００３３】
図５において、ダメージ描画処理を開始すると（ステップＳ２０１）、先ず、各ボーンのダメージパラメータをボーンと対応付けてバーテックスシェーダに転送する（ステップＳ２０２）。
【００３４】
次いで、キャラクタモデルを構成する各ポリゴンの各頂点に対して以下の処理を実施する（ステップＳ２０３）。この処理はバーテックスシェーダにより行われる。
【００３５】
すなわち、頂点の各ボーンへの重みとそのボーンのダメージパラメータとから、その頂点での頂点ダメージパラメータを計算する（ステップＳ２０４）。例えば、ある頂点においてボーンＢ１、Ｂ２、Ｂ３に対する重みｗ１、ｗ２、ｗ３が設定されており、ボーンＢ１、Ｂ２、Ｂ３のダメージパラメータがｄ１、ｄ２、ｄ３であるとすると、その頂点における頂点ダメージパラメータは
ｄ１×ｗ１＋ｄ２×ｗ２＋ｄ３×ｗ３
となる。
【００３６】
次いで、算出された頂点ダメージパラメータをその頂点の法線等の情報に基づいて補正する（ステップＳ２０５）。これは、視点（カメラ座標）から見たダメージ状況をより自然にするためである。
【００３７】
次いで、頂点座標からノイズテクスチャのテクスチャ座標を計算する（ステップＳ２０６）。頂点座標とテクスチャ座標の対応関係は、予め定められている。
【００３８】
キャラクタモデルを構成する各ポリゴンの全頂点につき処理を行った後に次の処理に移行する。
【００３９】
次いで、キャラクタモデルを構成する各ポリゴンの各ピクセルに対して以下の処理を実施する（ステップＳ２０７）。この処理はピクセルシェーダにより行われる。
【００４０】
すなわち、ピクセルにつき補間したピクセルダメージパラメータを計算する（ステップＳ２０８）。ピクセルについての値の補間は、ピクセルと頂点との位置関係に応じ、ピクセルシェーダにより自動的に行われる。
【００４１】
次いで、算出されたピクセルダメージパラメータにノイズテクスチャの値を加算する（ステップＳ２０９）。加えるノイズテクスチャの値は、頂点の処理（ステップＳ２０６）で計算したテクスチャ座標をピクセルにつき補間したテクスチャ座標でノイズテクスチャから読み出した値である。ノイズテクスチャの値を加えることで、ピクセルダメージパラメータの値が乱数的に上下することとなり、流血やアザ等のダメージ部分を自然な表現とすることができる。
【００４２】
次いで、ピクセルダメージパラメータが所定の閾値を超えたか否か判断する（ステップＳ２１０）。所定の閾値は視覚的な効果を考慮して予め設定される値である。
【００４３】
そして、ピクセルダメージパラメータが所定の閾値を超えた場合（ステップＳ２１０のＹｅｓ）、ピクセルダメージパラメータに基づいて算出した色値をピクセルの色としてフレームバッファ上に描画する（ステップＳ２１１）。例えば、ダメージが流血の場合、ピクセルダメージパラメータが小さい値の場合は少ない出血を表す色値とし、ピクセルダメージパラメータが大きい値の場合は多い出血を表す色値とする。ダメージがアザの場合、ピクセルダメージパラメータが小さい値の場合は薄いアザを表す色値とし、ピクセルダメージパラメータが大きい値の場合は濃いアザを表す色値とする。
【００４４】
また、ピクセルダメージパラメータが所定の閾値を超えない場合（ステップＳ２１０のＮｏ）、そのピクセルを描画しない（ステップＳ２１２）。
【００４５】
キャラクタモデルを構成する各ポリゴンの全ピクセルにつき処理した後にダメージ描画処理を終了する（ステップＳ２１３）。
【００４６】
図６はダメージの描画例を示す図であり、図４におけるキャラクタモデルＭの攻撃位置Ａに攻撃を受けた場合に対応した例である。図６において、キャラクタモデルＭには、モデルを構成するポリゴンのピクセルの描画に際し、流血やアザ等のダメージ部分Ｄが同時に描画される。
【００４７】
なお、ボーンのダメージパラメータの値を時間経過に沿って増減することで、流血やアザ等のダメージ状況を変化させることができる。
【００４８】
＜総括＞
以上説明したように、本実施形態によれば、キャラクタモデルに対して従前より設けられていた各頂点から各ボーンへの重みの仕組を利用しているため、流血やアザ等のダメージ状態をはじめとする色変化イベントにおける描画を簡易に行うことができる。
【００４９】
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。すなわち、具体例の詳細および添付の図面により本発明が限定されるものと解釈してはならない。
【図面の簡単な説明】
【００５０】
【図１】本発明の一実施形態にかかる画像処理装置の構成例を示す図 である。
【図２】ボーンと頂点との関係の例を示す図である。
【図３】ダメージパラメータ付加処理の例を示すフローチャートである。
【図４】攻撃位置と影響するボーンの関係の例を示す図である。
【図５】ダメージ描画処理の例を示すフローチャートである。
【図６】ダメージの描画例を示す図である。
【符号の説明】
【００５１】
１        ３Ｄアプリケーション
２        ３Ｄ−ＡＰＩ
３        ＧＰＵ
３１      ＧＰＵフロントエンド部
３２      プログラマブル頂点プロセッサ
３３      基本アセンブリ部
３４      ラスタライズ／補間部
３５      プログラマブルピクセルプロセッサ
３６      ラスタ演算部
３７      フレームバッファ
４        データ保持部
【図１】
2010092378.tif 000003
【図２】
2010092378.tif 000004
【図３】
2010092378.tif 000005
【図４】
2010092378.tif 000006
【図５】
2010092378.tif 000007
【図６】
2010092378.tif 000008