先日、自社プロジェクトとしてGoogleのAR技術Tangoを使ったARアプリを開発したのですが、今回はその際にポイントとなる部分やつまずいた点をまとめて紹介したいと思います。

PERS ARについて


「PERS AR」ではGoogleのAR技術Tangoを活用して、深度認識を行い空間を把握、従来のARとは違いマーカーによるオブジェクト描画・設置では無く、平面となる場所を判定して、テーブルやイス・ベットをはじめとした、様々な3Dオブジェクトを自由に配置することが可能です。
空間に対してオブジェクトが設置されているため、端末を実際に近づけたり回り込んだりすることで、オブジェクトの大きさや角度が変わり、あたかも現実世界に設置したような体験を提供します。
 

外部3Dモデルの取得制限


好きな3Dモデルを置けるようにするため、外部からデータを取得して3Dオブジェクトを生成する必要があるのですが、Unityにはスクリプトからのオブジェクト生成時に変換できる形式とポリゴン数に上限値があり、以下のようなエラーが出るので、その点は留意する必要があります。

Too many field references: 131000; max is 65536.
 
 
ちなみにUnityエディタ上から直接入れる場合は、エディタ側で自動的に分割してくれるので、そのような制限は無くなります。

感知エリアの範囲


2017年4月現在、Tango機能を使える国内の端末がLenovoの「PHAB2Pro」ですが、赤外線を深度感知に使用しているため正確に計測できるのが大体4~5mでそれ以上は精度が落ちてきてしまうため、
アプリ内での使用エリアをある程度固定してユーザーに伝えてあげる必要があるかと思います。
 
 

端末のカメラフォルダへのスクリーンショットの保存


これはTangoの機能とは直接関係ないですが、Android端末へのスクリーンショット保存は端末によって保存場所が異なり、撮影後にフォルダを正確にスキャンしないと再起動しない限りカメラフォルダに表示されなくなってしまいますので注意が必要です。

おわりに


以上、開発のポイントとなる部分とつまずきやすいポイントの紹介でした。
もしTango連携での開発をする際は是非参考にしてみてください。