Android Studio/ARCoreで3Dモデルを読込み&表示

前エントリで、Xcode + Swift + ARKitで3Dモデルを読み込んで表示する方法を調査しました。

ARKitアプリを作る際には、Unityで作成すればfbxやobjといった3Dモデルを簡単にインポートして表示できます。 しかし、Xcod...

今回はAndroid編として、Android Studio + ARCore + Sceneformでfbxを読み込んで表示してみます。

サンプルシーンの実行

まず、ARCoreが使えるようにセットアップします。
公式ドキュメントを参考にします。

Learn how to run sample applications written in Kotlin and Java to explore features of the ARCore SDK.

記載されている通り、下記の2つをダウンロードして展開しておきます。

https://github.com/google-ar/arcore-android-sdk/releases
ARCore SDK for Android

https://github.com/google-ar/sceneform-android-sdk/releases
Sceneform Samples

展開したSceneform Samples内の「hellosceneform」をAndroid Studioで開いて実機で実行します。
実行にはAndroid N / SDK Platform version 7.0 (API level 24) 以降が必要です。

実行すると、平面認識をしたあとに、タップした場所にドロイド君が出現します。

Sceneformプラグインのインストール

PreferenceのPluginsで、「Google Sceneform Tools(Beta)」 をインストールします。
Browse Repositoriesで検索すると出てきます。

モデルのインポート

Sceneformは、OBJ,FBX,glTFファイルをインポートすることができます。(ARKitはColladaだけでした)

下記手順に従ってFBXファイルをインポートしてみます。

まず、サンプルプロジェクトのappの直下にある「sampledata」に、FBXをドラッグ&ドロップして追加します。sampledataディレクトリの内容はapkには書き出されません。

追加したFBXを右クリックすると「Import Sceneform Asset」というメニューが出てくるので、それを選択します。

するとダイアログが出てくるので、いったんはそのままFinishを押します。

するとbuild.gradleに内容が書き込まれ、コンパイルが始まります。

build.gradleには下記の内容が書き込まれていると思います。

sceneform.asset('sampledata/hoge.fbx',
        'default',
        'sampledata/hoge.sfa',
        'src/main/assets/hoge')

最後の行の「src/main/assets/hoge」がAndroidで読み込むことができるsfaファイルの書き出し先になるのですが、ここを「src/main/res/raw/hoge」 に変更します。

sceneform.asset('sampledata/hoge.fbx',
        'default',
        'sampledata/hoge.sfa',
        'src/main/res/raw/hoge')

するとGradleの変更が検知されて「Sync Now」のリンクが出てくると思いますので、クリックすると再度コンパイルが走り、src/main/res/raw以下(サンプルファイルだとandy.sfbがすでにある場所)に、新たにsfbファイルが生成されます。

呼び出すモデルの変更

こうなればR.raw.hogeで呼び出すことができるので、HelloSceneformActivity.javaを開き、65行目あたりの「R.raw.andy」となっている部分を「R.row.hoge」に置き換えれば、アンディ君の代わりにインポートしたモデルを表示できます

スポンサーリンク

シェアする

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

フォローする

スポンサーリンク