【Blender】 ViewLayer でオブジェクトごとにレンダリングし、Compositeで合成する / キャラと背景を別々にレンダリングして合成する

セルルックだと、背景のライティングとキャラへのライティングで分けたいということがおこる。このライトはキャラに影響して欲しくないといったこととか。あるいは、地面の影用のライトと顔の陰影用のライトを使い分けたいとか

ライトリンキングという機能が実装されたので、Cyclesだと特定のライトのみといったことができるが、EEVEEだとできない。

今回はViewLayerでキャラと背景を個々にレンダリングし、Compostingで合成する

ViewLayerを使って合成する手順

ViewLayerの設定

今回はViewLayerを背景用とキャラ用とに分ける。

下線のアイコンをくりっくすると、新しくもう一つViewLayerを作成できる。
Newだと最初は全表示みたいになってしまうので、CopySettingがおすすめ。

背景用ViewLayerなら、キャラなど出したくない方を除外する(BG用とキャラ用とにCollectionを作って分離しておくと、Collection横のチェックボックスを無効化するだけで除外できるので楽。)

同じ作業をキャラ用でもおこなう。


RenderPropertiesのTransparentをアクティブにしておく(キャラの周囲を透過させることができる)。

準備ができたらF12でレンダリングしていく。
もし特定のViewLayerのみをレンダリングしたい場合は、ViewLayerPropertiesのRenderSingleLayerをアクティブにして行う。

レンダリングWindowで各ViewLayerがちゃんとレンダリングできているか確認する。

Compositorで合成する

Compositorを開き、RenderLayersノードに各ViewLayerの結果画像を割り当てる。今回は背景とキャラなのでふたつ

あとはこれらのViewLayerの結果を重ねていく。
AlphaOverノードやMixColorノードなどを利用する。

MixColorノードはこっち。
今回のように片側が背景透過の場合は透過側をFactorに繋ぐと合成可能。

EEVEE で shadow cathcer / 影を取得する

上ので合成は可能だが、背景透過で作ったキャラの方は影が取得できていない。これをやっていく

画面にPanelを出してマテリアルを作成する。MaterialPropertiesのBlendModegはAlphaBlendに

ColorRampの黒のカラーストップのValue値を上げることで影の濃さを調整可能。

注意点として、下の画像のようにパネルに影の薄い部分まで残るかんじになってしまう。

対策としては、ColorRampの右側のストップの位置を左に寄せるという方法や

SunLightを使いStrengthを5以上にするという方法や、不必要な部分の影を消すためのライトを配置するなどがある。

さらに影に色を付けたい場合
Diffuseの箇所を以下のように変えると影に色をつけることができた。

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