139 Views
January 20, 21
スライド概要
XRミーティング 2021/01/20登壇資料。
MRDL「Lunar Module」をHoloLens 2に移植するにあたり、移植手順について紹介しました。今回はとりあえず、ARM版ビルドできる状態までを進めてHoloLens 2でデプロイして実行するところまでを紹介。
ICT業界でソフトウェアエンジニア/アプリケーションアーキテクトを担当。 社内ではXR関連技術に関する啓もう活動や技術支援に従事。 業務の傍ら、XR(特にMixed Reality領域)についての開発技術の調査、開発などを行っています。 また、「大阪駆動開発」コミュニティ所属しており、日々の調査で得た知見はコミュニティを通して情報発信を行っています。
HoloLens 1のアプリをHoloLens 2に移行する takabrz1 大阪駆動開発 Takahiro Miyaura
Microsoft MVP for Windows Development 2018-2021 某会社でSE(アプリケーション領域のアーキテクト的なお仕事なはず)= XRは趣味です(貢献領域:Mixed Reality) 宮浦 恭弘 (Miyaura Takahiro) ◼ 大阪駆動開発コミュニティに生息 ◼ HoloLens日本販売してからXR系技術に取組む ◼ 普段はよくMixed Reality Toolkitに関する調査している ✓ ✓ ✓ リリース機能調べたり・・・ 面白い機能使ってみたり・・・ 新しい実験してフィードバックしたり・・・ ◼ 新しい技術や、MRに使えそうな技術を調べる 技術Tips : https://qiita.com/miyaura takabrz1 ※よかったらこれを機にお知り合いになってください
最近の取組み Mixed Reality Toolkit中心に遊んでます HoloLens 1アプリのマイグレ 試験的機能を試す MRDL「Lunar Module」を HoloLens 2で動かす 魅惑のElastic Systemにハマる 動くけど、コードリファクタリング中 ※最終的にMRTK V2で動かす計画 2021/01/20 Copyright © 2020 Takahiro Miyaura 3
今日お題 HoloLens 1 → HoloLens 2への移植について ◼ ◼ ◼ ◼ デバイスの違い ツールの違い 移植の手順 実際にやってみて? 継続対応中のネタのため途中経過を共有 2021/01/20 Copyright © 2020 Takahiro Miyaura 4
デバイスの違い(おさらい) 2021/01/20 Copyright © 2020 Takahiro Miyaura 5
デバイスの違い ハード面 デザインとアーキテクチャが違う 実用的、着け心地良好 Snap Dragon 850(Arm) 未来的、お鼻がつらい Atom x5-Z8100 SoC(Intel系32bit) 2021/01/20 Copyright © 2020 Takahiro Miyaura 6
デバイスの違い 操作面 HoloLens 1の操作 HoloLens 2の操作 Head/Eye Gaze + ジェスチャー Head Gaze + ジェスチャー Head/Eye Gaze + 音声認識 Head Gaze + 音声認識 ハンドトラッキング + ジェスチャー 2021/01/20 Copyright © 2020 Takahiro Miyaura 7
つまり移植とは? 2021/01/20 Copyright © 2020 Takahiro Miyaura 8
デバイスの差異を考えて作りなおす ハードと操作の違いを考慮する 難易度:低 1. アーキテクチャだけ何とかする Stylish:低 ✓ Intel系→Arm系に再ビルドする 2. 見た目だけ何とかする ✓ 上記+見やすさ等を見直す 超えるのが大変な壁 3. もう完全にHoloLens 2に合わせる 難易度:高 2021/01/20 ✓ 上記+操作系を見直して使いやすくする Copyright © 2020 Takahiro Miyaura Stylish:高 9
移植の手順 2021/01/20 Copyright © 2020 Takahiro Miyaura 10
移植の手順 公式ドキュメントでも提供 ◼ https://docs.microsoft.com/ja-jp/windows/mixed-reality/develop/porting-apps/porting-overview 1. 開発ツールを最新化する 2. プロジェクトを最新のツールに移行する 3. プロジェクトで利用するライブラリをARM版に変更 この段階でHoloLens 2にデプロイ可能なので動きを確認できる 4. MRTK V2に移行する(過去のMRTKを利用している場合) 5. 操作方法をHoloLens 2向けに再考 & 作り変え 6. (゚д゚)ウマー 2021/01/20 Copyright © 2020 Takahiro Miyaura 11
移植の手順 公式ドキュメントでも提供 ◼ https://docs.microsoft.com/ja-jp/windows/mixed-reality/develop/porting-apps/porting-overview 1. 開発ツールを最新化する 2. プロジェクトを最新のツールに移行する 3. プロジェクトで利用するライブラリをARM版に変更 この段階でHoloLens 2にデプロイ可能なので動きを確認できる 4. MRTK V2に移行する(過去のMRTKを利用している場合) 5. 操作方法をHoloLens 2向けに再考 & 作り変え 6. (゚д゚)ウマー旧バージョンのMRTKを使っているとより難易度がグッと上がる。 Super Hard Mode 2021/01/20 Copyright © 2020 Takahiro Miyaura 12
実際に1~3までやってみた。 2021/01/20 Copyright © 2020 Takahiro Miyaura 13
移植対象のアプリ Mixed Reality Design Labsのイカすサンプル Microsoftが過去HoloLens向けに提供していたサンプル 通称MRDLはMixed RealityのかっこいUXをどう実現するか検討するためのサンプル集 その中にある月面着陸ゲーム「Lunar Module」をHoloLens 2で動かす 2021/01/20 Copyright © 2020 Takahiro Miyaura 14
移植の手順 ツールの最新化 公式ドキュメントでも提供 ◼ https://docs.microsoft.com/ja-jp/windows/mixed-reality/develop/porting-apps/porting-overview 1. 開発ツールを最新化する 2. プロジェクトを最新のツールに移行する 3. プロジェクトで利用するライブラリをARM版に変更 この段階でHoloLens 2にデプロイ可能なので動きを確認できる 4. MRTK V2に移行する(過去のMRTKを利用している場合) 5. 操作方法をHoloLens 2向けに再考 & 作り変え 6. (゚д゚)ウマー 2021/01/20 Copyright © 2020 Takahiro Miyaura 15
開発ツールを最新化する HoloLens 2用の開発環境を準備する ◼ ◼ ◼ ◼ Windows 10 version 1909 or higher. 最新の Visual Studio 2019 (試したときは16.8.3) Windows SDK 10.0.18362.0 Unity 2019.4.10f1 ✓ UWP - Universal Windows Platform Build Support ✓ IL2CPP - Windows Build Support (IL2CPP) 今回は上記環境で実施 2021/01/20 Copyright © 2020 Takahiro Miyaura 16
移植の手順 最新のツールに移行する 公式ドキュメントでも提供 ◼ https://docs.microsoft.com/ja-jp/windows/mixed-reality/develop/porting-apps/porting-overview 1. 開発ツールを最新化する 2. プロジェクトを最新のツールに移行する 3. プロジェクトで利用するライブラリをARM版に変更 この段階でHoloLens 2にデプロイ可能なので動きを確認できる 4. MRTK V2に移行する(過去のMRTKを利用している場合) 5. 操作方法をHoloLens 2向けに再考 & 作り変え 6. (゚д゚)ウマー 2021/01/20 Copyright © 2020 Takahiro Miyaura 17
最新のツールに移行する Unity 2019.4系で古いUnityプロジェクトを開いて更新 ◼ ほぼ確実にエラーが出る ◼ エラーがなくなるようにひたすら修正 一例・・・ ✓ UnityEngine.VR.WSA... → UnityEngine.XR.WSA... Lunar Moduleは古いMRTKが使われている。 バージョンが古いので公式もUnity 2019へのサポート無 野良ブランチを作ってUnity 2019対応した。 もしHoloToolkit使っていて移植したい場合は使えるかも? https://github.com/TakahiroMiyaura/MixedRealityToolkit-Unity/tree/htk_unity2019.4 2021/01/20 Copyright © 2020 Takahiro Miyaura 18
移植の手順 プロジェクトで利用するライブラリをARM版に変更 公式ドキュメントでも提供 ◼ https://docs.microsoft.com/ja-jp/windows/mixed-reality/develop/porting-apps/porting-overview 1. 開発ツールを最新化する 2. プロジェクトを最新のツールに移行する 3. プロジェクトで利用するライブラリをARM版に変更 この段階でHoloLens 2にデプロイ可能なので動きを確認できる 4. MRTK V2に移行する(過去のMRTKを利用している場合) 5. 操作方法をHoloLens 2向けに再考 & 作り変え 6. (゚д゚)ウマー 2021/01/20 Copyright © 2020 Takahiro Miyaura 19
プロジェクトで利用するライブラリをARM版に変更 ライブラリをARM版で準備する ◼ 独自でDLLを用意している人は注意! ◼ ARM,ARM64用も用意してあげる必要がある。 Lunar Moduleは古いMRTKが使われている。 HoloToolkit内に独自ライブラリがありARM系が入っていない。 野良ブランチを作ってUnity 2019対応した。 もしHoloToolkit使っていて移植したい場合は使えるかも? https://github.com/TakahiroMiyaura/MixedRealityToolkit-Unity/tree/htk_unity2019.4 2021/01/20 Copyright © 2020 Takahiro Miyaura 20
そして4へ 2021/01/20 Copyright © 2020 Takahiro Miyaura 21
|・ω・)b < がんばります! 2021/01/20 Copyright © 2020 Takahiro Miyaura 22
まとめ HoloLens 1 → HoloLens 2への移植について ◼ ◼ ◼ ◼ デバイスの違い → ハードや操作方法が違う ツールの違い → ARMビルドへ対応できる環境が必要 移植の手順 → 公式ドキュメントには情報アリ 実際にやってみて? → 結局トライ&エラーでHardになる予感 完全に移行できたら続報やります! 今日の情報はQiita記事に 「HoloLens 1アプリ、復活させてみない?HoloLens 2へのマイグレーション手順 vol.0」 https://qiita.com/miyaura/items/9a202f395d5869476629 2021/01/20 Copyright © 2020 Takahiro Miyaura 23
ちなみに・・・ Lunar ModuleもHoloLens 2で動くコードを野良公開 多分ビルドしたら動くはずなんで、やってみたい方どうぞ! https://github.com/TakahiroMiyaura/MRDL_Unity_LunarModule/tree/migrate_to_mrtk 2021/01/20 Copyright © 2020 Takahiro Miyaura 24
大阪駆動開発 関西を中心に、IT系のおもしろそうなことを楽しんでやるコミュニティ 2021/01/20 Copyright © 2020 Takahiro Miyaura 25