2014年8月7日木曜日

Android開発環境にARアプリ開発用ライブラリ「Vuforia」を導入してサンプルを動作させるまで

ARアプリを作りたくなりました
というわけで、AndroidでARアプリを作る方法をググると、とりあえず3つのライブラリが見つかりました

1,NyARToolkit
2,AndAR
3,Vuforia

で、どれが良いの?と気になるところですが、3つの比較をするような記事は見つかりませんでした
検索しても、Stack Overflowで「Q - NyARToolkitとAndARってどっちが良いの? A - Vuforiaがいいと思うよ」という質問コメントが見つかるくらいです

とりあえず、それぞれのサンプルなんかを調べたりした結果、Vuforiaのサンプルに目標のアプリに近いものがあったのでこれを使うことにします
(Vuforiaはサンプルアプリのapkをサンプルページで公開しているので、試しにインストールしてみるのもいいと思います)

導入はVuforia-SDKのDLページ
Android - Vuforia SDK v3.0
に行くと、丁寧に方法が書かれているので従ってみます
※OSは64bit_Windows7です。MacやLinuxでは導入の仕方が違うようなので公式の導入方法を個別参照して下さい。


Step 1:Setting Up the Development Environment

開発環境の構築です 参考:vuforiaのサンプルをビルドしてみる(1)
普通のAndroidアプリの開発環境に加えて、「Cygwin」「Android NDK」が必要とあります
ただし、それはVuforia-2.8までのようで、現在はネイティブ部分(C++部分)をいじらない人には必要ないようです

ですが、一応両方の導入方法を書いておきます
Javaしか弄らない人はStep 2に進んで問題ないはずです

普通のAndroidアプリ開発環境は
Android 4.0でアプリ開発を始めるための環境構築 を参考にすると良いです


1, Cygwin
Cygwinのサイト から"setup.exe"をDLして、起動します
・インストールタイプに"Install from internet"を選ぶ
・Select Packages では All -> Devel -> "make:The GNU version of the 'make' utility" を選ぶ(Skipの部分をクリック)、Vuforiaでは3.82-90が最新のようなので一応そのVerにしておく



2, Android NDK
http://developer.android.com/tools/sdk/ndk/index.html から、zipファイルをDLして解凍します
解凍された"android-ndk-rxx"を"android-SDK"と同じフォルダに置きます
(私の場合Android-SDKは"(ユーザー)\AppData\Local\Android"にありました)

その後、NDKのフォルダを環境変数のPATHに通しておきます

Step 1.5
ここで一応、CigwinとNDKが正常に導入されたかどうか確認します

・CigwinのTerminalを起動します(初回起動時、自動的に".bash_profile"等の4つのファイルがが"C:\cygwin\home\sdk"に作成されます)
・順番に以下の2つのコマンドを入力します
cd /cygdrive/C/(NDKのあるディレクトリ)/android-ndk-r10/samples/san-angeles
ndk-build
・NDKのサンプルプロジェクトがビルドされます(サンプルがsan-angelesなのはVuforiaでそうなっていたので特に意味は無いです)
・サンプルプロジェクトに、libs/armeabi/.soファイルが作成されたことを確認します


・Eclipseにインポートしてビルド、その後動作を確認します(私は大体実機デバッガーです)



こんな感じのよく分からない3D動画が流れたら成功です(タップで停止・再生するようです)


Step 2: Installing the Vuforia SDK

先のVuforia-SDKページにてDLしたZipファイルにSDKが含まれているので、NDKと同じように、Android-SDKと同じディレクトリに置きます

その後、Eclipseを開いて
Window->Preferences から Java->Build Path->Classpath Variables を選択し、Newで新しいPathを作ります



名前は"QCAR_SDK_ROOT"、PathはVuforia-sdkのフォルダ"vuforia-sdk-android-x-y-z"です


Step 3: Compiling and Running a Vuforia Sample App

あとはサンプルプロジェクトをビルドするだけです
サンプルは、Vuforia - Samples にあります

zipファイルを解凍してEclipseにインポートしたら、プロジェクトのproperties から Java Build Path->Order and Exportで
QCAR_SDK_ROOT/build/java/vuforia/Vuforia.jar にチェックが入っているか確認します

その後ビルドですが、サンプルプロジェクトとVuforia-sdkの位置関係ではエラーになります


まあ、これはエラーメッセージの通り、CopyVuforiaFiles.xml の4行目
<fileset dir="../../build/lib/armeabi-v7a"/> が存在しない。というだけなので
正しいPath("vuforia-sdk-android-3-0-9\build\lib\armeabi-v7a")を指定すれば良いです

以上で、プロジェクトをClean後にビルドして、私はVuforiaのサンプルファイルの動作を確認することが出来ました

サンプル内のImage Targetの動作