Blender2.8でトゥーンシェーダーを作る!

 
こんにちは!もろりんです!

Blenderはまずルックをメインに使いたい!
ということでさっそくトゥーンシェーダーを組んでみました。

※Blender触り始めて数日なので間違いや抜けてるとこ多いかもです。

関連記事

[あいさつ] Blender2.8が正式にリリースされましたね。 https://twitter.com/blender_org/status/1156232354295402497 Blender2.7は一瞬だけ触ったことがあ[…]

下準備

オブジェクトの作成

ビューポート左上の[追加 > メッシュ > UV球]を選択し球体を作成。

ビューポート右上の[<]をクリックすると[トランスフォーム]が開きます。
位置を0,0,1に(原点より上に設置)

作成した直後だとオブジェクトがカクついているので、
[オブジェクト > スムーズシェード]を選択します。

カラーマネジメントの設定

Blender2.8のカラーマネジメントはデフォルトだと[Filmic]になっています。
[Filmic]はフォトリアルなルックになります。

今回はテクスチャの色をそのまま出したいので設定を[標準]にします。

[プロパティ > レンダー > カラーマネジメント]を開き、ビュー変換を[標準]に変更します。

レンダープレビューの表示

Z長押しから[レンダー]を選択しレンダープレビューに表示を変更します。

シェーダーエディターを開く

ビュー左下にカーソルを合わせるとカーソルが[+]になります。
その[+]を上にドラッグするとビューを分割できます。
(ビューの四角どこからでもどの方向にも分割できます。)

新規ビューの左上にある[エディタータイプ]から[シェーダーエデイター]を選択します。

シェーダーを組む

メインのトゥーンシェーダーの組み方です。
最終的にはこのような感じになります。

マテリアルの作成

では1つずつやっていきましょう。

まずオブジェクトを選択し、プロパティからマテリアルのタブを開きます。
[新規]をクリックしマテリアルを作成します。

ベースの作成

シェーダーエディター上で[Shift+A]を押しノード一覧を開きます。
[シェーダー > ディフューズBSDF]を追加。

プリンシブルBSDFは削除してください。

[ディフューズBSDF]のBSDFを[マテリアル出力]のサーフェスに接続します。
あまり変わりませんが見た目はこのような感じです。

[コンバーター > カラーランプ]、
[コンバーター > シェーダーからRGB]を追加
し、画像のように接続します。

[カラーランプ]のリニアを一定に変更するとこのように。
トゥーンシェーダーぽくなってきました。

この白黒のシェーディングをマスクに使います。

[入力 > RGB]、
[カラー > RGBミックス]を追加
し画像のように接続します。

[RGBミックス][色1]に接続しているのがシャドウカラー、[色2]に接続しているのがベースカラーです。

先程の白黒シェーダーをマスクとし、[RGBミックス][色1](シャドウ)[色2](ベース)を上書きしています。

このRGBをテクスチャに置き換えるとさらに自由に色を設定できます。

フレネルの追加

[入力 > フレネル]を追加。
[カラーランプ]を接続すると画像右のようになります。

フレネルについての説明は省きますが、画像のようにカメラを向いていない面(外側)が白くなります。これを利用しマスクを調整します。

[コンバーター > 数式]を追加し画像のように接続します。
[数式]を最大に変更(追加のままでも問題ないです)

単にフレネルを入れるのではなく影の範囲を制限しています。

ハイライトの追加

ベースの作成と同じ内容なので省略します。
画像のようにノードを追加、接続します。

アウトライン(フレネル)

[フレネル]を使いアウトラインを作成します。
後ほど出てくる背面法によるアウトラインには出せないラインを出せます。
(球体だと分かりづらいので、凹凸のあるオブジェクトを用意しどのような違いがあるか試してみてください)

画像のようにノードを追加、接続します。

アウトラインの作成

次にアウトラインを作成します。
背面法という昔からある手法を使います。

マテリアルの作成

まずオブジェクトを選択し、プロパティのマテリアルを開きます。
+をクリックしマテリアルスロットを追加、新規でマテリアルを作成します。

新規作成したマテリアルのブレンドモードをアルファブレンドに変更します。

[入力 > ジオメトリ]、
[シェーダー > シェーダーミックス]、
[シェーダー > ディフューズBSDF]、
[シェーダー > 透過BSDF]を追加。

画像のようにノードを接続します。

オブジェクトを裏面のみ黒く表示しています。
※この時点では見た目に変化はありません。

背面オブジェクトの作成

オブジェクトを選択し、プロパティのモディファイアーを開きます。
[モディファイアーを追加]から[ソリッド化]を選択します。

[ソリッド化]の設定を変更します。
法線を反転にチェックを入れ、マテリアルインデックスオフセットを1に変更。
幅をマイナスの任意の数値に設定します。
(幅の値で線の太さを調整できます)

フレネルによるアウトラインのせいで分かりづらいですが、最終的にこのようになります。
※ちゃんと表示されているか確認したい時はフレネルのアウトラインを消してみましょう。

影のみを表示

おまけに。
影用の板を地面に配置する際、影だけ表示されるようにシェーダーを組んでみます。

[追加 > メッシュ > 平面] で平面メッシュを作成。
位置を0,0,0に、影の大きさに合わせてスケールを調整します。

平面メッシュを選択しマテリアルを作成、ブレンドモードを[アルファブレンド]に設定します。

画像のようにシェーダーを組むと影のみ表示されるようになります。

白い部分(影じゃない部分)を透過しています。

まとめ

長くなりましたがこれで基本的なトゥーンシェーダーができたかと思います。
前述にあるように今はRGBノードで色を指定してますが、テクスチャに置き換えることで表現の幅が広がります。
(影をハッチングテクスチャにすれば漫画のような表現も可能)

ちなみにどうやら背景色の影響を受けているみたいなのですが、そのあたりの設定はまだ分かってないので今後ということで・・・
補足記事書いたので詳しくはこちらで!

関連記事

[あいさつ] 前回大好評だったトゥーンシェーダーですが、ちょっとした追加や簡易版の作り方などをご紹介します。 [sitecard subtitle=関連記事 url=https://mororin.com/archives/1597] […]


ともかくやっぱりノードは直感的で楽しいですね!
これを機に色んなシェーダーを作成してみてください。

それではまた!