Compartilhar via


Agarre, segure e jogue com Interactables

Visão geral

Mesh Interactables é um sistema para configurar objetos com scripts Unity que define a interação com um objeto ou comportamento de avatar em tempo de execução. Os scripts definem as propriedades do objeto que podem ser interagidas usando interatores XRI. O kit de ferramentas Mesh contém scripts de diferentes tipos de objeto que podem ser definidos. Quando um projeto é executado, ele configura todos os pré-fabricados e configurações necessários para que os objetos ou o avatar se comportem conforme definido. Se você quiser ver uma visualização aproximada da aparência e da sensação de seus objetos interactáveis quando forem executados no aplicativo Mesh, configure o Modo de Reprodução com a Emulação de Malha. Observe que a funcionalidade IK vista no aplicativo Mesh não está disponível no Modo de Reprodução com Emulação de Malha.

O componente Configuração interactável de malha

Para tornar um objeto interactable, você deve adicionar o componente Mesh Interactable Setup .

  1. Na Hierarquia, selecione o objeto.
  2. No Inspetor, clique no botão Adicionar componente e selecione Configuração interactável de malha.

Uma captura de tela da caixa de diálogo Adicionar componente com a seleção do componente Configuração interactável de malha.

O componente é adicionado e com sua propriedade Object Type padrão definida como Interactable. (Os tipos de objeto serão explicados na próxima seção.)

Uma captura de tela do componente Configuração interactável de malha com tipo de objeto definido como interactable.

As propriedades de um grupo de objetos que se comportam da mesma forma podem ser configuradas com um componente pai de Instalação Interactable Mesh. As propriedades serão aplicadas a todas as crianças com corpos rígidos em tempo de execução, adicionando automaticamente um componente Mesh Interactable Body a cada objeto filho. Talvez você queira adicionar o Mesh Interactable Body manualmente para usar os interactables do Mesh com o Visual Scripting, como com eventos de interação ou para modificar a transformação de destino manipulável por meio do script visual.

Uma captura de tela do componente Corpo interactável de malha.

Observações:

  • O Mesh Interactable Body permitirá que cada interactable se comporte de forma independente.

  • Um corpo rígido deve ser adicionado a um objeto se você quiser que ele seja habilitado para física.

Tipos de objeto interactable

Existem quatro tipos de objeto:

  • Interativo
  • Manipulável
  • Equipável
  • Arremessável

Para escolher um tipo de objeto:

  • No componente Configuração interactável de malha, clique na lista suspensa Tipo de objeto e selecione uma das quatro opções.

Uma captura de tela das opções de menu Tipo de objeto no componente Corpo interactável de malha.

Interativo

Como mencionado acima, este é o tipo padrão e o mais básico. Ele fornece acesso a retornos de chamada que podem ser invocados quando o usuário passa o mouse ou seleciona o objeto ao qual você pode fazer com que outros scripts reajam. Por exemplo, se você tiver um botão que deseja usar para habilitar outro objeto, adicione esse tipo ao objeto com um retorno de chamada OnSelected para habilitar esse outro objeto. O botão será totalmente interactável apenas adicionando este tipo e um colisor; você não terá que fazer mais nada.

Manipulável

Um objeto desse tipo pode ter sua transformação manipulada em tempo de execução e se moverá pelo espaço na extremidade de um raio interator. Controles de atalho estão disponíveis para girar ou traduzir o objeto. Para manipulação de objetos no aplicativo Mesh, você pode ativar as configurações de IK para que a mão do avatar siga o objeto. Objetos manipuláveis não exigem um corpo rígido, mas você deve adicionar um se quiser que os objetos tenham recursos físicos.

Uma captura de tela de uma experiência Mesh com uma cafeteira sendo manipulada.

Equipável

Um objeto desse tipo será anexado à mão do seu avatar. Os controles do PC para equipar estão clicando no objeto ou pressionando 'F' enquanto o objeto está selecionado. Os controles Quest para equip estão pressionando o botão 'Grip' enquanto o objeto é selecionado. Os objetos equipáveis contêm configurações para alvos IK para a pose de braço do seu avatar enquanto o objeto está equipado. Os alvos IK são um deslocamento do peito do avatar; Isso determina para onde a mão vai enquanto o objeto é segurado ou ativado.

Arremessável

Como o nome indica, você pode pegar e jogar um objeto desse tipo. Depois de agarrar, você pode entrar no modo de mira pressionando e segurando o botão esquerdo do mouse. Isso permitirá que o braço do seu avatar siga o alvo do mouse; Para lançar o objeto, solte o botão esquerdo do mouse.

Uma captura de tela de um jogo de dardos com um dardo agarrado e lido para ser jogado.

Todos os componentes Interactables têm propriedades de interação e métodos disponíveis para Visual Scripting para que você tenha uma quantidade ilimitada de maneiras de fazê-los trabalhar juntos.

Tornar objetos interactáveis com o Visual Scripting

Se desejar configurar reações às interações de um objeto com o Visual Scripting, você poderá usar o componente Corpo Interactável de Malha dentro de um gráfico de script com um nó para uma propriedade disponível, como OnHovered ou OnSelected, conectado a um nó OnStateChanged . Por exemplo, o gráfico de script a seguir habilitará o cilindro enquanto o botão estiver pressionado e o desabilitará quando o botão for liberado. O botão é totalmente interactável apenas adicionando o script e um collider; você não precisa fazer mais nada.

Uma captura de tela de um gráfico de script com um nó Mesh Interactable body Is Selected.

Configurações

Configurações comuns a manipuláveis, equipáveis e arremessáveis

Uma captura de tela de um componente de instalação interactável de malha com as propriedades comuns a todos os tipos de objeto realçadas.

Raio de Proximidade de Interação Maior distância que o avatar pode estar para interagir com este objeto

Configurações de IK de foco – configurações de IK a serem usadas ao passar o mouse sobre um objeto

  • Forma de pose de mão: A forma de pose de mão para colocar a mão do avatar ao passar o mouse sobre o objeto
  • Tamanho da pose da mão: Tamanho da pose da mão de 0 – 1.
  • Ativar rastreamento IK: se o braço do avatar alcançará ou não o objeto enquanto paira usando a segmentação IK.
    • Constranger IK Esférico: Se verdadeiro, o braço IK será feito em uma esfera. Isso fará com que o braço do avatar não fique para fora.

Configurações de realce

  • Focalizado/Selecionado: se o objeto deve ou não ser realçado ou selecionado.

  • Mecanismo de realce

    • Item de menu 1: Propriedades do sombreador

      • Cor de realce: a cor para definir as propriedades de cor do material quando o objeto é realçado.
      • Realçar Duração da Transição: A quantidade de tempo para desvanecer o realce para dentro/para fora durante a transição.
      • Propriedades da quantidade de realce: as propriedades do material para definir a quantidade de realce quando realçado. Este é um valor flutuante.
      • Propriedades da cor de realce: as propriedades do material para definir a cor de realce quando realçado. Este é um valor de cor.
    • Item de menu 2: Contorno de malha: adiciona um contorno automático da cor/largura especificada aos objetos.

      • Cor de realce: A cor do contorno.
      • Realçar Duração da transição: a quantidade de tempo para desvanecer a estrutura de tópicos durante a transição.
      • Realçar Largura do Contorno: Qual deve ser a espessura (em metros) do contorno. Substitui o "Valor de Extrusão" no material Ferramentas Gráficas/Padrão.
      • Material de estrutura de tópicos personalizado: o material usado para renderizar o contorno.
      • Material de gravação de estêncil personalizado: o material usado grava um valor no buffer de estêncil
      • Modo de Exclusão de Estrutura de Tópicos: Opção para filtrar renderizadores que você não deseja incluir na estrutura de tópicos.
    • Item de menu 3: Brilho interno: Aplica um realce com um efeito de brilho usando as propriedades dadas.

      • Cor de destaque: A cor do brilho interno.
      • Realçar Duração da Transição: A quantidade de tempo para desvanecer o brilho interno para dentro/para fora durante a transição
      • Material de realce personalizado: opção de substituição específica para este objeto para definir o material usado para o brilho. Se isso não estiver definido, o material padrão do ativo de configurações será usado.
      • Cadeia de caracteres de exclusão: Se isso for definido, qualquer Objeto de Jogo com um nome contendo a cadeia de caracteres de exclusão será excluído do realce.

Configurações exclusivas para manipuláveis

Uma captura de tela do componente Configuração interactável de malha com as configurações manipuláveis exibidas.

  • Modo de força: o modo a ser usado para forçar o objeto através do espaço
    • Padrão: comportamento MRTK padrão que move o objeto usando seu centro.
    • Mola de ponto: Comportamento alternativo que move o objeto aplicando força em um ponto de agarra (funciona apenas para corpos rígidos)
  • Rotação (disponível apenas para o modo Padrão)
    • Habilitado: se o objeto pode ou não ser girado durante a manipulação. Cada eixo pode ser definido individualmente.
    • Lógica de Rotação de Manipulação
      • Padrão: ao manipular um objeto, ele girará ao redor da câmera e permanecerá na mesma orientação em relação à câmera (os valores reais de transformação girarão).
      • Restritivo: Ao manipular um objeto, ele não girará sua transformação e não permanecerá na mesma orientação em relação à câmera.
  • Tradução (disponível somente para o modo Padrão) =Habilitado: se o objeto pode ou não ser traduzido durante a manipulação. Cada eixo pode ser definido individualmente.
  • Point Spring (disponível apenas para o modo Point Spring)
    • Força da mola: A força da mola que puxa o objeto. Quanto maior o valor, mais rápido ele atingirá o ponto alvo.
    • Fator de amortecimento: Quanto amortecimento é aplicado para evitar a oscilação em torno do ponto de garra.
  • Modificar transformação de destino: dá ao usuário a opção de substituir a transformação padrão e definir a posição e a rotação desejadas do objeto em relação à câmera/avatar enquanto o objeto está selecionado. Quando isso é definido como Habilitado, você obtém as três propriedades a seguir:
    • Espaço de destino:
      • Espaço local da câmera: se deve especificar a posição e a rotação no espaço local da câmera.
      • Espaço Local do Avatar: Se deve especificar a posição e a rotação no espaço local do avatar.
    • Nova posição do alvo: Nova posição do alvo (o componente z é a direção para onde a câmera/avatar está voltada)
    • Nova rotação de alvo: nova rotação de alvo
  • Avatar IK
    • Forma de Pose de Mão: A forma de pose de mão para colocar a mão do avatar ao manipular o objeto
    • Tamanho da pose da mão: Tamanho da pose da mão de 0 – 1.
    • Ativar rastreamento IK: se o braço do avatar alcançará ou não o objeto durante a manipulação usando a segmentação IK.
      • Constranger IK Esférico: Se verdadeiro, o braço IK será feito em uma esfera. Isso fará com que o braço do avatar não fique para fora.

Configurações compartilhadas por Equippables e Throwables

Uma captura de tela do componente Configuração interactável de malha com as configurações comuns a Equippables e Throwables realçadas.

  • Deslocamento de interação: O deslocamento de posição e rotação em relação à mão do avatar para colocar o objeto.
  • Equipar a Pose do Alvo
    • Posição: A distância do peito do avatar para colocar a mão quando um item é equipado.
    • Rotação: A quantidade para girar o pulso quando um item é equipado.
  • Pose de mão segurada:
    • Forma de pose de mão: Este é um menu suspenso que fornece uma variedade de formas de pose de mão para colocar a mão do avatar quando equipado. Você também pode escolher nenhum.
    • Tamanho da pose da mão: Tamanho da pose da mão de 0 – 1.

Configurações exclusivas para Equippables

Uma captura de tela do componente Mesh Interactable Setup com as configurações Equippable exibidas.

  • Ativar configuração
    • Ativar tipo: quando definir o item como ativo. Objetos jogáveis não podem ser ativados e sempre terão o tipo ativado definido como nenhum.
      • Nenhum: este item não pode ser ativado.
      • Alternar: Este item alterna entre ativo/não ativo sempre que o controle de ativação é clicado.
      • Único: Este item é ativado quando o controle de ativação é clicado e, em seguida, desativado automaticamente assim que atinge sua última pose de alvo.
    • Ativar poses de destino: uma lista de poses de alvo usadas para colocar a mão do avatar quando um item é ativado. Cada pose consiste em quatro propriedades: Posição, Rotação, Tempo de interpolação e Curva de animação. Os deslocamentos de posição e rotação são relativos ao peito do avatar. O avatar irá interpolar usando a curva de animação da pose anterior para a atual sequencialmente abaixo da lista pelo tempo definido no tempo de interpolação, permanecendo na pose final até ser desativado. Quando desativada, a pose de mão do avatar se moverá para trás na lista.

Configurações exclusivas para Throwables

Uma captura de tela do componente Mesh Interactable Setup com as configurações Throwable exibidas.

Configuração do objetivo:

  • Extensão do braço na mira – A quantidade para estender o braço quando no modo de mira.
  • Pose de Mão de Mira:
    • Forma de pose de mão: A forma de pose de mão para colocar a mão do avatar ao mirar.
    • Tamanho da pose da mão: Tamanho da pose da mão de 0 – 1.
  • Rotação da mão da mira: A rotação da mão ao mirar
  • Lance:
    • Forma de pose de mão: A forma de pose de mão para colocar a mão do avatar quando o lançamento é liberado
    • Tamanho da pose da mão: Tamanho da pose da mão de 0 – 1.
  • VR Min Throw Velocity: A velocidade mínima a ser aplicada a um objeto quando jogado na Quest.
  • VR Max Throw Velocity: A velocidade máxima a ser aplicada a um objeto quando jogado na Quest. Este é o valor de velocidade usado no PC. No Quest, a velocidade será dimensionada com base no movimento físico do braço do usuário.

Na Quest, a velocidade aplicada quando um objeto é arremessado será dimensionada entre os valores mínimo e máximo usando a velocidade real do movimento do braço do usuário.

  • Configurações 2D
    • Velocidade de lançamento 2D: A velocidade a ser aplicada a um objeto quando ele é lançado no PC.
    • Deslocamento de direção de lançamento: um deslocamento direcional a ser aplicado a um objeto quando ele é lançado no PC.
  • Throw Target Poses: Uma lista de poses de alvo usadas para colocar a mão do avatar quando um item é lançado. Os deslocamentos de posição e rotação são relativos à posição da mão do avatar quando o lançamento foi iniciado. O avatar irá interpolar usando a curva de animação da pose anterior para a atual sequencialmente abaixo da lista pela quantidade de tempo definida no tempo de interpolação. O objeto será liberado e a pose de mão de arremesso será usada no penúltimo alvo.

Scripting Visual

Para todos os corpos interactáveis:

  • Propriedades
    • IsHovered (somente leitura) – Se seu avatar local está ou não pairando o objeto.
    • IsSelected (somente leitura) – Se algum avatar está ou não selecionando o objeto. Ao executar no MeshBrowser, isso será colocado em rede.
    • IsSelectedLocally – Se o avatar local está ou não selecionando o objeto.
    • IsMine (somente leitura) – True para o último avatar a selecionar ou equipar o objeto.

Para Equippables:

  • Propriedades
    • EquippedAt (somente leitura) - Onde este objeto está equipado – Nenhum, DefaultHand, RightHand, LeftHand. Ao executar no MeshBrowser, isso será colocado em rede.
    • EquipTime (somente leitura) – Que horas este objeto foi equipado. Ao executar no MeshBrowser, isso será colocado em rede.
    • IsActivated (somente leitura) – Se esse objeto estiver no estado ativado. Válido apenas para objetos que não são jogáveis. Ao executar no MeshBrowser, isso será colocado em rede.
    • IsAiming (somente leitura) – Se o avatar local estiver no estado de mira enquanto segura esse objeto. Válido apenas para arremessáveis.
    • IsThrowing (somente leitura) – Se o avatar local estiver jogando ativamente o objeto. Válido apenas para arremessáveis.
    • IsEquipped (somente leitura) (somente leitura) – Se este objeto estiver atualmente equipado por um avatar. Ao executar no MeshBrowser, isso será colocado em rede.
    • IsThrowable – se este objeto for lancável.
    • ThrowVelocity – A velocidade para lançar o objeto quando ele é liberado.

Para manipuláveis para modificar a posição de destino:

  • Posição de Destino (somente leitura): Posição de Destino do corpo ao usar o Modo de Força Padrão nas Propriedades Interactáveis de Malha
  • Rotação de Destino (somente leitura): Rotação de Destino do corpo ao usar o Modo de Força Padrão nas Propriedades Interactáveis de Malha
  • Posição de acerto de raio (somente leitura): Posição do golpe de raio do interator no corpo
  • Ray Hit Rotation (somente leitura): A rotação do interator em torno da direção do raio
  • Posição de destino modificada (leitura e gravação): usada para definir a nova posição de destino pelo script visual. Isso substituirá a posição de destino padrão. A prática recomendada é substituir esta propriedade:
    • Usando On State Changed of Target Position. Nesse caso, o script visual disparará um fluxo somente quando o interator e a nova posição tiverem mudado.
    • Usando na atualização tardia. Se você precisar alterar a transformação de destino em cada quadro, faça-a na atualização tardia para que a nova transformação de destino esteja disponível imediatamente no próximo quadro.
  • Rotação de destino modificada (leitura e gravação): usada para definir a nova rotação de destino pelo script visual. Isso substituirá a posição de destino padrão.

Configurações

Modificar com script visual: habilite isso para modificar a transformação de destino para corpos manipuláveis usando script visual. Modificar-com-visual-script

Próximas etapas