TESCS2 : Nettoyer son module

De Wiwiki
Aller à : navigation, rechercher

Pourquoi nettoyer?

Le nettoyage d'un module n'est pas quelque chose d'anecdotique, ou dont on pourrait se passer. Le tescs 2, comme son aîné avant lui, a tendance à enregistrer dans votre module plus que ce que vous souhaiteriez.

Un simple exemple : vous recherchez un static bien particulier, disons un papillon volant de ci de là, que vous avez vu à l'extérieur de Lipsand Tarn. Dans ce cas, je vais fouiller les environs à la recherche de mon papillon, et il se peut que je modifie un tout petit peu la zone, sans le vouloir. Oh! Presque rien, un déplacement de quelques unités seulement, rien de visible sur un si grand arbre. Il suffit de cliquer là où il ne le faut pas, de maintenir trop longtemps le clique alors qu'on souhaite accéder aux infos relatives à un static, que sais-je. En tout cas le résultat est le même, le tescs 2 sauvegarde la cellule dans votre module.

Ce qui entraine une incompatibilité possible entre votre module et un autre, si ce dernier modifie lui aussi la cellule LipsandTarnExterior en lui ajoutant ,par exemple, un NPC. Selon l'ordre de chargement, ce NPC peut, parfois, ne pas être là. Provoquant un bug souvent bien dur à retracer. Sans compter que bien souvent les testeurs wiwilandais sont des maniaques de la propreté, des véritables obnubilés de la GMTS et qu'ils vous demanderont bien souvent de revoir votre copie... Il faut donc nettoyer. Ce qui n'est absolument pas compliqué en utilisant les bons outils.

J'ai pris l'habitude d'utiliser et de conseiller tes4Gecko, pour des raisons d'ergonomie, mais le tescs permet lui aussi de passer un coup de balais dans votre module. Pour ce tutoriel, nous allons prendre l'exemple d'un tout petit module que je viens de bricoler : il ajoute un jardin aux environs de Bruma. Un petit ilot de verdure et de calme dans les montagnes de Jerall pouvant abriter pour un temps un aventurier fatigué. Celui-ci y trouvera un banc, à l'abri du vent, où il pourra lire tout en dégustant une pomme et en admirant le vol des quelques insectes habitant ce lieu. Module d'une utilité flagrante.


Nettoyage avec tes4Gecko :

Après avoir ouvert l'application, vous devriez tomber sur une interface ressemblant plus ou moins à celle ci :
Page principale de Tes4Gecko


Ce qui fait un certain nombre de fonctionnalités, je vous invite à aller consulter le wiki, ou à lire le read-me afin de mieux les connaitre. Nous allons nous focaliser sur trois d'entre elles :

  • set Directory  : va nous permettre de configurer le chemin vers le répertoire Data d'Oblivion. Lors de votre première utilisation, cliquez donc sur ce bouton, puis cherchez le dossier data et enfin cliquez sur select. Vous n'aurez normalement plus à le faire.
  • clean plugin : effectue un nettoyage du module. Parfois trop puissant, parfois totalement inefficace (sur mon exemple l'auto nettoyage n'a rien touché... :( ). Je vous recommande donc chaudement la méthode manuelle.
  • display/copy : c'est cette fonction que nous allons détourner pour nettoyer notre plugin.


Après avoir cliqué sur le bouton, sélectionner le module que vous souhaitez nettoyer. Une fenêtre contenant trois parties s'affiche, j'ai donc en ouvrant mon module  :

contenu du module

  • Sur la gauche  : des infos techniques, une légende de couleur (chaque ligne correspondant à un module dont dépend le module ouvert) une boite de recherche
  • Au milieu : le contenu de votre module, rangé dans une arborescence.
  • A droite  : un module vierge, dans lequel vous pouvez copier une partie de votre module. On ne va pas tenir compte de cette partie pour le moment.


Comme vous pouvez le voir, mon module modifie :

  • La cellule intérieure AbandonnedMine (l'entrée est en jaune, cette cellule appartient donc à Oblivion.esm). C'est une erreur courante  : AbandonnedMine étant la première cellule affichée, il est très fréquent de la modifier par erreur. Comme rien dans la description du module ne laisse penser qu'une modification de cette cellule puisse être nécessaire, le testeur va donc demander la raison de cette scorie au modeur.
  • De même mon module contient un NPC. Il s'agit surement d'une autre scorie...
  • Enfin, le module modifie des cellules extérieures : (6,33) et ses voisines contiennent le jardin en lui même (là un passage dans le tescs est obligatoire pour vérifier, on en profite pour remarquer : que la modif d'AbandonedMine concerne un générateur de son, et que le NPC ne semble pas utilisé par le module. Ce sont donc des scories.)
  • Dans LipsandTarnExterior, il semblerait qu'un arbre ait été déplacé. Une scorie donc. Qu'il faut nettoyer.


-Pour nettoyer  :
Sélectionnez les entrées de ce que vous voulez supprimer (les ctrl+click, maj+click fonctionne et ont le même comportement que sur windows).Puis appuyer sur le bouton toogle ignore en bas. Puis sur Save plugin. Et l'arborescence devrait s'être mise à jour, dévoilant un module propre et prêt à envoyer.


Nettoyage avec le tescs 2:

détails affichés dans le TESCS 2


Vous pouvez accéder à une liste du contenu d'un module dans la fenêtre de chargement, en appuyant sur le bouton Detail. Ce qui vous donne une liste comme ceci, l'exemple étant toujours le module avec le jardinet:
Comme vous pouvez le voir la présentation n'est pas tout à fait aussi intuitive que pour tesc4Gecko, cette solution convient donc pour un tout petit module comme celui-là, mais pour un projet plus complexe le nettoyage à la main à l'aide du tescs peut très vite devenir un cauchemar. Mais après avoir repéré une scorie, vous pouvez la supprimer, après l'avoir sélectionnée, en appuyant sur suppr. Une alerte peut alors s'afficher, répondez oui. Ensuite il vous suffira de charger le module comme vous en avez l'habitude, puis de le sauvegarder.



Annexe : les scripts:


Sur oblivion, il est reconnu que deux fonctions peuvent avoir un comportement dangereux : les fonctions modAV et PlaceAtMe. Si vous souhaitez les utiliser nous vous recommandons vivement de vous documenter à leur sujet, voire de demander de l'aide dans le forum "les scripts me crispent" d'oblivion, et mieux encore d'utiliser des fonctions équivalentes telles setAV et MoveTo.