本日は MRTK の小ネタ枠です。
MRTKでRender from cameraを利用してMixedRealityキャプチャとホログラムのズレを補正する手順を記事にします。
MixedRealityキャプチャとホログラムのズレ
MixedRealityキャプチャを使うと、アプリケーションのホログラムとカメラの写真を合成した画像を取得できます。
このとき、HoloLens のカメラに近いハンドメッシュなどの描画がズレてしまうことがあります。
これはアプリケーションが描画する視点の位置と、HoloLensに搭載されているカメラの位置が僅かに異なるためです。
このズレを補正するのが、Render from Camera の機能です。
本機能を利用すると、キャプチャ時はカメラ位置からホログラムを描画するため、描画のズレが発生しなくなります。
microsoft.github.io
前提条件
Render from Cameraの機能は Unity2018.4.13f1 または、Unity2019.3f1 以降のバージョンでのみ利用可能です。
Render from Cameraの有効化
[MixedRealityToolkit]オブジェクトの[Inspector]ビューを開き、カメラ設定ロバイダーを変更します。
プロファイルを編集するため、デフォルトプロファイルを選択している場合は[Copy&Customize]で新規プロファイルを作成します。
任意のプロファイル名を設定して[Clone]を実行します。
プロファイルを新規作成したら[Camera]タブを開きます。
[CameraProfile]のプロファイルを[Clone]して新規プロファイルを作成します。
任意のプロファイル名を設定して[Clone]を実行します。
プロファイルを作成すると[Camera Settings Providers]が編集できるようになります。
[Windows Mixed Reality Camera Settings]のパネルを開き、[CameraSettingsProfile]のプロファイルを[Clone]して新規プロファイルを作成します。
任意のプロファイル名を設定して[Clone]を実行します。
これで[Render from PV Camera]の項目が編集できるようになります。
チェックを入れることで Render from Camera の機能が有効化されます。
動作確認
後は HoloLens2 にアプリケーションをインストールして動作を確認します。
Render from Camera の機能を有効化していない場合と、有効化している場合を比較すると、ホログラムのズレが補正されていることが分かります。
・有効化していない場合
・有効化している場合