24_33

BLENDER-99-24/Cyclesマテリアルの基本3

Cyclesマテリアルの基本も第3回を迎えました。
前回までの2回で学んだマテリアル(シェーダー)はたったの2つだけ!

基本の基本、DiffuseとGlossyシェーダーでしたね。

こんなにスローペースのチュートリアルサイトは他にありませんから、誰ひとりおいてけぼりにしない覚悟で、今日も行きますよ。

【Blender-99 絶対に挫折しない3DCG入門 -24 Cyclesマテリアルの基本-3】

【今回の学び】

・Cyclesマテリアルを組み合わせる
・Glossyシェーダーとフレネル反射

前々回と前回でDiffuseとGlossyシェーダーをそれぞれ学びました。でもどうやら、この2つだけで実存する物質を表現するのは難しいような感じがします。前回の最後に学んだ〈フレネル反射〉にしても、シェーダーの設定を見る限り、どうやってやったらいいのかさっぱり分かりませんし……。

Glossyシェーダーの基本的な設定画面を見ると、これしかありません。

基本的な設定は実にシンプル
基本的な設定は実にシンプル

見る角度によって反射が変化して見えるためには、何かしら複雑な設定があって然るべきなのに……。

そこで登場するのが、今回初めて学ぶ〈Node Editor(=ノードエディター)〉です。ノードエディターの機能(画面)には、こちらからアクセスします。画面下メニューのいちばん左です。

24_02

切り替えると、何だか変なものが出てきます。この一つ一つの四角のことを〈ノード〉と呼びます。ノードとは、辞書的な意味で言うと、「こぶ」「ふくれ」「節」のことです。

ノードの一つ一つは何か一つだけの機能をプログラミングする小さな塊で、ノード同士が繋がることで、一連の機能や動作を実現するプログラムになります。

このノード同士の繋がりのことを〈ノード・ネットワーク〉と呼びます。別に覚える必要はありませんが……。24_03

 

これをいきなりいじり始めるのも少しハードルが高いので、まずはマテリアルパネル内の設定を変更することでここの表示が追随する様子を見てみます。

 

 

シェーダーを変更したことがプレビュー出来るように、画面を2つに分割してから始めます。

スザンヌを選択し、現在Glossyになっているシェーダーを、Mix Shaderに変更します。「Glossy BSDF」と書かれたところをクリックし、「Mix Shader」を選択するだけです。

「Mix Shader」は呼んで字のごとく、2つ以上のシェーダーを混ぜるためのシェーダーの箱のようなものです。前回学んだ一覧をもう一度載せましょう。分類としては「質感を合成するために用いるもの」にしましたね。

23_06

 

シェーダーをこれに変更すると、今までの設定は失われて空っぽのシェーダーが2つ生成されます。合成するための箱だけになって中には何のシェーダーも入っていないからです。

スザンヌとマテリアルプレビューを見ると、何も質感が設定されていないためいずれも真っ黒です。

24_05

このとき、ノードエディターの表示を見ると……

24_06

先ほどまでGlossy BSDFだったものが、Mix Shaderに替わっています。右側の「Material Output」というものは変化がありません。

Mix Shaderの方を見ると、Shaderという文字が2つあります。これはどうやら、マテリアルパネルと同じものを指しているようですね。表示の方法が変わるだけで、ずいぶん違う感じに見えるものです。Material Outputの中にある「Surface」も、マテリアルパネルと同じもののようです。

では、マテリアルパネルで「None(=何もない)」になっている表示をクリックし、そこに来るべきマテリアルをリストから選びましょう。動画のようにDiffuseを選択し、続いて下側のシェーダー用にGlossyを選択してください。

24_07出来ましたか?

いつの間にか、画面左のノードエディターも同じような表示になっています。Mix Shaderの下にある緑色のに、新しく作成(選択)した2つのシェーダーが繋がりましたね。

どうでしょう、この2つの画面。マテリアルパネルで全部設定すればいいのに、どうしてノードエディターなんてものがあるのでしょうか?

あ、ノードエディターの画面の方が直感的で分かりやすいな。そう思った人はいませんか?

そうなんです。同じ設定を表示していますが、ノードエディターの画面は〈どの設定がどこにあって、何に影響しているのか〉がとても分かりやすく作られています。

右端のMaterial Outputが、まさにシェーダーを設定した結果が集約される部分です。左側にある2つのシェーダーがMix Shaderで合成されて、最終的に右端のアウトプットに出て行く様子が、一目で分かりますね。

一方でマテリアルパネルの表示は同じようなサイズの四角い領域が下へ下へと増えていって、どの四角がどの四角と関係しているか分かりづらく、直感的ではありませんね。

それでは、ノードエディターを用いて前回概論だけ学んだフレネル反射を付け加えてみましょう。これは、2つのシェーダーの〈合成の仕方〉の部分に設定します。Mix Shaderの「Fac」の部分を見てください。

24_08b

FacとはFactor(=因子)という言葉の略だと思いますが、確かではありません。
 (BlenderGuruという有名なチュートリアルサイトのAndrew Price氏がいつもビデオでFactorと言っているので、多分間違ってはいないと思いますが……)

このFacは、初期設定で0.5という値になっています。これは、2つのシェーダーを半分ずつ合成しますよ、という意味です。

Glossyシェーダーの方のRoughness(=粗さ)を0に設定し、レンダリング・プレビューを見てみます。これが現在の質感です。
24_08
まさに2つのシェーダーが50:50で合成され、プラスチックのような質感になりました。でも、プラスチックでもありません。プラスチックはこんな風に、どこもかしこもツヤツヤではありませんものね。

ノードエディターで、反射にフレネル値を加えます。やり方は簡単。下のGIFどおりにやれば、すぐ出来ます。

ノード・エディターで編集すると、右側のマテリアル・パネルの表示も自動的に変化します。
ノードエディターで編集すると、右側のマテリアル・パネルの表示も自動的に変化します。

 

手順です。

・ノードエディター画面の下にあるメニューから、「Add」をクリック

・表示されたメニューの一覧から「Input」をクリックし、続いて「Fresnel」をクリック

・「Fresnel」ノードが生成されます。

・生成直後はそのまま移動出来る状態になっているので、マウスを動かしてMix Shaderの上あたりに持っていきます。もちろん、動かすときはクリックせず、確定のときにクリックします。
もし途中で移動をやめてしまったら、焦らずGキーを押して移動モードに入ります。
もしももしも選択も解除されてしまっていたら、焦らずにFresnelノードをクリックして選択(オレンジ枠が付く)、続いてGキーを押して移動させます。

・Fresnelノードの右側に「Fac」と書かれたがあります。そのをプレスして右下へドラッグします。紐のようなものが伸びます。

・紐の右端をMix ShaderのFacに繋ぎます。の上にドラッグすると繋ぎ口に吸着され、オレンジ色だった紐がグレーになります。

・マウスボタンを放すと、2つのノードが繋がります。

スザンヌがこんな質感になりましたか?
スザンヌがこんな質感になりましたか?

余分な艶が抑えられた自然な感じの質感になりました。でも、これはいったい何の物質の質感なのでしょうか?

ここで、Fresnelノードの中にある「IOR」の値に注目してみます。

24_11

IORとは、「Index of Refraction(=屈折率)」の略です。光が物体に当たって屈折する割合のことを示します(難しい物理の式のことは僕も分かりません。そんなようなもの、という程度の理解で問題ありません)。

これは、初期状態で1.45という値になっています。この値の屈折率を持つ物体は何か調べてみると、次のようなものがあります(1.45ジャストでないものも含みます)。

・マーガリン、ショートニング、望遠鏡・眼鏡・カメラ用レンズなどなど

上図のスザンヌは、上述のどれにも見えませんよね。これはどうしてかと言うと、上述の物質はいずれも光を通す物質だからです。先ほど作ったシェーダーはあくまでも光が透過せず、表面で光を反射するものです。

この質感をマーガリンに見えるように編集するのは少々難易度が高いので、普通のプラスチックに見えるようにIORの値を変更してみます。

その前に、質感の違いを分かりやすくするためにシーンを調整しました。スザンヌのDiffuseシェーダー色を少し暗くし、左右に追加の光源を置いています。シーン内に置いたスザンヌも一体だけにしました。現在の屈折率だと、こんな感じに見えます。

24_12

この状態に設定されたシーンは、こちらからダウンロード出来ます。

準備は出来ましたか?

では、屈折率(IOR)を変更して、色々なプラスチックの質感を作ってみましょう。

まずはポリプロピレンから。IORは1.48です。

CDケース、スプレーのキャップなどに使われているプラスチック
CDケース、スプレーのキャップなどに使われているプラスチック

 

次はアクリル樹脂。屈折率は1.49~1.53となっていましたので、差が分かりやすいよう、1.53を使用しました。

24_14_153
とはいえ、違いはほとんど分かりませんね。

 

次は、エポキシ樹脂です。屈折率は1.55~1.61ですので、1.61を使用しましょう。

24_15_161

続いてフェノール樹脂(ベークライト)、屈折率は1.58~1.66。1.66にします。

24_16_166

さて、4種類のプラスチックを作成してみましたが、違いが分かりますか? え、全部同じに見えるって?

では、4つをGIFアニメで切り替えてみましょう。

0.2秒で1コマのアニメーションです。素早く切り替えることで、光沢の変化が見られます。
0.2秒で1コマのアニメーションです。素早く切り替えることで、光沢の変化が見られます。

 

他にどんなプラスチックがあるかな、と思い一覧を見ていますと、屈折率が全く同じものがたくさんありました。ポリエチレン、ポリアミド樹脂、ナイロンはいずれも1.53で、アクリル樹脂と同じ屈折率です。

既に述べたように、今回変えている値は表面の反射に対する屈折率だけです。実際の物体の質感を決定するのは、これ以外に〈表面の滑らかさ・粗さ〉〈光を透過する度合い〉〈透明度と内部の粗さ〉など様々です。

これらのうち、基礎編で簡単に違いを表現出来るのが、〈表面の滑らかさ・粗さ〉です。例えば、ポリエチレンの塊を想定してみます。実際にはかなり光を透過する物質なので、このような見え方はしないのですが……。

GlossyシェーダーのRoughnessを0.1(つまり10%ぼかす)にしました。

24_18

24_19
GlossyシェーダーのRoughnessが0.1

表面の感じは、何となくそれっぽくなったのではないでしょうか。

ちなみに、物体の中を光が透過するように設定(注意:「光が透過すること」と「透明であること」は異なります)すると、こんな感じに見えます。屈折率、Roughnessとも同じですが、ベースのシェーダーとしてDiffuseシェーダーでなく「Subsurface Scattering」という物質内部で光を拡散させるシェーダーを用いています。これはいずれちゃんと学びますので、今回は参考までに。

スーパーのレジ袋
これだと、本当にスーパーのレジ袋を固体の塊にしたような質感に見えませんか!
このようにきれいなレンダリング画像を得るためには、かなりの計算時間が必要です。入門編としてはそこまでの時間を掛けられない(=待てない)ですし、「えー、こんなに大変なの!」って、CGが嫌になってしまうのを避ける狙いもあって、このような質感は後回しにしようかな、と(笑

 

プラスチックっぽい質感の作り方(のごく基本的なところ)が何となく分かったところで、金属の質感をいくつか作成してみます。

まずは、銀です。

24_21
環境が真っ暗なので、頭の上が真っ黒に反射しています。右側に青っぽい部分があるのは、薄青色の光源を置いているからです。
屈折率は0.17、Roughnessを0.03にしてみました
屈折率は0.17、Roughnessを0.03にしてみました

あれ、と思いましたか?

金属の質感なら、Glossyシェーダーだけでも良いんじゃないか、って。

比べてみましょう。

24_23_glossy

確かにあまり違いは感じられません。ノードの構成は下記のようになるので、とてもシンプルです。

24_24

でも……と思いましたよね?

そうです。これで〈金属っぽい質感〉は作れますが、材質による質感の違いは〈表面が粗いか滑らかか〉しか表現出来ません。

もう一度、Mix Shaderによる金属表現に戻り、プラチナの屈折率である2.95を設定してみます。

あれれ?

プラチナのはずが……
プラチナのはずが……

これじゃあ全然プラチナじゃありませんよね。実は、金属質感のシェーダーを作るとき、基本色(=Diffuseシェーダーの色)を白っぽい色にしてはいけません。反射が入らない部分がその色になってしまうので、リアルな見え方から大きく外れてしまうのです。

では、どうするのか。

物体の色に影響を与えない色ということで、黒にするのが正解です。

24_26_platinum2

今度は随分黒くなってしまいました。グレーにするべきだったのでしょうか?

いいえ、金属ですから、周囲の色がばっちり映り込むのが当たり前。このシーンは環境が真っ黒なので、黒くなってしまうのです。暗い部屋にプラチナの指輪を落としてしまったら、闇に馴染んで見えづらいですよね。

環境のパネルに移り、背景色を変更しましょう。

背景色を真っ白にします

24_28_platinum3 24_29

どうですか?
だいたい想像したような質感になったのではないでしょうか。

ちなみに、銀の場合は屈折率の関係で基本色の影響はあまり受けないようです。背景色を白と黒に切り替えて比べてみました。

部分的にグレーと白が切り替わる部分があります。基本色の影響が出ているのは、反射が極めて弱いこの部分だけということになります。
部分的にグレーと白が切り替わる部分があります。基本色の影響が出ているのは、反射が極めて弱いこの部分(カメラに対してほぼ真正面を向いているあたり)だけです。

 

24_32
このGIFアニメはリピート設定にしていません。再生するにはクリックしてください

最後に、屈折率の値を徐々に変更したGIFアニメを作ってみました。基本色をピンクにして、影響が分かりやすいようにしています。

屈折率が1以上の場合、基本色と反射色□との関係はゆるやかなグラデーションを持った変化になっています。

屈折率が1未満の場合、両者の関係はかなり急激な変化を持っていて、2つの色の境界がくっきり見えてしまいます。これは表現上少々好ましくない結果を生みますが、実は金属の基本色は反射色とかなり似た色になっているものです。

例えば白いライトを金塊に反射させても光は金色になり、真っ白にはなりません。そのため、基本色と反射色の境目が多少くっきり見えても大きな問題になることは少ないのですね。

参考までに、金のシェーダー設定を載せておきます。

ただ、Glossyシェーダー単体でもほぼ同じような見栄えの質感になります。現実の世界では基本色と反射色がくっきり分かれてしまうようなことはありませんし、金属の質感を簡易的に作りたいときは、Glossyだけでも良いのかもしれません。

24_33

ちょっと分かるような分からないような話になってしまって申し訳ないのですが、今回の授業はこれにて終了とします。

最後に注意事項です。

こちらで掲載されたシェーダーの設定は、あくまでも入門用として簡易的に作成したものです。本当にリアルな質感を表現するためには、こちらに掲載した以外にも多くの設定をしなければなりません。
あくまでも、入門編の質感設定として覚えるようにしてください。

もっと正確なシェーダーを作成するためには、物理の知識も必要になります。でも、ご安心下さい。僕自身、そんな知識はこれっぽっちもありませんので。

そういうときは、アドオンなどで先人の知恵を拝借するのがいちばんです。

しかしながら、この〈Blender-99〉はBlenderの標準機能を用いて3DCG制作の楽しさに触れながら、基礎的なテクニックや知識を学ぶことが目的です。そのため、無料・有料・公式・非公式合わせて数限りなく存在する〈add on〉(=アドオン、機能を追加するソフト)にはあまり触れないことにしています。もちろん、Cyclesのような標準アドオンはきっちり学びますし、必要に応じて取り入れるようにしますが。

とはいえ、最後まで学習すればいろいろな作品を一人で作れるようになることは請け合いますので、そこはご心配なく!

少々長くてややこしい話もありましたが、しっかり頭に入りましたでしょうか?
繰り返し読んでも試しても分からないことがあれば、どうぞお気軽にコメントを残してくださいね。
ツイッターなどで質問してくださっても構いません(すぐにお答え出来るかどうかは分かりませんが)


 

屈折率引用サイト:『屈折率データ』

 

 


 

次回は、〈透明〉を表現するシェーダーについて学びます。

【今回の学び】

・様々なCyclesマテリアル
・Glossyシェーダーとフレネル反射
【次回の学び】

・透明を表現するシェーダー

今回も、お楽しみいただけましたでしょうか?
それでは、ぜひまた次回もお越しくださいね!

Happy Blending!!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>