Vuforia の Gland Plane 試す
僕は主にARの開発ではARKitを使って開発していますが、ARKitはAppleが提供しているARフレームワークのため、Android端末では使うことができない。
GoogleのARCoreもあるが、まだまだ使える端末は多くないし、日本国内だと今後各メーカーがリリースする端末もARCoreが使える状況かどうかわからない。
(それはVuforiaも同じだけど…)
また、ARKitでiOS用アプリ、ARCoreでAndroidアプリを作るにはそれぞれのフレームを理解して、2倍の工数をかけて開発しなければならない。
ということで、VuforiaがARkitやARCoreのように平面認識できるようになったので、ためしてみた。ARKitやARCoreが頑張っているので、この機能がリリースされて1年くらい経ってるがあまり認知されていないせいか、ドキュメントが少ないので、世の中でもす導入を検討している人がいれば参考になればと思う。(今回は導入の部分のみになりますが)
ちなみに、2019年2月23日時点でVuforiaがサポートしている名言している端末は下記のリンクに記載されている
https://library.vuforia.com/articles/Solution/vuforia-fusion-supported-devices.html
開発環境
Unity 2018.2.7f1
Vuforia 8.0.10
なお本記事は下記公式のドキュメントにも記載してあります。
Introduction to Ground Plane in Unity
まずはVuforiaのSDKを使うよう設定を変更
PlayerSetting のXRSettings からVuforia Augmented Reality Supportedにチェックを入れる
ツールバーの Window にVuforia Configrationがあるので選択する
GlobalのAddLicenceKey にライセンスキーを入力する
(下のAdd Licence をクリックすればVuforiaのサイトに飛ぶのでそこからログインして、プロ家ジェクト名などを入力すれば開発用のLicenceKeyが手になる)
Hierarthyを右クリックして表示されるオブジェクト追加のウィンドウにVuforiaEngineの項目が追加されてるので、どれでもなにかクリックして追加しようとすれば、SDKを一式ダウンロードすることができる
(今回はVuforiaに必要なARCameraを追加してみた)
ARCameraを追加したらCameraは削除してOK
ここからは平面認識のためのオブジェクトを置いていく
Hierarthyを右クリックしてVuforiaからGland Plane Stage を配置する
(このオブジェクト配下に置いたものが床認識時に表示される)
とりあえずCubeを置いてみよう
次は同じにVuforiaEngineからPlaneFinderを追加する
その中からContentPositioningBehaviourのAnchorStageに先程追加したGroundPlaneStageをアタッチする
AnchorStageの下にあるDuplicate Stageは GroundPlaneに配置したオブジェクトを複製したい
ときはtrueにしておく必要がある(デフォルトはtrue)
ただ移動させたい場合はfalseにしておけば良い
Duplicate Stage -> true
Duplicate Stage -> false