どこにでもいるSEの備忘録

たぶん動くと思うからリリースしようぜ

HoloLens 2の視界共有の方法について調べる

この前はHoloLensにちょっとだけ入門してみました。

www.nogawanogawa.work

どうやら、実空間に3Dオブジェクトが投影でき、それを(使いやすいかどうかはおいておいて)直感的に操作することができるっぽいということを確認しました。

ただ、周りの人からはHoloLensを装着した人間の視界は見えないので、普通に使ってるとただの変な人になってしまします。 そのため、HoloLensを持たない人とHoloLensを持つ人が協調作業をする際には、何らかの方法で視界を共有する必要があります。

そんなわけで、今回はHoloLensと他の他のデバイス間で視界を共有する方法について調べてみます。

HoloLens 2 の視界共有に関するドキュメント

公式のドキュメントとしてはこの辺になるかと思います。

docs.microsoft.com

docs.microsoft.com

docs.microsoft.com

github.com

視界共有を考える際に考える6つのこと

こちらの記事によれば、「共有」の具体的な内容によって、使用するべき方法が異なるようです。

docs.microsoft.com

共有の用途には

  • プレゼンテーション
  • 共同作業
  • ガイダンス

の3つに分けられるようです。これらのうちどれに該当するかが視界共有においてもポイントになるようです。

また、想定されるユーザーの人数によっても考え方が変わります。 大体の場合、用途は下記の3グループに分けられるようです。

  • 2人
  • <7人
  • それ以上

実現しようとしていることが、上記のうちどれに該当するのかを把握することで、

  • Holographic space での人間の表現
  • オブジェクトの大きさ
  • 環境の大きさ

に影響があるそうです。

誰がどこにいるかについても考える必要があります。 こちらも大きく3分類されるらしいです。

  • 同じ場所にいる
  • 離れた(リモート)にいる
  • 上記2つのミックス

これはアバターを使用するか、実空間を考慮する必要があるかどうかなどに影響を与えます。

通信の同期/非同期についても考える必要があります。 同期通信が必要なのか、動画配信のようにいつでも使用できるようになっているのかで、アプリケーションのデザインも変わります。

MRの特徴的な部分として、実空間の条件が同じかどうかについても考慮する必要があります。 特に異なる空間で使用が想定される場合には、注意が必要です。

最後に使用するデバイスについても考える必要があります。 必ずしも全員がHoloLensを使用するとは限りません。 ときには、ある人はPCやタブレットを使用するかもしれません。 そういった違いを踏まえてアプリケーションをデザインする必要があるようです。

ざっくりと共有の方法の分類

ざっくりと条件・用途ごとに分けるとこんな感じでしょうか。*1

人数 場所 デバイス 備考 手法
2 同じ空間 HoloLens + PC 開発者として使う Mixed Reality Capture
2 同じ空間 HoloLens + PC Miracast レシーバーを使用している場合 Miracast
2 同じ空間 HoloLens + something Miracast レシーバーを使用していない場合 Spectator View
2 リモート HoloLens + PC - MixedReality-WebRTC
2< リモート HoloLens + PC - Signalwire
2<= どこでも HoloLens + something 映像以外の通信も可能 Photon
2<= どこでも HoloLens + something 映像ではなく空間の情報を保存 Azure Spatial Anchors

Mixed Reality Capture

アプリの中でハードコーディングして視界映像を取得する手法のようです。 若干ややこしいですが、Windows Device PortalにもMixed Reality Captureという機能があり、こちらでも視界の可能のようです。

docs.microsoft.com

※Windows Device Portalでの視界の共有は開発者モードでしか使用できないようです。

Miracast

こちらはメニュー画面から視界を共有する機能を選択するだけで行けるようです。

docs.microsoft.com

lilea.net

Spectator View

こちらは、リアルタイム通信が必要な際の方法のようです。

docs.microsoft.com

ipadやスマートフォンなどでも使用できるようにUnityのパッケージが提供されているようです。

MixedReality-WebRTC

こちらは、これまでと違い遠隔利用を強く意識した作りになっているようです。 リモートにいながら共同作業をする際などに使用できそうです。

github.com

Signalwire

リモートのユーザーとの通信のためのサービスがあるようです。

signalwire.com

Photon

こちらはHoloLensに限らず、オンラインゲームなどで使用される遠隔通信用のサービスですね。 HoloLensでも使うことができ、視界だけでなくその他の通信(音声やオブジェクト、情報など)もできそうです。

www.photonengine.com

docs.microsoft.com

Azure Spatial Anchors

こちらはAzureを使って、空間情報の共有をするサービスですね。 仮想オブジェクトがどこにあるかの情報を共有して、各デバイス上でレンダリングしていく感じになるかと思います。

docs.microsoft.com

(参考)HoloLens(初代)の場合の視界共有

初代の場合には、視界共有にいろいろ方法があるようで、下記の記事にまとめて紹介されていました。

withmr.nextscape.net

HoloLens 2になると結構違うんですね。

その他

PC -> HoloLens 2 への通信はHolographic リモート処理プレーヤーってのがあるらしいです。

docs.microsoft.com

こちらは、機会があればまた今度調べてみたいと思います。

感想

今回は通信についてやってみました。この手の、一風変わったデバイスについて考えるのも楽しいですね。

全然関係ないんですが、2019年に発表されたHoloLens 2ですが一般販売がされていませんでした。 先日のMicrosoft Buildで、どうやら7月から注文を受け付けるとの発表がありました。

blogs.windows.com

まあ、37万するんですけどね。サブスクリプションが出たときにまだやる気があったら、ちょっとだけ入手を考えようかと思います…

*1:ドキュメントを読んだだけなので、あくまで個人の見解です。実際に使ったことがないので、その点ご了承ください。