忘却まとめ

Blenderの中級者・上級者向けの踏み込んだ情報や、アドオン・3DCGに関する情報を記事にします

【アルファ抜き】画像を透過し、影にも透過が反映されるようにする方法【Blender2.8】

Blender

更新日:

Blender2.8では、Blender Renderが廃止され、Cyclesのようなノードでのマテリアル編集をする必要が出てきた。この記事ではノードで画像の透過設定・影も透過する方法を紹介する。

手法 1. アルファに繋げる

基本的な質感は、最初から用意されている[プリンシプルBSDF]というノードだけで完結することができる。ややこしいノードを組む必要はない。
[アルファ]という項目が用意されているので、そこに画像テクスチャの[アルファ]同士をつなげればよい

  1. シェーダーエディターにする
  2. 追加(Shift+A) …… テクスチャ → 画像テクスチャ を設定する
    1. 画像テクスチャに画像を設定する
  3. 既存の[プリンシプルBSDF]のベースカラーに画像テクスチャのカラーを繋げる
  4. 既存の[プリンシプルBSDF]のアルファに、画像テクスチャのアルファを繋げる

手法 2. 透過ノードで作る

画像の[アルファ]と[透過]ノードを使って、プリンシプルBSDFを抜く、という構造を、ノード同士をつなげたりして作る。

「2つの要素をミックスして、別の要素で抜く」という手法は、ノード作りの基本なので、覚えておいて損はない。

  1. シェーダーエディターにする
  2. 追加(Shift+A) …… テクスチャ → 画像テクスチャ を設定する
    1. 画像テクスチャに画像を設定する
  3. 既存のプリンシプルBSDFのベースカラーに画像テクスチャを繋げる
  4. 追加(Shift+A) …… シェーダー → 透過BSDF
  5. 追加(Shift+A) …… シェーダー →シェーダー ミックス を追加
  6. メインのシェーダー(プリンシプルBSDFなど)透過BSDFを、 シェーダーミックス で合成
  7. シェーダーミックスの「係数」に、画像テクスチャのアルファを追加
    1. アルファ部分が透過BSDFで抜かれるようになる
    2. シェーダーミックスに接続している順番で、係数が反映される方がどちらか決まるので注意

マテリアルの設定を変える

ここまででノードの設定はできたが、この時点では透過が反映されていない。

Blender2.8では、マテリアルごとの設定をいじって透過をどう処理するか決める。

大抵下の2つから選ぶ。

  1. プロパティ → マテリアル → 設定
  2. ブレンドモード・影のモードの設定を変える
  • アルファブレンド
    • 透明度合いを普通に表現できる
    • 影には設定できない
  • アルファクリップ
    • 透明度合いを考慮しないで、1か0かではっきり透明度を分ける
    • 輪郭がはっきりする

影が出ない場合

影が出ない場合は、ライトが原因かもしれない。Blender2.8のEeveeのライトは、下記のような場合に影が出ないことがある。

  • ライトの影設定がオフになっている
    • プロパティ → ライト → をオン
  • ライトが、影を出したいオブジェクトから離れている
    • ライトを近づける
    • プロパティ → ライト → 影 → 範囲の開始 もしくは 終了 の値をいじる
  • サンライトが、影を出したいオブジェクトより下にある
    • Eeveeのサンライトは サンライトオブジェクトの配置場所が影響する模様 。存在すればどこにあってもワールド全体に影響する、というものではない

オブジェクトの表示がおかしくなる場合

透過オプションを有効にしたマテリアルを持ったオブジェクトの表示順番がおかしくなることがある。

これは、原点の位置が違うことが原因。

解決法

  • オブジェクトの原点の位置を合わせる
  • もしくは、オブジェクトを結合する

画像のモデルは、瞳とまつ毛・白目部分が同じマテリアルでできている。
眉毛のオブジェクトが、青い矢印の場所にあり、青い丸の位置にある。
瞳のオブジェクトは、まつ毛の後ろにあるはずなのに、 赤い矢印の部分のように表示順番がおかしくなってしまっている。

原点の位置を瞳に合わせたら表示順番が正しくなった。

しかし、複数オブジェクトがある場合の解決法が自分はわからない。

ノードの使い方

基本的なテクスチャを設定する方法は、下記の記事で紹介している。

-Blender
-, , , ,

Copyright© 忘却まとめ , 2019 All Rights Reserved Powered by STINGER.