Il est pas évident à remonter celui-là...
- Conversations a écrit:
- If you just use ... as the text for a character to say, the game will pause briefly as if they are stopping to think, and nothing will be displayed.
- Character.Say() a écrit:
- The text displayed by this function looks identical to that used by the dialog system.
En résumé, ce que je comprend c'est que l'interprétation de "..." comme d'une pause remonte au système de dialogue lui-même.
Au départ, j'avais pensé à une de ces astuces :
- Code:
-
cCharacter.Say( String.Format("%s", "...") );
- Code:
-
cCharacter.Say( String.Format("%s..", ".") );
Mais c'est probable que ça ne fonctionne pas.
L'idée : String.Format est une fonction pour insérer des variables dans une chaine de caractères.
ça aurait éventuellement plus de chances de fonctionner avec la fonction Display.
- Code:
-
Display ("%s..", ".");
Mais pour le coups c'est dissocié du dialogue du personnage. Selon moi ce serait pas un problème, puisque "..." est sensé être un silence : un "blanc" dans la conversation.
La différence dans le rendu, c'est qu'il s'afficherait de manière impartiale, alors que tu l'attribuait à un personnage particulier.
J'arrive pas à trouver dans la doc où et comment régler ce détail.
Si rien de tout ça ne fonctionne ou conviens, il y a peut-être d'autres astuces à tester :
- Code:
-
//ajouter un espace
cCharacter.Say("... ");
cCharacter.Say(" ...");
cCharacter.Say(". . .");
//utiliser un autre caractère
cCharacter.Say("…"); // Horizontal Ellipsis (U+2026)
cCharacter.Say("···"); // middot (U+00B7)
//Ecrire d'une autre façon pour le même effet
cCharacter.Say("(...)");
cCharacter.Say("***");
cCharacter.Say("*silence*");
Le caractère Horizontal Ellipsis (U+2026) est la meilleure option (si ça ne pose pas de problème d'encodage/police)
ça se voit peut-être pas dans ce bloc de code à cause de la taille du texte et la police utilisée (largeur fixe), mais il s'agit de points de suspension écrit en un seul caractère.
…
Si t'essaie de le sélectionnner (ci-dessus) tu verras que c'est un seul caractère
Parfois dans des logiciels comme Word, quand tu tapes 3 points, le caractère est automatiquement remplacé par celui-ci.
Donc à priori, ça devrait fonctionner (ne pas être interprété par le script).
Si la police TTF que t'utilises n'est pas à largeur fixe, ça doit apparaitre exactement de la même façon :
… | ...
Une police à largeur fixe, c'est typiquement des lettres de machine à écrire (ex: Courrier) où tous les caractères/signes sont de largeur identique. C'est souvent la police par défaut dans les éditeurs de code. Fatalement dans ce cas particulier ça "écrase" le truc.