Cómo trabajar con anclas

Usa anclas para que los objetos virtuales parezcan permanecer en su lugar en una escena de RA.

¿Por qué usar anclas?

A medida que la comprensión del entorno de ARCore se actualiza durante una experiencia de RA, los objetos virtuales pueden parecer alejarse de donde se colocaron. Esto puede afectar el realismo de la app y la experiencia del usuario.

Las anclas garantizan que los objetos parezcan permanecer en la misma posición y orientación en el espacio, lo que te ayuda a mantener la ilusión de objetos virtuales colocados en el mundo real.

Cómo funcionan las anclas

Si eres nuevo en el uso de las anclas, es útil revisar el espacio del mundo y las poses.

  • Espacio del mundo

    • Espacio de coordenadas en el que se ubican la cámara y los objetos
    • Las posiciones de la cámara y los objetos se actualizan en el espacio del mundo de fotograma a fotograma
  • Postura

    • Representa la posición y la orientación de un objeto en el espacio del mundo
    • También se conoce como transformación en iOS.

Cuando creas un ancla, usas una pose que describe una posición y una orientación relativas a la estimación del espacio mundial para el fotograma actual.

Adjuntas uno o más objetos a este ancla. El ancla y los objetos adjuntos a él parecen permanecer donde están ubicados en el mundo. A medida que la posición del ancla se adapta a las actualizaciones del espacio del mundo en cada fotograma, el ancla actualiza las posturas de los objetos en consecuencia.

Puedes adjuntar varios objetos al mismo ancla para asegurarte de que mantengan su posición y orientación relativas, incluso cuando se ajusta la posición del ancla.

Usa anclas en la escena

Para usar anclas en tu escena, el código debe hacer lo siguiente:

  • Crea anclas en el contexto de un objeto de seguimiento (como un plano) o la sesión de ARCore.
  • Adjunta uno o más objetos al ancla.

Las anclas pueden admitir diferentes tipos de comportamiento posicional en los objetos de tu escena.

La determinación del contexto de los anclas y la cantidad de anclas que necesitas para los objetos de la escena depende del comportamiento posicional que requiere la escena de RA. Consulta las siguientes secciones para obtener más información.

Elige un contexto de anclaje

Agrega anclas a tu escena con una sesión de ARCore o Trackable.

Cuando quieres que los objetos Fija el taquete
Deben aparecer "soldadas" en el Trackable y estar sujeto a los mismos efectos de rotación que el Trackable.
Esto incluye lo siguiente:
  • Parecer adherirse a la superficie de un avión
  • Mantener una posición relativa a un objeto Trackable, como flotar por encima o por delante de él
Monitoreo
Deben permanecer en la misma pose en el espacio del mundo durante toda la experiencia del usuario. Sesión de ARCore

Fija uno o más objetos

Puedes adjuntar uno o más objetos a un ancla. En general, estos objetos tienen una relación espacial con uno o más de los siguientes elementos:

  • Entre sí
  • Un objeto rastreable, como un avión
  • Una posición en el espacio mundial

Lineamientos de anclas

El realismo y el rendimiento de la app se benefician del uso de anclas de manera efectiva y eficiente.

Los objetos unidos a un ancla cercana parecen mantener su lugar de manera realista y relativa entre sí durante la experiencia de RA.

Usar solo las anclas que necesitas ayuda a reducir los costos de CPU.

Vuelve a usar las anclas cuando sea posible

En la mayoría de los casos, debes usar el mismo ancla para varios objetos cercanos en lugar de crear una nueva para cada objeto.

Usa un nuevo anclaje para un objeto si este necesita mantener una relación espacial única con un objeto Trackable o una posición en el espacio del mundo.

Ten en cuenta que, si cada objeto de una escena tiene su propio ancla, estas ajustarán las poses del objeto de forma independiente entre sí en respuesta a la estimación de ARCore del espacio del mundo en cada fotograma. Los objetos anclados por separado pueden cambiar o rotar uno respecto del otro, lo que rompe la ilusión de una escena de RA en la que los objetos virtuales deben permanecer en su lugar uno frente al otro.

Ejemplo
Por ejemplo, imagina que tu app permite que los usuarios coloquen muebles virtuales en una habitación. Un usuario abre la app y ARCore comienza a rastrear la mesa y el piso de la habitación como planos. El usuario coloca una lámpara virtual en la mesa. Luego, el usuario coloca una silla virtual en el suelo.

En este punto, la escena debe tener una ancla unida al plano de mesa y otra unida al plano del edificio.

Si el usuario agrega otra lámpara virtual al plano de mesa, puedes volver a usar el ancla que ya está pegada al plano de mesa. De esta manera, parece que ambas lámparas se adhieren al plano de mesa y mantienen su ubicación en relación con la otra. La silla también mantiene su posición relativa al plano del piso.

Mantén los objetos cerca de los anclas

Cuando anclas objetos, asegúrate de que estén cerca del ancla que estás usando. Evita colocar objetos a una distancia de más de ocho metros (8 m) o veintiséis pies (26 ft) del ancla para evitar un movimiento rotativo inesperado debido a las actualizaciones de ARCore en las coordenadas del espacio mundial.

Si necesitas colocar un objeto a más de ocho metros de distancia de un ancla existente, crea una nueva ancla más cerca de esta posición y fija el objeto a la nueva ancla.

Desconecta los anclajes que no se usan

Desconecta los anclas que ya no necesites para que tu app tenga un mejor rendimiento.

Tu app genera un costo de CPU por cada seguimiento, y ARCore no lanza las funciones de seguimiento que tienen anclas adjuntas.

Tipos de anclas

Los tipos de anclas se diferencian por el alcance en el que son válidos, desde locales hasta mundiales.

  • Las anclas locales se almacenan con la app de forma local y son válidas solo para esa instancia de la app. El usuario debe estar físicamente en la ubicación en la que coloca el ancla.

  • Las Cloud Anchors se almacenan en Google Cloud y se pueden compartir entre instancias de la app. El usuario debe estar físicamente en la ubicación en la que colocará el ancla.

  • Las anclas geoespaciales se basan en la latitud, la longitud y la altitud geodésicas, además de los datos del sistema de posicionamiento visual (VPS) de Google, para proporcionar una ubicación precisa en casi cualquier lugar del mundo. El usuario puede colocar un ancla desde una ubicación remota, siempre y cuando la app esté conectada a Internet y pueda usar el VPS.