バーチャルモーションキャプチャーとLIVを使ってMR合成する方法 #2「externalcamera.cfgファイルの作成」

このシリーズではバーチャルモーションキャプチャー(以下VMC)とLIVを使って、アバターとSTYLYの空間をMixed Reality(MR)合成する方法をご紹介します。

本記事ではexternalcamera.cfgファイルについてご説明します。 今回ご紹介する内容は、前回の記事でご紹介した内容を前提としているため、前回の記事とあわせてご覧ください。

ただし、LIVのバージョンがV1.0.0になり、それ以前とは設定画面が大きく異なるのでご注意ください。

今回からはV1.0.0を前提にご説明します。 また、今回ご紹介するLIVを使用するには相応のスペックを持つPCが必要となるため、ご利用の環境によっては満足に動かない可能性もあるのでご注意ください。

▼前回の記事

externalcamera.cfgファイルとは?

MR合成に使用するカメラと、そのカメラに取り付けるコントローラーとのオフセット距離を含んだファイルがexternalcamera.cfgファイルです。

SteamVRプラグインにはMR合成用の機能があらかじめ組み込まれており、このexternalcamera.cfgファイルで機能を有効にできます。

この機能で合成用の画面をつくる

この機能で合成用の画面をつくる

本来のMR合成での使い方

本来のMR合成では、現実世界の実写映像とVR空間内のCG映像を合成することによって、プレイヤーがVR空間内にいるかのような映像をつくります。

externalcamera.cfgファイルでMR合成用の機能を有効にすることで、(通常は3本目の)コントローラーがVR空間内でカメラの役割を持ちます。

このコントローラーを現実世界のカメラに取り付けて、現実世界のカメラの位置とVR空間のカメラの位置を一致させることによって、このようなMR合成が実現できるようになっているのです。

今回紹介する使い方

今回ご紹介する手法は、このような本来的なMR合成の手法を応用したものです。

現実世界の実写映像の代わりにVMCのレンダリング映像を使用することによって、現実世界のプレイヤーではなく、3Dアバター(キャラクター)がVRゲームの世界にいるかのような映像をつくりだします。

現実世界とVR空間の合成ではなく3DCGのキャラクターとVRゲーム空間との合成であるため、今回ご紹介する手法は厳密にはMR合成とは呼べないものかもしれませんが、MR合成の手法を応用しているので、ここではMR合成の一種としてご紹介しています。

VMCを利用したMR合成

今回ご紹介する手法では、現実世界のカメラを使用しません。その代わりにVMCのフリーカメラを利用し、VMCのレンダリング映像をVRゲームの映像と合成します。

externalcamera.cfgファイルを使って、(キャラクターを映す)VMCのフリーカメラの位置と(背景となる)VR空間内のカメラ位置を合わせることによって、このような合成を実現します。

実写映像の代わりにVMCの画面を合成

実写映像の代わりにVMCの画面を合成

externalcamera.cfgの設定

共通のexternalcamera.cfgファイルを使用することによって、VMCのフリーカメラの位置とVR空間内のカメラ位置を完璧に合わせることが可能です。

externalcamera.cfgファイルによって、カメラの位置情報を完全に共有できるので、実写映像との合成と比べても位置合わせが簡単にできます。

externalcamera.cfgファイルの出力(VMC)

VMCにはフリーカメラの位置をexternalcamera.cfgとして出力する機能があります。

この機能によって、VMCで出力したexternalcamera.cfgファイルをLIVで読み込むことで、VMCのカメラ位置をLIV側に反映させることができます。

まずは、VMCでVRMモデルを読み込み、MR合成モードでキャリブレーションします。

MRモードでキャリブレーション

MRモードでキャリブレーション

次に、カメラでフリーカメラを選択し、カメラの角度や位置を調整します。

フリーカメラで調整

フリーカメラで調整

フリーカメラの調整ができたら、今度は詳細設定からexternalcamera.cfgファイルを出力します。コントローラー番号でカメラとして使用するコントローラー・トラッカーを選択します。

カメラに使うトラッカーを選択

カメラに使うトラッカーを選択

今回はLIVを使用するので、コントローラー(LIV Virtual Camera Controller)を選択します。

最後にexternalcamera.cfgを出力ボタンを押し、任意のフォルダにexternalcamera.cfgを保存します(ファイル名はexternalcamera.cfgのままにしてください)。

名前はこのままに

名前はこのままに

これでexternalcamera.cfgの出力ができました。

externalcamera.cfgをロードする(LIV)

次にexternalcamera.cfgをLIVでロードします。LIVを起動し、Launch Compositorのボタンを押してコンポジターを起動します。

新しいバージョンのLIV

新しいバージョンのLIV

次にCAMERAを選択し、Camera ProfilesのEditボタンを押します。

左のCAMERAを選択し、Editをクリック

左のCAMERAを選択し、Editをクリック

今度はCALIBRATIONをを選択し、画面右上のDetails欄にチェックを入れます。

右上のボタンをクリック

右上のボタンをクリック

するとTracker欄の上にImportとExportのボタンが出てくるので、Importのボタンを押し、From fileを選択します。

Importを選択

Importを選択

From fileをクリック

From fileをクリック

ここでexternalcamera.cfgを選択する画面に移動するので、さきほどVMCで出力したexternalcamera.cfgを選び、開きましょう。

VMCで出力したファイルを選ぶ

VMCで出力したファイルを選ぶ

これでLIVでexternalcamera.cfgを読み込むことができました。

これでVMCのカメラと同じ位置に

これでVMCのカメラと同じ位置に

もし、VMCのフリーカメラの位置を変えてしまった場合は、VMCで新しいexternalcamera.cfgを再び出力し、LIVで読み込んでください(以前のexternalcamera.cfgに上書きしてもかまいません)。

新しいexternalcamera.cfgを読み込まないと、LIV側では古いexternalcamera.cfgの情報に基づいて合成が行われることになるので、ズレが生じてうまく合成できなくなります。

お疲れさまでした。

externalcamera.cfgの設定はMR合成をする上で最も重要なものです。この設定がうまくできていると、キャラクターとVRゲーム内のプレイヤーの位置(多くの場合は手の位置)がピッタリと一致するため、とても自然な合成ができます。

反対に、この設定に誤りがあると、キャラクターとプレイヤーの位置がズレてしまい、不自然な映像となります。

VRゲームによってはexternalcamera.cfgを使った機能に対応していないものや、バグによってうまく機能しないものもありますが、そのような場合を除けば、ズレの原因は設定ミスによるものと考えられるので、ズレが生じるときは何度かやり直してみることをおすすめします。

次回は実際にMR合成をおこない、キャラクターがSTYLYの空間を内側からクリエイトする様子を撮影したいと思います。