Unreal'da Azure Spatial Anchors
Azure Spatial Anchors, artırılmış gerçeklik cihazlarının fiziksel dünyadaki yer işaretlerini bulmasını, paylaşmasını ve kalıcı hale getirebilmesini sağlayan bir Microsoft Karma Gerçeklik hizmetidir. Aşağıdaki belgelerde Azure Spatial Anchors hizmetini Bir Unreal projesiyle tümleştirmeye yönelik yönergeler sağlanmaktadır. Daha fazla bilgi arıyorsanız Azure Spatial Anchors hizmetine göz atın.
Not
iOS veya Android'i hedefliyorsanız Unreal Engine 4.26 artık ARKit ve ARCore desteğine yönelik eklentilere sahiptir.
Önemli
Yerel yer işaretleri cihazda, Azure Spatial Anchors ise bulutta depolanır. Yer işaretlerinizi yerel olarak bir cihazda depolamak istiyorsanız, bu işlemde size yol gösteren yerel bir Spatial Anchors belgemiz var. Çakışma olmadan aynı projede yerel ve Azure yer işaretleri olabileceğini unutmayın.
Önkoşullar
Bu kılavuzu tamamlamak için aşağıdakilere sahip olduğunuzdan emin olun:
- Unreal Market veya GitHub'dan edinilebilen Microsoft OpenXR eklentisi yüklüdür.
- Unreal sürüm 4.25 veya üzeri yüklendi
- Unreal'da HoloLens 2 proje kurulumu
- Azure Spatial Anchors'a genel bakış
- C++ ve Unreal hakkında temel bilgi
Azure Spatial Anchors hesap bilgilerini alma
Projenizde Azure Spatial Anchors'ı kullanmadan önce şunları yapmanız gerekir:
-
Uzamsal yer işareti kaynağı oluşturun ve aşağıda listelenen hesap alanlarını kopyalayın. Bu değerler, uygulamanızın hesabıyla kullanıcıların kimliğini doğrulamak için kullanılır:
- Hesap Kimliği
- Hesap Anahtarı
Daha fazla bilgi için Azure Spatial Anchors kimlik doğrulama belgelerine göz atın.
Not
Unreal 4.25 sürümündeki Azure Spatial Anchors Azure AD kimlik doğrulama belirteçlerini desteklemez, ancak bu işlev için destek sonraki bir sürümde sunulacaktır.
Özellikleri ve İzinleri Etkinleştir
HoloLens
Proje Ayarları > HoloLens'i açın ve İnternet İstemcisi özelliğini etkinleştirin:
Android
Android uygulamasının izin iletişim kutusu görüntülemesi ve konum özelliklerine izin vermesi için, Azure Spatial Anchor oturumunu başlatmaya çalışmadan önce Android İzinleri İste işlevi çağrılmalıdır:
Giriş izinleri için bir yerel değişken oluşturun ve şununla doldurun:
- android.permission.ACCESS_WIFI_STATE
- android.permission.CHANGE_WIFI_STATE
- android.permission.INTERNET
- android.permission.BLUETOOTH
- android.permission.BLUETOOTH_ADMIN
- android.permission.ACCESS_COARSE_LOCATION
- android.permission.ACCESS_FINE_LOCATION
- android.permission.CAMERA
Son olarak, Proje Ayarları > Android'i açın ve Gelişmiş APK Paketleme altındaki Ek İzinler alanında aynı izinleri ayarlayın:
iOS
iOS için uygulama derlemek için Mac'te Unreal kullanmanız gerekir. Apple geliştirici hesabıyla paketlemek için Proje Ayarları > iOS'u açın ve aşağı kaydırarak Derleme bölümüne gelin. Otomatik İmzalama onay kutusunu etkinleştirin ve IOS Ekip Kimliğini Ekip Kimliğinizle doldurun.
developer.apple.com oturum açıp Üyelik sekmesine gidip Ekip Kimliği'ni arayarak Ekip Kimliğinizi bulabilirsiniz.
İzin iletişim kutusu görüntülemek ve iOS cihazının konum bilgilerine erişmesine izin vermek için, Azure Spatial Anchor oturumunu başlatmaya çalışmadan önce Init Location Services ve Start Location Services işlevleri çağrılmalıdır:
Azure Spatial Anchors eklentileri ekleme
İpucu
Unreal için Azure Spatial Anchors'ı kullanırken bir Azure Spatial Anchors eklentisi ve platforma özgü bir eklenti (WMR, ARKit, ARCore, OpenXR) vardır. Aynı anda yalnızca bir platforma özgü eklenti etkinleştirilmelidir.
HoloLens
Unreal düzenleyicisinde Azure Spatial Anchors eklentilerini etkinleştirmek için:
- Eklentileri Düzenle'ye > tıklayıp Azure Spatial Anchors ve WMR için Azure Spatial Anchors araması.
- Uygulamanızdaki Azure Spatial Anchors şema kitaplıklarına erişim izni vermek için her iki eklentide de Etkin onay kutusunu seçin.
Bu işlem tamamlandıktan sonra eklenti değişikliklerinin etkili olması için Unreal Editor'ı yeniden başlatın. Proje artık Azure Spatial Anchors'ı kullanmaya hazırdır.
Android
Unreal düzenleyicisinde Azure Spatial Anchors eklentilerini etkinleştirmek için:
- Eklentileri Düzenle'ye > tıklayın ve ARCore için Azure Spatial Anchors ve Azure Spatial Anchors araması.
- Uygulamanızdaki Azure Spatial Anchors şema kitaplıklarına erişim izni vermek için her iki eklentide de Etkin onay kutusunu seçin.
Bu işlem tamamlandıktan sonra eklenti değişikliklerinin etkili olması için Unreal Editor'ı yeniden başlatın. Proje artık Azure Spatial Anchors'ı kullanmaya hazırdır.
iOS
Unreal düzenleyicisinde Azure Spatial Anchors eklentilerini etkinleştirmek için:
- Eklentileri Düzenle'ye > tıklayıp ArKit için Azure Spatial Anchors ve Azure Spatial Anchors araması.
- Uygulamanızdaki Azure Spatial Anchors şema kitaplıklarına erişim izni vermek için her iki eklentide de Etkin onay kutusunu seçin.
- Mobil Konum Hizmetleri ve Mobil Konum Hizmetleri- IOS Uygulaması için de arama
- iOS cihazının geçerli konuma erişmesine izin vermek için her iki eklentide de Etkin onay kutusunu seçin.
Bu işlem tamamlandıktan sonra eklenti değişikliklerinin etkili olması için Unreal Editor'ı yeniden başlatın. Proje artık Azure Spatial Anchors'ı kullanmaya hazırdır.
Spatial Anchors oturumu başlatma
Azure Spatial Anchors oturumu, istemci uygulamalarının Azure Spatial Anchors hizmetiyle iletişim kurmasını sağlar. Azure Spatial Anchors oluşturmak, kalıcı hale getirmek ve paylaşmak için bir Azure Spatial Anchors oturumu oluşturup başlatmanız gerekir:
- Uygulamada kullandığınız Pawn'ın şemasını açın.
- Hesap Kimliği ve Hesap Anahtarı için iki dize değişkeni ekleyin, ardından oturumun kimliğini doğrulamak için Azure Spatial Anchors hesabınızdan ilgili değerleri atayın.
Şu şekilde bir Azure Spatial Anchors oturumu başlatın:
- Azure Spatial Anchors oturumu bir AR Oturumu çalıştırılana kadar başlatılamadığından HoloLens uygulamasında ar oturumunun çalıştığını denetleme. Tek bir kurulumunuz yoksa bir AR Oturumu varlığı oluşturun.
-
Azure Spatial Anchors Oturumu Başlat özel olayını ekleyin ve aşağıdaki ekran görüntüsünde gösterildiği gibi yapılandırın.
- Oturum oluşturma, oturumu varsayılan olarak başlatmaz ve bu da oturumu Azure Spatial Anchors hizmetiyle kimlik doğrulaması için yapılandırmanıza olanak tanır.
- Hesap Kimliği, Hesap Anahtarı, HesapEtki Alanı ve Kurs Yerelleştirme Ayarlarını sağlamak için Azure Spatial Anchors oturumunu yapılandırın. Azure uzamsal yer işareti hizmetinin yer işaretleri bulmak için algılayıcı verilerini kullanabilmesi için kurs yerelleştirme ayarlarında tüm onay kutularının etkinleştirilmesi gerekir.
- Uygulamanın Azure Spatial Anchors oluşturup bulmasına olanak tanıyarak Azure Spatial Anchors oturumunu başlatın.
Hizmeti artık kullanmadığınızda Olay Grafiği şemanızdaki Azure Spatial Anchors kaynaklarını temizlemek iyi bir uygulamadır:
- Azure Spatial Anchors oturumunu durdurun. Oturum artık çalışmayacak, ancak ilişkili kaynakları Azure Spatial Anchors eklentisinde mevcut olmaya devam edecektir.
- Azure Spatial Anchors eklentisi tarafından bilinen Azure Spatial Anchors oturum kaynaklarını temizlemek için Azure Spatial Anchors oturumunu yok edin.
Olay Grafiği şemanız aşağıdaki ekran görüntüsüne benzer olmalıdır:
Yer işareti oluşturma
Azure Spatial Anchor, artırılmış gerçeklik uygulama alanında artırılmış gerçeklik içeriğini fiziksel konumlara kilitleyen fiziksel bir dünya pozunu temsil eder. Azure Spatial Anchors farklı kullanıcılar arasında da paylaşılabilir. Bu paylaşım, farklı cihazlarda çekilen artırılmış gerçeklik içeriğinin fiziksel dünyada aynı konuma yerleştirilmesini sağlar.
Yeni bir Azure Spatial Anchor oluşturmak için:
- Azure Spatial Anchors oturumlarının çalışıp çalışmadığını denetleyin. Hiçbir Azure Spatial Anchors oturumu çalıştırıldığında uygulama Azure Spatial Anchor oluşturamaz veya kalıcı hale gelmez.
- Konumu kalıcı olması gereken Bir Gerçekleşmez Sahne Bileşeni oluşturun veya alın.
- Aşağıdaki görüntüde, Bir değişken olarak Yer Işareti Gereken Sahne Bileşeni bileşeni kullanılmıştır. AR Pin'i ve Azure Spatial Anchor için bir uygulama dünyası dönüşümü oluşturmak için Gerçek Olmayan Bir Sahne Bileşeni gereklidir.
Bir Gerçekleşmemiş Sahne Bileşeni için Azure Spatial Anchor oluşturmak ve kaydetmek için:
- Gerçek Olmayan Sahne Bileşeni için Pin Bileşeni'ni çağırın ve AR Pini için kullanılan Dünya Dönüşümü olarak Sahne Bileşeninin Dünya Dönüşümü'nü belirtin.
- Unreal, Azure Spatial Anchor oluşturmak için kullanılan AR Pin'lerini kullanarak uygulama alanında AR noktalarını izler. Unreal'da AR Pini, HoloLens'teki SpatialAnchor'a benzer.
- Yeni oluşturulan AR Pin'ini kullanarak Bulut Bağlantısı Oluştur'u çağırın.
- Bulut Bağlantısı Oluşturma yerel olarak bir Azure Spatial Anchor oluşturur ancak Azure Spatial Anchor hizmetinde oluşturmaz. Azure Spatial Anchor için son kullanma tarihi gibi parametreler, hizmetle Azure Spatial Anchor oluşturulmadan önce ayarlanabilir.
- Azure Spatial Anchor süre sonunu ayarlayın. Bu işlevin Lifetime parametresi, geliştiricinin bağlantının hizmet tarafından ne kadar süreyle tutulacağını saniyeler içinde belirtmesini sağlar.
- Örneğin, bir hafta süren süre sonu 60 saniye x 60 dakika x 24 saat x yedi gün = 604.800 saniyelik bir değer alabilir.
Yer işareti parametrelerini ayarladıktan sonra, tutturucuyu kaydetmeye hazır olarak bildirin. Aşağıdaki örnekte, yeni oluşturulan Azure Spatial Anchor, kaydedilmesi gereken bir Azure Spatial Anchors kümesine eklenir. Bu küme, Pawn şeması için bir değişken olarak bildirilir.
Yer İşareti Kaydetme
Azure Spatial Anchor'ı parametrelerinizle yapılandırdıktan sonra Bulut Tutturucuyu Kaydet'i çağırın. Bulut Tutturucusunu Kaydet, tutturucuyu Azure Spatial Anchors hizmetine bildirir. Bulut Tutturucusunu Kaydet çağrısı başarılı olduğunda Azure Spatial Anchor, Azure Spatial Anchor hizmetinin diğer kullanıcıları tarafından kullanılabilir.
Not
Save Cloud Anchor zaman uyumsuz bir işlevdir ve yalnızca EventTick gibi bir oyun iş parçacığı olayında çağrılabilir. Bulut Tutturucuyu Kaydet, özel şema İşlevleri'nde kullanılabilir bir şema işlevi olarak görünmeyebilir. Ancak, Pawn Olay Grafiği şema düzenleyicisinde kullanılabilir olmalıdır.
Aşağıdaki örnekte, Azure Spatial Anchor bir giriş olayı geri çağırması sırasında bir kümede depolanır. Daha sonra yer işareti EventTick'e kaydedilir. Azure Spatial Anchors oturumunuzun oluşturduğu uzamsal veri miktarına bağlı olarak Azure Spatial Anchor'ın kaydedilmesi birden çok girişimde bulunabilir. Bu nedenle, kaydetme çağrısının başarılı olup olmadığını denetlemek iyi bir fikirdir.
Yer işareti kaydedilmezse, hala kaydedilmesi gereken yer işareti kümesine okutmuş olur. Gelecekteki EventTicks başarıyla depolanıncaya kadar tutturucuyu kaydetmeye çalışır.
Yer işareti kaydedildikten sonra AR Pin'lerinin dönüşümü, uygulamanıza içerik yerleştirmek için bir başvuru dönüşümü işlevi görür. Diğer kullanıcılar bu tutturucuyu algılayabilir ve fiziksel dünyadaki farklı cihazlar için AR içeriğini hizalayabilir.
Tutturucu silme
Bulut Tutturucusunu Sil'i çağırarak Yer İşaretlerini Azure Spatial Anchor hizmetinden silebilirsiniz.
Not
Delete Cloud Anchor gizli bir işlevdir ve yalnızca EventTick gibi bir oyun iş parçacığı olayında çağrılabilir. Delete Cloud Anchor, özel şema İşlevleri'nde kullanılabilir bir şema işlevi olarak görünmeyebilir. Ancak Pawn Olay Grafiği şema düzenleyicisinde kullanılabilir olmalıdır.
Aşağıdaki örnekte yer işareti, özel bir giriş olayında silinmek üzere işaretlenmiştir. Silme işlemi daha sonra EventTick üzerinde deneniyor. Yer işareti silme işlemi başarısız olursa, Azure Spatial Anchor'ı silinmek üzere bayrak eklenmiş yer işaretleri kümesine ekleyin ve daha sonra EventTicks'te yeniden deneyin.
Olay Grafiği şemanız artık aşağıdaki ekran görüntüsüne benzer olmalıdır:
Önceden var olan tutturucuları bulma
Mevcut tutturucular, Azure Spatial Anchors hizmetiyle eşler tarafından oluşturulabilir:
- Algılamak istediğiniz yer işareti için bir Azure Spatial Anchor tanımlayıcısı alın.
- Önceki bir Azure Spatial Anchors oturumunda aynı cihaz tarafından oluşturulan bir yer işareti için yer işareti tanımlayıcısı elde edilebilir. Ayrıca Azure Spatial Anchors hizmetiyle etkileşim kuran eş cihazlar tarafından da oluşturulabilir ve paylaşılabilir.
- Pawn şemanıza bir AzureSpatialAnchorsEvent bileşeni ekleyin.
- Bu bileşen, Azure Spatial Anchors bulunduğunda çağrılan olaylar gibi çeşitli Azure Spatial Anchors olaylarına abone olmanıza olanak tanır.
-
AzureSpatialAnchorsEvent bileşeni için ASAAnchor Bulunan Temsilciye abone olun.
- Temsilci, Azure Spatial Anchors hesabıyla ilişkili yeni yer işaretleri bulunduğunda uygulamaya bilgi verir.
- Olay geri çağırmasıyla, Azure Spatial Anchors oturumu kullanılarak eşler tarafından oluşturulan Azure Spatial Anchors'ta varsayılan olarak AR Pin'leri oluşturulmaz. Algılanan Azure Spatial Anchor için bir AR Pin'i oluşturmak için geliştiriciler Azure Bulut Uzamsal Yer Işareti Çevresinde ARPin Oluşturma çağrısı yapabilir.
Azure Spatial Anchor hizmetini kullanarak eşler tarafından oluşturulan Azure Spatial Anchors'ı bulmak için uygulamanın bir Azure Spatial Anchors İzleyicisi oluşturması gerekir:
- Azure Spatial Anchors oturumlarının çalışıp çalışmadığını denetleyin.
-
AzureSpatialAnchorsLocateCriteria oluşturun.
- Kullanıcıdan uzaklık veya başka bir yer işaretinden uzaklık gibi çeşitli konum parametreleri belirtebilirsiniz.
- AzureSpatialAnchorsLocateCritieria içinde aradığınız Azure Spatial Anchor tanımlayıcısını bildirin.
- İzleyici Oluştur'u arayın.
Uygulama artık Azure Spatial Anchors hizmeti tarafından bilinen Azure Spatial Anchors'ı aramaya başlar, yani kullanıcılar eşleri tarafından oluşturulan Azure Spatial Anchors'ı bulabilir.
Azure Spatial Anchor'ı konumlandırdıktan sonra, Azure Spatial Anchors watcher'ı durdurmak ve izleyici kaynaklarını temizlemek için Stop Watcher'ı çağırın.
Son Olay Grafiği şemanız artık aşağıdaki ekran görüntüsüne benzemelidir:
Sonraki Geliştirme Denetim Noktası
Ortaya koyduğumuz Gerçekleşmemiş geliştirme yolculuğunu takip ediyorsanız MRTK temel yapı taşları keşfetmenin tam ortasındasınız demektir. Buradan sonraki yapı taşına devam edebilirsiniz:
İsterseniz Karma Gerçeklik platform özelliklerine ve API'lere atlayabiliriz:
İstediğiniz zaman Gerçekleşmemiş geliştirme denetim noktalarına geri dönebilirsiniz.