Table of Contents

Elegir el modo de centro adecuado

Elegir el modo de centro correcto es esencial para la creación de contenido. En este artículo aprenderá cómo obtener y modificar el modo de centro, y encontrará recomendaciones para elegir el modo adecuado.

Antes de empezar

  • Consulte Introducción a AR Session para entender los conceptos básicos, los componentes y el flujo de trabajo de una session.
  • Consulte Modo de centro de AR Session para entender el concepto de modo de centro y su influencia en el movimiento de los objetos de la escena.

Obtener los modos de centro disponibles

Cuando la session está ejecutándose, solo los modos de centro disponibles para esa session aparecen en el menú desplegable Center del panel Inspector. Si la session no ha iniciado, se mostrarán todos los modos de centro.

alt text

La imagen muestra los modos de centro disponibles para una session que usa CameraDeviceFrameSource en el editor.

En scripts, después de que la session se haya ensamblado correctamente, puede obtener la lista de modos de centro disponibles con la propiedad ARSession.AvailableCenterMode.

Por ejemplo, el siguiente código muestra cómo comprobar si un modo de centro está disponible en la session actual:

if (Session.AvailableCenterMode.Contains(mode))
{
    // mode está disponible en la session actual
}

Modificar el modo de centro

Abra el panel Inspector y seleccione el modo de centro que desee en el desplegable Center.

alt text

En scripts, puede modificar el modo de centro mediante la propiedad ARSession.CenterMode.

Por ejemplo, el siguiente código muestra cómo recorrer en bucle los modos de centro disponibles:

while (true)
{
    Session.CenterMode = (ARSession.ARCenterMode)(((int)Session.CenterMode + 1) % Enum.GetValues(typeof(ARSession.ARCenterMode)).Length);
    if (Session.AvailableCenterMode.Contains(Session.CenterMode)) { break; }
}

Cada vez que la session se actualiza, comprobará si el modo de centro actual es válido. Si lo es, intentará usar el nuevo modo inmediatamente.

En el vídeo anterior, la session usa primero el modo FirstTarget, con el árbol de Navidad como objeto central (nube de puntos azul claro). Después cambiamos manualmente el modo de centro a Camera, y el objeto central pasa a ser la cámara (cono azul). Para más detalles, consulte Modo de centro de AR Session.

Si el modo de centro modificado no es válido en la session actual, la propiedad CenterMode se cambia automáticamente al primer modo disponible (normalmente FirstTarget o SessionOrigin) y se escribe una advertencia en el registro:

Center mode {Value} is unavailable in this session, reset to {NewValue}.

Cómo elegir el modo de centro

La alineación con objetos del mundo real es una necesidad básica de la creación AR, y el modo de centro determina qué objeto se usa como referencia para calcular la posición y la orientación de los demás objetos de la escena. Por eso, elegir el modo adecuado es fundamental.

Recomendaciones generales

En muchos casos, usar FirstTarget o SpecificTarget con target como centro resulta más cómodo para la creación de contenido. Así, los puntos de referencia del contenido bajo target permanecen estables y no se ven afectados innecesariamente por el movimiento de XR Origin o camera (por ejemplo, en el cálculo del sistema físico). Aun así, no es absoluto:

  • Si no sabe qué modo elegir, use el valor predeterminado, es decir, el centro FirstTarget.
    Como la mayoría de las funciones AR tienen error y corrigen ese error de forma continua durante la ejecución, objetos que parecen inmóviles en el mundo real (por ejemplo target en una sparse spatial map y XR Origin en motion tracking) en realidad pueden moverse relativo al espacio virtual. En ese caso, usar target como centro se ajusta mejor a las necesidades de creación.

  • Caso de varios target rastreados al mismo tiempo
    En este caso, debido al error de cálculo, aunque los objetos del mundo real estén inmóviles entre sí, estos target también pueden mostrar movimiento relativo. La elección del centro debe basarse en la necesidad real; normalmente el modo FirstTarget es más adecuado.

  • Cuándo usar SessionOrigin
    SessionOrigin es adecuado para escenas en las que solo se ejecuta motion tracking, porque XR Origin es el único punto de referencia. También sirve para casos especiales: si el fabricante del visor no implementó correctamente el punto de referencia de motion tracking, entonces debe usarse el centro del mundo de Unity para forzar el modo SessionOrigin.

  • Escenarios de uso de Camera
    El modo Camera es más adecuado para escenas donde la cámara física no se mueve (por ejemplo, un AR de tipo cartas con cámara fija). En ese caso, este modo facilita la creación.

Modos de centro habituales según la función AR

Al usar algunas funciones AR por separado, ciertos modos de centro se usan con más frecuencia. La tabla siguiente resume los modos habituales por función:

Función Modo de centro habitual
Mega FirstTarget o SpecificTarget
Motion tracking SessionOrigin
Plane detection SessionOrigin
Sparse spatial map FirstTarget o SpecificTarget
Dense spatial map SessionOrigin
Surface tracking FirstTarget o SpecificTarget
Image tracking FirstTarget, SpecificTarget o Camera
Cloud image recognition FirstTarget, SpecificTarget o Camera
Object tracking FirstTarget, SpecificTarget o Camera

Aspectos a considerar en desarrollo multiplataforma

Al desarrollar una aplicación AR para varios dispositivos, hay que tener en cuenta el soporte de cada uno para los modos de centro.

  • Si solo involucra teléfonos y tabletas, normalmente no habrá problema. Si necesita usar SessionOrigin, asegúrese de que motion tracking pueda funcionar.
  • Si necesita usar un visor, preste atención especial:
    • Consulte Modos de centro válidos para ver qué modos admite cada dispositivo. Si usa una extensión de terceros, revise también el OriginType que utiliza.
    • En dispositivos Rokid, trate de no usar UXR. Con XRI se garantiza que la mayoría de los modos de centro estén disponibles.
    • En visores que no admiten FirstTarget ni SpecificTarget, tenga en cuenta que la mayoría de los contenidos, como Mega o image tracking, no podrán permanecer fijos respecto al sistema de coordenadas del mundo de Unity.

Contenido que se muestra correctamente con cada modo de centro

Advertencia

En Unity AR, cualquier objeto que exista en el sistema de coordenadas del mundo de Unity y no haya ajustado su transform según los componentes de la session puede no mostrarse correctamente.

Si coloca modelos en el sistema de coordenadas del mundo, su posición y orientación pueden no corresponder con ningún objeto real. El resultado puede parecer correcto por casualidad, o parecer que flota o se mueve por todas partes.

Para que el contenido se muestre correctamente con cualquier modo de centro, la forma correcta es:

  • colocar siempre el contenido a mostrar bajo el nodo target correspondiente, o bajo el nodo XR Origin si el contenido necesita seguir el movimiento de XR Origin
  • o alinear manualmente el contenido con target o XR Origin, pero hacerlo después del evento ARSession.PostSessionUpdate
Nota

Esto no garantiza que todos los elementos funcionen perfectamente, porque algunas funciones de Unity solo funcionan en el sistema de coordenadas del mundo (por ejemplo, el sistema físico). Elegir el modo de centro correcto sigue siendo importante.

Temas relacionados