じゅころぐAR

ARのブログ

Tango SDK for UnityをIkariotikosにしたらAR Screenが映らなくなったので直した

Tango SDKをIkariotikosにアップデートしたら楽しいことになりました。
ほとんど備忘録ですが、同じところでハマる人もいそうなのでまとめておきます。

Ikariotikosって?という方へ

Tango SDKは約1ヶ月おきにアップデートされています。
バージョン番号には、Tangoにちなんで踊りの名前が付いていて、イニシャルがアルファベット順にA,B,C...と上がっていきます。 2017年6月にリリースされたバージョンが、Ikariotikosです。その前は、Hopak。

ちなみに、踊りの方のIkariotikosはこんな感じだそうです。

youtu.be

アップデートしてみた

リリースノートを見ると、1行しか書かれていません。

Build new augmented reality experiences that seamlessly blend the digital and physical worlds

まあ、大した変更はなさそうだな。
ということで、アップデート!

・・・した結果。

f:id:jyuko49:20170701211412j:plain

あかん!Σ(・∀・;)

直す

症状からして、前フレームでレンダリングした結果をクリアできてないんだろうなー!と推測。
AR ScreenTango Cameraが怪しいと当たりを付けます。

容疑者のTango Cameraをクリックして、Inspectorをチェック。

f:id:jyuko49:20170701213108p:plain

Tango AR Screenは、Point Cloud Occlusion(点群による遮蔽処理)の設定しかありません。スクリプトの中身にまで手を入れたくないので、一旦スルーします。

続いて、Cameraの方を見てみると、Clear Flagsとかいう超怪しいプロパティを発見!
元々はDepth onlyになっていたところ、Solid Colorに変更したら直りました。

f:id:jyuko49:20170701215902j:plain

ちなみに、Clear FlagsSkyboxにするとこうなります。

f:id:jyuko49:20170701215014j:plain

デフォルトの背景がSkyboxで、Dynamic MeshができたところにだけAR Screenが映る感じですね。
ExperimentalMeshBuilderWithColorみたいな感じですが、MeshにColorが付いている訳ではなく、カメラ映像が映ります。
これはこれでどこにMeshができているかわかりやすいから、使い途あるかな?

別のバグ?

色々調べている途中で、AR Camera Post Processを有効にすると、AR Screenが映らなくなりました。

ちゃんと調べてないですが、一回アプリ中断して、再度接続すると映ったりするので謎です。
とりあえずは、無効のままでいいかな。

おわりに

今思えば、Hopakまでは毎月の上旬にはリリースされていたのに、Ikariotikosは月末ギリギリでリリースされたので、今までとサイクルが違ってたんですよね。結果として、過去のアップデートよりも影響が大きかったので、正直、大丈夫かGoogleと思いました。

あと、気付いてる人は気付いてると思いますが、サイト上にThe latest version of the Unity SDK is Ikariotikos (Version 1.54, June 2017).と書かれていて、実際ダウンロードするとファイル名がTangoSDK_Hopak_Unity5.unitypackageという状態が1週間くらい続いていました。

マジで大丈夫なのか!?Google!

リリースノートもUnity SDKではなく、C SDKの方を見ると、APIがかなり増えています。

Build new augmented reality experiences that seamlessly blend the digital and physical worlds

Bounding boxes APIとか面白そうだし、File IO for images and point cloudsには、以前自前でやったPLYファイルへのエクスポートがAPIとして用意されています。

qiita.com

まあ、Unity SDKから使えるかどうか、わかんないんだけどね。

その辺、Googleはもっとサポートすべきだと思うけど、開発のスピードに対してドキュメントやExamplesが追い付いていない気がする。現状、開発者コミュニティ頼みになっている感は否めないかな。