🦔

[Android+Native Vuforia]VuforiaでARの初めの一歩

2022/10/21に公開

ARって?

今更ARの説明は不要な気がしますが、
簡単に言うと、カメラ画像に、何かを表示する技術です。

Vuforiaって?

ARを実現するライブラリの一つに、Vuforiaというのがあります。
Qualcomm社が開発したARのライブラリで、現在は、PTCって会社に売却している様です。
現在も、ライブラリを使用する分には無料で出来るようです。
当時から、いろいろ変わった部分もある様ですが、初めの一歩のとっかかりとしては、あんまり変わって無い様です。
ということで、Vuforiaのライブラリを使ってARを実装してみます。

目標到達点


・android端末で、サンプルの3Dモデルを表示をすること。(Unityとかは使わない)

準備するもの

・android端末
・開発用PC(Android Studioのインストールは済ませておく。)
・android端末をつないで、デバッグができる様にしておく。
Vuforia SDK ←から"Download for Android"を押下して、vuforia-sdk-android-xx-y-z.zip をダウンロードしておく
Vuforia Sample ←から"Download for Android"を押下して、vuforia-sample-android-xx-y-z.zip をダウンロードしておく

準備

準備1

サンプルアプリを動かすために、Vuforiaのアカウントが必要になります。
作成しましょう。

アカウント作成画面

First Name : 自分の名前
Last Name : 自分の苗字
Company : 個人の場合はparsonalで大丈夫です。
Select Country of Residence : Japan
Email Address : 自分のメールアドレス
Username : 適当に
PasswordとConfirm Password : 適当に
私はロボットではありませんにレ点。
I agree ... にレ点。
I acknowledge ... にレ点。
これで、Create accountボタンが押せるようになるので、押下。

準備2

サンプルアプリを動かすために、ライセンスが必要になります。
取得しましょう。

Get Basicボタンを押下。
Basicライセンスは無料ですので、安心して押下してください。


License Name : 適当に
By checking ... にレ点。
これで、Confirmボタンが押せるようになるので、押下。


新たにライセンスが生成されました。
それをクリックします。


赤丸の部分がライセンスキーになります。これが、手順4で必要になります。
ひとまず、クリックしてコピーしておきます。
準備は以上です。

手順

1.Vuforia SDKを解凍して、適当なフォルダに配置する。

僕の場合は、下記に配置しました。
D:\VuforiaTest\vuforia-sdk-android-10-7-2

2.Vuforia Sampleを解凍して、適切なフォルダに配置する。

解凍すると vuforia-sample-xx-y-z のフォルダができます。
これをフォルダごと一式、D:\VuforiaTest\vuforia-sdk-android-10-7-2\samples配下に移動します。
フォルダ構成は以下の通り。

3.Android Studioでプロジェクトを開く。


開く押下


上図のAndroidプロジェクトを開く。
読み込みが完了するまで、待つ。

4.認証情報を設定した後、ビルドする。

Vuforiaのライセンス画面


Android Studioで、"AppController.cpp"を開き、licenseKeyに、準備2でコピーしたライセンスを貼り付けます。
そして、ビルド。

もし、この手順を飛ばしたら、アプリ起動時に下記エラーが発生します。

5.マーカを印刷する。

マーカは、D:\VuforiaTest\vuforia-sdk-android-10-7-2\samples\vuforia-sample-10-7-2\Media配下にあります。
target_stones_A4.pdfを印刷しましょう。

6.動かしてみる。

Android Studioをビルドして、スマホで実行します。

スマホの画面に、上の画面が表示されるので、Image Targetを押下しましょう。
印刷したマーカをカメラで映すと、"目標到達点"で表示している3Dオブジェクトのキャラクタが表示されます。

以上です。
VuforiaでARサンプルを動かす手順でした。

Discussion