2019年5月2日、3日に レドモンドのマイクロソフト本社にてMR DevDaysというイベントが開催されました。 名前の通りMRに関する開発セッションやアプリ開発体験ができます。今回は2019年内に発売予定のHoloLens 2のアプリ開発を行ってきました。 セッションは下記ですが、英語は...なのでハンズオンラボにてアプリ開発を進めていました。
TL:DR
- あくまでの開発中のHoloLens 2なので、製品版では変わることがあります。
- ホロラボで開発したものを中心に4つほどHoloLens 2化。テストアプリとして新規に5つほどテストデプロイしました。
- 総じて順当進化で良い。アイトラッキングは良い、ハンドトラッキングはもう少し良くなって欲しい。
目次
Kinect編
注意事項
- 今回はあくまでの開発中のHoloLens 2なので、製品版では変わることがあります
- 必ずしも現行のHoloLensに比べてよくなってる部分ばかりではありません
- 過度な期待はせず、製品が発売されたらぜひ自分の目と体で確かめてください
今回、MRCなど画面の投稿は禁止されているので、見た目については想像にて補完ください。
ハードウェア
確かにかぶりやすい。 フリップアップもじゃまにならず、そのままコードを書いているとつけてることを忘れるほど。ただ、前に出っ張るので、壁とかにあてそう。動く機構がついたので、全体的にはHoloLens 1よりも扱いに気を付けないといけない気がします。
アプリ開発
ドキュメント
MRTK
ハンズオン資料
ここから
この #HoloLens 2 ハンズオンをやる前の「準備編」はこちらです。
— Madoka 🇺🇸4/27-5/8(水)米国なう (@chomado) 2019年4月29日
ー
Install the toolshttps://t.co/rImJFhjQuP
ー
とくに MRTK のバージョンや Unity のバージョン、また「Windows 10 SDK 10.0.18362.0 or later」ってのが重要
ついに! #HoloLens 2 の公式ハンズオン資料が公開されました!
— Madoka 🇺🇸4/27-5/8(水)米国なう (@chomado) 2019年4月29日
実機が無くてもエミュレータで開発ができます。
第1話:HoloLens 2 ハローワールドhttps://t.co/lNZ8NjG1rD
第2話:UI, ハンドトラッキング, 新しいMRTK構成https://t.co/jdRvijRC2p
第3話以降も(PC閲覧時)左のメニューから辿れます
開発環境
開発環境はこちらを参照してください。 前提として、CPUが変わったのでアプリはARMまたはARM64でビルドしないと動作しません。エミュレーターはx86で動作環境がことなるのでネイティブプラグインなどは注意してください。
Getting your app ready for HoloLens 2 - Mixed Reality | Microsoft Docs
Unityは2018.3および2019.1がサポートされています。 Unity 2019.1を使用した場合の違いはARMおよびARM64でのビルドが可能(2018ではARMのみ可能)、LI2CPPビルドのみ可能(.NETビルドは不可)
項目 | Unity 2018 | Unity 2019 |
---|---|---|
プラットフォーム | ARM | ARM, ARM64 |
対応ビルド | .NET, IL2CPP | LI2CPP |
Visual Studioは2017が推奨されていますが、Visual Studio 2019でもビルド可能です。ARM64ビルドはVisual Studio 2019でのみ可能となります。
HoloLens 2での新機能
- ハンドジェスチャー(人差し指先の認識、手の関節の認識)
- アイトラッキング(目の追跡、光彩認証、IPDの自動調節)
調査事項
既存のHoloLens 1アプリをHoloLens 2で動作させる
既存のHoloLens 1アプリをHoloLens 2に移植する。 最初はかなり多いシナリオかと思います。今回はホロラボで開発したものを中心に4つほどHoloLens 2化しました。
開発時
- Unity 2018/2019で開く(MRTKのエディタースクリプトなどがエラーになるのでエラーをなくす。今回はエディタースクリプトだけだったので削除して対応)
- 既存のUnity 2017とVisual StudioでARMビルドすれば、そのまま動作する可能性あり(検証し忘れたので記録)
- Vuforia は(現状)ARM用DLLがないので移植できないかも
- Unityでビルド、VSでARM向けにビルド
- HoloLens 2にデプロイ
実行時
- HeadのGazeはHand Gazeに自動変換
- 今後のアップデートでMRTK側でHand Gaze、もう一つ何か、従来のHead Gazeの3種類のうちから選択可能になるとのこと
- 単純に処理性能と視野角が広がってるので、ポーティングするだけで、体験が改善するアプリは結構ありそう
x86エミュレーション
Lenovo C630のようなPCのWindows 10 on ARM環境では、x86(Win32)でビルドした実行ファイルがそのまま動作します。 これはWindows 10 on ARM環境でx86のエミューレーションを行っており、本来はCPUアーキテクチャが異なるため実行できないx86の実行ファイルをARM環境で動作させることができます。なお、x86エミュレーションは32bitアプリのみでx64のような64bitアプリのエミュレーションはできません。
この機能はHoloLens 2にはないようで、x86でビルドしたアプリの配置や、パッケージのインストールはエラートなります。 そのため、既存のHoloLens 1アプリをHoloLens 2で実行させる場合は、ARMでビルドをし直す必要があります。
性能について
おおよそ2倍ほど性能あがってる可能性があります。
- HoloLens v1 で 7-9FPSほどで動作していたアプリがHoloLens v2 では 16-20FPS
- HoloLens v1 で 30-40FPSほどで動作していたアプリがHoloLens v2 では 60FPS安定
アプリからのメモリ使用量
ARM(32bit)、ARM64(64bit)にかかわらず、アプリから使用できるメモリ量は2GBのようです。
- HoloLens 1 - x86 → 900MB
- HoloLens 2 - ARM32 → 2048MB
- HoloLens 2 - ARM64 → 2048MB
所感
- 付け心地はとてもいい。フリップアップも慣れると気にならない。
- 性能向上が倍ほど見込めるのは意外だった(視野角が広がったのであまり期待してなかった)。
- アイトラッキング、光彩認証など、目にかかわる部分は非常に良かった。
- 半面、ハンドトラッキングは操作性に難あり(慣れの問題?)。近距離では指先のタッチ、中距離以降はGazeとAirTapなので操作が切り替わると混乱する。など
- HoloLens 1アプリのポーティングもそれほど難しくない
- HoloLens 2専用アプリについては、Hololens 1と別物として考えたほうが良い(UI/UX、視野角などが変わるので)
開発機なので今後の改善に期待という前提で微妙な点
— 中村 薫(Kaoru Nakamura) (@kaorun55) 2019年5月3日
・SLAMのトラッキング精度
・色ムラ
・表示密度
・ハンドトラッキング
Twitterなどからもらった質問事項
ハンドトラッキングの範囲
このくらい
少し広めに認識してました。
— 中村 薫(Kaoru Nakamura) (@kaorun55) 2019年5月3日
正面見た状態でキーボードのあたりの手は認識してます。という位置関係は追えるみたいです。 https://t.co/GylOVHSkQw
このあたりが限界? pic.twitter.com/jd8IzVgqDw
— 中村 薫(Kaoru Nakamura) (@kaorun55) 2019年5月3日
視線のスクロールについて
思った以上に自然にできた
そういう意味では視線に合わせてスクロールします(顔は動かさずに)。
— 中村 薫(Kaoru Nakamura) (@kaorun55) 2019年5月3日
MRCの投稿が禁止されてるので正確にお伝え出来ないのがツライのですが、このサンプルで地図の端をみると地図がするクロースする動作をしました。https://t.co/vu4pH8iSx5
ARM64でのビルド
Unity 2019 + MRTK v2 + ARM64でのビルドは一応実機動作まではOK
Unity 2019 + MRTK v2 + ARM64で動作確認できた#MRDevDays https://t.co/5Rx5EpuNFj
— 中村 薫(Kaoru Nakamura) (@kaorun55) 2019年5月3日
Depthへのアクセス
リサーチモードのみ
Depthへのアクセスはv1同様にリサーチモードからのみとのことです。 https://t.co/dMv5rBeiXf
— 中村 薫(Kaoru Nakamura) (@kaorun55) 2019年5月3日
充電用のUSB-CはUSBホストを持っている?
持っているらしいけど、ドライバのインストールができないので、その制約がクリアできれば使えそう
ホストは持ってるそうです。ドライバがなんとかなればという感じみたいです。 https://t.co/UzxXErnnSR
— 中村 薫(Kaoru Nakamura) (@kaorun55) 2019年5月3日
Holographinc Remotingについて
現状、Hololens 2側のアプリがないためできない
[1]について、現状ではHoloLens側のRemotingアプリがないので動かせかったです。 https://t.co/S2aRtPz5Zu
— 中村 薫(Kaoru Nakamura) (@kaorun55) 2019年5月3日
MRC(Mixed Reality Capture)での録画
HoloLens 1と同様に可能
[2]について。
— 中村 薫(Kaoru Nakamura) (@kaorun55) 2019年5月3日
・MRCはv1同様にありました(Device Portalがv1とほぼ同じ)
・Miracastの安定性と速度がv1と比べてかなり上がってるようです(PCの接続アプリで確認)#MRDevDays https://t.co/S2aRtPz5Zu