Blender でレンダリングした画像・動画を素材として使うには、背景を透過(透明)にしたいです。

デフォルトだと背景はグレーでレンダリングされます。地面を透明にして影だけレンダリングするのも追加の設定が必要です。たいていの場合、これらの手順は最初に全部用意してしまって、そのファイルを使ってずっと作業をしているので、私はこの手順を覚えられなくて毎回調べているような気がします。そこで今回は、この手順をちゃんと記録しておこうと思います。

この方法は執筆時に Blender 3.5.0 で使用しています。

レンダリングの設定で フィルム の 透過 を有効にする

最初に背景を透明にします。

プロパティ > レンダープロパティ > フィルム > 透過 をチェックします。

チェックしていない時は背景色でレンダリングされていたのが・・・

透過をチェックすると透明でレンダリングされます。

背景色の設定は変更しない

ちなみに背景色は プロパティ > ワールドプロパティ > サーフェス > カラー で指定できるのですが、ここに透明を指定することはできません。また、これは世界を本当にその色の背景にしてしまう感じなので、レンダリングしたものを素材として使いたい場合の背景色にはちょっと使えないかもしれません。

例えば白に変更すると、完全に白い空間で写真を撮ったようになってしまいます。そうではなくて、単に背景を白にしたいだけなら、背景を透過(透明)にして、別のアプリで白いレイヤーの上に重ねた方がしっくりきます。この背景の設定は、レンダリングしたい対象のオブジェクトがいる空間の背景を設定するようにします。

Cycles で透明な地面に影を落とす

Cycles であれば透明な地面に影だけを落とすことが簡単に設定できます。

平面を追加して、プロパティ >オブジェクトプロパティ > 可視性 > マスク > シャドウキャッチャー をチェックするだけです。

Cycles であればこれだけです。私は Eevee を使っているので、残念ながらこの設定は使っていません・・・

Eevee で透明な地面に影を落とす

Eevee には、Cyclesと違って「シャドウキャッチャー」がないので、代わりにマテリアルを自分で作って、対応します。

平面を追加して、プロパティ > マテリアルプロパティ > 設定 > ブレンドモード を「アルファブレンド」にしておきます。

続いてマテリアルを設定します。

地面に影が落ちている部分と影が落ちていない部分があるのを、うまく分離して、影が落ちている部分だけを黒でレンダリングできればいいはずです。

「ディフューズBSDF」を「シェーダーのRGB化」を通して「カラーランプ」の係数に渡します。これで影のあるところとないところを分離できます。

「カラーランプ」はBスプラインに変更して、 0 が 位置 0.759 で色が EBEBEB、1 が 位置 0.868 で色が FFFFFF に設定しました。これは影の様子によって調整します。この色を「シェーダーミックス」の係数にして、影と透明な地面を描き分けます。

「シェーダーミックス」には、カラーを黒に設定した「ディフューズBSDF」と、追加したままの初期値の「透過BSDF」をそれぞれシェーダーに繋いでいます。

これで Eevee でもいい感じに透明な地面に影を落とすことが出来ました!

コメント