頂点に色を付ける機能であるVertex Paint(頂点ペイント)機能は、頂点に色を付けたものを、そのままレンダリングして出力に使ってもいいのですが、テクスチャやマテリアルの制御用として使うのもテクニックのひとつです。
ここでは、制御用として使うVertex Paintについて、CyclesエンジンとBlender Internalエンジンでの実際の使い方を説明します。
まず、Vertex Paint機能のおさらい。(そういや、市販本でVertex Paintって取り上げてるのないよね?)
3Dビューのヘッダにあるモードの選択メニューからVertex Paint(頂点ペイント)を選択します。すると、ツール・シェルフにペイント関連のパネルが表示されます。これらはTexture Paint機能と同じです。3Dビューで色を染めてくだけ。頂点にペイントするので、メッシュの細かさ=ペイントの細かさになっています。
[GARD]
例えば、Vertex Paintで下図のように塗ったとします。
そのとき、そのままレンダリングしてもVertex Paintは表示されません。これを表示するには、マテリアルの「Options」パネルにある「Vertex Color Paint」にチェックを入れます。下図はレンダリングした結果。
以上が、ざっとVertex Paintについてでした。
さて、ここからが本題。Vertex Paintには自分で色を塗っていってもいいのですが、便利機能があります。ヘッダの「Paint(ペイント)」メニューに「Dirty Vertex Colors」があります。日本語UIでは「頂点カラーへの擬似AO」という名前になっています。意味は確かにそうなんだけど、ちょっと英語名とかい離してるという状態。他にいい言い方があれば変えたいんだが・・・(考えておこう)。
話を戻して、これを実行すると、下図のような感じでペイントしてくれます。
上図の濃淡の違いは、ツール・シェルフに表示されるオペレーターのパラメーターを変えることで調整できます。
こんな感じにも。
(1) Cyclesでの利用方法
Cyclesエンジンに切り替えて、スザンヌにCyclesでのマテリアルを新規作成します。
オブジェクトのマテリアルノードをノード・エディターで開きます。
「Shift」+「A」キーを押し、「Input」、「Vertex Colors」、「Col」を選択します。
CyclesではVertex Colorをノードでそのまま呼び出せるんです!
すると、Attributeノードが表示されるので、これを直接、Diffuse BSDFノードにつないでみて、レンダリング結果を見ると、確かにVertex Colorが使われているのが確認できます。下図の右上がレンダリング結果。
では、制御にこれを使うということは、どういうことかというと。ノード・エディターを使っている人なら分かるはず。
例えば、下図のようにノードを組みます。
このときの結果は下図の通りです。もうお分かりだろうか。「Fac」の値により、1つ目のDiffuse BSDFノードと2つ目のDiffuse BSDFノードの色を使い分けている訳です。マテリアルをいろいろ制御するのに使うスペキュラーマップやバンプマップなどと同じ考え方で、Vertex Colorのモノクロ情報で制御しています。
また、AttributeノードとDiffuse BSDFノードの間にRGB Curveノードなどを挿入して、変化を持たせて使うこともできます。
(2)Blender Internalエンジンでの利用方法
内部エンジン(Blender Internal)でVertex Colorを制御用に使うには、一度、Vertex Colorをテクスチャにベイクする必要があります(他にやり方あったら、教えてください)。
ベイクのやり方をいちおう説明しておくと。
①UV展開します。Texture PaintやVertex Paintしか使わないなら、UV展開は「Smart UV Project」で十分です。あ、何が何でもUV展開はシームを設定して、展開してということでは決してないです(用途次第)。
②エディットモードで、UV/Imageエディターのヘッダにある「New」ボタンで適当に新しい画像を作ります。
こんな感じ。ちょっとUVの余白を空けすぎた・・・(まぁいいや、細かいところは)
③プロパティ・エディターの「Render」タブを開き、「Bake」パネルで「Bake Mode」を「Vertex Colors」にして、「Bake」ボタンを押してベイク実行。
ベイク結果は下図の通り。
④UV/Imageエディターのヘッダの「Image」メニューから「Save」を実行して、ベイクした画像を保存。
以上でベイクの手順は完了。
これを通常のテクスチャとして読み込み、「Influence」パネルで各要素(スペキュラーやら、なんやら)への影響度を設定するのに使います。カラーマップとして読み込んだときのレンダリング結果は下図の通りです。問題なくベイクされたことが分かります。
ここからは典型的なテクスチャによるマテリアルの制御方法なので、Blender2.6マスターブックの「8章 マテリアルをマスターする」を見てください。お持ちでない方は、是非ご購入のご検討をw
この記事は、Blender Advent Calendar 2014に参加しています。
明日の担当は、12/8のmontaさんです。