終わりにはじめにBlenderでMMDモデルを趣味で制作しています。前回、ボディメッシュに合わせる顔のパーツ、髪、衣装等を制作しました。2023/5/24シェーダーについては色のみを指定した仮の設定でしたので、今回は、各メッシュに対してShadingでノードを繋ぎ、それぞれのマテリアルを作成しました。加えて、よく分かっていないところも多いので、少しシェーダーについて調べてみました。記事の内容については正確性を保証致しません。解説ではなく、個人のメモ、備忘録のような情報としてお読みください。以下の環境でモデルの制作を行っています。前回に引き続き、いつもお世話になっているmmCGチャンネルさんのキャラクターモデリング解説シリーズ動画を参考にさせて頂きました。今回はシェーディング解説の#1及び#2を参考にさせて頂きました。各動画のリンク先は末尾に記載させて頂きます。成果3Dビューのシェーディングはレンダープレビューです。Previewプレビューモードの違いでかなり印象が変わりますね。陰影がハッキリしている方がより立体的で少し締まって見えるように感じます。各マテリアルの色は動画で案内されている数値に合わせました。瞳のテクスチャ画像は、動画を参考に、複製した瞳のメッシュに頂点ペイントを行い、画像レンダリングで作成しました。BSDF等、シェーダーノードやシェーダーについて調べてみました。参考書籍Benjaminさんの書籍を参考にしました。3DCGスーパーテクニック該当する章では各シェーダーノードの効果、使用方法が説明されており、とても役に立ちました。書籍の詳細は末尾に記載させて頂きます。Editorには画像のようなノードが組まれていると思います。BSDF」シェーダーノードに「マテリアル出力」出力ノードが接続されただけのシンプルな構造です。シェーダーノード陰影処理によりオブジェクトの質感を表現する役割をするようです。それぞれ素材によって質感は違っていて、それに対応したシェーダーノードを選択し、レンダリングにその質感を反映させる、と考えたらよいでしょうか。BSDFが使用されていることがわかります。このノードでベースカラーはRGB全て0.8に設定されています。これと他の各種設定を反映すると、立方体は白っぽい色で質感が再現される、という仕組みのようです。BSDFについて以下の説明があります。node.https://docs.blender.org/manual/en/3.3/render/shader_nodes/shader/principled.html色々な要素がひとつに集められた便利なシェーダーノード、と考えたら良さそうです。BSDFを使用しておけば間違いはなさそうです。Manualを参照すると、出力ノードについてこのような説明があります。tree.https://docs.blender.org/manual/en/3.3/render/shader_nodes/output/index.html接続されたノードツリーの終着点は出力ノードになる、ようです。Editorで確認すると、出力ノードにはマテリアル出力が使用されていることがわかります。BSDFとマテリアル出力の接続を切ってみます。Editorベースカラーの水色が反映されず、黒く表現されています。シェーダーノードを設定しただけでは効果はなく、出力ノードに接続することで設定した質感が再現される、ようです。出力ノードには計4種類のノードが存在するようですが、ちょっと調べた限りでは、とりあえず「マテリアル出力」ノードを使用すれば良さそうです。経験を積んでいけば、他の出力ノードを使う機会もあるかもしれません。Editorで作成されるマテリアルの情報は、Propartyのマテリアルプロパティからも確認できます。Editor「サーフェス」に出力ノードに直接繋がれたシェーダーノードが表示されるようです。Shaderが表示されており、マテリアルプロパティからでも各設定(ソケット未接続時の値)を変更することが可能です。BSDFとEmissionが接続されており、それらのシェーダノードもマテリアルプロパティに表示されており、同様に各設定の変更が可能です。BSDFとマテリアル出力が接続されていました。Preview等で立方体は白色の質感が再現されています。BSDFとマテリアル出力が接続されたシェーダーが組まれています。BSDFのベースカラーを好みの色に変更するだけで、質感の変化は目に見える形で確認できます。新規で立方体メッシュを追加し、新規マテリアル作成後、ベースカラーを変更してみました。立方体を白色から水色に変更することができました。BSDFをマテリアル出力に繋いだのみであり、多くの場合、調整した項目はベースカラーのみとなります。マテリアル出力シェーダーノードを変えてみる単に色を変えるだけなら、上記のようにベースカラーを変更するだけで事足ります。質感にこだわるのであれば、シェーダーノードの変更や、スペキュラーやIOR等、他のパラメータを変更する必要があるし、その値の調整に様々な種類のノードを接続する必要がある、ということのようです。シェーダーノードを変更してみます。BSDFの例を挙げます。Preview画像レンダリングガラスの床に明るい立方体が映り込んでいる様子が確認できます。BSDFをシェーダーノードに使用しました。BSDFから変更したのみです。(Emissionのカラーのみ上記立方体の水色の数値を入力しました)シェーダーノードを変えるだけでも、質感は変化します。Editorだけでなく、レンダープロパティで間接照明とスクリーンスペース反射の設定が別途必要でした。今回取り組んだアニメシェーダーでは、複数のノードが使用されています。シェーダーを組むに当たり、このキャラクターには各マテリアルに付き5~6個のノードが使用されています。(ノード接続の具体例についてはmmCGさんの動画をご覧下さい)各ノードを繋ぎ合わせることで非写実的・写実的な質感をミックスし、アニメ調なシェーダーを作成している、ということだと思います。Manualによると「シェーダーからRGBへ」ノードについて下記のように紹介されています。(シェーダーからRGBへ)ノードは通常、BSDFの出力に追加効果を適用するための、非写実的なレンダリングに使用します。shader.(たとえば、diffuseBSDFの出力にカラーランプを使用して、柔軟なトゥーンシェーダーを作成できます。BSDFの出力を変換して非写実的なレンダリングに使用する、というのはメジャーな手法らしいです。Shaderに繋ぐだけがシェーダーノードの使い道ではないようです。レンダーエンジンレンダーエンジンによって使用できるノードと使用できないノードが存在するようです。BSDFを例に挙げます。Editorのノードリストに表示されませんが、レンダーエンジンがCyclesの場合、表示され、使用が可能です。Previewで質感が再現されますが、エンジンをEeveeに変更すると処理が行われなくなります。BSDF等も同様に、レンダーエンジンがCyclesでないと使用できないようです。Shaderの係数にキーを打って、アニメーションを作成しました。BSDFが100%の質感から始まり、徐々に変化、100フレーム目で係数1.00、Emissionが100%の質感に至り、再生は終了します。レンダーエンジンがCyclesであれば、間接照明はフレーム毎に演算されるようですが、Eeveeの場合、間接照明ベイク時の設定状態がフレーム遷移中も維持されるらしく、徐々に放射が強まっていく様子は再現されませんでした。ManualにEeveeの間接照明について以下の記述が見られます。versions.(今現在、照明キャッシュは静的でレンダリング前に計算されている必要があります。フレームごとにこれを更新することはできません(プログラミング無しでは)。この制限は現在改善中で将来的には取り除かれるでしょう。)https://docs.blender.org/manual/ja/4.0/render/eevee/render_settings/indirect_lighting.html“スピードと対話性”を重視するのがEevee、であるらしく、確かに編集中の視点操作に対してレンダリングが遅れずに更新されていますね。った後、レンダリングが整う感じです。(この辺りは私の開発環境のスペックも大きく関係していると思います)アニメーションレンダリングの所要時間について言えば、Eeveeは1分もかからなかったのに対して、Cyclesの場合およそ2時間弱程かかりました。(きちんと計測していませんが、少なくとも1時間では終わりませんでした)Shaderで遊んでみる質感を変えて楽しみつつ、キャラクターに合う色を探してみます。瞳の画像テクスチャ出力したUV配置図を元にProcreateで作成しました。Paintで作成を行わず、外部のペイントソフト「Procreate」で描いた後、それを画像テクスチャノードで読み込みました。Blenderから瞳のUV配置図をエクスポートするProcreateで瞳のUV配置図を読み込むUV配置図を下絵に新規レイヤーで瞳を描く完成した瞳のテクスチャ画像をPCにアップロードする画像テクスチャノードで瞳のテクスチャ画像を読み込む一方、今回、初めて頂点ペイントで瞳の画像を作成しましたが、動画で説明されている通り、一時的に頂点数を増やせばかなり細かい所まで描ける、と感じました。(上の3点の瞳画像ではなく、青が基調の瞳は頂点ペイントで描いています)私は描くことが好きなのでProcreateを使って描くこともありますが、テクスチャ画像作成のために別にペイントソフトの用意が必要か、と訊かれれば、そんなことはないのでは?、と思います。(素人の考えですが)髪の色カラーランプ内のカラーストップの色を変更してみました。髪飾りとの相性はピンクが良さそうです。瞳のテクスチャはあまり合っていない感じがします。明るさが足りないのかもしれないです。髪飾りの材質を部分的に変更してみました。BSDF瞳のシェーダーノードをEmissionに変更してみました。BSDFを使ってみました。明る過ぎるでしょうか?キャラの表情は生き生きとしてきた気がします。終わりにShaderに関する知識や経験を増やしていきたいです。nodescommentコメントをキャンセルTwitterYouTube。