Compartir a través de


Agarrar, mantener y producir con interactables

Información general

Mesh Interactables es un sistema para configurar objetos con scripts de Unity que definen la interacción con un comportamiento de objeto o avatar en tiempo de ejecución. Los scripts definen las propiedades del objeto con las que se puede interactuar mediante los interactores XRI. El kit de herramientas de Mesh contiene scripts de diferentes tipos de objetos que se pueden definir. Cuando se ejecuta un proyecto, configura todos los objetos prefabricados y valores necesarios para que los objetos o el avatar se comporten según se define. Si quiere ver una vista previa aproximada de lo que tendrán los objetos interactivos y se sentirán como cuando se ejecuten en la aplicación Mesh, asegúrese de configurar el modo de reproducción con emulación de malla. Tenga en cuenta que la funcionalidad de IK que se ve en la aplicación Mesh no está disponible en modo de reproducción con emulación de malla.

Componente de configuración interactable de Mesh

Para que un objeto sea interactuable, debe agregar el componente Mesh Interactable Setup .

  1. En Hierarchy (Jerarquía), seleccione el objeto .
  2. En el Inspector, haga clic en el botón Agregar componente y, a continuación, seleccione Mesh Interactable Setup (Configuración interactuable de malla).

Captura de pantalla del cuadro de diálogo Agregar componente con el componente Mesh Interactable Setup (Configurar malla interactuable) seleccionado.

El componente se agrega y con su propiedad Tipo de objeto predeterminada establecida en Interactable. (Los tipos de objeto se explicarán en la sección siguiente).

Captura de pantalla del componente Mesh Interactable Setup con el tipo de objeto establecido en Interactable.

Las propiedades de un grupo de objetos que se comportan igual se pueden configurar con un componente primario de configuración interactable de Malla. Las propiedades se aplicarán a todos los elementos secundarios con elementos rígidos en tiempo de ejecución agregando automáticamente un componente Mesh Interactable Body a cada objeto secundario. Es posible que quiera agregar manualmente el cuerpo interactable de malla para usar los interactables de malla con Visual Scripting, como con eventos de interacción o para modificar la transformación de destino manipulable a través del script visual.

Captura de pantalla del componente Mesh Interactable Body (Cuerpo interactivo de malla).

Notas:

  • Mesh Interactable Body permitirá que cada interacción se comporte de forma independiente.

  • Un cuerpo rígido debe agregarse a un objeto si quieres que sea físico habilitado.

Tipos de objetos interactivos

Hay cuatro tipos de objeto:

  • Interactuable
  • Manipulable
  • Equippable
  • Throwable

Para elegir un tipo de objeto:

  • En el componente Mesh Interactable Setup (Configuración interactuable de malla), haga clic en la lista desplegable Tipo de objeto y, a continuación, seleccione una de las cuatro opciones.

Captura de pantalla de las opciones de menú Tipo de objeto en el componente Cuerpo interactivo de malla.

Interactuable

Como se mencionó anteriormente, este es el tipo predeterminado y el más básico. Proporciona acceso a devoluciones de llamada que se pueden invocar cuando el usuario mantiene el puntero sobre o selecciona el objeto al que puede reaccionar otros scripts. Por ejemplo, si tiene un botón que desea usar para habilitar otro objeto, agregue este tipo al objeto con una devolución de llamada OnSelected para habilitar ese otro objeto. El botón será totalmente interactuable simplemente agregando este tipo y un colisionador; no tendrás que hacer nada más.

Manipulable

Un objeto de este tipo puede tener su transformación manipulada en tiempo de ejecución y se moverá a través del espacio al final de un rayo interactor. Los controles abreviados están disponibles para girar o traducir el objeto. Para la manipulación de objetos en la aplicación Mesh, puede activar la configuración de IK para que la mano del avatar siga el objeto . Los objetos manipulables no requieren un cuerpo rígido, pero debe agregar uno si desea que los objetos tengan capacidades físicas.

Captura de pantalla de una experiencia de malla con una cafetera que se está manipulando.

Equippable

Un objeto de este tipo se adjuntará a la mano del avatar. Los controles pc para equipamiento hacen clic en el objeto o presionan "F" mientras se selecciona el objeto. Los controles Quest para equip están presionando el botón 'Grip' mientras se selecciona el objeto. Los objetos equipables contienen configuraciones para destinos IK para la posición del brazo del avatar mientras el objeto está equipado. Los objetivos IK son un desplazamiento del pecho del avatar; esto determina dónde va la mano mientras se mantiene o activa el objeto.

Throwable

Como indica el nombre, puede agarrar y producir un objeto de este tipo. Después de agarrar, puede entrar en modo de objetivo presionando y manteniendo presionado el botón izquierdo del mouse. Esto permitirá que el brazo del avatar siga el objetivo del mouse; para iniciar el objeto, suelte el botón izquierdo del mouse.

Captura de pantalla de un juego de dardos con un dardo agarrado y leído para ser lanzado.

Todos los componentes interactables tienen propiedades y métodos de interacción disponibles para Visual Scripting, por lo que tiene una cantidad ilimitada de formas de hacer que funcionen juntos.

Hacer que los objetos se puedan interactuar con Visual Scripting

Si desea configurar reacciones a las interacciones de un objeto con Visual Scripting, puede usar el componente Mesh Interactable Body dentro de un grafo de script con un nodo a una propiedad disponible, como OnHovered o OnSelected, enlazada a un nodo OnStateChanged . Por ejemplo, el siguiente gráfico de script habilitará el cilindro mientras se presiona el botón y lo deshabilitará cuando se libere el botón. El botón es totalmente interactuable simplemente agregando el script y un colisionador; no tienes que hacer nada más.

Una captura de pantalla de un grafo de script con un cuerpo interactable de malla es el nodo Seleccionado.

Configuración

Configuración común a Manipulables, Equippables y Throwables

Captura de pantalla de un componente mesh interactable Setup con las propiedades comunes a todos los tipos de objetos resaltados.

Distancia más lejos del radio de proximidad de interacción que el avatar puede ser para interactuar con este objeto

Configuración del IK: configuración de IK que se va a usar al mantener el puntero sobre un objeto

  • Forma de posición de mano: la forma de la posición de la mano para colocar la mano del avatar al mantener el puntero sobre el objeto
  • Posición de mano Tamaño: Tamaño de la posición de la mano de 0 a 1.
  • Habilitar seguimiento de IK: indica si el brazo del avatar llegará hacia el objeto mientras mantiene el puntero sobre el destino de IK.
    • Restringir IK esférico: si es true, el IK de brazo se realizará en una esfera. Esto hará que el brazo del avatar no se quede directamente.

Resaltar configuración

  • Mantener el puntero o seleccionar: indica si se debe resaltar o no el objeto si está resaltado o seleccionado.

  • Mecanismo de resaltado

    • Elemento de menú 1: Propiedades del sombreador

      • Color resaltado: color que se va a establecer las propiedades de color del material cuando el objeto está resaltado.
      • Duración de la transición resaltada: cantidad de tiempo para atenuar el resaltado dentro y fuera al realizar la transición.
      • Resaltar propiedades de cantidad: las propiedades del material para establecer la cantidad de resaltado cuando se resaltan. Se trata de un valor float.
      • Propiedades del color resaltado: las propiedades del material para establecer el color del resaltado cuando se resaltan. Se trata de un valor de color.
    • Elemento de menú 2: Esquema de malla: agrega un contorno automático del color y ancho especificados a los objetos.

      • Color de resaltado: color del contorno.
      • Duración de la transición resaltada: la cantidad de tiempo que se va a atenuar el contorno al realizar la transición.
      • Resaltar ancho de esquema: el grosor (en metros) debe ser el contorno. Invalida el "Valor de extrusión" en el material de herramientas de gráficos/estándar.
      • Material de esquema personalizado: el material usado para representar el contorno.
      • Material de escritura de galería de símbolos personalizado: el material usado para escribir un valor en el búfer de galería de símbolos
      • Modo de exclusión de esquema: opción para filtrar los representadores que no desea incluir en el esquema.
    • Elemento de menú 3: Iluminado interno: aplica un resaltado con un efecto iluminado mediante las propiedades especificadas.

      • Color de resaltado: color del resplandor interno.
      • Duración de transición resaltada: la cantidad de tiempo para atenuar el iluminado interno o fuera al realizar la transición
      • Material de resaltado personalizado: invalide la opción específica de este objeto para establecer el material usado para el brillo. Si no se establece, se usará el material predeterminado del recurso de configuración.
      • Cadena de exclusión: si se establece, cualquier objeto game con un nombre que contenga la cadena de exclusión se excluirá del resaltado.

Configuración exclusiva de Manipulables

Captura de pantalla del componente Mesh Interactable Setup con la configuración manipulable que se muestra.

  • Modo de fuerza: modo que se va a usar para forzar el objeto a través del espacio.
    • Valor predeterminado: comportamiento predeterminado de MRTK que mueve el objeto mediante su centro.
    • Point Spring: comportamiento alternativo que mueve el objeto aplicando la fuerza en un punto de agarre (solo funciona para rigidez)
  • Rotación (solo disponible para el modo predeterminado)
    • Habilitado: indica si el objeto se puede girar o no mientras se manipula. Cada eje se puede establecer individualmente.
    • Lógica de rotación de manipulación
      • Valor predeterminado: al manipular un objeto, girará alrededor de la cámara y permanecerá en la misma orientación relativa a la cámara (los valores de transformación reales girarán).
      • Restrictivo: al manipular un objeto, no girará su transformación y no permanecerá en la misma orientación relativa a la cámara.
  • Traducción (solo disponible para el modo predeterminado) =Habilitado: indica si el objeto se puede traducir o no al manipularlo. Cada eje se puede establecer individualmente.
  • Point Spring (solo disponible para el modo Spring de punto)
    • Fuerza del muelle: la fuerza del muelle que extrae el objeto. Cuanto mayor sea el valor, más rápido alcanzará el punto de destino.
    • Factor de amortiguación: la cantidad de amortiguación que se aplica para evitar la oscilación alrededor del punto de agarre.
  • Modificar transformación de destino: proporciona al usuario la opción de invalidar la transformación predeterminada y establecer la posición deseada y la rotación del objeto en relación con la cámara o avatar mientras se selecciona el objeto. Cuando se establece en Habilitado, obtendrá las tres propiedades siguientes:
    • Espacio de destino:
      • Espacio local de cámara: indica si se debe especificar la posición y la rotación en el espacio local de la cámara.
      • Espacio local de avatar: indica si se debe especificar la posición y la rotación en el espacio local del avatar.
    • Nueva posición de destino: nueva posición de destino (el componente z es la dirección en la que se encuentra la cámara o avatar)
    • Nueva rotación de destino: nueva rotación de destino
  • Avatar IK
    • Forma de posición de la mano: forma de posición de la mano para colocar la mano del avatar al manipular el objeto
    • Posición de mano Tamaño: Tamaño de la posición de la mano de 0 a 1.
    • Habilitar el seguimiento de IK: indica si el brazo del avatar llegará hacia el objeto mientras manipula el destino IK.
      • Restringir IK esférico: si es true, el IK de brazo se realizará en una esfera. Esto hará que el brazo del avatar no se quede directamente.

Configuración compartida por Equippables y Throwables

Captura de pantalla del componente Mesh Interactable Setup con la configuración común a Equippables y Throwables resaltadas.

  • Desplazamiento de interacción: posición y desplazamiento de rotación en relación con la mano del avatar para colocar el objeto.
  • Equipar posición de destino
    • Posición: distancia desde el pecho del avatar para colocar la mano cuando un elemento está equipado.
    • Rotación: cantidad que se va a girar la muñeca cuando se equipa un elemento.
  • Posición de mano mantenida:
    • Forma de posición de mano: se trata de una lista desplegable que proporciona un rango de formas de posición de mano para colocar la mano del avatar en cuando está equipado. También puede elegir ninguno.
    • Posición de mano Tamaño: Tamaño de la posición de la mano de 0 a 1.

Ajustes exclusivos para Equippables

Captura de pantalla del componente Mesh Interactable Setup con la configuración Equippable mostrada.

  • Activar configuración
    • Activar tipo: cuándo establecer el elemento como activo. Los objetos iniciables no se pueden activar y siempre habrán activado el tipo establecido en ninguno.
      • Ninguno: este elemento no se puede activar.
      • Alternancia: este elemento alterna entre activo o no activo cada vez que se hace clic en el control de activación.
      • Único: este elemento se activa cuando se hace clic en el control de activación y, a continuación, se desactiva automáticamente una vez alcanza la última posición de destino.
    • Activar poses de destino: una lista de las posturas de destino usadas para colocar la mano del avatar cuando se activa un elemento. Cada posición consta de cuatro propiedades: Posición, Rotación, Tiempo de interpolación y Curva de animación. Los desplazamientos de posición y rotación son relativos al pecho del avatar. El avatar se interpolará mediante la curva de animación de la posición anterior hasta la actual de forma secuencial en la lista durante la cantidad de tiempo definida en el tiempo de interpolación, que permanece en la posición final hasta que se desactiva. Cuando se desactiva, la posición de la mano del avatar se moverá hacia atrás a través de la lista.

Configuración exclusiva de Throwables

Captura de pantalla del componente Mesh Interactable Setup (Configuración interactuable de malla) con la configuración Throwable (Iniciable) que se muestra.

Configuración de objetivo:

  • Extensión arm en Objetivo : la cantidad para extender el brazo cuando está en modo de objetivo.
  • Posición de mano objetivo:
    • Forma de posición de la mano: la forma de la posición de la mano para colocar la mano del avatar al apuntar.
    • Posición de mano Tamaño: Tamaño de la posición de la mano de 0 a 1.
  • Rotación de mano de objetivo: rotación de la mano mientras apunta
  • Posición de tiro de mano:
    • Forma de posición de la mano: la forma de la posición de la mano para colocar la mano del avatar cuando se suelta el lanzamiento
    • Posición de mano Tamaño: Tamaño de la posición de la mano de 0 a 1.
  • Vr Min Throw Velocity: la velocidad mínima que se aplicará a un objeto cuando se inicia en la misión.
  • Vr Max Throw Velocity: la velocidad máxima que se aplicará a un objeto cuando se inicia en Quest. Este es el valor de velocidad utilizado en el EQUIPO. En Quest, la velocidad se escalará en función del movimiento físico del brazo del usuario.

En quest, la velocidad aplicada cuando se inicia un objeto se escalará entre los valores mínimo y máximo mediante la velocidad real del movimiento del brazo del usuario.

  • Configuración 2D
    • Velocidad de lanzamiento 2D: la velocidad que se aplica a un objeto cuando se produce en el EQUIPO.
    • Desplazamiento de dirección de lanzamiento: desplazamiento direccional que se va a aplicar a un objeto cuando se produce en el EQUIPO.
  • Iniciar poses de destino: una lista de las posturas de destino usadas para colocar la mano del avatar cuando se produce un elemento. Los desplazamientos de posición y rotación son relativos a la posición de la mano del avatar cuando se inició el lanzamiento. El avatar se interpolará mediante la curva de animación de la posición anterior al actual de forma secuencial en la lista durante la cantidad de tiempo definida en el tiempo de interpolación. El objeto se liberará y la posición de lanzamiento de la mano se usará en el segundo al último destino.

Scripting de objeto visual

Para todos los cuerpos interactables:

  • Propiedades
    • IsHovered (solo lectura): indica si el avatar local mantiene el puntero sobre el objeto.
    • IsSelected (solo lectura): indica si algún avatar está seleccionando el objeto o no. Cuando se ejecuta en MeshBrowser, se realizará una red.
    • IsSelectedLocally : indica si el avatar local está seleccionando el objeto o no.
    • IsMine (solo lectura): true para que el último avatar seleccione o equipe el objeto.

Para Equippables:

  • Propiedades
    • EquippedAt (solo lectura): donde este objeto está equipado: None, DefaultHand, RightHand, LeftHand. Cuando se ejecuta en MeshBrowser, se realizará una red.
    • EquipTime (solo lectura): hora en que este objeto estaba equipado. Cuando se ejecuta en MeshBrowser, se realizará una red.
    • IsActivated (solo lectura): si este objeto está en estado activado. Solo es válido para los objetos que no se pueden producir. Cuando se ejecuta en MeshBrowser, se realizará una red.
    • IsAiming (solo lectura): si el avatar local está en estado de objetivo mientras mantiene este objeto. Solo es válido para los iniciables.
    • IsThrowing (solo lectura): si el avatar local está iniciando activamente el objeto. Solo es válido para los iniciables.
    • IsEquipped (solo lectura) (solo lectura): si este objeto está equipado actualmente por un avatar. Cuando se ejecuta en MeshBrowser, se realizará una red.
    • IsThrowable : si se puede producir este objeto.
    • ThrowVelocity : la velocidad para iniciar el objeto cuando se libera.

Para que los manipulables modifiquen la posición de destino:

  • Posición de destino (solo lectura): posición de destino del cuerpo cuando se usa el modo de fuerza predeterminada en propiedades interactuables de malla
  • Rotación de destino (solo lectura): rotación de destino del cuerpo cuando se usa el modo de fuerza predeterminada en propiedades interactables de malla
  • Posición de golpe de rayo (solo lectura): posición del golpe de conversión de rayos del interactor en el cuerpo
  • Rotación de aciertos de rayos (solo lectura): rotación del interactor alrededor de la dirección del rayo
  • Posición de destino modificada (lectura y escritura): se usa para establecer la nueva posición de destino por el script visual. Esto invalidará la posición de destino predeterminada. El procedimiento recomendado es invalidar esta propiedad:
    • Uso de On State Changed of Target Position(Usar al cambiar el estado de la posición de destino). En este caso, el script visual activará un flujo solo cuando el interactor y la nueva posición haya cambiado.
    • Uso de la actualización tardía. Si necesita cambiar la transformación de destino en cada fotograma, hágalo en actualización tardía para que la nueva transformación de destino esté disponible inmediatamente en el siguiente fotograma.
  • Rotación de destino modificada (lectura y escritura): se usa para establecer la nueva rotación de destino por parte del script visual. Esto invalidará la posición de destino predeterminada.

Configuración

Modificar con script visual: habilite esta opción para modificar la transformación de destino para cuerpos manipulables mediante script visual. Modify-with-visual-script

Pasos siguientes