位置情報を使用したARアプリ
Unity,C#,Android(7.0)で位置情報ARを作成しています。ARはUnity2017のVuforia内のARCameraを使っています。
マーカー機能は使用していません。デバイストラッキングだけしています。
アプリの内容。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
1.アプリ起動
2.UnityのLocationServiceで緯度、経度を所得(標高は今後実装予定です)
3.ターゲット(Unity内におくオブジェクト)の位置情報(GoogleMapでの中心座標)と開始位置の緯度経度の差を
計算し、得られた値(例 x:50 y:0 z:-24)xは経度(東へ50m)zは緯度(南へ24m)をtransform.positionに代入する。オブジェクトのスケールはGoogleMapで図った長さを代入している。
このアプリでは北を緯度の正方向、東を経度の正方向としています。またアプリ開始時は必ず北の方角へ端末のカメラを向けて起動する。
4.端末の位置情報を取り続けて、開始地点からの移動量を3.と同じ方法で計算し続けARCameraのtransform.positionへ代入する。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
最終目標は、現実世界の移動量や建物をUnityに反映させたいのですが、やはりそれは不可能でしょうか?
例えば東京タワーから50mの位置でアプリを起動したら、東京タワーに東京タワーのオブジェクトが重なるような感じです。人からこのような機能を実装してほしいといわれていますが、Unity内の距離感やオブジェクトの大きさを現実世界に完全に対応させるのは無理なのではないかと思っています。
もう少し単純化すると、5m先に1m×1m×1mの箱を置いてそれにカメラを向けてこのアプリを起動したら同じ位置に1m1m1mのCubeを出すといった感じです。近づけば大きく見える。離れれば小さく見える。
Unity内の1m×1m×1mを現実世界の1m×1m×1mに変換しようとする方法はありますか?それができれば距離も大きさもX倍したら
現実世界に対応付けられそうです。
Unity内でscale(x,y,z) = (50,50,50)のFBXモデルをいれても現実世界の50mには見えませんよね。それと一緒です。なので上述3.でオブジェクトを東へ50m、南へ24mにポジションしても建物はすぐそばにあるように見えます。
質問をかいていてやはり不可能だろうとうすうす思ってはいますが、何か良い方法があれば教えてください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。