UnityでARアプリをつくっています。
GoogleMapから表示したい建物の中心座標を使っています。
アプリを起動すると、端末開始地点の緯度経度標高とオブジェクトとの位置情報との差を計算して、x軸を経度の変化量、z軸を緯度の変化量として(x,y,z)=(経度、高度、緯度)として配置しています。
アプリ起動時に端末が北0度を正確にさしていた場合は、オブジェクトの見え方は大体GoogleMap通りになります。Z軸の正方向を北0度、x軸の正方向を東90度としてアプリを作っています。
しかし、端末が北東50度をさしている状態(北0度以外)でアプリを起動するとUnity内ではz軸が北東50度を北0度としてSceneが実行されてしまうので、オブジェクトの位置がずれてしまいます。
Unity内での座標は変わりませんが、アプリを起動した方角が違うためScene全体が傾いているわけです。
私の実施した案としては、CompassでTrueHeadingを所得しその度数だけオブジェクトを回転行列を用いて座標を移動させるようにしました。
しかし、見え方は実際に建物がある場所と見比べて大きくずれてしまいます。あらかじめオブジェクトを配置しておけば上手くいくと思いますが、このアプリでは開始地点は定めていないため起動時に開始地点からの緯度経度の変化量を計算して、それに応じて配置を変更します。
Start()関数で配置して以降はオブジェクトの配置は変えません。
要するに、現実世界の建物のFBXをUnity内でも表示したい。東京タワーへきたら東京タワーが、スカイツリーならスカイツリーです。
自分の現在地から西へ300mのところに東京タワーがあったならば、Unity内のARCameraがそちらをむいたとき300Unit(m)先に東京タワーのオブジェクトが見えるようにしたいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/12/20 12:36
2017/12/20 12:52 編集
退会済みユーザー
2017/12/20 14:17
2017/12/20 14:41 編集
退会済みユーザー
2017/12/22 03:18
2017/12/22 04:34
退会済みユーザー
2017/12/22 06:32
2017/12/22 06:34
退会済みユーザー
2017/12/22 07:03
2017/12/22 08:16
退会済みユーザー
2017/12/23 19:51
2017/12/24 04:48
退会済みユーザー
2017/12/24 15:53