03:「マルチレイヤー」CGデータを作ろう!
Blenderを使い、実写とCGを合成する上でとても便利な「マルチレイヤー」のCGデータを作成してみます。
【実践】よくわからなくてもOK!まずは手順通り触ってみよう!
〈Step 0〉スケールを合わせる
この記事では、3DCGモデルの作り方については触れません。すでにBlenderで作成したシーンを読み込み、VFXに向けたセットアップをしてみます。
アペンドは、他のBlenderプロジェクトを現在のプロジェクトにコピーして読み込む機能です。Blenderデータを使い回す際に非常に便利です。
ちなみに、他のBlenderプロジェクトを別ウィンドウで起ち上げている場合、オブジェクトを選択後[Ctrl+C]、他のプロジェクト上で[Ctrl+P]することで、コピー&ペーストの感覚でアペンドすることもできます。
▲【2】アペンドをクリックしたら、配布フォルダの[38912VFX_SampleScene.blend]を選択し[Object]内の全てのオブジェクトを[A]で選択し、画面右下から[アペンド]します。
▲【3】シーンをアペンドしたら、右上のアウトライナー(オブジェクトのリスト)の一番上にある[#TestPlane]と、先ほどfSpyで作成したカメラを[Ctrl]で複数選択します。選択後、[Shift+H]を押してその他のオブジェクトをいったん非表示にします
Blenderでは[H]で選択中のオブジェクトを一時的に非表示に、[Shift+H]で選択していないオブジェクトを一時的に非表示に、[Alt+H]で再度表示することができます。オブジェクトの数が多いときに便利です。
▲【4】他のオブジェクトを非表示にすると、原点付近に小さな長方形(#TestPlane)がこのように小さく表示されています。この長方形はCG内の大きさで実写素材のグリッドと同じ19cm×27cmに設定してあります
つまりカメラがかなり大きいサイズで設定されてしまっているということです。fSpyによってパース(遠近感)は一致していても、スケール感は一致していない状況です。
......ちょっと何言ってるかわからないですよね。実際にやってみましょう。
▲【7】3Dビュー上で[S]キーを押しスケールを変更、クリックで決定できます 。何度かスケールを変えて、図のようにグリッドの端が3Dの長方形と重なるところを探してみてください。ぴったり合わない場合は横の長さが合っていればひとまずOKです
これは、四角いプレートが大きくなっているように見えて、実際にはカメラが原点(グリッドの左下の丸)を中心に小さくなっています。カメラを小さくすることで、CGと実写のスケールが一致しました。
▲【8】[Alt+H]で全オブジェクトを表示します。最後に[#TestPlane]は右上のアウトライナーから選択して[X]で削除します。ビューがおおよそこのような構図になっていたら成功です
〈Step 1〉レンダー設定
GPUが使えるPCをお持ちの方は、画面左上の[編集→プリファレンス→システム→Cyclesレンダーデバイス]からお使いのGPUを選択したあと、上記の[レンダープロパティ→デバイス]を[GPU演算]にするとレンダリングを高速化できます。
透過にチェックを入れることで、ワールドの背景が透過された状態でCGがレンダリングされます。
オブジェクトを「シャドウキャッチャー」に設定することで、そのオブジェクトに落ちる影のみをレンダリングすることができます。実写の舞台上に落ちる影を透過で書き出せるので、実写合成においてとても便利な機能です。
〈Step 2〉コレクションを作る
コレクションとはBlenderのデータをフォルダのように管理できるとても便利な機能です。
▲【13】作業しやすくするために、右上の「アウトライナー」上にマウスカーソルを置いた状態で、[Ctrl+Space]で全画面表示にします
「PointLight」コレクションは、「Light」コレクションの下の階層にあることに注意してください。コレクションを他のコレクションの上にドラッグ&ドロップすると下の階層に入れることができます。
もう一度[Ctrl+Space]でビューを元に戻すことができます。
このようにBlenderにおける「コレクション」はフォルダのようにデータをわかりやすく分類して管理できるほか、コレクションごとに細かくレンダリングの設定をすることもできたりします。
次のステップからは、この「コレクション」を利用して様々な素材を作っていきます。
〈Step 3〉メインレイヤーを作成する
まずは、メインとなる機械のみのレイヤーを作成します。
▲【21】画面右上の[ビューレイヤー]の名前を「MainLayer」に書き換えます
アウトライナーのチェックボックスアイコンをOFFにするとそのコレクション(フォルダ)は完全にレンダリングされなくなります。横の矢印アイコン[間接的のみ]をONにすると、同じくコレクション自身はレンダリングされないようになりますが、周りに影や反射などの「間接的」な影響はレンダリングされます。
今回は、[Environment](背景のモデル)と[Wall_Shadow](壁のモデル)と[Hand](手のラフモデル)を[間接的のみ]にすることで、周りの背景や手がメインの機械に映り込んだり影を落としつつ、それ自体はレンダリングされないようにしています。
[MachineEmission]や[Wall_Reflections]や[Wall_Mask]は今は使わないのでチェックを外してレンダリングしないようにしました。
Zパスは奥行きの情報です。VFXでは霧の表現やカメラから特定の距離離れた場所を指定する際などに重宝しますが、今回は使用しないのでOFFにしておきます。
▲【24】画面左上の[レンダー→画像をレンダリング]でレンダリングしてみます。このような画像が出力されていれば成功です
メインの機械のみがレンダリングされ、周りは透過していることがわかります。
〈Step 4〉影レイヤーを作成する
▲【25】画面右上のレイヤー名の右横[ビューレイヤーを追加]アイコンをクリックし、[新規]を選択します
ビューレイヤーは複数追加でき、レイヤー名左のドロップダウンリストからいつでも他のビューレイヤーに変更できます。このビューレイヤーの機能を使って、いくつかの素材を作っていきます。
[Machine](メインの機械モデル)は[間接的のみ]に設定し、先ほど「シャドウキャッチャー」に設定した[Wall_Shadow](壁のモデル)のみレンダリングすることで、影のみをレンダリングすることができます。壁の反射用に配置しているPointLightは無効化しています。
▲【28】画面左上の[レンダー→画像をレンダリング]でレンダリングしてみると、先ほどの機械のレイヤーの後に影のレイヤーが順にレンダリングされます。レンダリング完了後、レンダー画面の右上のレイヤー選択リストで[ShadowLayer]を選択してみます
▲【29】影のみの画像が表示されるはずです
この調子でレイヤーを全部で4つ作ります。あと2つです!
〈Step 5〉反射レイヤーを作成する
このレイヤーは反射のみをレンダリングしたいので、[Environment](背景のモデル)と[Machine](メインの機械モデル)と[Hand](手のラフモデル)は[間接的のみ]に設定し、[Wall_Reflections](壁のモデル)をONにしています。
▲【32】[レンダー→画像をレンダリング]でレンダリング後、レンダー画面の右上のレイヤー選択リストで[ReflectionsLayer]を選択すると、このように反射素材がレンダリングされます
影は「シャドウキャッチャー」で影のみのレンダリングをすることができましたが、反射についてはそれができません。今回、メインの機械が壁に反射している部分(CGパーツが実写パーツに影響している部分)以外の壁は実写をそのまま使用したいところです。次のステップでメインの機械の反射のみを抜き取るためのマスクレイヤーを作ってみましょう。
〈Step 6〉反射マスクレイヤーを作成する
▲【35】レンダリング後、右上のリストから[ReflectionsMask]を選択すると、このようにメインの機械の反射部分のみが白で表示された白黒の画像が表示されます
ここでは反射マテリアルと明るさ1で発光するマテリアルを使用して、反射用のマスク素材を作っています。明るさ0(黒)は透明に、明るさ1(白)は不透明になります。
[Ctrl+S]でプロジェクトを保存するのをお忘れなく!
〈Step 7〉レンダリング
- ◀【36】今回[サンプリング]は512で[適応サンプリング]をONにしています。マシンスペックやCGの条件によって最適な値は変わるので、この値はあくまで参考程度に試行錯誤してみてください。ただ、後の工程でややこしくなるので今回は[デノイズ]はデフォルトのOFF状態にしておくことをオススメします
- ◀【37】プリンタアイコン[出力プロパティ→出力]の①ファイルパスで画像の保存先と名前を指定します。今回は「38912_SampleCGC_linsrgb_」としました。②ファイルフォーマットは[OpenEXR マルチレイヤー]に、③色深度は[Float (Half)]を選択します
書き出し先に大量の画像の連番が書き出されるので、新しく「Render」等の名前をつけたフォルダを作成し、その中に書き出すことをオススメします。
▲【38】画面下のタイムラインの右端にレンダリング範囲を指定する場所があります。[終了]を「60」フレームにしてください
▲【39】画面左上[レンダー→アニメーションをレンダリング]をクリックすると、アニメーションのレンダリングが開始されます。アニメーションのレンダリングは[Esc]キーでいつでも停止できるほか、連番画像なのでタイムラインからレンダリング範囲を指定すれば途中からレンダリングを再開することもできます
このレンダリングはそこそこ時間がかかりますので、いったん休憩してのんびり待ちましょう! 今すぐ次に進みたい方は、配布素材に完成したCG素材「38912_SampleCGC_linsrgb」を用意してありますのでそちらを使用して次のステップに進んでください。
【理論】なぜこうするの?
この章では光(MainLayer)・影(ShadowLayer)・反射(ReflectionsLayerとReflectionsMask)の素材をビューレイヤーで作成しました。それぞれの素材を作っておくことで、この後のコンポジット(合成)で要素(光・影・反射)ごとに分解して調整することができます。作戦立てで必要な要素をリストアップしたら、ビューレイヤーの箱を要素ごとに用意し、コレクションやパス等を使ってそれぞれレンダリングするものを決めていくのがオススメです。
書き出し形式として選択した「OpenEXR マルチレイヤー」は、ビューレイヤーで作成した複数レイヤーのデータを1つの画像データとして保存することができるフォーマットです。DaVinci Resolve Fusionをはじめとして、他の多くのコンポジットソフトでも同様に扱えるのでとても便利です。