
※記事製作時のバージョン:Blender4.3
Blender4.3で、新しくGaborテクスチャ(ガボールテクスチャ)が追加されました。
今回の記事はGaborテクスチャの紹介も兼ねて、手書き風ハーフトーンの作り方を解説します。
「Gaborテクスチャ」って何?
Gaborノイズというタイプのノイズパターンを出力するテクスチャです。
「肌のしわ」や「砂丘の風紋」のような、揺らぎのある縞模様を作ります。

[異方性]の値を操作すると、縞模様の方向のランダム性が変化します。
[1](デフォルト)が方向のそろった縞模様。
値を小さくするほど縞の向きが乱れていき、[0]にすると縞模様とは言えないくらいランダムな模様になります。

Gaborテクスチャには[値][位相][強度]の3種類の出力があり、それぞれ下の画像のようなパターンを出力します。
用途に応じて使い分けますが、今回のマテリアルでは[値]を使用します。

では、実際にマテリアルを作っていきましょう。
手描き風ハーフトーンの作り方
今回作るのはトゥーンシェーディング(またはセルルック)用のマテリアルです。
[シェーダーのRGB化]を使うので、EEVEE専用の設定となります。
1. 前準備
まず前準備として、初歩的なトゥーンシェーダーを作ります。
1. オブジェクトに、新規マテリアルを作成します。

2.[ディフューズ]、[シェーダーのRGB化]、[カラーランプ]、[放射]の4つのノードを追加します。
[ディフューズ]の[カラー]は、[V(明度):1]の白にしておきます。

3. この4つのノードを、次のように接続します。
- [ディフューズ:BSDF]>[シェーダーのRGB化:シェーダー]
- [シェーダーのRGB化:カラー]>[カラーランプ:係数]
- [カラーランプ:カラー]>[放射:カラー]
- [放射:放射]>[マテリアル出力:サーフェス]
もともとセットされていた[プリンシプルBSDF]は使わないので、削除します。

4.[カラーランプ]を、次のように設定します。
- 色の補完:一定
- [+]をクリックして、カラーストップを追加
- カラーストップの位置とカラーを好みで調整
これで、初歩的なトゥーンシェーダーができました。

次は、これに[Gaborテクスチャ]を合成します。
2. Gaborテクスチャの合成
1.[テクスチャ座標]と[Gaborテクスチャ]を追加します。
- Shift+A>入力>テクスチャ座標
- Shift+A>テクスチャ>Gaborテクスチャ

2.[Gaborテクスチャ]の[値]を、[マテリアル出力]の[サーフェス]に接続します。
これで、一時的に[Gaborテクスチャ]の模様だけがオブジェクトに表示されるようになります。

初期状態の[Gaborテクスチャ]は2Dテクスチャです。
オブジェクトのローカル座標系で、Z軸方向の面が模様の正面になります。
それ以外の角度から見ると、模様が歪んで表示されます。
※下の画像では模様が見やすいように、[Gaborテクスチャ]の[スケール]を調整しています。

3Dテクスチャに切り替えることもできますが、この見本では2Dテクスチャのまま、「常に模様の正面がカメラを向く」ように設定します。
3.[テクスチャ座標]の[カメラ]を、[Gaborテクスチャ]の[ベクトル]に接続します。
これで、オブジェクトをどの角度から見ても、[Gaborテクスチャ]の模様が正面向きで表示されるようになります。
※3Dビューポートとレンダリング結果のどちらでも、模様が正面向きで表示されます。


この模様を、最初に用意したトゥーンシェーダーと合成します。
4.[Shift+A>カラー>カラーミックス]を追加します。
[カラーミックス]の[ブレンドモード]は[乗算]にしておきます。

5.[カラーミックス]を、次のように接続します。
- [シェーダーのRGB化:カラー]>[カラーミックス:A]
- [Gaborテクスチャ:値]>[カラーミックス:B]
- [カラーミックス:結果]>[カラーランプ:係数]
これで、トゥーンシェーダーの陰影に[Gaborテクスチャ]の模様が合成されます。

6. 模様がいい具合の大きさになるように、[Gaborテクスチャ]の[スケール]を調整します。
これで、手描き風ハーフトーンの基本形ができました。

・・・しかし、実はこのマテリアルには一つ問題があります。
それは、「オブジェクトを動かしても模様がついてこない」という点です。
↓ このように。

これは[テクスチャ座標]の[カメラ]を使っているのが原因です。
イメージ的に表現すると、
- まず表示画面に対して[Gaborテクスチャ]の模様を用意しておいて、
- その模様をオブジェクトの輪郭で切り取っている
という仕組みのため、オブジェクトを動かしてもテクスチャは動かない、というわけです。
では、もう一工夫して「オブジェクトの動きに合わせて模様も動く」ようにしましょう。
3. オブジェクトと模様を連動させる
1.[オブジェクト情報]、[ベクトル変換]、[ベクトル演算]の3つのノードを追加します。
- Shift+A>入力>オブジェクト情報
- Shift+A>ベクトル>ベクトル変換
- Shift+A>コンバーター>ベクトル演算

2.[ベクトル変換]と[ベクトル演算]を、次のように設定します。
- ベクトル変換
変換先の空間:カメラ - ベクトル演算
処理:減算

3. この3つのノードを、次のように接続します。
- [テクスチャ座標:カメラ]>[ベクトル演算:ベクトル(上)]
- [オブジェクト情報:位置]>[ベクトル変換:ベクトル]
- [ベクトル変換:ベクトル]>[ベクトル演算:ベクトル(下)]
- [ベクトル演算:ベクトル]>[Gaborテクスチャ:ベクトル]
これで[テクスチャ座標]の[カメラ]のベクトルと、オブジェクトのワールド座標が合成され、オブジェクトの動きに合わせて模様も動くようになります。
※注:アーマチュアやGeometry Nodesなどでメッシュを動かす場合は、オブジェクトのワールド座標は動かないので、模様は動きません。


これで今回必要なすべてのノードがそろいました。
ノードツリー全体を見ると、下の画像のようになります。

最後に、作りたい質感に合わせて模様を調整します。
模様の調整方法
模様の大きさ
[Gaborテクスチャ]の[スケール]で、模様の大きさを調整できます。
通常のテクスチャと同じく、値を大きくすると模様が小さく、値を小さくすると模様が大きくなります。

縞模様のゆらぎ具合
[Gaborテクスチャ]の[スケール]を小さくして[頻度]を大きくすると、ゆらぎの少ないきれいな縞模様になります。

ちなみに、[頻度]は[スケール]とは別の仕組みで模様の細かさを操作するパラメーターです。
[頻度]の仕組みについて詳しく説明すると長くなるのでここでは省略します。
興味のある方は公式マニュアルを参照してください。
斜線/点描の切り替え
[Gaborテクスチャ]の[異方性]で、斜線と点描を切り替えられます。
[1](デフォルト)が斜線、[0]が点描。
[0~1]の中間値は、値に応じた斜線と点描の中間の模様になります。

線の角度
[Gaborテクスチャ]の[座標系]で、斜線の角度を操作できます。

陰影の範囲と、ハーフトーンの強さ
[カラーランプ]の[カラーストップ]の[位置]で、陰影の範囲を調整できます。

[カラーミックス]の[係数]で、ハーフトーンの強さ([Gaborテクスチャ]の合成の度合い)を調整できます。

[カラーランプ]と[カラーミックス]を組み合わせて、最終的な陰影を調整します。
画面で確認しながら、作りたい質感に合わせて調整してください。
以上で、できあがりです。
デッサン風マテリアルの作り方
ここまでの設定を元に、デッサン風(または漫画版『風の谷のナウシカ』風)マテリアルを作ります。
1.[Gaborテクスチャ]の[値]を、[放射]の[カラー]に接続します。
これで、オブジェクトが[Gaborテクスチャ]の模様になります。
ついでに、次の2つの操作をしておきます。
- [カラーミックス]と[カラーランプ]は使わないので、削除します。
- [ディフューズ]と[シェーダーのRGB化]は、この後のノード接続をやりやすくするため、[Gaborテクスチャ]の下に移動します。

2.[Shift+A>コンバーター>数式]を追加します。
[数式]の[処理]は[小さい]にしておきます。

3.[数式]を、[Gaborテクスチャ]と[放射]の間に接続します。
- [Gaborテクスチャ:値]>[数式:値]
- [数式:値]>[放射:カラー]
これで[Gaborテクスチャ]が、くっきりした白黒模様になります。

[数式]の[しきい値]を[0~1]の範囲で調整すると、白黒の範囲を操作できます。
[0]に近づくほど黒の範囲が広がり、[1]に近づくほど白の範囲が広がります。

この白黒の範囲を、[ディフューズ]の陰影を元に操作します。
4.[シェーダーのRGB化]の[カラー]を、[数式]の[しきい値]に接続します。
これで[Gaborテクスチャ]の模様に陰影がつきます。
※[ディフューズ]の陰影を数値として扱うと、明るい部分ほど[1]に近づき、暗い部分ほど[0]に近づく値になるため。

さらに、陰影を調整する仕組みを加えます。
5.[Shift+A>コンバーター>範囲マッピング]を追加します。

6.[範囲マッピング]を、[シェーダーのRGB化]と[数式]の間に接続します。

[範囲マッピング]の[最大へ]の値を小さくすると、全体的に模様が暗くなります。

[最小へ]を操作すると、陰影のコントラストを調整できます。
値を小さくするとコントラストが強くなり、大きくするとコントラストが弱くなります。
※[最小へ]を[最大へ]より大きい値にすると、陰影が反転して白になるので注意してください。

これで今回必要なすべてのノードがそろいました。
ノードツリー全体を見ると、下の画像のようになります。

ハーフトーンと同じく、[Gaborテクスチャ]の[スケール]、[頻度]、[異方性]、[座標系]で模様の調整ができます。
画面で確認しながら、作りたい質感に合わせて調整してください。
※下の見本では、状況に合わせて[範囲マッピング]で陰影も調整しています。

ちなみに[異方性]を[0]にすると、レトロな新聞写真風のドット表現になります。
その場合は、次の2つがポイントです。
- [頻度]はデフォルトの[2]のままにする
- 明るい部分が白飛びしやすいので、[範囲マッピング]の[最大へ]を少し小さくして、全体的に模様を暗くする

以上、「Gaborテクスチャで手描き風ハーフトーンの作り方」でした。
使用した3Dモデル
アイキャッチの仁王像はこちらからお借りしました。
- 仁王像 阿行:Niou Statue, A-Gyo by kazugoru is licensed under CC Attribution-NonCommercial-ShareAlike.
参考サイト
- Blenderマニュアル:Gabor Texture Node
- Blender Developer Forum:Gabor Procedural Texture Node
- MODO JAPAN GROUP:NPR Kit チュートリアル 03/Gabor Noise編