2024年5月28日、「XR Kaigi Hub in 大阪」が開催されました。「XR Kaigi Hub in 大阪」は株式会社Mogura主催の日本最大級のXR/メタバースをテーマとしたカンファレンス「XR Kaigi」の姉妹イベント。大阪市都島区の会場で、展示会やXR/メタバースの最新動向を学べるセッション、交流会等が実施されました。
今回は当日のセッション「最近のMicrosoftのXR系技術、いろいろ紹介します!」をレポート。登壇者はMicrosoft MVP for Mixed Realityとして活動する、大阪駆動開発コミュニティのXR Engineer 宮浦 恭弘氏です。
開発者向けイベント「Microsoft Build」の注目ポイントとは
冒頭、セミナー内容の本題に入る前に宮浦氏は、アメリカ現地時間2024年5月21日〜23日に行われたマイクロソフトの開発者向けイベント「Microsoft Build」の様子を一部、紹介しました。
特に宮浦氏が期待を込めて言及したのが、基調講演で発表された「Windows Volumetric Apps」。WindowsアプリをMeta Quest等のVR/MRヘッドセットでの3D表示に対応させる拡張機能です。
マイクロソフト提供のXRサービスを概観すると
ここから宮浦氏は、本題であるMicrosoftが提供するXR技術系のサービスについて、一覧を示しながら紹介しました。
ソリューションローコード系、Azureサービス系、ネイティブ開発系など、マイクロソフトは幅広くXR領域サービスを手がけています。
「Dynamics 365 Guides」にCopilot機能が新たに追加
まず宮浦氏が取り上げたのは、HoloLens向けMRアプリ「Dynamics 365 Guides」。マイクロソフトが提供するソリューション「Dynamics」には、「Dynamics 365 remote Assist」と「Dynamics 365 Guides」というMR系サービスが2つ存在します。「Dynamics 365 Guides」は「3D空間上でのキャプション表示」といった3D操作ガイドを実装するためのツールです。
2023年のアップデートでは「Dynamics 365 Guides」に生成AIを活用したCopilot機能が新たに追加されています。同氏は「実際に自分が作ったガイドの情報と合わせてCopilot機能を用いることで、利用者が困った時により手厚くフォローするための仕掛けが加わった」と解説しました。
「Azure Mixed Reality」関連サービスがいくつか廃止に
次にピックアップしたサービスは、「Azure Spatial Anchors」と「Azure Object Anchors」です。
宮浦氏は「Azure系サービスには、MRで使えるものがいくつかあります。空間にオブジェクトを配置した時に、アンカーとして使える機能を持つ『Azure Spatial Anchors』と『Azure Object Anchors』もその中のひとつです。しかし両サービスはいずれも廃止となります」と解説しました。(実際に「Azure Object Anchors」は2024年5月20日で提供終了)
同氏は、これらの機能廃止に関するマイクロソフトのブログ内容を引用し、「『次世代に興味のある方は連絡ください』と書かれているので、廃止となった機能自体は別サービスでの提供を検討している可能性がある」と自身の見解を語りました。
「MRTK3」はほぼノーコードでMR開発ができる
次に、「MRTK3」について話題が移ります。
「MRTK3」は「Mixed Reality Toolkit」の略称で、もともとはHoloLens向けのUnity開発ライブラリでした。現在はマイクロソフトとクアルコム、Magic Leapの3社による独立したプロジェクトとして、デバイスを問わないクロスプラットフォーム向けのライブラリとして提供されています。
宮浦氏によると、「『MRTK3』はできる限り、ローコードもしくはノーコードで3Dコンテンツを制作できる仕組みを作ろうというコンセプトのもと、提供されている」とのこと。プリセットで用意されたオペレーションと基本的なコードで、コンテンツ開発ごとに発生するサイズや位置の調整を手間なく実施できるプラットフォームとなっており、同氏も「便利でよく使います」と語っていました。
メジャー機能実装にもってこいの「Power Platform」
続いて「Power Apps」で提供されている「Power Platform」。「Power Platform」は前述の「MRTK3」と同様、完全なるローコード・ノーコードサービスで、かつAR/MR機能が利用できます。
同氏はサンプル画像を提示しながら、「空間の計測やオブジェクト配置といった機能が『Power Apps』内のひとつのパーツとして提供されています。『Power Platform』に3Dモデルを貼り付けて、データを読み込ませればアプリ内機能として使えます。また、メジャー機能もボタンひとつで実装できて、様々な計測データを取得可能です。これらの機能をアプリの中で構築するのは非常に面倒ですが、『Power Platform』を使えば、簡単に実装できます」と解説しました。
ネイティブ開発に役立つ便利なライブラリは意外と多い
また、ネイティブ開発する際に便利なライブラリも続々と紹介していきます。
「『MRTK3』内のライブラリ『Data Binding & Theming』は、『3Dコンテンツ内で、複数のリストデータの配列表示したい』『リストデータを3Dオブジェクトとしてコピーしたい』といった場面で非常に役に立つ」と宮浦氏。用意されたテンプレートにリスト情報を与えれば、自動的に配列を作って色分けする機能などが提供されています。
同じくライブラリである「Adaptive Card」は、JSON形式で記述するUIテンプレートです。これらのテンプレートを使って、3DのXRコンテンツを作るライブラリとして用意されています。また、「WebView」はVR空間内でWebコンテンツを表示したい場合に使うライブラリとなっています。
情報が少ない注目XRサービス3つをピックアップ
ここから宮浦氏は、さらにフォーカスして「Microsoft Mesh」「Azure Communication Services」の2つのサービスを詳しく解説します。同氏によると、「これらの詳細情報はあまり出回っていない」といいます。
「Microsoft Mesh」で、Teamsでの没入体験やカスタマイズワールド制作が可能に
まず1つ目は、2023年10月に公開された「Microsoft Mesh」について。宮浦氏はマイクロソフト公式サイト抜粋を引用しつつ「要は、3D空間でのコミュニケーション向けプラットフォーム」であると説明します。
実際にTeams画面を映し出した動画を使いながら、「Teamsに実装されている『Microsoft Mesh』には『Immersive Spaces』機能があり、Teams経由でログインした上で、この『Immersive Spaces』機能を有効にすると空間に入れる」と解説しました。
続いて、Teams上の空間のカスタマイズについて解説。
「Teamsはスペックが高いサービスではないので、提供される空間はいくつかの決まったテンプレートを選ぶことになっています。他方、カスタム要望に応えるために専用アプリも用意されています。それが『Mesh App』です。PC用とMeta Quest用があり、PC用はTeamsと同じく、いわゆるゲーム画面のようにVR空間を体験できます。Meta Quest用に関しては、没入感がある状態でVR空間に入ることができます」(宮浦氏)
さらに同氏は「Microsoft Mesh」に関する情報があまり出回っておらずハードルが高いことに言及しました。
「Microsoft Mesh」使用時には、Microsoft Office 365に関連するエンタープライズ系アカウントが必要です。さらに「Microsoft Mesh」にアクセスしたいユーザーは、「Teams Premium」という月額ライセンスを追加しなければなりません。加えて、カスタムワールド制作にはAzureアカウントが必要になります。それゆえ、企業単位での利用が多くなっており、個人での利用は進まないため外に出てくる情報が少ないようです。
宮浦氏は「Microsoft Mesh」のカスタムワールド制作方法についても解説しました。ユーザーは、Unityで作ったワールドを「Mesh ポータル」と呼ばれる開発環境にアップロードすることでカスタマイズが可能。なお、執筆時点で要求される環境はUnityバージョンが2022.3.15、URP(3D)です。
マイクロソフトからは、「Microsoft Mesh」のワールドを構築するために便利なライブラリ群「Mesh Toolkit」も提供されています。
宮浦氏は「ワールドがどうMesh上で動くのか試したい方は、Unityと『Mesh Toolkit』を使えばデバッグ実行ができるので、基本動作の確認は可能です。ただ実際に運用するとなると、Microsoft Office 365系のライセンス等が必要になります」と注意を促しました。
また、初心者にはチュートリアルの「Mesh101」を推奨しました。
「Microsoft Mesh」の具体的なカスタム実装方法を解説
ここからは「Microsoft Mesh」のカスタム環境開発方法についての具体的な話に。「Mesh Visual Scripting」と「Mesh Cloud Scripting」の2つが紹介されました。
「Visual Scripting」(ビジュアルスクリプティング)とは、Unreal Engineのようなノードをつなぐ開発方法。宮浦氏によると「『Mesh Visual Scripting』と『Mesh Cloud Scripting』を使えば、プログラミングの知識がなくとも『Microsoft Mesh』のカスタム環境を開発できる」といいます。
なお、「Mesh Visual Scripting」と「Mesh Cloud Scripting」が含まれる「Mesh Toolkit」は開発ツール一式がパッケージされていますが、「Mesh Cloud Scripting」使用時は、デプロイ先のAzureアカウントやサブスクリプション購入が必要となる場合もあるので、注意が必要です。
(画像左は開発ツールのひとつである「Mesh Uploader」の画面。Unityで制作したワールドを「Microsoft Mesh」にアップロードできる。画像右では、アップロードしたツールをベースにイベントを設定している)
宮浦氏は続けて、カスタム環境開発の仕組みを説明します。
「実際にワールドをアップロードすると、Webサービスを作るためのAzureリソースが生成されます。『Mesh Visual Scripting』や『Mesh Cloud Scripting』でビルドした情報がデプロイされ、Webサービス上で公開されて、それがMeshのワールド内で参照されて表示される仕組みです。なお『Mesh Toolkit』は運用環境用のデプロイとなってしまうので、月額2万円超えの高額プランとなっています」(宮浦氏)
また「Mesh Cloud Scripting」は少し”クセ”のある特殊な実装方法とのこと。
ここで、2024年5月21日〜23日開催の「Microsoft Build」セッションで披露された「Microsoft Mesh」に関する動画が紹介されました。
この動画の11:40前後から紹介されているサンプルデモでは、「Mesh Cloud Scripting」を使って外部サービスから引用した各都市の気象情報が、VR空間内の地球儀上に表示されています。
宮浦氏は「注目すべきは『Mesh Cloud Scripting』と『Azure OpenAI Service』を掛け合わせて、copilot的な体験を提供している点です。Meshのワールド内で、『今、自分が何を見ているのか?』と質問すると『あなたは地球儀を見ていて、この地球儀の上には天気情報が記載されているよ』等と返答してくれます。近々、実装手順が公開されるようです」と解説しました。
さらに同氏は「Microsoft Mesh」解説のまとめとして、「XRコンテンツの中に、copilotや生成AIの機能を埋め込むスタイルが話題になっていると感じています。VRChatやclusterのようなサービスを、Teamsや業務エンタープライズ内で展開する仕組みとして『Microsoft Mesh』が提供されています」と語りました。
「Azure Communication Services」のMR活用の可能性は大きい
2つ目に取り上げられたのは「Azure Communication Services」です。これはマルチチャネルコミュニケーション実現のためのサービスと謳われており、音声、ビデオ、チャット、テキストメッセージ等のあらゆるコミュニケーションに必要なツール一式を入手できます。また、提供ライブラリを利用することで、音声やビデオ、ストリーミング会議をオリジナルアプリに実装できます。
宮浦氏は「非常に面白い点は、Microsoft Office 365やTeams等と連携できること。連携すると、Teams会議に『Azure Communication Services』で制作したオリジナルアプリで参加するテクニックを扱えます」と述べ、「Azure Communication Services」内の「Calling Unity SDK」を活用したデモ動画を紹介しました。
(画像:HoloLens 2で「Azure Communication Services」を活用している様子。画面左のTeams参加者には、HoloLens 2を用いた参加者から送られた「HoloLens視点のMR映像」が共有されている)
宮浦氏は「『Azure Communication Services』は、簡単なSDKやRest APIを利用した仕組みで提供されています。こういった機能を作ろうと思うと、Web-RTC等、ローレベルでの実装が必須となるのですが、そのあたりが全部サービス化されています。非常によくできている」と述べました。
「Calling Unity SDK」では、利用者が参加する際に「Azure Communication Services」にユーザー特定のためのトークンを要求します。そのトークンを使って、利用者はミーティングに参加。参加後はストリーミングで流れてきたデータを受け取って、各アプリのコンテンツで表示する仕組みです。この仕組みを使うと、Teamsとオリジナルアプリを繋いで会議を実施できたり、他にも様々な活用ができます。
さらに「Azure Communication Services」には「Data Channel API」という、会議中の音声やビデオ以外のリアルデータを自由に送るためのサービス機能が付いてます。
宮浦氏は「例えば、任意の適当なバイナリデータを送ると、それをストリーミング配信してくれます。つまり会議中に他のデータをいっぱい貼り付けることができる」と述べ、追加の動画を紹介。
この動画では、HoloLens 2とUnityのデバッグで、Teamsの会議に入ってる状態を構築し、両方の空間にある物体の動きを「Data Channel API」を使って同期させています。
Azure Communication ServicesのUnityサンプルをちょちょっと加工☺️
ACSの機能Data Channel API使ってHoloLens間のオブジェクト操作同期するあれっぽいの作ってみた。左がUnity上(PC)、右がHoloLens 2視点での操作。同じTeams会議に入って同期。カクツキはMiracastのせい。#XRMTG pic.twitter.com/Mg20F3rmdJ— takabrz1 (@takabrz1) May 15, 2024
(動画は宮浦氏のXより引用)
宮浦氏は「3Dコンテンツの操作情報を遠隔地で同期化している形なので、片方の操作を行うと、もう片方が動くデモを構築できます。通常のTeamsだと難しいのですが、『Azure Communication Services』や『Data Channel API』を使えば簡単に同期化できます。非常にパワフルで面白い機能です。今のところ、HoloLens 2向けにしか提供されていませんが、Meta Quest等の他デバイスと連携させるようになれば、面白いことができそう」と語りました。
「8thwall」ARコンテンツをHoloLens2で体験できる
セッションの最後に番外編として、NianticのWebAR開発プラットフォーム「8thwall」の紹介も。
宮浦氏によると「実は『8thwall』のコンテンツはHoloLens2で動きます。数年前の『8thwall』ブログ記事で、近接の空間を使う『WebAR World Effects』機能でMeta QuestとHoloLens 2をサポートすることがアナウンスされていました。指定のバージョンであれば『three.js』や『A-Frame』でも、Meta QuestとHoloLens 2で使用できます」とのことでした。
(画像:HoloLens 2でEdgeブラウザから「8thwall」のURLにアクセスする様子。「Enter AR」というボタンが出てきて、押すとAR起動画面に遷移し、空間にオブジェクトが出てくる。このオブジェクトは実際に動かすことも可能)
この実装の詳細は宮浦氏が記事にて公開しています。
様々な技術を駆使し、楽しくXR開発を
宮浦氏は、本セッション最後に要点を振り返りつつ、「様々な技術を使って、XR技術開発していくのは非常に面白いと思うのでぜひ皆さんもチャレンジしていただきたい」と述べ、セッションを締めくくりました。
(了)