【Blender】コンポジット、コンポジターの使い方 / Compositing / キャラと背景を分けてコンポジットで合成する

Composit系まとめ

コンポジット画面

とりあえずF12で画像をレンダリングしたら、上のタブからCompositingを選択してコンポジタ画面を開く。

デフォルトである2つノードが配置されている。そこにViewerノードをつなげる
RenderLayersノードはどのViewLayerの結果を使うかを指定する。
複数レイヤーを使う場合は次の項目参照

ViewerノードはこのCompositing画面の背景に結果を描写するノード。
CompositeノードはRenderウィンドウのcompositeの画面に結果を描写するノード。

結果画像の調整

ズームはVキー
ズームアウト Alt + Vキー
画像の移動Alt + マウスホイールドラッグ

Compositで合成する — キャラと背景を別々にレンダリングしてCompositingで合成する

セルルックなものを作っているとき、キャラと背景のライティングを分けたいということがあった。
また背景が重いので背景だけ画像として個別にレンダリングしておいて、その背景とキャラを合成するということをやったこともある。
そういうときにビューレイヤーごとにレンダリングし、合成する

2つのビューレイヤーを合成する

基本は左のRenderLayersに各ビューレイヤーを設定し、それをAlphaOverノードに接続する。
ここで右の出力に3つ使っているが、上からコンポジター画面の背景に結果を出すノード、別ウィンドウで開くRender画面のcompositeの画面に結果を出すノード、3つ目は特定のフォルダにファイルを書き出すノード

背景画像とキャラクターの合成 / 固定カメラでキャラだけ動く場合

固定カメラでキャラだけ動く場合は、この方法を使うとレンダリング能率があがるかも

①背景画像をレンダリングする(Blenderで背景を作らないなら、飛ばして②に)

まず背景を独立したViewLayerで作成する(ただしキャラクターと背景を密接に連動させたい場合や、影の制御には注意が必要になってくるので注意)

キャラにアニメーションをつけ、カメラを配置する。

とりあえず適当なフレームで背景をレンダリングする(画像のレンダリングでいいのでF12)。
背景のViewLayerを開いて単独でレンダリングしてもよいが、キャラのViewLayerを開いた状態でも、下のような設定でViewLayerをまとめてレンダリングすると、そのフレームの背景を同時にレンダリングできる

ただこの時、レンダリング結果で背景だけを取得したいので、赤線の箇所から当該のレイヤーを選択する。

そしたらShift + ALt + S で名前をつけて保存する。

②ノードをつなぐ

Compositing画面を開く。
Input – Imageノードを出し、ここにさっき保存した背景画像を割り当てる。

Input -Scene – RenderLayer ノードを出し、こっちにはキャラクターのレイヤーを割り当てる。

そしたら2つのノードをMixノードで合成する(下記画像はエフェクト用のノードがあるので無視)。
上が背景、下がキャラ。下のAlphaのスロットをMixNodeのFacにつなげる点に注意!

ノードの最後にはCompositeノードとViewerノードをつなげておく。

今回はエフェクトを入れているので色々余分なノードがあるが、大雑把にはこんな感じ。

③キャラのViewLayerをレンダリングする
キャラのViewLayerを表示。
ViewLayerPrepertiesのRenderSingleLayerにチェックを入れてレンダリングする(今回のレンダリングは動画なのでCtrol + F12)

EEVEEで影を取得したい / Shadow Catcher

Blender 4.2 

①影を取得するためのオブジェクトを作成。床とか地面とか

影が映っているか確認する。
影を濃くするにはSunLightを使ったほうがよい。

②マテリアルを割り当てる。

影の濃さや色はライトの側で調整することもできるが、マテリアルでやるなら舌のようにColorRampを挟んでそこで調整するという方法も。

MaterialPropertiesのRender Method をBlendedにする

これで背景透過で影だけ残っていればOK

合成するための画像をクロップしたい・マスクを掛けたい

Cropノード

単純な形状ならCropノードが楽。
ただし、これは画像の上下左右を平行にしか指定できない

Maskノード

BoxマスクやEllipsMaskノードだす。
今回は白い領域が消したい箇所に重なるように調整する。
微調整はShiftキーを押しながらやる。

MixColorノードを出し、MaskのノードをFacに接続。
対象の画像を1つ目のImageソケットに。
もう一方のImageの色を変える。(ここに画像を設定すれば、画像を重ねることもできる。)

下の例だと、Maskの領域にImage2の方をかさねるという感じになる。

コンポジットのノードの具体例や使用例

周辺減光 / Vignette 

①BoxMaskノードを出す。
そのノードの上でCtrol + shift +クリックで単独でプレビューできる。
WidthHeightを調整して、大体のサイズを決める。

②Blurノードを出し、GaussianかFastGaussianに設定。
XYの値でボケ具合を調整する。

③最後に2つのノードと減光させたい方のノードを、AlphaOverノードで合成する。
2つのノードはFactorに、画像の方はImageに。
もう一つのImageでボケの色を

画像を使う

上のようノードでやるのではなく、Vignette画像を利用する。
SizeはScaleで調整し、合成はAlphaOver

FilmGrain / ノイズをのせる

①Compositor画面にテクスチャノードを出す。

②TexturePropertiesを開いてテクスチャを新規作成。
今回はTypeをNoiseにした。これは他のでもOK

③Compositorに作ったテクスチャを割り当てる。

④AlphaOverにつないで合成し、値を調整
シンプルなノイズはこれでOK

ノイズに色をつける

MixColorノードを使うなら

3色以上のノイズをのせるなら、ColorRampノードを使う。
補間はConstantにする。

Compositorにテクスチャノードを出す。
TexturePropertiesを開き、新規にNoiseTextureを作成する。
Textureノードに作ったノイズテクスチャを割り当てる。

MixColorノードに片方はRenderLayersのImage(画像は他のノードを介在させている)、片方はノイズテクスチャをつなぎ、合成モードとFactorの値を調整してノイズの乗り具合を調整する。

ノイズに色をつけるなら、ひとつMixColorかColorRampでやる。

3色以上ならColorRamp

ノイズを動かすならSceneTimeとMathノードをTextureのOffsetに繋ぐ。
下のノードだと全方向にランダム

Glareノード

発光しているオブジェクトにキラキラを加えることが可能。

LensDistortion

Distortionの値でレンズの歪みを表現できる。魚眼レンズ風とかが可能。

Dispersioで分光の表現が可能。

ミストパス・キリやモヤの表現

霧やモヤ表現をつけられる。
ViewLayerPropertiesのMistPass機能をオンにしてからやっていく。

詳しくはこっち

ミストにむらをつける

ミストを動かすなら、SceneTimeノードを使用する。そのままだと高速。Mathノードで調整する。

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