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 lo definido. 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 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 emulación de malla.

Componente de configuración interactuable de malla

Para que un objeto pueda interactuar, debe agregar el componente Mesh Interactable Setup (Configuración interactable de Malla).

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

Captura de pantalla del cuadro de diálogo Agregar componente con el componente Mesh Interactable Setup (Configurar interactuable de malla) 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 rigidbodies en tiempo de ejecución agregando automáticamente un componente Mesh Interactable Body a cada objeto secundario. Es posible que quiera agregar mesh interactable Body manualmente para usar mesh interactables 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.

  • Se debe agregar un cuerpo rígido a un objeto si quieres que esté habilitada la física.

Tipos de objetos interactivos

Hay cuatro tipos de objeto:

  • Interactuable
  • Manipulable
  • Equippable
  • Iniciable

Para elegir un tipo de objeto:

  • En el componente Mesh Interactable Setup ,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 interactuable 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 mesh con una cafetera que se está manipulando.

Equippable

Un objeto de este tipo se adjuntará a la mano del avatar. Los controles pc para equipar hacen clic en el objeto o presionan "F" mientras está seleccionado el objeto. Los controles Quest para equipar presionan el botón 'Grip' mientras el objeto está seleccionado. 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 el objeto se mantiene o se activa.

Iniciable

Como su nombre indica, 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 capturado 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 que funcionen conjuntamente.

Hacer que los objetos 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.

Captura de pantalla de un grafo de script con un cuerpo interactivo de malla Es un nodo seleccionado.

Configuración

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

Captura de pantalla de un componente de instalación interactable de malla con las propiedades comunes a todos los tipos de objetos resaltados.

Radio de proximidad de interacción Distancia más lejana que el avatar puede ser interactuar con este objeto

Configuración de IK al mantener el puntero sobre un objeto: 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á o no hacia el objeto mientras mantiene el puntero sobre 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 pegue directamente.

Resaltar configuración

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

  • Mecanismo de resaltado

    • Elemento de menú 1: Propiedades del sombreador

      • Color de resaltado: color que se va a establecer las propiedades de color del material cuando el objeto está resaltado.
      • Duración de transición resaltada: la cantidad de tiempo que se va a atenuar el resaltado de entrada y salida 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 están resaltados. Se trata de un valor de color.
    • Elemento de menú 2: Esquema de malla: agrega un esquema automático del color o ancho especificados a los objetos.

      • Color de resaltado: color del contorno.
      • Duración de 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: Resplandor interno: aplica un resaltado con un efecto iluminado mediante las propiedades especificadas.

      • Color de resaltado: el color del resplandor interno.
      • Duración de transición resaltada: la cantidad de tiempo que se va a atenuar el resplandor interno o saliente 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 resplandor. Si no se establece, se usará el material predeterminado del recurso de configuración.
      • Cadena de exclusión: Si se establece, cualquier objeto de juego 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
    • Predeterminado: Comportamiento predeterminado de MRTK que mueve el objeto mediante su centro.
    • Spring de punto: Comportamiento alternativo que mueve el objeto aplicando fuerza en un punto de agarre (solo funciona para elementos rígidos)
  • Rotación (solo disponible para el modo predeterminado)
    • Habilitado: indica si el objeto se puede girar o no durante la manipulación. 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 con respecto 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 mientras se manipula. Cada eje se puede establecer individualmente.
  • Spring de punto (solo disponible para el modo Spring de punto)
    • Fuerza de la primavera: 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: 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 el objeto está seleccionado. Cuando se establece en Habilitado, obtendrá las tres propiedades siguientes:
    • Espacio de destino:
      • Espacio local de la cámara: Si se debe especificar la posición y la rotación en el espacio local de la cámara.
      • Espacio local de avatar: 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 mano: la forma de la posición de la mano para colocar la mano del avatar al manipular el objeto
    • Tamaño de la posición de la mano: 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 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 ategue 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 un elemento está equipado.
  • Posición de mano mantenida:
    • Forma de posición de mano: Se trata de una lista desplegable que proporciona una gama de formas de posición de mano para colocar la mano del avatar en cuando está equipado. También puede elegir ninguno.
    • Tamaño de posición de mano: 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 que se muestra.

  • Activar configuración
    • Tipo de activación: 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.
      • Alternar: Este elemento alterna entre activo o no activo cada vez que se hace clic en el control de activación.
      • Soltero: Este elemento se activa cuando se hace clic en el control de activación y, a continuación, se desactiva automáticamente una vez que alcanza la última posición de destino.
    • Activar las posturas 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á usando la curva de animación de la posición anterior hasta que la actual baja secuencialmente la lista durante el tiempo definido 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 Aim : la cantidad que se va a extender el brazo cuando está en modo objetivo.
  • Posición de mano objetivo:
    • Forma de posición de mano: La forma de posición de la mano para poner la mano del avatar en cuando apunta.
    • Tamaño de posición de mano: 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
  • Posar mano:
    • Forma de posición de mano: La forma de la posición de la mano para poner la mano del avatar en cuando se libera el lanzamiento
    • Tamaño de posición de mano: Tamaño de la posición de la mano de 0 a 1.
  • Velocidad mínima de lanzamiento de VR: Velocidad mínima que se va a aplicar a un objeto cuando se inicia en la misión.
  • Velocidad máxima de lanzamiento de VR: Velocidad máxima que se va a aplicar a un objeto cuando se inicia en Quest. Este es el valor de velocidad que se usa 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 produce un objeto se escalará entre los valores mínimo y máximo utilizando la velocidad real del movimiento del brazo del usuario.

  • Configuración 2D
    • Velocidad de lanzamiento 2D: la velocidad que se va a aplicar a un objeto cuando se inicia en el EQUIPO.
    • Desplazamiento de dirección de inicio: desplazamiento direccional que se va a aplicar a un objeto cuando se inicia 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á usando la curva de animación de la posición anterior a la 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 la mano de lanzamiento se usará en el segundo al último destino.

Visual Scripting

Para todos los cuerpos interactivos:

  • 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. Al ejecutarse en MeshBrowser, se redará.
    • 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. Al ejecutarse en MeshBrowser, se redará.
    • EquipTime (solo lectura): qué hora estaba equipado este objeto. Al ejecutarse en MeshBrowser, se redará.
    • IsActivated (solo lectura): si este objeto está en estado activado. Solo es válido para los objetos que no se pueden producir. Al ejecutarse en MeshBrowser, se redará.
    • 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 con un avatar. Al ejecutarse en MeshBrowser, se redará.
    • 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 interactables 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 posicionamiento de ray (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 mediante el script visual. Esto invalidará la posición de destino predeterminada. El procedimiento recomendado es invalidar esta propiedad:
    • 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.
    • Usar al actualizar en tiempo de retraso. 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 mediante el 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. Modificar con visual-script

Pasos siguientes