[blender]カメラマッピング

あーせっかくblenderにコンポジットあるしなんか合成したい。
ということでcyclesでやろうとしてみたらなんかけっこう悩みました。
テーマとしては以下2点

・合成工程含めてできるだけblender内で完結させる
・クオリティよりはお手軽さを重視した方法の模索

具体的には
CGモデル(実写素材を簡易IBLとして使う感じで)
+
影成分(影とAO)
+
実写素材

みたいなシンプルな合成をやってみようと。
そして先に結論から言うと影成分のコントロールが難しくて、結局一発ポン出しではいい感じの抽出ができなかった。
なので今回はカメラマップまでと中途なまとめ。対応するバージョンは2.71です。

まずは合成する背景側、実写素材の用意だけど今回は静止画で写真を適当に探してきた。
(CCライセンスで探すときはhttp://search.creativecommons.orgなんか便利。)
光源がわかりやすくパースが拾いやすいものを見つけてきた。(ただあまりにも広角でマッピングしづらいことに後で気づく。先に気づけ。)

room
合成の背景となる実写素材。パースが超わかりやすい。

で、素材用意できたらパース合わせの作業からはじめる。
まずはblenderのバックグラウンドイメージを使ってカメラに写真素材を貼り付けるとこから。

backgroundimage
バックグラウンドイメージの設定は”n”キーで出るプロパティ欄の中にある。赤枠内。

カメラビューにするとカメラ内に画像が表示されてる。これを見ながらblender側のパースを合わせ込む。
(あとこの時レンダリング設定の解像度や縦横比なども素材側と合わせておく)

cammap01
ボックスを1個置いてカメラをぐりぐり動かし適当に合わせてるとこ。

このパース合わせの作業、blenderのことだからきっとなんか便利なアドオンとかあるんじゃないかナーと思って探してみたらやっぱりあった。ということでちょっと寄り道。

BLAMというアドオンを使うことでカメラマップの位置合わせが簡単になるらしい。(ダウンロードhttps://github.com/stuffmatic/blam
使い方としては…

・BLAMをインストール
・MovieClipEditor画面を出す
・メニューの”Open”で合わせこみたい素材を読み込み。(ムービーじゃなく静止画でも読み込めるので今回は使う写真素材をよみこんだ。)
(静止画だと0,1フレームにしか画像表示されないので注意)
・GreasePencilでレイヤーを2個作る。
・ひとつをX軸、もうひとつをY軸と仮定して画像の上にアタリ線を引く(軸を限定すればいいのでX,Z軸でもY,Z軸でもいい)
・ツールシェルフの中にある”Static Camera Calibration”(画像:黄色い枠の中)でGreasePencilのふたつのレイヤーがそれぞれどの軸の線を引いたものか指定する。
・”Calibrate active camera”を押すとカメラの位置とアングルが自動で変更されてるので3Dビューで確認。
ボックスを置いてみてカメラの視界に入るように位置を動かしていくとだいたい合ってた。

blam_ss
不明点
・レンズ(FocalLength)の値も変わってたけど合致はしてなかった(画像は18mmのはずだけど12.5mmになってた)
・ワールド座標の0,0,0点を捉えるようにするにはどうすればいいかわからない。できないのかもしれない
・他の設定(1点透視と2点透視の切り替え、”OpticalCenter”の設定)はよくわからない

とりあえず簡単にアングル出しできるのは便利っぽい。

話を戻して合成させる絵とワールドのパースがだいたい合ったとします。
次は画像の中にある物体をモデリングして位置が合うようにレイアウトしていく。
カメラを動かすなら手前にあるテーブルくらいは別モデルにしたほうが良さそうだけど今回は部屋形状のボックスのみ。部屋の手前側の面だけ邪魔なので消しておく。
ボックスの大きさ、位置など決まったらUV展開をかける。この時”Project From View”にすることでカメラからの見た目、見たままをプロジェクションした状態でUV展開がされる。

proj_ss
左がUVエディター。(広角なので外側はえらいことになってるけど見きれるので無視)

これでボックスに写真素材の貼り付けが可能になるのでマテリアルを作りテクスチャに写真素材を選択する。
この時わかったんだけどボックスのポリゴン面積が大きいとテクスチャの歪みが酷かった。なので適度にポリゴン分割している。
cammap02
けっこうグチャってるけどカメラから見える範囲はまっすぐマッピングされてる状態。

これでレイアウト環境は整ったので、次は合成させたいモデルを用意する。

cammap_render01
blender猿に2,3回サブディビかけたものを浮かせてみた。
写真素材の色味をそのままIBLぽく使おうと思ったのでボックスのマテリアルをエミッションにして光源として使用している。
んだけど、なんかこういまいち…真上からの光はもっと強く影響ないと壁面の凸凹に落ちてる影の濃さと全然合わないな~。
ただ補助のライトなど少し足してやればそこそこ馴染むのではという気はする。

で、ここからはコンポジット含めてあれこれ試行錯誤が続くんだけどデータもぐちゃぐちゃになったので割愛。影もレンダーパスでshadow,AOとそれぞれ出してポスト合成とかしたけどいまいちだったので、影を分けての合成はまた別の題材で試すことにして、最終的に絵としてはここまで。

cammap_render02
おまけ。トップにライト1灯増やして壁面への影を濃くしてみた画像。(ぶれんだ猿は映りこみを見るためテカテカ金属にされた)

アニメーションするとこんな感じ。
YouTube Preview Image

アニメーションさせてわかったけど影部分のノイズがカメラの動きに対して静止していてすごい浮いちゃってる。
これはなんか解決方法あるんだろうか。

まあ色々と不完全燃焼ではあるけどとりあえず今回はここまで。
影成分をうまく作ること、それを合成でいい感じになじませる方法は模索が必要そう。


コメントする

メールアドレスが公開されることはありません。