例えば肌の色、ほほの色、頭皮の色など、Bodyのテクスチャを作るとなっても単色でというわけにはいかない。しかし細かく塗りこむのは厳しいうえ、いったん塗った色を変えるのも結構厄介。
そういう部分をもう少しうまくやる方法がないか模索し、複数のテクスチャを重ねるというやり方を知ったのでメモっておく。
また今回はセルルックなので注意。
方法1と方法2のメリットデメリット。方法1は頂点ペイントの分だけ手間が増えるが、色を重ねないので直感的。方法2は手間は省けるが、Mixの仕方で色味が変わるのが厄介。個人的には方法1がおすすめ
テクスチャを合成 方法1
今回は肌のベーステクスチャと唇テクスチャをひとつのオブジェクトに割り当てるという事例
①オブジェクトを選択してVertexPaintモードに
黒と白で塗り分ける。今回は唇を黒に。後で調整するので大雑把に塗った。
ここの塗り方で境界をぼかして合成するか、境界がはっきりなるよう合成するかどうかが変わってくる
ObjectDataPropertiesのColorAttributesで名前をつけておくとわかりやすい
②ベースの肌テクスチャを準備(なくても可)。例ではとりあえず単色の画像を使う
③唇のテクスチャを準備
これも別になくてもよいが今回はペイントしたテクスチャを使用
④ノードを組む
一番上のColorAttributeノードに①で作ったものを割り当て、MixColorノードのFactorに接続
頂点を黒く塗ったほうがA、白がBなので、2つのテクスチャをわりあてる。今回であれば唇のテクスチャをA、肌をB
ただ見て分かるように別に画像を準備する必要はない。直にABの部分で色指定してもOK。というより最初にここで調整してからテクスチャを作ったほうが能率が良いかもしれない・
描写を確認し、テクスチャなり頂点ペイントなりを修正する。
テクスチャを合成する方法2
前提としてUV展開はすましておくこと!(テクスチャペイントモードの画面は左右に分かれているが、口の中のような入り組んだ箇所を右画面で塗るのは難儀。UV展開をしておけば、左の画面を使って楽に塗ることができる)
基本となる肌の色テクスチャを作成
これは特に変わったところはなく
①TexturePaintモードを開く。
②プラスアイコンから、BaseColorで新しくテクスチャAを作成。
③テクスチャを保存しておく(別に塗り終えてからでもいい。忘れないように注意)。
④シェーダーエディターを開き、テクスチャAをのImageTextureノードをMixColor(Color -Mixcolor)のAにつなぐ。
またMixcolorノードはScreenにしておき、さらにそれをBaseColorにつなぐ。
⑤テクスチャペイントモードに戻り、塗るか塗りつぶし機能でテクスチャAを肌の色で塗る。それがちゃんと表示されるか確認。
上に重ねるテクスチャを作成
基本の作業は同じだが、テクスチャを作成でBaseColorを選択し、表示される下記設定の画面でColorの箇所をクリックする。
表示される色のピッカーのAlphaの箇所を0にする。
これテクスチャを作成し、下の画像のように透過テクスチャになっているか確認する。
今回はほほを塗ってみた。
注意点、塗った箇所を再度透過にしたい場合はBrushSettingのBlend設定をEraseAlphaに変更して塗る。
一枚しかテクスチャを使わないときは Subtractを使うが、透過テクスチャの場合はEraseAlphaなので注意
塗れたらシェーダーエディターに移動する。
背景透過になっているテクスチャBをImageTexutreに設置し、それをMixColorノードのBに接続する。
さらにそのImageTextureのAlphaをFactorの箇所に接続する(これをやらないとちゃんと描写されないので注意)。
ほほがテクスチャBになっていればOK。
これはMixcolorを重ねていけばさらに複数のテクスチャを合成することができる。
ただあまり増えすぎても逆に管理が面倒くさくなるので、この方法でやる場合はやはり2,3枚に留めておいた方が無難だろう。
コメント