Herramientas y visualizadores

Las herramientas y los visualizadores del espacio de nombres Microsoft.MixedReality.WorldLocking.Tools están diseñados para proporcionar ayuda durante la fase de desarrollo. También pueden servir de punto de partida en la interacción directa avanzada con el sistema World Locking Tools (WLT).

Aunque no están pensadas para usarse directamente tal y como se encuentra dentro de una aplicación, el desarrollador de la aplicación es libre de decidir hacerlo.

WorldLocking.Core está pensado para funcionar tal y como está en cualquier escenario de aplicación adecuado. Sin embargo, las herramientas pueden hacer suposiciones sobre la aplicación. Estas suposiciones pueden hacer que las aplicaciones sean inapropiadas en algunas situaciones.

Antes de incorporar cualquiera de las herramientas directamente dentro de la aplicación de envíos, plantéese crear una versión de esa herramienta personalizada adaptada a sus propios requisitos y recursos.

Herramientas

Ajustadores

Los ajustadores son componentes que controlan los eventos de reajuste. En concreto, crean puntos de conexión. En el caso de una operación de reajuste, AttachmentPoint actúa como devolución de llamada de notificación. El ajustador controla ese evento correctamente.

Consulte más información conceptual sobre los puntos de conexión.

La reacción correcta exacta a un evento de reajuste variará según los distintos tipos de objetos, y es algo es muy específico de cada aplicación. Por ejemplo, si el fragmento del objeto está inactivo actualmente, ¿debería mostrarse el objeto? En algunas aplicaciones, dado que no se puede determinar la ubicación adecuada del objeto, debería estar oculto. En el caso de otras aplicaciones, podría ser mejor mostrar el objeto en una posición temporalmente incorrecta que tener que pensar que ha desaparecido. E incluso para las aplicaciones que deben ocultar el objeto, hay varias maneras de ocultarlo (por ejemplo, deshabilitarlo en lugar de desplazarlo lejos).

Los componentes AdjusterFixed y AdjusterMoving controlan mínimamente dos escenarios comunes.

El componente AdjusterFixed supone que su destino no suele moverse. Si World Locking Tools envía una posición de ajuste debido a un evento de reajuste, significa que su objetivo es mantener el objeto de AdjusterFixed fijo en el mundo.

Por el contrario, el componente AdjusterMoving supone que su destino es móvil a través del espacio de coordenadas de Unity. Mantiene al sistema World Locking Tools al tanto de la ubicación de su objetivo, para que, en caso de una operación de reajuste, el sistema pueda dar la corrección más precisa con el fin de mantener constante la posición del objetivo en relación con el mundo físico en ese momento.

Adaptadores

Los componentes de adaptador están diseñados solo para fines ilustrativos. Si usa uno de los adaptadores, probablemente debería replantearse cómo está intentando usar World Locking Tools.

En concreto, MRTK ya tiene adaptadores integrados, por lo que la aplicación no necesita hacer ninguna transformación adicional del sistema de coordenadas.

Puede haber ocasiones, especialmente si no se utiliza MRTK, en el momento de la conversión de los recursos nativos, que informará en coordenadas del espacio elástico al espacio inmovilizado. En esos casos, uno de los adaptadores incluidos en esta documentación puede ser una buena referencia para el desarrollador de la aplicación.

  • WorldAnchorAdapter: un componente WorldAnchor ajustará la posición de un objeto en el espacio elástico para que permanezca fijo en el espacio físico. Esto es redundante con respecto al espacio bloqueado en el mundo proporcionado por World Locking Tools, por lo que el objeto se desplazará en el espacio inmovilizado. Este adaptador permite a WorldAnchor mantener la posición de un objeto en el espacio inmovilizado. Esto no es necesario, excepto para los diagnósticos. Todos los objetos del espacio de coordenadas global de Unity están bloqueados en el mundo por World Locking Tools.

  • ToggleWorldAnchor: similar a WorldAnchorAdapter, pero se puede activar o desactivar. También se convierte automáticamente al comportamiento normal de WorldAnchor cuando WorldLockingManager está deshabilitado. Solo es útil para los diagnósticos.

  • FrozenSpatialMapping: un adaptador administra y representa correctamente los resultados de un componente SurfaceObserver. El sistema de reconocimiento espacial de MRTK proporciona toda esta funcionalidad y muchas más, y no requiere ningún adaptador para trabajar con World Locking Tools.

  • FrozenTapToAdd: la interacción directa con el sistema de entrada de Unity requiere convertir los datos de coordenadas entrantes, como se muestra aquí. Esto no es necesario con el sistema de entrada de MRTK.

Visualizadores

Visualización de grafos de anclajes

AnchorGraphVisual y su objeto prefabricado asociado son el núcleo de las visualizaciones proporcionadas. Los componentes son los siguientes:

  1. Ejes: las posiciones actuales de los orígenes del espacio elástico (verde) y del espacio inmovilizado (azul) se muestran como identificadores estándar de ejes de 3 flechas.

  2. Anclajes elásticos: estos son los anclajes subyacentes nativos que se han creado para alimentar la optimización de Frozen World Engine. Cada uno se representa mediante un anillo, junto con una etiqueta de texto que lo identifica. Además, el color y el tamaño proporcionan más información.

    • Un anclaje activo con seguimiento será de color verde.

    • Un anclaje con seguimiento con relevancia cero será de color rojo.

    • Un anclaje no admitido será de color amarillo.

    • Cuanto más grande sea el anillo, mayor será la relevancia de ese anclaje.

  3. Anclajes inmovilizados: estos son los puntos de referencia correspondientes del espacio inmovilizado. En ausencia de errores del rastreador, estos se alinearán exactamente con los anclajes elásticos.

  4. Bordes elásticos-inmovilizados: conectan los anclajes elásticos a sus respectivos anclajes inmovilizados. Dado que, en ausencia de errores del rastreador, estos serían coincidentes, no ver estos bordes significa que todo está funcionando perfectamente. En cualquier caso, estos bordes no deben tener más de unos pocos centímetros. Están en rojo en el extremo inmovilizado. El color se atenúa a azul en el extremo elástico.

  5. Bordes de anclajes: estas líneas finas azul-gris muestran las conexiones entre los bordes elásticos en el grafo de anclajes.

Gráfico de anclaje típico que atraviesa una sala

Para activar la visualización del grafo de anclajes que genera World Locking Tools a medida que el usuario se desplaza por el entorno físico, solo es necesario soltar el objeto prefabricado WorldLockingTools > Prefabs (Objetos prefabricados) > AnchorGraphVisual en la escena. Se agrega de forma personalizada como un elemento relacionado de WorldLockingContext, pero su ubicación exacta en la jerarquía no es importante. Sin embargo, no debe colocarse en la jerarquía de la cámara.

Los anclajes espaciales que WLT crea y usa internamente se crean en la posición de la cámara. Como resulta desconcertante atravesar un campo de visualizaciones de anclajes a la altura de los ojos, el sistema las muestra de forma predeterminada a 1 metro de distancia de su posición real. Para ver las visualizaciones de anclajes en las posiciones de anclaje reales, establezca en 0 el parámetro Vertical Displacement (Desplazamiento vertical) del componente AnchorGraphVisual.

Salida adicional

Los ejemplos de World Locking incluyen diagnósticos de texto. La mayoría de ellos solo son relevantes para los desarrolladores de World Locking Tools, más que para los clientes de sus funcionalidades. Sin embargo, están disponibles para su lectura y, como se muestra en el script StatusToText, para su visualización en tiempo real.

Pantalla de diagnóstico típica

Para el análisis post mortem, la sección Diagnósticos de WorldLockingContext puede ser muy útil para notificar errores de Frozen World Engine. Consulte Notificación de un error para obtener más información.