Android で ARCore の使用を開始するには、ARCore SDK に含まれる hello_ar_kotlin または hello_ar_java サンプルアプリを実行します。これらのサンプルアプリでは、OpenGL を使用します。これは、2D と 3D のベクター グラフィックをレンダリングするためのプログラミング インターフェースです。検出された平面がアプリに表示され、その平面をタップして 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 で実行できます。アプリを実行する前に、エミュレータで AR 用の Google Play 開発者サービスを更新する必要があります。詳しくは、Android Emulator で AR アプリを実行する をご覧ください。
サンプルの実行
Android デバイスが開発マシンに接続されていて、Android Studio で Run をクリックします。
Android Studio でプロジェクトをデバッグ可能な APK にビルドし、APK をインストールしてから、デバイス上でアプリを実行します。詳細については、アプリをビルドして実行するをご覧ください。
Google Play 開発者サービス(AR)がインストールされていないか古い場合は、インストールまたは更新を求められることがあります。CONTINUE を選択して Google Play ストアからインストールするか、Google Play 開発者サービス(AR)を更新するの説明に沿って手動で更新してください。
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 では、[インスタント プレースメント] が有効になっている場合、新しいオブジェクトがシーンに配置されています。 正確なポーズがまだ補正されていないことを示すため、色ではなくグレースケールで表示されます。
図 4 では、サーフェスのジオメトリ(トラッキング可能なグリッド線で記述)が検出されると、新しいオブジェクトが色付けされ、ポーズが正確になります。
Depth(深さ)を使用する
Depth が有効になっている場合、ARCore はシーン内のオブジェクトのジオメトリと位置を考慮し、シーン内の他のオブジェクトを基準にしてシーン内に配置されたオブジェクトの位置を計算します。これにより、配置されたオブジェクトをシーン内のオブジェクトで覆い隠し、アプリに現実感を持たせることができます。
図 1 では、深度が無効になっています。オブジェクトはプールテーブルの下に配置されます。
図 2 では、デバイスがビリヤード台の周りを移動すると、シーン内のオブジェクトに関係なく、オブジェクトはデバイスに従うように見えます。
図 3 では、奥行きを有効にしています。
図 4 では、デバイスがシーンを移動すると、オブジェクトがプール テーブルによって覆い隠されたように表示されます。
次のステップ
- ARCore SDK で他のサンプル プロジェクトをビルドして実行してみます。
- ビルドして実行できるその他のサンプルアプリについては、拡張現実の Codelab をご覧ください。
- アプリで ARCore を有効にする方法を学習する。
- ランタイムに関する考慮事項を確認してください。
- 設計ガイドラインを確認する。