ARCoreのプレビュー版が公開されたことにより、WebAR(three.ar.js)でARCoreとARKitのクロスプラットフォーム開発ができるようになりました。
ARCoreの機能に目新しさはありませんが、ライトなARをWebで作るという使い方は面白そうです。
Augmented reality for the web | Web | 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をアップデートするメッセージが出ました。
アップデート自体は問題なく行えますが、アップデートを行うと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のアップデートでした。
ChromiumARはTangoの機能をWeb(JavaScript)で使えるようにしたブラウザアプリで、TangoとARCoreの違いを除き、WebARonARCoreと似たような作りです。
http://getar.jp/19010/getar.jp
ベースがTangoCoreからARCoreになったのに合わせて、こちらも機能は落ちている訳ですが、ARKitでも同一のWebARアプリケーションが動くようになっています。
examplesの実行
ARCoreサイトの Getting Started with AR on the WebページにView the examplesとしてリンクが貼られているので、このURLをWebARonARCoreに入力します。
ARCoreのWebARが試したくてZenFone ARに無理矢理入れてみた。
— jyuko (@jyuko49) 2017年8月31日
動かないことはないけど、トラッキングが全然安定しない。 pic.twitter.com/qaviT1kKmC
動くには動きましたが、モーショントラッキングが安定せず、平面推定も動作しませんでした。
IMUの性能や配置など、ハードウェア周りで何か差異があるんですかね?
まあ、まともに検証できる状態ではないです。
Tango Coreの復元
諦めて、Tangoが使える状態に戻しました。
- Tango Core(ARCoreでアップデートされたもの)をアンインストール
- Google PlayからTango Coreをインストール
- 端末再起動
上記の手順でTangoが動くことは確認済みです。 当然ながら、Tango Coreを戻すとWebARonARCoreは起動できなくなります。
まとめ
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を試す予定です。