トマシープが学ぶ

Unity/VR/AR/デザイン好きのミーハー 記事内容は自分用のメモです

【Hololens2】複数デバイスでの空間共有の在り方について学ぶ

ドキュメント読むシリーズ

docs.microsoft.com

空間アンカーを共有して複数台のHoloでホログラムを共有したり、Androidiosバイスでも見えるようにする。

f:id:bibinbaleo:20200413093322p:plain

シナリオ定義

シナリオを定義するために、以下の6つの質問に答える。

<6つの質問>

  1. シナリオ:プレゼンテーション 、 コラボレーション 、ガイダンス
  2. 人数:1対1、6人以下、7人以上
  3. 同じ場所にいるのか:みんなが物理的に同じ空間にいる、みんな違う空間 、同じ場所にいる人もいるし、違う場所にいる人もいる
  4. 同期・非同期:同期 or 非同期 or 両方
  5. お互いの物理環境が似ているか:類似 or 相違
  6. バイス:2DデバイスiPad,スマホ,PC)、 3Dデバイス( Holo,VR)

1.シナリオ

何故空間を共有するのか。

  • プレゼンテーション:同じコンテンツが複数ユーザーに提示されて、教師が生徒に教えるなど。(ただし教師にだけカンペが見えていてもいい)
  • コラボレーション:共同作業!
  • ガイダンス:1対1で教える

2.人数

1対1がいい?

6人以上のグループだと技術面(データとネットワーキング)と社会面(人がたくさんいる影響)で問題が起こる可能性がある。

人数で3つのカテゴリに分類できる

  • 1:1
  • 小さいグループ(6名以下)
  • 大きいグループ(7名以上)

以下に影響を与える。

  • ホログラフィック空間における人々の表現
  • オブジェクトのスケール
  • 環境の規模

3.人がいる物理的な場所

3パターンある。

  • みんなが物理的に同じ空間にいる
  • 全員別の場所にいる
  • 同じ場所にいる人もいるし、違う場所にいる人もいる

 以下の選択に影響を与える

  • 人々のコミュニケーション方法(例:アバターが必要かどうか。)
  • 彼らが見るオブジェクト。(現実空間のオブジェクトも共有すべきか)
  • 彼らの環境に適応する必要があるかどうか?(現実空間を反映すべきか

4.同期・非同期

すべての仮想物体を同期させるべきなのか

  • 同期
  • 非同期
  • 両方(教授が学生によって実行された課題を後日採点し、翌日のために学生にメモを残す)

以下に影響を与える

  • オブジェクトと環境の永続化。(状態を保存して検索できるようにする)
  • ユーザーの視点(例:メモを残すときにユーザーが何を見ていたかを記憶する)

f:id:bibinbaleo:20200413112337p:plain

5.(人々が別の場所にいる場合)どれくらい物理環境が似ているか

例えばお互い別の会社の会議室にいるなら、机といすがあるという前提で配置をできるが、片方が自宅にいるならテーブルがないかもしれない。

  • 類似:類似した家具、周囲の光と音、物理的な部屋のサイズ
  • 相違:家具の設定、部屋の大きさ、光、音などの考慮事項が全く異なる

以下に影響青与える

  • どのようにオブジェクトを体験するか(床に置くスペースがあるか)
  • オブジェクトの大きさ

6.どのデバイスを使用するか

iPadスマホ、PCなどの2Dデバイスなのか、HoloやVRなどの3Dデバイスなのか

シチュエーション例

シチュエーション例で上の6つの質問に答えてみる

例1

Skype経由で、離れた場所にいる専門家の助けを借りて、壊れたライトスイッチを修理する

www.youtube.com

  1. ガイダンス
  2. 1:1
  3. 全員別の場所にいる
  4. 同期
  5. 物理的な環境は似てない
  6. 専門家は2DのPCで、ユーザーはHolo

例2

架空の火星での探索作業を各地からする。

www.youtube.com

  • コラボレーション
  • 小さなグループ
  • 全員別の場所にいる?
  • 基本同期だが、非同期で再訪もできる
  • 物理的な環境は似てる
  • PCでも操作できるしHoloでもできる。

空間共有の技術要素

  • マッチメイキング:セッションを作成し、セッションを宣伝し、特定の人々を発見して招待し、ローカルおよびリモートでセッションに参加してもらう
  • アンカーの共有:共通のローカル空間で複数のデバイス間の座標を合わせる機能により、ホログラムがすべての人に同じ場所に表示される
  • ネットワーキング:人とホログラムの位置、相互作用、動きをすべての参加者間でリアルタイムに同期させる
  • 状態の保存:ホログラムの特性と位置を空間に保存して、セッションの途中で参加したり、後で思い出したり、ネットワークの問題にも対応できるようにする

アンカーの共有

Azure Spatial Anchorsを使う

docs.microsoft.com

  • 最初にユーザーはホログラムを配置
  • アプリは空間アンカーを作成し、そのホログラムを世界に正確に固定
  • アンカーは、Azure Spatial Anchorsを介してHoloLens、iOSAndroidバイスと共有

アンカーはオフラインで共有することもできるけど、Azure Spatial Anchorsよりもアンカーの再現率が低く、iOSおよびAndroidバイスはこのアプローチではサポートされない

docs.microsoft.com

1人称視点を共有

映像共有

Miracastを使える環境ならMiracastを使えばいい。特にアプリ側で何もする必要はない

リモートユーザーやMiracastが使えない場合はWebRTCを使う

github.com

1:1のオーディオ/ビデオストリーム、、デバイス間でのメッセージング用のデータチャネルが可能になる。

 

ビデオストリーミングを複数のリモートクライアントに共有する場合は、
SignalWire(有料サービス)などのMCUサービスプロバイダー(Multipoint Conferencing Unit)が使用されます。

signalwire.com

AzureへのワンクリックSignalWireデプロイメントは、Freeswitch経由で利用できます。

github.com

SpectatorView

Holoユーザーが見ているホログラムを別のデバイスで見れる。

上の映像共有とは違い、ホログラムの状態だけを共有しているのでデータが軽い。

github.com

こちらが詳しそうだった

akihiro-document.azurewebsites.net

マルチユーザーのコラボ

PhotonとAzure Spatial Anchorsを使ってコンテンツを同期するチュートリアルがある。

docs.microsoft.com

映像の共有や、ホログラムの状態の共有ではなく、各自がホログラムに対して作用できる。

共同作業とか?