見出し画像

Blenderで背景透過画像を書き出す方法(影・間接光・ブルーム/グレア)

はじめに

最近Blenderで作ったものを背景透過のPNG画像で書き出したのですが、上手く書き出しができなくて困ってしまいました。

検索して調べてみたり、Twitterで優しい方に教えていただいて現在は解決しました。

でも解決したら終わりではなく、わたしと同じように困っている方がいらっしゃるかもしれないですし、わたし自身も方法を覚えておきたいので、

以下に透過画像の書き出しの手順をまとめたいと思います。

Blenderのバージョンは2.92、使用しているPCはMacbook proです。

今回はこのオブジェクトでご説明します。

画像1


背景透過でレンダリングする(Eevee、Cycles共通)

Eeveeの場合:レンダープロパティ>フィルム>「透過」のチェックボックスをクリックしてチェックを入れます。

画像2

Cyclesの場合:レンダープロパティ>フィルム>「透過」のチェックボックスをクリックしてチェックを入れます。

画像3

↓レンダリング結果です。これはCycles。

画像6

比較として、↓透過せずにCyclesでレンダリングした画像です。
わかりやすいように背景にHDRIを設定しました。

画像4

↓HDRIを設定したまま、透過にチェックを入れた後のレンダリング画像です。背景はレンダリングされていません。

画像5

HDRIを設定しているとHDRIが持つ光源や影の質感を保ったまま透過で書き出されます。


また、立方体だけ書き出したいときは平面と立方体のコレクションを分けます。

平面を選択した状態でショートカットキー「M」で新規コレクションを追加します。

そしてアウトライナーウィンドウにあるチェックボックスを外します。

画像7

この状態でレンダリングをすると立方体のみ書き出されます。

画像8


透過の状態で影を一緒に書き出す(Cycles/シャドウキャッチャー)

アウトライナーウインドウのチェックボックスはいじらず、立方体と平面ともにチェックが入ったままなのを確認してください。

レンダープロパティ>レンダーエンジン「Cycles」に変更します。

平面を選択した状態でオブジェクトプロパティ>可視性>マスクの「シャドウキャッチャー」のチェックボックスをクリックしてチェックを入れます。

画像9

↓この状態でレンダリングをすると立方体に影がついた状態で書き出されます。

※影がはっきり見えるように背景の環境テクスチャを外したので、立方体の色味が少し違っています。

また、Cyclesは地面のオブジェクトに色を設定しているとその色の影響を受けてしまいます。立方体の側面がうっすら青く染まっていると思います。

画像10

そして注意点として、シャドウキャッチャーを使うと平面と一緒にレンダリングしたときよりも影が濃く書き出されます。

↓下の画像は平面と一緒にレンダリングしたものです。上の画像よりも影が薄いのがわかると思います。

画像11

この現象はアンビエントオクルージョンにチェックを入れることで軽減できますが、立方体の色味も薄くなってしまいます。あとうっすら平面の影もレンダリングされてしまいますね…

画像12

設定方法↓

画像13


透過の状態で間接的な反射光を書き出す(Cyclesのみ)

これはEeveeでは出来ず、Cyclesのみになります。

ワールド内にピンク色に発光する球体を設置しました。
UV球のマテリアルにピンク色の放射を設定しています。強さは15.0です。

このピンクの球体は非表示で、平面と立方体と照り返しているピンク色の反射光のみを書き出します。

画像14

まずショートカットキー「M」で球体をコレクションに追加します。

そしてアウトライナーからフィルターのマークをクリックし、制限の切り替え>1番右の「間接的な」のアイコンをクリックします。

画像15

1番右のアイコン「間接的のみ」をクリックします。

画像16

レンダリングをすると球体は表示されず、反射光のみ書き出されます。

画像17

この状態で平面にシャドウキャッチャーを付けると球体が生成する影も一緒にレンダリングされてしまうので注意です…。

画像18

直し方がわかったら追記します。


透過の状態で放射(ブルーム)も一緒に書き出す(Eevee)

今度は球体も表示させてレンダリングしたいと思います。

レンダープロパティ>アンビエントオクルージョン(これはお好みで)、ブルーム、スクリーンスペース反射にチェックが入っていなければチェックを入れます。

画像19

一旦この状態でレンダリングすると…

平面のオブジェクトに重なっている箇所は光っていますが、オブジェクトからはみ出た透明の箇所は光っていません。

画像20

わかりにくいので背景を黒くしてみました。

画像21

黒いところまではみ出て光ってほしいのに光っていません。

光らへんのかい!ドリルすんのかい!

……かなしみがすごい。

画像の通り、普通にレンダリングしてもオブジェクトからはみ出したところには反映されません。

反映させるにはコンポジットノードで調整します。

調整にはこちらの動画を参考にしました。

まず、ビューレイヤープロパティ>パス>エフェクト>「ブルーム」にチェックを入れます。

画像22

一旦レンダリングします。

次にコンポジットノードのタブを開いて「ノードを使用」にチェックを入れます。

画像23

ショートカットキー「Shift」+「A」でノードを追加していきます。

・コンバーター>カラーランプ
・コンバーター>アルファ設定
・カラー>ミックス

3つのノードを出せたら各ノードの設定を変更してつなぎます。

・アルファ設定のモードを「アルファを置換」に変更
・ミックスを「追加」に変更

つなぎ方は↓を参考にしてください。

画像24

カラーランプのグラデーションバーの右側の白いつまみを黒い方に移動させます。

画像25

↓レンダリング結果です。

画像26

画像27

グラデーションバーの調整はお好みで。色にもよると思いますが、あまり黒い方に寄せすぎるとレンズフレアのような帯ができて違和感があるので数値は0.5くらいが良いんじゃないかなと思います。


透過の状態で放射(グレア)も一緒に書き出す(Cycles)

Cyclesの方法は検索しても全然わからず、Twitterで優しい方に教えていただきました。

各ノードの出し方です。

・コンバーター>数式
・コンバーター>アルファ設定(Shift+Dでもうひとつ複製しておく)
・カラー>ミックス(Shift+Dでもうひとつ複製しておく)
・フィルター>ぼかし

各ノードの設定を変更します。

・数式のモードを「大きい」に変更、「しきい値」はお好みで
・アルファ設定をひとつだけ、モード「アルファに置換」に変更
・ミックスをふたつとも「追加」に変更、「範囲制限」にチェック、「係数」を0.5に変更
・ぼかしを「高速ガウシアン」に変更、XとYをお好みで変更(7〜10くらい?)、「サイズ」もお好みで変更

わたしはこのように設定しました。背景に見えているのは設定した結果です。

ぼかしが球体だけでなく全範囲に及んでしまう場合は、数式ノード「大きい」の「しきい値」を調整してください。

画像28

↓レンダリング結果です。

画像29

画像30

球体の色がグレーなのが気になりますが、、、(マテリアルの設定でしょうか…)

なんとか放射を反映させることができました!


質問に回答してくださった雪見月さん、本当にありがとうございました。

わたしも他の方の質問に答えられるようにもっとBlenderのことを勉強したいと思います。


おまけ(Cyclesの放射の設定方法)

Cyclesでは放射を設定してレンダリングしても光りません。

そのため一手間加える必要があるのですが、

放射が透過背景にはみ出ている場合は先に挙げた方法を、

透過背景にはみ出ていない場合はコンポジットノードでグレアを追加すると綺麗に光ります。

コンポジットノードで、フィルター>グレアを出してつなぎます。
モードは「フォググロー」で、品質は「高」、サイズはお好みで設定してください。

画像31

↓レンダリング 結果です。綺麗!

画像32

ここまでお読みいただきありがとうございました。

この記事が気に入ったらサポートをしてみませんか?