Azure Spatial Anchors in Unreal

Az Azure Spatial Anchors egy Microsoft Mixed Reality szolgáltatás, amely lehetővé teszi a kiterjesztett valóság eszközei számára a horgonypontok felderítését, megosztását és megőrzését a fizikai világban. Az alábbi dokumentáció útmutatást nyújt az Azure Spatial Anchors szolgáltatás Unreal-projektbe való integrálásához. Ha további információra van szüksége, tekintse meg az Azure Spatial Anchors szolgáltatást.

Megjegyzés

Az Unreal Engine 4.26 mostantól beépülő modulokkal rendelkezik az ARKit és az ARCore támogatásához, ha iOS-t vagy Androidot céloz meg.

Fontos

A helyi horgonyok tárolása az eszközön történik, míg az Azure Spatial Anchors a felhőben van tárolva. Ha helyileg szeretné tárolni a horgonyokat egy eszközön, van egy Helyi térbeli horgonyok dokumentumunk, amely végigvezeti a folyamaton. Vegye figyelembe, hogy helyi és Azure-horgonyok is lehetnek ugyanabban a projektben ütközés nélkül.

Előfeltételek

Az útmutató elvégzéséhez győződjön meg arról, hogy rendelkezik a következővel:

Az Azure Spatial Anchors-fiók adatainak lekérése

Az Azure Spatial Anchors projektben való használata előtt a következőket kell elvégeznie:

További információt az Azure Spatial Anchors hitelesítési dokumentációjában talál.

Megjegyzés

Az Azure Spatial Anchors az Unreal 4.25-ben nem támogatja Azure AD hitelesítési jogkivonatokat, de ennek a funkciónak a támogatása egy későbbi kiadásban érkezik.

Képességek és engedélyek engedélyezése

HoloLens

Nyissa meg a Projektbeállítások > HoloLenst , és engedélyezze az internetügyfél-képességet :

A HoloLens projektbeállításai kiemelt képességekkel

Android

Ahhoz, hogy egy Android-alkalmazás megjelenítsen egy engedélypárbeszédet és engedélyezze a helymeghatározási képességeket, meg kell hívni az Android-engedélyek kérése függvényt, mielőtt megkísérli elindítani az Azure Spatial Anchor-munkamenetet:

Android-engedélyek kérése függvény

Hozzon létre egy helyi változót a bemeneti engedélyekhez, és töltse fel a következőkkel:

  • 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-engedélyek beállítása

Végül nyissa meg az Android projektbeállításokat>, és állítsa be ugyanazokat az engedélyeket az Extra engedélyek mezőben a Speciális APK-csomagolás területen:

Android APK-projektbeállítások

iOS

Az iOS-alkalmazás létrehozásához az Unrealt kell használnia Mac gépen. Ha Apple fejlesztői fiókkal szeretne csomagolni, nyissa meg a Project Settings > iOS alkalmazást , és görgessen le a Build (Build ) szakaszhoz. Engedélyezze az Automatikus aláírás jelölőnégyzetet, és töltse fel az IOS-csapatazonosítót a csapatazonosítóval.

A csoportazonosítót a developer.apple.com bejelentkezve, a Tagság lapra lépve és a csoportazonosító keresésével keresheti meg.

Ahhoz, hogy egy engedélypárbeszédet jeleníthessen meg, és lehetővé tegye az iOS-eszköz számára a helyadatok elérését, az Init Location Services és a Start Location Services függvényeket meg kell hívni, mielőtt megkísérli elindítani az Azure Spatial Anchor-munkamenetet:

iOS helyalapú szolgáltatások indítása

Azure Spatial Anchors beépülő modulok hozzáadása

Tipp

Az Azure Spatial Anchors for Unreal használatakor van egy Azure Spatial Anchors beépülő modul és egy platformspecifikus beépülő modul (WMR, ARKit, ARCore, OpenXR). Egyszerre csak egy platformspecifikus beépülő modulnak kell engedélyezve lennie.

HoloLens

Engedélyezze az Azure Spatial Anchors beépülő modulokat az Unreal-szerkesztőben a következő módon:

  1. Kattintson a Beépülő modulok szerkesztése > elemre, és keresse meg az Azure Spatial Anchors és az Azure Spatial Anchors for WMR lehetőséget.
  2. Jelölje be az Engedélyezve jelölőnégyzetet mindkét beépülő modulban az alkalmazás Azure Spatial Anchors tervkódtáraihoz való hozzáférés engedélyezéséhez.

Képernyőkép a térbeli Horgonyok beépülő modulokról az Unreal-szerkesztőben

Ha ez megtörtént, indítsa újra az Unreal Editort a beépülő modul módosításainak érvénybe lépéséhez. A projekt most már készen áll az Azure Spatial Anchors használatára.

Android

Engedélyezze az Azure Spatial Anchors beépülő modulokat az Unreal-szerkesztőben a következő módon:

  1. Kattintson a Beépülő modulok szerkesztése > elemre, és keresse meg az Azure Spatial Anchors és az Azure Spatial Anchors for ARCore lehetőséget.
  2. Jelölje be az Engedélyezve jelölőnégyzetet mindkét beépülő modulban az alkalmazás Azure Spatial Anchors tervkódtáraihoz való hozzáférés engedélyezéséhez.

Android beépülő modulok az Unreal-szerkesztőben

Ha ez megtörtént, indítsa újra az Unreal Editort a beépülő modul módosításainak érvénybe lépéséhez. A projekt most már készen áll az Azure Spatial Anchors használatára.

iOS

Engedélyezze az Azure Spatial Anchors beépülő modulokat az Unreal-szerkesztőben a következő módon:

  1. Kattintson a Beépülő modulok szerkesztése > elemre, és keresse meg az Azure Spatial Anchors és az Azure Spatial Anchors for ARKit lehetőséget.
  2. Jelölje be az Engedélyezve jelölőnégyzetet mindkét beépülő modulban az alkalmazás Azure Spatial Anchors tervkódtáraihoz való hozzáférés engedélyezéséhez.

iOS ASA beépülő modulok az Unreal-szerkesztőben

  1. Keresse meg a mobil helyalapú szolgáltatásokat és a mobil helyalapú szolgáltatásokat is – IOS-implementáció
  2. Jelölje be az Engedélyezve jelölőnégyzetet mindkét beépülő modulban, hogy az iOS-eszköz hozzáférhessen az aktuális helyhez.

iOS-hely beépülő modulok az Unreal-szerkesztőben

Ha ez megtörtént, indítsa újra az Unreal Editort a beépülő modul módosításainak érvénybe lépéséhez. A projekt most már készen áll az Azure Spatial Anchors használatára.

Térbeli horgonyok munkamenet indítása

Az Azure Spatial Anchors-munkamenet lehetővé teszi, hogy az ügyfélalkalmazások kommunikáljanak az Azure Spatial Anchors szolgáltatással. Létre kell hoznia és el kell indítania egy Azure Spatial Anchors-munkamenetet az Azure Spatial Anchors létrehozásához, megőrzéséhez és megosztásához:

  1. Nyissa meg az alkalmazásban használt Pawn tervét.
  2. Adjon hozzá két sztringváltozót a fiókazonosítóhoz és a fiókkulcshoz, majd rendelje hozzá a megfelelő értékeket az Azure Spatial Anchors-fiókból a munkamenet hitelesítéséhez.

Képernyőkép a részletek panelről, amelyen az Azure Spatial Anchors fiókazonosítója, kulcsa és változótípusa ki van emelve

Azure Spatial Anchors-munkamenet indítása a következővel:

  1. Annak ellenőrzése, hogy egy AR-munkamenet fut-e a HoloLens alkalmazásban, mivel az Azure Spatial Anchors-munkamenet csak akkor indulhat el, ha egy AR-munkamenet fut. Ha nem rendelkezik egyetlen beállítással, hozzon létre egy AR-munkamenet-objektumot.
  2. Adja hozzá a Start Azure Spatial Anchors Session egyéni eseményt, és konfigurálja az alábbi képernyőképen látható módon.
    • A munkamenet létrehozása alapértelmezés szerint nem indítja el a munkamenetet, így a munkamenetet az Azure Spatial Anchors szolgáltatással történő hitelesítéshez konfigurálhatja.

Az Azure Spatial Anchors munkamenet egyéni eseményének elindításának terve

  1. Konfigurálja az Azure Spatial Anchors munkamenetet a fiókazonosító, a fiókkulcs, a fióktartomány és a tanfolyam honosítási beállításainak megadásához. Az összes jelölőnégyzetet engedélyezni kell a kurzus honosítási beállításaiban, hogy az Azure térbeli horgonyszolgáltatás érzékelőadatokkal keresse meg a horgonyokat.

A konfigurációs munkamenetfüggvény tervrajza a fiókazonosítóval és a hozzáadott kulccsal

  1. Indítsa el az Azure Spatial Anchors munkamenetet, amely lehetővé teszi az alkalmazás számára az Azure Spatial Anchors létrehozását és megkeresését.

Az Azure Spatial Anchors munkamenetindító függvényének tervrajza

Érdemes törölni az Azure Spatial Anchors-erőforrásokat az Event Graph-tervben, ha már nem használja a szolgáltatást:

  1. Állítsa le az Azure Spatial Anchors-munkamenetet. A munkamenet már nem fog futni, de a társított erőforrások továbbra is léteznek az Azure Spatial Anchors beépülő modulban.

Az Azure Spatial Anchors-munkamenetek leállítása egyéni esemény és stop munkamenetfüggvény tervrajza

  1. Semmisítse meg az Azure Spatial Anchors-munkamenetet az Azure Spatial Anchors beépülő modul által ismert Azure Spatial Anchors-munkamenet erőforrásainak eltávolításához.

A munkamenetfüggvény megsemmisítésének tervrajza

Az Event Graph-tervnek az alábbi képernyőképhez hasonlóan kell kinéznie:

Az Azure Spatial Anchor-munkamenet beállításának teljes eseménygráfjának tervrajza

Horgony létrehozása

Az Azure Spatial Anchor egy fizikai világbeli pózt jelöl a kiterjesztett valóság alkalmazásterében, amely a kiterjesztett valóság tartalmát fizikai helyekre zárolja. Az Azure Spatial Anchors különböző felhasználók között is megosztható. Ez a megosztás lehetővé teszi a különböző eszközökre rajzolt kiterjesztett valósági tartalmak elhelyezését ugyanazon a helyen a fizikai világban.

Új Azure Spatial Anchor létrehozása:

  1. Ellenőrizze, hogy fut-e egy Azure Spatial Anchors-munkamenet. Az alkalmazás nem tud Azure Spatial Anchort létrehozni vagy megőrzeni, ha nincs Azure Spatial Anchors-munkamenet.

Az Azure Spatial Anchor egyéni eseményének létrehozásának tervrajza

  1. Hozzon létre vagy szerezzen be egy Unreal Scene-összetevőt , amelynek meg kell őriznie a helyét.
    • Az alábbi képen a Scene Component Needing Anchor összetevőt használjuk változóként. Az AR Pin és az Azure Spatial Anchor alkalmazás-világátalakításának létrehozásához irreális jelenetösszetevőre van szükség.

Az Azure Spatial Anchor egyéni eseményének létrehozása jelenetösszetevővel

Azure Spatial Anchor létrehozása és mentése unreal scene összetevőhöz:

  1. Hívja meg a Rögzítés összetevőt az Unreal Scene összetevőhöz, és adja meg a Jelenet összetevő Világátalakítóját az AR Pin-kódhoz használt világátalakítóként.
    • Az Unreal AR-pontokat követ az alkalmazástérben az Azure Spatial Anchor létrehozásához használt AR Pin-kódokkal. Az Unrealben az AR Pin hasonló a HoloLens spatialAnchor eleméhez.

A pin component függvényhez csatlakoztatott jelenetösszetevő tervrajza

  1. Hívja meg a Create Cloud Anchor metódust az újonnan létrehozott AR Pin-kód használatával.
    • A Cloud Anchor létrehozása helyileg hoz létre egy Azure Spatial Anchor-t, de az Azure Spatial Anchor szolgáltatásban nem. Az Azure Spatial Anchor paramétereit, például a lejárati dátumot, be lehet állítani, mielőtt létrehozza az Azure Spatial Anchort a szolgáltatással.

Az ARPint visszaadó felhőhorgony-függvény létrehozásához csatlakoztatott PIN-összetevő függvény tervrajza

  1. Állítsa be az Azure Spatial Anchor lejáratát. A függvény Élettartam paramétere lehetővé teszi, hogy a fejlesztő másodpercek alatt megadja, hogy a szolgáltatás mennyi ideig tarthassa karban a horgonyt.
    • Egy hét hosszú lejárat például 60 másodperc x 60 perc x 24 óra x hét nap = 604 800 másodperc értéket vesz igénybe.

A felhőhorgony tervrajza, amely a lejárati függvény 604 800 másodpercre van állítva

A horgonyparaméterek beállítása után deklarálja a horgonyt mentésre készként. Az alábbi példában az újonnan létrehozott Azure Spatial Anchor a mentést igénylő Azure Spatial Anchors-készlethez lesz hozzáadva. Ez a készlet a Pawn-terv változójaként van deklarálva.

A rögzített horgony tervrajza készen áll a set változóban való mentésre

Horgony mentése

Miután konfigurálta az Azure Spatial Anchort a paraméterekkel, hívja meg a Save Cloud Anchor (Felhőhorgony mentése) parancsot. A Save Cloud Anchor deklarálja a horgonyt az Azure Spatial Anchors szolgáltatáshoz. Ha a Save Cloud Anchor hívása sikeres, az Azure Spatial Anchor az Azure Spatial Anchor szolgáltatás többi felhasználója számára is elérhető lesz.

A meghívandó Felhőhorgony mentése függvény tervrajza

Megjegyzés

A Save Cloud Anchor egy aszinkron függvény, és csak játékszál-eseményeken hívható meg, például az EventTick eseményen. Előfordulhat, hogy a Save Cloud Anchor nem jelenik meg elérhető tervfüggvényként az egyéni tervfüggvényekben. Ennek azonban elérhetőnek kell lennie a Pawn Event Graph tervszerkesztőjében.

Az alábbi példában az Azure Spatial Anchor egy készletben van tárolva egy bemeneti esemény visszahívása során. A horgony ezután az EventTickre lesz mentve. Az Azure Spatial Anchor mentése több kísérletet is igénybe vehet az Azure Spatial Anchors-munkamenet által létrehozott térbeli adatok mennyiségétől függően. Ezért érdemes ellenőrizni, hogy a mentési hívás sikeres volt-e.

Ha a horgony nem ment, olvassa fel a még menteni kívánt horgonykészletbe. A jövőbeli EventTicks mindaddig megpróbálja menteni a horgonyt, amíg sikeresen el nem tárolja.

A nem mentett horgonyok tervrajza ismét mentve van a beállított változóban

A horgony mentése után az AR Pins átalakítása referenciaátalakításként szolgál a tartalom alkalmazásba való elhelyezéséhez. Más felhasználók észlelhetik ezt a horgonyt, és igazíthatják az AR-tartalmat a fizikai világ különböző eszközeihez.

Horgony törlése

Az Azure Spatial Anchor szolgáltatásból a Delete Cloud Anchor meghívásával törölheti a horgonyokat.

A meghívandó felhőhorgony-függvény törlésének tervrajza

Megjegyzés

A Delete Cloud Anchor egy látens függvény, és csak játékszáleseményeken hívható meg, például Az EventTick esetében. Előfordulhat, hogy a Cloud Anchor törlése nem jelenik meg elérhető tervfüggvényként az egyéni tervfüggvényekben. Ennek azonban elérhetőnek kell lennie a Pawn Event Graph tervszerkesztőjében.

Az alábbi példában a horgony törlésre van megjelölve egy egyéni bemeneti eseményen. A törlést ezután megkísérli a rendszer az EventTicken. Ha a horgony törlése sikertelen, adja hozzá az Azure Spatial Anchort a törlésre megjelölt horgonykészlethez, és próbálja újra a későbbi EventTicksben.

Az Event Graph-tervnek most az alábbi képernyőképhez hasonlóan kell kinéznie:

Teljes eseménygráf terve a felhőhorgonyok kezeléséhez

Meglévő horgonyok keresése

A meglévő horgonyokat társviszonyok hozhatják létre az Azure Spatial Anchors szolgáltatással:

  1. Szerezze be az észlelni kívánt horgony Azure Spatial Anchor-azonosítóját.
    • Egy horgonyazonosító lekérthető egy horgonyhoz, amelyet ugyanaz az eszköz hozott létre egy korábbi Azure Spatial Anchors-munkamenetben. Az Azure Spatial Anchors szolgáltatással kommunikáló társeszközök is létrehozhatják és megoszthatják.

Az azure spatial anchor identifier egyéni esemény tárolásának tervrajza az Azure Cloud Identifier függvény lekérésével

  1. Adjon hozzá egy AzureSpatialAnchorsEvent összetevőt a Pawn-tervhez.
    • Ez az összetevő lehetővé teszi, hogy előfizetjen a különböző Azure Spatial Anchors-eseményekre, például az Azure Spatial Anchors helyekor meghívott eseményekre.

Képernyőkép a tervszerkesztőben megnyitott BP_Pawn az összetevők és a részletek paneljeinek megnyitásáról

  1. Iratkozzon fel az AzureSpatialAnchorsEvent összetevő ASAAnchor-beli delegáltjára.
    • A meghatalmazott tudatja az alkalmazással, hogy az Azure Spatial Anchors-fiókhoz társított új horgonyok hol találhatók.
    • Az eseményvisszahívással a társak által az Azure Spatial Anchors munkamenetet használó Azure Spatial Anchors nem hoz létre alapértelmezés szerint AR Pin-eket. Ha AR Pin-kódot szeretne létrehozni az észlelt Azure Spatial Anchorhoz, a fejlesztők meghívhatják az ARPin létrehozása az Azure Cloud Spatial Anchor körül parancsot.

Az ASAAnchor-beli delegálthoz csatlakoztatott játékkezdő esemény tervrajza

A társviszonyok által az Azure Spatial Anchor szolgáltatással létrehozott Azure Spatial Anchors megkereséséhez az alkalmazásnak létre kell hoznia egy Azure Spatial Anchors Watchert:

  1. Ellenőrizze, hogy fut-e egy Azure Spatial Anchors-munkamenet.
  2. AzureSpatialAnchorsLocateCriteria létrehozása.
    • Különböző helyparamétereket adhat meg, például a felhasználótól való távolság vagy egy másik horgony távolsága.
  3. Deklarálja a keresett Azure Spatial Anchor-azonosítót az AzureSpatialAnchorsLocateCritieria területen.
  4. Hívja fel a Create Watcher (Figyelő létrehozása) parancsot.

Az Azure Spatial Anchors Watcher egyéni eseményének elindításának tervrajza

Az alkalmazás ekkor megkezdi az Azure Spatial Anchors szolgáltatás által ismert Azure Spatial Anchors keresését, ami azt jelenti, hogy a felhasználók megkereshetik a társaik által létrehozott Azure Spatial Anchorst.

Az Azure Spatial Anchor megtalálását követően hívja meg a Stop Watchert az Azure Spatial Anchors Watcher leállításához és a figyelő erőforrásainak törléséhez.

A stop watcher függvény hívásának terve

Az utolsó Event Graph-tervnek most az alábbi képernyőképhez hasonlóan kell kinéznie:

A horgonydelegált események kezelésére szolgáló teljes eseménygráf terve

Következő fejlesztési ellenőrzőpont

Ha követi az Általunk meghatározott Unreal fejlesztési folyamatot, akkor az MRTK alapvető építőelemeinek felfedezésén van. Innen továbbléphet a következő építőelemre:

Vagy ugorjon Mixed Reality platform képességeire és API-ira:

Bármikor visszatérhet az Unreal fejlesztési ellenőrzőpontjaihoz .

Következő lépések