

MixedRealityToolkit-Unityを使ったHoloLens開発クイックスタート
こんにちは。ソリューション開発部 HoloLens分科会の中川です。
Unity + VisualStudio でHoloLens向けアプリを開発する際に必ず必要となるのが「MixedRealityToolkit-Unity」です。今回は「MixedRealityToolkit-Unity」の導入の手順を紹介します。
さらにToolkitを用いて、ホログラムを現実世界の床や机の上に自由に移動させることが出来るアプリを作成してみます。Gaze, Tap, Spatial MappingといったHoloLensアプリの基礎的かつ重要な要素が簡単に実装できることを確認してみてください。
「Microsoft Mixed Reality Academy」の「Holograms 101: Introduction with Device」を終えており、1度は実機またはエミュレータにアプリをデプロイしたことがある方向けの記事です。
内容のほとんどは「MixedRealityToolkit-Unity」に含まれる「GettingStarted.md」の日本語訳です。
「MixedRealityToolkit-Unity」パッケージのダウンロード
- 「MixedRealityToolkit-Unity」からパッケージファイル(.unitypackage)をダウンロードします
- 使用しているUnityのバージョンに合わせたパッケージファイルを選ぶようにしましょう
HoloLensアプリ用Unityプロジェクト作成&パッケージのインポート
- Unityを起動し、「NEW」をクリックしてプロジェクトを作成します。「3D」に忘れずチェックを入れておきます
- 「Projectビュー > Assets」を右クリックし、「Import Package > Custom Package」をクリックします
- 先ほどダウンロードした.unitypackageファイルを選択します
- 下図のようにImportするパッケージを選択する画面が出ますので、自作アプリの場合は不要な「HoloToolkit-Examples」と「HoloToolkit-Tests」は外しておきます
- ExamplesでToolkitの内容を確認する場合は残しておきます
これで「MixedRealityToolkit-Unity」を自分のプロジェクトにインポートできました。
HoloLensアプリ用設定を行う
引き続き、HoloLensアプリ用にプロジェクトを設定していきます。
HoloLens用カメラの設置
- 「Hierarchyビュー」内の「Main Camera」「Directional Light」を削除します
- 「Projectビュー > Assets > HoloToolkit > Input > Prefabs」から「HoloLensCamera」を選択し、「Hierarchyビュー」にドラッグ&ドロップします
HoloToolkitメニューのConfigureによる設定
- 「メニューバー > HoloToolkit > Configure」から「Apply HoloLens Scene Settings」をクリックします
- ダイアログが表示されるので、そのまま「Apply」をクリックします
- 「メニューバー > HoloToolkit > Configure」から「Apply HoloLens Project Settings」をクリックします
- 「メニューバー > HoloToolkit > Configure」から「Apply HoloLens Capability Settings」をクリックします
- ダイアログが表示されるので、「Spatial Preception」にチェックを入れて「Apply」をクリックします
- デフォルトでは何もチェックがついていないので、作成するアプリの必要に応じてチェックを付けてください。あとから設定し直しも可能です
- 今回は現実世界にホログラムを設置できるアプリにしますので「Spatial Preception(空間認識)」をONにします
その他基礎的なプレハブの設置
ほぼすべてのHoloLensアプリに必要となるCursorやInputManagerを設置します。
- 「Hierarchyビュー > Create > Create Empty」をクリックし、空のオブジェクトを作成します。オブジェクト名は「Managers」に変更しておきます
- 「Projectビュー > Assets > HoloToolkit > Input > Prefabs」から「InputManager」を選択し、「Hierarchyビュー > Managers」の配下にドラッグ&ドロップします
- 「Managers」を右クリックし、「UI > EventSystem」を選択します
- 「Projectビュー > Assets > HoloToolkit > Input > Prefabs > Cursor」から「DefaultCursor」を選択し、「Hierarchyビュー」直下にドラッグ&ドロップします
- 「Projectビュー > Assets > HoloToolkit > SpatialMapping > Prefabs」から「SpatialMapping」を選択し、「Hierarchyビュー」直下にドラッグ&ドロップします
ここまでの手順を終えると、プロジェクトは↓のようになっているはずです。


オブジェクトを配置し、Tap To Placeで移動できるよう設定
- 適当な3Dオブジェクトを「Hierarchyビュー」直下に配置してください
- ↓は「Create > 3D Object」の中の「Cylinder」オブジェクトです
- 配置後にPosition X:0 , Y:0, Z:1.5 (真正面1.5m先)、Size X:0.2 , Y:0.2 , Z: 0.2に設定します
- 「Inspectorビュー」の中の「Capsule Collider」を削除します
- オブジェクトが円柱なのにColliderがカプセル型だと、角の部分にカーソルがヒットしないため
- 「Inspectorビュー」の一番下の「Add Component」をクリックし、”mesh collider”と入力します
- 表示された検索結果の中から「Mesh Collider」を選択します
- 同じく「Inspectorビュー」の一番下の「Add Component」をクリックし、”tap to place”と入力します
- 表示された検索結果の中から「Tap To Place」を選択します
Inspectorビューに↓の3つが追加されたことを確認してください。
これでアプリの実装は終わりです。
HoloLensにデプロイして動作確認
では、実際にHoloLensにデプロイして動作確認してみましょう。
UnityからVisual Studioソリューションを出力
- 「メニューバー > HoloToolkit > BuildWindow」をクリックします
- 「Unity C# Projects」にチェックを入れ、「Open SLN」をクリックします
- ↓のようなダイアログが表示されるので、「Yes, Build」をクリックすると、Visual Studioのソリューション一式が出力されます
- 出力が終わったら、再度「Open SLN」をクリックします
- Visual Studio が起動します
Visual Studio から HoloLensへデプロイ
- ソリューション構成を「Release」に設定します
- ソリューションプラットフォームを「x86」に設定します
- 実行ターゲットを「リモートコンピュータ」に設定します
- このとき、リモートコンピュータのIPアドレスを入力するダイアログが表示されるので、HoloLensのIPアドレスを設定します
- Ctrl + F5 でデバッグなし実行を開始します
実行結果
実行すると、目の前2mほど先に円柱が表示されます。タップすると、移動モードに入ります。


視線を動かして、目的の場所までオブジェクトを誘導します。位置が決まったら再タップで固定されます。


MixedRealityToolkit-Unityで効率よくアプリ開発を
このようにMixedRealityToolkit-Unityを活用すれば、ノーコーディングかつ数分でGaze, Tap, Spatial MappingといったHoloLensの特徴的な機能をもつアプリを実装することができます。
MixedRealityToolkit-Unityには他にも様々なスクリプト・プレハブが用意されているので、Examplesなどでいろいろ試してみてはいかがでしょうか。