VRで撮影した画像を実写に合成する
VRChatにはまってはや数か月、現実の鏡にアバターが映らず普通のおじさんが映ってしまうのがしんどくなってきました。 VRでの姿を現実につれてくるためにVRChatで撮影した画像を現実の画像に合成することを試してみました。
ありがたいことにVRChatにはグリーンバックのワールドがあるので、そこで撮影をして背景を透過し、実写の画像に合成します。 やってみていろいろノウハウがたまったので書き留めておこうと思います。 合成には下記のgimpという非常に高機能なフリーの画像編集ソフトを使用しました。 www.gimp.org
素材の撮影
構図の決定
背景画像を撮影する。アバターを想定して人間入りでも撮っておくと、アバターをどの方向からどういう姿勢で撮影すればよいかわかる。 最終的な背景画像はアバターと合わせた後にもう一度いろいろ加味してもう一度撮影しました。
グリーンバックワールドでの撮影
グリーンバックのワールドでモデルと同じポーズの写真を撮影する。 vrchat.com
このとき
- 注意
- あとで解像度が足りなくなるので, できるだけ高解像で(接写で)撮影する
- カメラの高さが実際に合うようにする
- 二度手間にならないように少しずつアングル変えてたくさん撮る
- 表情に注意
自動でグリーンを抜く
スクリプトを書きました。こちら。 github.com 荒い部分がでてしまうので、最終的には手動でやったほうがいいかも。 この記事に添付した画像は自動で抜いたものを使ったので若干荒いです。
gimpで読み込んで背景と画像を合わせてみる
実際にキャラクターのサイズを変更しつつ、背景画像に合わせてみます。 うまくいかなそうであれば、もう一度背景画像を撮影します。 最悪もう一度VRに入ってアバターの画像もとります。
最終的な背景画像の撮影
下記に注意
- キャラクターと背景画像の物体のオクルージョンに注意する
- キャラクターを椅子に座らせる場合, 椅子の足とのオクルージョン
- カメラの平行が取れているのが良い画像に見える気がする, カメラ正面の水平な線が画面に平行か
- 映り込みに注意
- ディスプレイの表示とか、ゴミとか、なぞの布とか、脱ぎ散らかした服とか
- 複数の遠近, 高さ, 角度で撮影しておいて、あとで撮影しなおしにならないようにする
画像の選定
背景画像を1枚、キャラクター画像を数枚選ぶ。自分は背景単体で見てよさそうなものを1つ決めたあと、その上に透過したキャラクター画像を合わせてみて、キャラクター画像を選んだ。
合成
色見の調整などは戻せないので、レイヤを適宜複製してから編集するようにしていきます
キャラクター画像の手動での透過
自動での透過がうまくいっていなければgimpにて手動で丁寧に透過をする。 このとき周辺はほとんどぼかす必要はなく, かつグリーンができるだけ残らないようにする。 gimpでの透過の方法は検索するといろいろ出てきます。ちなみにgimpだったらグリーンバックじゃなくても透過できます。 https://gazocustomize.com/gimp-foreground-extraction-tool/
キャラクターのサイズ/位置合わせ
人間の大きさを参考にサイズを合わせる, 場合によっては縦横比も調整してかわいく見えるようにする。 合成するキャラクター画像が複数ある場合は、それらの間のサイズの整合をとる。 ここまでの作業は後戻りしたくないので、いったんここまでやって確定する
背景とキャラクターの色見の調整
背景とキャラクターの光の当たり方が違う場合, 色温度やレベルを調整して同じようなライティング環境っぽくする
キャラクターの輪郭のぼかし
キャラクターの輪郭にぼかしをいれて, いい感じに輪郭が混ざるようにする。 手順としては、ファジー選択で背景がわをクリックして背景の選択をし、その状態で境界をぼかすで境界がぼかして、ぼけた状態でdelするとキャラの輪郭がちょっとずつ半透明になる
キャラクターの輪郭線の描画
ファジー選択で背景がわをクリックすると背景が選択されるが, その状態で選択を反転させるとキャラが選択される。 キャラクターの輪郭に1pxの太さで線を入れる. 線が半透明で入ってくれていい感じになった
背景のぼかし
キャラクターの解像度にたいして背景の解像度が高いように見える場合は背景にガウスブラーを設定値1とかでちょっと入れる
背景のポスタリゼーション
背景をポスタリゼーションすると, アニメっぽくなってキャラとなじむかもしれない。 設定値を10くらいにしてパット見実写くらいの感じにする。印象だけちょっとアニメ感を出したい。
レイヤの統合
レイヤを複製してから、複製したもの同士を統合する。後戻りできないので
仕上げ
レベルを調整して全体的な色見を調整する。ホワイトバランスの自動調整をすることもできる。 最後に設定値0.5くらいでガウスブラーをかけるとちょっとなじむ気がする