Tutoriel de Bethesda : le Navmesh/fr

From the CreationKit Wiki
Jump to navigation Jump to search

Tutoriel de Bethesda : le Navmesh




200px Alert image.png LISEZ CETTE NOTE !

Cet article est destiné à accueillir la traduction d'un article écrit dans une autre langue et n'est pas terminé. Certaines parties sont encore en version originale, ou absentes.

Aidez-nous ! Si vous avez les connaissances nécessaires, s'il vous plaît, modifiez cet article afin que nous puissions retirer le drapeau "Traduction incomplète".


Tutoriel de Bethesda : le Navmesh/fr
Série : Aménagement d'espaces de jeu, page 4
Sommaire du tutoriel
LeftArrow.pngTutoriel précédent Tutoriel suivantRightArrow.png
Exemple de modules :
Initial Terminé
Tutoriel vidéo compagnon


Présentation[edit | edit source]

Dans ce chapitre nous allons créer un navmesh manuellement et par génération automatique.

Le lecteur apprendra :

  • ce qu'est un "Navmesh", et pourquoi c'est important.
  • comment générer automatiquement un navmesh avec le mode "Recast-Based Generation".
  • comment modifier un navmesh manuellement.
  • réparer les alertes du navmesh.
  • générer une couverture basique.

Qu'est ce qu'un Navmesh[edit | edit source]

Après qu'une zone ait été construite et aménagée, il est nécessaire de déterminer où les acteurs peuvent se déplacer. C'est là que le navmesh entre en jeu. Pour faire simple, le navmesh (pour "navigation mesh" soit "maillage de navigation") est un ensemble de polygones qui définissent où un acteur peut marcher.

Il est facile de tenir pour acquise la quantité d'informations que nous utilisons lorsque nous jouons. Nos cerveaux analysent chaque détail visuel, faisant sans cesse des conclusions et des hypothèses. Malheureusement, les systèmes d'intelligence artificielle sont loin d'approcher les capacités du cerveau humain, et doivent compter sur les informations que nous leur fournissons. Le navmesh est l'élément crucial de la connaissance qu'un acteur doué d'intelligence artificielle, a d'un espace donné. Un navmesh de qualité est un facteur important pour aider l'intelligence artificielle à fonctionner au mieux.

L'éditeur de navmesh est un outil consistant qui peut être frustrant à utiliser au début. Nous apprendrons étape par étape comment débuter. Une fois acquis les fondamentaux et avec la pratique, vous deviendrez rapidement un expert du navmesh !

NewFeature.jpg Utilisateurs du GECK prenez note : Peu de choses ont changées dans la manière de créer des navmesh manuellement. Par contre Il y a eu des ajouts pour la génération automatique, comme le tout nouveau mode de génération "Recast", qui est abordé dans ce tutoriel. Pour plus d'informations, consultez la page Generation de Navmesh.

Les utilisateurs du Construction Set Oblivion et/ou Morrowind remarquerons que le Navmesh a complètement remplacé le système de pathfinding de ces outils.

Générer automatiquement un Navmesh[edit | edit source]

Fig. 4.1: Bouton "Navmesh Mode"
Fig. 4.2: Barre d'outils Navmesh

Tout le travail sur le navmesh est effectué dans un mode éditeur séparé. Pour entrer dans ce mode, cliquez sur le bouton "Navmesh Mode" (Fig. 4.1) de la barre d'outils principale, ou appuyez sur "CTRL+E". La barre d'outils Navmesh (Fig. 4.2) apparaîtra.

Nous n'avons pas vraiment besoin d'utiliser quoi que ce soit sur la barre d'outils Navmesh pour générer automatiquement notre navmesh; il s'agit d'un outil pratique. Cependant nous avons besoin d'être en mode Navmesh pour pouvoir utiliser la génération automatique, et la présence de la barre d'outils signifie que nous y sommes.

Il y a quatre types de génération automatique : Object-Based, Havock-Based, Recast-Based et Advanced. Pour la majorité des intérieurs, vous préférerez utiliser la génération automatique "Recast-Based", puis nettoyer le navmesh manuellement. Ce tutoriel n'approfondira pas la génération par Object-Based ou Havock-Based. Les utilisateurs expérimentés pourrons souhaiter créer tout leur navmesh manuellement. Certains trouvent cela plus rapide que de générer automatiquement le navmesh puis de le nettoyer manuellement. Une fois à l'aise avec le système, c'est une question de préférences.

NewFeature.jpg Utilisateurs du GECK prenez note : Object-Based et Recast-Based sont de nouveaux modes de génération automatique créés pour le Creation Engine.

Utilisons la génération Recast pour créer le premier maillage de la tombe de Lokir :

  1. Cliquez sur la Render Window pour vous assurer que la fenêtre est active.
  2. Assurez-vous de n'avoir rien sélectionné dans la Render Window (si vous n'en êtes pas sûr, cliquez simplement quelque part dans le vide ou appuyez sur la touche D).
  3. Choisissez "Recast Navmesh Generation" depuis le menu NavMesh dans la barre d'outils principale : NavMesh > Generation > Recast Based Generation.
  4. La boîte de dialogue Recast Navmesh Generation apparaît. (Fig. 4.3)
  5. Ne vous souciez pas de ce que toutes ces différentes valeurs signifient. Assurez-vous simplement que ces valeurs sont similaires à celles de la Fig. 4.3 et cliquez sur "OK".
  6. Cliquez sur "OK". La génération du navmesh peut prendre du temps selon les performances de votre PC.
  7. Une fois que c'est fait, le navmesh devrait ressembler à celui illustré Fig. 4.4 et 4.5.
NewFeature.jpg Parfois vous avez besoin de créer un navmesh sur une vaste section de niveau, mais vous ne souhaitez pas effacer les autres navmesh du niveau. Maintenez CTRL+ALT, faite un clic gauche et étirez un cadre pour sélectionner toutes les références pour lesquelles vous souhaitez créer un navmesh. Une fois la sélection faite, cliquez sur Recast Based Generation et le navmesh sera uniquement généré pour ces références.

Navmesh manuel[edit | edit source]

Maintenant que nous avons créé un navmesh, nous devons prendre du temps pour le nettoyer. Le moyen le plus facile et le plus rapide de le faire, c'est de le faire manuellement. Avant que nous commencions le processus de nettoyage, prenez une minute pour regarder votre navmesh et voir où la génération "Recast-Based" a connu des ratés.

Si vous avez des difficultés à voir votre navmesh, vous pouvez essayer l'un des trois modes Navmesh : Normal, Transparent, Navmesh seul. Appuyez sur "W" pour passer de l'un à l'autre, ou utilisez les boutons de la barre d'outils illustrés ci-dessous :
Jb NavmeshViewMode.jpg

Effacer des parties d'un Navmesh[edit | edit source]

Lorsque vous nettoyez un navmesh généré automatiquement, il est souvent préférable de commencer par éliminer les parties inutiles du navmesh qui ont été placées dans des zones inaccessibles. Cela nous permettra d'examiner plus facilement le navmesh restant par la suite.

La zone de la caverne et les escaliers des Ruines Nordiques semblent les principales zones concernées. Vous verrez également plusieurs morceaux de navmesh isolés. Ne vous en souciez pas pour le moment. Une fois le navmesh principal nettoyé, retirer les parties isolées sera rapide et facile.

Protip.jpg Pour les utilisateurs expérimentés qui souhaiteraient se débarraser des navmesh isolés tout de suite, maintenez CTRL et cliquez sur un triangle de chaque navmesh que vous souhaitez conserver puis appuyez sur "I". Cela permet de sélectionner tous les navmesh sur lesquels vous n'aviez pas cliqué. Une fois les navmesh sélectionnés avec "I", effacez-les avec "R" ou "SUPPR". C'est plus rapide que de les effacer un à un manuellement, mais il est aussi plus facile d'effacer accidentellement un navmesh utile, alors soyez prudent.

Commencez par vous occuper de la caverne. Ensuite, nous nettoierons le reste du navmesh. Pour le moment, vous n'avez besoin de connaître que les trois boutons à l'extrème gauche de la barre d'outils Navmesh :

Pour nettoyer le navmesh de la caverne, faites un clic gauche et tirez un cadre pour sélectionner les sommets dans toute la zone. Souvenez-vous d'activer la visibilité du navmesh avec ("W") pour vous repérer. N'essayez pas de préserver une partie du navmesh de la caverne, nous le reconstituerons plus tard. Assurez-vous d'avoir activé Select Vertices (Fig. 4.7) et/ou Select Triangle (Fig. 4.6). Vous pouvez nettoyer la caverne en sélectionnant les sommets, ou les triangles, ou les deux. La Fig. 4.9a montre le navmesh avec tous les sommets et les triangles sélectionnés dans la zone et prêts à être effacés.

Une fois que vous avez sélectionné les sommets et/ou les triangles que vous souhaitez supprimer, appuyez sur "R" ou sur "SUPPR" pour effacer la sélection. Une fois le navmesh de la caverne effacé, le navmesh de votre donjon devrait ressembler à celui représenté sur la Fig. 4.9b.

Créer un Triangle de Navmesh[edit | edit source]

Il est temps maintenant de créer manuellement le navmesh de la caverne.

Protip.jpg En créant et modifiant toujours plus de navmesh, vous voudrez peut-être utiliser des raccourcis clavier plutôt que la barre d'outils.

T active/désactive la sélection des triangles.
V active/désactive la sélection des sommets.
G active/désactive la sélection des côtés.

Activez la sélection des sommets en cliquant sur le bouton Jb NavmeshButtonToggleVertexSelect.jpg dans la barre d'outils Navmesh ou en appuyant sur "V" puis zoomez sur l'entrée de la caverne. Faites un clic droit sur le sol. Notez qu'un sommet est apparu. Maintenant, créez de la même manière deux sommets de plus. Vous devriez voir quelque chose de semblable à la Fig. 4.10, trois sommets jaunes (ou deux jaunes et un vert) au sol.

Achtung.png Assurez-vous d'avoir désactivé la Grille. Vous n'en avez pas besoin pour votre navmesh, et elle pourrait vous poser des problèmes si elle reste active.
Protip.jpg Le mode Navmesh utilise son propre système de raccourcis clavier, distinct de celui de l'éditeur principal du Creation Kit. Certains raccourcis auxquels vous auriez pu vous habituer, comme "T" pour passer en vue du dessus, sont reconfigurés lorsque vous êtes en mode Navmesh. Vous pourriez souhaiter imprimer la liste des raccourcis clavier du mode Navmesh pour pouvoir vous y référer tant que vous n'êtes pas habitué à ce mode.

Remarquez les couleurs des sommets que vous avez créés. Le vert indique que le sommet est actuellement sélectionné. Les jaunes ne sont ni sélectionnés ni raccordés, ne font partie d'aucun triangle. Les sommets non sélectionnés mais faisant partie d'un triangle sont rouges. Les sommets jaunes ne servent pas et peuvent être effacés sans conséquence s'il en reste à proximité d'un navmesh complet.

Pour créer un triangle, sélectionnez vos trois sommets jaunes en maintenant CTRL enfoncé et en cliquant sur chacun d'eux, ou simplement avec un clic gauche et en tirant un cadre autour des trois à la fois. Les sommets sélectionnés deviennent verts. Appuyez sur "A" ou utilisez le bouton Jb NavmeshButtonCreateTriangle.jpg pour créer un triangle à partir des sommets, comme illustré sur la Fig. 4.11. Notez que la touche "A" ne fonctionnera que si exactement trois sommets sont sélectionnés.

InDepth.jpg Remarquez que deux sommets restent verts/sélectionnés après la création du triangle. Cela facilite la création des triangles suivants. Avec deux sommets sélectionnés, tout ce dont vous avez besoin pour créer un autre triangle est d'appuyer sur CTRL et de faire un clic droit. Un nouveau sommet est créé où vous avez cliqué et un nouveau triangle est créé automatiquement.

Créer le Navmesh de la caverne[edit | edit source]

Maintenant que nous avons notre premier triangle, nous devons remplir le reste de la caverne avec d'autres triangles. La manière la plus simple de s'y prendre est de sélectionner deux sommets, de maintenir CTRL et de faire un clic droit pour placer un troisième sommet. Cela créera automatiquement un triangle entre les deux sommets sélectionnés et le nouveau sommet placé.

Notez qu'une fois que le nouveau triangle est créé, deux sommets restent sélectionnés/verts. Utilisez simplement CTRL+clic droit pour crééer un autre triangle. Avec la pratique, vous prendrez le rythme et serez capable de remplir rapidement l'espace. Si les deux sommets verts ne sont pas ceux dont vous avez besoin pour créer le prochain triangle, appuyez simplement sur "Tab" pour échanger les sommets sélectionnés. Allez-y et remplissez le reste de la caverne. Une fois que vous avez terminé, le navmesh de votre caverne devrait ressembler aux Fig. 4.12 et 4.13 ci-dessous.

(Note : votre résultat peut varier selon que votre aménagement diffère de celui du plugin exemple)

Protip.jpg Avec cette technique, vous pouvez créer des triangles très rapidement et couvrir une grande surface simplement en utilisant CTRL+clic droit. Nous avons affectueusement appelé cette technique "promener le chien".

Créer le Navmesh des Escaliers Nordiques[edit | edit source]

Avant de nous occuper du navmesh du reste de la cellule, intéressons-nous aux escaliers nordiques, NorHallSm1wayStairs128. Les escaliers sont des zones à problème typique lorsque l'on utilise la génération automatique . Votre navmesh est probablement déconnecté ici, comme illustré sur la Fig. 4.14a.

Heureusement, le Creation Kit permet de joindre facilement et rapidement les navmesh déconnectés comme celui-là.

Pour cet exemple, nous voulons un bord propre en haut et en bas des escaliers. Suivez ces étapes :

  1. Effacez tous les sommets sur l'escalier lui-même, si nécessaire.
  2. Réarrangez les sommets en haut et en bas de l'escalier, de manière à créer un bord ouvert et propre à chaque bout.
  3. Si l'un des bords a trois sommets ou plus au niveau de l'escalier, fusionnez certains sommets de manière à ce qu'il n'en reste que deux. Pour fusionner des sommets, sélectionnez ceux que vous souhaitez fusionner et appuyez sur "Q" ou utilisez le bouton Jb NavmeshButtonMergeVertices.jpg de la barre d'outils.
  4. Assurez-vous d'avoir activé la sélection des sommets ("G").
  5. Double-cliquez sur l'un des bords. Double-cliquer sur un côté sélectionne les deux sommets du côté qui deviennent verts.
  6. Une fois les deux sommets sélectionnés, maintenez CTRL et double-cliquez sur l'autre bord. Le navmesh est automatiquement généré pour joindre les deux bords. Votre résultat devrait ressembler à celui de la Fig. 4.14b ci-dessous.

Créer le navmesh pour le reste du donjon[edit | edit source]

En créant le navmesh de la caverne et en connectant les escaliers, vous avez appris l'essentiel et êtes prêt pour nettoyer le reste de la cellule. Allez-y, terminez le navmesh du donjon. Si vous rencontrez un problème, les conseils suivants pourront se révéler utiles.

  • Essayez de créer un navmesh propre et simple. Il sera plus facile à modifier et fonctionnera plus rapidement dans le jeu.
  • Souvenez-vous de vos raccourcis ! Gardez la liste des raccourcis clavier du mode Navmesh sous la main tant que vous apprenez.
  • Ne vous embêtez pas à créer un navmesh dans des zones auxquelles l'intelligence artificielle ne pourra pas accéder, comme les espaces étroits entre les meubles. Vous pouvez utiliser les [=Pathing_Tests|tests de passage]] pour identifier ce genre d'endroit.
  • Souvenez-vous : pour créer automatiquement un navmesh entre deux côtés ouverts situés à proximité l'un de l'autre : Double-cliquez sur un côté, puis CTRL+Double-clic sur l'autre côté.
  • Tirez avantage des multiples modes de visualisation. Pour passer de l'un à l'autre, appuyez sur "W" ou utilisez les boutons de la barre d'outils.
    Jb NavmeshViewMode.jpg
  • Pour effacer un triangle, activez la sélection des triangles avec "T", sélectionnez le triangle et cliquez sur SUPPR ou R. Vous pouvez également annuler un changement que vous avez fait avec CTRL+Z.
  • Effacer tous les sommets supprimera tous les triangles et côtés dont ils faisaient partie.
  • Souvenez-vous des raccourcis pour activer/désactiver la sélection des triangles, sommets et côtés. (Respectivement T, V, G).
  • Pour fusionner des sommets, sélectionnez-en deux ou plus et appuyez sur Q ou cliquez sur le bouton Jb NavmeshButtonMergeVertices.jpg. Les sommets fusionneront avec le premier sommet sélectionné.
  • Double-cliquez sur un côté (activez la sélection avec "G") pour sélectionner ses deux sommets rapidement.
  • Vous vous souvenez que deux sommets restent sélectionnés après avoir créé un triangle ? Vous pouvez utiliser la touche "Tab" pour sélectionner le duo de sommets de votre choix.
  • Utilisez "R" pour effacer les objets sélectionnés si vous ne souhaitez pas déplacer votre main à l'autre bout du clavier pour appuyer sur SUPPR.
  • Efforcez-vous de créer de gros triangles, aussi proches d'un triangle équilatéral que possible. Ils sont beaucoup plus efficaces. Les triangles étroits doivent être évités. Utilisez la rotation des côtés avec la touche "S" ou le bouton Jb NavmeshButtonSwapEdge.jpg pour obtenir de meilleurs résultats, tel qu'illustré sur les Fig. 4.15, avant et après.
  • Si vous avez un navmesh qui vous semble connecté, mais que vous voyez un côté jaune, cela signifie simplement qu'il y a deux sommets qui se chevauchent. Pour rectifier, cliquez et tiré un cadre sur les sommets pour les sélectionner, puis fusionnez-les avec ("Q"). Si le côté reste jaune, faites la même chose avec les sommets à l'autre bout. Si le côté jaune disparaît, votre navmesh est connecté.
  • Faites un clic droit sur un côté pour créer un sommet sur ce côté. Cela s'appelle diviser un côté.

Voici à quoi le navmesh devrait ressembler près des zones aménagées du donjon. Remarquez que sur la Fig. 4.16 le navmesh passe sous les objets doués de physique (moveable/dynamic). Vous n'aurez donc jamais besoin de contourner ces types d'objets, le navmesh s'en occupe tout seul en cours de jeu. Dans l'exemple ci-dessous, les objets doués de physique sont : la pelle, la brouette, et le pot en céramique. Notez que le navmesh passe sous ces objets. Les tonneaux en bois n'ont pas de données physiques et nous avons donc besoin que le navmesh les contourne.

La Fig. 4.17 montre approximativement à quoi votre navmesh devrait ressembler après rectification. Dans cet exemple nous avons laissé des morceaux de navmesh isolés. Ils peuvent être facilement supprimés.

  1. Sélectionnez n'importe quel triangle de votre navmesh principal et appuyez sur "I" ou cliquez sur le bouton Jb NavmeshButtonToggleInverseFloodFill.jpg.
  2. La sélection s'inverse et tous les navmesh qui ne faisaient pas partie de la sélection initiale sont désormais sélectionnés. À condition que votre espace de jeu consiste en un seul navmesh continu, toutes les zones maintenant sélectionnées ne servent à rien.
  3. Appuyez sur "R" ou "SUPPR" pour les effacer.
  4. Votre navmesh final devrait ressembler à celui de la Fig. 4.18.

Réparer les erreurs de navmesh[edit | edit source]

Vous devez toujours examiner le navmesh de votre cellule, à la recherche d'erreurs, après l'avoir créé. C'est une tâche relativement simple.

Achtung.png Si vous avez des erreurs, elles vous seront notifiées au moment de sauvegarder votre plugin. Quoi qu'il en soit, vous devriez toujours lancer la fonction "Check Navmesh" (vérifier le navmesh).
  1. Affichez la boîte de dialogue "Select Triangle by index" (sélectionner triangle via l'index) tel qu'illustré Fig. 4.18. Il y a trois moyens de le faire :
    1. Utilisez le bouton "Find Triangle" (trouver un triangle) dans la barre d'outils Navmesh Jb NavmeshButtonFindTriangle.jpg.
    2. Appuyer sur "CTRL+F".
    3. Via le menu principal : Navmesh > Select triangle by index.
  2. Une fois la boîte affichée, sélectionnez "Check Navmesh".
  3. Un message d'avertissement, illustré sur la Fig. 4.19, apparaît vous informant du nombre de triangles problématiques trouvés (s'il y en a), et vous demande si vous souhaitez tous les effacer.
  4. Pour corriger les triangles problématiques deux approches sont possibles :
    1. Choisir "Yes" effacera tous les triangles détectés, mais vous devrez trouver où étaient placés ces triangles et les reboucher (généralement en créant un nouveau triangle). Vous n'avez aucun autre moyen de trouver ces triangles qu'à l'oeil nu, ce qui peut être difficile avec un navmesh complexe, particulièrement si les triangles recherchés sont petits ou recouvert par d'autres.
    2. Nous vous conseillons de réparer chaque erreur à la main, auquel cas cliquez sur "No" pour fermer la fenêtre d'avertissement.
    3. Sélectionnez "Next Warning" (prochain avertissement) dans la boîte de dialogue "Select Triangle". La caméra de la Render Window se réorientera automatiquement sur le triangle problématique et le mettra en surbrillance pour vous. La plupart des erreurs sont facilement réparées en effaçant le triangle problématique et en le reconstruisant.
    4. Si vous avez plus d'un avertissement, sélectionnez "Check Navmesh" une fois de plus et répétez le processus jusqu'à ce que tous les triangles problématiques soient corrigés. (Vous devez revérifier entre chaque correction car l'index des triangles du navmesh s'en trouve affecté.)
  5. Quand vous avez terminé, sauvegardez de nouveau votre plugin.
Protip.jpg Si vous ne souhaitez pas réparer chaque erreur à la main, parcourez chaque mauvais triangle avec le bouton "Next Warning" et choisissez "Yes" pour effacer les triangles problématiques. Cela vous permettra de voir ou chercher sur le navmesh pour recréer les triangles après la suppression.

Créer les bords de la couverture[edit | edit source]

Les bords de la couverture stockent des données telles que : la hauteur d'un élément de la couverture, quel PNJ l'utilise au combat ou pour circuler.

  1. Pour détecter la couverture automatiquement, allez dans Navmesh > Find Cover Edges depuis le menu principal, ou utilisez le bouton Jb NavmeshButtonFindCover.jpg de la barre d'outils Navmesh.
  2. Trouver la couverture peut prendre un peu de temps selon votre matériel et la complexité du navmesh.
  3. Une fois le processus terminé, vous verrez apparaître différents bords colorés dans votre navmesh. Chaque couleur représente différentes hauteurs de couverture. Le navmesh devrait maintenant ressembler à celui de la Fig. 4.20 ci-dessous.
  4. Pour avoir un meilleur aperçu du type de couverture de votre donjon, allez simplement à Navmesh > Draw Cover (voir Fig. 4.21).

Avec un navmesh complet, les acteurs seront capables de parcourir l'espace. Construire un navmesh de qualité peut prendre du temps et parfois être ennuyeux, mais les résultats d'un mauvais navmesh sont évidents en jeu.

InDepth.jpg Les données de couverture ne sont pas seulement utilisées pour le combat à distance, elles définissent également où tentera d'aller l'intelligence artificielle lorsqu'elle fuira un ennemi, par exemple. C'est donc une bonne idée de générer ces données, même lorsqu'elles ne semblent pas importantes.

Le navmesh peut contenir plus d'informations que les seules données de couverture, il est possible également de marquer un triangle comme étant de l'eau, comme passage prioritaire, et les côtés comme des rebords permettant aux acteurs de descendre d'une plateforme. Plus d'informations peuvent être trouvées ici.
Il est aussi possible régler en détail les données de couverture, bien que ce niveau de précision ne soit pas souvent nécessaire. Pour ajuster manuellement les données de couverture, sélectionnez un bord et appuyez sur "E" pour afficher la boîte de dialogue "Edge Cover".

Voici quelques pages auxquelles vous pourriez souhaiter vous référer pendant et après ce tutoriel, ou durant vos prochaines lectures.

Un navmesh solide fournit les fondations nécessaires pour de bons PNJ et de bons combats. Et c'est justement le sujet de notre prochain tutoriel.

Problème connu[edit | edit source]

Il y avait un problème empêchant les navmesh des fichiers .ESP de fonctionner si vous vous en éloigniez de quelques cellules. Les PNJ arrêtaient de bouger et ne se réinitialisaient pas avant que le jeu ne soit relancé. Ce problème a été résolu avec la mise à jour 1.6.


LeftArrow.png Tutoriel précédent Sommaire du tutoriel Tutoriel suivant RightArrow.png



Langues : English  • français • 日本語 • polski