Miyaura Takahiro(@takabrz1)
◦大阪駆動開発メンバー
◦普段はシステムエンジニア
◦ HoloLensは趣味です。
◦ Microsoft MVP for Windows Development(2018-2019)
◦ https://qiita.com/miyauraでMixed Realityのこと書いてます。
猫じゃん
猫じゃん
HoloLensはアプリケーション起動時の位置を(0,0,0)、向いていた方向を正面向きとして設定
起動位置が全く同じでなければ位置ずれが起きる。
複数の動くオブジェクトがあるシチュエーションではさらに難易度が上がる
位置あって
なくね?
あっちに
みえる。
(0,0,0
) (0,0,0)
起動位置
が違うと
ワールドアンカーという機能を用いることで空間のある地点を基準にすることができる
目印を設置することで各オブジェクトの位置を相対位置で表現できる。
基準点を実際の現実空間の決まった位置に設置できればOK
アンカー
現実空間の決まっ
た位置に固定
猫じゃん
猫じゃん
アンカーから
の相対位置
空間マッピングによりトレースさ
れた空間領域の中で特徴的な
部分(変化量が多い?)を基準
点にする。
各HoloLensで空間マッピングを行い特徴点を探す。
同じポイントがあればアンカーを共有
なんですが!
お、ここっぽいな
ふぁっ!?
ここ!!
一致しないことが多い
空間マッピングがぶれにくい空間環境では使える。
例:それようにチューニングされた会議室
現実世界に置かれたマーカー
マーカー上に出した
オブジェクトは現実空間上で
も同じ位置になる!
そんな技術ありますよね?
「ARマーカー」
Vuforiaのサイトで発行したライセンス
キーを入力する
HoloLensの場合以下の設定をする
Eyewear Type:Optical See-Through
See Through Config:HoloLens
マーカーをインポートするとDatabasesに
追加されるのでチェックを入れる
HoloLens同士の同期は
ネットワーク系はUNET等いろいろお好みで。
public GameObject HologramCollectionObject;
public void OnInputClicked(InputClickedEventData eventData)
{
Vector3 markerRotation = transform.rotation.eulerAngles;
// 基準点の座標系としてマーカーの認識地点に設定する
HologramCollectionObject.transform.position = transform.position;
HologramCollectionObject.transform.Rotate(new Vector3(0f, markerRotation.y, 0f));
// 基準点を有効化する
HologramCollectionObject.SetActive(true);
var vuforiaBehaviour = Camera.GetComponent<VuforiaBehaviour>();
vuforiaBehaviour.enabled = false;
WorldAnchorManager.Instance.AttachAnchor(HologramCollectionObject, "HologramCollection");
}
アンカーの設置が完了したら
Vuforiaの機能を無効化する
大阪駆動開発
関西を中心に、IT系のおもしろそうなことを楽しんでやるコミュニティ

ARマーカーを利用したHoloLens同士の位置合わせ