Rebonjour,
J'espère que vous avez terminé le devoir que je vous avais donné dans la page précédente, car nous allons l'utiliser pour comprendre deux composants incontournables ainsi que le mode "Play".
Tester votre jeu!
Si vous avez bien réussi votre devoir, vous devriez avoir quelque chose de semblable à cela.
Avant d'apprendre à utilisé le moteur physique nous allons d'abord voir comment tester notre jeu. Pour ce faire, cliquez sur le bouton "Play" centré en haut de la vue 3D. Normalement, vous devriez maintenant être passé à la fenêtre "Game".
Dans cette fenêtre, vous verrez votre jeu du point de vue de la caméra. Lorsque le mode "Play" est actif, vous pouvez tester votre scène comme le ferait un joueur. Pour l'instant, vous ne pouvez rien faire, car nous n'avons encore rien programmé pour interagir avec notre monde 3D, et rien ne bouge, car nous n'avons pas encore ajouté de physique.
Je vous invite maintenant à revenir dans la fenêtre "Scene".
Toujours avec le mode "Play" activé, déplacez les objets à l'aide des gizmos et faites ce que vous voulez. Vous pouvez aussi créer d'autres objets pour vous amuser. Peu importe ce que vous faites, l'essentiel est de vous familiariser avec l'interface. Cela pourrait ressembler à ceci.
Maintenant, arrêtez le mode "Play" en cliquant sur le bouton "Stop", situé à l'endroit où se trouve le bouton "Play". MAGIE ! Tout votre travail a disparu !!!
Vous venez d'expérimenter une erreur courante chez les débutants. Lorsque le mode "Play" est activé, toutes les modifications que vous apportez, que ce soit des ajouts ou des changements, seront annulées à la fin de votre test. Il est donc très important de vérifier que votre jeu n'est pas en mode "Play" si vous souhaitez le modifier.
Ajouter votre premier composant : la gravité (Rigidbody)
Maintenant, revenons à la fenêtre "Game" pour ajuster le comportement d'unity lorsque nous activons le mode "Play". Comme illustré ci-dessous, sélectionnez l'option "Play Unfocused". Cela empêchera la fenêtre "Game" de s'ouvrir automatiquement lorsque vous appuyez sur "Play", et le jeu restera actif même si vous n'êtes pas dans la fenêtre "Game".
Information: L'option "Focused" permet de rendre votre jeu actif uniquement lorsque la fenêtre "Game" est visible. Dans le cas contraire, le jeu sera mis en pause, même si l'option "Play" est activée. En ce qui concerne l'option "Play Maximised", elle fonctionne de la même manière que l'option "Focused", mais avec la fenêtre du jeu ouverte en plein écran.
Pour continuer, nous allons ajouter un composant à notre cube. Retournez dans la fenêtre "Scene", sélectionnez votre cube et, dans "l'inspector", cliquez sur "Add Component". Une liste déroulante de composants disponibles apparaîtra. Dans notre cas, utilisez la barre de recherche pour trouver "Rigidbody".
Une fois le composant trouvé, cliquez sur "Rigidbody" pour l'ajouter à votre cube.
Maintenant, lancez à nouveau votre jeu avec le bouton "Play". Vous verrez normalement que votre cube tombe. Si ce n'est pas le cas, cocher la case "Use Gravity" du composant. Vous pouvez maintenant le soulever à l'aide des gizmos et le laisser tomber. Vous venez de découvrir la gravité !
Ajouter un composant de type "Rigidbody" permet à un objet d'être influencé par le moteur physique. Plusieurs options sont disponibles pour ce composant. Notez que les composants modifient uniquement l'objet auquel ils sont attachés.
Il est également important de comprendre que le "Rigidbody" modifie uniquement l'interaction de l'objet avec le moteur physique, sans changer les propriétés du moteur lui-même. Par exemple, vous pouvez ralentir la chute de l'objet en augmentant le "Drag", ce qui simule la résistance de l'air, un peu comme une plume qui tombe lentement à cause du frottement avec l'air.
Cependant, tous les objets subiront la même force de gravité. Si vous souhaitez accélérer la chute d'un objet, il faudra modifier la force de gravité dans les paramètres du moteur physique ou coder cette modification manuellement. Nous apprendrons ces deux méthodes dans un autre cours.
Les personnes ayant suivi des cours de physique comprendront plus facilement ce concept. Si ce n'est pas votre cas, ne vous inquiétez pas si vous ne comprenez pas entièrement son fonctionnement. Retenez simplement que vous pouvez ralentir la chute d'un objet, mais pas l'accélérer, avec le composant "Rigidbody".
Nous n'entrerons pas dans les détails de toutes les options du composant "Rigidbody" . Cependant, voici les paramètres les plus importants à connaître pour le moment :
- Mass : Permet de définir la masse de l'objet. Plus elle est élevée, plus l'objet est "lourd", ce qui lui permet de déplacer plus facilement des objets moins lourds lors des collisions. Pour les connaisseurs, cela est lié à la deuxième loi de Newton (F = ma).
- Use Gravity : Comme son nom l'indique, permet de définir si l'objet subit la gravité.
- Is Kinematic : Annule les forces physiques et les interactions de l'objet tout en le rendant détectable pour les collisions.
- Constraints (contraintes) : Vous permet de bloquer (freeze) les rotations ou déplacements selon des axes spécifiques. Par exemple, vous pouvez empêcher votre objet de se déplacer de gauche à droite, mais autorisé les mouvements de haut en bas.
Le troisième point peut sembler étrange, car il annule la physique. Ce composant est surtout utilisé lorsque vous programmer des événements. Par exemple, vous pourriez créer une plateforme qui tombe uniquement lorsqu'un joueur la touche. Ce composant peut également être utilisé pour créer des ragdolls (nous y reviendrons plus tard dans un exercice futur).
Lorsque vous explorez ou apprenez un nouveau composant, comme celui-ci, je vous conseille de consulter sa documentation. Vous pouvez y accéder facilement en cliquant sur le symbole "?" situé à côté du nom du composant.
Vous y trouverez tous les détails nécessaires pour comprendre ses paramètres, ainsi que des paramètres cachés(propriété et méthode), accessibles uniquement par programmation.
Je vous recommande vivement de vous familiariser avec la documentation d'Unity, car vous y reviendrez fréquemment lors des prochains exercices. Il est cependant normal de ne pas tout comprendre à ce stade, car vous n'avez pas encore suivi de cours sur la programmation en C#. Pour l'instant, contentez-vous des descriptions et ignorez les propriétés et autres éléments situés en dessous.
Les Collisions
Pour continuer, lorsque vous activez la physique dans votre jeu, vous serez forcément confronté aux collisions. Il est donc nécessaire d'en apprendre d'avantage sur le composant "Collider".
Pour comprendre le fonctionnement d'un composant de type "Collider", je vous invite à désactiver ou supprimer celui du cube.
Vous pouvez désactiver le "Box Collider" en décochant la case ou en cliquant sur les trois points pour supprimer le composant.
Lancez à nouveau "Play". Vous remarquerez que le cube traverse maintenant le sol. En effet, un objet sans composant "Collider" devient comme un fantôme et ne peut interagir avec aucun autre objet. Si vous voulez qu'un objet interagisse avec un autre, assurez-vous que les deux possèdent un composant "Collider".
Nous allons maintenant modifier le "Collider". Réactivez ou ajoutez le Collider si nécessaire. Cliquez ensuite sur "Edit Collider". Des petits points verts apparaîtront sur le cube, ce sont les limites du détecteur de collision. Maintenez un clic sur les petits carrés verts pour les déplacer. Essayez de déplacer la face inférieure du cube pour obtenir quelque chose comme ceci.
Cliquez sur "Edit" pour confirmer et lancez de nouveau votre jeu. Selon la taille de la limite du "Collider", le cube devrait rester plus ou moins en l'air, car il est considéré comme étant en contact avec la surface de l'objet "Plane". Le cube gris est en réalité toujours un "fantôme", mais les interactions subies par ce cube sont en réalité celles du "Collider". Vous pouvez déplacer la limite en dehors de votre objet, et l'objet subira exactement les mêmes collisions que celle-ci, même si le cube gris lui-même ne touche rien. Ce phénomène est bien connu des joueurs de FPS et porte le nom de "hitbox".
C'est un concept important à comprendre, alors essayez de jouer avec les limites pour bien saisir son fonctionnement.
Voyons maintenant les paramètres essentiels à connaître :
- Edit Collider : Permet de modifier la zone détectable et soumise aux collisions.
- Is Trigger : Lorsque cette option est activée, les objets peuvent traverser le "Collider", mais il devient possible, avec du code, de détecter si un objet entre ou sort de la zone de détection. Cela sera très utile plus tard.
- Material : Vous pouvez ici définir le type de matériau physique de l'objet. Par exemple, il est possible de rendre un objet rebondissant, comme une balle en caoutchouc. Nous découvrirons comment créer ce type de matériau à la fin du chapitre.
Les types de colliders.
En sélectionnant l'objet "plane", vous remarquerez que le composant "Collider" porte un autre nom, "Mesh Collider", contrairement au "Box Collider" de l'objet "cube". Le type de "Collider" détermine la forme de ses limites. Par exemple, vous pouvez utiliser un "Cube Collider" ou un "Sphere Collider", entre autres.
Le "Mesh Collider" est normalement utilisé pour des formes complexes, comme un personnage, mais il peut impacter les performances. Il est donc conseillé d'utiliser des "Box Colliders" lorsque c'est possible. Plus le "Collider" est simple, plus il est optimisé. Lorsque vous créerez un jeu avec de nombreux objets interagissant entre eux, cela pourra entraîner des calculs lourds, générant des ralentissements (lags).
Utiliser des formes simples optimise ces calculs. Même dans les jeux récents, les personnages sont souvent dotés de "Box Colliders", car ils sont plus performants. Si vous avez déjà joué à un jeu de tir, vous avez peut-être remarqué que les tirs peuvent toucher un personnage même si vous avez tiré à côté. Cela signifie que la "hitbox" utilisée n'a pas exactement la forme du personnage.
Conclusion
En conclusion, voici ce qu'il faut retenir de ce cours : toutes les modifications effectuées en mode "Play" sont temporaires. Le composant "Rigidbody" permet à un objet d'être influencé par le moteur physique, et les composants de type "Collider" gèrent les collisions. Ce que nous avons vu jusqu'à présent n'est qu'un simple aperçu de ses composants. En réalité, il nous reste encore beaucoup à apprendre. Toutefois, nous devons d'abord acquérir une base en programmation avant d'exploiter pleinement leur potentiel.
Bref, si vous avez compris ces deux composants, vous avez déjà acquis une base solide pour créer un jeu. En ajoutant la possibilité de contrôler un personnage, vous pourrez utiliser uniquement ces deux composants pour créer des jeux de plateforme, comme un jeu à la Mario Bros.
Pour ceux qui souhaitent continuer leur apprentissage, nous découvrirons dans la prochaine page du chapitre ce qu'est un matériau, et nous conclurons ensuite par la création d'un mini-jeu de billes.
Cette page ne contient pas de Fichier à Télécharger.
Les cours vous ont aidé et vous souhaitez à votre tour nous aider ?
- - - Vous pouvez partager le site avec vos connaissances, ainsi que le Discord. - - -
- - - Participer à la vie active du site et du Discord. - - -
- - - Faire un petit don pour nous aider à payer le serveur avec le lien ci-dessous. - - -