Tangoで家の壁や床のメッシュをとって、そこにinkpainterでインクを垂らすというのをやりたいと思います。
できませんでした。でもTango+inkpainterはできました。
追記:こんな天才的な発想をするのは私だけだと思っていましたが、いろんな人がやってました。やり方はそれぞれ少し違うけど、成功してる。
Meshを取得
TangoのサンプルのMeshbuilder~physicsを使います。
Tangoで床のメッシュを取得して、 Meshを透明にして、背景画像を写すのはこの記事でやっています。
ただinkpainterはこの記事で使った透明シェーダーではインクが表示されなかったので、Standardシェーダーをtransportして半透明にしました。完全な透明も表示されない。
これで実行すると部屋が薄い膜のメッシュで覆われます。
InkPainter
inkpainterというアセットを使います。
このアセットのサンプルの中のsample10-HighMapFluidを使います。
使うというか、必要そうなとこをプレファブ化して、新しく作ったシーンに持ってきました。
先ほどのMeshbuilder~physicsも必要そうなとこも同様にして新しいシーンに追加、がっしゃんこします。
Dynamic meshにInkpainterのスクリプトをつけて
Tango CameraにもInkpainterのスクリプトをつけます。
ちなみにスクリプト(コンポーネント)は右の歯車マークからCopy Componentでコピーして、対象のオブジェクトの適当な歯車からpaste as new componentでペーストできます!便利。
BallManagerもクリックでボールが出るスクリプトなのでこれを外して、実行したらできるはず・・・
できませんでした。
あらかじめ置いて置いた球にはぬれるけど、ダイナミックで生成された壁のメッシュには塗れませんでした。
なんでだろ〜そいうものなのかな?
まあDynamic Meshオブジェクトを外して適当なオブジェクトを置いたらAR InkPaintrはできるのでタイトルに詐欺はない。
おまけ:Google Driveでインストールボタンを押せない
私はビルドしたapkファイルをandroidに入れるのにGoogle driveを使っています。
ただインストールするときにインストールボタンが押せないことがたまにあります。
「提供元不明のアプリ」のインストールボタンが押せない場合の対処 | TeraDas-テラダス
調べたら画面オーバーレイアプリのせいだそうです。私の場合は画面録画アプリとか。これをオフにしたらいいらしい。
毎回再起動してた。