たるこすの日記

たるこすの日記

リアルからバーチャルへ、バーチャルからリアルへ

HoloLens で Vuforia の直方体マーカ認識を使ってみる

こんにちは、たるこすです。
今回は AR ライブラリの Vuforia の 直方体マーカ(Cuboid マーカ)を HoloLens で使ってみます。

利用したバージョン

  • Unity: 5.6.1f1
  • Vuforia: 6.2.10

以前行った 2D マーカの認識と同じ部分は今回の記事では省略しているので、以下の記事も合わせてご覧ください。 tarukosu.hatenablog.com

Vuforia Developer Portal での直方体マーカの設定

直方体マーカは、直方体の各面のテクスチャを登録します。カメラを使ってそのうち少なくとも1つの面が認識できれば直方体の位置姿勢が認識できます。

今回はマーカとして自作の箱(7cm × 7cm × 7cm)の各面に、石の画像から切り出した6枚の画像を貼り付けたものを利用します。

直方体マーカを利用するには、Vuforia Developer Portal の Target Manager でターゲットを追加する際に Type を Cuboid に設定します。

ターゲットを作成すると、初期状態では以下のような画面が表示されます。上下左右前後の6面について、それぞれのマーカ画像をアップロードします。立体図や展開図を参考にし、向きに注意して画像を登録してください。

すべての面の画像を登録すると、以下のように表示されます。

Unity での設定

以前と同様に、Unity 用 SDK とターゲットのデータベースを Vuforia Developer Portal よりダウンロードし、Unity にインポートします。

また、HoloLensCamera, ARCamera を設置し、ARCamera の設定を行います。

マーカ用のオブジェクトは 2D マーカの際は ImageTarget を利用しましたが、直方体マーカでは MultiTarget を利用します。MultiTarget をシーンに設置したら、Database, Multi Target を設定し、Enable Extended Tracking を ON にします。

マーカが認識されたら表示させたい物体を MultiTarget の子要素に設定します。もともと子要素にある Child Targets が表示されていると直方体の内部が隠されてしまうので、ChildTargets のチェックを外して非表示にします。

以上で、Unity アプリケーションの作成は完了です。

動作

HoloLens で動作させてみた動画がこちらです。キャプチャした動画ではマーカ位置と表示されている物体の位置がずれているように見えますが、実際にはマーカの立体の中に物体があるように見えました。ちなみに、表示されている M と R を組み合わせた物体は CAD ソフトの Fusion 360 を利用して作成しました。


Cuboid Marker Recognition with HoloLens and Vuforia