AR ペイント実験
「スプラトゥーンみたいに、現実に色を塗れないか?」——気まぐれで始めた、AR で現実を塗る実験の記録。
気まぐれで、「スプラトゥーンみたいに色を塗るシステムを、現実で実現できないか?」を実験してみました。
考え方はこうです。現実の平面を検出して仮想的なプレーンを生成し、そこへ弾を撃ち込んで、現実に色を塗るような表現ができないか——という試作です。
結論から言うと、ダメでした。ただ、不可能ではないと思っています。
今回の仕組みでは、シェーダーでオブジェクトのメッシュを UV テクスチャとして扱い、プログラム側で、弾が当たった位置からテクスチャ上の座標を計算します。
そして、その正確な位置にマスクを描き込み、オブジェクトの上に色が塗られたように見せる——という流れです。
最初は、普通の Plane や Cube のようなシンプルなオブジェクトでは、問題なく実現できました。
しかし、実機で AR Plane に対して試すと、うまく表示されません。そこで「AR Plane は普通の 3D Plane ではなく、もっと細かく不規則な形状のメッシュなのでは?」と考えました。
次に、3D 背景の構築にも使われる ProBuilder のメッシュで、同じ仕組みが使えるかを試しました。当時のシステムはまだ ProBuilder を対象にしていなかったので、その対応も追加で実装しました。
結果、ProBuilder では成功。「これなら AR もいけるのでは?」と期待して試したのですが——。
今回は、AR Plane への描画までは届きませんでした。とはいえ、ProBuilder のメッシュでは成立したことから、AR 側のメッシュの扱い方さえ整えれば、不可能ではないと感じています。気まぐれの実験でしたが、メッシュと UV、そして AR が現実をどう「面」として捉えているかを、手を動かして理解できた検証でした。