【Blender】 ノード プログラミングで色を変える方法

posted in: 3D Modeling, Processing, Technology | 0

本記事で解説するのは、以下のようなテクスチャの部分的な変更を ノード プログラミングで行う方法です

動画バージョンもあります!)

かわいいクアッカワラビーですね

このクアッカワラビーは、REVOPOINTで3Dスキャンしたオブジェクトに対し、テクスチャを設定したものです

元々のテクスチャは以下のように設定されています

クアッカワラビーのテクスチャ

今回は、この上の図の↘で示された色のみをピンクに変える方法を解説します

指針:変えたい部分を1にし、1を好きな色に変える

指針としては、これが全てです

上で示した↘の色部分を1にします

1というのは、こういう画像処理的な場面においては白だと思ってください

反対に、0は黒を意味します

なぜ1にするかというと、1に”何か”を掛け算すれば、そのままその”何か”になってくれるからです

ノード設定の指針

というわけで、1はすごく扱いやすい数であるため、変えたい部分を1にします

ノード設定の要約

さらなる全体像は上に示しました

抽出したテクスチャは例えばピンクとMixすることによって、好きな色に変えます

そしてその対の存在となるクアッカワラビーを、抽出テクスチャを反転させることによって作製します

最後はこれらを足し算することで、一部のテクスチャのみが変更されたクアッカワラビーとします

どうやって1として抽出するか

変えたい部分を1として抽出するには、変えたい部分の特徴を知ることが必要です

例えば、その明るさに着目してみましょう

クアッカワラビー人形の色

上図のように、使われている色を並べてみると、変えたい部分は中間程度の明るさを有していることがわかります

これも一つの特徴です

そこで、まずある明るさ(A)以下のテクスチャを抽出すると、下図左のようになります

加えて、ある明るさ(B)以上のテクスチャを抽出すると、下図中央のようになります

テクスチャの積集合

ほしいテクスチャは、この両方のテクスチャの共通部分ですから、これらに対して掛け算を行います

つまり、積集合を得るというわけです

これによって、明るさが中間程度となっている部分のテクスチャを選択的に1にすることができます

具体的な ノード プログラミング

テクスチャの抽出

上述した掛け算を具体的にノードプログラミングで行う方法は、上図の通りです

ある明るさ”以下”と”以上”は、それぞれ”Less than”と”Greater than”という演算で得ることが出来ます

これらのノードをさらに”multiply”というノードにつなぐことで掛け算が行われ、1×1=1という演算に対応する部分が出力されます

1に任意のテクスチャを”Mix”する

Mixは混ぜるという意味ですが、BlenderではMixというノードのことを指します

基本的な使い方は下の通りです

色のミックス

例えば図の左側のように、係数(fac)が0であれば、Color1だけが出力されます

係数が1であればColor2だけが出力され、係数がその間なら、その係数に従った比で混合された色が出力されます

テクスチャの掛け算

そこで、今度はMixの係数に、先ほどまでに作成した”Multiply”のノードをつなげてみましょう

このようなノードを組むと、テクスチャの抽出部分(= 1)に対してはColor2を適用でき、テクスチャの非抽出部分(= 0)にはColor1を選択的に適用できます

これによって、抽出部分だけ好きな色に変えることができるわけです

抽出テクスチャの反転と、元のテクスチャとのMix

0と1で構成されたテクスチャを反転するには、「1から引く」という操作を行えばよいです

これは下図に示しました

テクスチャの反転

このような操作を行うことで、画像のように、元々1であった部分は0となり、元々0であった部分は1となります

これはノードプログラミングにおいてはMathのSubtractをつなげることによって出力できます

さらに得られた反転テクスチャに対しては、Mixノードを用いることで元のテクスチャを反映されましょう

やり方は下の画像の通りです

部分的なテクスチャの貼り付け

係数には反転テクスチャ(Subtractの出力)をつなげ、Color1には黒を、Color2には元のテクスチャをつなげましょう

ここで得られるテクスチャが、先ほどピンクになったクアッカワラビーと対の存在になります

最後は足すだけ

ここまでで、一部がピンクになったクアッカワラビーとその対になるクアッカワラビーを作製してきました

最後はこれらを足すことによって、一部だけ色の変わったクアッカワラビーを出力できます

ノードによる色の足し算

加算(Add)という演算はMathノードのプルダウンメニューから選択することができます

このAddのColor1とColor2に、これまで作ってきた2つのMixノードをつなげましょう

最後に、このAddの出力となるColorを何かしらのBSDFにつなげれば、テクスチャの質感を制御できます

操作は以上で終了です

まとめ:ノードの全体像

ノードの全体像

最後に、こちらに上述した操作のまとめをお示しします

原型テクスチャを途中で分岐させて、後半の段階でまた統合していることが一目瞭然であると思います

また、今回のこの解説については動画でも行っています

ノードプログラミングの基礎を知りたい方、ぜひご覧ください!

コメントを残す