Slide 1

Slide 1 text

de:code 2019 HoloLens 2 アプリ開発 CM02 中村 薫 株式会社ホロラボ 代表取締役 CEO 加藤 広務 プログラマー

Slide 2

Slide 2 text

会社紹介 株式会社ホロラボ 事業内容 HoloLensやWindows MRなどxR技術やセンサー技術に関する ・システム/アプリケーションの企画開発 ・調査研究 ・普及啓発活動 設立 2017/01/18 住所 東京都品川区西五反田2-25-1 インテックス五反田ビル3F 資本金 30,000,000円 取締役 5名 従業員 16名 Web https://hololab.co.jp/

Slide 3

Slide 3 text

自己紹介

Slide 4

Slide 4 text

2019/5/2~3 MR Dev Days@Redmond

Slide 5

Slide 5 text

明日もお待ちしています! DAY2 ( 5 月 30 日 ) 10:50 - 11:40 DAY2 ( 5 月 30 日 ) 15:10 - 15:30

Slide 6

Slide 6 text

注意

Slide 7

Slide 7 text

アジェンダ

Slide 8

Slide 8 text

ホロラボでのHoloLens事例

Slide 9

Slide 9 text

三菱重工マリンマシナリ(MHI-MME)様向け 過給機トレーニング

Slide 10

Slide 10 text

ねらい

Slide 11

Slide 11 text

MHI-MME様過給機アプリのHoloLens 2化

Slide 12

Slide 12 text

トヨタ自動車様向け作業確認モレ防止(MR+AI)

Slide 13

Slide 13 text

課題 OK Error

Slide 14

Slide 14 text

機械学習モデルを作成してのエラー推定

Slide 15

Slide 15 text

※この動画は開発中のものです トヨタ自動車様展示アプリのHoloLens 2化

Slide 16

Slide 16 text

ご案内 – 講演およびEXPO体験ブース DAY2 ( 5 月 30 日 ) 9:30 - 10:20 展示はHoloLens 1です

Slide 17

Slide 17 text

mixpace – ホロラボ自社サービス

Slide 18

Slide 18 text

mixpaceのフロー

Slide 19

Slide 19 text

ご案内 –EXPO体験ブース

Slide 20

Slide 20 text

HoloLens 2の概要

Slide 21

Slide 21 text

KEY INNOVATIONS 没入感の向上 視野角 2X 快適性の向上 快適性が3X に向上 価値創造時間の短縮 数か月から数分に短縮 ハンドトラッキング Windows Hello & アイトラッキ ング 重量バランス フリップアップバイザー Dynamics 365 ビジネスアプリ 3rd パーティ ソリューション

Slide 22

Slide 22 text

HoloLens 1とHoloLens 2の 同異点

Slide 23

Slide 23 text

視野角

Slide 24

Slide 24 text

装着

Slide 25

Slide 25 text

ゲイズ(Gaze)

Slide 26

Slide 26 text

ジェスチャー

Slide 27

Slide 27 text

HoloLens 2の開発環境

Slide 28

Slide 28 text

開発環境 Unity 2018 Unity 2019 Unity Unity 2018.3.xまたは Unity 2018.4.x Unity 2019以降 Visual Studio Visual Studio 2017以降 Visual Studio 2017以降 Windows SDK 18362 18362 サポート環境 ARM ARM, ARM64 バックエンド .NET, IL2CPP IL2CPP ネットワーク UNET --- MRTK MRTK v2 MRTK v2

Slide 29

Slide 29 text

開発環境選定の方針

Slide 30

Slide 30 text

HoloLens 1のアプリを HoloLens 2に移植する

Slide 31

Slide 31 text

HL1からHL2機能へ移植する https://docs.microsoft.com/ja-jp/windows/mixed-reality/mrtk-porting-guide

Slide 32

Slide 32 text

ポイント

Slide 33

Slide 33 text

現状の注意点

Slide 34

Slide 34 text

ハードウェアの違いについて HoloLens 1 HoloLens 2 CPU X86 ARM アプリ使用可能メモリ量 900MB 2048MB

Slide 35

Slide 35 text

UI/UXの違いについて

Slide 36

Slide 36 text

if else if else if else DLLのHoloLens 2対応について

Slide 37

Slide 37 text

HoloLens 1とHoloLens 2をアプリから識別する var 値 ターゲット 備考 X86 HoloLens 1 Arm HoloLens 2 Arm64 HoloLens 2 OSやSDKのバージョンが古い場合、「12」という数値で返る https://docs.microsoft.com/en-us/uwp/api/windows.system.processorarchitecture

Slide 38

Slide 38 text

移植の戦略

Slide 39

Slide 39 text

移植の戦略

Slide 40

Slide 40 text

移植含めたアプリの考慮事項

Slide 41

Slide 41 text

ポーティングケーススタディ – トヨタ様デモアプリ

Slide 42

Slide 42 text

ポーティングケーススタディ– ポーティングの挑戦 https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/HTKToMRTKPortingGuide.html

Slide 43

Slide 43 text

ポーティングケーススタディ– 手順

Slide 44

Slide 44 text

ポーティングケーススタディ – 今回の影響範囲 修正箇所 該当箇所 修正候補 難易度 Unity エディタ(GameObject関連) カメラ Configration 低 マテリアル 付けなおし 低 HandDraggable IMixedRealityPointerHandler 中 UI(Tagalong, Billboard) RadialView や Orbital Solver 中 その他、GameObjectにスクリプトが関連付 けられてる場所(HTKかどうかにかかわらず) 付けなおし 低 Visual Studio(コード関連) HoloToolkitの名前空間 削除 低 IInputClickHandler IMixedRealityPointerHandler 低 HandDraggable ManipulationHandler 中 InputManager InputSystem 中 WorldAnchorManager Unity のSDKレベルで差し替え 高 ※:今回は難易度低のみでポーティング作業を一時中断した

Slide 45

Slide 45 text

ポーティングケーススタディ – MRTK未対応機能

Slide 46

Slide 46 text

HoloLens 2専用アプリの 新規開発方法

Slide 47

Slide 47 text

注意 Microsoft Mixed Reality Toolkit v2.0.0 RC1 Refresh • Microsoft.MixedReality.Toolkit.Unity.Foundation-v2.0.0-RC1-Refreshは 以降 MRTK Foundationと表記 • Microsoft.MixedReality.Toolkit.Unity.Examples-v2.0.0-RC1-Refreshは 以降 MRTK Examplesと表記

Slide 48

Slide 48 text

Mixed Reality Toolkit https://github.com/microsoft/MixedRealityToolkit-Unity

Slide 49

Slide 49 text

MRTK ロードマップ Microsoft Mixed Reality Toolkit v2.0.0 RC1 Refresh https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/Contributing/Roadmap.html?q=roadmap

Slide 50

Slide 50 text

MRTK ロードマップ https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/Contributing/Roadmap.html?q=roadmap

Slide 51

Slide 51 text

開発環境

Slide 52

Slide 52 text

HoloLens 2 emulator エミュレータのダウンロード https://docs.microsoft.com/en-us/windows/mixed-reality/using-the- hololens-emulator HoloLens 2 Emulator and holographic project templates から https://docs.microsoft.com/en-us/windows/mixed-reality/using-the-hololens-emulator

Slide 53

Slide 53 text

Hyper-Vの有効化 https://docs.microsoft.com/ja-jp/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v

Slide 54

Slide 54 text

HoloLens 2 emulatorの実行 エミュレータの実行 UWPのプロジェクトファイルの実行環境からHoloLens 2 Emulatorを選択する デバッグ -> デバッグの開始でエミュレータが起動する

Slide 55

Slide 55 text

HoloLens 2 emulatorの実行

Slide 56

Slide 56 text

HoloLens 2 emulatorの操作 操作 マウス&キーボード Xboxコントローラ 前後左右への移動 W,A,S,Dキー 左スティック カメラの移動 マウスドラッグ, カーソルキー 右スティック エアタップ 右クリック, エンターキー Aボタン ブルーム/システムジェスチャー Windowsキー, F2キー Bボタン スクロールのための手の動き Altキーとマウス右ボタンを押しながら マウスを上下に移動 右トリガーとAボタンを押しながら 右スティックを上下に移動 手の動きと回転(HoloLens 2 Emulator のみ) Altキーを押しながらマウスを上下左右に移 動(手を動かす),カーソルキーとQ / Eキー(回転, 傾き) LBまたはRBを押しながら左スティック(手を前 後左右に動かす), 右スティック(回転),方向 パッド上下(手を上げ下げ)

Slide 57

Slide 57 text

MRTKの特徴 • Core Package • Platform Providers • System Services • Feature Assets https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/Packaging/MRTK_Packages.html

Slide 58

Slide 58 text

MRTKの特徴 Feature Assets 一般的にはSDK(および一部のServices)を 利用するだけでアプリケーションを構築可能 Core Package Platform Providers System Services 様々なサンプル

Slide 59

Slide 59 text

MRTK Examples MixedRealityToolkit.Examples のDemos配下に31個のシーンが 用意されている

Slide 60

Slide 60 text

MRTK Examples 各シーンには概要および、対応プラットフォームが記載され たパネルが配置されている(パネルが無いシーンも一部あり)

Slide 61

Slide 61 text

MRTK Examples

Slide 62

Slide 62 text

MRTK Examples

Slide 63

Slide 63 text

MRTK Examples ※Unityエディタ上では視覚化の確認できず

Slide 64

Slide 64 text

MRTK Examples

Slide 65

Slide 65 text

MRTK Examples

Slide 66

Slide 66 text

MRTK Examples

Slide 67

Slide 67 text

MRTK Examples

Slide 68

Slide 68 text

MRTK Examples

Slide 69

Slide 69 text

MRTK Examples ¥GltfModels¥Lantern¥glTF¥Lantern.gltf https://raw.githubusercontent.com/KhronosGroup/glTF- Sample-Models/master/2.0/BoomBox/glTF- Binary/BoomBox.glb

Slide 70

Slide 70 text

MRTK Examples

Slide 71

Slide 71 text

MRTK Examples

Slide 72

Slide 72 text

MRTK Examples

Slide 73

Slide 73 text

MRTK Examples

Slide 74

Slide 74 text

MRTK Examples

Slide 75

Slide 75 text

MRTK Examples

Slide 76

Slide 76 text

MRTK Examples

Slide 77

Slide 77 text

MRTK Examples

Slide 78

Slide 78 text

MRTK Examples

Slide 79

Slide 79 text

MRTK Examples

Slide 80

Slide 80 text

MRTK Examples

Slide 81

Slide 81 text

MRTK Examples

Slide 82

Slide 82 text

MRTK Examples

Slide 83

Slide 83 text

MRTK Examples

Slide 84

Slide 84 text

MRTK Examples

Slide 85

Slide 85 text

MRTK Examples

Slide 86

Slide 86 text

MRTK Examples

Slide 87

Slide 87 text

MRTK Examples

Slide 88

Slide 88 text

アプリ実装 • Unityでプロジェクトを新規作成 • Microsoft.MixedReality.Toolkit.Unity.Foundation-v2.0.0- RC1-Refresh.unitypackage インポート

Slide 89

Slide 89 text

アプリ実装 • プロファイル選択画面が表示された場合(新規でシーンを作成した場 合)は DefaultMixedRealityToolkitConfigurationProfile を選択 (プロファイルについては後述)

Slide 90

Slide 90 text

アプリ実装

Slide 91

Slide 91 text

アプリ実装

Slide 92

Slide 92 text

ビルド 参考: Unity UWP Build: Reference Rewriter found some errors#3939 https://github.com/microsoft/MixedRealityTool kit-Unity/issues/3939 Unityのバグにより起こるエラーのようですが、無視して も問題ないと記載されています

Slide 93

Slide 93 text

ビルド

Slide 94

Slide 94 text

プロファイル MRTKはProfileで設定を構築していく Mixed Reality Toolkit configuration guide ←プロファイル設定

Slide 95

Slide 95 text

プロファイル

Slide 96

Slide 96 text

プロファイル • 設定内容はassetファイルとして保存されるため一度構築することで 再利用も可能 継承関係 ScriptableObject └ BaseMixedRealityProfile └ MixedRealityToolkitConfigurationProfile

Slide 97

Slide 97 text

プロファイル 主要なプロファイル

Slide 98

Slide 98 text

プロファイル

Slide 99

Slide 99 text

プロファイル

Slide 100

Slide 100 text

プロファイル Pointer Profile Input Actions Profile Input Action Rules Profile Controller Mapping Profile 入力をアクションに紐づける 特定の基準に基づいてアクションを発生させる ポインタの設定 コントローラマッピングの設定

Slide 101

Slide 101 text

プロファイル Controller Visualization Profile Gesture Profile Speech Commands Profile Hand Tracking Profile コントローラ視覚化の設定 ジェスチャーの設定 音声コマンドの設定 ハンドトラッキングの設定

Slide 102

Slide 102 text

プロファイル

Slide 103

Slide 103 text

プロファイル

Slide 104

Slide 104 text

プロファイル

Slide 105

Slide 105 text

ハンドトラッキング実装サンプル

Slide 106

Slide 106 text

アイトラッキング実装サンプル https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/EyeTracking/EyeTracking_BasicSetup.html

Slide 107

Slide 107 text

アイトラッキング実装サンプル

Slide 108

Slide 108 text

アイトラッキング実装サンプル https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/EyeTracking/EyeTracking_EyeGazeProvider.html

Slide 109

Slide 109 text

参考:公式チュートリアル MR Learning ベースのモジュールのプロジェクトの初期化と最初のアプリケーション https://docs.microsoft.com/ja-jp/windows/mixed-reality/mrlearning-base-ch1 MR Learning ベースのモジュールのユーザー インターフェイスでは、手 Tracking、および現実ツールキットの構成を 混在 https://docs.microsoft.com/ja-jp/windows/mixed-reality/mrlearning-base-ch2 動的なコンテンツの配置とソルバー MR Learning ベース モジュール https://docs.microsoft.com/ja-jp/windows/mixed-reality/mrlearning-base-ch3 MR Learning ベースのモジュールの 3D オブジェクトの相互作用 https://docs.microsoft.com/ja-jp/windows/mixed-reality/mrlearning-base-ch4 入力を高度な MR Learning ベース モジュール https://docs.microsoft.com/ja-jp/windows/mixed-reality/mrlearning-base-ch5 MR Learning ベース モジュール - 旧暦モジュール アセンブリ サンプル エクスペリエンス https://docs.microsoft.com/ja-jp/windows/mixed-reality/mrlearning-base-ch6

Slide 110

Slide 110 text

参考:IL2CPPデバッグ方法 UnityのIL2CPPプロジェクトをC#デバッグする方法 http://www.hiromukato.com/entry/2019/03/24/200057

Slide 111

Slide 111 text

Unreal Engine 4 Holographic Remoting Player Microsoft Windows Mixed Reality Windows Mixed Reality を選択 https://qiita.com/EGJ-Axel_Riffard/items/58799a1dd1db0e9e7351

Slide 112

Slide 112 text

Unreal Engine 4 • アプリ実装方法(2019年5月に公開される予定) • 現時点では公開されていないがBuildにて以下セッション が公開されている Intro to Building Mixed Reality Apps with Unreal Engine 4

Slide 113

Slide 113 text

© 2018 Microsoft Corporation. All rights reserved. 本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。 © 2019 Microsoft Corporation. All rights reserved. 本情報の内容 (添付文書、リンク先などを含む) は、de:code 2019 開催日 (2019年5月29~30日) 時点のものであり、予告なく変更される場合があります。 本コンテンツの著作権、および本コンテンツ中に出てくる商標権、団体名、ロゴ、製品、サービスなどはそれぞれ、各権利保有者に帰属します。