Upgrade to Pro — share decks privately, control downloads, hide ads and more …

MRTK で HoloLens 2 個人開発してみよう/ xrdnk-xrdeveloperscommunityconference-presentation

270b0c7883545117a9a618dc7ca7cc83?s=47 Denik
August 31, 2020

MRTK で HoloLens 2 個人開発してみよう/ xrdnk-xrdeveloperscommunityconference-presentation

xR Developers Community Conference / HoloLens ミートアップ枠で発表した資料です.

270b0c7883545117a9a618dc7ca7cc83?s=128

Denik

August 31, 2020
Tweet

Transcript

  1. MRTK で HoloLens 2 個人開発をしてみよう Let`s Develop HoloLens 2 App

    Using MRTK xR Developers Community Conference / HoloLens Meetup Session #xRDCC
  2. 自己紹介 【名前/ハンドルネーム】 Denik Hatsushika / デニキ 【Twitter】 @xrdnk (真面目な方) 【職歴とか】

    TIS Inc. 19年度入社 Incubation Center XR Team 所属 XR Developer として,XR遠隔コミュニケーション サービス「TeleAttend®」の開発に従事 【趣味とか】 アニメ・マンガ鑑賞,野球観戦(巨人ファン) 連載開始から鬼滅の刃が好きなオタク アイコンは禰豆子の”ておくれアイコン”(自作)
  3. 本セッションの内容と想定対象者 • 内容 MRTKが提供している機能説明 MRTK を使って手軽に HoloLens 2 アプリを作成してみる •

    想定対象者 HoloLens 2 開発初心者 本セッションの内容外については他の方の発表にお任せします. 発表内容に誤植や間違い等ありましたら,優しくマサカリを投げてください. 後ほどスライドはconnpassと私のブログ『デニッキ』にアップいたします. https://xrdnk.hateblo.jp/ ハッシュタグは #xRDCC #HoloMagicians でお願いします!
  4. Agenda • 初期環境構築 • Features And Making Sample App •

    Experimental Features • HoloLens 2 持ってないけど MRTK 触りたい • その他 小ネタ • 終わりに
  5. 初期環境構築

  6. HoloLens 2 初期環境構築 本セッションでは以下の環境で実装しております. • Unity 2019.4.8f1 (LTS) • Visual

    Studio 2019 ver16.7.0 • MRTK 2.4.0 • Windows SDK 10.0.18362.0 以降 Windows SDK 10.0.19041.0 を PC自体にインストールしていると 環境次第で HoloLens 2 で Photon Server に繋がらない不具合があります. PUN 2 を用いた XR 開発を行っている場合はご注意を.(これの解決のために1週間かかった….) 参考: HoloLens 2 公式チュートリアル「Multi-user capabilities tutorials」を試してみた [前編] https://qiita.com/Futo_Horio/items/d1b828db2aeadaa46288 HoloLens 2 で Photon サーバーに繋がらない場合の対処法 https://xrdnk.hateblo.jp/entry/2020/06/22/233522
  7. MRTK • Mixed Reality Toolkit (MRTK) MR 体験構築用の Cross Platform

    Toolkit. HoloLens 2 開発には欠かせない. AR Foundation,Open VR にも対応しています. MRTK はこちらから入手できます. https://github.com/microsoft/MixedRealityToolkit-Unity/releases
  8. MRTK の Unity Package 構成 MRTK の Unitypackage 構成 •

    Foundation MRTK のコアとなるもの. Required. • Extensions MRTK の拡張機能.Experimental 機能も含む.Optional. • Examples MRTK のサンプルが入っている.Optional. • Tools MRTK 用の便利ツールが入っている.Optional. ぶっちゃけ全部脳死で Import しても大丈夫です.
  9. Unity Build Settings • Platform: Universal Windows Platform • Target

    Device: HoloLens • Architecture: ARM64 • Target SDK Version 10.0.18362.0 • Visual Studio Version: VS 2019 • Build and Run on: Local Machine • Build Configuration: Master or Release or Debug
  10. Unity XR Settings | Legacy XR Legacy XR (今までの Build-in

    XR の設定)を利用する場合 XR Plugin Management でもだいたい同じ Microsoft 推奨設定を適用. 参考: Microsoft MR Document / Unity で推奨される設定 Recommended settings for Unity https://docs.microsoft.com/ja-jp/windows/mixed-reality/recommended-settings-for-unity Settings for UWP • VRSDKs に Windows MR 追加 • Depth Format は 16-bit depth • Enable Depth Buffer Sharing ☑ • Stereo Rendering Mode は Single Pass Instanced Depth Format や Depth Buffer などの 深い話については,ホロラボのデコシさんの スライドを参照. 参考: ようこそHoloLensアプリ開発の深淵へ https://speakerdeck.com/decoc/tokyohololensmeetup-vol21
  11. Unity Publish Settings | Capabilities 以下の Capabilities に☑することで アプリ内で以下の機能が利用できるようになります. •

    Spatial Perception 空間認識が利用可能に. そもそもこれのチェック必須. • WebCam カメラ機能が利用可能に. QR コードトラッキングなど カメラを使う場合はチェック必須. • Microphone 声認識を利用可能に. • Internet Client PUN 2 を利用する場合は必須. 参考:App capability declarations https://docs.microsoft.com/ja-jp/windows/uwp/packaging/app-capability-declarations?WT.mc_id=docs-blog-machiy
  12. MRTK Project Configurator MRTK を Import した後に, 以下の画面が表示される. MRTK デフォルト設定に自動的に設定してくれるので基本的に

    Apply すれば大丈夫です. (ただし,アプリ内でカスタマイズする場合は注意すること)
  13. Holographic Remoting (Windows XR Plugin Remoting) HoloLens 2 で直接デプロイせずに Unity

    Editor 上で動作確認を行うことができます. Holographic Remoting が Deprecated になっているのは, こちらは Build-in XR 用で, XR Plugin Management 用に新しく Windows XR Plugin Remoting に名称が変わります. Remote Machine に IPアドレスを入力します. WiFi 接続版より,USB 接続版で使った方が途切れ途切れにならずに安定します. USB 接続で使う時は,HoloLens 側で WiFi を切る必要があります. 参考: Holographic Remoting https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/Tools/HolographicRemoting.html#connecting-to-the-hololens-with-usb-cable
  14. Features And Making Sample App

  15. 豊富なUIセット MRTK には HoloLens に最適なUIコンポーネントが提供されています.

  16. MRTK Toolbox MRTK UX Prefab Components を簡単に見つけることが出来ます. MRTK 2.4 Tools

    Package を Import する必要があります. Button,Button Collection, Menu, Slate, Slider, Progress Indicator 等があります.
  17. UX Building Blocks Bouding Box, Object Manipulator(Manipulation Handler), Hand Menu,

    Pointers, Voice Command, Hand Tracking, Eye Tracking など, MR開発に必要なコンポーネントがたくさん提供されています. これらをいくつか使って,AR物体とインタラクションできる簡単なアプリを作ってみます.
  18. MRTK Sample App (1/4) サンプルシーンを作成します. Mixed Reality Toolkit のタブの Add

    to Scene and Configure... を押すと Hierarchy に自動的に Mixed Reality Toolkit, Mixed Reality Play Spaceが追加されます. • Mixed Reality Toolkit こちらでMRTKの設定を行います. 追加で設定したいことがあれば, こちらをいじることになります. • Mixed Reality Play Space 子がMain Cameraになってます.
  19. MRTK Sample App (2/4) インタラクション用の物体を用意します.今回はコロナを3体用意しました.コライダーをつけましょう. コロナ3Dモデル https://booth.pm/ja/items/1874369

  20. MRTK Sample App (3/4) Object Manipulator スクリプトをコロナにアタッチします. これにより,コロナを操作できるようになります. 操作時にカスタマイズしたいときは項目をいじります. 例えば,両手で物体を操作した時に拡大を行いたい場合

    Two Handed Manipulation の Two Handed Manipulation Type を Scale のみにします. (デフォルトではScaleもRotateもMoveもできるが使いにくい) また,直で掴みたい場合は, Near Interaction Grabbable スクリプトをアタッチします. 参考: Object Manipulator https://hololabinc.github.io/MixedRealityToolkit-Unity/Documentation.ja/README_ObjectManipulator.html How to add near interaction in MRTK https://hololabinc.github.io/MixedRealityToolkit-Unity/Documentation.ja/Input/HowToAddNearInteractivity.html?q=Near%20Interati
  21. MRTK Sample App (4/4) Bounding Box スクリプトをアタッチします. これにより,コロナの周りに立方体が表示されます. これを Bounding

    Box といいます. 角っこや端っこに触れると拡大・縮小や回転ができます. 立方体自体に触れると動かせることもできます. Bounding Box があると,視覚的にわかりやすいですよね. このように,スクリプトをアタッチするだけで 基本的なARインタラクションが出来るようになっています. 参考: Bounding Box https://hololabinc.github.io/MixedRealityToolkit-Unity/Documentation.ja/README_BoundingBox.html
  22. Experimental Features

  23. Hand Physics Service (Experimental) 3月のxRLT#3 で発表しています. https://speakerdeck.com/xrdnk/xrdnk-xrlt3-presentation 手に物理判定 AR物体とインタラクションが可能 ①

    拡張機能のため,Extensions Package を Import ② 触れる物体に Collider と Rigidbody を Attach ③ Is Kinematic は Uncheck Collision Detection (衝突判定) を適切に設定しないと すり抜ける現象が起きうる. バーチャルキャストさんの以下のブログが詳しいです. 参考: 最適な衝突判定を即選択。Collision Detection 早見表【Unity 2018.3 以降】 https://virtualcast.jp/blog/2020/05/collisiondetectionchart/
  24. Hand Coach (Experimental) ハンドジェスチャーをコーチングしてくれます. Hand Interaction Hint スクリプトで Animation を登録

    MRTK では 以下が提供されています • AirTap • Move • Scroll • HandFlip • PalmUp MoveToTarget スクリプト と RotateAroundPoint スクリプトを使えば動きが増える 自作もできますが,まだ試していません. 参考: Hand Coach https://docs.microsoft.com/ja-jp/windows/mixed-reality/hand-coach https://github.com/microsoft/MixedRealityToolkit- Unity/blob/mrtk_development/Assets/MRTK/SDK/Experimental/HandCoach/README_HandCoach.md
  25. Dock (Experimental) AR物体を所定の位置に出し入れすることが出来る • Dock にする物体 Dock スクリプトをアタッチ Dock Position

    スクリプトをアタッチ • Dock させたい物体 Dockable スクリプトをアタッチ 参考: MRTK 2.4 から追加された Dock を使ってみた【MRTK】 https://xrdnk.hateblo.jp/entry/2020/08/30/175015
  26. HoloLens 2 持ってないけど MRTK 触りたい

  27. AR Foundation を使おう 自分のスマホを Mobile AR として MRTK を使うことができます. Camera

    Setting Providers に UnityARCameraSettingsを追加します. Depth API を組み合わせれば, 深度情報も加わります. AR Core の場合は,Main Cameraに AR Occlusion Manager スクリプトをアタッチするのみ 参考: Mobile AR で MRTK のサンプルシーンを起動する 【MRTK 2.4, AR Foundation】 https://xrdnk.hateblo.jp/entry/2020/06/28/145125 MRTK のサンプルシーンに ARCore Depth API を適用して Environment Occlusion をしてみた 【MRTK 2.4, AR Foundation 4.1】 https://xrdnk.hateblo.jp/entry/2020/06/28/145200 深度情報なし 深度情報あり
  28. Oculus Quest を使おう 非公式ですが,MRTK を Oculus で使えます. • Quest の

    Hand Tracking 対応 • Link on Quest の Controller 対応 • Teleport 可能 • MRTK 2.4 の Interaction 体験可能 参考: MRTK-Quest https://github.com/provencher/MRTK-Quest
  29. Leap Motion (UltraLeap) を使おう MRTK 2.4 から Leap Motion が使えるようになっています.

    主に手入力のテストに使えます. Leap Motion SDK , Core Assets を別途DL必要 • Input Data Providers に Leap Motion Device Manager 追加 • Leap Controller Orientation で 机上テスト(Desk)かヘッドセットテスト(Headset)が選べる 参考: Using Leap Motion by Ultraleap hand tracking in MRTK https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/CrossPlatform/LeapMotionMRTK.html
  30. その他 小ネタ

  31. MRTK 2.5 MRTK 2.5 は 9月末くらいにリリース予定. 主なアップデート(予定)は以下. • UPM (Unity

    Package Manager) 対応 MRTK 2.5 の Import の手間が省ける • Oculus Quest 公式対応 参考: MRTK 2.5.0 Milestone https://github.com/microsoft/MixedRealityToolkit-Unity/milestone/12
  32. HoloLens 2 Display Improvements ソフトウェアのアップデートを通してHoloLens 2 のディスプレイが今後改善される模様 • 目の位置の自動キャリブレーション •

    ディスプレイの赤み問題の改善 • 視野角を犠牲にコンテンツの解像度を向上させる閲覧モードの導入 視野角が30%ほど減る模様. MRTK で導入予定. 参考: Microsoft promises display improvements for HoloLens 2 through software updates https://www.neowin.net/news/microsoft-promises-display-improvements-for-hololens-2-through-software-updates
  33. 終わりに

  34. HoloLens 2 はじめるなら 【書籍】 • HoloLens 2 入門 (著:ホロラボ中村さん) HoloLens

    2 の概要,セットアップ,基本操作,アプリの使い方が説明 【サイト】 • MRTK ドキュメント https://github.com/microsoft/MixedRealityToolkit-Unity https://hololabinc.github.io/MixedRealityToolkit-Unity/README.html MRTK 開発時は必ず見る.ホロラボさん提供の日本語訳もある.(多大な感謝) • HoloLens Microsoft 公式ドキュメント https://partner.microsoft.com/en-us/training/training-center/assets#/?role=archtct&search=hololens アプリデザイン,パフォーマンス,Spatial Mapping などの知識が得られる • Microsoft 公式 Mixed Reality チュートリアル https://docs.microsoft.com/ja-jp/windows/mixed-reality/tutorials 2020/07/01 にチュートリアルがアップデートされている気がする.(量が多く,豊富になった?)
  35. 終わりに • HoloLens 2 開発をするときは,MRTK を使いましょう • まずは MRTK の

    Examples を舐めるように触れるとよいと思います • 公式だけでなく,HoloMagicians コミュニティの方々が HoloLens に関する情報を 沢山アウトプットしているので,参考にしていきましょう.(多大な感謝) • HoloLens 2 は 42万円かかるけど,最高です. (ボクは会社のものを利用していますが…) HoloLens 2 はいいぞ.