機械系エンジニアの備忘録

20代独身社会人。仕事では機械・機構の研究開発を行っているエンジニアが、自分の専門分野ではないpythonを扱って楽しむブログです。

MENU

【Blender#58】トゥーンシェーダの作り方と応用編

Cyclesでセルルック(トゥーンシェーダー)を作る方法と応用編

f:id:stjun:20220220151431p:plain

こちらはCyclesでトゥーンシェーダを作り、応用として粒度感を追加してみました。画用紙に描いたような雰囲気で気に入っています。

 

 

1. 初めに

Blenderレンダリング方式にはEeveeとCyclesがあります。Cyclesは「レンダリングに時間かかるが周辺の反射光等も計算するためリアルな表現が可能」という特徴があり、逆にEeveeは「光の屈折や反射などを最小限に抑えるためリアル感に劣るがレンダリングが早い」といった特徴があります。

調べてみるとYoutubeや記事でトゥーンレンダリングに関するチュートリアルがありましたが、そのほとんどがEeveeでCyclesはほとんどありませんでした。個人的にはCyclesでトゥーンレンダリングをするとEeveeよりリアルさを残しつつトゥーン表現ができるので結構好きです。以前、Cyclesで簡単にトゥーン表現をするノードを紹介しました。今回はその続きになります。また今回は応用編としてハーフトーン的な表現方法も紹介します。

↓過去記事

www.stjun.com

 

2. 説明

2.1 そもそもトゥーンシェーダーとは?

トゥーンシェーダーについて簡単に紹介します。トゥーンレンダリングとも呼ばれますが、漫画やアニメのように①明るい部分(光が強く当たる部分)、②中間の部分、③暗い部分(影の部分)の3つをくっきり塗り分ける手法のことです。業界的にはセルルックと呼ばれる事が多い気がします。というのはアニメで元々使われていたセル画の技法を3Dモデリングでも真似しようとして生まれた手法なので、「セル画のような見た目」という意味でセルルックと呼ばれるているのだと思います。海外ではNPR(Non-Photorealistic Rendering⇒ノンフォトリアル)と呼ばれることが多いです。もし海外サイトでチュートリアルを探す場合は「Blender NPR」で探すと目的の記事や動画がヒットすると思います。

トゥーンシェーダーは比較的簡単でありながら見栄えも良く、またレンダリングの負荷も少ないのでアニメーションやリアルタイムレンダリングが必要なゲームなどに使われています。例えばギルティギア(特に最新作のGUILTY GEAR -STRIVE-)という格闘ゲームは非常に綺麗なセルルック表現がされているので興味がある方はぜひチェックしてみてください。

 

2.2 シェーダーの基本構造

シェーダーの基本構造を説明します。以下のように2つのトーンBSDFをミックスシェーダで組み合わせます。トーンシェーダーの片方はディフューズ、もう片方は光沢にしてください。後は色、サイズ、スムーズなどを変更するとトゥーン表現ができます。基本構造はこれで完了です。

f:id:stjun:20220220235618p:plain

 

3. 応用編

3.1 粒度感を出す方法

次に応用編に入ります。以下のように2つのトーンBSDFのノーマルに、ボロノイテクスチャをバンプで接続します。すると以下のように円形の凹凸が出現します。

f:id:stjun:20220221000402p:plain

これは何をやっているかというと、テクスチャ座標をウェインドにし、ボロノイテクスチャのランダムさを0にすると以下のように等間隔に模様が発生します。

f:id:stjun:20220221000740p:plain

そしたらカラーランプを接続して白黒の境界をくっきりさせます。これで水玉模様ができます。

f:id:stjun:20220221000825p:plain

この白黒に対してバンプを接続することで擬似的な凹凸を表現しています。ボロノイテクスチャのスケールを大きな値にすると非常に細かい凹凸が作れます。このようにして画用紙に描いたような粒度感を表現しています。

f:id:stjun:20220221001118p:plain

 

3.2 スクラッチ感(細い傷)を出す

3.1で紹介したノードで、バンプより左の部分(テクスチャなど)を変更すると様々な表現が可能になります。例えば以下のようなノードを組むとスクラッチ感が出せます。

f:id:stjun:20220221001609p:plain

作例はこちらです。

f:id:stjun:20220221002012p:plain

さらに以下のよう、テクスチャをミックスカラー(乗算)でトーンシェーダの色にも追加してあげます。するとこんな感じで全面を鉛筆で軽く塗りつぶしたような表現になります。

f:id:stjun:20220221002203p:plain

作例はこちらになります。

f:id:stjun:20220221002331p:plain

 

3.3 ストライプ(波線)をつける

ストライプをつけることもできます。例えば以下のようにノードを組みます。するとこのような形でモデル全面に斜め45度の斜線が入ります。

f:id:stjun:20220221002834p:plain

作例はこちらです。ストライプと少しだけ汚れをつけてみました。

f:id:stjun:20220221002958p:plain

 

3.4 おまけ:メカっぽい模様(六角形)

以下のように六角形のノードを繋ぐとメカっぽい模様をつけることもできます。

f:id:stjun:20220221003426p:plain

作例ではさらに細かくして粒度感を出してみました。

f:id:stjun:20220221003338p:plain

 

3.5 おまけ:明るい部分には模様をつけたくない場合

表現として影の部分だけ模様をつけたい場合もあります。その時は以下のように光沢のトーンBSDFの方に反転ノードをつけると明るい部分の模様が目立たなくなります。

f:id:stjun:20220221003602p:plain

 

4. おすすめ

以下の本はお勧めです。

 

5. 最後に

このノードを使えば、トゥーンレンダリングに様々なアクセントを付けれるのでぜひ色々試してみてください。