スクリーンショット_2019-10-07_21

[2.8]プロシージャルテクスチャ:パターンとマスク

この最近Blenderで和柄作ってたりするのですが、「パターンを繰り返す」「マスクを使ってバリエーションのある模様を作る」という方法がなんとなくわかってきたのでメモしておきます。ページ最後の方にサンプルを紹介しているページのリンクがあるのでちゃんと通しで読んでください。

確認した環境は2.81ですが、2.80でも大丈夫だと思います。

シェーダーエディタの使い方とかノードの基本的なところの説明はありませんので悪しからず。

事前準備

Plane を追加したシーンを作成しておきます。追加メニューからPlaneオブジェクトを追加した時にUVも自動的に展開済みのはずです。

スクリーンショット 2019-10-07 20.05.15

表示モードを"Material Preview"にしておきます。必要に応じてカラーマネジメントの設定もこの段階でしておくと良いでしょう。

スクリーンショット 2019-10-07 20.07.13

UV座標

左下が(0.0,0.0)、右(1.0,1.0)で、ここに面が配置されている、という認識でだいたいOKです。

スクリーンショット 2019-10-07 19.59.00

UV座標を視覚的に確認したい場合には以下のようなノード構成でColorに直接入力してあげます。

(x,y,z)=(r,g,b)という対応で、UVマップを使う時は(x,y)がそれぞれ(1.0,0.0)で赤、(0.0,1.0)で緑、(1.0,1.0)で黄色く表示されることを確認しましょう。

スクリーンショット 2019-10-07 16.06.04

スクリーンショット 2019-10-07 16.05.21

このパターンが作れること=UV座標として使える、ということです。

この時点で「色の違うソケットをつないでいる」ということに気が付けるかどうかも結構ポイントだったりして。

Wave Textureで繰り返しパターンを作成

こうですね。

スクリーンショット 2019-10-07 16.09.38

スクリーンショット 2019-10-07 16.10.08

2.82だか2.83だかで Wave Textureノードのパラメーターが変更されて、X軸、Y軸に変更になっています。確か。上のように斜めになるかどうか…

では同じテクスチャを -X したものと重ねてみましょう。斜めの格子状のパターンは使うこと多いので覚えときましょう。

スクリーンショット 2019-10-07 16.12.08

スクリーンショット 2019-10-07 16.13.11

こうやってあげるとわかりやすいでしょうか。

スクリーンショット 2019-10-07 20.16.40

スクリーンショット 2019-10-07 20.16.28

X, Y方向にそれぞれ抽出してあげたものを組み合わせて格子状にしたものを使うことが多いと思いますので紹介しておきます。

スクリーンショット 2019-10-07 16.14.56

スクリーンショット 2019-10-07 16.15.27

スクリーンショット 2019-10-07 16.18.12

スクリーンショット 2019-10-07 16.18.35


スクリーンショット 2019-10-07 20.20.28

スクリーンショット 2019-10-07 20.20.10

余剰(moduro) を使って繰り返しパターンを作る方法もありますが、X=0 , Y=0 付近で模様の反転がおきます。状況に合わせて使い分けが必要です。

ベクトル値を生成

新たにUVの座標としてベクトル値を作成してテクスチャのソースとする、という使い方もします。

スクリーンショット 2019-10-07 16.22.26

スクリーンショット 2019-10-07 16.22.48

直接数値として計算するパターンもあります。

スクリーンショット 2019-10-07 16.25.46

スクリーンショット 2019-10-07 16.26.10

論理演算的な使い方

Mathノードで論理演算的な使い方も可能です。Mathノード、Greater thanで、閾値 0.5として1/2幅のストライプを構成して組み合わせます。

スクリーンショット 2019-10-07 16.28.03

スクリーンショット 2019-10-07 16.27.24

左から OR, AND, XOR です。

スクリーンショット 2019-10-07 20.29.32

以下、ノード。

スクリーンショット 2019-10-07 20.30.18

スクリーンショット 2019-10-07 20.32.13

スクリーンショット 2019-10-07 20.33.37

2倍幅のWaveテクスチャとの組み合わせ

WaveのScale を 1/2 すると2倍幅の周期のストライプを作れます。これを元の幅のストライプと合わせます。

スクリーンショット 2019-10-07 20.47.33

スクリーンショット 2019-10-07 20.52.28

山折り/谷折りカラーランプ

これも使う機会が多いので覚えておくと良いです。

スクリーンショット 2019-10-07 21.03.51

スクリーンショット 2019-10-07 21.04.11

(カラーランプでなくても、Mathノードで (abs(x-0.5))*2 とかやった方がおそらくはパフォーマンス的にも正解とは思いますが、最初のうちはノードの数を抑えて「自分で組めるようにする」ことを優先させる方が良いという判断です。)

マスク(作例として角丸)

ここまで紹介したノードをもとにして、この模様を作ります。

スクリーンショット 2019-10-07 21.57.48

なお、Mix RGBノードのfacに入力することでマスクとして使用できます。

スクリーンショット 2019-10-07 21.17.44

まずはこのパターン。

スクリーンショット 2019-10-07 21.16.13

さらに重ねます。Colorの入力順でマスクの効果が反転することを確認できます。

スクリーンショット 2019-10-07 21.32.09

さらに。

スクリーンショット 2019-10-07 21.40.11

元のグラデーションを利用して、「内側に線を入れる」等のパターンを作成します。

スクリーンショット 2019-10-07 21.43.16

スクリーンショット 2019-10-07 21.43.47

はい、できました。(特に詳しい説明はありません。)

ノードの整理

共通するところをまとめたり、構成をわかりやすくします。

Separate XYZ は早い段階でまとめられるのですが、ノードを組んでいる段階では、Combine XYZ と対の形で配置しておくほうがわかりやすいので、自分の場合は一通り作り終えてからまとめています。

スクリーンショット 2019-10-08 08.43.49

スクリーンショット 2019-10-08 08.46.17

大きさを共通して変える、という場合に Value node をつなぎます。

スクリーンショット 2019-10-08 08.49.34


サンプルの和柄

サンプルとして.blendファイルを用意しました。

サンプルとして記事で公開しているプロシージャルテクスチャをまとめた.blendファイルををBOOTHにて入手できます。

記事として書いているページにノードの図とサンプルファイルがあります。

ついに開眼した第8回

画像42

サポート回。

(別の)解説

モチーフとして使った花などのノードについての解説。

See Also:

こういった楽しみ方も。

もうちょっと数学寄り、っていう感じでアプローチしたい場合にはこちら。Blender 2.81 上でBook of shader を学べる .blend ファイルを公開してくれています。

上記のdpdpさんのファイルの元ネタページはこちら





お読みいただきありがとうございます。サポートいただいた分はおやつのグレードアップに使おうかと思います。スキ、SNSにシェアもよろしくお願いします!