Android はじめに

このチュートリアルは、KudanAR を使用して Android 上で拡張現実 (Augmented Reality、AR) プロジェクトをセットアップする方法を紹介します。


Android 向け Kudan AR フレームワークのダウンロード

最初に、Kudan AR フレームワークが必要です。ダウンロード ページからダウンロードできます。

Android SDK のダウンロード

新規 Android Studio プロジェクトの作成

Android Studio を起動して、新規プロジェクトを作成します。

いくつかのフィールドがありますが、[Application Name (アプリケーション名)] と [Company Domain (会社のドメイン)] は重要です。この 2 つのフィールドの入力値で [Package Name (パッケージ名)] が構成されます。この値は、API キーに関連付けられているアプリケーション ID と同じでなければなりません。これは、無料の API キーを生成したときに使用したアプリケーション ID、または開発ライセンス キーを使用している場合は com.xlsoft.kudanar になります。

[Package Name (パッケージ名)] が正しいことを確認したら、保存場所を選択して [Next (次へ)] をクリックし、基本アクティビティを選択します。

新規 Android Studio プロジェクトの作成

Kudan AR フレームワークをプロジェクトにインポート

メニューから [File (ファイル)] -> [New (新規)] -> [New Module… (新規モジュール…)] を選択して、表示されたダイアログで [Import .JAR/.AAR Package (.JAR/.AAR パッケージのインポート)] をクリックして、.aar パッケージをプロジェクトにインポートします。ダウンロードした KudanAR.aar ファイルを指定します。サブプロジェクト名は「KudanAR」とします。

Kudan フレームワークをプロジェクトに追加

Kudan のモジュールをプロジェクトに追加

settings.gradle と sync gradle にモジュール フォルダを追加します。

settings.gradle
include ':app', ':KudanAR'

KudanAR をモジュールの依存関係として追加

メニューから [File (ファイル)] -> [Project Structure…(プロジェクトの構造…)] を選択して、表示されたダイアログの左ペインで [Modules (モジュール)] の下にある [app (アプリ)] を選択します。そして、右ペインの [Dependencies (依存関係)] タブで左下にある + アイコンをクリックして、[Module dependancy (モジュールの依存関係)] を選択し、KudanAR を依存関係としてプロジェクトに追加します。

KudanAR をモジュールの依存関係として追加 width=

Android マニフェストに権限と設定を追加

マニフェスト ファイルに必要な権限を追加します。Android 6.0 以上向けにビルドする場合は、ARActivity を開く前にカメラの権限要求を含める必要があります。権限の処理の詳細は、こちらをご覧ください。

AR コンテンツを表示するすべてのアクティビティに configChanges と screenOrientation オプションを追加します。

AndroidManifest.xml
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
 
<activity android:name=".MainActivity"
...  
android:configChanges="orientation|screenSize"
android:screenOrientation="fullSensor">
   ...
 </activity>

Gradle 設定の調整

次の noCompress ブロックを app モジュールの build.gradleandroid ブロックに追加します。これにより、Android Studio が重要な Kudan アセットを圧縮するのを防ぎます。

KotlinJava
android 
{
...
    aaptOptions 
    {
       noCompress 'KARMarker'
       noCompress 'armodel'
    }
}
android 
{
...
    aaptOptions 
    {
       noCompress 'KARMarker'
       noCompress 'armodel'
    }
}

ARAPI キーをアクティビティに追加

MainActivity を開き、次のように変更します。

MainActivity

KotlinJava
package com.xlsoft.kudanar
 
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import eu.kudan.kudan.ARAPIKey;
 
class MainActivity : AppCompatActivity() {
 
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
 
        // setContentView(R.layout.activity_main)
 
        val key = ARAPIKey.getInstance()
        key.setAPIKey("<Put API Key here>")
    }
}
package eu.kudan.gettingstarted;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import eu.kudan.kudan.ARAPIKey;


public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
      	// UI 要素を作成する予定がない限り、これはコメントアウト
        //setContentView(R.layout.activity_main);

        ARAPIKey key = ARAPIKey.getInstance();
        key.setAPIKey("<Put API Key here>");
    }
}

対応するアプリケーション名の API キーを検索します。

  • 独自のパッケージ名を使用している場合、これは Web サイトで生成したキーです。
  • com.xlsoft.kudanar 開発パッケージ名を使用している場合は、開発ライセンス キーを使用できます。このキーは透かしを表示しませんが、App Store へのアプリのアップロードには使用できません。アプリを公開するには、上記の Web サイトで無料のキーを生成するか、ライセンスを購入する必要があります。

ARActivity の設定

MainActivityARActivity をインポートして拡張します。

MainActivity

KotlinJava
...
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import eu.kudan.kudan.ARAPIKey;
import eu.kudan.kudan.ARActivity;
 
class MainActivity : ARActivity() {
    ...
}
...
import eu.kudan.kudan.ARActivity;

public class MainActivity extends ARActivity {
  ...
}

これにより、アクティビティで setup メソッドを実装できます。setup メソッドは、ARActivity が最初にロードするときに呼び出されます。次に例を示します。

KotlinJava
override fun setup() {
    super.setup()
 
    // 設定する AR コンテンツをここに記述
}
import eu.kudan.kudan.ARActivity;

public class MainActivity extends ARActivity
{
    @Override
    public void setup() 
    {
        super.setup();
      
        // 設定する AR コンテンツをここに記述
    }
}

上記のように MainActivity を変更したら、アプリをビルドして実行できます。画面にカメラのストリームが表示されるはずです。ただし、まだ何かを検出したり、トラッキングすることはできません。そのための変更は、次のチュートリアルで行います。