(1)Holdoutボタンを使用してのマスクの作成。
(2)Holdoutシェーダーを使用してのマスクの作成。
以下が結果。どこでもドアのような合成。
(1)Holdoutボタンを使用してのマスクの作成。
基本的には間にセパレート用にkabeオブジェクトを作りマスクする事で実現しています。Holdoutボタンではfreestyleを切り取ってくれなかったので各ViewLayerについてfreestyleを別出力して本体のαチャンネルを使用して切り取っています。ちなみにViewlayerはアウトライナーの右上のボタンから作る事ができます。アウトライナーとノードエディタは以下。(文字がつぶれていれば画像のみ表示をさせてみてください。)
kabeオブジェクトの影は欲しいのでマテリアルを調整。本体はtranparentBSDFを使用して、シェーダー設定で影のみを落とすようにしておく。影のマテリアル設定は画像をキャプチャしておくのをわすれました。マテリアルプロパティ>Settings>Blend Mode:Alpha Clip かつ Shadow Mode:Opaque です。
できた動画が以下。
Holdoutボタンではfreestyleを切り取られないのでオブジェクトのαチャンネルを使ってfreestyleを切り抜きました。オブジェクトから溢れたfrestyleの線が切り取られます。freestyleを変形させるほど切り取られる制限を受けます。
(2)Holdoutシェーダーを使用してのマスクの作成。
同じくkabeオブジェクトを使用しての合成ですが(1)と違いαチャンネルによる切り抜きを行いません。つまり"背景と線の画像"の上に"小物と小窓の線と画像"をのせるイメージです。kabeオブジェクトは二つ用意します。影を出力するためマテリアル設定したkabe_shadowオブジェクトと、Holdoutシェーダーをマテリアル設定するためのkabeオブジェクトです。以下がコンポジットウィンドウとアウトライナー。(文字がつぶれていれば画像のみ表示を。)
kabe_shadowの影のみを落とす方法は(1)で前述したので、マスクを作るためのkabeオブジェクトのシェーダーノードのみを記述。Holdoutをoutputをつなぐだけで背後のオブジェクトは非表示になります。以下。
出力した動画は以下、
Holdoutシェーダーのマスクがある箇所はfreestyleが作られない事がわかり、結局freestyle出力用に三つ目のViewレイヤーを作りました。freestyleの線の感じはきれいに出ていますが、元々、freestyleの前後判定の精度が高くないため、たまに壁の向こうのラインが見えます。
■参考
Blender 2.8 View Layer & Collectionの基礎
https://3dcg.hamken100.com/2018/12/21/blender28-viewlayer-collection/
一つの.blendファイルに複数のシーンを持たせる
http://masayuki-osaka.hatenablog.com/entry/2019/07/28/013300
ID Mask Node
https://docs.blender.org/manual/en/latest/compositing/types/converter/id_mask.html
Freestyle
http://cg.xyamu.net/Blender/entry286
烏野の箱庭 | …動画・絵・漫画・脚本などの作品紹介 |
烏野博史動画 | …広告・実験・講習用映像のyoutubeチャンネル |
うのひろし日々描描 | …作画配信のyoutubeチャンネル |
UNOのPixiv | …絵、デザイン資料、漫画、実験画像 |
karsauno10のTwitter | …考え、宣伝 |