【CG】フローリング模様がランダム風になるマテリアル関数を作る【UE4】

Pocket
email this

 元ネタはEpic Games公式が無料配信しているUE4プロジェクト『Realistic Rendering(リアルなレンダリング)』です。これ理解したとき「ああなるほど」と声を出してしまった。たった1枚の木目のテクスチャからこんなの作れちゃうんですね。

やってみよう

 そんなに難しくはありません、チャレンジあるのみです。できるまでやめない心!

1.ランダム用マップの作成

Photoshopでやります。
①緑色Gと青色B、②赤色R、③アルファAの3パートにわけて作っていきましょう。
まずはレイヤーを4つ用意します。マスクのところでON/OFF切り替えするほうが楽という方はレイヤー不要です。

①G、B

フローリングの1枚の板に相当する箇所を適当に3色で塗り分けていきます。重なってはいけません。
・G(0,255,0)とB(0,0,255)は適当に塗ります。この2色で2/3程度の領域を埋めるようにします。
  

GとBの2色を表示したところです。

③R

赤色Rは、全部の板を塗ります。
 ただしこのときに3トーンくらいに分けておきましょう。これは最後にちょっと遊びに使います。

最後に全部のレイヤーのブレンドモードを「除外 (Exclusion)」にします。すると各マスクが足された色が出てきます。
保存しましょう。

③A

透過を示すアルファは、普通にAOを適用したい溝とかを透明にします。面倒だったら何もしなくてもいいかと思います。
 今回は溝だけ完全透過にしてみました。

2.マテリアルノードの作成

テクスチャをUE4に取り込んで、マテリアルエディタを開きます。
・まずはいつもどおり設定します。

マテリアル関数にして便利に

さて今回の肝になるランダム風処理ですが、今後もお世話になりたいのでマテリアル関数としましょう。
マテリアル関数を新規作成し、開きます。名前は「FlooringRandomPattern」にしました。
・インプットはscalarを2つ。
・画像みたいにとりあえずノード接続します。最後に、テクスチャが90度回転してしまうので元に戻してやります。
 よくわからない方は『Realistic Rendering』プロジェクトを直接開くのがよいです。

これ、なにをやってるのか?

 ざっくり言うと、マスクRの板は何も起こっていませんが、GとBは異なる係数でTexture CoordinateをAddしています。つまりは UV Wood Scale×係数 ぶんだけマスクGとBの領域それぞれのテクスチャをずらしているわけです。これってマテリアルデザイナー業界では常識なのかは不明ですが、最初に考えた人はとにかくすごいと思った。

 マテリアルエディタに戻ってマテリアル関数を置きます。
 インプットには、先程の専用マップのGとBを接続します。


完成

 いかがでしょうか。

左:従来(木目のテクスチャにノーマルマップで溝を付けただけ)。右:今回の対応を入れたもの。ぜんぜん品質が違う。

 あ~、あ~、あ~。。。これ最高ですね。1枚の木目のテクスチャからこんなフローリングが作れるなんて。
 もっと早く知っておけばよかったマテリアルスキルPart.32です。

応用編

 先程マスクを作ったときにRGBのRだけ3色に分けていました。これには意味があります。ちょっとやってみましょう。これが更にワクワクさせてくれる仕掛けになっています。


 さらにランダム風…もはやランダムにしか見えなくする に続く。




【CG】フローリング模様がランダム風になるマテリアル関数を作る【UE4】” への1件のフィードバック

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください