MixedRealityToolkit-Unityを使ったHoloLens開発クイックスタート

Microsoft HoloLens, Microsoft Visual Studio, Mixed Reality, Unity

こんにちは。ソリューション開発部 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」パッケージのダウンロード

  1. 「MixedRealityToolkit-Unity」からパッケージファイル(.unitypackage)をダウンロードします
  2. 使用している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ビュー」にドラッグ&ドロップします
HoloLens用カメラの設置

HoloToolkitメニューのConfigureによる設定

  • 「メニューバー > HoloToolkit > Configure」から「Apply HoloLens Scene Settings」をクリックします
  • ダイアログが表示されるので、そのまま「Apply」をクリックします
HoloToolkitメニューのConfigureによる設定
  • 「メニューバー > HoloToolkit > Configure」から「Apply HoloLens Project Settings」をクリックします
「Apply HoloLens Project Settings」をクリックします
デフォルトでチェックがついていないものは必要に応じてチェックを付けてください
  • 「メニューバー > HoloToolkit > Configure」から「Apply HoloLens Capability Settings」をクリックします
  • ダイアログが表示されるので、「Spatial Preception」にチェックを入れて「Apply」をクリックします
「Apply HoloLens Capability Settings」をクリックします
  • デフォルトでは何もチェックがついていないので、作成するアプリの必要に応じてチェックを付けてください。あとから設定し直しも可能です
  • 今回は現実世界にホログラムを設置できるアプリにしますので「Spatial Preception(空間認識)」をONにします

その他基礎的なプレハブの設置

ほぼすべてのHoloLensアプリに必要となるCursorやInputManagerを設置します。

  • 「Hierarchyビュー > Create > Create Empty」をクリックし、空のオブジェクトを作成します。オブジェクト名は「Managers」に変更しておきます
  • 「Projectビュー > Assets > HoloToolkit > Input > Prefabs」から「InputManager」を選択し、「Hierarchyビュー > Managers」の配下にドラッグ&ドロップします
InputManagerを選択し、Hierarchyビュー>Managersの配下にドラッグ&ドロップします
  • 「Managers」を右クリックし、「UI > EventSystem」を選択します
UI>EventSystemを選択します
  • 「Projectビュー > Assets > HoloToolkit > Input > Prefabs > Cursor」から「DefaultCursor」を選択し、「Hierarchyビュー」直下にドラッグ&ドロップします
DefaultCursorを選択し、Hierarchyビュー直下にドラッグ&ドロップします
  • 「Projectビュー > Assets > HoloToolkit > SpatialMapping > Prefabs」から「SpatialMapping」を選択し、「Hierarchyビュー」直下にドラッグ&ドロップします
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に設定します
適当な3Dオブジェクトを「Hierarchyビュー」直下に配置してください
  • 「Inspectorビュー」の中の「Capsule Collider」を削除します
    • オブジェクトが円柱なのにColliderがカプセル型だと、角の部分にカーソルがヒットしないため
  • 「Inspectorビュー」の一番下の「Add Component」をクリックし、”mesh collider”と入力します
    • 表示された検索結果の中から「Mesh Collider」を選択します
  • 同じく「Inspectorビュー」の一番下の「Add Component」をクリックし、”tap to place”と入力します
    • 表示された検索結果の中から「Tap To Place」を選択します

Inspectorビューに↓の3つが追加されたことを確認してください。

Inspectorビューに↓の3つが追加されたことを確認

これでアプリの実装は終わりです。

HoloLensにデプロイして動作確認

では、実際にHoloLensにデプロイして動作確認してみましょう。

UnityからVisual Studioソリューションを出力

  • 「メニューバー > HoloToolkit > BuildWindow」をクリックします
  • 「Unity C# Projects」にチェックを入れ、「Open SLN」をクリックします
    • ↓のようなダイアログが表示されるので、「Yes, Build」をクリックすると、Visual Studioのソリューション一式が出力されます
UnityからVisual Studioソリューションを出力
  • 出力が終わったら、再度「Open SLN」をクリックします
    • Visual Studio が起動します

Visual Studio から HoloLensへデプロイ

  • ソリューション構成を「Release」に設定します
  • ソリューションプラットフォームを「x86」に設定します
  • 実行ターゲットを「リモートコンピュータ」に設定します
    • このとき、リモートコンピュータのIPアドレスを入力するダイアログが表示されるので、HoloLensのIPアドレスを設定します
  • Ctrl + F5 でデバッグなし実行を開始します

実行結果

実行すると、目の前2mほど先に円柱が表示されます。タップすると、移動モードに入ります。

目の前2mほど先に円柱が表示されます。タップすると、移動モードに入ります。

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

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

MixedRealityToolkit-Unityで効率よくアプリ開発を

このようにMixedRealityToolkit-Unityを活用すれば、ノーコーディングかつ数分でGaze, Tap, Spatial MappingといったHoloLensの特徴的な機能をもつアプリを実装することができます。

MixedRealityToolkit-Unityには他にも様々なスクリプト・プレハブが用意されているので、Examplesなどでいろいろ試してみてはいかがでしょうか。

  • 株式会社アークシステムの来訪管理・会議室予約システム BRoomHubs
  • 低コスト・短納期で提供するまるごとおまかせZabbix