CrossRoad

XRを中心とした技術ブログ。 Check also "English" category.

UnityでHoloLensのWorld Lockアプリを作る方法

前々回も紹介しましたが、HoloLensアプリには以下の3種類があります。

  • Body Lock(常に目の前に表示される)
  • World Lock(HoloLensが持つ三次元空間の中の絶対位置に配置される)
  • 排他的表現(いわゆるフルスクリーン)

公式ページでUnityによるアプリ開発方法は、「排他的表現」に該当します。しかし、実際はUnityでもWorld Lockのアプリを作ることができたので、今回はその方法を解説します。

なお、以下の環境で動作を確認しています。

  • Unity 5.5.0 f3
  • Windows 10 Pro
  • Visual Studio Update 3

1. 準備

まずはUnity側で何か準備します。私の場合は、1年ぶりにuGUI minimapのアセットのサンプルシーンを使ってみました。uGUI minimapの概要や詳細については、下記をご確認ください。

【Unity】任意のシーンからマップを作るアセットUGUI MiniMapの使い方概要とTips紹介 - CrossRoad

uGUI minimapをインポートしたら、サンプルシーンを開きます。なお、この方法ではHoloToolKitは使いません。

uGUI minimapのアセットをインポートしたときのProject View構成

2. ビルドとデプロイ手順

UnityのBuild Settingsを開き、現在開いているシーンをビルド対象にして、下記のように設定します。

UnityでHoloLensのWorld LockアプリをビルドするときのBuild Settings画面

Player Settingsは下記のようにします。Virtual Reality Supportedにチェックを入れない、が重要です。

UnityでHoloLensのWorld LockアプリをビルドするときのPlayer Settings画面

ここまでできたら、Buildボタンを押して適当なフォルダを指定し、UWPのプロジェクトファイルを出力します。
(ここは通常のHoloLensアプリの作り方と同じです)

この後は、Visual Studioでプロジェクトを開きます。(拡張子slnをダブルクリックしても開きます)

Target Deviceをx86に指定します。

Visual StudioでTarget Deviceをx86に指定する画面

続けて、Deploy Solutionを選択します。

Visual StudioでDeploy Solutionを実行する画面

これでHoloLensにアプリがデプロイされます。

3. 動作確認

HoloLensの実機でアプリを起動ます。通常の作り方だと、視界全体にMade with Unityのロゴが出ますが、今回はWindowの中に表示されています。

HoloLensでWorldLockアプリを実行したときの画面

動かすとこのようになります。

UnityのFPS ControllerのカメラワークをHoloLensのヘッドトラッキングで操作しています。前進移動は、キーボードの上キーです。また、HoloLensの注視カーソルも生きていて、uGUIかOnGUIのボタン上でAirTapすると、タップ相当の操作もできます。動画の中でも見づらいですが、小さな白い点が常に表示されており、これが注視カーソルです。

このように、他のアプリケーションを表示させることもできます。

HoloLensで複数のアプリケーションを起動させている例

ただし、World Lock表示したUnityアプリを操作できるのは、UnityアプリのWindowがフォアグラウンドであるときだけです。

4. 終わりに

UnityでWorld Lockアプリができると、ユーティリティアプリとか、ゲーム以外にもUnityの特性を活かしたアプリができそうですね。こんな感じで、また色々調べてみたいと思っています。