HoloLensでMR映像を撮影する方法 ~その2~

Spectator View x HoloLens

第2章 ~Unity側の設定~

## dllの作成

Compositer.slnをx64のReleaseでビルドします。
正常にビルドが終了するとMixedRealityCompanionKit-master\SpectatorView\Compositor\x64\Release内にdllが作成されます。

CopyDLL.cmdを叩いてdllをUnityProjectにコピーします。
するとMixedRealityCompanionKit-master\SpectatorView\SpectatorViewSample\Assets\Addons\SpectatorViewRig\Plugins\x64内にdllがコピーされます。

次に、第1章で作成したCalibrationデータをこのUnityProjectのAssetsフォルダ以下にコピーします。

ここまで行うとUnity Editor上でSpector View/Compositeorを選択し、Playすることでカメラの映像を確認することができるようになるはずです。

ここからはUnityでの作業になります。

## Sharingの設定

まず始めにMicrosoftのリポジトリからHoloToolKitのUnityPackageをダウンロードし、インポートします。

Unity Editor上部のメニューバーの中に「Mixed Reality Toolkit」が表示されるとインポート成功です。

この時点で初めてHoloToolkitを使用する人は初期設定を行う必要があるので上部メニューのMixed Reality Toolkit/Configure/Apply Mixed Reality Project Settingsを選択します。
この時、Enable Sharing Servicesのチェックボックスはオンにします。

ここで一つ注意なのがUniversal Windows Platformにswitch platformできるようにあらかじめモジュールをUnityに入れておく必要があります。
Open Download Pageボタンからダウンロードし、インストールしてください。

これでSharing Serverを立ち上げることができるようになります。

## Sharingでの接続

testシーンに配置されたSharingToSVAdapterオブジェクトにIPをIPを設定します。
– Server IP : UnityEditorを実行しているPCのIP
– Spectator View IP : カメラをマウントしているHoloLensのIP

Unityでビルド → 成功

その後、Visual Studioでビルド → 失敗・・・

UnityのバージョンはUnity2017.4.0.1f1

Visual Studioの更新を確認から更新を行うも結果変わらず

もしや、UnityProject内にBuildフォルダを作ってビルドしたせいでは・・・
(完全に寝ぼけてていつもはこんなところに出力しないのに何故かこの時の自分はそこを選択してしまった・・・)

一旦ビルド関係のファイルを削除し、Documents直下にBuildフォルダを作って再度ビルド → 成功

おそらくUnityEngineのUIのDLLが参照できないよ的なエラーだったのでこれが原因でしょう。

## いざMR動画の撮影

ここまでで、Sharing Serverの起動、HoloLensアプリケーション、Unity Editorでの実行環境が揃ったので一通り動かしてみます。
1. Sharing Server起動
2. HoloLensアプリケーション実行
3. Unity Editor実行

HoloLensアプリケーションの起動はDevice Portalから行うと楽です。

HoloLensの回転に同期してUnity Editor上のCubeが回転し、Compositer Windowに一眼レフの映像が映し出されるのですが、肝心のHologramが見当たりません。

  • HoloLens上にCubeは表示されている
  • タップジェスチャーでSphereがHoloLens上に追加される
  • Unity EditorでもSphereが追加される

このように見たところSharingはうまくいっているのですが、肝心のカメラとの同期に失敗しているようです。

## HoloLens用のProjectは別でした

よーくリポジトリを見てみるとHoloLens用のProjectは別でした・・・
ダウンロードしてきたリポジトリ内にSpectatorViewPoseProviderというフォルダがあります。

こちらのProjectはSharing機能をベースとして実装されている + カメラがマウントされているHoloLensの位置情報やSpatial Mappingのデータを送信する役割を担っています。

  • SpectatorViewPoseProvider : Spectator View用のHoloLens用
  • SpectatorViewSample : クライアントとなるUnity Editor,同期させるSpectator View用以外のHoloLens用

中にslnファイルがあるのでそちらからビルドを行い、カメラ側のHoloLensにインストールします。

これでようやくSpectator Viewでの実行に成功しました。

長い道のりだった・・・

Sapme Projectのものはこんな感じ

HoloLensの動きに合わせてCubeの見える位置も変わってる + カメラがHoloLensのものから一眼レフの高画質のものになっています。


HoloLensでMR映像を撮影する方法 ~その1~

HoloLensでMR映像を撮影する方法 ~その2~

Leave a Comment

©2018 haquxx