Vuforia
で簡単に任意のマーカーを認識させることが出来るらしい。
かっこいい! しかも、カメラから見て、どれくらいの位置にあるのか?とかどれくらい傾いてるのか?という情報がとれるらしい。凄い。
開発で試すのには無料っぽいので登録してみましょう。あと、Unity 2017.2 あたりからは Unity に組み込まれてるので使うのも簡単!
HoloLens でも使える!すごい!
さて、実際に認識まではさくっといけるのですがオブジェクトがカメラから見てどの位置にいるのかを取得するときのポイントなどを…
ImageTarget
のサイズは現実世界にあるマーカーのサイズと一致させる必要があります。これがあってないと、位置があわなかったりします。ARCamera
のWorld Center Mode
をCAMERA
にします。これで世界の中心はカメラ!ということでImageTarget
のtransform
の各種プロパティから情報が引っこ抜けます。- 認識されてる間だけ情報を抜きたかったら、
ITrackableEventHandler
を以下のような要領で実装したクラスをImageTarget
にアタッチしてあげればいい
public class TrackingHandler : MonoBehaviour, ITrackableEventHandler { private GameObject target; private TrackableBehaviour trackableBehaviour; private TrackableBehaviour.Status currentStatus; private void Start() { this.trackableBehaviour = this.GetComponent<TrackableBehaviour>(); this.trackableBehaviour.RegisterTrackableEventHandler(this); // これ大事 } private void Update() { if (this.currentStatus == TrackableBehaviour.Status.TRACKED) { // ここでトラッキングできてるときの処理とか } } public void OnTrackableStateChanged(TrackableBehaviour.Status previousStatus, TrackableBehaviour.Status newStatus) { this.currentStatus = newStatus; } }
なかなか、面白いね!Vuforia!!