先日、ついに日本でもHoloLensが発売されました。下記のタイトル通り、1/18から日本でもちゃんと届きました!
Microsoft HoloLens のプレオーダーを本日より開始。2017 年 1 月 18 日(水)より順次提供 - News Center Japan
また、私にHoloLensのすごさを教えてくださった中村さんが、HoloLensを中心とした会社を起こされました。
http://www.naturalsoftware.jp/entry/2017/01/18/225852
中村さん、およびCoFounderの方々は、HoloLens関係の日本の第一人者と言っても過言ではないと思います。事業拡大することを願っています!
HoloLensを入手した一人として、私も色々試してみたいと思っていますが、今回は、UWPアプリをHoloLensの実機で動かす方法について簡単に解説します。
Unityについては、すでに先ほどの中村さんや、@yuujiさんなどが、Unityで開発するときの詳しいtipsをまとめてくださっていますのでご参考ください。
http://www.naturalsoftware.jp/archive/category/HoloLens
1. UWPについて
下記のブログで紹介した通りですが、参考までに再掲します。UWPとは、Universal Windows Platform の略です。Windows 10 Family上で共通で動く仕組み、と考えるのが良いと思います。
そして、UWPの概念に沿ったアプリケーションをUWPアプリと呼びます。UWPアプリであれば、異なるWindows10搭載のデバイスで動作します。
Windows10 MobileにUnityアプリを実機転送する方法とTips紹介 - CrossRoad
注意
- デバイス別の画面解像度設定は必要です。
- 「電話をかける」機能がMobile端末にしかないなど、特定のWindows 10 OS端末にしかない機能は、マニフェストファイルで制限をかける必要があります。
2. HoloLensでUWPアプリをインストールする方法
上記の通り、UWPはWindows10の搭載デバイスであれば、どれにでもインストールできます。方法も簡単です。まず、HoloLensをPCと接続します。
Visual Studioでプロジェクトを作ったら、こののように①CPUアーキテクチャをx86に変更し、②deploy対象をDeviceに変更します。
次に、Build / Deploy Solutionを実行します。
すぐに試したい方は、下記のサンプルコードを使うと良いと思います。UWPアプリのサンプルが多数入っています。
GitHub - microsoft/Windows-universal-samples: API samples for the Universal Windows Platform.
[注意事項]
- HoloLensで起動するけど使えない、というサンプルコードもいくつかあります。
(UWPは共通でコードを使えるけど、どんなデバイスにも全て使えるわけではないため、manifestや#ifで制限をかける必要があります)
- SharedContentというフォルダは残しておく必要があります。
3. 試した結果
3-1. Map Sample
これはMap Sampleというプロジェクトですが、AirTapとドラッグで地図を動かすことができました。
3-2. HolographicSpatialMapping
実は、UWPアプリのサンプルにはHoloLens向けの「HolographicSpatialMapping」もあります。ただし、当然ですが、HoloLensもしくはHoloLensエミュレータでしか動きません。
実機にデプロイして動作させた結果がこちらです。
このように、実世界をメッシュ状に表示できます。また、AirTapを1回実行すると、このように白いモデルで表示することもできます。
(2枚の写真は多少ずれたところを撮影しています)
3-3. Simple3DGameDX
DirectXを使うFirst Person Shooterのゲームサンプルもありました。
AirTapで的に当てるかと思ったのですが、残念ながらそのままでは動きませんでした。
3-4. 複数起動させる
2016年5月に開催されたMicrosoft主催のカンファレンス「de:code 2016」では、HoloLensのアプリケーションは以下の3種類であると発表されました。
HoloLens講演。ホログラムの表示方法は3つ。1.BodyLock:どの方向を見ても常に表示(GoogleGlassとかはこれのはず)、2.WorldLock:自分の周辺空間に表示、3.排他的表現:特定アプリ起動時だけ表示。 #decode16
— Riftup@HoloDeveloper (@WheetTweet) 2016年5月24日
Unityでアプリを作ると、原則「排他的表現」となり、他のアプリが見えなく(従来のWindowsPCで言えばフルスクリーン的に)なります。UWPでは、原則World Lock扱いになるため、このように複数起動させることもできます。
ちなみに、右下と一つ上が水色になっていますが、この2つはUWPでも「排他的表現」の性質を持っているアプリです。
(先ほど紹介した「HolographicSpatialMapping」と、「Simple3DGameDX」)
排他的表現のアプリは、World Lock状態の画面では、splash screen画面が出るだけになります。ちなみに、この画面は、先ほどのGithubのサンプルコードの、SharedContent/media/splash-sdk.png です。
4. その他補足情報
UWPアプリをとりあえず動かすだけなら簡単ですが、Windows10 DesktopやWindows 10 Mobile向けのソースコードがどこまで使えるのかは確認が必要ですね。ちなみに、UWPそのものを勉強したいときは、下記のかずきさんが書かれたslideshare & kindle本がオススメです。
かずきのUWP入門というPDFをSlideShareに公開しました - かずきのBlog@hatena
これについては、日本マイクロソフトでUWPなどのアプリケーション関係のエヴァンジェリストである高橋さんもお勧めされていました。
5. 終わりに
私のメインはUnityですが、ざっと触っただけどもUWPでも色々できそうな気がしました。去年、AndroidとUnityの連携や、CortanaとUnityの連携方法を調べたことがあるので、今後、UWPのいいところをUnityで使えるようにしていこうかな、とも思っています。