Ejemplo de la física del bloqueo en el mundo

El ejemplo del haz de física ofrece unas cuantas experiencias de física virtual que están habilitadas por el sistema de coordenadas bloqueado en el mundo de World Locking Tools.

Antecedentes

En HoloLens, la relación entre un anclaje espacial y la cabeza u otros anclajes espaciales puede cambiar en cualquier momento, debido a los datos del sensor entrantes o incluso al reprocesamiento de los datos existentes.

Los anclajes espaciales de Unity reaccionan a los cambios en la posición del anclaje espacial subyacente arrastrando con él el elemento GameObject asociado. Este movimiento provoca dificultades para la simulación de la física:

  • Dado que la posición del elemento GameObject anclado espacialmente se establece explícitamente mediante el anclaje espacial de cada fotograma, no se puede establecer mediante simulación (por ejemplo, el impulso).
  • Dado que el anclaje espacial está actualizando con frecuencia la posición de su elemento GameObject, no parecerá estar en reposo con respecto a otros cuerpos aún rígidos (RigidBodies).
  • Debido a los cambios implícitos del sistema de coordenadas de Unity, a medida que los anclajes espaciales ajustan las coordenadas de los Hologramas estáticos para mantenerlas fijas en relación con el mundo real, los cálculos físicos, como rutas y trayectorias, estarán desactivados. Por ejemplo, un proyectil que apunte perfectamente a un holograma fallará igualmente aunque se reposicione el holograma por su anclaje espacial entre el cálculo de la trayectoria y el alcance del objetivo.

Cuando las relaciones entre los anclajes espaciales medidos y los objetos virtuales visibles bloqueados a ellos se vuelven incoherentes, entonces en lugar de ajustar los objetos virtuales como lo hacen los anclajes espaciales de Unity, World Locking Tools ajusta la transformación de la cabeza para minimizar los artefactos percibidos de esas incoherencias. Esto permite que los objetos virtuales parezcan coherentes en un espacio de coordenadas estable, lo que elimina los problemas anteriores.

Compilar el ejemplo

El ejemplo requiere la funcionalidad SpatialPerception. La funcionalidad Microphone también es necesaria para los comandos de voz.

Este ejemplo requiere que se agreguen las siguientes capas a las etiquetas del proyecto & capas:

  • Con pilares
  • SpatialMapping

Ejecución de la demo

HUD de controles

Este HUD básico no es específico de este ejemplo de haz de física, sino que solo permite que el control en tiempo de ejecución del comportamiento de World Locking Tools explore sus funcionalidades. Está disponible como complemento para el desarrollo en cualquier aplicación que use World Locking Tools, como se describe en Configuración inicial de World Locking Tools.

Captura de pantalla del HUD de ejemplos

Las estadísticas de diagnóstico se muestran de forma predeterminada, pero se pueden deshabilitar desde el HUD de control.

Botones de radio de modos

En cualquier momento dado, el ejemplo puede estar en cualquiera de los modos siguientes:

  • Idle (Inactivo): el ejemplo de física no está procesando actualmente la entrada. El menú del botón de radio y el HUD, por supuesto, siguen procesando las entradas.

  • Throw Dart (Lanzar dardo): se calcula una trayectoria, basada en las leyes de la física básicas, y se muestra. El arco visualizado muestra la trayectoria que seguirá un proyectil disparado (mediante un gesto de selección). El dardo lanzado seguirá una trayectoria balística, rebotando en cualquier superficie de colisión, incluidas las mallas de reconstrucción espacial (SR), con las que impacte.

    Estos dardos son "extraíbles", como se describe a continuación.

  • Add Pillars (Agregar pilares): en un gesto de selección, se lanza un rayo al mundo en la dirección indicada. Si encuentra una superficie colisionable, se agrega a la escena un pilar vertical en ese lugar.

    Cada pilar agregado es colisionable y puede servir como soporte de haz, como se describe a continuación. Sin embargo, se han agregado dos tipos de pilares:

    • Si el pilar está colocado sobre una superficie "extraíble", entonces el pilar se simula físicamente (por ejemplo, puede ser derribado).
    • De lo contrario, el pilar es colisionable, pero estático.

    De hecho, esta regla significa que si se agrega un pilar en la malla SR, será estático; de lo contrario, será dinámico.

    Los pilares son "extraíbles".

  • Add Beam (Agregar haz): en la primera selección, se lanza un rayo en la escena para encontrar el primer extremo del rayo. Después, a medida que el rayo de selección se desplaza por la escena, se dibuja una línea desde el primer extremo hasta el extremo actual. El segundo gesto de selección creará un haz que se extenderá entre el primer extremo y el extremo actual.

    El equilibrio del haz con los extremos en los pilares requiere claramente un espacio en el que los pilares de los extremos permanezcan fijos entre sí.

    Los haces son "extraíbles".

  • Remove Objects (Quitar objetos): al seleccionar, si el objeto de proyección de rayos es "extraíble", entonces se elimina de la escena. Cualquier objeto que se apoye en el objeto eliminado se retirará entonces.