Configuración para el movimiento y la teletransportación de avatares

Información general

Para que los avatares de Mesh se muevan y se teletransporten con éxito en su experiencia, es importante seguir ciertas directrices de diseño. Este artículo contiene información sobre cómo configurar superficies para el movimiento y la teletransportación, sugerencias para cosas como los límites de movimiento de avatares y el diseño de colisionadores, y una sección detallada sobre capas.

Guía de movimiento de avatar

Una escena debe tener Colliders para que el avatar pasee y se teletransporte. En general, un colisionador de malla de poli bajo que se ajuste estrechamente a la geometría visual producirá los mejores resultados. Box Colliders funciona muy bien para escenarios triviales, pero puede dar lugar a algunos problemas, como hacer que el avatar se atasque en las esquinas o derrotar los límites de altura de los pasos.

Límites de movimiento del avatar de malla:

Pendiente máxima caminable: <45 grados
Altura máxima del paso: 0,3
Radio de la cápsula avatar: 0,3
Altura de la cápsula avatar: 2
Altura del avatar: 1,8

Sugerencias para obtener los mejores resultados:

  • Alinee las superficies de colisión con las superficies visuales sobre las que caminará el avatar. Esto es importante para evitar problemas con la posición del avatar en relación con la superficie visual (para evitar el recorte o flotante).

  • Las esquinas redondeadas ayudan a suavizar el movimiento del avatar y evitan que el avatar se bloquee.

  • Para bloquear el movimiento del avatar, usa pendientes empinadas o una altura mucho mayor que la altura máxima del paso.

    • Modifica la forma de tus colisionadores para crear superficies naturalmente difíciles o imposibles de recorrer para el avatar. Por ejemplo, use un colisionador de malla con una forma irregular que no proporcione una superficie plana o una pendiente caminable para que el avatar se quede parado.

    • En algunos casos, un colisionador de cápsulas o una forma redondeada similar en objetos o áreas en las que el avatar no debería caminar puede ser suficiente. Estas formas son inaccesibles si la pendiente es lo suficientemente empinada y hará que el avatar se deslice.

Capas de colisión

Los objetos interactables son GameObjects con un colisionador sin desencadenador y la geometría visual correspondiente en una de las capas que colisionan con objetos. Avatares puede caminar y colocarse en objetos con colisionadores que no sean desencadenadores, así que tenga en cuenta qué capa se usa.

Para tener un posicionamiento y teleportación precisos de avatares, los colisionadores de escenas deben estar en las capas adecuadas. El avatar del usuario local interactuará con (colisionará con y caminará) con cualquier colisionador en las capas que admitan estas interacciones.

Cuando el avatar está colocado o teletransportado, es importante que el avatar colisione con un objeto "tierra" y se coloque de forma coherente a la misma altura sobre el suelo (esto se denomina "puesta a tierra"). Si no se detecta ningún terreno, el avatar caerá. Esto es aceptable si está por encima del suelo (no hay daños por caídas), pero si el avatar se coloca debajo del objeto "tierra", el avatar podría no registrar una colisión con ese objeto, lo que hace que se salga del entorno y vuelva a aparecer. Si el avatar penetra en el suelo durante el cambio de posición, se pondrá a tierra.

Todos los avatares de una sesión deben tener un alto coherente. La posición del avatar se ajusta si su altura cambia fuera del rango. Por ejemplo:

  • Un usuario de VR va físicamente hacia y desde una posición de sentado o de pie. El movimiento HMD hace que el avatar de la escena penetre en el suelo o esté de pie mucho más alto verticalmente que otros avatares.

  • Un script visual mal configurado teletransporta el avatar en una posición que no cabe o es verticalmente demasiado baja.

Otra razón por la que esto es importante es que cuando la actualización de la física de avatar, si el avatar no está conectado a tierra, saltará a la posición como resultado de su cápsula colisionando con el suelo y yanking el avatar en la nueva posición. Esto es especialmente impactante para los usuarios de HMD porque movimientos antinaturales como este pueden ser inductores de náuseas.

Capas con las que interactúa el avatar y que pueden seguir:

0: valor predeterminado
2 - Omitir Raycast
4 - Agua (solo se permiten colisionadores de gatillo, no se puede caminar)
14 - GroundCollision (teleportable)
18 - TriggerVolume (solo se permiten colisionadores de desencadenadores, no se pueden caminar)
21 - IgnoreObjects
26 - Custom26
27 - Custom27
28 - Custom28
29 - IgnoreRealtimeLight
30 - WallCollision

Obtenga más información sobre capas en un proyecto de Mesh.

Apoyo a la teletransportación

Para que una escena admita la teletransportación, las superficies teleportables (por ejemplo, el suelo o el suelo) deben tener colisionadores en la capa GroundCollision . Hay otras capas que se pueden caminar, pero solo GroundCollision es teleportable. La geometría visual no es teleportable y no debe estar en la capa GroundCollision ; solo los colisionadores pueden estar en esa capa. Las capas y colisiones inadecuadas o incoherentes pueden causar efectos no deseados al teletransportar o encontrar el suelo.

Una superficie teleportable debe cumplir las condiciones siguientes:

  • Debe tener algún tipo de colisionador que no sea desencadenador (por ejemplo, un colisionador de malla o un colisionador de caja).
  • Su capa debe establecerse en GroundCollision.

Tenga cuidado con techos bajos o túneles; podrían afectar a la puesta a tierra de avatares y la teletransportación. Por ejemplo, la física de avatar o el arco de teletransporte pueden intersecar o interactuar con el colisionador que se encuentra encima de ellos. La altura del suelo al techo para un área transitable debe ser mayor que la altura de la cápsula de avatar de 2 m. Debe haber un pequeño búfer de espacio sobre la cabeza del avatar, especialmente si el techo está inclinado en lugar de plano.

La física de locomoción proporciona un movimiento de avatar suave con todos los colisionadores interactables de los participantes y evita la penetración de áreas demasiado pequeñas para la colisión de avatares. Sin embargo, la colisión de tierra no autorizada o la geometría problemática del entorno, como formas de cuña o espacios muy estrechos, pueden hacer que el avatar o la cámara penetren objetos o se atasquen. Es esencial que pruebes exhaustivamente todas las superficies a pie y teleportables.

Capas en detalle

Capas de objeto

Cuando un Objeto GameObject tiene un colisionador sin desencadenador, colisionará con otros objetos si está en una de las capas de objeto.

0: valor predeterminado
2 - Omitir Raycast
4 - Agua (solo se permiten colisionadores de gatillo)
14 - GroundCollision
18 - TriggerVolume (solo se permiten colisionadores de desencadenadores)
20 - ObjectCollision
26 - Custom26
27 - Custom27
28 - Custom28
29 - IgnoreRealtimeLight
30 - WallCollision
31 - IgnoreParticipant

La capa predeterminada de Unity se denomina (no es sorprendente) "Default", por lo que es posible que tenga que usar una capa diferente si no desea interactuar con otros objetos. Por ejemplo, IgnoreParticipant se usa para objetos que no deben interactuar con el avatar y IgnoreCollisions se usa para objetos que no deben interactuar con nada.

Algunas capas importantes

Default

Si no se especifica de otro modo, un colisionador estará en la capa Predeterminada . Se trata de una capa que se puede caminar y el avatar se basará correctamente. No es un destino de teletransporte válido para el usuario local. Esta capa interactúa y colisiona con otros objetos.

GroundCollision

Solo los colisionadores de la capa GroundCollision son objetivos de teletransporte válidos para el usuario local. De lo contrario, es idéntico a la capa predeterminada .

La geometría visual no respaldada con colisiones no es transitable y no bloquea el avatar, por lo que es un objetivo de teletransporte incorrecto y no debe estar en la capa GroundCollision .

WallCollision

La capa WallCollision se usa para indicar las paredes que el avatar no debe penetrar con el fin de restringir el avatar dentro de un espacio jugable. Los usuarios de VR pueden mover sus avatares de manera arbitraria con el movimiento HMD durante la locomoción a escala de habitación y pueden caminar físicamente a través de una pared virtual. El avatar será teletransportado de vuelta a los límites del área de juego después de haber caminado una distancia establecida. De lo contrario, esta capa es idéntica a la capa predeterminada .

Definiciones de capa

A continuación se muestra una lista de capas definidas por el identificador y el nombre, incluida la semántica de bloqueo y la descripción:

  1. Predeterminada

    [Avatar/Object/Raycast Blocking]

    Se usa para colisiones e iluminación. Un avatar puede caminar sobre él, pero no teletransportar en él. Valor predeterminado para la mayoría de las propiedades. Los objetos de la capa Predeterminada reciben luz direccional en tiempo real del entorno.

  2. TransparentFX

    [No bloquear]

    Control especial en la canalización de representación de Unity para objetos de efectos transparentes y especiales; garantiza el orden de representación correcto para la transparencia.

  3. IgnoreRaycast

    [Avatar/Bloqueo de objetos]

    Capa habilitada para colisiones que no bloquea los raycasts, como objetos no interactables o paredes invisibles que los avatares no pueden pasar, pero los objetos físicos pueden pasar (por ejemplo, barandillas sobre las que se pueden lanzar objetos, pero los avatares no pueden saltar).

  4. No aplicable

  5. Agua

    [No bloquear]

    Específicamente para superficies de agua. Se puede usar para la representación especializada y las interacciones físicas con el agua. No use con colisionadores que no sean desencadenadores.

  6. N/D

  7. N/D

  8. N/D

  9. N/D

  10. N/D

  11. N/D

  12. N/D

  13. N/D

  14. N/D

  15. GroundCollision

    [Avatar/Object/Raycast Blocking]

    Se usa para superficies de colisión que se pueden teletransportar. Nota: En versiones anteriores del kit de herramientas de Mesh, esta era la capa "NavMesh".

  16. N/D

  17. N/D

  18. IgnoreCollisions

    [No bloquear]

    No interactúa con nada. Puede recortar a través del entorno y otros objetos.

  19. TriggerVolume

    [No bloquear]

    Capa para objetos que no deben verse afectados por la física o los raycasts y no tienen ningún uso especial en caso contrario. No use en objetos con colisionadores que no sean desencadenadores.

  20. No aplicable

  21. ObjectCollision

    [Bloqueo de objetos]

    Capa para colisionar con objetos, pero no con avatares o raycasts.

  22. IgnoreObjects

    [Bloqueo de Avatar/Raycast]

    Capa para colisionar con avatar, pero no con objetos.

  23. RaycastOnly

    [Bloqueo de Raycast]

    Capa para objetos que bloquean raycasts o que se pueden seleccionar, pero que no afectan al avatar ni a la colisión de objetos.

  24. N/D

  25. N/D

  26. N/D

  27. Custom26

    [Avatar/Object/Raycast Blocking]

    Capa definida por el usuario.

  28. Custom27

    [Avatar/Object/Raycast Blocking]

    Capa definida por el usuario.

  29. Custom28

    [Avatar/Object/Raycast Blocking]

    Capa definida por el usuario.

  30. IgnoreRealtimeLight

    [Avatar/Object/Raycast Blocking]

    Especifique qué objetos de arte del entorno no reciben luz direccional en tiempo real, como la mayoría de los objetos estáticos (use la iluminación al horno en su lugar con el mapa de luz).

  31. WallCollision

    [Avatar/Object/Raycast Blocking]

    Colisión que evita el recorte a través de una escena. Si un usuario de HMD pega la cabeza a través de la pared, se respawned a una ubicación cercana en el área jugable.

  32. IgnoreParticipant

    [Bloqueo de objeto/raycast]

    Objetos que bloquean raycasts y otros objetos, pero no avatares.

Interacciones de capas y tabla

Interacciones de capas

Captura de pantalla de la matriz de colisión de capas.

Tabla Capas

Una explicación de los cuatro códigos de color de la tabla Capas que sigue.

Tabla que muestra los atributos de todas las capas disponibles.