Table of Contents

Centro de seguimiento de movimiento en unity ar —— xr origin

XR Origin es el concepto central de la funcionalidad de seguimiento de movimiento en Unity. En las aplicaciones AR modernas, el seguimiento de movimiento se está convirtiendo gradualmente en una característica indispensable. A través del seguimiento de movimiento, las aplicaciones pueden comprender la posición y orientación del usuario en el mundo real sin necesidad de otros marcadores, logrando así una experiencia AR inmersiva. A través del siguiente contenido, comprenderá los conceptos básicos, componentes y ciclo de vida de XR Origin, así como en qué casos es necesario utilizarlo.

Antes de comenzar

Qué es xr origin

El sistema de seguimiento de movimiento selecciona un punto de referencia como origen del seguimiento durante la inicialización. Este punto de referencia suele ser la posición del dispositivo cuando el usuario inicia la aplicación o cuando se inicia el servicio AR del sistema. La representación de este punto de referencia en la escena de Unity es XR Origin. En la mayoría de los casos, la posición inicial de XR Origin en la escena también es la posición predeterminada de la cámara.

Este video muestra una escena AR simple donde solo funciona el seguimiento de movimiento. A la izquierda está la vista Hierarchy, en el medio la vista Scene y a la derecha la vista Game. El video fue grabado en modo Play del editor de Unity utilizando datos de simulación. El contenido de la vista Game es idéntico a lo que un usuario vería en un teléfono en el mundo real.

Puede observarse que en este video, XR Origin (esfera azul) permanece fijo en la escena, mientras que la cámara que representa al usuario (ícono de cámara) se mueve según el desplazamiento del usuario en el mundo real. Los conos blancos muestran la trayectoria de posición y orientación de la cámara durante un período pasado, ayudando a comprender mejor el movimiento de la cámara en la escena. Estos conos blancos se generan bajo el nodo de XR Origin, lo cual es una organización típica de objetos en este tipo de escenas.

En el sistema de seguimiento de movimiento de Unity, la cámara generalmente sigue el movimiento de XR Origin. Aunque la cámara no necesariamente es un nodo hijo de XR Origin, AR Session calculará la posición de la cámara según la posición de XR Origin, garantizando coherencia entre lo que ve el usuario y el mundo real.

Este video muestra la misma escena, pero esta vez movimos XR Origin (esfera azul) durante el tiempo de ejecución. Puede verse que después de mover XR Origin, la cámara se mueve junto con él, pero el contenido en la vista Game no cambia.

En escenas AR reales, esta relación de movimiento es más compleja.

Comportamiento de xr origin en diferentes modos de centro

En Unity, todos los puntos de referencia centrales de seguimiento AR se denominan centro de session, y las reglas que determinan este centro durante la ejecución de session se denominan modo de centro. En diferentes modos de centro, el comportamiento de XR Origin varía:

  • En el modo de centro SessionOrigin, XR Origin puede moverse libremente.

    Generalmente, el modo SessionOrigin se utiliza en escenas donde solo funciona el seguimiento de movimiento. Cuando otras funciones se ejecutan simultáneamente, normalmente no se usa el modo SessionOrigin.

    Sin embargo, al usar dispositivos de realidad virtual, si el fabricante no implementa correctamente el punto de referencia de seguimiento de movimiento en Unity, se debe usar el centro del mundo de Unity, forzando así el modo SessionOrigin. Esto requiere que el nodo raíz del contenido siga el movimiento de las funciones AR, lo que podría afectar la apariencia del contenido, pero no hay otra solución hasta que los fabricantes de terceros realicen cambios.

  • En otros modos de centro (como FirstTarget), XR Origin no puede moverse libremente.

    Generalmente, el modo FirstTarget se usa en escenas sin seguimiento de movimiento o donde otras funciones AR se ejecutan simultáneamente con el seguimiento de movimiento.

    En este modo, la posición de XR Origin está determinada por las funciones AR, por lo que no se puede mover libremente.

Para obtener detalles sobre el modo de centro y cómo se mueven los objetos dentro de la escena, consulte: Modo de centro.

Forma y composición de xr origin

EasyAR puede utilizar dos formas diferentes de XR Origin:

  • XR Origin proporcionado por EasyAR
  • XR Origin proporcionado por el marco de trabajo Unity XR

XR Origin (EasyAR)

Una estructura típica de XR Origin se muestra a continuación:

alt text

El nodo raíz de XR Origin es un GameObject vacío, que puede tener uno o más nodos hijos XR Origin Child. XR Origin Child contiene un componente XROriginChildController que actúa como proxy para la lógica de control de XR Origin.

Durante la ejecución de session, si no existe una estructura correcta de XR Origin en la escena, se crearán automáticamente un XR Origin y un XR Origin Child. Durante la ejecución, XR Origin Child estará restringido a la misma posición y orientación que XR Origin.

Los objetos generados por session, como la nube de puntos del mapa espacial disperso o la malla del mapa espacial denso, se crearán bajo el nodo XR Origin Child.

Este video muestra el efecto de ejecutar simultáneamente seguimiento de movimiento y mapeo espacial denso en la misma escena. Puede verse que la malla generada se crea bajo el nodo XR Origin Child.

Nota: Para facilitar la comprensión, la generación del mapa de profundidad está desactivada en el video, por lo que el contenido de la vista Scene diferirá de lo que se mostraría durante la ejecución real. El efecto en la vista Game es idéntico a cuando la transparencia de la malla está desactivada.

[Opcional] XR Origin (Unity XR)

Si es necesario, puede optar por utilizar el componente XR Origin proporcionado por el marco de trabajo Unity XR.

Al usar XR Origin proporcionado por Unity XR, una estructura típica es la siguiente:

alt text

En escenas de realidad virtual, una estructura típica es:

alt text

El nodo raíz de XR Origin es un GameObject creado y mantenido por el marco de trabajo Unity XR, que puede tener uno o más nodos hijos XR Origin Child. XR Origin Child contiene un componente XROriginChildController que actúa como proxy para la lógica de control de XR Origin.

Durante la ejecución de session, si no existe una estructura correcta de XR Origin Child en la escena, se creará automáticamente un XR Origin Child. Durante la ejecución, XR Origin Child estará restringido a la misma posición y orientación que XR Origin.

XR Origin proporcionado por Unity XR ofrece soporte principalmente para dos casos:

  • Ya está utilizando AR Foundation en su proyecto y desea que funcione junto con EasyAR o cambiar entre ellos según la compatibilidad del dispositivo.
  • El SDK de realidad virtual que utiliza emplea el componente XR Origin proporcionado por Unity XR.
Nota

Cuando el paquete central de Unity XR com.unity.xr.core-utils no está importado en el proyecto, si la cámara en la escena está en la misma jerarquía que XR Origin proporcionado por Unity XR (nodo Camera y nodo padre llamado Camera Offset), session asumirá que esta estructura fue creada por Unity XR y la utilizará. Esto se hace para brindar la máxima compatibilidad a la escena: las escenas creadas con AR Foundation, cuando AR Foundation no está importado en el proyecto, no funcionarán pero las funciones AR restantes seguirán operando. Incluso no afecta la funcionalidad y compatibilidad de dispositivos de la aplicación AR, excepto por funciones exclusivas de AR Foundation.

La mayoría de las escenas de ejemplo de EasyAR utilizan este enfoque para garantizar que sigan funcionando sin AR Foundation y puedan demostrar capacidades de interoperabilidad cuando AR Foundation está presente.

En la definición de AR Foundation, su XR Origin es el centro del espacio de seguimiento en la escena XR. Sin embargo, es importante notar que en el concepto de AR Foundation, el seguimiento de movimiento se considera una función obligatoria, y el seguimiento en la escena XR que describe es precisamente el seguimiento de movimiento.

En el sistema EasyAR, el seguimiento de movimiento es una función opcional, por lo que XR Origin también es opcional. XR Origin solo se crea y utiliza cuando la función de seguimiento de movimiento está habilitada.

Ciclo de vida de xr origin

El ciclo de vida de XR Origin depende de session. Cuando session inicia, XR Origin se selecciona o crea (si no hay una estructura correcta de XR Origin en la escena). Cuando session se detiene, XR Origin permanece en su lugar hasta que lo use la siguiente session o se elimine manualmente.

Próximos pasos

Creación

Control de ejecución

Temas relacionados