平面上の端末の位置を取得するテスト
[Android] 平面上の端末の位置を検出して表示制御するテスト02 - YouTube
平面上の端末の位置を取得するテストをしてみた。
方法はいくつか思いついたけど、今回は天井にマーカーを貼り、
端末のフロントカメラでマーカーを検出、その位置や角度で自分の
位置、回転を調べるという方法。
マーカー検出は普段VuforiaでARアプリ作ってるのでVuforiaで。
開発環境はUnity。
マーカー検出した時のARCameraのlocalPosition、localEulerAnglesを取得。
それを使って計算する。
端末が回転しない場合は簡単。
最初に端末を机の左上と右下の両方の位置に置いてARCameraの位置を保存。
それを使って端末を動かした時のARCameraの相対位置を計算すればOK。
端末が回転すると複雑に。。
回転するとXY座標の方向も回転する。
カメラが端末の真ん中に無いことによるズレ。
端末ごとに全然違う。
XY座標の方向が回転しちゃうのは、localEulerAnglesで端末の回転は結構正確に取れるので、その分回転させてあげてみた。
カメラが真ん中に無いので同じ場所で回転した時のズレが生じる。
これはとりあえず力技で。。
そして力技でやってるので、端末ごとに設定が違ってしまう。。
決まった端末だけならいいんだけども。
このへん計算でなんとかいけないものか。。
これで何をやったらおもしろいかが思いつかないので、そこが思いついたら何か作ろうと思います。