memomem

備忘録・メモ置き場

Hololens2 World Anchor

World Anchor

いろいろやり方あるようだが、Hololens2でMRTKつかうのであれば下記の方法が良い。

MRTKの WorldAnchorManagerを使う。

torikasyu.com

using Microsoft.MixedReality.Toolkit.Experimental.Utilities;
using UnityEngine;
using UnityEngine.XR.WSA.Persistence;

public class WorldAnchorTest : MonoBehaviour
{
    [SerializeField] WorldAnchorManager worldAnchorManager = null;
    [SerializeField] GameObject target = null;
    [SerializeField] string anchorName = "testAnchor";

    void Start()
    {
        WorldAnchorStore.GetAsync(AnchorStoreReady);
    }

    void AnchorStoreReady(WorldAnchorStore store)
    {
        foreach (string id in store.GetAllIds())
        {
            if (id == anchorName)
            {
                worldAnchorManager.AttachAnchor(target, anchorName);
            }
        }
    }

    void SetAnchor()
    {
        worldAnchorManager.AttachAnchor(target, anchorName);
    }

    void DeleteAnchor()
    {
        worldAnchorManager.RemoveAnchor(target);
    }

    void RemoveAllAnchors()
    {
        worldAnchorManager.RemoveAllAnchors();
    }
}

空間マップとWi-Fiについて

下記ページがわかりやすい。

docs.microsoft.com

Wi-Fi が有効になっている限り、HoloLens はマップ データを近くの Wi-Fi アクセス ポイントと関連付けます。 ネットワークが接続されていても、近くで検出されても、動作に違いはありません。 Wi-Fi が無効になっている場合でも、HoloLens は空間を検索します。 ただし、HoloLens は空間データベース内のより多くのマップ データを検索する必要があり、ホログラムを見つけるためにより多くの時間が必要になる場合があります。 Wi-Fi 情報がない場合、HoloLens は、有効なスキャンを、デバイスに保存されているすべてのホログラム アンカーおよびマップ セクションと比較して、マップの正しい分割を見つける必要があります。

Wi-Fiに接続しない場合は、Hololensで [設定]、[システム]、[ホログラム] でマップ データを削除する のが良さそう。

Tracking Space について

Stationary, RoomScale, World

docs.microsoft.com

その他

docs.unity3d.com

docs.microsoft.com

akihiro-document.azurewebsites.net

docs.microsoft.com

www.tattichan.work