[blender]レンダーレイヤーの後継、ビューレイヤーの使い方と合成の方法

blender2.82a使用
blender2.8からレイヤーが廃止されコレクションに置き換わりました。それに伴いレンダーレイヤーも廃止されビューレイヤーに置き換わりました。
レンダーレイヤーはキャラクターや背景別にレンダリングする機能です。

しかし、ビューレイヤーは若干レンダーレイヤーと使い方が異なるので戸惑う人もいるかと思います。そもそもレンダーレイヤーはなくなったのかとお嘆きの方もいるかと思います。

今回はビューレイヤーを使ったレンダリングの方法と合成の方法を紹介します。



ビューレイヤーにはCollectionが必須
ビューレイヤーの用途として分かりやすいのが、キャラクターと背景を分けてレンダリングする事です。

例えばこんな場合、手前の人物と奥の建物を分ける事でコンポジット時に調整しやすくなります。


では実際に人物と背景を分けてみましょう。
分けるにはまず人物用のCollectionと背景用のCollectionを用意します。
人物と背景をそれぞれのCollectionにドラッグして分けます。
カメラとライトは共通して使うのでシーンコレクションに移動します。


Collectionの移動はレイヤーの時と同じくMキーでも可能です。

また、これもレイヤーと同じく複数のCollectionに同一オブジェクトを含ませる事もできます。ドラッグ時にCTRLを押しながらCollectionにドロップして下さい。









ビューレイヤーを作成してレンダリング対象を分ける
Collectionでオブジェクトを分ける事ができたら、ビューレイヤーを作成しましょう。
まず右上のView Layerの所から新規でView Layerを追加します。
そしてView Layer毎にレンダリング対象から外すCollectionのチェックを外します。


これでレンダリングするとView Layer毎にレンダリングされます。
ちなみにレンダリングに使用するかどうか、または現在のレイヤーのみレンダリングするかも指定できます。


合成方法は色々ありますが、アルファを使った合成をする場合はレンダープロパティタブのフィルムの透過にチェックを入れましょう。これでオブジェクトのある部分のみアルファチャンネルが作成されます。



各レイヤーを合成する方法
コンポジターにしてノードを使用にチェックを入れましょう。

レンダーレイヤーを複製してそれぞれにビューレイヤーを指定しましょう。

まずアルファオーバーノードを使った方法です。その名の通りアルファチャンネルが適切に作成されていないと使えません。
アルファオーバーでは下に繋ぐ画像がレイヤーで言うと上に重なります。


アルファチャンネルがあればミックスノードでも合成できます。
人物のビューレイヤーをミックスの下に繋ぎ、人物のアルファを係数に繋ぎます。
これでアルファの白い部分は下の画像が表示され黒い部分は上の画像が表示されるわけです。



Z値(深度)で合成する方法もあります。Z値(深度)を使いますので今までと違い明確に前後が分かれてなくても合成できます。



他にもあるビューレイヤーの機能
上の例では前後が明確に分かれていましたがこんな場合はどうでしょう?

こんなシーンでもビューレイヤーは使えます。


まずはビューレイヤー分けしましょう。



今度はフィルターから右二つをオンにします。
この二つはCollectionにのみ使えます。そしてビューレイヤーに連動する特性があります。
一つはホールドアウトでCollectionのオブジェクトをホールドアウトにしますが光や影などの影響は残ります。
もう一つはCollectionは非表示になりますが同じく光や影などは表示されます。













合成時のおすすめは完全なレイヤー+アルファチャンネル
blenderに限った話ではないのですが合成する時は完全なレイヤーをアルファチャンネルで隠す方法をお勧めします。
Holdoutなどを使って必要な分だけレイヤーに書き出す方法もあるのですが、この方法だと例えば背景をぼかす場合などに不具合が生じます。


ダメな合成結果
赤丸の上下がぼかしの影響で黒くなってしまっている



今度はノードはそのままにホールドアウトを使わず、間接的のみを使用してレンダリングしてみます。


正しい合成結果

ダメな例はHoldoutで黒くマスクした部分がぼかすことで他の部分にまで影響が出てしまったからです。
正しい結果はマスクしていないのでぼかしても影響は出ません。

2Dソフトで言うとレイヤーを直接消さずにレイヤーマスクを使って隠すようなものです。

素材製作時は完全なレイヤー+必要なアルファを心掛けましょう。