Android で ARCore の使用を開始するには、ARCore SDK に含まれている hello_ar_kotlin または hello_ar_java サンプルアプリを実行します。このサンプルアプリでは、2D および 3D ベクター グラフィックをレンダリングするプログラミング インターフェースである OpenGL を使用しています。検出された平面が表示され、ユーザーは平面をタップして 3D モデルを配置できます。
開発環境をセットアップする
Android Studio バージョン 3.1 以降と、Android SDK Platform バージョン 7.0(API レベル 24)以降をインストールします。
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 で実行できます。アプリを実行する前に、エミュレータで AR 用 Google Play 開発者サービスを更新する必要があります。詳しくは、Android Emulator で AR アプリを実行する をご覧ください。
サンプルの実行
Android デバイスが開発マシンに接続されていることを確認し、Android Studio で Run をクリックします。
Android Studio によってプロジェクトがデバッグ可能な APK にビルドされ、APK がインストールされ、デバイスでアプリが実行されます。詳細については、アプリをビルドして実行するをご覧ください。
Google Play 開発者サービス(AR)が見つからない場合や最新ではない場合は、インストールまたは更新するよう求められることがあります。CONTINUE を選択して Google Play ストアからインストールするか、AR 用 Google Play 開発者サービスを更新するの説明に従って手動で更新します。
hello_ar_java アプリを使用すると、検出された AR 平面の表面に 3 次元の 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 では、Instant Placement を有効にした状態で新しいオブジェクトがシーンに配置されています。 正確なポーズのためにまだ修正されていないことを示すために、色付きではなくグレースケールで表示されます。
図 4 では、サーフェスのジオメトリ(追跡可能なグリッド線で記述)が検出されると、新しいオブジェクトに色が付き、そのポーズが正確になります。
Depth を使用
[Depth] を有効にすると、ARCore はシーン内のオブジェクトのジオメトリと位置を考慮し、シーン内の他のオブジェクトを基準としてシーンに配置されたオブジェクトの位置を計算します。これにより、配置されたオブジェクトをシーン内のオブジェクトによって遮られ、アプリにリアルな印象を与えられます。
図 1 では、Depth は無効になっています。オブジェクトがプールテーブルに配置される
図 2 では、デバイスがプールテーブル内を移動すると、シーン内のオブジェクトに関係なく、オブジェクトがデバイスをフォローするように見えます。
図 3 では、Depth が有効になっています。
図 4 では、デバイスがシーン内を移動すると、オブジェクトがプールテーブルによって遮られて表示されます。
次のステップ
- ARCore SDK で他のサンプル プロジェクトをビルドして実行してみてください。
- 拡張現実の Codelab で、作成および実行可能なその他のサンプルアプリをご確認ください。
- アプリで ARCore を有効にする方法をご覧ください。
- ランタイムに関する考慮事項を確認する。
- 設計ガイドラインを確認する。