Compartir a través de


Bloqueo del mundo y anclajes espaciales en Unity

Imagen prominente de herramientas de bloqueo mundial

Conseguir que los hologramas permanezcan en su lugar, se muevan con usted o, en algunos casos, se coloquen en relación con otros hologramas es una gran parte de la creación de aplicaciones de realidad mixta. Este artículo le llevará a través de nuestra solución recomendada mediante Las herramientas de bloqueo mundial, pero también trataremos la configuración manual de anclajes espaciales en los proyectos de Unity. Antes de saltar a cualquier código, es importante comprender cómo Unity controla el espacio de coordenadas y los anclajes en su propio motor.

Sistemas de coordenadas a escala mundial

Hoy en día, al escribir juegos, aplicaciones de visualización de datos o aplicaciones de realidad virtual, el enfoque típico es establecer un sistema absoluto de coordenadas del mundo al que todas las demás coordenadas se pueden asignar de forma confiable. En ese entorno, siempre puede encontrar una transformación estable que defina una relación entre dos objetos de ese mundo. Si no mueve esos objetos, sus transformaciones relativas siempre seguirán siendo las mismas. Este tipo de sistema de coordenadas global es fácil de conseguir cuando se representa un mundo puramente virtual donde se conoce toda la geometría de antemano. Las aplicaciones de VR a escala de sala actualmente suelen establecer este tipo de sistema de coordenadas de escala de habitación absoluta con su origen en el suelo.

Por el contrario, un dispositivo de realidad mixta no anclado, como HoloLens, tiene una comprensión dinámica controlada por sensores del mundo, ajustando continuamente sus conocimientos a lo largo del tiempo del entorno del usuario a medida que caminan muchos metros por todo un piso de un edificio. En una experiencia a escala mundial, si colocaste todos tus hologramas en un sistema de coordenadas rígido naïve, esos hologramas acabarían desfase con el tiempo, ya sea en función del mundo o en relación entre sí.

Por ejemplo, los auriculares pueden creer que dos ubicaciones del mundo estén separadas por 4 metros y, después, refinar esa comprensión, aprendiendo de hecho que las ubicaciones están separadas de 3,9 metros. Si esos hologramas se hubieran colocado inicialmente a 4 metros de distancia en un único sistema de coordenadas rígido, uno de ellos siempre aparecería a 0,1 metros del mundo real.

Puede colocar manualmente anclajes espaciales en Unity para mantener la posición de un holograma en el mundo físico cuando el usuario es móvil. Sin embargo, esto sacrifica la autocoherencia dentro del mundo virtual. Los diferentes delimitadores se mueven constantemente en relación entre sí y también se mueven a través del espacio de coordenadas global. En este escenario, las tareas sencillas, como el diseño, se vuelven difíciles. La simulación física también puede ser problemática.

World Locking Tools (WLT) le permite obtener lo mejor de ambos mundos, estabilizando un único sistema de coordenadas rígido mediante un suministro interno de anclajes espaciales distribuidos a lo largo de la escena virtual a medida que el usuario se mueve. WLT analiza las coordenadas de la cámara y esos anclajes espaciales cada fotograma. En lugar de cambiar las coordenadas de todo el mundo para compensar las correcciones en las coordenadas de la cabeza del usuario, WLT solo corrige las coordenadas de la cabeza en su lugar.

Elección del enfoque de bloqueo del mundo

Si es posible, use World Locking Tools para el posicionamiento de hologramas.

World Locking Tools proporciona un sistema de coordenadas estable que minimiza las incoherencias visibles entre los marcadores del mundo virtual y real. World Locking Tools bloquea la escena completa con un grupo compartido de anclajes, en lugar de bloquear cada grupo de objetos con el propio anclaje individual del grupo.

World Locking Tools controla automáticamente la creación y administración interna de anclajes espaciales. No es necesario interactuar con ARAnchorManager o WorldAnchor para mantener bloqueados el mundo de los hologramas.

  • Para Unity 2019/2020 con OpenXR o el complemento XR de Windows, use ARAnchorManager.
  • Para versiones anteriores de Unity o proyectos de WSA, use WorldAnchor.

Configuración del bloqueo del mundo

Para empezar a usar las herramientas de bloqueo mundial, descargue la herramienta de características de Mixed Reality. Para obtener más información sobre los conceptos básicos, consulte la página principal de documentación de World Locking Tools para ver vínculos a Información general, Inicio rápido y otros temas útiles.

Configuración automatizada

Cuando el proyecto esté listo para usarse, ejecute la utilidad configurar escena desde Mixed Reality > World Locking Tools:

Editor de Unity con el menú Mixed Reality Toolkit seleccionado

Importante

La utilidad "Configure scene" (Configurar escena) se puede volver a ejecutar en cualquier momento. Por ejemplo, debe volver a ejecutarse si el destino de AR ha cambiado de Legacy a XR SDK. Si la escena ya está configurada correctamente, la ejecución de la utilidad no tiene ningún efecto.

Visualizadores

Durante el desarrollo temprano, agregar visualizadores puede ser útil para asegurarse de que WLT está configurado y funcionando correctamente. Más tarde, se pueden eliminar para mejorar el rendimiento en producción, o si por alguna razón ya no son necesarios, con la utilidad "Remove visualizers" (Quitar visualizadores). Puede encontrar más detalles sobre los visualizadores en la documentación de las herramientas.

Bloqueo del mundo persistente

Los delimitadores espaciales guardan hologramas en un espacio real entre sesiones de aplicación. Una vez guardados en el almacén de anclajes de HoloLens, los delimitadores espaciales se pueden encontrar y cargar en sesiones diferentes y son una reserva ideal cuando no hay conectividad a Internet.

Importante

Los anclajes locales se almacenan en el dispositivo, mientras que los Azure Spatial Anchors se almacenan en la nube. Puede tener anclajes locales y de Azure en el mismo proyecto sin conflictos. Para más información sobre cómo integrar los servicios en la nube de Azure para almacenar los delimitadores, consulte Azure Spatial Anchors.

De forma predeterminada, World Locking Tools restaura el sistema de coordenadas de Unity en relación con el mundo físico entre sesiones en dispositivos que admiten la persistencia de anclajes espaciales locales. Para que un holograma aparezca en el mismo lugar del mundo físico después de salir y volver a ejecutar la aplicación, la aplicación solo necesita restaurar la misma posición en el holograma.

Componente de contexto de bloqueo mundial en el inspector de Unity

Si la aplicación necesita un control más preciso, puede deshabilitar el guardado automático y la carga automática en el inspector y administrar la persistencia desde un script. Para obtener más información, consulte Persist spatial coordinate systems (Conservar sistemas de coordenadas espaciales).

World Locking Tools solo admite la persistencia de anclaje local en dispositivos HoloLens. Para dispositivos Android, iOS y HoloLens, se integra con Azure Spatial Anchors para admitir la persistencia y el uso compartido de espacios de coordenadas entre sesiones y dispositivos. Para obtener más información y ejemplos con Herramientas de bloqueo mundial con Azure Spatial Anchors, consulte Herramientas de bloqueo mundial (WLT) combinadas con Azure Spatial Anchors (ASA).

Pasos siguientes

Compartir un espacio de coordenadas bloqueado del mundo:

Obtenga información sobre la asignación espacial:

Vuelva a los puntos de comprobación de desarrollo de Unity:

Consulte también