Sdílet prostřednictvím


Světové uzamykání a prostorové kotvy v Unity

Obrázek hlavního obrázku nástroje world locking tools

Získání hologramů k tomu, aby zůstaly na místě, přesouvali se s vámi nebo se v některých případech umístili vzhledem k jiným hologramům, je velkou součástí vytváření aplikací hybridní reality. Tento článek vás provede naším doporučeným řešením pomocí nástrojů World Locking Tools, ale budeme se zabývat také ručním nastavením prostorových ukotvení v projektech Unity. Než se pustíme do jakéhokoli kódu, je důležité pochopit, jak Unity zpracovává souřadnicový prostor a kotvy ve vlastním modulu.

Světové souřadnicové systémy

Při psaní her, aplikací pro vizualizaci dat nebo aplikací virtuální reality je dnes typickým přístupem vytvořit jeden absolutní souřadnicový systém světa, ke kterému se všechny ostatní souřadnice můžou spolehlivě mapovat. V daném prostředí můžete vždy najít stabilní transformaci, která definuje vztah mezi libovolnými dvěma objekty na daném světě. Pokud jste tyto objekty nepřesunuli, jejich relativní transformace zůstanou vždy stejné. Tento druh globálního souřadnicového systému je snadné získat právo při vykreslování čistě virtuálního světa, kde znáte všechny geometrie předem. Dnes aplikace VR na úrovni místností obvykle vytvářejí tento druh absolutního souřadnicového systému na úrovni místnosti s jeho původem na podlaze.

Naproti tomu zařízení s hybridní realitou, jako je HoloLens, má dynamické porozumění světu řízené senzory, a průběžně upravuje své znalosti v průběhu času okolí uživatele, protože prochází mnoho metrů přes celé patro budovy. Pokud byste všechny hologramy umístili do naivního tuhého souřadnicového systému, tyto hologramy by se v průběhu času nakonec posunovaly, a to buď na základě světa, nebo vzhledem k sobě.

Náhlavní souprava může například v současné době uvěřit, že dvě umístění na světě jsou 4 metry od sebe, a pak později upřesnit, že pochopení, že umístění jsou ve skutečnosti 3,9 metrů od sebe. Pokud byly tyto hologramy původně umístěny 4 metry od jednoho tuhého souřadnicového systému, jeden z nich by pak vždy vypadal 0,1 metrů od skutečného světa.

Prostorové kotvy můžete v Unity umístit ručně, abyste zachovali pozici hologramu ve fyzickém světě, když je uživatel mobilní. To však obětuje sebekonzistenci ve virtuálním světě. Různé kotvy se neustále pohybují ve vztahu k sobě navzájem a také procházejí globálním souřadnicemi. V tomto scénáři jsou jednoduché úkoly, jako je rozložení, obtížné. Fyzikální simulace může být také problematická.

World Locking Tools (WLT) vám poskytne to nejlepší z obou světů, stabilizuje jeden pevný souřadnicový systém pomocí interní dodávky prostorových ukotvení rozložených po celé virtuální scéně, jak se uživatel pohybuje kolem. WLT analyzuje souřadnice kamery a prostorové ukotvení každého snímku. Místo toho, aby se měnily souřadnice všeho na světě, aby se opravily v souřadnicích hlavy uživatele, WLT místo toho opravuje souřadnice hlavy.

Volba přístupu k uzamykání světa

Pokud je to možné, použijte nástroje World Locking Tools pro umístění hologramu.

Nástroje World Locking Tools poskytují stabilní souřadnicový systém, který minimalizuje viditelné nekonzistence mezi virtuálními a skutečnými značkami světa. World Locking Tools world-locks celé scény se sdíleným fondem ukotvení, nikoli uzamknout každou skupinu objektů pomocí vlastní individuální ukotvení skupiny.

World Locking Tools automaticky zpracovává interní vytváření a správu prostorových ukotvení. Kvůli tomu, aby hologramy zůstaly po celém světě zamknuté, nemusíte s ARAnchorManagerem ani WorldAnchorem pracovat.

  • Pro Unity 2019/2020 pomocí OpenXR nebo modulu plug-in Windows XR použijte ARAnchorManager.
  • Pro starší verze Unity nebo projekty WSA použijte WorldAnchor.

Nastavení uzamčení světa

Pokud chcete začít používat nástroje World Locking Tools, stáhněte si nástroj pro funkce hybridní reality. Další informace o základech najdete na hlavní stránce dokumentace nástroje World Locking Tools, kde najdete odkazy na přehled, rychlý start a další užitečná témata.

Automatizované nastavení

Až bude projekt připravený, spusťte nástroj konfigurace scény z nástrojů Mixed Reality > World Locking Tools:

Editor Unity s vybranou nabídkou Mixed Reality Toolkit

Důležité

Nástroj Konfigurovat scénu můžete kdykoli znovu spustit. Pokud se například cíl rozšířené reality změnil ze starší verze na XR SDK, měl by se znovu spustit. Pokud je scéna již správně nakonfigurovaná, spuštění nástroje nemá žádný vliv.

Vizualizéry

Během raného vývoje může být přidání vizualizérů užitečné k zajištění správného nastavení a fungování WLT. Dají se odebrat z produkčního výkonu nebo pokud už z nějakého důvodu nejsou potřeba, pomocí nástroje Odebrat vizualizéry. Další podrobnosti o vizualizérech najdete v dokumentaci k nástrojům.

Trvalé uzamčení světa

Prostorové ukotvení šetří hologramy v reálném světě mezi relacemi aplikací. Jakmile jsou uloženy v úložišti ukotvení HoloLens, prostorové kotvy se dají najít a načíst do různých relací a jsou ideální pro návrat, když neexistuje připojení k internetu.

Důležité

Místní ukotvení se ukládají na zařízení, zatímco Azure Spatial Anchors jsou uložené v cloudu. Místní ukotvení a ukotvení Azure můžete mít ve stejném projektu bez konfliktu. Další informace o integraci cloudových služeb Azure pro ukládání ukotvení najdete v tématu Azure Spatial Anchors.

Ve výchozím nastavení nástroje World Locking Tools obnoví souřadnicový systém Unity vzhledem k fyzickému světu napříč relacemi na zařízeních, která podporují trvalost místních prostorových ukotvení. Aby se hologram zobrazoval na stejném místě ve fyzickém světě po ukončení a opětovném spuštění aplikace, musí aplikace obnovit pouze stejnou pozici hologramu.

World locking context component in Unity inspector

Pokud aplikace potřebuje jemně řídit, můžete v inspektoru zakázat automatické ukládání a automatické načítání a spravovat trvalost ze skriptu. Další informace naleznete v tématu Zachování prostorových souřadnicových systémů.

World Locking Tools podporuje trvalost místních ukotvení pouze na zařízeních HoloLens. Pro zařízení s Androidem, iOSem a HoloLensem se integrujte se službou Azure Spatial Anchors, která podporují trvalost a sdílení souřadnicových prostorů mezi relacemi a zařízeními. Další informace a ukázky s využitím nástrojů World Locking Tools s Azure Spatial Anchors najdete v tématu World Locking Tools (WLT) v kombinaci s Azure Spatial Anchors (ASA).

Další kroky

Sdílejte svět uzamčený souřadnicový prostor:

Další informace o prostorovém mapování:

Vraťte se k kontrolním bodům vývoje Unity:

Viz také