UnityでVuforia Cloud Recognitionを使えるようにするためのメモです。
Cloud Recognitionを使用すると、アプリにマーカー用の画像データを埋め込む必要がなく、Vuforiaの管理画面から自由にマーカーを追加できるようになるので、アプリの運用フェーズで非常に便利になります。例えば、マーカーと商品が紐づいていて、新商品を追加する際にアプリを更新することなく新商品用のマーカーを追加することができるようになります。
ソースコードの解説など詳しい内容は全て下記のチュートリアルページに書いてあります。こちらでは内容の解説ではなく、ひとまず使えるようにするための手順を記載します。
まず、Vuforia Developer PortalのTarget Managerで「Add Database」し、Typeを「Cloud」にして作成します。ライセンスはdeveloperアカウントのものを使用してください。
そしてマーカーとなる画像を追加するわけですが、アプリ内に画像を保持するタイプのマーカーと違って、「Metadata Package」を指定することができるようになっています。この仕組みは、マーカーの付随情報となるテキストファイルをマーカーと一緒に保存することにより、その内容をアプリ内で自由に使える、というものです。
例えば新商品のマーカーなら、商品の説明をMetadataに記載することにより、マーカーと一緒にその説明を表示したりできます。
次はUnityプロジェクトの作成です。Vuforiaを内蔵しているUnity2017.2以降を前提にしています。
Hierarchy右クリックで、GameObject>Vuforia>AR Camera を選択してARCameraを作成します。
ARCameraのインスペクタの「Open Vuforia Configration」を開き、ライセンスキーを入力してください。
同じくGameObject>Vuforia>Cloud Image>Cloud Provider を選択してCloudRecognitionを作成します。
CloudRecognitionのインスペクタでAccess KeyとSecret Keyを入力します。この値は、作成したDatabaseのDatabase Access Keysタブを開き、「Client Access Keys」の下の文字列を使用します。
SimpleCloudHandler.csを作成し、CloudRecognitionにアタッチします。
Hierarchy右クリックで、GameObject>Vuforia>Cloud Image>Cloud Image Target を選択し、Image Targetを作成します。
作成したImage Targetの子オブジェクトとして適当なCubeなどを作成します。
CloudRecognitionのインスペクタのSimpleCloudHandlerの「Image Target Template」に、上で作成したImage Targetを指定します。
アプリを実行し、マーカーをカメラに見せて、先ほど配置したCubeが表示されれば成功です。
同時に、アップロードしたMetadataの内容も左中央に表示されています。
コメント
今はメソッドが変わったりして動かなくなってます??
SimpleCloudHandler.csがエラーで動きません。
調べたら変わってますね。
https://library.vuforia.com/articles/Solution/How-To-Implement-Cloud-Reco.html
IObjectRecHandlerを実装する方式になったようです。
それで試してみたのですが、スクリプト自体は動くものの別の場所でExceptionが発生してうまくいきませんでした。調査中です。