Configuración para el movimiento y la teletransportación de avatares
Información general
Para que los avatares de Mesh se muevan y teletransporten su experiencia correctamente, 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 avatar y el diseño del colisionador, y una sección detallada sobre capas.
Guía de movimiento de avatares
Una escena debe tener Colisionadores para que el avatar pase y teletransporte. En general, un colisionador de malla poli bajo que se ajusta estrechamente a la geometría visual producirá los mejores resultados. Los colisionadores de box funcionan bien en escenarios triviales, pero pueden dar lugar a algunos problemas, como hacer que el avatar se bloquee en las esquinas o derrotar los límites de altura del paso.
Límites de movimiento de avatares de malla:
Pendiente máxima caminable: <45 grados
Altura máxima del paso: 0,3
Radio de cápsula de 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 en 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 evitar que el avatar se bloquee.
Para bloquear el movimiento de avatares, use pendientes empinadas o una altura mucho mayor que la altura máxima del paso.
Modifique la forma de los colisionadores para crear superficies que sean naturalmente difíciles o imposibles de atravesar el avatar. Por ejemplo, usa un colisionador de malla con una forma irregular que no proporciona una superficie plana o una pendiente caminable para que el avatar esté encendido.
En algunos casos, un colisionador de cápsulas o una forma redondeada similar en objetos o áreas en las que el avatar no debe caminar puede ser suficiente. Estas formas son inamamables si la pendiente es lo suficientemente empinada y hará que el avatar se deslice.
Capas de colisión
Los objetos interactivos son GameObjects con un colisionador no desencadenador y la geometría visual correspondiente en una de las capas de colisión de objetos. Avatares puede caminar y colocarse en objetos con colisionadores no desencadenadores, así que tenga en cuenta qué capa se está usando.
Para tener un posicionamiento preciso del avatar y la teletransportación, los colisionadores de escena deben estar en las capas adecuadas. El avatar del usuario local interactuará con (colisionará con y caminará) con los colisionadores de las capas que admiten estas interacciones.
Cuando el avatar se coloca o teletransporta, es importante que el avatar entre en conflicto con un objeto "tierra" y se coloca constantemente a la misma altura sobre el suelo (esto se denomina "conexión a tierra"). Si no se detecta ningún suelo, el avatar caerá. Esto es aceptable si está por encima del suelo (no hay ningún daño que caiga), pero si el avatar se coloca por debajo del objeto "tierra", el avatar podría no registrar una colisión con ese objeto, lo que hace que se caiga fuera del entorno y respawn. Si el avatar penetra en el suelo durante el cambio de posición, se colocará en 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 intervalo. Por ejemplo:
Un usuario de VR va físicamente hacia y desde una posición sentada 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 encaja o es demasiado bajo verticalmente.
Otra razón es importante es que, cuando la física del avatar se actualice, si el avatar no está basado, saltará a la posición como resultado de su cápsula colisionando con el suelo y yanking del avatar en la nueva posición. Esto es especialmente impactante para los usuarios de HMD porque los movimientos no naturales como este pueden ser náuseas inducibles.
Capas con las que interactúa el avatar y puede caminar:
0 - Valor predeterminado
2 - Omitir Raycast
4 - Agua (solo los colisionadores de desencadenadores permitidos, no caminables)
14 - GroundCollision (teletransportable)
18 - TriggerVolume (solo los colisionadores de desencadenadores permitidos, no accesibles)
21 - IgnoreObjects
26 - Custom26
27 - Custom27
28 - Custom28
29 - IgnoreRealtimeLight
30 - WallCollision
Obtenga más información sobre capas en un proyecto mesh.
Compatibilidad con 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 caminables, pero solo GroundCollision es teletransportable. La geometría visual no es teleportable y no debe estar en la capa GroundCollision ; solo los colisionadores pueden estar en esa capa. La capa y la colisión incorrectas o incoherentes pueden causar efectos no deseados al teletransportar o encontrar el suelo.
Una superficie teletransportable debe cumplir las condiciones siguientes:
- Debe tener algún tipo de colisionador no desencadenador conectado (por ejemplo, un colisionador de malla o un colisionador de cuadros).
- Su capa debe establecerse en GroundCollision.
Tenga cuidado con los techos bajos o túneles; esto podría afectar potencialmente a la tierra del avatar y la teletransportación. Por ejemplo, la física del avatar o el arco de teletransporte pueden intersecr o interactuar con el colisionador por encima de ellos. La altura desde el suelo hasta el techo para un área transversal debe ser superior a la altura de la cápsula de avatar de 2m. 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 interactivos del participante y evita la penetración de áreas que son 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 las formas de cuña o espacios muy estrechos, pueden provocar que el avatar o la cámara penetren objetos o se bloquee. Es esencial que pruebes exhaustivamente todas las superficies caminables y teleportables.
Capas detalladas
Capas de objeto
Cuando un GameObject tiene un colisionador que no es desencadenador, colisionará con otros objetos si se encuentra en una de las capas de objeto.
0 - Valor predeterminado
2 - Omitir Raycast
4 - Agua (solo se permiten colisionadores de desencadenadores)
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 es (no sorprendentemente) denominada "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
Valor predeterminado
Si no se especifica lo contrario, un colisionador estará en la capa Predeterminada . Se trata de una capa que se puede caminar y el avatar se pondrá correctamente en tierra. 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 destinos 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 colisión no es caminable 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 paredes que el avatar no debe penetrar para restringir el avatar dentro de un espacio jugable. Los usuarios de VR pueden mover sus avatares de maneras arbitrarias con el movimiento HMD durante la locomoción de la escala de la habitación y pueden recorrer físicamente una pared virtual. El avatar se teletransportará de vuelta a los límites del área de juego después de haber recorrido una distancia fija. De lo contrario, esta capa es idéntica a la capa predeterminada .
Definiciones de capas
A continuación se muestra una lista de capas definidas por identificador y nombre, incluida la semántica de bloqueo y la descripción:
Default
[Avatar/Objeto/Bloqueo de Raycast]
Se usa para colisión e iluminación. Un avatar puede caminar sobre él, pero no teletransportarlo a él. Valor predeterminado para la mayoría de las propiedades. Los objetos de la capa Predeterminada reciben luz direccional en tiempo real del entorno.
TransparentFX
[Sin bloqueo]
Control especial en la canalización de representación de Unity para objetos de efectos especiales y transparentes; garantiza el orden de representación correcto para la transparencia.
IgnoreRaycast
[Avatar/Bloqueo de objetos]
Capa habilitada para colisiones que no bloquea raycasts, como objetos no interactuables o paredes invisibles que los avatares no pueden pasar, pero los objetos físicos pueden pasar a través (por ejemplo, raíles que se pueden lanzar objetos, pero los avatares no pueden saltar).
N/D
Agua
[Sin bloqueo]
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 son desencadenadores.
N/D
N/D
N/D
N/D
N/D
N/D
N/D
N/D
N/D
GroundCollision
[Avatar/Objeto/Bloqueo de Raycast]
Se usa para superficies de colisión caminables a las que se puede teletransportar. Nota: En versiones anteriores del Kit de herramientas de Malla, esta era la capa "NavMesh".
N/D
N/D
IgnoreCollisions
[Sin bloqueo]
No interactúa con nada. Puede recortar a través del entorno y otros objetos.
TriggerVolume
[Sin bloqueo]
Capa para objetos que no deben verse afectados por físicas o raycasts y que no tienen ningún uso especial en caso contrario. No use en objetos con colisionadores que no son desencadenadores.
N/D
ObjectCollision
[Bloqueo de objetos]
Capa para colisionar con objetos, pero no con el avatar o raycasts.
IgnoreObjects
[Avatar/Bloqueo de Raycast]
Capa para colisionar con avatar, pero no con objetos.
RaycastOnly
[Bloqueo de Raycast]
Capa para objetos que bloquean raycasts o se pueden seleccionar, pero no afectan a avatar o colisión de objetos.
N/D
N/D
N/D
Custom26
[Avatar/Objeto/Bloqueo de Raycast]
Capa definida por el usuario personalizada.
Custom27
[Avatar/Objeto/Bloqueo de Raycast]
Capa definida por el usuario personalizada.
Custom28
[Avatar/Objeto/Bloqueo de Raycast]
Capa definida por el usuario personalizada.
IgnoreRealtimeLight
[Avatar/Objeto/Bloqueo de Raycast]
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 horneada en su lugar con el mapa de luz).
WallCollision
[Avatar/Objeto/Bloqueo de Raycast]
Colisión que impide el recorte a través de una escena. Si un usuario HMD pega la cabeza a través de la pared, se vuelven a ver en una ubicación cercana en la zona jugable.
IgnoreParticipant
[Bloqueo de objeto/Raycast]
Objetos que bloquean raycasts y otros objetos, pero no avatares.
Interacciones de capas y tabla
Interacciones de capas
Tabla de capas