[2.8] BI → EEVEE
「なんで2.80はまだベータで7月にリリース予定がずれ込んだのに2.80用のビデオチュートリアル既にたくさん出てんのさ?」って疑問に思ってる人たくさんいると思います。ぼくもそう思う。
さて、2.79から2.80の移行で大変な思いをするのがマテリアル、Blender Render(BI)からEeveeへの移行かな、と思います。パネル設定ベースからノードベースになる部分の考え方の切り替えに手間取る可能性はあります(BIでもノード組めますけど、自身ではほとんどやったことないです)。BIとEeveeで読み替える部分について基本的なところを書いてみました。
・ [2.8]マテリアル設定 も参照いただくと理解が進むと思います。
Shader Editor(2.79だとNode Editor)の使い方そのものについてここでは触れませんので、こちらの動画を。
3Dビューの表示:シェーディング
シェーディング設定が微妙に違います。プロパティシェルフにあったMultitextureとGLSLの表示切り替えは(Cycles同様)無いです。
あと3Dビューの見た目についてはあまり気にしないようにしましょう。
[2.79]
[2.80]
2.79の Texture 表示モードは Solid のオプションとして設定可能です。(Colorに"Texture"を設定)
カラーマネージメント
2.79と色味を合わせたい場合にはプロパティパネル、Renderタブ>Color Management >View Tranform の値を Filmic から Default に変更します。
[2.80]
マテリアル:シェーダー
Diffuse、Specular に指定できていたシェーダーはShaderノードに統合されました。適切なシェーダーを選択します(大体はPrincipled BSDF で賄えます)。
なお、2.80 には Toon BSDF Shader はありますが、Eeveeでは今のところ未実装です。
・ Toon っぽい表現は [2.8]BNPR - Cell Shading を参照してください。
[2.79]
[2.80]
(Eeveeの)質感について感じが掴みにくい、という場合にはPBR Materials Add-onを試してみると良いですね。
マテリアル:ソリッドカラー
ソリッドカラーのマテリアルを設定する時には、2.80ではDiffuse を指定すればよかったのですが、2.80では Use Nodes がONの時(デフォルトでPrincipled BSDFシェーダーが選ばれる)、Base Color に色を指定します。
[2.79]
[2.80]
マテリアル:テクスチャ画像
2.79ではプロパティパネルのマテリアルタブで変更対象のマテリアルを選択して、テクスチャタブを開く、という儀式めいた手順がありました。この辺りつまづかれた方もいると思います。あとMultitextureとGLSLの表示とかで混乱したりね。
2.80ではUV展開済みのメッシュであれば比較的簡単にテクスチャ画像を読み込んでマップ済みの画像を表示できます。
[2.79]
[2.80]
UV
2.79から持ってきたUV展開済みメッシュデータはUV情報を保持しているので、ひとまずUVマップがあるかを確認して、上記のテクスチャノードつなぐ方法で。
マテリアル:透過(Z Transparency)
単純に透過で、レンズのようになって歪まない画を作る場合にはGrassシェーダーを使って(+アルファ設定変更)実現できます。
2.79の Z Transparency
[2.79]
[2.80]
マテリアルの透過設定をAdditiveに変更する必要があります。
マテリアル:テクスチャ画像(アルファ透過)
「Eeveeでアルファをきっちり抜きたい」場合には公式に当てはめるかのような感じで以下のノード構成を使います。(2.80のPrincipled BSDFにアルファの入力項目が増えたのでそっちに直接繋いでもいいかもしれない)
Eeveeではそれに加えて、マテリアルの透過設定を指定する必要があります。
マテリアル:エミッション
常に明るい、そういう表現をしたい場合には Emission ノードを接続します。BIでは Shadeless を ON にした場合の表示ですね。
EeveeとCyclesでは微妙に異なる(Cyclesでは発光体として機能)ので、そこだけ気をつけてあげれば良いです。
テクスチャ画像を使用する場合はこのような感じになります。
実は2.80ではノードを介さないでカラーを直接出力できたりします。見栄えとしてはEmissionノード(Strength=1.0)を使った時とほぼ同じ。
ただ、直接カラー出力をシェーダー入力に接続するのはレンダリング時に情報が欠落するため、Emissionシェーダーをかますなどしてください。
ノーマルマップ
2.79では全体的に紫の画像を使う時はテクスチャをどのようにマップするかというのをテクスチャタブのパネルから指定していました。
2.80ではImageテクスチャノードに画像を指定、カラースペースをNon Color Data として Normal Map ノード経由で繋いであげれば良いです。本当にあっているかどうか知らないですけど。
・ Normal Map ノード追加は [Shift]+[A] > Vector > Normal Map
[2.79]
[2.80]
頂点カラー
2.79のBIでは頂点カラーはマテリアルの"Vertex Color Paint"というオプションを有効にすることでマテリアルに反映されました。
2.80では Data タブの Vertex Colors の情報をAttributeノード経由で頂点カラー情報を取り出します。([Shift]+[A]>Input>Attribute でAttributeノードを追加、NameにVertexColorsの定義名、デフォルトだと"Col"を指定)
[2.79]
[2.80]
まとめ
・ シェーディング設定が微妙に違う(表示オプションを確認しましょう)
・ カラーマネジメントのデフォルトが違う
・ シェーダーはPrincipled BSDFをよく使います
・ アルファ透過したい場合には観念してノードを覚える+透過設定
・ マテリアル出力にカラーそのまま突っ込めるらしい(非推奨)
・ ノーマルマップは"Non Color Data"指定
・ 頂点カラーは Attribute ノードを指定
お読みいただきありがとうございます。サポートいただいた分はおやつのグレードアップに使おうかと思います。スキ、SNSにシェアもよろしくお願いします!