Center mode de AR Session
Center mode es un concepto central de Unity AR. Determina qué objeto selecciona la session como punto de referencia, o center object, para todo el AR tracking durante runtime, y qué objetos de la session pueden moverse libremente. Con el contenido siguiente, conocerá los conceptos básicos de center mode y su impacto en el comportamiento de movimiento de los objetos en la scene.
Antes de empezar
- Conozca los conceptos básicos, la composición y el workflow de session mediante Introducción a AR Session.
- Conozca el papel de la camera en AR scenes mediante Camera, y cómo session controla las propiedades de la camera para garantizar una experiencia AR correcta.
- Conozca los conceptos básicos, la composición y el lifecycle de XR Origin mediante XR Origin.
- Conozca los conceptos básicos, estados y lifecycle de target mediante Target.
Center object y center mode
En una session pueden ejecutarse simultáneamente una o varias funciones AR diferentes. Estas funciones AR pueden hacer tracking de distintos objetos, y también pueden usar motion tracking al mismo tiempo para rastrear la posición y orientación del propio dispositivo.
Para garantizar que el comportamiento de movimiento de los objetos en la scene cumpla las expectativas, session debe seleccionar un punto de referencia como centro de todo AR tracking. La representación de este punto de referencia en la scene de Unity es el center object (CenterObject). Center mode (CenterMode) es la regla que determina cuál es este center object durante runtime de session.
El centro de una session puede ser uno de los siguientes objetos:
- Un target rastreado
- XR Origin
- Camera
Center mode determina qué objeto selecciona session como center object y si este objeto puede moverse libremente. Los objetos distintos de este, incluida la camera, XR Origin y target no centrales, están controlados por session y se mueven tomando el center object como punto de referencia.
En Unity, una session admite los siguientes cuatro modos de centro:
| Nombre | Ilustración | Descripción |
|---|---|---|
| FirstTarget SpecificTarget |
![]() |
Usa un target como centro, y ese target puede moverse libremente. Entre ellos,
|
| SessionOrigin | ![]() |
Usa XR Origin como centro, y XR Origin puede moverse libremente. La camera y los target de la session están controlados por la session y se mueven tomando el XR Origin central como punto de referencia. |
| Camera | ![]() |
Usa la camera como centro, y la camera puede moverse libremente. XR Origin y los target de la session están controlados por la session y se mueven tomando la camera central como punto de referencia. |
En las ilustraciones hay tres objetos: la esfera azul representa XR Origin, el cono azul representa la camera y la imagen amarilla representa el target. En distintos modos de centro, la session selecciona distintos objetos como objeto central. Las figuras muestran el sistema de coordenadas local del objeto correspondiente.
Consejo
Si tiene experiencia usando AR Foundation, puede notar que AR Foundation no tiene un concepto similar. De hecho, el patrón de comportamiento de AR Foundation es coherente con el modo de centro SessionOrigin.
En una session, la relación de movimiento relativo entre target y camera está controlada por la session actual. La relación de movimiento relativo entre XR Origin y camera está controlada por la session actual o por un framework de terceros, como AR Foundation. La existencia de los modos de centro garantiza que, en distintos entornos de ejecución, la session pueda controlar correctamente el comportamiento de movimiento de los objetos en la escena.
Por ejemplo, si AR Foundation o un SDK de headset basado en Unity XR controla la relación de movimiento relativo entre XR Origin y camera, XR Origin, por diseño del framework Unity XR, puede ser movido bajo control de la session, pero camera no. En ese caso, la session restringirá el modo de centro a FirstTarget, SpecificTarget o SessionOrigin. Así, para la session, el centro será XR Origin o algún target, mientras que para el framework Unity XR el centro seguirá siendo XR Origin, y todo el sistema podrá funcionar perfectamente.
Advertencia
En Unity AR, cualquier objeto que exista en el sistema de coordenadas mundial de Unity y cuyo transform no se haya ajustado según el componente session puede no mostrarse correctamente. Como la session ajusta la posición y orientación de otros objetos en la escena según la posición y orientación del objeto central, si hay objetos no controlados por la session, su posición y orientación pueden no coincidir con las calculadas por la session, lo que provocará comportamientos inesperados.
Por ejemplo, si se coloca un modelo de panda en el sistema de coordenadas mundial, la posición y orientación de ese modelo pueden no corresponderse con ningún objeto del mundo real, y puede parecer que flota en el aire o se mueve de forma aleatoria.
La práctica correcta es colocar siempre el contenido que se va a mostrar bajo un nodo target determinado, o bajo el nodo XR Origin si el contenido debe moverse con XR Origin. De esta forma, la posición y orientación del contenido se ajustarán según el resultado calculado por la session, lo que garantiza que el contenido se superponga correctamente en el mundo real.
Es posible alinear manualmente el contenido con la posición y orientación de un target o de XR Origin, pero debe hacerse en el momento correcto. Consulte seleccionar un modo de centro adecuado.
Modos de centro válidos
No todos los modos de centro son válidos en cualquier situación. La session decide qué modos de centro son válidos según el entorno de ejecución actual y el frame source seleccionado, para garantizar que pueda controlar correctamente el comportamiento de movimiento de los objetos en la escena. La propiedad ARSession.AvailableCenterMode puede usarse para obtener la lista de modos de centro válidos de la session actual.
Según el frame source seleccionado finalmente, los modos de centro válidos de una session se dividen en los siguientes casos:
| frame source | camera controlada | tiene datos de movimiento | tiene diseño de origin | modos de centro válidos |
|---|---|---|---|---|
|
Sí | No | - |
|
|
Sí | Sí | Sí |
camera no esun nodo hijo de XR Origin |
|
No | Sí | Sí |
|
|
No | Sí | Sí |
|
|
No | Sí | No |
|
Excepto cuando se usa FramePlayer, los modos de centro válidos se determinan cuando se ensambla la session. Al usar FramePlayer, los modos de centro válidos se determinan dinámicamente durante la ejecución de la session, en cada salida de datos de frame, según si los datos contienen información de movimiento.
Características de distintos center modes
A continuación, usaremos una serie de videos de ejemplo para mostrar el comportamiento de movimiento de los objetos bajo distintos center modes.
El contenido del video es el siguiente:
En el mundo real hay dos tipos diferentes de trackable objects:
- Uno es un árbol de Navidad, que está inmóvil. Se rastrea mediante la función sparse spatial map.
- El otro es una hoja de papel A4, con una imagen impresa de antemano. Puede moverse. Se rastrea mediante la función image tracking.
Al grabar el video, el observer, el teléfono, comienza desde la parte trasera derecha del árbol de Navidad y se mueve alrededor de él. El papel A4 se balancea de izquierda a derecha delante del observer.
Para facilitar la observación, añadimos algunos marcadores a distintos objetos de la scene.
- Árbol de Navidad: cuando está en estado tracking, se superpone una nube de puntos azul brillante en el espacio que ocupa. Estos marcadores desaparecen cuando se pierde el tracking.
- Papel A4: cuando está en estado tracking, se superpone un panda justo encima. La vista
Gametambién muestra una imagen exactamente igual al contenido y tamaño del papel A4. Estos marcadores desaparecen cuando se pierde el tracking.- XR Origin: se coloca una esfera azul en su posición
- Camera: se coloca un cono azul en su posición, y el eje principal del cono coincide con la dirección de visión de la camera.
Estos videos se grabaron usando datos de ejecución simulada en modo Play del Unity editor. El lado izquierdo del video es la vista Scene, y el lado derecho es la vista Game. El contenido de la vista Game es el mismo que el usuario ve en el teléfono en el mundo real.
Center modes FirstTarget y SpecificTarget
Los modos de centro FirstTarget y SpecificTarget usan un target como objeto central. En estos dos modos, excepto el target central, la camera, el XR Origin y otros objetos target de la session están controlados por la session y se mueven tomando el target central como punto de referencia.
Algunos targets pueden moverse en el mundo real, como el papel A4 del video.
En el video anterior, el objeto central es el papel A4 rastreado mediante image tracking. Puede verse que, al no haber operación externa, el papel A4 (panda) permanece quieto, mientras que la camera (cono azul), XR Origin (esfera azul) y el árbol de Navidad (point cloud azul brillante) se mueven.
Algunos targets están quietos en el mundo real, como el árbol de Navidad del video.
En el video anterior, el objeto central es el árbol de Navidad rastreado mediante sparse spatial map. Puede verse que, al no haber operación externa, el árbol de Navidad (point cloud azul brillante) permanece quieto, mientras que la camera (cono azul) y el papel A4 (panda) se mueven. XR Origin (esfera azul) tampoco se mueve, pero esto se debe a que está quieto con respecto al árbol de Navidad.
En estos dos modos, el target central usado como punto de referencia puede moverse libremente. En ese momento, la camera, el XR Origin y otros objetos target de la session se moverán con él, y su transform no puede controlarse externamente.
En el video anterior, el objeto central es el papel A4 rastreado mediante image tracking. Puede verse que, como movimos manualmente el papel A4 (panda), la camera (cono azul), XR Origin (esfera azul) y el árbol de Navidad (point cloud azul brillante) se movieron con él. Hay que tener en cuenta que el contenido mostrado en la vista
Gameno cambia en ese momento, porque la posición y orientación de la camera respecto al papel A4 y otros objetos no cambian.
La diferencia entre los modos FirstTarget y SpecificTarget es que durante runtime el target central puede cambiar, pero cuando cambia, el método de selección del centro es diferente. Para explicar esto, debemos considerar el proceso de tracking correcto y pérdida de tracking.
Cuando cambia el objeto central en una session, ARSession.CenterObject siempre refleja el objeto central actual, pero ARSession.CenterMode no cambia.
Cambios de center en center mode FirstTarget
En el modo de centro FirstTarget, la session siempre usa el primer target rastreado como centro. Si se pierde el tracking de este target, la session vuelve a seleccionar el centro. Cuando la session está rastreando o vuelve a rastrear otro target, ese otro target se selecciona como nuevo objeto central.
La reselección del centro ocurre en los siguientes casos:
Ningún
targetestá en estado de tracking en el frame actual
En este momento, si el modo SessionOrigin es válido, la session pasa al modo SessionOrigin y seleccionaXR Origincomo objeto central; de lo contrario, la session pasa al modo Camera y seleccionacameracomo objeto central.Hay un
targeten estado de tracking en el frame actual, y en el frame anterior no había ningúntargeten estado de tracking
En este momento, la session selecciona uno de los objetostargetrastreados como objeto central.Hay un
targeten estado de tracking en el frame actual, y eltargetcentral del frame anterior perdió el tracking en el frame actual
En este momento, la session selecciona uno de los objetostargetrastreados como nuevo objeto central.
En el video anterior, el objeto central inicial es el papel A4 rastreado mediante image tracking. Puede verse que, cuando se pierde el tracking del papel A4 (panda), la session vuelve a seleccionar el objeto central. En este momento, el árbol de Navidad (point cloud azul brillante) se convierte en el nuevo objeto central. Al final del video, el papel A4 vuelve a rastrearse, pero no se convierte en objeto central porque el árbol de Navidad ya es el objeto central.
Cambios de centro en el modo de centro SpecificTarget
En el modo de centro SpecificTarget, la session siempre usa el target especificado como centro. Si se pierde el tracking de este target, la session vuelve a seleccionar el centro, pero no selecciona otro target como nuevo objeto central. Cuando la session vuelve a rastrear este target especificado, este sigue seleccionándose como objeto central.
La reselección del centro ocurre en los siguientes casos:
El
targetespecificado no está rastreado en el frame actual
En este momento, si el modo SessionOrigin es válido, la session pasa al modo SessionOrigin y seleccionaXR Origincomo objeto central; de lo contrario, la session pasa al modo Camera y seleccionacameracomo objeto central.El
targetespecificado está en estado de tracking en el frame actual, y eltargetespecificado no estaba rastreado en el frame anterior
En este momento, la session selecciona eltargetespecificado como objeto central.
En el video anterior, el objeto central se especifica como el papel A4 rastreado mediante image tracking. Puede verse que, cuando se pierde el tracking del papel A4 (panda), la session no selecciona otro
targetcomo nuevo objeto central. En este momento, el árbol de Navidad (point cloud azul brillante) no se convierte en objeto central. Al final del video, el papel A4 vuelve a rastrearse y recupera su papel como objeto central.
Modo de centro SessionOrigin
El modo de centro SessionOrigin usa XR Origin como objeto central. En este modo, la camera y el target de la session están controlados por la session y se mueven tomando el XR Origin central como punto de referencia.
En el video anterior, el objeto central es XR Origin. Puede verse que, al no haber operación externa, XR Origin (esfera azul) permanece quieto, mientras que la camera (cono azul) y el papel A4 (panda) se mueven. El árbol de Navidad (point cloud azul brillante) tampoco se mueve, pero esto se debe a que está quieto con respecto a XR Origin.
En este modo, el XR Origin central usado como punto de referencia puede moverse libremente. En ese momento, la camera y el target de la session se moverán con él, y sus transform no pueden controlarse externamente.
En el video anterior, el objeto central es XR Origin. Puede verse que, como movimos manualmente XR Origin (esfera azul), la camera (cono azul), el árbol de Navidad (point cloud azul brillante) y el papel A4 (panda) se movieron con él. Hay que tener en cuenta que el contenido mostrado en la vista
Gameno cambia en ese momento, porque la posición y orientación de la camera con respecto a XR Origin y otros objetos no cambian.
En el modo SessionOrigin, XR Origin debe ser válido, por lo que el objeto central no cambia en este modo.
Modo de centro Camera
El modo de centro camera usa camera como objeto central. En este modo, XR Origin y target en la session están controlados por la session y se mueven tomando la camera central como punto de referencia.
En el video anterior, el objeto central es la camera. Puede verse que, al no haber operación externa, la camera (cono azul) permanece quieta, mientras que XR Origin (esfera azul), el árbol de Navidad (point cloud azul brillante) y el papel A4 (panda) se mueven.
En este modo, la camera central usada como punto de referencia puede moverse libremente. En ese momento, XR Origin y target en la session se moverán con ella, y sus transform no pueden controlarse externamente.
En el video anterior, el objeto central es la camera. Puede verse que, como movimos manualmente la camera (cono azul), XR Origin (esfera azul), el árbol de Navidad (point cloud azul brillante) y el papel A4 (panda) se movieron con ella. Hay que tener en cuenta que el contenido mostrado en la vista
Gameno cambia en ese momento, porque la posición y orientación de la camera con respecto a XR Origin y otros objetos no cambian.
En el modo Camera, camera debe ser válida, por lo que el objeto central no cambia en este modo.
Pasos siguientes
- Intente elegir el center mode adecuado


