Blender 実写合成 Part 2
hr.icon
hr.icon
12. EeveeとCyclesのレンダリングの違い
12.1 Eeveeレンダリングの特徴
影生成にはMateriarlのノード作成が必要
プレビューで影を確認できる
EeveeでもCompositeで合成による調整は可能だが、リアルタイムレンダリングの特性を活かす意味ではCompositeを使わない作成方法が適しているだろう
下はEeveeレンダリングの映像。レンダリングの設定にもよるので単純比較できないが、この程度であればEeveeでもある程度クオリティは出せる。
https://youtu.be/jjh02Uf6XJc
12.2 Cyclesレンダリングの特徴
Shadow Catcherを利用して影を生成する
プレビュー状態では影を確認できない(View Layerを操作することで一時的な確認は可能)
Compositeを利用する
リアルタイム再生しながら影の状態を確認することはできない
下映像はCyclesレンダリング。
https://youtu.be/lLoZ0GN3TYY
hr.icon
13. Eevee - 照明と影の設定〜レンダリング
13.1 作業内容
https://gyazo.com/29e0b8cd95aa99221d5bd9c9144b20e7
「10. blendファイルの保存」のファイルから作業を行う。
https://gyazo.com/21b0772b4e7e9906cf08224920d675ad
13.2 準備
Cubeの削除
Viewport Shading: Rendered
このとき、Ground部分にのみ撮影映像が投影されているのは、background CollectionがHoldout(マスク)されていることと、Render PropertiesのFilmでTransparentがOFFになっていることによる状態。
View LayerやCompositeを理解していないとこの挙動が理解できない(後述)。
https://gyazo.com/c06092c5a58788395ce14df3a825ca1e
View LayerのフィルタからHoldout(Indirectは任意)と表示させてOFFにする。
※他の方法として、Groundをforeground Collectionに移動して、background Collectionを使用しない方法もある。
このままだとForegroundとBackgroundの両方に影が残って2重にレンダリングされるため、Compositeの2つ目のAlpha OverのFacを0にする(後述) ※他にも方法ある。Setup Tracking Sceneを使わずに手動でCameraのConstrainやCameraCompositeを組むのがシンプルだが経験が必要になるので、この教材では紹介していない。
https://gyazo.com/b56091f9ade5c38966e2788d7ff019d2
Ground Planeが透過しない状態になる。影が表示されていることが確認できる(Holdout=透過されると影が表示されない)。
https://gyazo.com/9fe842fac80715ad78758c16de21bd18
Render Properties > Film > Transparentにチェックを入れる。
https://gyazo.com/5ca66dfe8eda58ceea6b56e27a027e80
Outliner(or 3D viewport)でCameraを選択
Object Data Properties > Background Images > Opacity: 0.5→1.0に変更
https://gyazo.com/8be6f2215fa24685d8a10c4bcda57b48
13.3 影の設定
Groundオブジェクトを選択
Shader Editorを表示(Layout Workspaceでパネルを追加して、Timelineと同時に見えたほうがよい)
Timelineの時間インジケータを、HULKの影がわかりやすいフレームに移動する
Shader Editorのメニュー中央のNEWでマテリアルを作成
Shader Egitorをピン留めする
既存Light(Point)は削除
中安個人メモ)blender_files_tracking_test3 > hinokaijuA_trackingTest3_w16.blend
https://gyazo.com/6a28e2ea4b33bc293353956ce051141f
13.4 Sun Light(上)の追加
SHIFT+A > Light > Sunの追加
Strength: 15
Angle: 3°(影のボケ)
https://gyazo.com/f96050a32016cd028c51c98f2e4965e6
Lightの位置をG、Zキーで上に移動
https://gyazo.com/3908c3e04bce979eb921fe412d342b84
13.5 マテリアルのノード作成
※Blender 4.2からBlend Modeが廃止されているため、以下の方法で行う必要がある
Principled BSDFは削除
以下のノードを作成して、下図のように接続する。
Diffuse BSDF、2つ
Transparent BSDF
Shader to RGB
Mix Shader
https://gyazo.com/a294cd7a36b4d208c0b27897d94216f2
https://gyazo.com/532c2eb80b03d793f7454f97f0a5239f
Material Properties > Settings > Render Method > Dithered→Blendedに変更する。
https://gyazo.com/829623933c0c2319adf63892cf334bec
上記までの設定により、Groundオブジェクトが影を残して透過する。
https://gyazo.com/25bf88aff9de6ac155b760b65fc7ebb0
照明の強さと上記マテリアルの調整のバランスで影の濃さや色味が変化する
1つ目のDiffuse BSDF 影の濃さ(Sun Lightの強さも影響する)
Hue: 0.0
Sat: 0.0
Val: 0.257
2つ目のDiffuse BSDF 影の濃さ、色に影響
Hue: 0.607
Sat: 1.0
Val: 0.776
Transparent BSDF 透明度(Lightの強さも影響する)
Hue: 0.0
Sat: 0.0
Val: 1.0
https://gyazo.com/670e636d997d0e81d451733b6bbf78ae
影の色が実写映像の影のように少し青みがかったことを確認する。
https://gyazo.com/eabbd7231ea1e36e5f609419538f21b4
13.6 Sun Light(手前)の追加
HULKの正面が暗すぎるので、2つ目のSun Lightを追加して、下図の位置に調整する。
https://gyazo.com/684648e38e1f5451cff76af03957f033
Strength: 0.3
Angle: 3°(影のボケ)
https://gyazo.com/053b57b44dcf1d43434056ca092a6bfb
13.7 ライトの方向やGroundの幅を調整
影が真下にあるので、撮影映像のように右側に影が落ちるように1つ目のSun Lightの方向を調整する。
https://gyazo.com/81a5e1f80d115c926aa6e8c8e535cb7c
影が切れてしまった場合はGroundの幅を広げる。
https://gyazo.com/2ea01b92a14818da4ad7c4268ce03f3f
https://gyazo.com/b05e6eea0bfbbfdc4f01921733c669a0
このままでは影が二重にレンダリングされて濃くなるので、Compositeの2つ目のAlpha OverのFacをゼロにする。
https://gyazo.com/74b125df119304eb23167210c25514b0
13.8 映像のレンダリング
練習課題
全フレームをレンダリングするのに30分以上必要。
以下の設定を行い、Renderメニュー > Render Animation。
Render Properties
Resolution X: 1280 px
Resolution Y: 720 px
Frame Rate: 30 fps ※プリセットでHDTV720pにすると24 fpsになるので注意
Output
場所:任意の場所/ファイル名 ※出力パスは日本語だと書き出されない可能性があるので英語にしてください
File Format: FFmpeg Video
Encoding > Container: MPEG-4
Video > Video Codec: H.264
下映像は間違えて、影が濃くなった状態。
https://youtu.be/jjh02Uf6XJc
hr.icon
14. Cycles - 照明と影の設定〜レンダリング
14.1 作業内容
https://gyazo.com/8048a1ca971b04087a76455e4041fd9b
「10. blendファイルの保存」のファイルから作業を行う。
https://gyazo.com/21b0772b4e7e9906cf08224920d675ad
14.2 Cyclesレンダリングの特徴(あらためての確認)
Shadow Catcherを利用して影を生成する
プレビュー状態では影を確認できない(View Layerを操作することで一時的な確認は可能)
リアルタイム再生しながら影の状態を確認することはできない
Compositeを利用して、レンダリング後に全体の状態を確認する
14.3 準備
View LayerのFilterのHoldout、indirectは表示にする(あくまで挙動確認のため)
https://gyazo.com/a166ff1deaa91e6e52451c63458d8a23
既存Cubeの削除
既存Light(Point)の削除
Viewport Shading: Renderdに変更
Render Properties > Render Engine: Cyclesに変更
Eeveeではこの時点でGroundのHoldoutによりGroundの部分のみ撮影映像が見えていたが、Cyclesでは真っ黒のままになる。
https://gyazo.com/e1dc64e0e782b6e38ac5417fc6e2ba77
EeveeとCyclesでは、Ground(Plane)のObject Properties > Visibilityの項目が変化する。
CyclesではGroundのObject PropertiesにShadow Catcherが自動でチェックが入っていることを確認する。
https://gyazo.com/61b6cd829335db468e60294e55188ebd
Render Properties > Film > Transparentにチェックを入れる。
https://gyazo.com/90bb0c5ea1c7ceae578c1e4614bcd030
14.4 Sun Lightの追加
Sun Lightを追加
Strength: 20
Angle: 0(影のボカシはCompositeで行う)
この時点では明るすぎるが、後で調整する。
https://gyazo.com/dec02f8ecc7b5fed2739808dc0402db6
https://gyazo.com/573e0be099fe3804e5e857f57f045011
14.5 Groundのマテリアル作成
GroundのマテリアルをShader Editorで作成する。
https://gyazo.com/f9c8df65458224019eeef66c2ef5aa17
Principled BSDFのBase Color > Value: 0.07に変更する。
Ground自体はShadow Catcherの効果で見えないが、Groundのマテリアルの色がHULKへ反射していたことがわかる。
https://gyazo.com/344f5909033611059ae6ccf95fd1ebba
メモ・参考程度)
Light側のCast Shadow(Object Properties > Light)及びShadow Catcher(Object Data Properties > Visibility)とオブジェクト側のShadow Catcher(Object Data Properties > Visibility)のすべてをONにして影が生成される状態となる。
GroundのObject Properties > Ray Visibility > Glossy(光沢)及びDiffuse(拡散) Groundの色のHULKへ反射をON/OFFできる
もし、2つのライトの場合は、床面からの反射効果をゼロにする(Value: 0.0 , Roughness: 1.0)。
14.6 影(Light)の方向
一時的に影の確認をする場合はbackground CollectionのHoldoutをOFFにする。
https://gyazo.com/691a48fd7aa14b61a61121e835570424
下図のように、影(Background Collection)が表示される。
実際のComposite Nodeのすべてが反映されるわけではない。HoldoutをOFFにしたままレンダリングができないわけではないが、HULKと影と実写映像の合成度合いを調整するためにCompositeを用いる。
https://gyazo.com/3f09a648b61acc99b2df718f0256a170
影の方向を実写映像に合わせて調整する。
https://gyazo.com/e0cf4c1e378635a40c4c0d9fbf687ec9
影の右端が切れる場合は、必要に応じてGround Planeの横幅を広げる。
https://gyazo.com/365c397cd6dd39cf0de4babdeae151a1
background CollectionのHoldoutはONに戻しておく。
https://gyazo.com/344f5909033611059ae6ccf95fd1ebba
CameraのObject Data Properties > Background Images > Opacity: 1.0に変更する。
https://gyazo.com/acd879b1e11968ed593cc784391dba20
14.7 Setup Tracking Sceneで行われていることの理解
Motion Tracking WorkspaceのSetup Tracking Sceneを行った時点で、以下のことが自動設定される。
Compositeを使わない場合は、Setup Tracking Sceneは使わずに以下の上から2つを手動設定する方法もある
CameraのConstraint(カメラの動き)が設定される。
CameraのBackgroundに映像が設定される(50%表示)。
Scene Collectionにforegroundとbackgroundの2つのCollectionが作成される。
Cubeが原点に作成。
Ground(Planeオブジェクト)はbackgroundに入り、Holdout設定される。
View Layerに以下の2つが作成される。
Foreground
Background
Compositing Node Treeが自動作成される(後述)。
※Eeveeでも作成されていたが、Foregroundのみを利用していた。
14.8 View Layerの理解
Foreground View Layerの表示(これまでと一緒)。
https://gyazo.com/ed2c2510d14c16e79a91ff0511b3a617
下図のアイコンをクリックして、メニューからBackground View Layerの表示する。
https://gyazo.com/cede40651e10833f4fff5160cf54902e
影だけが表示される。
https://gyazo.com/fe3d8966393197169dc106619393fa2c
下記はすぐには理解できなくてもよい。試行錯誤している中で理解が進む。
Foreground View LayerやBackground View Layerは、foreground Collectionやbackground Collectionと本質的には関係なく、HandoutやIndirect Onlyの設定がそれぞれのView Layerにリンクしている。
Holdoutはマスク、Indirect Onlyは非表示の意味合い。Holdoutは下レイヤーのすべてに対して透過(穴が空いた感じ)になり、Indirect OnlyはそのCollectionのみが非表示になって下レイヤーは表示される。
Compositerのノードの組み方やパラメータの調整によって、最終出力のクオリティが変わる。
このView Layerにより、背景レイヤー、影、キャラクター等に分けて映像をレンダリングすることができる。
参考)
14.9 Compositeの理解
Compositing Workspaceに切り替えるとCompositerが表示される。
https://gyazo.com/7e96ad713f1451e4ed812271d4a30841
これがCompositerに表示されているノードであり、下図のようなフローとなる。
ここでは解説のみ。後述で操作する。
https://gyazo.com/c72eaa1c10e105a0fe057a9134dc09e3
一般的なCG制作では、合成の調整は試行錯誤するため、背景レイヤー、影、キャラクターを連番画像で書き出して、After Effects等の別の合成ソフトを利用する場合が多い
14.10 Composite
Composite状態を確認するには静止画レンダリングが必要となる。
現在の設定ではレンダリング時間が長いので、以下のように設定を変更して画質を落とす。
Output Properties > Format
Resolution X: 1280
Resolution Y: 720
Render Properties > Sampling
Viewport > Max Samples: 32
Render > Max Samples: 32
Renderメニュー > Render Imageを行う。
https://gyazo.com/7ec159078b7ef1fdc3fd9ecb9657a416
Foreground、Background、Compositeの順でレンダリングされる。
すべてのレンダリング終了後、レイヤーを切り替えてそれぞれを確認できる・
https://gyazo.com/f9640e8e747db51fa81026e9f04c6011
左からForeground、Background、Compositeレイヤー。
https://gyazo.com/d7d2ec4852ae97d9e1df8a9fedde2946https://gyazo.com/d6b2fce3a40b97c35ec6899ccc402a18https://gyazo.com/b234c51d8f1b1a1910338251f727d42b
Render Windowは閉じる。
Compositing Workspaceに切り替える。
Backdropが表示されていない場合は、Backdropボタンを押す。
https://gyazo.com/dfb7f4c5938a7f8fb2e0423995706862
タイムラインの時間インジケータは触らないこと
一つのフレームしかレンダリングしていないので、現在フレームが変わると背景映像とずれる
Backdropのスケールと移動は、サイドバーのBackdropで変更できる。
Fitを押せばWindowサイズに調整される。
https://gyazo.com/eae2ac773883ffeb2df6344371522af7
Movie ClipノートやRender Layersノードの上に画像プレビューする場合は、SHIT+H(Node Preview)。
うまくいかない場合は何度かSHIFT+Hを押す。
https://gyazo.com/8e88938d0d7ca75375a5509ed0597390
以下のNodeをON/OFF(Mキー、Mute)して、合成処理の流れを確認してみよう。
Movie Clip:背景(下図)
左側のAlpha Over:影
右側のAlpha Over:Foregroung
https://gyazo.com/1d5879dfe66c4ac0a5bec1451e3aaa4a
影の色と濃さを調整するために以下のノードの追加とパラメータ調整を行う。
Mix Colorノードの追加(青味付け)
Hue: 0.62
Saturation: 0.78
Value: 0.06
Blurノードの追加(ボケ具合)
Filter Type: Gaussian
X: 4
Y: 4
Size: 0.5
左のAlpha Color(影の透明度)
Convert Premultiplied: ON(事前の乗算合成?)
Fac (Factor): 0.97
https://gyazo.com/81e38e179f6757c7c32559c0e4aaed62
(以下はまだ記述途中)
特定のノードの時点をプレビュー方法 確認必要
14.11 レンダリング
忘れやすい注意点、View LayerでBackground CollectionのHoldoutをONにしておくこと
今回の設定は以下。
Renderメニュー > Render Animation。
Render Properties
Resolution X: 1280 px
Resolution Y: 720 px
Frame Rate: 30 fps
Output
場所:任意の場所/ファイル名 ※出力パスは日本語だと書き出されない可能性があるので英語にしてください
File Format: FFmpeg Video
Encoding > Container: MPEG-4
Video > Video Codec: H.264
全フレームをレンダリングするのはPC性能によるが数時間以上必要。
前半の設定でFull HD、Render > Max Samplesを32に変更しているので、高画質にする場合は4096に戻しておく。
https://youtu.be/lLoZ0GN3TYY
メモ・参考程度)
最終出力は、以下YouTubeの12:20頃のようにFile Outputノードから行うこともできるが、Compositeノード自体がBlenderのRender ImageやRender Animationと直結するので通常のレンダリングフローで問題ない。また、File Outputノードでは静止画保存しかできないようだ(おそらく)。
(ここは準備中)
そもそもRender ImageでOutput出力できるのか確認
Render Imageの場合はRender WindowsのImage > Saveから保存できるのは確認している。
hr.icon
15. Shadow Catcherの参考サイト
メモ)
cyclesの影の色 以下の方法ではできないな(キャラの影の色は変わるけど、地面の影は変わらない)
Shadow Catcherはそのままでは色のついた影が実現できない
上記でCompositeを使って色のついた影が実現できるが、プレビューできないので、微調整したい場合はグレーの影のみ別レイヤーでレンダリングした後、After Effects等でコンポジットをした方がよいかもしれない。
上記によると「"Shadow Catcher" render layer」を理解して使う必要があり、知識が必要。
下記YouTubeの1:30以降を理解する必要あり。
https://www.youtube.com/watch?v=EN_xB9Fkw9M
https://www.youtube.com/watch?v=-4X_K8b9p9U
hr.icon
16. その他の参考サイト
16.1 参考にしたサイト(備忘録)
https://www.youtube.com/watch?v=iP3JTnjeo3g
https://www.youtube.com/watch?v=DxlcpQ8NaYY
https://www.youtube.com/watch?v=P4XDpsVVHHo
How to add a shadow catcher
https://www.youtube.com/watch?v=Soim7LYXpJU
以降で紹介するのは、Blender以外のモーショントラッキング方法。
16.2 PF Track
有料ソフトウェア。無料版は体験のみ。
https://www.youtube.com/watch?v=Edtax29W7hA&t=5s
16.3 fSpy Open source still image camera matching
フリーソフトウェア。
https://www.youtube.com/watch?v=XeCVClEBOrk
16.4 Aftern Effects
mixamoキャラクターをBlenderでレンダリングした後、After Effectsで合成している。
https://www.youtube.com/watch?v=gVkXQXMJnHo