Aracılığıyla paylaş


WLT+ASA örneklerini ayarlama ve çalıştırma

Özet

Unity için World Locking Tools (WLT), yerel izleme temelinde kararlı bir koordinat sistemi sağlar. Azure Spatial Anchors (ASA) ile birleştirildiğinde, bu kararlı koordinat sistemi oturumlar arasında kalıcı hale getirilebilir ve cihazlar arasında paylaşılabilir.

Bu video , örneği çalıştırırken neler bekleyebileceğiniz konusunda size bir fikir verebilir.

Bu örnekte ne var?

Bu örnek için varlıklar ve betikler sağlar:

  1. Unity'nin genel koordinat sistemini fiziksel ortama göre yapılandırın.
  2. Azure Spatial Anchors kullanarak bu koordinat sistemi yapılandırmasını Azure'da yayımlayın.
  3. Sonraki oturumlarda veya diğer cihazlarda koordinat sistemini geri yüklemek için Azure'dan verileri alın.

Bu belgenin yapısı

  1. Kurulum - Örnek uygulamayı yükleme ve dağıtma.
  2. Önerilen adımlarla birlikte uygulamayı çalıştırmaya ilişkin notlar.
  3. Destekleyici betiklerin mimari açıklaması.

Kurulum ve test edilmiş sürümler

Bu örnek aşağıdakiler kullanılarak geliştirilmiş ve test edilmiştir:

  • Unity 2020.3.8f1
  • Azure Spatial Anchors (ASA) v2.9.0 - v2.10.2.
  • Karma Gerçeklik Toolkit v2.7.2
  • Unity v1.4.1 için Dünya Kilitleme Araçları
  • FrozenWorldEngine v1.1.1

WLT'yi ve bu örneği WLT releases .unitypackage'dan veya Karma Gerçeklik Özellik Aracı'ndan yükleyebilirsiniz. FeatureTool'dan yükleniyorsa, yalnızca WLT Örnekleri bağımlılığını (otomatik) yüklemekle kalmaz, aynı zamanda Örnekleri projenize aktarmanız da gerekir. Ayrıntılar için bkz . MR Özellik Aracı'ndan WLT Yükleme.

Donmuş Dünya Altyapısı DLL'sini projeye yükleme

İlk adım, Donmuş Dünya Altyapısı DLL'sini ( v1.1.1) yüklemektir. Unity için NuGet veya komut satırı nuget.exe kullanma yönergeleri.

ASA yükleme

Uzamsal yer işareti kaynakları oluşturma

Bu Hızlı Başlangıç Kılavuzu bir Azure hesabı ve gerekli uzamsal yer işaretleri kaynakları oluşturma adımlarını izler. Örneği çalıştırmak için Hesap Kimliği, Hesap Etki Alanı ve Hesap Anahtarı gerekir. Bunları sahnedeki SpacePinBinder nesnesindeki "Spatial Anchor Manager" betiğindeki uygun alanlara ekleyebilirsiniz. Diğer kimlik doğrulama yöntemleri desteklenir, ancak başlarken en kolay yöntem Hesap Kimliği/Etki Alanı/Anahtar'dır.

Kimlik bilgileri alanları

SDK’yı yükleyin

Ardından, bu yönergelerde açıklanan yöntemlerden birini kullanarak Azure Spatial Anchors v2.9.0'ı yükleyin. MR Özellik Aracı yöntemini kullandım.

Kaba Yeniden Konumlandırma için ek kurulum

Coarse Relocation kullanılırken, Android veya HoloLens2'ye dağıtılırken ek kurulum gerekir.

Kaba Yeniden Konumlandırma nedir?

Coarse Relocation, mevcut yakın çevrenizde önceden oluşturulmuş bulut tutturucularını aramanızı sağlayan bir teknolojidir. Kurs Yeniden Konumlandırma ile ilgili ayrıntılar, Azure Spatial Anchors belgelerinin Kurs Yeniden Konumlandırma bölümünde bulunabilir.

Bu örnek, bulut tutturucularını Coarse Relocation veya açıkça bulut yer işareti kimliği (GUID) ile bulmayı gösterir. Kaba Yeniden Konumlandırma etkinleştirildiyse, aşağıdaki ek kurulum adımları gereklidir. Kaba Yeniden Konumlandırma ile ilgilenmiyorsanız, SpacePinBinder nesnesinin "Publisher ASA" bileşeninde devre dışı bırakabilirsiniz.

Kaba yeniden konumlandırmayı devre dışı bırakma

HoloLens2 için ek kurulum adımları

HoloLens2'de Kaba Yeniden Konumlandırma'yı etkinleştirmek için ARM/WorldLockingTools/Package.appxmanifest içine oluşturulan Package.appxmanifest dosyasına bir izin eklemeniz gerekir (derleme hedefi olarak ARM klasörünü seçtiğiniz varsayılır). Bu proje size aitse, bu yoldaki WorldLockingTools için uygun adı değiştirin. Özellikler bölümüne aşağıdaki satırı ekleyin:

    <DeviceCapability Name="wiFiControl"/>

Daha fazla bilgi için github'da bu gönderiye bakın.

Bu adımı kaçırırsanız, Yayımcı "Hazır olma" hiçbir zaman "Hazır" durumuna ulaşmaz, kare hızınız son derece düşük olur ve UnityPlayer.log (oluşturulduysa) formun özel durumlarıyla dolu olur:

InvalidOperationException: CoarseReloc: WiFi erişimi reddedildi. İstek CV'si: . Yanıt CV'si: .

Çözüm temizden her derlendiğinde Package.appxmanifest'inize bu özelliği eklemeniz gerekir. Ancak Unity'den sonraki derlemeler özelliği korur.

Project Ayarlar/XR Eklenti Yönetimi'nde, Windows Karma Gerçeklik'nin UWP sekmesinin altında seçili Eklenti Sağlayıcısı olduğundan emin olun (OpenXR, ASA ile WLT için de desteklenir).

XAmpleApp/CustomProfiles'taki MRTK profili XAmple XRSDK ToolkitConfigurationProfile HoloLens2 üzerinde çalışmak için uygundur.

Android için ek kurulum adımları

Android'de Kaba Yeniden Konumlandırma'yı etkinleştirmek için bu yönergeleri izleyerek Assets/Plugins/Android/mainTemplate.gradle dosyasını yapılandırın.

Ayrıca, Varlıklar/Eklentiler/Android/AndroidManifest.xml,Android'de Wi-Fi erişimine izin vermek için birçok iznin etkinleştirilmesi gerekir. Yine, bu projenin öğelerini kendi projenize dahil ediyorsanız, Kaba Yeniden Konumlandırma'yı kullanmak için bu adımları da izlemeniz gerekir. Android'de Wi-Fi erişimi için gerekli izinler hakkında daha fazla bilgi bu gönderide ve bağlantı olarak gönderildiğinde yer alır.

Değiştirilen mainTemplate.gradle ve AndroidManifest.xml örnekleri, WLT ve ASA'yı birlikte kullanmak için özel olarak yapılandırılan WLT-ASA Örnek Projesine dahildir. Bunlar, player yayımlama Ayarlar açıklandığı gibi "Özel Ana Bildirim" ve "Özel Ana Gradle Şablonu" etkinleştirildikten sonra doğrudan projenize kopyalanabilir.

Derleme ve Çalıştır'a bastığınızda, derlemeniz MRTK_Standard malzemede bir Gölgelendirici hatasıyla başarısız olursa Derleme ve Çalıştır'ı yeniden deneyin. benim için ikinci denemede işe yarar. MRTK sorunlarında bununla ilgili bazı bilgiler var, ancak bildiğim kadarıyla tüm bilgiler yanlış.

Project Ayarlar/XR Eklenti Yönetimi'nde ARCore'un Android sekmesinin altında seçili Eklenti Sağlayıcısı olduğundan emin olun.

MRTK profili XAmple AR ToolkitConfigurationProfile mobil cihazlarda çalışmaya uygundur. Android veya iOS'a geçtikten sonra betiği Mixed Reality/Utilities/UnityAR/Update Scripting Defines çalıştırmayı unutmayın.

Düğmeler ne yapar?

Hazır

  • Geçiş Pinleri - SpacePin'ler etkin olmadığında, işleme tutamaçları gizlenebilir.
  • Yayımla - Geçerli yapılandırmayı kaydederek daha sonraki oturumlarda veya diğer cihazlarda alınmasını sağlayın.
  • Oracle'ı yükleme - Uzamsal yapılandırmayı geri yüklemek için önceden depolanmış bağlamaları kullanın.
  • Oracle'ı temizle - Başta Azure uzamsal yer işaretleri olmak üzere tüm yedekleme kaynaklarını silin ve bağlama kahini temizleyin.
  • Arama - Yakın çevrede tüm Azure uzamsal tutturucularını bulun ve uzamsal yapılandırmayı onlardan geri yükleyin.
  • Temizleme - Yakın çevrede bulunan tüm Azure uzamsal sabit noktalarını bulun ve temizleyin.
  • Pinleri Sıfırla - Boşluk Pini düzenlemelerini geri alın. Azure uzamsal bağlantı noktalarını temizlemez.

Mobil cihazlardaki menü formda biraz farklıdır, ancak düğme konumları ve anlamları aynıdır.

İzlenecek yol - HoloLens2'den yayımlama

SpacePins kullanarak sahneyi yerleştirme

Örneği başlattığınızda, koordinat sistemi başlangıçta baş izleyici pozu temelinde konumlanır ve yönlendirilir. Yani, oldukça rastgele. Yapılacak ilk şey koordinat sistemini istenen başvuru durumuna ayarlamaktır.

PinTestSofa sahnesindeki kanepe 2,18 metre uzunluğunda, 0,78 m yüksekliğinde ve 1,0 m derinliğindedir. Kanepenin üst arkasının her ucundaki SpacePin tutamaçları, bu nedenle, birbirinden 2,18 m ve yerden 0,78 m uzaktır. Geçici işaretleyicilerin 2,18 m ayrı, uygun bir yükseklikte ölçülmesi ve yerleştirilmesini tavsiye ederim. Alternatif olarak, sahneyi fiziksel alanınıza sığacak şekilde ayarlayabilirsiniz.

Uygulamayı oluşturup bir HoloLens2 cihazına dağıttıktan sonra, kayan menüdeki durum Hazır (ipucu - hazır olduğunda durum çizgisi kırmızıdan beyaza doğru gider) yazana kadar bekleyin.

Hazır değil

SpacePin tutamaçlarının her birini (beyaz tel çerçeve küreleri) birer birer alın ve başvuru işaretleyicilerinize göre konuma sürükleyin.

İşaretçilerin her birini konuma bıraktıktan sonra, sahne SpacePin'e göre kanepenin arka kısmını geri yüklemek için kaymış olmalıdır. Sahnedeki nesneler taşınmıyor, koordinat alanının tamamı, SpacePin'lerin özgün koordinatlarının onları sürüklediğiniz fiziksel dünyanın konumunda olacak şekilde ayarlanır.

Koordinat alanını yayımlama

İstediğiniz alanı oluşturduktan sonra, daha sonraki oturumlarda ve diğer cihazlarda kullanılabilir hale getirmek için bu alanı yayımlayabilirsiniz.

Kaba Yeniden Konumlandırma kullanılıyorsa, bu noktada daha önce oluşturulmuş bulut tutturucularını temizlemek iyi bir fikirdir. "Aramadan Temizle" düğmesine basın ve bunun tamamlanmasını bekleyin.

Şimdi kayan menüde "Yayımla" düğmesine basın ve tamamlanmasını bekleyin.

Hazır

İzlenecek yol - Kaba Yeniden Konumlandırma kullanarak HoloLens2'den kullanma

Uygulamayı farklı bir HoloLens2 cihazında veya önceki oturumu kapattıktan sonra aynı cihazda yeniden başlatın. Durum Hazır olarak göründüğünde "Aramadan Yükle" düğmesine basın. İşlem tamamlandığında Unity genel koordinat sistemi önceki (Yayımlandı) oturumda olduğu gibi fiziksel ortamınıza yeniden hizalanmış olur.

İzlenecek yol - IBindingOracle (SpacePinBinderFile) kullanarak HoloLens2'den kullanma

Bağlamalar bir cihazda yayımlandığında veya aramadan geri yüklendiğinde bir IBindingOracle içine kaydedilir. Bu örnek, bağlamaları bir metin dosyasına yazan en temel Oracle'ı içerir.

Uygulamayı yeni bir oturuma yeniden başlatın. Bu, Yayımlama işleminin gerçekleştirildiği HoloLens2 ile aynıysa, yayımlamadan bir bağlama dosyası kalır. Bu farklı bir HoloLens2 ise ancak önceki bir oturumda arama başarıyla gerçekleştirildiyse, bağlama dosyası bundan bırakılır.

Daha önce kaydedilen bağlamaları yüklemek ve bu koordinat alanını geri yüklemek için "Dosyadan Yükle" düğmesine basın.

İzlenecek yol - Kaba Yeniden Konumlandırma kullanarak Android'den kullanma

UX, Android'de biraz farklı görünür, ancak tam olarak aynı şekilde çalışır. Temel fark, ASA devam etmeye hazır olmadan önce başlangıçta ortamın HoloLens2'ye göre biraz daha taranmış olmasıdır.

Sistem Hazır olarak göründüğünde, daha önce yayımlanan bağlamaları aramak ve koordinat sistemini geri yüklemek için mavi düğmeye (sağdan 3. tuş) basabilirsiniz.

İzlenecek yol - IBindingOracle (SpacePinBinderFile) kullanarak Android'den kullanma

Aramadan Yüklemeyi başarıyla tamamladıktan sonra, cihazda bir bağlama dosyası bırakılmıştır. Sonraki oturumlarda, koordinat sistemini geri yüklemek için Dosyadan Yükle'ye basabilirsiniz.

Alternatif olarak, bağlamalar metin dosyasını yayımlama cihazından kullanan cihaza kopyalayabilirsiniz. Bağlamalar metin dosyasının varsayılan konumu:

HoloLens2: Kullanıcı Klasörleri/LocalAppData/WLT-ASA/LocalState/BinderFile.txt

Android: Dahili paylaşılan depolama/Android/data/com. WorldLockingTools.WLTASA/files/BinderFile.txt

Ayrıca bkz.