Page 1 sur 1

[DLG] Comment faire dialoguer des PNJ extérieurs au groupe ?

Posté : sam. 10 sept. 2005, 09:40
par Shinook
Ce que je voudrais faire, c'est durant une CutScene, faire parler des PNJ extérieurs au groupe, et qui ne parlent qu'entre eux. Ils sont 5, et se passent le tour de parole, sans intervention possible du PJ, au moins au départ. J'ai "épluché" un peu les dialogues sur Infinity Explorer, et je n'ai rien compris de la façon dont il faut procéder.

Ma question est donc : Comment coder un dialogue pour qu'il n'y ait que des PNJ qui se parlent entre eux, sans réponse possible du PJ ? ( il n'y a donc plus de IF~~ THEN REPLY ~~ dans le dialogue... )

Edit : Une forme normale serait

Code : Tout sélectionner

BEGIN ******

IF ~~ THEN BEGIN *****
  SAY ~~ // parole du PNJ
  IF ~~ THEN REPLY ~~ // différentes réponses possibles du PJ
  IF ~~ THEN REPLY ~~
  (...)
END
Donc, sans les réponses, on a plus que

Code : Tout sélectionner

BEGIN ******

IF ~~ THEN BEGIN *****
  SAY ~~ // parole du PNJ 1
  SAY ~~ // parole du PNJ 2 ?
  SAY ~~ // parole du PNJ 3 ?
  (...)
END

Posté : sam. 10 sept. 2005, 10:05
par Isaya
Le passage d'un personnage à l'autre s'effectue avec le "mot-clé" == et en indiquant le nom du fichier dialogue du personnage qui va parler (pour que WeiDU sache où l'ajouter). La doc de WeiDU a un exemple dans la partie tutorial sur "CHAIN". Tu trouveras également bien des détails dans le tutorial the road to banter.

Posté : sam. 10 sept. 2005, 16:05
par Shinook
D'accord j'ai compris, merci ^^ . Une autre question à ce sujet : je dois écrire ce banter dans un fichier B*****.d, si j'ai bien compris. Donc il faut que j'en créé un pour chaque PNJ qui va parler, et ne rien mettre dedans ? ( étant donné que ce sont des PNJ que je crée ) Dans ce cas, le ficiher ne serre qu'à les identifier ? Mais comment le jeu les identifie ? C'est pas encore très clair tout ça :..: ...

Posté : dim. 11 sept. 2005, 14:07
par Isaya
Tu peux appeler le fichier .D comme tu veux. L'important est d'indiquer dans le "BEGIN" le fichier DLG auquel va s'ajouter le dialogue.
Tu n'as besoin de créer qu'un seul fichier .D pour tout le dialogue. WeiDU ajoutera automatiquement les répliques dans les différents fichiers DLG désignés (soit dans le BEGIN soit à chaque ==) et mettra les liens qui vont bien pour que le jeu les suive. WeiDU crééra les fichiers DLG indiqués si nécessaire. L'habitude veut qu'on utilise les fichiers Bxx.DLG pour ce genre de dialogues. Puisque tu crées des PNJ, tu devras veiller à bien ajouter dans le fichier 2DA approprié (voir le tutorial sur la création de PNJ) les noms des fichiers DLG utilisés par chaque PNJ.
L'utilisation par le jeu des fichiers Banter est lié à l'emploi d'une commande spéciale dans un script pour initier la série de dialogues.

Lis bien le tutorial, je pense qu'il est bien plus précis que ce que j'ai pu écrire ici.

Posté : mer. 14 sept. 2005, 10:59
par Shinook
D'accord, il faudra que je regarde ce tutorial, par contre, où est-ce que je peux le trouver ? Je sais qu'il existe en anglais, mais en français ?

Edit : Ah oui, d'accord, j'avais aps fait attention à la fin du tuto, il parle du .2DA. Par contre, je ne comprend pas trop à quoi ça sert exactement, et surtout comment ça marche... en fait, ça permet d'assigner tels fichier B******.d ( et autres ) à un fichier .cre ?

Posté : jeu. 15 sept. 2005, 21:32
par Isaya
Le fichier 2DA associe tous les fichiers DLG d'un perso à son nom (pas au fichier CRE, mais à son nom de script, aussi appelée "death variable"). C'est ainsi que le jeu s'y retrouve pour les banters (Bxxx), le dialogue dans le groupe (xxxJ), le dialogue de départ ou retour dans le groupe (xxxP), notamment.
Remarque : les noms indiqués entre parenthèses sont les formes couramment utilisées, ce n'est pas une règle en soit.

Pour plus de détails sur les fichiers 2DA, voir le site IESDP.

Posté : ven. 16 sept. 2005, 12:08
par Shinook
Ok, j'ai compris. Par contre, est-ce que ces fichiers ont besoin d'exister ? Je m'explique. J'ai installé Kim, et j'ai regardé "pdialog.2DA", où on voit tous les fichiers associés. Hors, je n'ai vu aucun de ces fichiers dans le dossier "KimPC". Est-ce que ça veut dire qu'ils sont créés lors de l'installation.

Autre chose, dans "pdialog.2DA", on ne voit les fichiers que des PNJ recrutables. Hors, les PNJ que je veux faire parler grâce à la commande CHAIN ne sont pas recrutables, ce sont de simples PNJ. Alors que dois-je faire ?

Posté : sam. 17 sept. 2005, 11:17
par Isaya
Ces fichiers n'ont d'importance que pour les personnages recrutables car le jeu utilise ces différents fichiers en fonction des circonstances ou des commandes utilisées dans les scripts pour déclencher le dialogue (banter).
Pour les autres PNJ, un seul dialogue suffit. Les interventions des membres du groupe au milieu d'une conversation avec un PNJ externe sont codées de cette façon. Ce qui compte, c'est le nom des fichiers DLG utilisé sur les lignes ==. Il doit correspondre à celui que tu utilises dans la commande BEGIN dans le fichier D pour chacun des différents protagonistes (s'ils ont d'autres dialogues en dehors de celui où tu veux les faire tous intervenir).

Dans la mesure ou WeiDU créé les fichiers DLG à partir des fichiers D, par la commande COMPILE, il est bien normal que tu ne trouves pas les fichiers DLG dans l'arborescence d'un mod. Le nom du ou des fichiers DLG à générer à partir du fichier D est indiqué par la ou les commandes BEGIN.

PS : tu devrais VRAIMENT lire les tutorials et la doc WeiDU ;)

Posté : dim. 18 sept. 2005, 16:40
par Shinook
Ok, je crois que c'est bon maintenant, par contre, le problème pour ces PNJ non recrutables, c'est qu'ils n'interviennent que pour ce dialogue "en chaîne". Ils n'ont donc pas de fichier .D ; Donc que faut-il que je fasse, sachant que je ne peux pas juste créer un fichier.D avec "BEGIN ~*****~" et sans rien ensuite ?

Posté : dim. 18 sept. 2005, 17:12
par Isaya
Tu dis que tu ne peux pas, mais as-tu essayé ? Cela dit, tu dois pouvoir t'en passer. En utilisant CHAIN et ==, tu dois pouvoir te contenter d'un fichier D pour l'ensemble du dialogue. Utilise BEGIN pour le personnage qui commence la discussion. Si tout va bien, WeiDU créera les fichiers DLG pour les autres persos à partir des séquences == NomDuDlg pour les autres persos.
Avant de poser davantage de questions qui amènent des réponses basées sur des hypothèses (à moins que d'autres ici puissent te répondre), je te suggère d'essayer et de voir ce qui se passe. Inutile de continuer sur des conjectures.