Aracılığıyla paylaş


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:

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:

Özelliklerin vurgulandığı HoloLens proje ayarları

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:

Android izinleri isteme işlevi

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

Android izinlerini ayarlama

Son olarak, Proje Ayarları > Android'i açın ve Gelişmiş APK Paketleme altındaki Ek İzinler alanında aynı izinleri ayarlayın:

Android APK proje ayarları

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:

iOS konum hizmetlerini başlatma

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:

  1. Eklentileri Düzenle'ye > tıklayıp Azure Spatial Anchors ve WMR için Azure Spatial Anchors araması.
  2. Uygulamanızdaki Azure Spatial Anchors şema kitaplıklarına erişim izni vermek için her iki eklentide de Etkin onay kutusunu seçin.

Unreal düzenleyicisinde spatial Anchors eklentilerinin ekran görüntüsü

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:

  1. Eklentileri Düzenle'ye > tıklayın ve ARCore için Azure Spatial Anchors ve Azure Spatial Anchors araması.
  2. Uygulamanızdaki Azure Spatial Anchors şema kitaplıklarına erişim izni vermek için her iki eklentide de Etkin onay kutusunu seçin.

Unreal düzenleyicisinde Android eklentileri

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:

  1. Eklentileri Düzenle'ye > tıklayıp ArKit için Azure Spatial Anchors ve Azure Spatial Anchors araması.
  2. Uygulamanızdaki Azure Spatial Anchors şema kitaplıklarına erişim izni vermek için her iki eklentide de Etkin onay kutusunu seçin.

Unreal düzenleyicisinde iOS ASA eklentileri

  1. Mobil Konum Hizmetleri ve Mobil Konum Hizmetleri- IOS Uygulaması için de arama
  2. iOS cihazının geçerli konuma erişmesine izin vermek için her iki eklentide de Etkin onay kutusunu seçin.

Unreal düzenleyicisinde iOS Konum eklentileri

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:

  1. Uygulamada kullandığınız Pawn'ın şemasını açın.
  2. 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.

Azure spatial anchors hesap kimliği, anahtarı ve değişken türü vurgulanmış ayrıntılar panelinin ekran görüntüsü

Şu şekilde bir Azure Spatial Anchors oturumu başlatın:

  1. 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.
  2. 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.

Azure spatial anchors oturumu özel olayını başlatma şeması

  1. 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.

Hesap kimliği ve anahtar eklenmiş yapılandırma oturumu işlevinin şeması

  1. Uygulamanın Azure Spatial Anchors oluşturup bulmasına olanak tanıyarak Azure Spatial Anchors oturumunu başlatın.

Azure spatial anchors oturum başlatma işlevinin şeması

Hizmeti artık kullanmadığınızda Olay Grafiği şemanızdaki Azure Spatial Anchors kaynaklarını temizlemek iyi bir uygulamadır:

  1. 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 oturumlarını durdurma özel olayı ve oturum durdurma işlevinin şeması

  1. Azure Spatial Anchors eklentisi tarafından bilinen Azure Spatial Anchors oturum kaynaklarını temizlemek için Azure Spatial Anchors oturumunu yok edin.

Oturum işlevini yok etme şeması

Olay Grafiği şemanız aşağıdaki ekran görüntüsüne benzer olmalıdır:

Azure uzamsal yer işareti oturum kurulumunun eksiksiz olay grafiğinin şeması

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:

  1. 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.

Azure uzamsal yer işareti özel olayı oluşturma şeması

  1. 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.

Sahne bileşeniyle azure uzamsal yer işareti özel olayı oluşturma şeması

Bir Gerçekleşmemiş Sahne Bileşeni için Azure Spatial Anchor oluşturmak ve kaydetmek için:

  1. 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.

Bileşen sabitleme işlevine bağlı sahne bileşeninin şeması

  1. 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.

ARPin döndüren bulut yer işareti işlevi oluşturmak için bağlı pin bileşeni işlevinin şeması

  1. 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.

Kullanım süresi değeri 604.800 saniye olarak ayarlanmış süre sonu işlevine bağlı bulut bağlantısı şeması

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.

Sabitleyicinin set değişkenine kaydedilmeye hazır şeması

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.

Çağrılan save cloud anchor işlevinin şeması

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.

Kaydedilmemiş tutturucuların set değişkeninde yeniden kaydedildiği şema

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.

Çağrılan bulut bağlantısı işlevini silme şeması

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:

Bulut tutturucularını işlemeye yönelik eksiksiz olay grafiğinin şeması

Önceden var olan tutturucuları bulma

Mevcut tutturucular, Azure Spatial Anchors hizmetiyle eşler tarafından oluşturulabilir:

  1. 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.

Azure bulut tanımlayıcı işlevini alma ile depolama azure uzamsal bağlayıcı tanımlayıcısı özel olayının şeması

  1. 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.

Bileşenler ve ayrıntı panellerinin açık olduğu şema düzenleyicisinde açılan BP_Pawn ekran görüntüsü

  1. 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.

ASAAnchor bulunan temsilciye bağlı yürütmeyi başlatma olayının şeması

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:

  1. Azure Spatial Anchors oturumlarının çalışıp çalışmadığını denetleyin.
  2. AzureSpatialAnchorsLocateCriteria oluşturun.
    • Kullanıcıdan uzaklık veya başka bir yer işaretinden uzaklık gibi çeşitli konum parametreleri belirtebilirsiniz.
  3. AzureSpatialAnchorsLocateCritieria içinde aradığınız Azure Spatial Anchor tanımlayıcısını bildirin.
  4. İzleyici Oluştur'u arayın.

Azure spatial anchors izleyicisi özel olayını başlatma şeması

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.

Çağrılan stop watcher işlevinin şeması

Son Olay Grafiği şemanız artık aşağıdaki ekran görüntüsüne benzemelidir:

Bağlayıcı temsilcisi olaylarını işlemek için eksiksiz olay grafiğinin şeması

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.

Sonraki adımlar