じゅころぐAR/VR

AR/VRメインのブログ。時々ドローン。

WebARonARCoreを未サポートのZenFone ARに入れてみた

ARCoreのプレビュー版が公開されたことにより、WebAR(three.ar.js)でARCoreとARKitのクロスプラットフォーム開発ができるようになりました。
ARCoreの機能に目新しさはありませんが、ライトなARをWebで作るという使い方は面白そうです。

Getting Started with AR on the Web  |  ARCore  |  Google Developers

早速試してみようと思いましたが、ARCoreができる端末が手元にないので、本記事執筆時点で未サポートのZenFone ARに無理矢理インストールしてみました。
結果として、ちゃんと動作はしませんでしたが、ARCoreとWebARの概要はなんとなくわかりました。

必要なアプリ

WebAR(three.ar.js)で作成したアプリケーションをWebARonARCoreというブラウザアプリで閲覧します。WebARonARCoreは、ChromeがWebARをサポートするまでの検証用ブラウザだと思えばいいかと。

WebARonARCoreを動作させるには、ARCoreというアプリが必要になります。
似たような名前なので、非常に紛らわしいです。

ARCoreのインストール

まず、ARCoreをインストールする必要があります。 GithubのReadmeにInstall the ARCore APKという項目があり、APKがダウンロードできます。

このAPKをインストールしようとすると、Tango Coreをアップデートするメッセージが出ました。

f:id:jyuko49:20170901012842j:plain

アップデート自体は問題なく行えますが、アップデートを行うとTangoの機能を使う処理でアプリ落ちが発生し、Tangoアプリが動作しなくなります。

ARCoreはTango Coreをより広いデバイスで使えるよう作り直し、Tangoの名称をARに置き換えたものなのかもしれません。
とはいえ、Tangoとしては機能がデグレするので、プレビュー版でZenFone ARがサポート外になっている一因なのだと思います。
少なくとも、ARCoreとTangoは全くの別物という感じではなさそう。

ちなみに、Phab2 ProにこのAPKをインストールしようとすると、インストーラが起動せずに落ちます。おそらく、Android7.0以上で作られているためだと思います。
ARCoreがAndroid7.0以上となった場合、Phab2 Proの扱いが気になるところです。

WebARonARCoreのインストール

同じくGithubのReadmeからInstall the WebARonARCore APKに記載のリンクでAPKをダウンロード、端末にインストールします。

こちらに関しては、ChromiumARのアップデートでした。 f:id:jyuko49:20170901012950j:plain

ChromiumARはTangoの機能をWeb(JavaScript)で使えるようにしたブラウザアプリで、TangoとARCoreの違いを除き、WebARonARCoreと似たような作りです。

github.com

getar.jp

ベースがTangoCoreからARCoreになったのに合わせて、こちらも機能は落ちている訳ですが、ARKitでも同一のWebARアプリケーションが動くようになっています。

examplesの実行

ARCoreサイトの Getting Started with AR on the WebページにView the examplesとしてリンクが貼られているので、このURLをWebARonARCoreに入力します。

動くには動きましたが、モーショントラッキングが安定せず、平面推定も動作しませんでした。
IMUの性能や配置など、ハードウェア周りで何か差異があるんですかね?
まあ、まともに検証できる状態ではないです。

Tango Coreの復元

諦めて、Tangoが使える状態に戻しました。

  • Tango Core(ARCoreでアップデートされたもの)をアンインストール
  • Google PlayからTango Coreをインストール
  • 端末再起動

上記の手順でTangoが動くことは確認済みです。 当然ながら、Tango Coreを戻すとWebARonARCoreは起動できなくなります。

f:id:jyuko49:20170901021957j:plain

まとめ

WebARの機能はあまり試せませんでしたが、ARCoreの位置付けがなんとなく見えてきました。

  • Tango Core → ARCoreとなっている
  • ChromiumAR → WebARCoreとなっており、ARCore版のWebAR対応ブラウザになっている
  • WebARonARKitも実装されており、同一のWebARアプリケーションがiOSでも動く
  • ARCoreはAndroid7.0以上ならインストールできそう
  • 対応デバイスでないとモーショントラッキングが安定しない(使いものにならない)

各アプリがTangoからのアップデートになっているということは、Tangoから移行されるものと考えた方がよさそうです。
スペック的には十分と思われるZenFone ARが非対応なのは、

  • 現時点で移行するとTangoから大きくデグレする
  • ラッキングでハードウェア間の差異を吸収できていない

の2点が課題になっていると思われます。

という訳でPixelやGalaxy S8を購入しないとWebARonARCoreは試せない状態ですが、クロスプラットフォームのメリットを活かし、iPhoneにiOS11 Betaを入れて、WebARonARKitでWebARを試す予定です。