夜はCGの時間

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

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

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

f:id:Magotarou:20190815230920p:plain

 

前回はこちら

mago.hatenablog.com

 

今回はそのレンガにディティールを追加して、ノーマルマップなどの各種テクスチャを用意する。

 

今回で完成。

 

 

 

前回のおさらい

白黒のパターンテクスチャに、ランダムに着色するところまでを行った。

f:id:Magotarou:20190817145709p:plain




今回はこれに一手間加えてクオリティを上げていき、最後に必要なテクスチャを出力する設定を行う。

  1. 汚しを入れる。
  2. レンガの縁の光沢を入れる。
  3. アルベド、ラフネス、ノーマル、ハイトそれぞれのマップの出力

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

f:id:Magotarou:20190817235708p:plain



1.汚しをいれる

汚しにはノイズを使用する。

 

Generators>Perlin1 を2つ

Operations>Multiply

Operations>OneMinus

を追加して、以下のように接続する。

f:id:Magotarou:20190818002446p:plain

 

なぜ【Perlin1】を乗算するかというと、汚しの量を調整するため。

【Perlin1】のプロパティの値をそれぞれ以下のように変更する。

 

Frequency:上5、下5.5

Persistence:上1.5、下0.5

Lacunarity:上2.5、下2

Octave Count:上5、下5

PanZ:上0、下0

Seed:上0、下72

f:id:Magotarou:20190818005638p:plain

 

するとだいたい以下のようなノイズになる。

f:id:Magotarou:20190818005706p:plain

この値は適宜調整していい感じにすると良い。

 

このままレンガとブレンドしてもいいが、色が汚くなってしまうので、パラメータで色をつけられるようにする。

 

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

 

Basic>Color

Operations>Blend

 

前回作ったレンガを【Blend】のInputAに、

【Color】を【Input B】に、

【OneMinus】を【mask】に接続して、Colorの値を調節する。

今回は【Color】R230G163B95に変更した。

f:id:Magotarou:20190818030016p:plain

 

これで汚しを入れることができた。

f:id:Magotarou:20190818034612p:plain

 

2.レンガの縁の光沢

次は、レンガの縁を少し明るくして、立体感をつける。

色の境界線を抽出するには、【Curvature】を使う。

 

Filters>Curvature 追加後【Radius】を3にする

f:id:Magotarou:20190818044151p:plain

このノードは、Photoshopで言うところの『輪郭検出』にあたる。

 

【Curvature】でできた画像のうち、必要なのは白い部分だけなので、【Step】と【Blur】を使って加工する。

 

Operations>Step追加後【Edge Value】を1にする

Filters>Blur追加後【Area】を0.65にする

f:id:Magotarou:20190818045401p:plain

 

最後に、この画像をアルファチャンネルとしてレンガに合成するのだが、このままだと『白い輪郭にしか色がつかない』状態になってしまうので、色を反転する必要がある。

 

【OneMinus】でもいいのだが、光沢の強弱を調整できるように【Mix Color】を使う。

 

Operations>Mix Color

Begin Color:R256G256B256

End Color:R132G132B132 

f:id:Magotarou:20190818045732p:plain

 これで、色を反転しつつ、【End Color】の値で強弱を調整できる状態になった。

 

最後に【Blend】ノードを追加して、レンガの【Blend】の出力を【Output】に、【Mix Color】を【mask】に接続すればレンガのテクスチャは完成となる。

f:id:Magotarou:20190818050359p:plain

 

3.アルベド、ラフネス、ノーマル、ハイトそれぞれのマップの出力

最後にテクスチャを出力するための設定をする。

 

アルベドマップ 

アルベドマップは、このレンガの最終出力状態だ。

 

最後の【Blend】ノードの上で右クリックして、

Set as Output>Albedo

を選択すると、ノードにAlbedoという文字がつく。

f:id:Magotarou:20190818050719p:plain

 

Preview 3Dウィンドウにも反映される。

f:id:Magotarou:20190818050751p:plain


このままだとレンガらしからぬテカり状態なので、ラフネスマップでテカリを抑える。

 

ラフネスマップ

ラフネスは、とりあえずレンガとモルタルでちょっと違いを出す程度でいいので、【Tiling】ノードから加工して作成する。

 

Operations>Mix Color

Begin Color:R141G141B141

End Color:R132G132B132 

作成した【Mix Color】ノードには、【Tiling】の【Output】を接続する。

 

そしてアルベドマップと同じように右クリックして、

Set as Output>Roughness

とすればOKだ。

f:id:Magotarou:20190818051348p:plain

 

テカリが抑えられたかと思う。

f:id:Magotarou:20190818051622p:plain

 

ノーマルマップ

このままだと凹凸がなくのっぺりしてしまうので、ノーマルマップを設定する。

 

Filters>Normal追加後、【Bump】を50にする。

 

追加した【Normal】を、グレースケールで色をつけたノードと接続する。

f:id:Magotarou:20190818052632p:plain

 

アルベドマップと同じように右クリックして、

Set as Output>Normal

をつける。

 

 ハイトマップ

ノーマルマップと同様に、グレースケールで色をつけたノードと接続する。

これも強度をパラメータ調整できるように【Mix Color】を使用する。

 

Operations>Mix Color

Begin Color:R135G135B135

End Color:R255G255B255

f:id:Magotarou:20190818154420p:plain

 

アルベドマップと同じように右クリックして、

Set as Output>Height

をつける。

 

完成

これで完成だ。

出来上がりを【Preview 3D】で確認する。

f:id:Magotarou:20190818171707p:plain

 

以下の図のうち、赤枠で囲まれている箇所が、パラメータ調整で見た目を変更できる箇所になる。

f:id:Magotarou:20190818171614p:plain

 

 出力

実際にテクスチャをPNGで出力する。

まとめて出力する機能はないようなので、個別で出力することになる。

 

【Albedo 】などを設定したノードを右クリックして、

Export>Texture>PNG

で出力する。

f:id:Magotarou:20190818175334p:plain

 

※ 拡張子を自動で入力してはくれないので、自分で入力する。

 

出来上がったテクスチャとプロジェクトファイルがこちら。

f:id:Magotarou:20190818182028p:plain

 

終わりに

このレンガを更に作り込むとしたら、以下のようなことが考えられる。

  • レンガにいびつさを足して、パラメータで調整
  • レンガに欠けを足して、パラメータで調整
  • ひび割れを足して、パラメータで調整
  • ツタなんかも生やしてみる。

 

まだまだプロシージャルテクスチャの道のりは長い。