Partager via


Saisir, tenir et lever avec des interactions

Vue d’ensemble

Mesh Interactables est un système permettant de configurer des objets avec des scripts Unity qui définissent l’interaction avec un objet ou un comportement d’avatar lors de l’exécution. Les scripts définissent les propriétés de l’objet qui peuvent être utilisées à l’aide d’interactions XRI. Le kit de ressources Mesh contient des scripts de différents types d’objets qui peuvent être définis. Lorsqu’un projet s’exécute, il configure tous les préfabriqués et paramètres nécessaires pour que les objets ou l’avatar se comportent comme défini. Si vous souhaitez voir un aperçu approximatif de ce que vos objets interagissants ressemblent et se sentent quand ils s’exécutent dans l’application Mesh, veillez à configurer le mode Play avec l’émulation mesh. Notez que la fonctionnalité IK affichée dans l’application Mesh n’est pas disponible en mode Lecture avec émulation mesh.

Composant Mesh Interactable Setup

Pour rendre un objet interagissant, vous devez ajouter le composant Mesh Interactable Setup .

  1. Dans la hiérarchie, sélectionnez l’objet.
  2. Dans l’inspecteur, cliquez sur le bouton Ajouter un composant, puis sélectionnez Configuration interagissante mesh.

Capture d’écran de la boîte de dialogue Ajouter un composant avec le composant Mesh Interactable Setup select.

Le composant est ajouté et avec sa propriété Type d’objet par défaut définie sur Interactable. (Les types d’objets seront expliqués dans la section suivante.)

Capture d’écran du composant Mesh Interactable Setup avec le type d’objet défini sur Interactable.

Les propriétés d’un groupe d’objets qui se comportent tous de la même façon peuvent être configurées avec un composant parent Mesh Interactable Setup . Les propriétés seront appliquées à tous les enfants avec des objets rigides lors de l’exécution en ajoutant automatiquement un composant Mesh Interactable Body à chaque objet enfant. Vous pouvez ajouter manuellement mesh Interactable Body pour utiliser des maillages interagissants avec le script visuel, par exemple avec des événements d’interaction ou pour modifier la transformation cible manipulable via le script visuel.

Capture d’écran du composant Corps interagissant mesh.

Remarques :

  • Le corps interagissant maillage permet à chaque interaction de se comporter indépendamment.

  • Un corps rigide doit être ajouté à un objet si vous souhaitez qu’il soit activé en physique.

Types d’objets interagissants

Il existe quatre types d’objets :

  • Avec interaction
  • Manipulable
  • Équipementable
  • Pouvant être levée

Pour choisir un type d’objet :

  • Dans le composant Mesh Interactable Setup , cliquez sur la liste déroulante Type d’objet, puis sélectionnez l’une des quatre options.

Capture d’écran des options de menu Type d’objet dans le composant Corps interagissant mesh.

Avec interaction

Comme mentionné ci-dessus, il s’agit du type par défaut et du plus simple. Il vous donne accès aux rappels qui peuvent être appelés lorsque l’utilisateur pointe sur ou sélectionne l’objet auquel vous pouvez réagir. Par exemple, si vous avez un bouton que vous souhaitez utiliser pour activer un autre objet, ajoutez ce type à l’objet avec un rappel OnSelected pour activer cet autre objet. Le bouton sera entièrement interagissant simplement en ajoutant ce type et un collider ; vous n’aurez rien d’autre à faire.

Manipulable

Un objet de ce type peut avoir sa transformation manipulée au moment de l’exécution et se déplacera dans l’espace à la fin d’un rayon d’interaction. Les contrôles de raccourci sont disponibles pour faire pivoter ou traduire l’objet. Pour la manipulation d’objets dans l’application Mesh, vous pouvez activer les paramètres IK de la main de l’avatar pour suivre l’objet. Les objets manipulables ne nécessitent pas de corps rigide, mais vous devez en ajouter un si vous souhaitez que les objets aient des capacités physiques.

Capture d’écran d’une expérience Mesh avec une casserole à café manipulée.

Équipementable

Un objet de ce type sera attaché à la main de votre avatar. Les contrôles PC pour équipe cliquent sur l’objet ou appuient sur « F » pendant que l’objet est sélectionné. Les commandes Quest pour équipe sont en appuyant sur le bouton « Grip » pendant que l’objet est sélectionné. Les objets équipés contiennent des paramètres pour les cibles IK pour la pose du bras de votre avatar pendant que l’objet est équipé. Les cibles IK sont un décalage de la poitrine de l’avatar ; cela détermine l’endroit où la main passe pendant que l’objet est conservé ou activé.

Pouvant être levée

Comme le nom l’indique, vous pouvez saisir et lever un objet de ce type. Après avoir saisi, vous pouvez entrer en mode aim en appuyant et en maintenant le bouton gauche de la souris. Cela permettra au bras de votre avatar de suivre votre cible de souris ; pour lever l’objet, relâchez le bouton gauche de la souris.

Capture d’écran d’un jeu d’art avec unart saisi et lu pour être levée.

Tous les composants Interactables ont des propriétés d’interaction et des méthodes disponibles pour le script visuel afin d’avoir une quantité illimitée de façons de les rendre ensemble.

Rendre les objets interagissant avec visual Scripting

Si vous souhaitez configurer des réactions aux interactions d’un objet avec le script visuel, vous pouvez utiliser le composant Mesh Interactable Body à l’intérieur d’un graphique de script avec un nœud vers une propriété disponible, telle qu’OnHoveredou OnSelected, connectée à un nœud OnStateChanged. Par exemple, le graphique de script suivant active le cylindre pendant que le bouton est enfoncé et le désactive lorsque le bouton est libéré. Le bouton est entièrement interagissant simplement en ajoutant le script et un collider ; vous n’avez rien d’autre à faire.

Une capture d’écran d’un graphe de script avec un corps interagissant mesh est sélectionnée.

Paramètres

Paramètres communs aux manipulables, équipementables et levées

Capture d’écran d’un composant Mesh Interactable Setup avec les propriétés communes à tous les types d’objets mis en surbrillance.

Distance la plus éloignée du rayon de proximité d’interaction que l’avatar peut être d’interagir avec cet objet

Paramètres IK de pointage : paramètres IK à utiliser lors du pointage sur un objet

  • Forme de pose de main : forme de pose de la main pour placer la main de l’avatar lors du pointage sur l’objet
  • Taille de la pose de main : taille de la pose de la main de 0 à 1.
  • Activer le suivi IK : indique si le bras de l’avatar atteint vers l’objet lors du pointage à l’aide du ciblage IK.
    • Limiter IK Spherical : si la valeur est true, arm IK sera effectuée sur une sphère. Cela provoquera le bras de l’avatar de ne pas rester droit dehors.

Paramètres de mise en surbrillance

  • Pointé/Sélectionné : indique si l’objet doit être mis en surbrillance ou sélectionné.

  • Mécanisme de mise en surbrillance

    • Élément de menu 1 : Propriétés du nuanceur

      • Couleur de surbrillance : couleur permettant de définir les propriétés de couleur du matériau lorsque l’objet est mis en surbrillance.
      • Durée de la transition de la mise en surbrillance : durée de fondu de la mise en surbrillance lors de la transition.
      • Mettre en surbrillance les propriétés de la quantité : propriétés du matériau pour définir la quantité de surbrillance lorsqu’elle est mise en surbrillance. Il s’agit d’une valeur float.
      • Propriétés de couleur de surbrillance : propriétés du matériau pour définir la couleur de surbrillance lorsqu’elle est mise en surbrillance. Il s’agit d’une valeur de couleur.
    • Élément de menu 2 : Maillage hiérarchique : ajoute un contour automatique de la couleur/largeur spécifiée aux objets.

      • Couleur de surbrillance : couleur du contour.
      • Durée de la transition mise en surbrillance : temps nécessaire pour faire disparaître le contour lors de la transition.
      • Largeur du contour en surbrillance : épaisseur (en mètres) doit être le contour. Remplace la valeur d’extrusion dans le matériau Graphics Tools/Standard.
      • Matériau hiérarchique personnalisé : matériau utilisé pour restituer le plan.
      • Matériau d’écriture de gabarit personnalisé : le matériau utilisé écrit une valeur dans la mémoire tampon de gabarit
      • Mode d’exclusion de plan : option permettant de filtrer les renderers que vous ne souhaitez pas inclure dans le plan.
    • Élément de menu 3 : Lumière intérieure : Applique une mise en surbrillance avec un effet de lumière à l’aide des propriétés données.

      • Couleur de surbrillance : couleur de la lumière intérieure.
      • Durée de transition mise en surbrillance : durée de fondu de l’éclat intérieur en/dehors lors de la transition
      • Matériau de surbrillance personnalisé : remplacez l’option spécifique à cet objet pour définir le matériau utilisé pour la lumière. Si ce n’est pas défini, le matériel par défaut de la ressource de paramètres est utilisé.
      • Chaîne d’exclusion : s’il s’agit d’un objet Game dont le nom contient la chaîne d’exclusion est exclu de la mise en surbrillance.

Paramètres exclusifs aux manipulables

Capture d’écran du composant Mesh Interactable Setup avec les paramètres manipulables affichés.

  • Mode force : mode à utiliser pour forcer l’objet via l’espace
    • Valeur par défaut : comportement MRTK par défaut qui déplace l’objet à l’aide de son centre.
    • Point Spring : comportement alternatif qui déplace l’objet en appliquant la force à un point de saisie (fonctionne uniquement pour les objets rigides)
  • Rotation (disponible uniquement pour le mode par défaut)
    • Activé : indique si l’objet peut être pivoté ou non lors de la manipulation. Chaque axe peut être défini individuellement.
    • Logique de rotation de manipulation
      • Valeur par défaut : lors de la manipulation d’un objet, il pivote autour de la caméra et reste à la même orientation par rapport à la caméra (les valeurs de transformation réelles pivotent).
      • Restrictive : lors de la manipulation d’un objet, elle ne fait pas pivoter sa transformation et ne reste pas à la même orientation par rapport à la caméra.
  • Traduction (disponible uniquement pour le mode par défaut) =Activé : indique si l’objet peut être traduit lors de la manipulation. Chaque axe peut être défini individuellement.
  • Point Spring (disponible uniquement pour le mode Point Spring)
    • Force du printemps : force du printemps qui tire l’objet. Plus la valeur est élevée, plus elle atteint le point cible.
    • Facteur d’amortissement : combien d’amortissement est appliqué pour empêcher l’oscillation autour du point de saisie.
  • Modifier la transformation cible : permet à l’utilisateur de remplacer la transformation par défaut et de définir la position et la rotation souhaitées de l’objet par rapport à la caméra/avatar pendant que l’objet est sélectionné. Lorsque cette valeur est activée, vous obtenez les trois propriétés suivantes :
    • Espace cible :
      • Espace local de la caméra : indique s’il faut spécifier la position et la rotation dans l’espace local de l’appareil photo.
      • Espace local d’avatar : indique s’il faut spécifier la position et la rotation dans l’espace local de l’avatar.
    • Nouvelle position cible : Nouvelle position cible (le composant z est la direction dans laquelle la caméra/avatar est exposée)
    • Nouvelle rotation de la cible : nouvelle rotation de la cible
  • Avatar IK
    • Forme de pose de main : forme de pose de la main pour placer la main de l’avatar dans lors de la manipulation de l’objet
    • Taille de la pose de main : taille de la pose de la main de 0 à 1.
    • Activer le suivi IK : indique si le bras de l’avatar atteint vers l’objet lors de la manipulation à l’aide du ciblage IK.
      • Limiter IK Spherical : si la valeur est true, arm IK sera effectuée sur une sphère. Cela provoquera le bras de l’avatar de ne pas rester droit dehors.

Paramètres partagés par les équipementables et les éléments lèves

Capture d’écran du composant Mesh Interactable Setup avec les paramètres communs aux éléments équipés et levées mis en surbrillance.

  • Décalage d’interaction : décalage de position et de rotation par rapport à la main de l’avatar pour placer l’objet.
  • Pose cible d’équipe
    • Position : distance de la poitrine de l’avatar pour placer la main lorsqu’un élément est équipé.
    • Rotation : quantité à faire pivoter le poignet lorsqu’un élément est équipé.
  • Pose de main tenue :
    • Forme de pose de main : il s’agit d’une liste déroulante qui fournit une gamme de formes de pose de main pour placer la main de l’avatar lorsqu’il est équipé. Vous pouvez également choisir aucun.
    • Taille de la pose de main : taille de la pose de la main de 0 à 1.

Paramètres exclusifs aux équipementables

Capture d’écran du composant Mesh Interactable Setup avec les paramètres équipables affichés.

  • Activer la configuration
    • Type d’activation : Quand définir l’élément comme actif. Les objets pouvant être levées ne peuvent pas être activés et le type activé est toujours défini sur aucun.
      • Aucun : cet élément ne peut pas être activé.
      • Bascule : cet élément bascule entre actif/non actif chaque fois que le contrôle d’activation est cliqué.
      • Unique : cet élément est activé lorsque le contrôle d’activation est cliqué, puis désactivé automatiquement une fois qu’il atteint sa dernière pose cible.
    • Activer les poses cibles : liste des poses cibles utilisées pour placer la main de l’avatar lorsqu’un élément est activé. Chaque pose se compose de quatre propriétés : position, rotation, temps d’interpolation et courbe d’animation. Les décalages de position et de rotation sont relatifs à la poitrine de l’avatar. L’avatar interpole à l’aide de la courbe d’animation de la pose précédente vers le bas séquentiellement de la liste pour la durée définie dans le temps d’interpolation, restant à la pose finale jusqu’à ce qu’elle soit désactivée. En cas de désactivation, la pose de la main de l’avatar se déplace vers l’arrière dans la liste.

Paramètres exclusifs aux levées

Capture d’écran du composant Mesh Interactable Setup avec les paramètres lèveables affichés.

Configuration de l’objectif :

  • Extension de bras sur l’objectif : quantité à étendre le bras en mode objectif.
  • Pose manuelle de l’objectif :
    • Forme de pose de main : forme de pose de main pour placer la main de l’avatar dans le but.
    • Taille de la pose de main : taille de la pose de la main de 0 à 1.
  • Rotation de la main de l’objectif : rotation de la main tout en visant
  • Poser la main :
    • Forme de pose de main : la forme de pose de la main pour placer la main de l’avatar dans le moment où le lancer est libéré
    • Taille de la pose de main : taille de la pose de la main de 0 à 1.
  • Vr Min Throw Velocity : La vitesse minimale à appliquer à un objet lorsqu’elle est levée sur la quête.
  • Vitesse de levée maximale de VR : vitesse maximale à appliquer à un objet lorsqu’il est lancé sur Quest. Il s’agit de la valeur de vitesse utilisée sur PC. Sur Quest, la vitesse sera mise à l’échelle en fonction du mouvement du bras physique de l’utilisateur.

Dans la quête, la vitesse appliquée lorsqu’un objet est levée sera mise à l’échelle entre les valeurs minimales et maximales à l’aide de la vitesse réelle du mouvement du bras de l’utilisateur.

  • Paramètres 2D
    • Vitesse de levée 2D : vitesse à appliquer à un objet lorsqu’il est jeté sur PC.
    • Lever le décalage de direction : décalage directionnel à appliquer à un objet lorsqu’il est levée sur pc.
  • Lancer des poses cibles : liste des poses cibles utilisées pour placer la main de l’avatar lorsqu’un élément est levée. Les décalages de position et de rotation sont relatifs à la position de la main de l’avatar lorsque le lancement a été lancé. L’avatar interpole à l’aide de la courbe d’animation de la pose précédente vers le bas séquentiellement de la liste pour la durée définie dans le temps d’interpolation. L’objet sera libéré et la pose de main levée sera utilisée à la seconde à la dernière cible.

Visual Scripting

Pour tous les corps interagissants :

  • Propriétés
    • IsHovered (en lecture seule) : indique si votre avatar local pointe vers l’objet.
    • IsSelected (lecture seule) : indique si un avatar sélectionne l’objet ou non. Lors de l’exécution dans MeshBrowser, il s’agit d’un réseau.
    • IsSelectedLocally : indique si l’avatar local sélectionne l’objet.
    • IsMine (lecture seule) : True pour le dernier avatar à sélectionner ou à équiper l’objet.

Pour les équipements :

  • Propriétés
    • EquippedAt (lecture seule) - Où cet objet est équipé – None, DefaultHand, RightHand, LeftHand. Lors de l’exécution dans MeshBrowser, il s’agit d’un réseau.
    • EquipTime (lecture seule) : heure à laquelle cet objet a été équipé. Lors de l’exécution dans MeshBrowser, il s’agit d’un réseau.
    • IsActivated (en lecture seule) : si cet objet est dans l’état activé. Valide uniquement pour les objets qui ne sont pas levées. Lors de l’exécution dans MeshBrowser, il s’agit d’un réseau.
    • IsAiming (en lecture seule) : si l’avatar local est dans l’état de but lors de la conservation de cet objet. Valide uniquement pour les levées.
    • IsThrowing (lecture seule) : si l’avatar local est en cours de levée active de l’objet. Valide uniquement pour les levées.
    • IsEquipped (lecture seule) (lecture seule) : si cet objet est actuellement équipé d’un avatar. Lors de l’exécution dans MeshBrowser, il s’agit d’un réseau.
    • IsThrowable : si cet objet est levée.
    • ThrowVelocity : vitesse à lever l’objet lorsqu’il est libéré.

Pour que les manipulables modifient la position cible :

  • Position cible (lecture seule) : position cible du corps lors de l’utilisation du mode force par défaut dans les propriétés interagissantes du maillage
  • Rotation de la cible (lecture seule) : rotation cible du corps lors de l’utilisation du mode force par défaut dans les propriétés interagissantes du maillage
  • Position d’accès au rayon (en lecture seule) : position de l’atteinte par rayons de l’interagissant sur le corps
  • Rotation d’accès au rayon (lecture seule) : rotation de l’interagissant autour de la direction du rayon
  • Position cible modifiée (lecture et écriture) : utilisée pour définir la nouvelle position cible par le script visuel. Cela remplace la position cible par défaut. La meilleure pratique consiste à remplacer cette propriété :
    • Utilisation de l’état modifié de la position cible. Dans ce cas, le script visuel déclenche un flux uniquement lorsque l’interaction et la nouvelle position a changé.
    • Utilisation de la mise à jour tardive. Si vous avez besoin de modifier la transformation cible dans chaque image, effectuez-la en fin de mise à jour afin que la nouvelle transformation cible soit disponible immédiatement dans l’image suivante.
  • Rotation de la cible modifiée (lecture et écriture) : utilisée pour définir la nouvelle rotation de la cible par le script visuel. Cela remplace la position cible par défaut.

Paramètres

Modifier avec un script visuel : activez cette option pour modifier la transformation cible pour les corps manipulables à l’aide d’un script visuel. Modify-with-visual-script

Étapes suivantes