Blenderでマテリアルをつけるときにテクスチャを貼ることは多いと思いますが、自分でテクスチャを作るとなると、シームレスに連続したパターンを作ることは結構大変だと思います。
AdobeのPhotoshop,Illustlatorなど別のソフトが必要だったり、自分で加工しなければならなくてハードルが高いです。
しかし、今回そういう他のソフトを一切使わず、Blenderのマテリアルシェーダーノードだけを使って自作テクスチャをシームレスにする方法を考えたので解説してみたいと思います。
以下が今回の方法でシームレス化したテクスチャをスザンヌに貼ってみたもの。境目がわかりにくくなっていると思います。

この記事は、Blenderで自作テクスチャをシームレスなテクスチャにする方法を書いた中級者向けの記事です。
難易度
※テクスチャを素材サイトで買ったり、取得してきた場合には、たいていシームレスになっているのでこの操作を行う必要はありません。シームレスになっていても並べ方をランダムにしたいときは、テクスチャの貼り方に工夫が必要になります。
テクスチャのパターンをシームレスにする原理
テクスチャのパターンをシームレス化するにあたり、以下のサイトを参考にしています。

シームレス化の原理
わかりやすいようにスザンヌ一体のテクスチャだとします。
上下左右全ての繋がりを、次の画像の続きのようにする必要があるので、まずは画像を上下左右に並べます。
①それから45度回転させ、角の部分にそれぞれの画像への続きが来るように切り取ります。
②今度は赤い線の部分に境目ができているので、その部分をぼかしたりなじませます。
これで並べても境目がわかりにくいシームレスなパターンが完成します。
シームレスなテクスチャパターンを作る
ではシームレスなテクスチャパターンを作っていきます。工程としては大きく3つあります。
- テクスチャを並べる…上のシームレス化の原理①の部分
- 境目をぼかす…上のシームレス化の原理②の部分
- できたテクスチャをベイクする
テクスチャを並べる

まずplaneを出して、マテリアルを作成し、今持っているテクスチャを貼ります。(これはAIに作ってもらった油絵のテクスチャ)
Texture coodinate(テクスチャ座標)はUVにつなげておいてください
今の時点では全くシームレスではないです。

Mappingノードで、z軸を45度回転させます。
ひし形ができますが、大きくてはみ出していますので、ScaleにMathノードのSquare Rootに2をいれてつなぎます。
これは√2をかけているのと一緒です。
なぜかというと、ひし形の対角線は1:1:√2で、√2倍に伸びているからです。

正方形を45度回転すると対角線が縦・横幅になるので√2でスケールする必要があります。

次は、MappingノードのLocationに
- X…0.5
- Y…-0.5
を入れて位置を調整して、ひし形がちょうど真ん中にくるようにします。
このマイナスとプラスはどっちでもいいじゃないかと思われるかもしれませんが、後で境目をぼかすときに大事になってくるので、Xはプラス、Yはマイナスを入れるようにしてください。
これでテクスチャを並べることができました。あとは、ひし形の境目に線が見えてしまっているので、ここをぼかす必要があります。
境目をぼかす

ひし形の境目をぼかすために、ひし形の境目にグラデーションがついた図形を作る必要があります。
しかし、さきほど正方形をひし形化することができましたので、正方形の線にグラデーションがついたものを作成すれば良いということになります。
X=0の部分の線を作る

X=0の部分の線を作成するために、
UV座標からSeparateXYZノードでX軸だけを抜き出し、Absoluteをつないで0の周辺にグラデーションが広がるようにします。
グラデーションの量を調節するためPowerをつないで0.5をいれておきます。
全体の線を作る

ひし形になったとき、上から、左上、右下、右上、左下の辺に対応することになります。
これらの操作を、X=1、Y、Y=1の線の部分も同様にやります。
それぞれの線はMinimumノードでつなぎ、左図のようなノード構成にします。

Ctrl + Gでまとめて、それぞれのボーダーのぼかしを調節できるノードにすると作業が楽になります。名前をBorder Blurノードとします。

「テクスチャを並べる」のところで作ったMappingノードに、さきほど作ったBorder Blurノードをつなげると、ひし形になります。

Border BlurノードにColor Rampノードをつけて全体のグラデーションを調節できるようにし、Mix ノードでテクスチャとつなげます。
わかりやすいようにMixノードのAに赤い色をおいてみました。ひし形の境目に赤いグラデーションが広がっていると思います。
この赤いグラデーションの部分に、元のテクスチャの画像をいれてなじませます。

MixノードのAに、元のテクスチャをつないでなじませてみた図です。
カラーランプで全体のグラデーションを調整(あまりぼかしすぎるとほぼ元の画像になってしまうので注意)
あとは個別に、例えば左下の線がまだ目立っているなと思ったら、Border Blurの左下のところの数値を調整します。

できたテクスチャをベイクする
テクスチャができたので、ベイクして新しいシームレスなテクスチャを作ります。

Image Textureノードを出し、新しい画像を作っておきます。


Cyclesにして、オブジェクト、Image Textureノードを選択し、Bakeの設定をColorのみにしてベイクしていきます。
できたテクスチャは保存しておいてください。
出来上がり
できたシームレスなテクスチャをスザンヌにはってみました。

テクスチャ座標をObjectにして、Image TextureノードでBoxのRepeatにすれば、境目がほぼなくなったと思います。今回わりと大きめな柄のテクスチャを使ったので、もっと細かいテクスチャだと本当にわからなくなると思います。
この方法を使えば、
- 適当にAIでテクスチャを作ってもらう
- Blenderでシームレス化
ってことで他のソフトを使わずに作業できます。
さらにこれをランダム配置すれば、より自然なテクスチャ表現ができると思います。