スポンサーリンク

Blender: Cyclesで透過テクスチャを使用する場合のノードの組み方

BlenderのCyclesで画像テクスチャの一部を透過させたい場合のノードの組み方を3通り紹介します。

1 .png形式の画像テクスチャを使用して透過させる方法 – プリンシプルBSDF(Principled BSDF)編

まずは.png形式の画像テクスチャをプリンシプルBSDF(Principled BSDF)ノードとつないで透過させる方法です。
.png形式の代わりにAlphaチャンネルに透過情報を持たせてある画像(32bitの.bmp画像など)も同様の方法で透過できます。

サンプルとして画像1のような背景が透過しているBlenderのロゴの.png形式の画像テクスチャを使用します(この記事で使用している画像は.jpgに変換してあります)。

Transparent Texture

画像1

 

この画像テクスチャを使用して、初めからある立方体(Cube)のマテリアル(Material)に画像2のようにノードを組みます。

Transparent Texture

画像2

画像2で使用しているノードは以下のようになっています。

  •  1  追加(Add) → 入力(Input)から追加したテクスチャ座標(Texture Coordinate)ノード
  •  2  追加(Add) → テクスチャ(Texture)から追加した画像テクスチャ(Image Texture)ノード
  •  4 追加(Add) → シェーダー(Shader)から追加したプリンシプルBSDF(Principled BSDF)ノード
  •  6 追加(Add) → 出力(Output)から追加した(または初めからある)マテリアル出力(Material Output)ノード

ノードのつなぎ方や設定などは以下のようになっています。

  • テクスチャ座標(Texture Coordinate)ノードと画像テクスチャ(Image Texture)ノードは生成(Generated)でつなぎます。
  • 画像テクスチャには画像1のBlenderのロゴ画像を使用して、投影(Projection)をフラット(Flat)からボックス(Box)に変更します。
  • 画像テクスチャ(Image Texture)ノードとプリンシプルBSDF(Principled BSDF)のColorBase ColorAlphaAlphaをつなぎます。

透過させるということに限って言えば、テクスチャ座標(Texture Coordinate)ノードおよび画像テクスチャ(Image Texture)ノードの投影(Projection)の変更は必須ではありません。また、画像テクスチャ(Image Texture)ノードの投影(Projection)をフラット(Flat)からボックス(Box)に変更する必要もありません。

床になるオブジェクトを追加してレンダリングすると画像3のようになります。

Transparent Texture

画像3

 

床となるオブジェクトと立方体(Cube)の底の部分に隙間が全くない状態だと画像3のようにならないので、少しでもいいので隙間を作れば画像3のようなレンダリング結果になるはずです。

2 .png形式の画像テクスチャを使用して透過させる方法 – ディフューズBSDF(Diffuse BSDF)編

次に.png形式の画像テクスチャをディフューズBSDF(Diffuse BSDF)ノードとつないで透過させる方法です。

先程と同じく画像1のテクスチャを使用して、初めからある立方体(Cube)のマテリアル(Material)に画像4のようにノードを組みます。

Transparent Texture

画像4

画像4で使用しているノードは以下のようになっています。

  •  1  追加(Add) → 入力(Input)から追加したテクスチャ座標(Texture Coordinate)ノード
  •  2  追加(Add) → テクスチャ(Texture)から追加した画像テクスチャ(Image Texture)ノード
  •  3 追加(Add) → シェーダー(Shader)から追加した透過BSDF(Transparent BSDF)ノード
  •  4 追加(Add) → シェーダー(Shader)から追加したディフューズBSDF(Diffuse BSDF)ノード
  •  5  追加(Add) → シェーダー(Shader)から追加した(または初めからある)ミックスシェーダー(Mix Shader)ノード
  •  6 追加(Add) → 出力(Output)から追加した(または初めからある)マテリアル出力(Material Output)ノード

ノードのつなぎ方や設定などは以下のようになっています。

  • テクスチャ座標(Texture Coordinate)ノードと画像テクスチャ(Image Texture)ノードは生成(Generated)でつなぎます。
  • 画像テクスチャには画像1のBlenderのロゴ画像を使用して、投影(Projection)をフラット(Flat)からボックス(Box)に変更します。
  • 画像テクスチャ(Image Texture)ノードのアルファ(Alpha)とミックスシェーダー(Mix Shader)ノードの係数(Fac)をつなぎます。
  • ミックスシェーダー(Mix Shader)ノードにつないだ透過BSDF(Transparent BSDF)ノードとディフューズBSDF(Diffuse BSDF)ノードの順番は上下を逆にしないように注意してください。

透過させるということに限って言えば、テクスチャ座標(Texture Coordinate)ノードおよび画像テクスチャ(Image Texture)ノードの投影(Projection)の変更は必須ではありません。また、画像テクスチャ(Image Texture)ノードの投影(Projection)をフラット(Flat)からボックス(Box)に変更する必要もありません。
ディフューズBSDF(Diffuse BSDF)ノードの代わりにプリンシプルBSDF(Principled BSDF)ノードを使用しても同じレンダリング結果になります。

床になるオブジェクトを追加してレンダリングすると画像3のようになります。

3 マスク画像を使用して透過させる場合

最後にマスク画像を使用して透過させる方法です。

サンプルとして画像5のような背景が白で透過していないBlenderのロゴの画像テクスチャと、

Transparent Texture

画像5

 

画像6のようなBlenderのロゴの部分が白で背景が黒になっているマスク用の画像テクスチャを使用します。

Transparent Texture

画像6

 

このふたつの画像テクスチャを使用して、初めからある立方体(Cube)のマテリアル(Material)に画像7のようにノードを組みます。

Transparent Texture

画像7

画像7で使用しているノードは以下のようになっています。

  •  1 2  追加(Add) → 入力(Input)から追加したテクスチャ座標(Texture Coordinate)ノード
  •  3 4  追加(Add) → テクスチャ(Texture)から追加した画像テクスチャ(Image Texture)ノード
  •  5 追加(Add) → シェーダー(Shader)から追加した透過BSDF(Transparent BSDF)ノード
  •  6 追加(Add) → シェーダー(Shader)から追加した(または初めからある)ディフューズBSDF(Diffuse BSDF)ノード
  •  7 追加(Add) → シェーダー(Shader)から追加したミックスシェーダー(Mix Shader)ノード
  •  8 追加(Add) → 出力(Output)から追加した(または初めからある)マテリアル出力(Material Output)ノード

ノードのつなぎ方や設定などは以下のようになっています。

  • 2組あるテクスチャ座標(Texture Coordinate)ノードと画像テクスチャ(Image Texture)ノードは両方とも生成(Generated)でつなぎます。
  •  3の画像テクスチャ(Image Texture)ノードには画像5のマスク用の画像テクスチャを、 4 の画像テクスチャ(Image Texture)ノードには画像4のロゴの画像テクスチャを使用して、ふたつとも投影(Projection)をフラット(Flat)からボックス(Box)に変更します。
  •  3の画像テクスチャ(Image Texture)ノードとミックスシェーダー(Mix Shader)ノードは、カラー(Color)係数(Fac)でつなぎます(AlphaとFacではありません)。
  • ミックスシェーダー(Mix Shader)ノードにつないだ透過BSDF(Transparent BSDF)ノードとディフューズBSDF(Diffuse BSDF)ノードの順番は上下を逆にしないように注意してください。

透過させるということに限って言えば、テクスチャ座標(Texture Coordinate)ノードおよび画像テクスチャ(Image Texture)ノードの投影(Projection)の変更は必須ではありません。また、画像テクスチャ(Image Texture)ノードの投影(Projection)をフラット(Flat)からボックス(Box)に変更する必要もありません。
ィフューズBSDF(Diffuse BSDF)ノードの代わりにプリンシプルBSDF(Principled BSDF)ノードを使用しても構いません。

床になるオブジェクトを追加してレンダリングすると画像3と同じレンダリング結果になります。

4 3Dビューのシェーディング(Viewport Shading)のマテリアルプレビュー(Material Preview)で透過を反映させる方法

ここまで紹介してきた方法で、レンダリングの結果または3Dビューのシェーディング(Viewport Shading)のレンダ―(Rendered)では透過が反映されますが、3Dビューのシェーディング(Viewport Shading)のマテリアルプレビュー(Material Preview)では画像8のように透過が反映されないので、以下の方法で透過を反映させていきます。

Transparent Texture

画像8

オブジェクトを選択したら、プロパティ(Properties)のマテリアルプロパティ(Material Properties)→ビューポート表示(Viewport Display)→設定(Settings)へ進んで、ブレンドモード(Blend Mode)と影のモード(Shadow Mode)でアルファ(Alpha)が付いているものを選択します(画像9参照)。

Transparent Texture

画像9

これで画像10のようにマテリアルプレビュー(Material Preview)でも透過が反映されます。

Transparent Texture

画像10

以上、「BlenderのCyclesで透過テクスチャを使用する場合のノードの組み方」でした。
※この記事で使用しているのはBlender 2.80です。
※Blender 2.79bなどのCyclesでも同様のノードの組み方で透過させることが可能です。

コメント

タイトルとURLをコピーしました