Cross Technology

Unity、VR、MR、ARを中心とした技術ブログ

【Unity2017.3.1.p1版】Vuforia7.47によるHoloLensアプリのビルド手順

VuforiaのHPを見ていたところ、Vuforiaのバージョンが7になっており、HoloLens用のサンプルが公開されていました。

HoloLensやImmersive Headsetの開発環境は、今後も変化が激しいと思われるので、今回デプロイまで確認できた環境とその他Tipsをまとめました。

1. 環境構築の組み合わせ

下記のバージョンの組み合わせで、UnityからHoloLensにアプリをデプロイできました。

Vuforia 7.4.7 for HoloLens(beta)

Unity2017.3.1p1 

Mixed Reality Tool Kit 2017.2.1.1

・Visual Studio 2017 (15.5.7)
 - .NET Framework 4.7.02556

・Windows10 Pro Fall Creators Update 1709 (OS build : 16229.248)

2. Vuforia7をHoloLensで使うためのパッケージ

Vuforia 7.4.7 for HoloLens(beta) から、2種類のunitypackageがダウンロードできます。

Vuforia HoloLensのHP画面

写真など、従来マーカを使ったARアプリを作るには、Hololens-7-0-47.unitypackageを使います。

もう1つのHololensModelTargets-7-0-47.unitypackage は、Model Targetを使う場合です。Model Targetとは、3次元の物体そのものをマーカとする仕組みです。Model TargetのinstructionにはCADデータを使う例が書かれていましたので、CADデータがあるものでなければ試すことは難しそうです。

VuforiaのModel TargetでCADデータを使う例VuforiaのModel Targetで使うCADデータの表示例

(抜粋) Model Targets User Guide

ちなみに、Vuforia7のHoloLens版サンプルは、Unity2017.3.1p1以降のバージョンで動かすように、と書いてありました。

3. Vuforia7とMixed Reality Tool Kitの連携

Vuforia7になって、AR Camera (VuforiaをUnityで使うとき必須となるGameObject)のInspectorが少し変わっていました。具体的には、こちらに記載の ”[Central Anchor Point]にHoloLensCameraをドラッグアンドドロップします。” のCentral Anchor Pointがなくなっていました。

Vuforiaを使ってSharingの接続成功率をあげる | D.YAMA Blog


VuforiaをUnityで使うときの画面

Hololens-7-0-47.unitypackageを展開した中に入っていた Assets/SampleResources/Scene/2-HoloLensでは、Hierarchy Viewが上の画像のようになっていました。

これで、HoloLens向けにデプロイすると、サンプルのマーカの上で指定したCGを重畳させることができました。

ただ、Mixed Reality Tool Kitと組み合わせる方法は書いてなかったので、調べてみました。

まずは、2-HoloLensのシーンをSave as で別の名前にして複製し、複製したシーンで"Mixed Reality Tool Kit"から、Configure / Apply Mixed Reality Scene Settings を選択します。

UnityでMixed Reality Tool Kitを使うときの手順

Apply Mixed Reality Scene Settingsの画面で全てにチェックをつけます。

UnityでMixed Reality Tool Kitを使うときの設定画面

このまま Applyを押します。

UnityでMixed Reality Tool Kitを使うときの設定後の画面

すると、このようにARCameraオブジェクトが消えて、Mixed Reality Camera ParentとInput Managerオブジェクトが表示されます。

次に、AR Camera についていた、Vuforia Behaviourというコンポーネントを追加します。追加場所はMixed Reality Cameraです。

UnityでMixed Reality Tool Kitを使うときのvuforiaコンポーネント

(注)Mixed Reality Camera Parentオブジェクトに追加すると、ARが効きませんでした。

あとは通常通りUWPビルドしてVisual Studioからデプロイします。このようになります。


4. その他Tips

4-1. Vuforiaの基本設定

基本的な準備手順はすでに色々なところに書かれているので、簡単に書いておきます。。

Vuforiaの準備(Developer Portal)

(1) License Manager/Get Development Keyでライセンスキーを取得

vuforiaのライセンスキー入力画面

(2) Target Manager/Add Databaseで認識対象のマーカを登録

(3) 登録後、Download Databaseで対象をUnity Editorとして、unitypackageをダウンロード

Vuforiaの準備 (Unity)

(1) Vuforia Configurationを開いて、Add License Keyにライセンスキーの文字列をコピー

(2) 先ほど取得したunitypackageをインポートする。Vuforia Configurationの”Databases”から、Databaseの名前とActivateにチェックを入れる

Vuforia Configuration画面

VuforiaのImage Target画面
 
(3) Gameobject/Vuforia/Image によって、ImageTargetオブジェクトを生成。Inspectorから対象のDatabaseとマーカを選ぶ

(4) InspectorでAdvancedを選択して、マーカのwidthとheightを実際の長さとなるべく近い値に指定する。

(5) マーカにAR表示させたいオブジェクトを、ImageTargetの子にする

4-2. Vuforiaを使うときの補足

・サンプルシーンを使うだけならば、Add License Keyにライセンスは不要

  • マーカ認識したらAR表示、というだけであれば、ImageTargetのPositionはどこでもよい。Unity Editor上ではImage Targetが複数あっても適当な場所に並べてよい
  • HoloLensでExtend Trackingを使うと、マーカ認識した場所にオブジェクトが表示され続ける。


4-3. デプロイ時のエラー

Visual StudioからHoloLensアプリをデプロイする時に、不定期に謎のエラーが出て失敗します。しかし、もう一度デプロイすると成功します。

HoloLensアプリデプロイ時の失敗画面

これはHoloLensのデプロイをする時に前からよくあって、原因不明です。

5. おわりに

最近Meta2を使うことが多くて、久しぶりにMixed Reality Tool Kitを見たら変化が多くて困った、というのが今回ブログを書いたきっかけでした。

単に動かしてみただけの話ですが、今回の環境構築のために英語のサイトを見ていたら、バージョンが少し違うだけでcrashした、という話が多かったので、何かのお役に立てれば幸いです。