Partager via


Didacticiel Mesh 101 Chapitre 4 : Déplacer des objets et déclencher des animations avec les interactions de maillage et la physique



Dans ce chapitre, vous allez utiliser un modèle de parc éolien. Vous allez apprendre à utiliser les interactions de maillage et la physique pour saisir et libérer des corps rigides (dans ce cas, des éoliennes) et configurer un déclencheur d’animation à l’aide de scripts visuels. Vous allez encapsuler les choses en limitant les éoliennes afin qu’elles ne puissent être déplacées qu’à l’intérieur d’une zone spécifiée.

Ce chapitre est un peu plus simple que ce que vous avez fait dans le chapitre 3---il n’y a pas de script, et la mise en réseau est configurée de sorte que la physique ressemble à tous les avatars de la session.

Il y a quelques choses que nous devons faire avant de commencer à utiliser la première station.

Reconfigurer la hiérarchie

  • Dans la hiérarchie, réduisez le GameObject Chapter3 , puis développez le GameObject Chapter4 .

Capture d’écran d’une description d’ordinateur

Modifier l’affichage pour afficher la terrasse à sphère chapitre 4

Dans l’expérience dans Mesh, le participant se déplacera sans problème de la fin du chapitre 3 au début du chapitre 4 et sera correctement localisé pour commencer les activités d’apprentissage du chapitre 4. Toutefois, lorsque vous avez quitté le mode Lecture à la fin du chapitre 3, vous n’avez pas été automatiquement placé avec une vue du modèle Chapitre 4 dans la fenêtre Scène . Nous allons configurer cette vue.

  1. Dans la hiérarchie, sélectionnez l’objet GameObject nommé 4.1 -- Récupération et mise en production.

    Capture d’écran d’une description d’ordinateur

  2. Déplacez le curseur sur la fenêtre Scène , puis appuyez sur la touche F de votre clavier.

    Cela centre la vue sur l’objet 4.1 - Grab et Release , mais vous ne serez probablement pas dans la position dont nous avons besoin.

  3. Faites glisser, faites pivoter et/ou zoomez la vue jusqu’à ce que vous voyiez les stations chapitre 4 devant vous, comme indiqué ci-dessous.

    Image générée par ordinateur d’un modèle d’une description de montagne générée automatiquement

Station 4.1 : Récupération et libération

L’objectif pour le participant de ce chapitre de la formation est de déplacer les éoliennes de la table vers l’océan. Une fois situées là, les éoliennes attrapent le vent de l’océan, faisant tourner leurs pales et générer de l’énergie.

  1. Dans la hiérarchie, développez la version 4.1 -- Grab and Release GameObject. Notez qu’il contient trois GameObjects d’éoliennes qui se trouvent sur la table de la scène.

    Capture d’écran d’une description d’ordinateur

    Nous allons ajouter des fonctionnalités de récupération et de libération à WindTurbine1 afin que les participants puissent le déplacer dans Mesh.

  2. Dans la hiérarchie, sélectionnez WindTurbine1.

  3. Dans l’inspecteur, cliquez sur le bouton Ajouter un composant , puis recherchez et ajoutez Mesh Interactable Setup.

    Capture d’écran

    Conseil

    Une explication de ce composant a été donnée dans le chapitre 3 de ce tutoriel.

  4. Dans le même composant, cliquez sur la liste déroulante Type d’objet , puis sélectionnez Manipulable.

    Capture d’écran

  5. Vérifiez que le composant est actif.

  6. Dans le composant Rigidbody, développez l’option Contraintes si nécessaire, puis, pour les paramètres Figer la rotation, sélectionnez X,Y et Z.

    Capture d’écran d’une description d’ordinateur générée automatiquement

Cela empêchera le basculement de l’éolienne si vous la placez sur une surface inégale.

Tester votre travail

  1. Enregistrez le projet, puis sélectionnez le bouton Lecture de l’éditeur Unity.

    Notez que chaque fois que vous passez en mode Lecture, votre point de départ dans la fenêtre Jeu est la terrasse sphère chapitre 3. Pour ce chapitre, nous voulons être dans l’autre Sphere Terrace---l’une avec les fonctionnalités chapitre 4. Heureusement, il y a un moyen facile d’y arriver.

  2. Faites pivoter la vue vers la droite jusqu’à ce que la zone d’informations Accéder au chapitre 4 s’affiche.

    Capture d’écran d’une description d’ordinateur

  3. Accédez à la zone d’informations, puis sélectionnez le bouton Téléporter vers le chapitre 4 .

    Capture d’écran d’une description d’ordinateur générée automatiquement

  4. Une fois arrivé à la terrasse de sphère chapitre 4, déplacez le curseur sur WindTurbine1 - sa forme changera - puis faites glisser l’éolienne autour de la scène.

    L’éolienne restera verticale en raison de l’activation de ses contraintes de rotation de gel .

    Une image

  5. Cliquez sur le bouton Lecture de l’éditeur Unity pour quitter le mode Lecture.

Vous n’avez pas besoin de mettre à jour les deux autres éoliennes, nous l’avons déjà fait pour vous.

Station : Déclencheur d’animation 4.2

L’idée ici est que lorsque vous faites glisser une éolienne au-dessus de l’océan, le « vent » fait tourner les pales de l’éolienne. En fait, un cube transparent nommé Déclencheur d’animation se trouve au-dessus de l’océan et agit comme un volume de déclencheur. Si vous faites glisser une éolienne dans le volume du déclencheur, elle déclenche un événement On Trigger Enter qui démarre une animation de lame en rotation.

Pour ce chapitre, nous allons ajouter un script à un GameObject, puis activer l’animation dans le script.

  1. Dans la hiérarchie, développez la version 4.2 -- Animation Trigger GameObject, puis sélectionnez son objet enfant nommé Animation Trigger.

    Capture d’écran

    Notez que vous pouvez voir les contours verts du déclencheur d’animation GameObject’s Box Collider.

    Capture d’écran

  2. Dans l’inspecteur, accédez au composant Box Collider , puis sélectionnez Est déclencheur.

    Capture d’écran

Conseil

Quand vous sélectionnez Est déclencheur, l’objet est associé au composant collider à un volume de déclencheur.

  1. Dans la hiérarchie, accédez au Chapitre 4>4.1 - Récupération et libération , puis sélectionnez WindTurbine1.
  2. Cliquez sur le bouton Ajouter un composant , puis recherchez et ajoutez Script Machine.

Nous voulons que notre script soit incorporé, mais cela signifie généralement que vous devez commencer à créer un nouveau graphique de script à partir de zéro. Nous allons prendre un raccourci ; Laissez l’option Source définie sur Graph pour l’instant. Nous allons attacher un graphe de script existant, puis le convertir en graphe incorporé.

  1. Cliquez sur le bouton dans le champ Graph , puis, dans la fenêtre SelectSceneGraph , sélectionnez SPWindTurbineScript.

    Capture d’écran

  2. Cliquez sur le bouton Convertir . Notez que cela supprime le paramètre Graph et remplace l’option Source par Incorporer.

Ajouter l’animation de panneau en rotation au graphique

Prenez le temps d’examiner le graphique de script. Il a deux groupes : le groupe supérieur déclenche l’animation de rotation de la lame lorsque l’utilisateur fait glisser une éolienne dans le volume du déclencheur, et le groupe inférieur arrête l’animation lorsque l’utilisateur fait glisser l’éolienne hors du volume.

Capture d’écran

Le graphique est presque configuré comme nous le voulons, mais il reste un problème. Les deux Animator : Définir les nœuds déclencheur sont définis sur Ce ...

Capture d’écran

... Mais ceci (en d’autres termes, WindTurbine1) n’a pas l’animation que nous voulons déclencher. Trouvons-le.

  1. Dans la hiérarchie, développez WindTurbine1 , puis son objet enfant nommé WindTurbineBody. Cela révèle l’objet enfant nommé Windmill_Turbine_001 :Propellors10.

    Capture d’écran

  2. Sélectionnez Windmill_Turbine_001 :Propellors10, puis, dans l’inspecteur, notez qu’il contient un composant Animator avec le contrôleur d’animation nommé WindTurbine1Propellers.

    Capture d’écran

    Cet animateur est ce qui fournira notre animation.

  3. Faites glisser le GameObject Windmill_Turbine_001 :Propellors10 à partir de hierarchy, puis, dans le graphique de script, déposez-le dans le premier champ du nœud Animator : Set Trigger situé dans le premier groupe.

    Capture d’écran

  4. Faites glisser le GameObject Windmill_Turbine_001 :Propellors10 à partir de la hiérarchie , puis, dans le graphique de script, déposez-le dans le premier champ du nœud Animator : Set Trigger situé dans le deuxième groupe.

Le script est maintenant terminé.

Tester votre travail

  1. Enregistrez le projet, puis appuyez sur le bouton Lecture de l’éditeur Unity.

  2. Comme indiqué précédemment, le fait d’entrer en mode Lecture place votre avatar dans la terrasse de la sphère Chapter3 . Faites pivoter la scène vers la droite, puis passez au bouton Téléporter vers le chapitre 4 et appuyez dessus.

    Capture d’écran d’une description d’ordinateur générée automatiquement

  3. Vous devriez maintenant être dans la terrasse de sphère Chapitre4 . Faites glisser WindTurbine1 (rappel : c’est la plus éloignée à l’arrière, avec les lames rouges) sur l’océan. Notez que les pales de l’éolienne tournent maintenant.

    Une image contenant une capture d’écran, une modélisation 3D, un jeu pc, une description du logiciel de jeu vidéo générée automatiquement

  4. Faites glisser la même turbine loin de l’océan et replacez-la sur la table. Notez que les pales de l’éolienne cessent de tourner.

  5. Lorsque vous avez terminé d’observer l’animation, appuyez sur le bouton Lecture de l’éditeur Unity pour quitter le mode lecture.

Vous n’avez pas besoin de mettre à jour les autres éoliennes--- nous l’avons déjà fait pour vous.

Station 4.3 : Contrainte des corps

Pour l’instant, il n’y a aucune contrainte quant à l’endroit où un participant peut laisser tomber une éolienne. Nous espérons qu’ils placent les éoliennes dans l’océan où ils peuvent attraper le vent, mais un participant pourrait, par exemple, larguer accidentellement une éolienne sur le sol. Nous voulons éviter cela, donc pour s’assurer que les éoliennes ne peuvent atterrir que sur la table ou dans l’océan, nous pouvons mettre en place un champ de confinement. Il s’agit essentiellement d’une boîte transparente---les turbines seront limitées à l’intérieur de la boîte.

  1. Dans la hiérarchie, développez l’objet GameObject 4.3 -- Contrainte des corps et sélectionnez son objet enfant nommé Containment Field.

    Capture d’écran d’une description d’ordinateur générée automatiquement

  2. Dans l’inspecteur, sélectionnez le bouton Ajouter un composant , puis ajoutez le composant Champ de confinement .

    Capture d’écran d’une description d’ordinateur générée automatiquement

  3. Dans le composant Champ de confinement , sélectionnez le bouton « + » à droite de l’option Corps affectés , puis, dans le menu contextuel, sélectionnez la condition Nom de l’objet du jeu .

    Capture d’écran d’une description d’ordinateur générée automatiquement

  4. Dans la zone Commence par , tapez « WindTurbine ». Puisque les trois éoliennes de notre scène commencent par « WindTurbine », elles seront toutes limitées au champ de confinement.

    Capture d’écran d’une description d’ordinateur

Tester votre travail

  1. Enregistrez le projet, puis appuyez sur le bouton Lecture de l’éditeur Unity.

  2. Comme indiqué précédemment, le fait d’entrer en mode Lecture place votre avatar dans la terrasse de la sphère Chapter3 . Faites pivoter la scène vers la droite, puis passez au bouton Téléporter vers le chapitre 4 et appuyez dessus.

    Capture d’écran d’une description d’ordinateur générée automatiquement

  3. Vous devriez maintenant être dans la terrasse de sphère Chapitre4 . Faites glisser l’une des éoliennes loin de la table et de l’océan et essayez de la déposer sur le sol. Le champ de confinement vous empêche de le faire.

Chapitre 4 : Résumé

Dans ce chapitre, vous avez ajouté des fonctionnalités de maillage qui permettent aux participants de votre expérience d’effectuer les opérations suivantes :

  • Saisir et déplacer un objet

  • Déclencher une animation lorsque le participant fait glisser un objet dans un volume de déclencheur

  • Supprimer un objet uniquement dans une zone particulière que vous avez spécifiée

Étapes suivantes

Chapitre 5 : Rendre votre environnement disponible pour le test