CodeZine(コードジン)

記事種別から探す

位置情報と連動したAR! Wikitudeで「ロケーションベース型AR」Androidアプリを作ってみよう

どっぷり浸かろう! Wikitude SDKで開発するARアプリの世界 第2回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2016/02/24 14:00

 ARは、スマホのカメラで周囲の風景を映すと、その風景にデジタル的な追加情報(ARオブジェクト)を付与して表示する表現方法です。このとき、どこに追加情報を表示するかの判断を緯度経度といったロケーションをベースとして判断するのが「ロケーションベース型AR」の特徴です。Wikitude SDKを使ってロケーションベース型ARアプリを作成すると、現在位置とARオブジェクトをSDKに渡すだけで、適切なAR表示が実現できます。今回は、その中のロケーションベース型ARについて、Wikitudeを使ってAndroidアプリを作成してみたいと思います。

準備

Androidプロジェクトの作成

 Android Studioを起動したら[Start a new Android Studio Project]を選んで、新しいプロジェクトを作成します。今回は、アプリケーション名を「CZ1601Location」としました。

図1 Configure your new project
図1 Configure your new project

 Wikitude自体はAndroid 4.0(APIレベル14)以上であれば動作しますが、これから作成するのであれば、Android Studioの助言に従ってAndroid 5.0(APIレベル21)で作成するのがよいでしょう。

図2 Select the form factors your app will run on
図2 Select the form factors your app will run on

 ARを表示する画面自体はシンプルなもので十分なので、作成する画面はEmpty Activityで十分です。

図3 Add Activity Mobile
図3 Add Activity Mobile

Wikitude.aarファイルの設置

 Wikitude SDKはaar(Android archive)ファイルとして提供されています。

 Wikutude SDKは、グレープシティWikitudeサイトのダウンロードページからダウンロードができます。ダウンロードするためにはアカウントを作成しサイトにログインする必要があります。

 Wikitude SDKダウンロードページには、Android用、iOS用などOSごとにダウンロードファイルが用意されています。今回は、Android用のサンプルを作成するので、wikitude-sdk-android-511.zipファイル(最新バージョンが執筆時点と同じ5.1.1だった場合)をダウンロードします。

 ダウンロードしたWikitude SDKのzipファイルを展開すると、wikitude-sdk-android-511¥Libraryフォルダにwikitudesdk.aarファイルがあり、これをAndroidプロジェクトにコピーします。一度、Android Studioを終了させて、Androidプロジェクトを作成したフォルダのapp¥libsフォルダに、wikitudesdk.aarファイルをコピーします。

 コピーが完了したら再びAndroid Studioを起動します。

build.gradle(Modelue.app)の編集

図4 build.gradle(Modelue.app)の編集
図4 build.gradle(Modelue.app)の編集

 Android Studioでbuild.gradle(Modelue.app)を開き内容を書き換えます。

図5 内容変更
図5 内容変更
リスト1 build.gradleの修正部分
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile (name: 'wikitudesdk', ext:'aar')
    compile 'com.android.support:appcompat-v7:23.1.1'
}

repositories {
    flatDir{
        dirs 'libs'
    }
}

 今回は、無料で利用できるトライアル版ライセンスキーを使うので設定は不要ですが、もし、製品ライセンスキーを使うときは、build.gradle (Modelue.app)のapplicationIdの内容を登録します。

AndroidManifest.xmlに権限追加

 ARではスマホのカメラを使用し、ロケーションベース型ARではスマホの現在位置を使います。そこで、カメラやGPSなどのロケーション、方位を測定するコンパスなどの使用権限を、AndroidManifest.xmlファイルに追加します。

図6 権限追加
図6 権限追加
リスト2 AndroidManifest.xmlへの権限追加
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_GPS" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-feature android:name="android.hardware.camera" android:required="true" />
<uses-feature android:name="android.hardware.location" android:required="true" />
<uses-feature android:name="android.hardware.sensor.accelerometer" android:required="true" />
<uses-feature android:name="android.hardware.sensor.compass" android:required="true" />
<uses-feature android:glEsVersion="0x00020000" android:required="true" />
<uses-sdk android:targetSdkVersion="21" android:minSdkVersion="21"/>

 次に画面回転時などに画面表示が自動的に制御されないように、MainActivityに対してScreenSizeとorientation権限も与えておきます。

リスト3 AndroidManifest.xml
<activity android:name=".MainActivity"
    android:configChanges="orientation|keyboardHidden|screenSize">

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 初音玲(ハツネアキラ)

    国内SIerのSEで受託開発を主に行っています。Visual Basic + Oracleという組み合わせに関する事が得意です。 Internet of Thingsという名前もよく聞くようになってきてセンサーとクラウドという組み合わせに注目があつまっています。Kinectなどのモーションセンサー...

バックナンバー

連載:どっぷり浸かろう! Wikitude SDKで開発するARアプリの世界

おすすめ記事

All contents copyright © 2006-2016 Shoeisha Co., Ltd. All rights reserved. ver.1.5