Table of Contents

Modo central de la sesión AR

El modo central es un concepto fundamental en Unity AR que determina qué objeto selecciona la sesión como punto de referencia (objeto central) para todo el seguimiento AR durante su funcionamiento, así como qué objetos en la sesión pueden moverse libremente. A través de lo siguiente, comprenderá los conceptos básicos del modo central y su impacto en el comportamiento del movimiento de los objetos en la escena.

Antes de comenzar

  • Comprenda los conceptos básicos, componentes y flujo de trabajo de una sesión a través de Introducción a la sesión AR.
  • Comprenda el papel de la cámara en escenas AR a través de Cámara, y cómo la sesión controla las propiedades de la cámara para garantizar una experiencia AR correcta.
  • Comprenda los conceptos básicos, componentes y ciclo de vida de XR Origin a través de XR Origin.
  • Comprenda los conceptos básicos, estados y ciclo de vida de un objetivo a través de Objetivo.

Objeto central y modo central

En una sesión, pueden estar funcionando simultáneamente una o más funciones AR diferentes. Estas funciones AR pueden rastrear diferentes objetos y pueden utilizar simultáneamente la función de seguimiento de movimiento para rastrear la posición y orientación del propio dispositivo.

Para garantizar que el comportamiento de movimiento de los objetos en la escena cumpla con las expectativas, la sesión necesita seleccionar un punto de referencia como centro de todo el seguimiento AR. Este punto de referencia está representado en la escena de Unity por el objeto central (CenterObject). El modo central (CenterMode) es la regla que determina qué objeto es este objeto central durante el funcionamiento de la sesión.

El centro de una sesión puede ser uno de los siguientes objetos:

  • Algún objetivo rastreado
  • XR Origin
  • La cámara

El modo central determina qué objeto selecciona la sesión como objeto central y si este objeto puede moverse libremente. Los objetos distintos a este (incluidas cámaras no centrales, XR Origin y objetivos) están controlados por la sesión y se mueven en relación con el objeto central como punto de referencia.

En Unity, session admite los siguientes cuatro modos de centro:

Nombre Diagrama Descripción
FirstTarget

SpecificTarget
alt text Utiliza target como centro, que puede moverse libremente. Entre ellos,
  • FirstTarget toma el primer target rastreado como centro.
  • SpecificTarget toma un target específico como centro.
La cámara en session, XR Origin y otros targets están controlados por session, moviéndose en relación al target central como punto de referencia.
SessionOrigin alt text Utiliza XR Origin como centro, que puede moverse libremente.
La cámara y los targets en session están controlados por session, moviéndose en relación al XR Origin central como punto de referencia.
Camera alt text Utiliza la cámara como centro, que puede moverse libremente.
XR Origin y los targets en session están controlados por session, moviéndose en relación a la cámara central como punto de referencia.

En los diagramas hay tres objetos: la esfera azul representa XR Origin, el cono azul representa la cámara, la imagen amarilla representa target. En diferentes modos de centro, session selecciona diferentes objetos como centro, mostrando el sistema de coordenadas local del objeto correspondiente.

Consejo

Si tiene experiencia con AR Foundation, puede notar que no existe un concepto similar en AR Foundation. De hecho, el comportamiento de AR Foundation es consistente con el modo de centro SessionOrigin.

En session, la relación de movimiento relativa entre target y camera está controlada por la session actual. La relación de movimiento relativa entre XR Origin y camera está controlada por la session actual o por un framework de terceros (como AR Foundation). La existencia de modos de centro garantiza que session pueda controlar correctamente el comportamiento de movimiento de los objetos en la escena en diferentes entornos de ejecución.

Por ejemplo, si AR Foundation o un SDK de visor basado en Unity XR controla la relación de movimiento relativa entre XR Origin y camera, XR Origin como diseño del framework Unity XR puede ser movido por session, mientras que camera no. En este caso, session limitará el modo de centro a FirstTarget, SpecificTarget o SessionOrigin, de modo que para session el centro será XR Origin o algún target, mientras que para el framework Unity XR el centro sigue siendo XR Origin, y todo el sistema puede funcionar perfectamente.

Advertencia

En Unity AR, cualquier objeto que exista en el sistema de coordenadas mundial de Unity y no ajuste su transform según el componente session puede no mostrarse correctamente. Porque session ajustará la posición y orientación de otros objetos en la escena según la posición y dirección del objeto central. Si hay objetos no controlados por session, su posición y orientación pueden no coincidir con las calculadas por session, lo que lleva a comportamientos inesperados.

Por ejemplo, si se coloca un modelo de panda en el sistema de coordenadas mundial, la posición y orientación de este modelo de panda pueden no tener relación con ningún objeto del mundo real, pareciendo flotar en el aire o moverse por todas partes.

La práctica correcta es colocar siempre el contenido a mostrar bajo un nodo target, o bajo el nodo XR Origin (si el contenido necesita seguir el movimiento de XR Origin). Así, la posición y orientación del contenido se ajustarán según los cálculos de session, asegurando que el contenido se superponga correctamente en el mundo real.

Alinear manualmente la posición y orientación del contenido con target o XR Origin es posible, pero debe hacerse en el momento adecuado. Puede consultar Seleccionar el modo de centro adecuado.

Modos de centro disponibles

No todos los modos de centro son válidos en todas las situaciones. Session determina qué modos de centro son válidos según el entorno de ejecución actual y el frame source seleccionado, para garantizar un control correcto del 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 para la session actual.

Según el frame source seleccionado, los modos de centro válidos de session tienen las siguientes situaciones diferentes:

frame source Cámara controlada Tiene datos de movimiento Tiene diseño de origen Modos de centro válidos
  • CameraDeviceFrameSource
  • FramePlayer y el frame source usado en la grabación no tiene datos de movimiento
  • ExternalImageStreamFrameSource
no -
  • FirstTarget
  • SpecificTarget
  • Camera
  • ARCoreFrameSource
  • AREngineFrameSource
  • ARKitFrameSource
  • InertialCameraDeviceFrameSource
  • MotionTrackerFrameSource
  • ThreeDofCameraDeviceFrameSource
  • FramePlayer y el frame source usado en la grabación tiene datos de movimiento
  • FirstTarget
  • SpecificTarget
  • SessionOrigin
  • Camera (*)
* Solo válido cuando camera no es
nodo hijo de XR Origin
  • ARCoreARFoundationFrameSource
  • ARKitARFoundationFrameSource
  • VisionOSARKitFrameSource
  • XREALFrameSource
  • ExternalDeviceFrameSource y OriginType es XROrigin o Custom
    • PicoFrameSource
    • RokidFrameSource y no usa UXR
no
  • FirstTarget
  • SpecificTarget
  • SessionOrigin
  • ExternalDeviceFrameSource y OriginType es None
    • RokidFrameSource y usa UXR
no no
  • SessionOrigin

Excepto cuando se usa FramePlayer, los modos de centro válidos se determinan al ensamblar session. Al usar FramePlayer, los modos de centro válidos se determinan dinámicamente durante la ejecución de session según si los datos de cada fotograma contienen información de movimiento.

Características de diferentes modos centrales

A continuación, mostraremos el comportamiento de movimiento de los objetos en diferentes modos centrales a través de una serie de videos de ejemplo.

El contenido del video es el siguiente:

En el mundo real, hay dos tipos diferentes de objetos rastreables:

  • Uno es un árbol de Navidad, que permanece inmóvil. Se rastrea mediante la función de mapa espacial disperso.
  • El otro es una hoja de papel A4, con una imagen impresa, que se puede mover. Se rastrea mediante la función de seguimiento de imágenes.

Al grabar el video, el observador (teléfono) comienza desde detrás y a la derecha del árbol de Navidad y se mueve alrededor del árbol. El papel A4 se balancea de izquierda a derecha frente al observador.

Para facilitar la observación, hemos añadido algunos identificadores a diferentes objetos en la escena:

  • Árbol de Navidad: cuando está en estado de seguimiento, se superpone una nube de puntos azul brillante en el espacio que ocupa. Estos identificadores desaparecen cuando se pierde el seguimiento.
  • Papel A4: cuando está en estado de seguimiento, se superpone un panda directamente encima de él. La vista Game también muestra adicionalmente una imagen con contenido y tamaño idénticos al papel A4. Estos identificadores desaparecen cuando se pierde el seguimiento.
  • XR Origin: se coloca una esfera azul en su posición.
  • Cámara: se coloca un cono azul en su posición, con el eje principal del cono alineado con la dirección de la vista de la cámara.

Estos videos se grabaron utilizando datos de ejecución simulada en el modo Play del editor de Unity. El lado izquierdo del video muestra la vista Scene, y el lado derecho muestra la vista Game. El contenido de la vista Game es idéntico a lo que un usuario vería en el mundo real con un teléfono móvil.

Modos centrales FirstTarget y SpecificTarget

Los modos FirstTarget y SpecificTarget son modos que toman un target como objeto central. En estos modos, además del target central, la cámara y el XR Origin en la sesión, así como otros targets, están controlados por la sesión y se mueven en relación con el target central como punto de referencia.

Algunos targets pueden moverse en el mundo real, como un papel A4 en el video.

En este video, el objeto central es un papel A4 rastreado mediante la función de seguimiento de imágenes. Puede verse que, sin intervención externa, el papel A4 (el panda) permanece inmóvil, mientras que la cámara (el cono azul), el XR Origin (la esfera azul) y el árbol de Navidad (la nube de puntos azul brillante) se están moviendo.

Algunos targets son estáticos en el mundo real, como el árbol de Navidad en el video.

En este video, el objeto central es un árbol de Navidad rastreado mediante la función de mapa espacial disperso. Puede verse que, sin intervención externa, el árbol de Navidad (la nube de puntos azul brillante) permanece inmóvil, mientras que la cámara (el cono azul) y el papel A4 (el panda) se mueven. El XR Origin (la esfera azul) tampoco se mueve, pero solo porque está estático en relación con el árbol de Navidad.

En estos dos modos, el target central que sirve como punto de referencia puede moverse libremente. En este caso, la cámara, el XR Origin y otros targets en la sesión se moverán con él, y sus transformaciones no pueden ser controladas externamente.

En este video, el objeto central es un papel A4 rastreado mediante la función de seguimiento de imágenes. Puede verse que, al mover manualmente el papel A4 (el panda), la cámara (el cono azul), el XR Origin (la esfera azul) y el árbol de Navidad (la nube de puntos azul brillante) se mueven con él. Es importante notar que el contenido mostrado en la vista Game no cambia, porque la posición y orientación de la cámara no cambian en relación con el papel A4 y otros objetos.

La diferencia entre los modos FirstTarget y SpecificTarget radica en que, durante la ejecución, el target central puede cambiar, pero la forma de seleccionar el centro difiere. Para explicar esto, debemos considerar el proceso de seguimiento exitoso y pérdida.

Cuando cambia el objeto central de la sesión, ARSession.CenterObject siempre reflejará el objeto central actual, pero ARSession.CenterMode no cambiará.

Cambio de centro en el modo central FirstTarget

En el modo FirstTarget, la sesión siempre está centrada en el primer target rastreado. Si se pierde el seguimiento de este target, la sesión volverá a seleccionar un centro. Cuando la sesión está rastreando o comienza a rastrear otro target, ese otro target será seleccionado como el nuevo objeto central.

La reselección del centro ocurre en las siguientes situaciones:

  • Ningún target está en estado de seguimiento en el fotograma actual
    En este caso, si el modo SessionOrigin es válido, la sesión se degradará al modo SessionOrigin, seleccionando XR Origin como objeto central; de lo contrario, la sesión se degradará al modo Camera, seleccionando camera como objeto central.

  • Hay un target en estado de seguimiento en el fotograma actual, y ningún target estaba en estado de seguimiento en el fotograma anterior
    En este caso, la sesión seleccionará uno de los target rastreados como objeto central.

  • Hay un target en estado de seguimiento en el fotograma actual, y el target central anterior perdió su seguimiento en el fotograma actual
    En este caso, la sesión seleccionará uno de los target rastreados como nuevo objeto central.

En el video anterior, el objeto central inicialmente es una hoja A4 rastreada mediante la función de seguimiento de imágenes. Se puede observar que cuando se pierde el seguimiento de la hoja A4 (panda), la sesión vuelve a seleccionar un objeto central. En este momento, el árbol de Navidad (nube de puntos azul brillante) se convierte en el nuevo objeto central. Al final del video, la hoja A4 vuelve a ser rastreada, pero no se convierte en el objeto central porque el árbol de Navidad ya es el centro.

SpecificTarget centro modo cambios de centro

En el modo SpecificTarget, la sesión siempre está centrada en el target especificado. Si se pierde el seguimiento de este target, la sesión volverá a seleccionar un centro, pero no elegirá otro target como nuevo objeto central. Cuando la sesión vuelve a rastrear el target especificado, este seguirá siendo seleccionado como objeto central.

La reselección del centro ocurre en las siguientes situaciones:

  • El target especificado no está siendo rastreado en el fotograma actual
    En este caso, si el modo SessionOrigin es válido, la sesión se degradará al modo SessionOrigin, seleccionando XR Origin como objeto central; de lo contrario, la sesión se degradará al modo Camera, seleccionando camera como objeto central.

  • El target especificado está en estado de seguimiento en el fotograma actual, y no estaba siendo rastreado en el fotograma anterior
    En este caso, la sesión seleccionará el target especificado como objeto central.

En el video anterior, el objeto central se especificó como una hoja A4 rastreada mediante la función de seguimiento de imágenes. Se puede observar que cuando se pierde el seguimiento de la hoja A4 (panda), la sesión no selecciona otro target como nuevo objeto central; el árbol de Navidad (nube de puntos azul brillante) no se convierte en el centro. Al final del video, la hoja A4 vuelve a ser rastreada y recupera su posición como objeto central.

SessionOrigin centro modo

El modo SessionOrigin es un modo que toma XR Origin como objeto central. En este modo, la cámara y los target dentro de la sesión están controlados por la sesión y se mueven tomando como punto de referencia el centro XR Origin.

En el video anterior, el objeto central es XR Origin. Se puede observar que, al no haber operación externa, XR Origin (esfera azul) permanece estático, mientras que la cámara (cono azul) y la hoja A4 (panda) se mueven. El árbol de Navidad (nube de puntos azul brillante) tampoco se mueve, pero esto se debe a que está estático en relación con XR Origin.

En este modo, el centro XR Origin, como punto de referencia, se puede mover libremente. En ese caso, la cámara y los target dentro de la sesión se moverán con él; sus transform no pueden ser controlados externamente.

En el video anterior, el objeto central es XR Origin. Se puede observar que, al mover manualmente XR Origin (esfera azul), la cámara (cono azul), el árbol de Navidad (nube de puntos azul brillante) y la hoja A4 (panda) se mueven con él. Es importante notar que el contenido mostrado en la vista Game no cambia, porque la posición y orientación de la cámara no cambian en relación con XR Origin y los otros objetos.

En el modo SessionOrigin, XR Origin debe ser válido, por lo que el objeto central no cambia en este modo.

Camera centro modo

El modo camera toma cámara como objeto central. En este modo, XR Origin y los target dentro de la sesión están controlados por la sesión y se mueven tomando como punto de referencia el centro cámara.

En el video anterior, el objeto central es la cámara. Se puede observar que, al no haber operación externa, la cámara (cono azul) permanece estática, mientras que XR Origin (esfera azul), el árbol de Navidad (nube de puntos azul brillante) y la hoja A4 (panda) se mueven.

En este modo, el centro cámara, como punto de referencia, se puede mover libremente. En ese caso, XR Origin y los target dentro de la sesión se moverán con él; sus transform no pueden ser controlados externamente.

En el video anterior, el objeto central es la cámara. Se puede observar que, al mover manualmente la cámara (cono azul), XR Origin (esfera azul), el árbol de Navidad (nube de puntos azul brillante) y la hoja A4 (panda) se mueven con ella. Es importante notar que el contenido mostrado en la vista Game no cambia, porque la posición y orientación de la cámara no cambian en relación con XR Origin y los otros objetos.

En el modo Camera, cámara debe ser válido, por lo que el objeto central no cambia en este modo.

Próximos pasos

Temas relacionados