説明

画像処理プログラムおよび画像処理装置

【課題】色変化イベントにおける描画を簡易に行う。
【解決手段】仮想3次元空間内のモデルを投影面上の2次元画像として描画する画像処理装置の制御プログラムであって、前記画像処理装置を構成するコンピュータを、仮想3次元空間内におけるキャラクタモデルに対する色変化イベントの発生位置、作用範囲および発生条件から、キャラクタモデルの各所に対応する各ボーンへの影響量を計算する影響量計算手段、算出された影響量を各ボーンの色変化イベントの影響度パラメータに設定する影響量設定手段、キャラクタモデルを構成する各ポリゴンの各頂点に対して、各頂点の各ボーンへの重みと当該ボーンの影響度パラメータとから当該頂点での頂点影響度パラメータを計算する頂点影響度パラメータ計算手段、キャラクタモデルを構成する各ポリゴンの各ピクセルに対して、各ピクセルにつき補間したピクセル影響度パラメータを計算するピクセル影響度パラメータ計算手段、算出されたピクセル影響度パラメータに応じた色値を当該ピクセルに出力する描画手段として機能させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想3次元空間内のモデルを投影面上の2次元画像として描画するCG(Computer Graphics)技術に関する。
【背景技術】
【0002】
ビデオゲーム等においては、攻撃を受けた側あるいは攻撃を行った側の体の部位から流血したりアザができたりといったダメージ状態を描画する場合がある。
【0003】
従来、このような場合、攻撃を受けあるいは攻撃を行った位置とダメージの及ぶ範囲とをキャラクタのオブジェクト(複数のポリゴンにより表現されるモデル)とは別に管理し、キャラクタのオブジェクトを描画する際にダメージ状態を併せて描画していた。
【0004】
一方、特許文献1には、オブジェクトのモーションに合わせたしわ(皺)を表現した画像を生成する技術が開示されている。
【特許文献1】特開2007−87031号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
従来の、攻撃を受けあるいは攻撃を行った位置とダメージの及ぶ範囲とをキャラクタのオブジェクトとは別に管理する手法にあっては、演算処理の負荷が高く、ビデオゲーム装置等におけるリアルタイム処理には適していないという問題があった。また、ビデオゲーム装置の機種によっては、描画するポリゴンの頂点情報を取得することが困難なものもあり、ダメージの及ぶ範囲を計算する処理自体が困難であった。
【0006】
一方、特許文献1に開示される手法は、関節の角度に応じて発生するしわの描画を対象としており、流血やアザ等のダメージ状態の描画には適用することができない。
【0007】
なお、ダメージ状態の描画に限らず、例えば水たまりに踏み込んだ場合の泥はね等の描画を含む、モデル表面のピクセルカラーを変化させる色変化イベントにおける描画一般について同様の問題がある。
【0008】
本発明は上記の従来の問題点に鑑み提案されたものであり、その目的とするところは、色変化イベントにおける描画を簡易に行うことのできる画像処理プログラムおよび画像処理装置を提供することにある。
【課題を解決するための手段】
【0009】
上記の課題を解決するため、本発明にあっては、請求項1に記載されるように、仮想3次元空間内のモデルを投影面上の2次元画像として描画する画像処理装置の制御プログラムであって、前記画像処理装置を構成するコンピュータを、仮想3次元空間内におけるキャラクタモデルに対する色変化イベントの発生位置、作用範囲および発生条件から、キャラクタモデルの各所に対応する各ボーンへの影響量を計算する影響量計算手段、算出された影響量を各ボーンの色変化イベントの影響度パラメータに設定する影響量設定手段、キャラクタモデルを構成する各ポリゴンの各頂点に対して、各頂点の各ボーンへの重みと当該ボーンの影響度パラメータとから当該頂点での頂点影響度パラメータを計算する頂点影響度パラメータ計算手段、キャラクタモデルを構成する各ポリゴンの各ピクセルに対して、各ピクセルにつき補間したピクセル影響度パラメータを計算するピクセル影響度パラメータ計算手段、算出されたピクセル影響度パラメータに応じた色値を当該ピクセルに出力する描画手段として機能させる画像処理プログラムを要旨としている。
【0010】
また、請求項2に記載されるように、請求項1に記載の画像処理プログラムにおいて、前記頂点影響度パラメータ計算手段は、各頂点の法線等の情報に基づいて頂点影響度パラメータに補正を行うようにすることができる。
【0011】
また、請求項3に記載されるように、請求項1または2のいずれか一項に記載の画像処理プログラムにおいて、前記ピクセル影響度パラメータ計算手段は、各ピクセルにつき補間したピクセル影響度パラメータにノイズテクスチャから読み出した乱数値を加えるようにすることができる。
【0012】
また、請求項4に記載されるように、請求項1乃至3のいずれか一項に記載の画像処理プログラムにおいて、前記描画手段は、算出されたピクセル影響度パラメータが所定の閾値を超えた場合にピクセル影響度パラメータに応じた色値を当該ピクセルに出力するようにすることができる。
【0013】
また、請求項5に記載されるように、請求項1乃至4のいずれか一項に記載の画像処理プログラムにおいて、前記頂点影響度パラメータ計算手段は各ポリゴンの各頂点に対する処理をバーテックスシェーダにより行い、前記ピクセル影響度パラメータ計算手段および前記描画手段は、各ポリゴンの各ピクセルに対する処理をピクセルシェーダにより行うようにすることができる。
【0014】
また、請求項6に記載されるように、仮想3次元空間内のモデルを投影面上の2次元画像として描画する画像処理装置であって、仮想3次元空間内におけるキャラクタモデルに対する色変化イベントの発生位置、作用範囲および発生条件から、キャラクタモデルの各所に対応する各ボーンへの影響量を計算する影響量計算手段と、算出された影響量を各ボーンの色変化イベントの影響度パラメータに設定する影響量設定手段と、キャラクタモデルを構成する各ポリゴンの各頂点に対して、各頂点の各ボーンへの重みと当該ボーンの影響度パラメータとから当該頂点での頂点影響度パラメータを計算する頂点影響度パラメータ計算手段と、キャラクタモデルを構成する各ポリゴンの各ピクセルに対して、各ピクセルにつき補間したピクセル影響度パラメータを計算するピクセル影響度パラメータ計算手段と、算出されたピクセル影響度パラメータに応じた色値を当該ピクセルに出力する描画手段とを備える画像処理装置として構成することができる。
【発明の効果】
【0015】
本発明の画像処理プログラムおよび画像処理装置にあっては、キャラクタモデルに対して従前より設けられていた各頂点から各ボーンへの重みの仕組を利用しているため、色変化イベントにおける描画を簡易に行うことができる。
【発明を実施するための最良の形態】
【0016】
以下、本発明の好適な実施形態につき説明する。なお、以下の実施形態では、色変化イベントの描画として流血やアザ等のダメージ状態の描画を対象として説明するが、その他の色変化イベントにおける描画にも適用できることは言うまでもない。
【0017】
<構成>
図1は本発明の一実施形態にかかる画像処理装置の構成例を示す図 である。
【0018】
図1において、画像処理装置は、ゲームアプリケーション等の3D(3 Dimension)オブジェクトの描画命令を含む3Dアプリケーション1と、この3Dアプリケーション1から描画命令等を受け取るOpenGL、Direct3D等の3D−API(Application Program Interface)2と、描画処理を実行するGPU(Graphics Processing Unit)3とを備えている。
【0019】
GPU3は、3D−API2からGPUコマンドおよびデータストリームを受け付けるGPUフロントエンド部31と、このGPUフロントエンド部31から3D頂点データを受け取って2Dスクリーン空間に投影した座標変換(行列の転置)等を行うプログラマブル頂点プロセッサ(VS:Vertex Processor)32と、GPUフロントエンド部31から与えられる頂点インデックスストリームとプログラマブル頂点プロセッサ32で座標変換された頂点データとを組み立てる基本アセンブリ部33とを備えている。プログラマブル頂点プロセッサ32および基本アセンブリ部33の部分は、バーテックスシェーダと呼ばれている。
【0020】
また、GPU3は、基本アセンブリ部33で組み立てられた多角形、線および点のデータからラスタライズおよび補間を行うラスタライズ/補間部34と、このラスタライズ/補間部34からラスタライズ済のピクセル(フラグメント)データを受け取ってテクスチャマッピング等を行うプログラマブルピクセルプロセッサ(PS:Pixel Processor)35と、ラスタライズ/補間部34から与えられるピクセル位置ストリームとプログラマブルピクセルプロセッサ35から与えられるテクスチャマッピング済のデータからラスタ演算を行うラスタ演算部36と、ラスタ演算部36により描画内容が書込・更新されるフレームバッファ37とを備えている。フレームバッファ37に書き込まれた内容は周期的に読み出されてビデオ信号に変換され、モニタ装置等によって表示される。ラスタライズ/補間部34、プログラマブルピクセルプロセッサ35およびラスタ演算部36の部分は、ピクセルシェーダと呼ばれている。
【0021】
また、処理に必要なデータがデータ保持部4に保持されている。主なデータとしては、キャラクタモデル、ボーン群、ノイズテクスチャ等である。
【0022】
キャラクタモデルとは、人物等のゲームキャラクタの表面形状を特定するデータであり、複数のポリゴンから構成される。各ポリゴンにはポリゴンの輪郭を特定する複数の頂点(3次元の頂点座標)と、ベースとなる色、透明度等の属性が与えられている。また、各頂点には、各ボーンに対する重み(weight)が設定されている。ボーンは「骨」を意味するものであるが、ここでは長さを持った概念ではなく、骨格における代表的な位置(例えば「関節」)を定める点である。ボーンおよび重みはキャラクタモデルの描画を容易にするために導入されたものであり、キャラクタモデルを構成するポリゴンの各頂点はボーンの移動(平行移動、回転)に対して重みの値に応じて追従することとなり、各頂点を個別に移動させなくて済む。
【0023】
図2はボーンと頂点との関係の例を示す図である。(a)に示すように、ポリゴンP1が頂点V1〜V12で表され、ポリゴンP1の内部にボーンB1〜B3が設定されているものとする。なお、ポリゴンの内部にボーンが設定されている場合を例示しているが、ボーンはポリゴンの内部に存在する必要はない。
【0024】
ここで、(b)に示すように、ボーンB1をB1'の位置に移動し、ボーンB3をB3'の位置に移動したとすると、仮にボーンB1'、B2を基準にしてポリゴンの形を変えなかった場合はP1'となり、仮にボーンB2、B3'を基準にしてポリゴンの形を変えなかった場合はP1"となる。実際には、ポリゴンP1の各頂点V1〜V12にはボーンB1〜B3への重みが設定されているため、(b)におけるポリゴンP1'とポリゴンP1"が自然につながるように各頂点が移動し、(c)に示すようにポリゴンP1の頂点が移動して変形する。逆に言えば、このような自然な変形をするように重みが設定される。
【0025】
図1に戻り、ボーン群とは、上述したボーンの対応するポリゴン上の位置を特定するデータである。各ボーンには流血やアザ等のダメージの程度を示すダメージパラメータが設定される。ダメージ状態の描画に限らず、例えば水たまりに踏み込んだ場合の泥はね等の描画を含む、モデル表面のピクセルカラーを変化させる色変化イベントにおける描画一般について適用する場合、「ダメージパラメータ」は「影響度パラメータ」と読み替えることができる。
【0026】
ノイズテクスチャとは、ポリゴンの各ピクセルに対応して乱数値が設定されたデータ構造体である。ノイズテクスチャからはテクスチャ座標(UV値)を指定することにより値の読み出しを行う。ノイズテクスチャは、流血やアザ等のダメージをベタ塗りで描画するのを避け、自然な表現とするために用いられる。
【0027】
<動作>
図1に示した画像処理装置は、3Dアプリケーション1が主たる処理を行い、その過程で3D−API2を介してGPU3に頂点およびピクセルに関する処理を行わせる。なお、3Dアプリケーション1はビデオゲーム等における全般の処理を担うが、以下では流血やアザ等のダメージの描画の部分のみについて説明する。また、処理は画面表示単位であるフレーム毎に行われるのが普通であるが、数フレーム毎に行う場合もある。
【0028】
図3はダメージパラメータ付加処理の例を示すフローチャートである。
【0029】
図3において、ダメージパラメータ付加処理を開始すると(ステップS101)、攻撃位置、作用範囲および攻撃条件から、各ボーンへの影響量を計算する(ステップS102)。ダメージ状態の描画に限らず、色変化イベントにおける描画一般について適用する場合、「攻撃位置、作用範囲および攻撃条件」は「色変化イベントの発生位置、作用範囲および発生条件」と読み替えることができる。
【0030】
図4は攻撃位置と影響するボーンの関係の例を示す図であり、キャラクタモデルMの攻撃位置Aに攻撃が与えられたとすると、攻撃を受けた側なのか攻撃をした側なのか、攻撃の種類、攻撃の強さ等の攻撃条件に応じ、作用範囲における攻撃位置Aからの距離に応じて、キャラクタモデルMの各ボーンへの影響量が計算される。ここでは、攻撃位置Aに最も近いボーンB2の影響量が最も大きくなる。なお、図4では攻撃を受けた側のキャラクタモデルMのみを示しているが、攻撃を行った側のキャラクタモデルでも同様の処理が行われる。
【0031】
図3に戻り、算出された影響量を各ボーンのダメージパラメータに設定し(ステップS103)、ダメージパラメータ付加処理を終了する(ステップS104)。
【0032】
図5はダメージ描画処理の例を示すフローチャートである。
【0033】
図5において、ダメージ描画処理を開始すると(ステップS201)、先ず、各ボーンのダメージパラメータをボーンと対応付けてバーテックスシェーダに転送する(ステップS202)。
【0034】
次いで、キャラクタモデルを構成する各ポリゴンの各頂点に対して以下の処理を実施する(ステップS203)。この処理はバーテックスシェーダにより行われる。
【0035】
すなわち、頂点の各ボーンへの重みとそのボーンのダメージパラメータとから、その頂点での頂点ダメージパラメータを計算する(ステップS204)。例えば、ある頂点においてボーンB1、B2、B3に対する重みw1、w2、w3が設定されており、ボーンB1、B2、B3のダメージパラメータがd1、d2、d3であるとすると、その頂点における頂点ダメージパラメータは
d1×w1+d2×w2+d3×w3
となる。
【0036】
次いで、算出された頂点ダメージパラメータをその頂点の法線等の情報に基づいて補正する(ステップS205)。これは、視点(カメラ座標)から見たダメージ状況をより自然にするためである。
【0037】
次いで、頂点座標からノイズテクスチャのテクスチャ座標を計算する(ステップS206)。頂点座標とテクスチャ座標の対応関係は、予め定められている。
【0038】
キャラクタモデルを構成する各ポリゴンの全頂点につき処理を行った後に次の処理に移行する。
【0039】
次いで、キャラクタモデルを構成する各ポリゴンの各ピクセルに対して以下の処理を実施する(ステップS207)。この処理はピクセルシェーダにより行われる。
【0040】
すなわち、ピクセルにつき補間したピクセルダメージパラメータを計算する(ステップS208)。ピクセルについての値の補間は、ピクセルと頂点との位置関係に応じ、ピクセルシェーダにより自動的に行われる。
【0041】
次いで、算出されたピクセルダメージパラメータにノイズテクスチャの値を加算する(ステップS209)。加えるノイズテクスチャの値は、頂点の処理(ステップS206)で計算したテクスチャ座標をピクセルにつき補間したテクスチャ座標でノイズテクスチャから読み出した値である。ノイズテクスチャの値を加えることで、ピクセルダメージパラメータの値が乱数的に上下することとなり、流血やアザ等のダメージ部分を自然な表現とすることができる。
【0042】
次いで、ピクセルダメージパラメータが所定の閾値を超えたか否か判断する(ステップS210)。所定の閾値は視覚的な効果を考慮して予め設定される値である。
【0043】
そして、ピクセルダメージパラメータが所定の閾値を超えた場合(ステップS210のYes)、ピクセルダメージパラメータに基づいて算出した色値をピクセルの色としてフレームバッファ上に描画する(ステップS211)。例えば、ダメージが流血の場合、ピクセルダメージパラメータが小さい値の場合は少ない出血を表す色値とし、ピクセルダメージパラメータが大きい値の場合は多い出血を表す色値とする。ダメージがアザの場合、ピクセルダメージパラメータが小さい値の場合は薄いアザを表す色値とし、ピクセルダメージパラメータが大きい値の場合は濃いアザを表す色値とする。
【0044】
また、ピクセルダメージパラメータが所定の閾値を超えない場合(ステップS210のNo)、そのピクセルを描画しない(ステップS212)。
【0045】
キャラクタモデルを構成する各ポリゴンの全ピクセルにつき処理した後にダメージ描画処理を終了する(ステップS213)。
【0046】
図6はダメージの描画例を示す図であり、図4におけるキャラクタモデルMの攻撃位置Aに攻撃を受けた場合に対応した例である。図6において、キャラクタモデルMには、モデルを構成するポリゴンのピクセルの描画に際し、流血やアザ等のダメージ部分Dが同時に描画される。
【0047】
なお、ボーンのダメージパラメータの値を時間経過に沿って増減することで、流血やアザ等のダメージ状況を変化させることができる。
【0048】
<総括>
以上説明したように、本実施形態によれば、キャラクタモデルに対して従前より設けられていた各頂点から各ボーンへの重みの仕組を利用しているため、流血やアザ等のダメージ状態をはじめとする色変化イベントにおける描画を簡易に行うことができる。
【0049】
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。すなわち、具体例の詳細および添付の図面により本発明が限定されるものと解釈してはならない。
【図面の簡単な説明】
【0050】
【図1】本発明の一実施形態にかかる画像処理装置の構成例を示す図 である。
【図2】ボーンと頂点との関係の例を示す図である。
【図3】ダメージパラメータ付加処理の例を示すフローチャートである。
【図4】攻撃位置と影響するボーンの関係の例を示す図である。
【図5】ダメージ描画処理の例を示すフローチャートである。
【図6】ダメージの描画例を示す図である。
【符号の説明】
【0051】
1 3Dアプリケーション
2 3D−API
3 GPU
31 GPUフロントエンド部
32 プログラマブル頂点プロセッサ
33 基本アセンブリ部
34 ラスタライズ/補間部
35 プログラマブルピクセルプロセッサ
36 ラスタ演算部
37 フレームバッファ
4 データ保持部

【特許請求の範囲】
【請求項1】
仮想3次元空間内のモデルを投影面上の2次元画像として描画する画像処理装置の制御プログラムであって、
前記画像処理装置を構成するコンピュータを、
仮想3次元空間内におけるキャラクタモデルに対する色変化イベントの発生位置、作用範囲および発生条件から、キャラクタモデルの各所に対応する各ボーンへの影響量を計算する影響量計算手段、
算出された影響量を各ボーンの色変化イベントの影響度パラメータに設定する影響量設定手段、
キャラクタモデルを構成する各ポリゴンの各頂点に対して、各頂点の各ボーンへの重みと当該ボーンの影響度パラメータとから当該頂点での頂点影響度パラメータを計算する頂点影響度パラメータ計算手段、
キャラクタモデルを構成する各ポリゴンの各ピクセルに対して、各ピクセルにつき補間したピクセル影響度パラメータを計算するピクセル影響度パラメータ計算手段、
算出されたピクセル影響度パラメータに応じた色値を当該ピクセルに出力する描画手段
として機能させる画像処理プログラム。
【請求項2】
請求項1に記載の画像処理プログラムにおいて、
前記頂点影響度パラメータ計算手段は、各頂点の法線等の情報に基づいて頂点影響度パラメータに補正を行う
画像処理プログラム。
【請求項3】
請求項1または2のいずれか一項に記載の画像処理プログラムにおいて、
前記ピクセル影響度パラメータ計算手段は、各ピクセルにつき補間したピクセル影響度パラメータにノイズテクスチャから読み出した乱数値を加える
画像処理プログラム。
【請求項4】
請求項1乃至3のいずれか一項に記載の画像処理プログラムにおいて、
前記描画手段は、算出されたピクセル影響度パラメータが所定の閾値を超えた場合にピクセル影響度パラメータに応じた色値を当該ピクセルに出力する
画像処理プログラム。
【請求項5】
請求項1乃至4のいずれか一項に記載の画像処理プログラムにおいて、
前記頂点影響度パラメータ計算手段は各ポリゴンの各頂点に対する処理をバーテックスシェーダにより行い、
前記ピクセル影響度パラメータ計算手段および前記描画手段は、各ポリゴンの各ピクセルに対する処理をピクセルシェーダにより行う
画像処理プログラム。
【請求項6】
仮想3次元空間内のモデルを投影面上の2次元画像として描画する画像処理装置であって、
仮想3次元空間内におけるキャラクタモデルに対する色変化イベントの発生位置、作用範囲および発生条件から、キャラクタモデルの各所に対応する各ボーンへの影響量を計算する影響量計算手段と、
算出された影響量を各ボーンの色変化イベントの影響度パラメータに設定する影響量設定手段と、
キャラクタモデルを構成する各ポリゴンの各頂点に対して、各頂点の各ボーンへの重みと当該ボーンの影響度パラメータとから当該頂点での頂点影響度パラメータを計算する頂点影響度パラメータ計算手段と、
キャラクタモデルを構成する各ポリゴンの各ピクセルに対して、各ピクセルにつき補間したピクセル影響度パラメータを計算するピクセル影響度パラメータ計算手段と、
算出されたピクセル影響度パラメータに応じた色値を当該ピクセルに出力する描画手段と
を備えたことを特徴とする画像処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2010−92378(P2010−92378A)
【公開日】平成22年4月22日(2010.4.22)
【国際特許分類】
【出願番号】特願2008−263337(P2008−263337)
【出願日】平成20年10月10日(2008.10.10)
【出願人】(000132471)株式会社セガ (811)
【Fターム(参考)】