じゅころぐAR/VR

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

ARCoreについて調べる

ARCoreの対応デバイスを持っていないため、公式サイトやTwitter等で収集した情報の寄せ集め。
個人的なメモに近いです。

ARCoreとは?

Googleが発表した新しいARプラットフォーム。
2017/8/29にプレビュー版としてリリースされた。

developers.google.com

対応デバイス

発表時点では以下の機種のみ。

Galaxy S8+は対応していないらしいので注意。
共通点として、Daydream ReadyのスペックでTangoに非対応(競合しない)。 メーカーはGoogle(製造はHTC)とサムスン

機能

AppleのARKitとほぼ同等と思われる。
Tangoとの差異として、デプスセンサを活用した高精度の点群データ(PointCloud)を扱えず、オクルージョンやメッシュ構成などはできないと思われる。

モーショントラッキング

端末を移動させてもコンテンツが留まって見える。 Tangoと比べてトラッキングエラーになりにくく、復帰が早いという噂があり要検証。

平面推定

任意地点(画面中心やタップ地点)の平面を検知して、3Dオブジェクトを接地した状態で配置する。

以下、体験者のTwitter等で調べた範囲の情報。

  • 床しか検知できない(壁や天井はNG)
  • 平面の検知はARKitに比べて速い
  • 複数の平面を同時に検知はできない(ARKitはできるらしい)
  • 平面の広さは取れない?(ARKitはできるらしい)

環境光推定

周囲の明るさに応じて、3Dオブジェクトのライティングを自動的に調整してくれる。

開発環境

  • Android Studio
  • Unity
    • Unity2017.2b9が必要
    • Androidバージョンは7.0が最小要件になりそう
  • Unreal
  • Web
    • three.jsで開発可(three.ar.js)

Tangoはどうなる?

GoogleのARプラットフォームとして、Tango(Project Tango)が提供されてきたが、Tangoのdeveloperサイト(英語)に以下のNoteが記載されており、Tango SDKはARCoreに統合される可能性が極めて高い。

Note
The Tango SDK only supports the Asus ZenFone AR and Lenovo Phab 2 Pro phones. Google is continuing AR development with ARCore, a new platform designed for building augmented reality apps for a broad range of devices without requiring specialized hardware.

意訳:Tango SDKはZenfone ARとPhab2 Proにしか対応していません。特別なハードウェアなしでより広いデバイスで使える新しいプラットフォームARCoreで、ARの開発を続けていきます。(=Tangoはもう続けない?)

developers.google.com

予兆として、Tango SDKのアップデートが6月下旬から行われておらず、7月、8月は更新がなかった。Phab2が発売された2016年12月から2017年5月までは毎月アップデートが行われていたので、明らかに頻度が落ちている。
ちなみに、AppleがARKitを発表したのは6月なので、内部的に方針転換が行われていたとしたらタイミング的にはほぼ合致する。

所感

ARCoreはARKitと同等の機能で、Tangoよりも明らかに体験の質が落ちる。
このタイミングで発表して、TangoのサイトにNoteを書いているということは、今後ARCoreでやっていきますという意思表示なのだろう。たぶん。

とはいえ、Tangoから移植しようにも全然機能が足りないし、より幅広いデバイスで使えるようにと言っておきながら、対応デバイスはDaydreamよりも少ない。プレビュー版で正式版がいつになるかも明言されていない。
今の状態でTangoやってたAR開発者がすぐに流れるとは思えないし、自分もそのつもりだけど、今はまだ静観しておいた方がいいのかも。

どうせやるならARCoreじゃなく、来月か再来月には正式リリースされるであろうARKitの方から始めて、ARCoreに水平展開した方がいいんじゃないかな。
日本国内は特にiOSのシェアが高いので、機能が大差ないならARCoreからやるメリットは思いつかない。

個人的には、ARCore単体よりもWebAR(three.ar.js)でのクロスプラットフォーム開発の方が期待感はあります。
幅広いデバイスに提供しようとするとライトなARにならざるを得ないので、three.jsやA-Frameでも開発できると思いますし、ブラウザのWebVR/WebARサポートが広がれば自分のスマホですぐに体験でき、スマートフォンARのメリットをより活かせそうです。

github.com

github.com