Microsoft Mesh Technical Overview (日本語訳)

# はじめに

本記事は3月3日～4日の2日間開催された Microsoft Ignite 2021 Keynote で発表された **Microsoft Mesh** に関する技術概要「[Microsoft Mesh - A Technical Overview](https://techcommunity.microsoft.com/t5/mixed-reality-blog/microsoft-mesh-a-technical-overview/ba-p/2176004)」を日本語に翻訳 (意訳含む) 、改編を加えたものです。※ 記事の内容を視覚的に補足するために当該セッション動画 (オンデマンド) から画像を抜粋しております。

> <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180432/e3a6fb88-c5cf-deff-824e-db37150c5b5f.png" width="600">
YouTube : [Microsoft Ignite 2021 Live Stream](https://youtu.be/Bha8qs4wB_8) より画像抜粋。


# Microsoft Mesh - 技術概要

本日 ( 日本時間 : 2021年3月3日 )、Microsoft Azure 上に構築された新しいプラットフォーム 「Microsoft Mesh」を発表しました。Microsoft Mesh はクロスプラットフォームに対応しており、複数人で 3DCG を共有できる没入感の高い Mixed Reality アプリを構築することを可能にします。

> <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180432/ae34b253-1174-606f-3ab8-ffb530bf6f7f.png" width="600">
[An Introduction to Microsoft Mesh](https://myignite.microsoft.com/sessions/48e213fc-37e7-4203-b507-59c0cb74b876?source=sessions) より抜粋。

Mesh は没入性の高い方法で空間を共有し、コラボレーションを実現することで、まるで物理的に同じ空間に存在しているかのように、他ユーザーの存在 (Presence) を感じながら交流を図ることができます。顧客は Mesh を使用することによって、バーチャル技術を用いた会議の品質を向上させたり、デザインレビューを行ったり、遠隔地への支援をより強化したり、離れた場所にいる人々と一緒に学ぶことができます。その他にも、バーチャルの懇親会やミートアップなどを主催することもできます。

このブログでは、Mesh 内部構造を理解するために、Microsoft Mesh の中身を覗いてみたいと思います。ただし、(内部構造の話に移る前に) まずはなぜこのようなプラットフォームが必要なのかを振り返ってみたいと思います。

> <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180432/9949a5dc-e44b-1909-d7a9-306670ab9153.png" width="600">
[An Introduction to Microsoft Mesh](https://myignite.microsoft.com/sessions/48e213fc-37e7-4203-b507-59c0cb74b876?source=sessions) より抜粋。

Mixed Reality は メインフレーム、PC、スマートフォンに続く、4つ目の新たなコンピューティングのカタチ (形態) です。Mixed Reality (以下、MR) は 一般消費者/ビジネスにおいて主流になりつつあります。この技術は、従来の画面の中に閉ざされたデジタル体験から人々を解放し、あなたの空間やモノの中で、特に人々と直観的なインタラクションができる体験を創造します。世界中にいる何億人ものナイアンティック探検家 (Pokemon GO ユーザー) がポケットに入っているデバイスを通じて MR を体験しました。また、対面での社会的繋がりが恋しく、コンサートやフィットネストレーニングなどの交流がバーチャルの世界へ移行しています。Fortune 500 企業の50%以上がビジネスで重要な RoI (投資対効果) を追い求めて、HoloLens やその他の Mixed Reality ソリューションを導入しています。そのような大きな数字を考えると、今日開発されている MRアプリは数千とはいかなくとも、数百規模を上回ると想定されます。しかし、特定のケースではそうではありません。開発者がこれらの没入度の高い体験を作成する上で妨げとなる根本的な難しい課題がいくつかあります。以下の通りです。

> <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180432/bcf74ef5-6a4b-0373-1e23-4b35f8f14e9f.png" width="600">
[An Introduction to Microsoft Mesh](https://myignite.microsoft.com/sessions/48e213fc-37e7-4203-b507-59c0cb74b876?source=sessions) より抜粋。


- MR でリアリティのある人々を表現するためには多くの時間とリソースが求められること
- 時間とデバイスの種類の垣根を越え、(MR空間内で共有された) ホログラムを安定化させること
- 顧客の持っているファイルフォーマットをサポートし、MR空間に正確さを保った3Dモデルを導入すること
- 地理的に分散した場所で開催されるMRセッションで、人々の行動と表現を同期させること

これらの課題により、開発者が複数人でのMR活用シナリオを実現することには高い障壁がありました。 Microsoft Mesh はこれらの一連の課題を解決しようとしています。Mesh は没入感のあるマルチユーザー向けのMRアプリを設計するためのプラットフォームを提供します。複雑な技術的問題について心配する必要はありません。それでは 開発者向けの Microsoft Mesh プラットフォームの核となるコンポーネントを見てみましょう。

<img width="1200" alt="Microsoft Mesh developer platoform" src="https://img.esa.io/uploads/production/attachments/3505/2021/03/04/10862/3a7367da-23f2-41f9-9eea-86f477251053.png">

POST : 「[Microsoft Mesh - A Technical Overview](https://techcommunity.microsoft.com/t5/mixed-reality-blog/microsoft-mesh-a-technical-overview/ba-p/2176004)」より画像を引用しております。

## **Multi-device support :** 
Mesh は場所を問わず、ユーザー同士で会うことができます。Microsoft HoloLens や HP Reverb G2, Oculus Quest 2 といった完全没入型ヘッドマウントディスプレイ (HMD) から、iOS/Android 搭載のスマートフォンやタブレット、また PC までの幅広いデバイスをサポートします。ユーザーはどこからでも接続することができます。

## **Developer Platfrom :**
Mesh が実現する包括的な開発者プラットフォームとツールです。開発者プラットフォームの中核 ( = Core Platform ) は Azure です。Azure Active Directory (AAD) や Microsoft Accounts のようなIDサービスを使用することで、正式な認証 (Authenticate) と認可 (Authorize) を受けたユーザーを安全かつ信頼されたセッションへ導きます。Microsoft Graph はユーザーと共に処理され、商用/非商用問わず、彼らのコネクションやコンテンツ、環境設定を持ち込みことを許可します。また、開発者は課金、オーディオ/ビデオ伝送、および基盤となるライブ状態管理機能に関連するコアインフラストラクチャについて心配する必要はありません。

Core Platform の上に、AIを活用した主要な Capabilities (特性) があります。これにより、Mesh は最も複雑な技術的課題のいくつかに対処することができ、MRにおける大規模なマルチユーザーオンライン ( MMO : massive multiuser online ) シナリオを実現することができます。この Capabilities には、以下4つの項目が含まれています。

<img width="1200" alt="Microsoft Mesh AI-powered capabilities" src="https://img.esa.io/uploads/production/attachments/3505/2021/03/04/10862/46673bc4-2780-4fcd-9d3d-eb71f37f9ea3.png">

POST : 「[Microsoft Mesh - A Technical Overview](https://techcommunity.microsoft.com/t5/mixed-reality-blog/microsoft-mesh-a-technical-overview/ba-p/2176004)」より画像を引用しております。


### **Immersive presence :**

> <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180432/980a7204-f620-fa0e-e85a-90661fec888b.png" width="600">
[An Introduction to Microsoft Mesh](https://myignite.microsoft.com/sessions/48e213fc-37e7-4203-b507-59c0cb74b876?source=sessions) より抜粋。

マルチユーザーシナリオの基本的な機能は、参加元のデバイスに応じて、参加者を異なる形式で表現できることです。Mesh はデバイスの内部センサー情報を元に、アバター (ユーザーの代理人) を用いて3Dの存在感を提供します。Mesh Platform には Avatar Rig とカスタマイズスタジオが含まれているため、すぐにアバターを使用することができます。このプラットフォームは、AIを利用したモーションモデルを使用して既存のリグアバター ( Rig Abatar ) を動かすこともでき、ユーザーのアクションと一致する正確な動作と表情を記録することができます。

アバターと並んで、外部センサーを用いた写実的な360°ホロポーテーションも可能にします。これらの外部センサーは、Mixed Reality Capture Stodio のようなカスタマイズされたカメラの構成になりうり、完全で忠実な3Dキャプチャを実現するために役立ちます。または、ホログラフィック表現の作成を支援するデバイスとして Azure Kinect が用いられる可能性もあります。ホログラムが作成されると、没入型MRヘッドセットやスマートフォン、PC、タブレット上の Mesh 対応アプリ内でこれらを使用して、最も本物にそっくりな表現でユーザーをホロポーテーションし、本当にその場にいるような存在感を感じさせます。

### **Spatial maps :** 

> <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180432/35ed1171-2929-f0a4-fc48-90c2136ea0b6.png" width="600">
[An Introduction to Microsoft Mesh](https://myignite.microsoft.com/sessions/48e213fc-37e7-4203-b507-59c0cb74b876?source=sessions) より抜粋。

現実世界でホログラフィックコンテンツを永続化するアプリを構築するためには、各参加者の周りの空間の共通の視点、そして物理的な世界を理解する必要があります。それが技術者のためのサービス記録であろうと、顧客の経路探索 ( = Way Finding )であろうと、時間や地理的空間、デバイスの垣根を超えて持続可能なホログラムを配置することは一般的なニーズです。Mesh では、これらを  Spatial maps を介して 実現します。Mesh 使用する以前に、各デバイスでは独自のローカルビューを持っています。Mesh を使用すれば、これらのローカルキャッシュがマージおよび最適化され、彼らがいる空間/環境をグローバルに理解できます。このフレームワークにより、コンテンツの固定、デバイスの視点の共有、3Dモデルのコラボレーションが可能になります。

Mesh は、GPSよりも桁違いに正確な空間マップを作成するのに役立ち、GPSにアクセスできない場所でも動作させることができます。それは特定の興味のあるポイントにホログラムを固定することができる「ワールドロックホログラム ( world locked holograms )」を提供することを手助けします。それに加え、Mesh は特定のオブジェクトの正確な配置と幾何学に合わせて同様の理解を生成することができ、開発者が物体へのオーバーレイが求められるであろうアプリを簡単に構築できるようにします。説明書やサービス記録、その他の重要データのような視覚情報をその物体の構成要素に正確に位置合わせを行うことができます。


### **Holographic rendering :**

> <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180432/6714a860-334d-c0f1-8033-1831dab4fac3.png" width="600">
[An Introduction to Microsoft Mesh](https://myignite.microsoft.com/sessions/48e213fc-37e7-4203-b507-59c0cb74b876?source=sessions) より抜粋。

インテリジェントエッジとインテリジェントクラウドアーキテクチャの典型的な具体例である Holographic Rendering は、デバイスのコンピューティングと熱履歴に関係なく、Mesh を利用した妥協のない忠実度を実現します。Mesh を利用すると、シーンやモデルごとにアプリ内でシームレスにローカルレンダリングまたはクラウドレンダリングを選択することができます。これにより使用しているデバイスに応じて、遅延と忠実度を最適化できるアプリを柔軟に設計することができます。それだけでなく、ホログラフィックレンダリングは、メッシュ対応アプリでネイティブにレンダリングするほとんどの3Dファイル形式もサポートし、ユーザーの既存3Dモデルをコラボレーションに取り入れることの課題を解決します。

### **Multiuser sync :** 

> <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180432/79d7c576-918c-5ced-ba6f-e0f3b6bef01d.png" width="600">
[An Introduction to Microsoft Mesh](https://myignite.microsoft.com/sessions/48e213fc-37e7-4203-b507-59c0cb74b876?source=sessions) より抜粋。

共同セッションにおいて、ホログラムや (ユーザー) 相互の共通の視点を生み出すのは大きな課題です。Microsoft Mesh では、この共有コンテキストを Multiuser Sync を介して実現します。これは参加者からのポーズの更新、動き、表現、または空間で発生しているホログラフィックの移動に着目しています。これらすべての同期は、同じ物理環境にいるか、地球の反対側にいるか関係なく、100ms以内の遅延におさまります。マルチユーザーシナリオで同じ物理空間にいるような感覚を生み出す Mesh の空間オーディオで拡張されています。

これらの Capabilities と Core Platform の機能を活用するために、Mesh はクロスプラットフォーム開発者SDKを提供し、開発者は自身が選択したプラットフォームとデバイス ( ex. AR, VR, PCs, SmartPhones ) をターゲットとしたアプリを作成することができます。現在、ネイティブ C++ 及び、C# と共に Unity をサポートしていますが、今後数か月以内に、 Unreal, Babylon および ReactNative もサポートする予定です。SDK は、Capabilities にアクセスするためだけでなく、開発者がアプリで利用できるように事前に構築されたUXコンポーネント ( Prefabs ) もあわせて提供します。これらの Prefab は、開発プロセスを簡単かつ迅速にするために設計されています。

### **Mesh-enabled apps :** 
開発プラットフォームに加えて、Microsoft Mesh はいくつかのアプリ体験として配信されています。[HoloLens 2 Mesh app](http://aka.ms/meshapppreview) や [AltspaceVR](http://altvr.com/mesh) の新しいエンタープライズ向け機能は Mesh を使ったコラボレーション体験の具体例です。これらは Microsoft とその他パートナーによって構築されていく他の多くのエクスペリエンスの中の最初ものに過ぎません。

> <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180432/8f6b7b2b-b0c7-7f79-f99b-bdbf5d7f1895.png" width="600">
Microsoft Store : [Microsoft Mesh App (Preview)](https://www.microsoft.com/en-us/p/microsoft-mesh-app-preview/9p64lj74ngw0?rtc=1#activetab=pivot:overviewtab) より画像を抜粋。


Microosft Mesh の開発者プラットフォームは包括的です。そして Tools と Capabilities は開発者が迅速にアプリケーション開発を始めることができ、魅力的なマルチユーザー向けのMRアプリを提供できるように設計されています。アーリーアダプターとプレビューのお客様から学びながら、SDKを進化させ、より多くの開発エンジンとフレームワークをサポートしていきます。もし説得力のある活用シナリオを持っていて、プレビューに参加したい場合は、MR開発者プログラム ( MR Developer Program ) に参加してください。そうすることによって、MR空間のパイオニアの手助けを受け、MRアプリを構築し、その過程の中で Mesh Platform に貢献することができます。

---

Microsoft Mesh のその他のリソースについては、次のリンクを確認してください。

- [Video: Microsoft Mesh – Mechanics Session](https://aka.ms/mesh-mechanics)
- [Video: Microsoft Mesh – Ignite Session](https://aka.ms/meshignite)
- [Blog: Microsoft Mesh Innovation Story](https://aka.ms/AAaxf16)