Creation Kit : Techniques annexes : Portes, Navmeshes, et palettes
Retour vers Tutoriels |
Création d'une porte reliant deux lieux
Depuis longtemps dans les éditeurs de Bethesda, le monde étant morcelé entre un grand extérieur et une multitude d'intérieurs, une porte entre deux lieux nécessite deux portes : une porte dans le lieu A et une porte dans le lieu B. Ceci est valable entre un extérieur et un intérieur, entre deux intérieurs, ou entre deux extérieurs.
Seules les portes dans un même intérieur ne provoquant pas de déplacement sont uniques et pivotent vraiment, comme de vraies portes.
Donc pour une ferme dans le monde de Skyrim, nous avons un bâtiment ferme avec une porte extérieure, qui téléporte le joueur vers la porte intérieure dans l'intérieur correspondant à la ferme. Devant chaque porte, un marqueur jaune avec une pointe représentant la direction matérialise le point de téléportation de l'acteur (joueur ou NPC).
Pour faire une porte reliant l'intérieur à l'extérieur :
- Chargez la cellule d'intérieur, en sélectionnant Interiors dans le menu Worldspace de la fenêtre Cell View, puis en double-cliquant sur l'ID de votre intérieur.
- Dans la fenêtre Objet, cherchez une porte dans l'arborescence WorldObjects/Door/Farmhouse, et faites glisser une porte FarmhouseDoor01 dans votre ferme. Ajustez la position de la porte pour qu'elle se joigne à son encadrement ; la surface de la porte doit dépasser légèrement du mur, pour être activable en jeu.
- Double-cliquez sur la porte pour ouvrir la fenêtre de référence de celle-ci (pour rappel une référence est un exemplaire de l'objet de base), laissez la fenêtre ouverte.
- Chargez la cellule d'extérieur, en sélectionnant le Worldspace de l'extérieur dans la fenêtre Cell View, puis double-cliquez sur la cellule où est votre bâtiment dans la liste des cellules.
- Zoomez avec votre caméra sur le bâtiment, et faites glisser une porte devant votre ferme. Ajustez sa position.
- Dans la fenêtre Reference de la porte intérieure, cliquez sur l'onglet Teleport, puis sur la case Teleport.
- Cliquez sur le grand bouton Select reference in Render Window, et bougez le curseur en forme de cible dans la fenêtre de rendu. Dès qu'elle passera au-dessus d'une porte sélectionnable, elle passera en blanc. Double-cliquez pour selectionner la porte avec la cible.
- Dans la fenêtre Reference de la porte intérieure, cliquez sur OK pour la fermer, et valider : un marqueur DoorMarker apparaît au milieu de la porte.
- Cliquez sur le marqueur jaune et écartez le un peu de la porte (sinon les acteurs apparaîtront "dans" la porte).
- Double-cliquez sur le Doormarker, une fenêtre vous demande si vous voulez voir la porte liée dans la cellule intérieure, répondez oui.
- Vous voilà devant le doormarker, placé au beau milieu de la porte intérieure. Déplacez-le lui aussi devant la porte.
- Sauvegardez votre mod.
Tester votre porte
Lancez Skyrim avec votre mod activé. Comme avec vos premiers tests, activez la console en appuyant sur ², et tapez la commande :
coc MONFerme01 (ou le nom de la cellule que vous avez créée).
Ouvrez la porte : vous devriez déboucher sur votre île.
Notre intérieur a l'air terminé en apparence, il lui manque pourtant quelque chose. En effet, si nous mettons un acteur (NPC, monstre, etc.) dans la pièce, il restera immobile, aura un comportement incohérent, voire il n'apparaîtra pas du tout (où à un endroit incongru). Cela est dû au fait qu'il faut indiquer une surface sur laquelle les acteurs peuvent circuler dans notre intérieur : c'est le Navmesh. Celui-ci se compose de triangles invisibles recouvrant toute la surface exploitable par les acteurs : plancher, rochers plats, terrasses, escaliers...
Grace au navmesh, le jeu peut calculer le pathfinding des acteurs de manière relativement efficace.
Créer son premier triangle Navmesh
- Ouvrez la cellule de votre intérieur, et positionnez la caméra de façon à avoir une vue dégagée d'une partie du sol de la pièce.
- Cliquez sur le bouton Navmesh dans la barre d'outils du Creation Kit (Des points rouges reliés par un fil), après le bouton avec la bulle.
- La barre Navmesh apparaît : si un navmesh est présent, le découpage en triangles rouges apparaît. Appuyez sur W pour changer de mode de transparence, si besoin.
- Les trois premiers boutons décrivent le mode employé : mode Triangle (sélectionne des triangles), le mode Vertice (sélectionne des points), le mode Edge (sélectionne les lignes). Cochez le mode Vertice (points) et décochez les deux autres.
- Sur le sol de votre pièce, faites un clic droit : un point vert apparaît. Faites un autre point, puis un troisième. Vous devriez avoir deux points jaunes, et le dernier point qui est vert.
- Pour faire votre triangle navmesh, vous devez activer en vert les trois points en même temps (pas plus), en faisant un clic gauche sur chaque point et en gardant CTRL appuyé.
- Une fois vos trois points en verts, appuyez sur A. Votre triangle Navmesh apparaît.
Enchaîner les triangles navmesh
Faire les triangles un par un est fastidieux, heureusement il est possible de les enchaîner :
- Gardez Ctrl enfoncé, et faites 3 points avec le clic droit, un triangle apparaît automatiquement au 3ème point vert.
- Vous remarquerez que les deux derniers points sont validés en vert. Gardez CTRL appuyé, et faites un clic droit pour faire apparaître un troisième point : un triangle est enchaîné avec le premier.
- Répètez l'opération jusqu'à recouvrir le plus de surface possible.
- Si vos deux points sont au mauvais endroit, invalidez-en un avec CTRL appuyé et validez un autre mieux placé puis continuez à rajouter vos triangles par Clic droit et CTRL appuyé.
Remarques
- Les triangles ne doivent pas être trop fins, cela peut donner un comportement incohérent aux acteurs. Bougez les points de façon à avoir des triangles aussi proches de l'isocèle que possible.
- Vous pouvez sélectionner plusieurs points ou tout un navmesh en faisant une boîte avec un clic droit, englobant vos points. par exemple pour effacer une partie de votre navmesh.
- Pour rajouter un point au milieu d'une ligne, passez en mode Edge (troisième bouton de la barre navmesh), les lignes passeront en surbrillance en passant dessus. Faites alors un clic droit, et un point apparaîtra au milieu de la ligne, séparant du même coup en triangles ceux déjà concernés par la ligne.
- pour recouvrir un escalier, faites des triangles suivant juste quelques arêtes, comme si une planche était posée sur l'escalier (voir image).
- En intérieur, la génération automatique de Navmesh est déconseillée : elle est souvent mal faite, avec des coupures et des surfaces inutiles, des triangles trop fins et nombreux. Faites les intérieurs à la main !
Vérifiez et finalisez votre Navmesh
Une fois le Navmesh terminé, il peut contenir des erreurs. Il faut le contrôler :
- Appuyez sur le bouton Find Triangle (Le triangle rouge avec un point d'interrogation dans la barre navmesh), la fenêtre Select Triangle apparaît.
- Appuyez sur le bouton Check Navmesh : s'il est correct, il affiche No Warning Found.
- Si une erreur est détectée sur un triangle, il vous l'indique : supprimez-le, et refaites le navmesh au niveau du trou formé. Revérifiez le navmesh.
- Pour finaliser, appuyez sur le bouton Find Cover Edges (après le B dans la barre navmesh). Attendez qu'il ait fini, et appuyez sur le bouton Finalize navmesh (le V rouge à coté).
- Si une porte est présente et n'est pas reliée à une autre, un message d'erreur bénin apparaîtra. Validez tout de même. Vous refinaliserez le navmesh ultérieurement, une fois les portes reliées : les navmeshs indiquent par un triangle vert proche de la porte qu'ils sont reliés à un autre de l'autre côté de la porte.
Une fois votre extérieur (ou la portion, on est pas obligé de tout faire d'un coup heureusement) terminé, il reste une opération à réaliser pour indiquer aux acteurs les surfaces sur lesquelles ils peuvent circuler : le navmesh. Chaque cellule extérieure est recouverte de triangles, recouvrant les surfaces plus ou moins plates. Donc les gros rochers, escarpements, arbres, contours des bâtiments, sur lesquels on ne peut pas marcher, forment des trous dans le maillage.
Avant de vous attaquer aux Navmeshes extérieurs, je vous conseille de vous faire la main sur des navmeshes intérieurs, si ce n'est pas déjà fait.
Contrairement aux intérieurs, les extérieurs se prêtent mieux à la génération automatique de Navmesh. En effet, faire la jonction des cellules de Navmesh entre elles, par exemple entre la cellule 0,0 et la cellule 0,1, puis entre la cellule 0,0 et 0,-1, etc. est fastidieux. Il est plus facile de générer le navmesh pour chaque cellule, de supprimer les parties mal faites, puis d'affiner les jonctions entre cellules et les trous dans le filet.
Génération automatique simple :
- Chargez votre worldspace, et la cellule où vous avez fait du terrain (par exemple 0,0).
- Ouvrez la barre navmesh (le bouton avec les points reliés dans la barre d'outils du CK).
- Appuyez sur le bouton Open Navmesh Generation Dialog (le point d'interrogation, dans un rond gris), dans la barre navmesh. Attendez quelques secondes que le navmesh apparaisse sur la cellule 0,0.
- Cliquez sur la fenêtre de rendu, et déplacez avec les flèches la vue sur la cellule d'à côté, par exemple -1,0, et rappuyez sur le bouton Open generation dialog.
- Répétez l'opération jusqu'à couvrir une partie de votre terrain, par exemple un carré de 3 cellules sur 3.
Finalisez et liez les cellules de navmesh entre elles :
- Repassez sur chaque cellule et cliquez sur le bouton Find Cover Edges pour mettre en évidence bords et couverts matérialisés par des lignes bleues.
- Finalisez chaque cellule avec le bouton Finalize : les jonctions entre cellules permettant le passage des acteurs apparaissent entre lignes vertes, une de chaque côté de la cellule.
- Recommencez ces deux opérations pour chaque cellule.
- Aux jonctions de cellules, s'il n'y a pas de double ligne verte là où le passage est sensé être possible, regardez la jonction de plus près : il y a surement un trou où les lignes ne se rejoignent pas. Pour que les deux bords de cellules se joignent, il faut que les triangles de chaque coté aillent bien jusqu'au bord de la cellule.
Le plus sûr pour les corriger est d'effacer les triangles qui ne joignent pas, de les refaire, et de tirer les triangles du bord vers le bord de la cellule (il ne s'agrandira plus et "butera" sur le bord). Faites de même de l'autre côté (la cellule adjacente). Au besoin, activez la grille pour que les points soient bien en face et qu'il n'y ait pas de décalage de niveau de part et d'autre des cellules.
- Refinalisez chaque cellule qui ne marchait pas, vous devriez voir apparaître les doubles lignes vertes aux limites de cellules.
Vérification des Navmeshes :
- Vérifiez le navmesh de chaque cellule avec le bouton Find Triangle dans la barre navmesh, et cliquez sur Check Navmesh. S'il trouve des erreurs, répondez oui à chaque message, puis lorsqu'il demande à la fin s'il faut supprimer les triangles incriminés, répondez : oui.
- Revérifiez chaque navmesh jusqu'à ce qu'il n'y ait plus de messages d'erreur
- Si certaines parties sont excessivement compliquées (formes biscornues, triangles trop nombreux où fins), supprimez les en passant en mode triangle : cliquez sur les triangles incriminés, ou faites une boîte pour les englober avec la souris si la surface est plus grande. Appuyez sur la touche Suppr.
Attention :
La génération de navmeshes extérieurs donne pas mal de messages d'erreur. Faites un petit nombre de cellules à la fois. Une fois que vous avez corrigé toutes les erreurs et que vos cellules sont finalisées et propres, sauvegardez. Vous pourrez alors continuer vos Navmeshes sur un autre groupe de cellules adjacent.
Les navmeshes servant aux acteurs du jeu, pour le vérifier ingame, nous pouvons voir s'ils fonctionnent en rajoutant un acteur dans la ferme, et un ennemi à l'extérieur sur l'île.
Pour ce faire, allez dans la partie du tuto Créer un acteur, et créez un fermier (par exemple pour le tuto MONOmarOdin). Glissez-le dans la ferme (ici MONFerme01). Créez aussi un Sale Voleur d'après le tuto Créer un ennemi, et placez-le sur l'île, assez loin de l'entrée, pour qu'il ne vous saute pas dessus tout de suite.
Sauvegardez le mod.
Allez tester les comportements du fermier et du voleur :
- Ouvrez le lanceur de Skyrim
- Cochez votre mod dans Fichier Données
- Lancez le jeu et chargez une de vos sauvegardes
- Ouvrez la console en tapant la touche ², puis tapez la commande coc MONFerme01 (ou le nom de votre cellule).
Si les navmeshes sont bien faits, le fermier doit être dans la ferme, vaquant à ses occupations de base suivant les objets disponibles dans la ferme (debout, assis, dormant, etc.). Il est pacifique et répond juste sans ouvrir de dialogue.
Si vous sortez dehors, et que vous approchez du voleur, vous passerez par les différents stades de détection, écoutez ses dialogues (pas vu, détecté, menacé, attaque). Faites-le courir sur l'île : il ne doit pas être bloqué sur le chemin ou du plat, et courir librement. S'il bute à un endroit incongru, c'est que le navmesh a un trou ou une abscence de jonction à cet endroit.
Toujours sans tuer le voleur, rentrez dans la ferme : le voleur doit vous suivre dans la ferme (les jonctions navmesh entre les portes fonctionnent). Il est même possible que le fermier attaque le voleur : réaction normale.
Les navmeshes intérieurs et extérieurs fonctionnent, tout va bien !
Tout cela vous montre aussi qu'avec des personnages génériques avec un comportement prédéfini, et des navmeshes faits correctement, les acteurs et ennemis interagissent de manière réaliste. Et le Creation Kit propose bien plus que cela pour donner du sel et de la crédibilité au monde que vous créerez.
Creation Kit : Tutoriels | ||
Précédé par | Techniques annexes : Portes, Navmeshes, et palettes | Suivi par |
Créer des intérieurs | Tutoriels |