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é avec sa propriété Type interactive par défaut définie sur Basic. (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.

Obtenir de l’aide

Dans les composants De corps interagissants Mesh et Mesh Interactable Body , vous pouvez cliquer sur le bouton « ? » pour accéder à une page de la documentation Mesh qui contient de l’aide pour la fonctionnalité à laquelle le bouton est connecté.

Capture d’écran des composants Mesh Interactable avec le bouton d’aide sensible au contexte mis en surbrillance.

Types d’objets interagissants

Il existe quatre types d’objets :

  • De base
  • 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 interagissant, puis sélectionnez l’une des quatre options.

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

De base

Comme mentionné ci-dessus, il s’agit du type par défaut. Lorsque l’utilisateur pointe ou sélectionne l’objet, il peut appeler des rappels et d’autres scripts peuvent réagir. Par exemple, si vous avez un bouton que vous souhaitez utiliser pour activer un autre objet, ajoutez ce type d’interaction au bouton 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.

Remarque : Les trois autres types interagissants --Manipulable, Équipementable et Throwable (expliqué ci-dessous), ont les mêmes attributs que le type De base, mais avec des fonctionnalités supplémentaires.

En savoir plus sur les paramètres de type d’objet de base

Manipulable

Vous pouvez déplacer un objet de ce type à partir d’une distance ; plus précisément, vous manipulez sa transformation au moment de l’exécution et déplacez-la 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.

En savoir plus sur les paramètres de type d’objet manipulable

Équipementable

Vous pouvez saisir un objet de ce type. En termes mesh, nous disons que vous « équipez » l’objet à la main de votre avatar. Pour équiper un objet sur le PC, cliquez sur l’objet ou appuyez sur F pendant que l’objet est sélectionné. Pour équiper un objet sur la quête, appuyez 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é.

En savoir plus sur les paramètres de type d’objet équipable

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 objectif 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.

En savoir plus sur les paramètres de type d’objet pouvant être levées

Rendre les objets interagissant avec visual Scripting

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. Pour tirer parti de cela, utilisez le composant Corps interagissant mesh à l’intérieur d’un graphique de script avec un nœud vers une propriété disponible, telle qu’OnHovered ou 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.

Propriétés de script visuel

Pour tous les corps interagissants :

  • 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 :

  • 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.

Étapes suivantes