Différences entre les versions de « Creation Kit : Techniques annexes : Portes, Navmeshes, et palettes »

De Wiwiki
Aller à la navigation Aller à la recherche
Ligne 150 : Ligne 150 :


- 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 re-finaliserez 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 coté de la porte.
- 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 re-finaliserez 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 coté de la porte.
==Pathfinding pour les acteurs : Faire un Navmesh Extérieur==
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'à coté, 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ées 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 coté 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 jointent pas. Pour que les deux bords de cellules jointent, 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 jointent pas, de les refaire, et de tirer les triangles du bord vers le bord de la cellule (il ne s'grandira plus et "butera" sur le bord). Faites de même de l'autre coté (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 apparaitre 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 boite 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. Sauvegardez dès que vous avez vérifié des cellules propres et finalisées.

Version du 17 février 2012 à 20:46

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érieur, 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 :

Ajoutez une porte et ouvrez sa fenêtre Reference.
Ajoutez une porte à l'extérieur, et désignez la comme cible de téléportation.
Deux marqueurs de téléportation sont créés, un à l'intérieur, un à 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 jointe avec 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 (une référence est un exemplaire de l'objet de base, pour rappel), 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 selectionnable, 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 apparait 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.






Créer un navmesh en intérieur

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'apparaitra pas du tout (où à un endroit incongru). Cela est du 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, etc...

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.


La barre Navmesh et ses principaux boutons

- 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 apparait : si un navmesh est présent, le découpage en triangles rouges apparait. Appuyez sur W pour changer de mode de transparence, si besoin.

- Les trois premiers boutons décrivent le mode employé : mode Triangle (selectionne des triangles), le mode Vertice (selectionne des points), le mode Edge (selectionne 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 apparait. 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é.


3 points verts forment un triangle rouge, deux points valides restent après la création

- Une fois vos trois points en vert, appuyez sur A. Votre triangle Navmesh apparait.








Enchaîner les triangles navmesh

Faire les triangles un par un est fastidieux, heureusement il est possible de les enchaîner :


Enchaînez les triangles jusqu'à recouvrir tout le sol

- Gardez Ctrl Enfoncé, et faites 3 points avec le clic droit, un triangle apparait 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 3ème point : un triangle est enchaîné avec le 1er.

- 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é, et continuez à rajouter vos triangles par Clic-droit et CTRL appuyé.




Remarques


Faites une planche Navmesh sur l'escalier

- 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 selectionner plusieurs points ou tout un navmesh en faisant une boite 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 Egge (troisième bouton de la barre navmesh), les lignes passeront en surbrillance en passant au dessus. Faites alors un clic-droit, et un point apparaitra 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 :


Un Navmesh terminé, Appuyez sur W pour changer le mode de vue

- Appuyez sur le bouton Find Triangle (Le traingle rouge avec un point d'interrogation dans la barre navmesh), la fenêtre Select Triangle apparait.

- 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 re-finaliserez 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 coté de la porte.


Pathfinding pour les acteurs : Faire un Navmesh Extérieur

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'à coté, 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ées 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 coté 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 jointent pas. Pour que les deux bords de cellules jointent, 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 jointent pas, de les refaire, et de tirer les triangles du bord vers le bord de la cellule (il ne s'grandira plus et "butera" sur le bord). Faites de même de l'autre coté (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 apparaitre 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 boite 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. Sauvegardez dès que vous avez vérifié des cellules propres et finalisées.