夜はCGの時間

ゲームのデザイン仕事を生業にする筆者が、色々なツールのちょっとしたネタやTipsなどを投稿、まとめる備忘録ブログです。

【TexGraph】プロシージャルテクスチャの門を叩く その2

TexGraphを使ってレンガのテクスチャを作る試みの第二回。

f:id:Magotarou:20190815230920p:plain

 

前回はこちら

mago.hatenablog.com

 

シェイプでパターンを作るところまで行ったので、今回はそのパターンに色をつけるところまで進める。

 

 

 

前回のおさらい

ツール導入後、四角形のシェイプを、Tilingノードを使ってパターン化するところまで行った。

f:id:Magotarou:20190815234145p:plain


これに色を付けるが、手順は以下の通り。

  1. マス目に色をつける(グレースケール)。
  2. ベースの色をつける(カラー)。
  3. 違う色を作って混ぜる(パラメータでランダム化する)。

Graphでいうと以下の箇所になる。

f:id:Magotarou:20190817104418p:plain


1.マス目に色をつける

まず【Tiling】ノードには以下の特徴がある。

 

【Output】側の出力は通常の出力だが、

f:id:Magotarou:20190817110345p:plain

【Code】側の出力だと以下のようにグレーの荒いマス目で塗られた出力になる。

f:id:Magotarou:20190817110358p:plain

これを利用する。

 

Multiplyで合成

【Graph】ウィンドウで右クリック>Operations>Multiply

 

で、【Multipy】ノードを追加し、【Output】と【Code】を以下のように繋げる。

f:id:Magotarou:20190817110751p:plain

MultiplyとはPhotoshopで言うところの『合成モード乗算』と同じだ。

 

Photoshopで同じことをするとこうなる。

f:id:Magotarou:20190817112202p:plain

 

ただ、これだと色がちょっと暗すぎるので明度を調整する。

 

Mix Colorで明度調整

【Graph】ウィンドウで右クリック>Operations>Mix Color

 

で追加した【Mix Color】ノードを以下のように接続する。

f:id:Magotarou:20190817114131p:plain

【Mix Color】の【Properties Panel】を見ると、以下のようなプロパティがあるが、それぞれ次のような意味がある。

Begin Color:黒(0,0,0)に色をつける

End Color:白(1,1,1)に色をつける

Photoshopグラデーションマップに近い。

 

今回はちょっと明度を上げたいので、プロパティを以下のようにする。

Begin ColorR192G192B192

f:id:Magotarou:20190817130642p:plain

 

2.ベースの色をつける

ベースカラーをつけるが、ここでも【Mix Color】を使用する。

f:id:Magotarou:20190817131244p:plain

Begin ColorR230G218B200

End ColorR203G149B83

 

結果、以下のようなテクスチャになる。

f:id:Magotarou:20190817131428p:plain

これでベースカラーの着色は終わりだ。

 

3.違う色を作って混ぜる

アレンジカラーの作成

ベースの色に違う色を合成するために、まずは違う色パターンを作成する。

【Tiling】の【Code】から線を伸ばして、新しく作成する【Mix Color】に接続する。

f:id:Magotarou:20190817132142p:plain

 

【Mix Color】のプロパティは以下の通り。ここは自由でかまわない。

Begin ColorR70G23B0

End ColorR248G99B51

 

アルファチャンネルテクスチャの作成

次に、ベースカラーとアレンジカラーを合成する際に使用するアルファチャンネル用テクスチャを作成する。

アルファチャンネルは、ベースカラーモルタル部分の線を残すために一工夫必要になる。

 

以下の2つのノードを追加する。

【Graph】ウィンドウで右クリック>Operations>OneMinus

【Graph】ウィンドウで右クリック>Operations>Max

 

それぞれ以下のように接続する。 

【Tiling】【Code】->【Max】【InputB】

【Tiling】【Output】->【OneMinus】->【Max】【InputA】

 

f:id:Magotarou:20190817135915p:plain

 

【OneMinus】は、Photoshopで言うところの『階調反転』
【Max】は、Photoshopで言うところの『合成モード覆い焼き(リニア)-加算』だ。

 

これで『ベースカラー』『アレンジカラー』『アルファチャンネル』が揃ったので、この3つを合成する。

 

合成

【Graph】ウィンドウで右クリック>Operations>Blend

 

追加した【Blend】ノードには3つの差込口があるので、以下のように繋げる。

【ベースカラー】->【InputA】

【アレンジカラー】->【InputB】

【アルファチャンネル】->【mask 】

f:id:Magotarou:20190817144537p:plain

 

これでマス目にランダムな色をつけられたのだが、このままではパラメータによる変更ができない。

f:id:Magotarou:20190817145709p:plain

パラメータで色が塗られる場所を変更できるように修正していく。

 

ランダム性の付与

ランダム性をもたせるには、【Hash Remap】を使う。

 

【Graph】ウィンドウで右クリック>Operations>Hash Remap

 

【Hash Remap】をアレンジカラーの手前とアルファチャンネルの【Max】の手前に差し込む。

f:id:Magotarou:20190817151848p:plain



この状態で【Hash Remap】のプロパティにある【Seed】を動かすと、色の濃い場所が変わるのがわかる。

 

左図:Seed3 右図:Seed10

f:id:Magotarou:20190817153426p:plain

 

これで、ランダムに色の違う場所が変わるカラーのレンガが出来上がった。

 

次回は、レンガの汚れの追加、レンガの縁の光沢の追加を行ったあと、ハイトマップや ノーマルマップなどのテクスチャ設定を行う。

 

というわけで、今回はここまで。