シャドウキャッチャーとは


以前コンポジットの作業をしていた時、影だけのCG素材をもらったことがあったなーと思い出した。Blenderで被写体の影だけを書き出す方法はどうしたらいいか早速調べてみる。Cyclesエンジンだとシャドウキャッチャーという方法で書き出すようなので、自分用にまとめ。"影をつかむ"という、なんとも分かりやすいネーミング。

※Eeveeでは現状シェーダーノードを組む必要があるらしい、そこまでしてEeveeでやる必要があるかは疑問。

Cyclesでの書き出し方


適当にオブジェクトと影を落とす為に床を用意。この床面に落ちている影の形がそのまま書き出される。エンジンはCycles。


床面を選択、オブジェクトプロパティの可視性からシャドウキャッチャー


このままだと床面が透過されないのでレンダリング設定の透過。これで床面が透過されて、影だけが残る。この状態でレンダリングすれば被写体と影がアルファ付きの状態で保存できる。


被写体も表示させずに影だけにするには、レイの可能性のカメラのチェックを外す。レンダリングすると影のみで書き出せる。


バンプマップ検証


バンプマップだとシャドウがどうなるかの検証をしてみた。さっきの床面に石材のノーマルマップを設定。ライトの影響を受ければいいのでカラーマップは設定してない。


これでシャドウキャッチャーを設定してみる。


ちゃんと凹凸のある影が残った。
ノーマルマップの影も問題ないことが分かった。


Eeveeでの方法


見よう見まねでノードを組んだけど、けっこう面倒。Eeveeでどうしても書き出す必要がない場合はCyclesを使えばいいと思う。