TESCS : Créer sa première quête

De Wiwiki
Aller à : navigation, rechercher


A propos de ce tutoriel

Très largement inspirée de Dialogue/Journal-Based Quest Creation, Tutorial original de Dale French, disponible ici : [1]

Complété par OraNN pour le wiwiki (ajout de la fin du tutoriel à partir de "la poursuite des dialogues").

Certaines images de ce tutoriel sont issus d'une version anglaise mais ça ne change rien au principe.

Ce tutoriel ne tient pas compte (pour l'instant) des fonctionnalités du journal introduites par Tribunal et Bloodmoon.

Concevoir le scénario de base

Une idée sur un papier…

La première chose à faire est de prendre des notes sur papier, ou n’importe quel autre support. N’ouvrez jamais le TESCS sans avoir avant tout une idée relativement précise de ce que vous voulez faire. Cela vous sera d’une grande aide et c’est surtout un début de garantie sur la qualité du résultat final. Le plus important est la chronologie des évènements. Avoir quelque part une liste chronologique de l’enchainement des évènements est quelque chose de primordial. Prenons l’exemple de la première quête que vous confie le capitaine qui vous accueille : aller porter des papier à Caius Cossades.

  • récupérer les papiers
  • aller à Balmora
  • se renseigner sur Caius
  • lui donner les papiers.

C’est relativement simple, mais sans cette trame temporelle, on aurait pu faire n’importe quoi…


Exemple de création de quête simple

Je vous propose d’articuler cette explication autour d’une quête simple. Cela vous évitera d’avoir à lutter pour trouver une idée, et cela me permettra d’être un peu plus clair. Appelons cette quête ‘Où sont mes chaussures?’ Dans cette quête, vous irez voir Rah’Virr à Balmora. Il vous demandera de l’aider à retrouver ses chaussures. Vous les trouverez et les lui rapporterez.

Nous verrons ici, comment construire un dialogue autour de cette quête, et comment ajouter des entrées dans le journal.

Voici la chronologie que adopterons:

  • Rencontrer Ra’Virr
  • Ecouter son histoire à propos de ses chaussures
  • Lui trouver ses pompes
  • Et lui rapporter.

Lister les personnages impliqués

Bon là, je vous l’accorde c’est simple, il n’y a qu’une seule personne impliquée. La liste sera vite faite. Mais lorsque vous vous lancerez dans la création d’un vrai plug, vous serez content d’avoir sous la main la liste des personnes impliquées. (Quand je dit personne, je pense PNJ).

Cette liste contiendra évidemment les pnj existants mais aussi et surtout ceux qu’il vous faudra créer. Un dernier conseil, pour vous simplifier la tâche, noter surtout les ID des pnj (c’est de cette façon qu’ils sont connus dans l’éditeur). Dans notre cas, la liste des pnj se limite à :

  • Ra’Virr

Une clé pour les entrées dans le journal: une ID

Puisque nous allons apprendre à utiliser le journal et les entrées dans le journal, il nous faut une ID (unique) pour créer une section dans le journal. Dans un futur pas si lointain, vous aurez peut-être besoin de plus d’une section, mais, ici, une seule est suffisante. Je vous recommande pour les ID du journal, comme pour toutes les autres ID de choisir un nom simple et reconnaissable.

Vous pouvez choisir n’importe quoi, le joueur ne la verra jamais, mais …. Vous ne ne la retrouverez peut être plus. Ecrivez là, et faites attention à son orthographe. Ici, nous choisissons :

  • CHAUSS_RV_

Et maintenant, le reste !

Pour le choix des ID, voir également l'article Les préfixes

L’entrée en matière de Ra’Virr

Création de l'esp

Comme c'est le premier mod, lancer le TESCS puis cochez Morrowind.esm seulement. Pas la peine de cocher les extensions pour l'instant si vous les avez.

Dès la fin du chargement, enregistrez votre esp et pensez à le faire régulièrement.

IMPORTANT ! La prochaine fois que vous lancerez le TESCS pour charger votre esp, pensez bien à cocher votre esp et à cliquer sur set as active file. Le nom à droite de votre esp passe en active file et les modifications que vous ferez seront bien enregistrées dans cet esp !

Tuto 1er quete 01.PNG

Le premier greeting

Pour ce type de quête, les seules actions que nous allons menées dans le TESCS concernent les dialogues et le journal. Nous allons donc utiliser la fenêtre des dialogues. Pour la faire apparaître cliquez sur la bulle de la barre d’outils. Il faudra donc un certain temps pour le contenu de la fenêtre de dialogue s’affiche.

Tuto 1er quete 02.PNG

Si c’est la première fois que vous ouvrez cette fenêtre, je pense que vous serez (à juste titre) impressionné.

En ce qui concerne notre affaire, toute conversation commence par des salutations (Greetings). Nous allons donc nous intéresser à l’onglet Greetings. Cliquez sur l’onglet « Greeting » en haut à gauche de la fenêtre de dialogue.

Tuto 1er quete 03.PNG

Dans la zone Info/Response, vous voyez maintenant toutes les salutations que l’on trouve dans MW. Vous remarquerez que les salutations sont reparties en 10 catégories, numérotées de 0 à 9. Il s’agit d’une convention choisie par Bethesda pour permettre de mieux appréhender l’énorme quantité de saluts autorisés. Essayez un moment d’imaginer de ce que cela aurait pu être si il n’y avait pas eu de catégories… La salutation d’un personnage est la première chose qui apparaît lorsque vous l’activez (barre espace ou E suivant les cas…). Voyons maintenant à quoi correspondent les différentes catégories de salut telles que Bethesda les voulues.

Greeting 0 Si le PJ est un criminel
Greeting 1 Apparemment des saluts vraiment spécifiques, quand le PJ a accepté une quête donnée par le PNJ…
Greeting 2 Le PJ est un vampire
Greeting 3 Si le PNJ est membre de la guilde Morag Tong (une seule salutation)
Greeting 4 Si le PJ est malade
Greeting 5 Relié aux propositions de quêtes
Greeting 6 Il y en a beaucoup, tout ce qu’il y a là dedans est relié aux quêtes
Greeting 7 Relié au faction apparemment
Greeting 8 Basés sur la réputation du personnage et sur son apparence extérieure (ses habits)
Greeting 9 Le genre de choses que les personnes pourraient vous dire dans les ‘dernières rumeurs’, et il y en a BEAUCOUP !


En regardant un peu ce tableau, on se rend compte que le meilleur endroit pour placer ce qui concerne les quêtes est les Greetings 6… il y a peut être une raison à cela ;) Il est particulièrement déconseillé de placer des salutations dans les salutations 8 et 9, à cause la première salutation de la série 7 (toujours valable à partir d’un certain niveau de la quête principale, ou alors avant les salutations relatives au Nerevarine), vous risqueriez de frustrer un certain nombre des personnes qui ont finit la quête principale. On veut ajouter une salutation pour Ra’Virr, il faut donc que seul Ra’Virr puisse prononcer cette salutation (dans la série 6). Dans la grande section Info/Response, ajouter une nouvelle saluation. Faites un clic-droit tout en haut de la liste des salutations ( pour la rendre prioritaire) et sélectionner New…

Tuto 1er quete 04.PNG

Vous pouvez ensuite ajouter le contenu de la salutation de Ra’Virr… :

« Bonjour Etranger, avez-vous vu mes chaussures ? »

Puis, il faut spécifier que seul Ra’Virr doit pouvoir vous accueillir de cette façon. Sélectionner l’ID de Ra’Virr dans le filtre ID des conditions de l’orateur.

Tuto 1er quete 05.PNG

A ce niveau de travail, si vous sauvegardez les modifications que vous avez faites, et si vous allez voir Ra’Virr, en n’étant ni malade, ni un vampire, ni invisible; au lieu de vous parler des ses armes daédric, il vous dira ce que vous venez de taper.


Créer un Topic – un sujet de discussion.

Les Topics sont les mots ou les expressions qui apparaissent dans la zone droite de la fenêtre de dialogue du jeu. Ce sont les mots qui apparaissent en bleu dans le discours des personnages. C’est grâce au Topic que vous pouvez parler avec un PNJ d’un sujet spécifique ou d’un autre. La gestion des Topic de discussion est très sensible, en effet les Topic sont identifiés par le moteur du jeu au travers de leur contenu, des mots choisis pour être le Topic, et pas par une ID séparée qui ne serait pas vue par le joueur…

Il faut donc faire très attention aux mots que l’on choisit pour un Topic. Il faut éviter les expressions ou les mots que de nombreux PNJ de MW pourraient être amenés à prononcer.

Si vous choisissez d’ajouter des Topic dans notre langue maternelle (le français), éviter par exemple de donner comme simple mot clés «Le»… tout le monde est susceptible de prononcer ce mot dans ses dialogues. Et il apparaitrait alors toujours en bleu…

Les Topic sont connus de tous le monde dans le l’univers de Morrowind, pour chaque PNJ, le moteur du jeu parcours la liste complète des Topic et construit la liste par addition des Topic rencontrés. Pour éviter les conflits avec d’autres Topic, il faut faire attention l’énoncé de celui que vous créez, qu’il ne soit pas identique à un existant.

Pour le cas, qui nous occupent nous allons choisir de prendre « mes chaussures » comme Topic.

Ajouter un Topic

Pour ajouter un Topic, il faut que les informations de la fenêtre de dialogue ne soient pas filtrées. Pour faire cela, il suffit de ne sélectionner aucun PNJ dans le menu déroulant en bas à gauche de la fenêtre de Dialogue.

Tuto 1er quete 06.PNG

Ensuite, vous sélectionner l’onglet Topic (en haut à gauche), et dans la liste qui apparaît, vous faites un clic droit et sélectionnez «New» dans le menu contextuel. Vous pouvez maintenant tapez le sujet de votre Topic.

Tuto 1er quete 07.PNG

Voilà , vous disposez maintenant d’un nouveau Topic. Vous le sélectionnez et par un clic droit dans la zone Info/Response, en sélectionnant ‘New’ vous pouvez ajouter des paroles prononcées par le PNJ.

Tuto 1er quete 08.PNG

Puis, vous entrez le texte dans la zone blanche en dessous du tableau des Info/Response :

Tuto 1er quete 09.PNG

Filtrer les PNJ qui peuvent dire une phrase

Bien. Maintenant que nous avons créer un nouveau Topic, et ajouter des choses dans ce Topic, il faudrait s’assurer que seul Ra’Virr prononce cette phrase.

Imaginer la déconvenue du joueur si tous les PNJ le saluait en lui parlant de ses chaussures… ce ne serait pas sérieux et produirait ce que nous pouvons appeler un mod « sale ».

Heureusement pour nous, il est possible de faire en sorte que seul Ra’Virr prononce cette phrase. En dessous de tout ce que nous venons de voir, il y a une zone qui s’appelle « Speaker Condition ». C’est dans cette zone que vous allez placer des filtres successifs qui vont permettre d’éviter que tous les pnj du jeu puisse accéder à cette phrase.

Il faut faire attention quand même lorsque l’on choisit les conditions. Il ne faut pas hésiter à être très restrictif, en particulier lorsque l’on ajoute une nouvelle phrase (rappelez vous, toujours le plus haut possible dans la liste), en effet, le moteur du jeu considérera qu’un PNJ peut prononcer la phrase si l’ensemble des conditions est vérifiée… (si vous estimez que la seule condition à respecter est d’être dans l’échoppe de Ra’Virr, et qu’un autre moddeurs décide de placer un pnj dans cette même échoppe, le pnj pourrait prononcer la phrase…)

Dans notre cas nous appliquons le même filtre que celui que nous avons pris pour les salutations. Sur l’ID du pnj, nous choisissons Ra’Virr.

Dans ce cas spécifique, où nous avons créer le Topic depuis 0, cela n’a pas beaucoup d’importance. Mais il vaut mieux prendre de bonnes habitudes dès le début.

Poser une question au joueur, lui offrir un choix

Vous l’avez vu, Ra’Virr posera une question au pnj. Il faut donc que le pnj aie le choix de la réponse à donner. Il ne sera pas nécessairement intéresser par la tâche « passionnante » que nous lui confions. Lorsque l’on pose une question au joueur, il faut lui laisser le choix de réponse. Pour cela on dispose de la fonction Choice, que nous pouvons utiliser dans la zone Result de la fenêtre de dialogue.

Dans cette zone, il est possible de donner des instructions, en langage de script, qui seront exécutées au moment où le pnj prononcera la phrases ou les paroles associées.

Nous offrons un choix au PJ de la façon suivante :

Tuto 1er quete 10.PNG

Faites attention aux guillemets et aux nombres, et surtout à leur séquence. L’instruction fera apparaître deux alternatives pour le joueur, dans l’une le PJ accepte d’aider Ra’Virr, et dans l’autre non. Les deux propositions apparaîtront en blanc en bas de la fenêtre de dialogue du jeu.

Interpréter un choix du joueur

Et maintenant que se passera t-il lorsque le joueur fera son choix? Nous voulons que Ra’Virr soit content et donne la quête (oui je sais, c’est exagéré) au joueur, si celui-ci accepte de l’aider, sinon le joueur baissera dans l’estime de Ra’Virr.

Ra’Virr aura donc deux réactions en fonction de la réponse du joueur. On les ajoute dans la zone Info/Response de la fenêtre de la même façon que l’on ajouté la demande de Ra’Virr…

Créez vos nouvelles entrées au-dessus de la précédente. Cet ordre est très important pour que le jeu choisisse bien le bon dialogue et non pas le premier qui remplirait un critère correcte. On n'en reparlera plus tard.

On filtre les nouvelles phrases de sorte que seul Ra’Virr puisse les prononcer. Comme ce ne sera pas suffisant, on modifie le filtre, en ajoutant l’interprétation de la fonction Choice dans la colonne de droite :

Tuto 1er quete 11.PNG

(Lorsque le PJ accepte de chercher les chaussures) Cela signifie que si le joueur a fait le choix « 1 », Ra’Virr le remerciera..

Tuto 1er quete 12.PNG

(Lorsque le joueur refuse) Sinon, Ra’Virr sera déçu.

Chacun des choix du joueur aura des conséquences, celles ci sont explicitées dans la zone Result. Si le joueur fait le choix 2 (refus d’aider Ra’Virr), il baissera dans son estime : Ajouter

ModDisposition -5

dans la zone Result.

Voila ce que ça doit donner.

Tuto 1er quete 12 1.PNG

Pour le reste, nous allons faire en sorte d’inscrire l’évènement dans le journal.

Ecrire dans le journal

Pour écrire dans le journal, il existe une instruction très simple:

Journal ID_journal index

Pour cette instruction, vous ajoutez une entrée dans le journal. Mais, comme ça c’est peut être un peu brutal… Oui ? Alors on va rentrer dans les détails. Pour accéder aux entrées du journal, on clique sur l’onglet journal en haut à gauche.

La structure du journal

Tout d’abord, nous allons analyser un peu la structure du journal. Le journal se compose d’entrée, des thèmes du journal : c’est ce qu’on trouve dans la colonne à gauche de la fenêtre.

Pour y ajouter un thème (une ID), il faut que les entrées ne soient pas filtrées (c'est-à-dire aucune sélection dans la boite en bas à gauche).

A chaque thème, on peut associer plusieurs éléments. Ils apparaissent dans le grand tableau à droite, et sont identifiés par des Index (en bas à droite du tableau). Si il n’y a qu’un seul élément pour un thème, il doit obligatoirement prendre la valeur 1, si il y en a plusieurs, les valeurs prises doivent être différentes. L’ID (ou l’intitulé du thème) n’est jamais vue par le joueur, de sorte que vous pouvez choisir un nom exotique (par exemple : CHAUS_RV_entree). Le joueur ne verra que les éléments dans son journal.

Par exemple :

Tuto 1er quete 13.PNG

Ajouter une entrée dans le journal

Pour ajouter une nouvelle entrée dans le journal, on procède de la même façon que lorsque l’on désire ajouter un nouveau Topic.

Il faut que les dialogues ne soient pas filtrés. On peut alors faire un clic-droit dans la liste des Id du journal et sélectionné l’item ‘New’. Vous pouvez alors entrer une nouvelle ID, rappelez vous que celle-ci ne sera jamais connue du joueur. Vous pouvez donc choisir une ID aussi exotique que possible.

Je vous conseille tout de même de ne pas choisir quelque chose de complètement aberrant. Essayez, par exemple de respecter le même système que pour les ID des objets.

Une fois que vous avez choisit une ID (un thème) pour les entrées du journal, il faut les éditer. Pour ce faire, il faut effectuer les mêmes séries d’action que lorsque vous voulez ajouter un nouveau dialogue dans un Topic. Il faut toutefois faire attention à bien spécifier un Index pour chaque entrée que vous créer dans le journal. Si vous n’ajoutez qu’une unique entrée pour un thème, il faut que celle-ci ait au moins l’index 1. En revanche, si vous devez ajouter plus d’une entrée pour une ID, faites attention à leur attribuer des index différents.

Je vous conseille de ne pas choisir des index qui se suivent (1, 2, 3, 4...) car vous aurez le plus grand mal à rajouter des entrées si vous le voulez plus tard. Choisissez donc de 10 en 10 par exemple (10, 20, 30, 40...).

Créez par exemple l'entrée suivante :

Tuto 1er quete 13bis.PNG

La faire apparaître dans le journal du joueur

L’instruction

Journal ID_journal index

Permet de faire apparaître, l’entrée correspondant à l’index ‘index’ du thème ‘ID_journal’. Ce qui donne concrètement pour notre exemple :

Tuto 1er quete 14.PNG

Poursuite des dialogues

Améliorer le filtrage

Maintenant que nous avons mis en place les différents éléments de la quête, il faut s’arranger pour conserver une cohérence dans les dialogues de Ra’Virr. Que diriez vous si Ra’Virr devait vous saluer toujours de la même manière ? Et commencer toujours la conversation de la même façon ?

Pour éviter ce genre d’inconvénients, il faut affiner les filtres que nos avions mis en place pour les salutations et pour les dialogues successifs. Nous allons maintenant faire un test sur l’état interne du journal, il faut s’assurer que le PJ n’a pas déjà accepté la mission de Ra’Virr. C'est-à-dire que l’index courant du journal pour la quête des chaussures n’est pas 10.

Retournez dans le topic "mes chaussures" puis sur l'entrée correspondant à la demande d'aide de Ra'Vir. Pour qu'il ne répète pas sa demande quand le joueur a accepté, on met un filtre "journal", on cherche l'ID "CHAUSS_RV_entree", le signe "<" puis 10.

Ce qui veut dire que cette entrée s'affichera si le journal a un index inférieur à 10, c'est-à-dire dans notre cas si le joueur n'a pas accepté de chercher les chaussures.

Tuto 1er quete 15.PNG

On peut mettre le même filtre sur le greeting pour que Ra'vir ne nous accueille plus en parlant de ces chaussures !

Rajouter des répliques

On peut maintenant rajouter des répliques à Ra'vir qui tiendra compte que le joueur a accepté de chercher ses chaussures.

Créez une nouvelle entrée dans le topic "mes chaussures", au-dessus des autres. Le filtre doit maintenant être "journal" "CHAUSS_RV_entree" "==" 10 ; ce qui signifie que Ra'Vir prononcera cette phrase tant que l'index du journal est à 10. Pour nous, ça veut dire tant que le joueur est en train de chercher les chaussures.

Tuto 1er quete 16.PNG

Les chaussures

Et oui, il va bien falloir qu'on les cache quelque part !

Création des chaussures

Comme Ra'Virr cherche ses chaussures à lui, nous allons créer un nouvelle objet. Pour que ce soit plus simple, on va partir de chaussures qui existent déjà dans le jeu. Vous pouvez fermer la fenêtre des dialogues (pensez à enregistrer au passage).

Puis, dans les onglets de la fenêtre "Object Window", cliquez sur Clothing.

Cherchez dans la liste l'objet "extravagant_shoes_01". Ce sont des chaussures ostentatoires ce qui ira bien pour Ra'Virr (Qui de toutes façons ne pourra pas les porter car vous savez bien que les Khaajiit ne portent pas de chaussures dans Morrowind !).

Tuto 1er quete 17.PNG

Double-cliquez sur l'ID de la chaussure pour ouvrir la fenêtre de l'objet. Ne touchez pas aux caractéristiques pour cette exemple, on va se contenter de changer l'ID (pour un mod propre, on reprend notre préfixe CHAUSS_RV_) et le nom (pour que le joueur voit apparaitre dans le jeu que ce sont bien les chaussures de Ra'Virr.

Tuto 1er quete 18.PNG

Cliquez sur "save". Le jeu va vous demander si vous désirez créer un nouvel objet. Dites oui.

Placement des chaussures

On va dire que Ra'Virr est tête en l'air et qu'il a perdu ses chaussures dans sa propre maison.

Dans la fenêtre Cell View, cherchez le nom de la cell de Ra'Virr puis double-cliquez dessus pour la charger.

Tuto 1er quete 19.PNG

Ensuite, vous allez glisser vos nouvelles chaussures jusqu'où vous voulez les mettre dans la maison.

Pour bien placer l'objet et utiliser la vue 3D, voir cette article : TESCS_:_Les_raccourcis_claviers

Tuto 1er quete 20.PNG

Voila, nos chaussures sont placées ! Le joueur n'a plus qu'à les trouver !

Le joueur rend les chaussures à Ra'Virr

Pour la dernière étape, retournons dans la fenêtre des dialogues.

Créer une nouvelle entrée dans le journal

On peut commencer par créer l'entrée avec l'index 20 dans notre journal. Retournez dans le journal CHAUSS_RV_entree, créez une nouvelle entrée avec l'index 20 puis rédigez une petite phrase dans ce genre :

Tuto 1er quete 21.PNG

Détecter la présence des chaussures

Pour que Ra'Virr puisse féliciter le joueur, il faut qu'il "détecte" que le joueur a ses chaussures dans l'inventaire. Créez bien une nouvelle entrée dans le topic "mes chaussures" au-dessus des autres. C'est cette entrée que le jeu doit sélectionner en priorité pour Ra'Vir quand le joueur a les chaussures dans son inventaire !

Utilisez le filtre "item". Choisissez dans la liste déroulante votre item "CHAUSS_RV_chaussure1" puis >= 1.

Petite explication sur le >= : il n'est pas indispensable de l'utiliser. En fait, on pourrait très bien se contenter d'un =. MAIS, on sait jamais, quand vous vérifiez si le joueur a AU MOINS un objet particulier en sa possession, il vaut mieux imaginer qu'il PEUT en avoir plus. Si vous mettez =, si le joueur a par exemple 2 potions quand vous voulez vérifier qu'il en a au moins une, et bien, ça ne marchera pas. Il faudra que le joueur est EXACTEMENT une potion... C'est pour ça que le plus souvent, un test >= est préférable pour détecter le nombre d'objets. Prenez tout de suite cette habitude !

N'oubliez pas la petite phrase qui va bien !

Tuto 1er quete 22.PNG

Ra'Virr reprend ses biens

Pour que tout soit parfait, il faut qu'on s'occupe du champ result. La première chose est de mettre le journal à jour avec le dernier index que nous avons créé : journal CHAUSS_RV_entree 20

Puis nous allons enlever les chaussures de l'inventaire du joueur pour l'ajouter à l'inventaire de Ra'Virr. Nous allons utiliser les fonctions removeitem, puis additem comme suis. Je ne rentre pas dans le détail de cette fonction, voir ici pour plus de précisions : TESCS_:_AddItem

Tuto 1er quete 23.PNG

Remarquez que j'ai ajouter "ModDisposition 10" pour que la disposition de Ra'Virr s'améliore : bah oui, il est content d'avoir retrouvé ses chaussures qu'il ne peut pas mettre à ses pieds !

Améliorer la quête

Essayez de vous faire la main en améliorant la quête. Par exemple, en cas de refus du joueur d'aider Ra'vir une première fois, essayez de lui faire changer de phrase en disant quelque chose dans le genre "Je sais que la dernière fois vous n'aviez pas voulu m'aider, mais j'ai vraiment besoin de mes chaussures...". Il vous faudra sûrement ajouter une entrée de journal pour enregistrer le premier refus du joueur.

Ra'Virr pourrait vouloir récompenser le joueur. Essayez de rajouter une commande dans le champ résult en regardant le fonctionnement de la fonction Additem.

Vous pouvez aussi essayer de rajouter une suite. Ra'vir voudrait faire réparer ses chaussures auprès d'un tailleur du coin...

Laissez parler votre imagination et amusez-vous !

Derniers conseils

N’oubliez pas de vérifier toujours que les dialogues que vous avez sélectionnés sont valides.

Faites attention à la cohérence des dialogues que vous construisez. Ils sont la saveur de votre mod.

IMPORTANT ! Faites en sorte de toujours positionner les dialogues les plus restrictifs par les conditions (dans speaker condition) le plus haut possible dans la liste des paroles prononcées à propos d’un sujet spécifique.