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

Autodesk(オートデスク)

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

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

[st-card myclass=”” id=1530 label=”” pc_height=”” name=”” bgcolor=”” color=”” fontawesome=””]

準備

シェーダーを組む前にオブジェクトの用意や環境の設定を行います。

※初めてblenderを触る方のためにオブジェクト作成から説明します。

オブジェクトの作成

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

ビューポート右上の[<]をクリックすると[トランスフォーム]が開きます。

位置を0,0,1に(原点より上に設置)

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

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

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

[st-mybox title=”ポイント” fontawesome=”fa-check-circle” color=”#FFD54F” bordercolor=”#FFD54F” bgcolor=”#FFFDE7″ borderwidth=”2″ borderradius=”5″ titleweight=”bold” fontsize=”” myclass=”st-mybox-class” margin=”25px 0 25px 0″]

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

[/st-mybox]

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

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

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

ビュー左下にカーソルを合わせるとカーソルが[+]になります。
その[+]を上にドラッグするとビューを分割できます。

[st-mybox title=”ポイント” fontawesome=”fa-check-circle” color=”#FFD54F” bordercolor=”#FFD54F” bgcolor=”#FFFDE7″ borderwidth=”2″ borderradius=”5″ titleweight=”bold” fontsize=”” myclass=”st-mybox-class” margin=”25px 0 25px 0″]

ビューの四隅どこからでもどの方向にも分割できます。

[/st-mybox]

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

シェーダーを組む

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

マテリアルの作成

では1つずつやっていきます。

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

ベースの作成

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

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

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

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

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

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

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

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

[st-mybox title=”ポイント” fontawesome=”fa-check-circle” color=”#FFD54F” bordercolor=”#FFD54F” bgcolor=”#FFFDE7″ borderwidth=”2″ borderradius=”5″ titleweight=”bold” fontsize=”” myclass=”st-mybox-class” margin=”25px 0 25px 0″]

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

[/st-mybox]

フレネルの追加

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

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

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

今回はフレネルを影の範囲を制限するのに使います。

ハイライトの追加

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

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

[フレネル]を使いアウトラインを作成します。

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

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

アウトラインの作成(背面法)

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

マテリアルの作成

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

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

[入力 > ジオメトリ]
[シェーダー > シェーダーミックス]
[シェーダー > ディフューズBSDF]
[シェーダー > 透過BSDF]を追加。
画像のようにノードを接続します。

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

背面オブジェクトの作成

オブジェクトを選択し、プロパティのモディファイアーを開きます。

[モディファイアーを追加]から[ソリッド化]を選択します。

[ソリッド化]の設定を変更します。

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

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

影のみを表示

おまけに。

影用の板を地面に配置するのですが、せっかくなので影だけ表示されるようにシェーダーを組んでみます。

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

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

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

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

まとめ

長くなりましたがこれで基本的なトゥーンシェーダーができたかと思います。

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

画像はこのシェーダーで作ったBB-8です。かわいいですね。

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

[st-card myclass=”” id=1909 label=”” pc_height=”” name=”” bgcolor=”” color=”” fontawesome=””]

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

それではまた!

Autodesk(オートデスク)

14 件のコメント

  • 物凄く参考にさせて頂きました!
    アニメの世界観で機械モデリングを嗜んでいますが助かりました!
    ありがとうございます!

  • こんにちは。こちらの記事を参考にセルシェーダの勉強をさせてもらっています。
    いくつかお伺いしたいのですが、もろりん様の作ったセルシェーダはどのようなライトの設定で影のコントロールをしていますか?また、落ち影の表現に苦戦しており、どうにかもろりん様の作例のような綺麗な影を出したいと思っているのですが詳しく教えていただけないでしょうか?

    • お返事遅れて申し訳ないです・・・
      ブログを放置してたのとコメント通知を見逃してました・・・

      落ち影についてはライトの影の指数を上げて緩和しています。
      他にもっと良い方法があると思うのであくまで参考程度ですが。

  • こんにちは。Blender2.8のトゥーンレンダリングの方法を探してこのブログに辿り着きました。ノードの操作自体初めてで苦労しましたがなんとかブログの内容通りに作ることが出来ました。
     そこで質問なのですがzbrushでモデリングしてテクスチャもzbrushで作ったものをBlenderに読み込み、トゥーンレンダリングしようとしたんですがテクスチャ自体がぼやっとしたものだったせいでアニメっぽい見た目に出来ませんでした。
     もしアニメっぽい見た目のキャラを作るならzbrushでモデリングした後テクスチャは作らずにBlenderに読み込ませ、そこでマテリアを当てて色を付けたほうが良いのでしょうか? 因みに自分は過去にBlenderでUV展開やテクスチャ作りに挫折したのでモデリングからUV展開からテクスチャ描きまで全部zbrushで済ませてます。
     長々と質問すみませんでした。

    • こんにちは!ブログをご覧いただきありがとうございます!
      画像を見てみないと具体的なことは言えませんが、何点か書いてみたので参考になれば嬉しいです。

      blenderで見た目を調整するのであれば、テクスチャもblenderで描いた方がリアルタイムに確認できるので調整はしやすいと思います。
      ただ他ソフトでテクスチャ作ってblenderに読み込むやり方でも十分制作は可能です。

      慣れないうちは、テクスチャを少し描いてはblenderに読み込んで確認し、ちょっとずつイメージに近づけていくことが大事です。

      またテクスチャがぼやっとしたものとありますが、まずは影やAOのようなものは入れずにフラットに色分けのみの方がアニメっぽい雰囲気にはなりやすいかと思います。

      あとはZburshでスカルプトしたモデルだと、ポリゴン数が多すぎる可能性があります。
      細かい凹凸はシェーディングが汚くなる要因ですので、なるべくシンプルでなめらかなメッシュにすることで影の入り方等も綺麗になります。

      • 返信ありがとうございます。
        指摘頂いた点を見直してテクスチャをもっとアニメみたいにパッキリとしたものにして何回かzbrushからインポートを繰り返したら上手く行きました! 腋の下や首筋など意図して影を描いたせいで汚くなってしまってたみたいです。
        もろりん様のブログのお陰でノードの使い方にも慣れてきました。本当にありがとうございます。

        • お役に立てたようで良かったです!
          近いうちにブログ再開するつもりですのでこれからも見ていただけると嬉しいです!

  • トゥーンレンダリング/NPR [Blender] – Site-Builder.wiki へ返信する コメントをキャンセル

    メールアドレスが公開されることはありません。