Android で ARCore の使用を開始するには、ARCore SDK に含まれている hello_ar_kotlin または hello_ar_java サンプルアプリを実行します。これらのサンプルアプリは、2D および 3D ベクター グラフィックのレンダリング用プログラミング インターフェースである OpenGL を使用します。アプリには、検出された平面が表示され、ユーザーは平面をタップして 3D モデルを配置できます。
開発環境を設定する
Android SDK Platform バージョン 7.0(API レベル 24)以降を搭載した Android Studio バージョン 3.1 以降をインストールします。
Android を初めて使用する場合は、初めての Android アプリを作成するをご覧ください。
サンプル プロジェクトを開く
Android Studio で、ARCore SDK GitHub リポジトリのクローンを作成します。
そのためには、次のような方法があります。
Android Studio がインストールされている場合:
- Git メニューから Clone を選択します。
- Version control プルダウンで、バージョン管理システムとして Git を選択します。
URL フィールドに、ARCore GitHub リポジトリの次の URL を入力します。
https://github.com/google-ar/arcore-android-sdk.git
次のように、Terminal を開いて
git clone
コマンドを実行することもできます。git clone https://github.com/google-ar/arcore-android-sdk.git
次のように、サンプル プロジェクトのいずれかを開きます(プロジェクトをビルドして実行するには、プロジェクトを明示的に開く必要があります)。
- File メニューから Open を選択します。
- arcore-android-sdk/samples フォルダで、hello_ar_kotlin フォルダまたは hello_ar_java フォルダを選択し、Open をクリックします。
デバイスまたはエミュレータを準備する
AR アプリは、対応デバイスまたは Android Emulator で実行できます。アプリを実行する前に、エミュレータで Google Play 開発者サービス for AR を更新する必要があります。詳しくは、Android Emulator で AR アプリを実行する をご覧ください。
サンプルの実行
Android デバイスが開発マシンに接続されていることを確認して、Android Studio で Run をクリックします。
Android Studio は、プロジェクトをデバッグ可能な APK にビルドし、APK をインストールしてから、デバイスでアプリを実行します。詳細については、アプリをビルドして実行するをご覧ください。
Google Play 開発者サービス(AR)がインストールされていないか、最新バージョンでない場合は、インストールまたは更新を求めるメッセージが表示されることがあります。[CONTINUE] を選択して Google Play ストアからインストールするか、Google Play 開発者サービス(AR)を更新するの手順に沿って手動で更新します。
hello_ar_java アプリを使用すると、検出された AR 平面上に 3D ARCore ポーンを配置できます。これは Android GL SurfaceView で実装されています。これは、カメラのプレビューと、プレーンやアンカーなどの基本的な AR オブジェクトのレンダリングに使用されます。hello_ar_java のサンプル レンダリング フレームワークは com/google/ar/core/examples/java/common/samplerender
にあります。
インスタント プレースメントを使用する
Instant Placement API を使用すると、ARCore がサーフェス ジオメトリを検出するまで待たずに、ユーザーが AR オブジェクトを画面に配置できます。ユーザーが環境内を移動すると、オブジェクトの配置がリアルタイムで調整されます。
画面をタップしてオブジェクトを配置します。ホログラフィック オブジェクトが画面に表示されたら、デバイスを動かし続けます。これにより、ARCore が周囲の環境に関する十分なデータを取得し、仮想オブジェクトを正確に固定できます。
ARCore がサーフェス ジオメトリを検出し、オブジェクトが配置されている領域にトラッキング可能なものを確立すると、オブジェクトのポーズが自動的に更新され、精度が向上します。
図 1 では、インスタント プレースメントが無効になっており、サーフェス ジオメトリが未定義です。プール台の右側の床に置かれたオブジェクト(4 つの小さな青い点)が倒れており、ポーズが定義されていません。
図 2 では、歯車アイコンの下にあるメニューからインスタント プレースメントが有効になっています。
図 3 では、インスタント プレースメントが有効になっているため、新しいオブジェクトがシーンに配置されています。正確なポーズにまだ補正されていないことを示すため、色ではなくグレースケールで表示されます。
図 4 では、サーフェス ジオメトリ(トラッキング可能なグリッド線で記述)が検出されると、新しいオブジェクトが着色され、そのポーズが正確になります。
深度を使用する
[Depth] が有効になっている場合、ARCore はシーン内のオブジェクトのジオメトリと位置を考慮し、シーン内の他のオブジェクトを基準としてシーン内に配置されたオブジェクトの位置を計算します。これにより、配置したオブジェクトをシーン内のオブジェクトで隠すことができ、アプリのリアリティを高めることができます。
図 1 では、奥行きが無効になっています。プールテーブルの下にオブジェクトが置かれている。
図 2 では、デバイスがプール台の周囲を移動すると、シーン内のオブジェクトに関係なく、オブジェクトがデバイスに追従するように見えます。
図 3 では、奥行きが有効になっています。
図 4 では、デバイスがシーン内を移動すると、オブジェクトがプールテーブルによって遮蔽されているように見えます。
次のステップ
- ARCore SDK で他のサンプル プロジェクトをビルドして実行してみてください。
- ビルドして実行できるサンプルアプリについては、拡張現実の Codelab をご覧ください。
- アプリで ARCore を有効にする方法を学習する。
- ランタイムに関する考慮事項を確認します。
- デザイン ガイドラインを確認します。