web-dev-qa-db-fra.com

Si je veux afficher un texte lettre par lettre, combien de temps dois-je attendre entre chaque caractère?

Je travaille sur un jeu où le joueur doit parler avec une IA (ce n'est pas la caractéristique principale mais c'est récurrent). Je voudrais afficher le texte lettre par lettre pour augmenter la sensation de dialogue entre lui et le bot.

Par expérience personnelle, je déteste quand le texte s'affiche trop lentement. Les phrases seront courtes, donc un bouton "sauter" ou quelque chose comme ça n'est pas pertinent.

Ce que je voudrais savoir, c'est combien de délai dois-je définir entre chaque nouveau caractère dans les phrases? Je veux être sûr que l'utilisateur ne sera pas ennuyé par quelque chose de lent, mais quelque chose de trop rapide n'est pas vraiment utile. Connaissez-vous des études ou des analyses sur quelque chose de similaire?

2
Allan Quatermain

Recherchez des vidéos de JRPG (comme Final Fantasy) pour voir ce qu'ils font lorsque les PNJ parlent, puis je ferais le vôtre un peu plus vite. Aujourd'hui, les joueurs sont habitués au contenu très rapide et zippy.

En outre, je reconsidérerais d'écarter un bouton de saut de fin qui fait passer le joueur à la fin de l'animation d'une ligne. Même si vos phrases sont courtes, des fractions de seconde peuvent sembler éternelles lorsque vous attendez la fin du dialogue dans le jeu.

Même si vous n'incluez pas de bouton de saut de fin, un pourcentage très élevé de joueurs écraseront ce qui serait de toute façon jusqu'à ce que l'animation soit terminée. Je l'ai vu plus d'une fois dans les tests d'utilisabilité. Nous avons constaté que l'inclusion d'une fonctionnalité de saut à la fin pour les dialogues animés rend le jeu plus réactif et réduit la frustration des joueurs à ces points.

1
Vicki

Avez-vous déjà joué à des jeux Nintendo? Avez-vous déjà assisté à une interaction avec un personnage où vous avez attendu que chaque ligne soit animée?

J'ai l'impression que presque tout le monde - une fois qu'ils ont compris qu'ils peuvent sauter la partie d'animation avec le bouton de commande - fait exactement cela. À ce stade, l'animation n'est plus quelque chose qui améliore l'expérience, mais se met simplement en travers du chemin.

Donc, pour répondre à votre question, je dirais que l'animation du texte n'est pas la meilleure façon de déduire qu'il s'agit d'une IA. Les IA sont rapides de toute façon. L'idée que le texte serait animé en premier lieu est un peu un trope, plutôt que quelque chose de vraiment utile et pratique.

1
DA01

L'impression du texte à l'écran ne prend pas très longtemps, c'est plus rapide que tout être humain peut parler. Donc, `` taper '' les choses qu'une IA dit n'a pas beaucoup de sens s'il y a quelque part assez de puissance de calcul pour exécuter n'importe quel type d'IA primitive.

Voici une option complètement alternative:

N'épelez pas les mots lettre par lettre. N'écrivez même pas tout ce que l'IA dit mot pour mot. Au lieu de cela, faites-le apparaître des mots clés. Développez ensuite ces mots un peu et ajoutez les mots intermédiaires normaux, puis terminez la phrase.

Vous pouvez également ajouter un pseudocode.

Cela suit de plus près le chemin suivi par un ordinateur lors de la création d'une phrase.

Spinny 'think' icon pendant un moment, puis quand il comprend la réponse

{self} need {key_bl} to open {door_002}

Devient plus humain

i need   blue keycard to open rear airlock

Et alors

I need the blue keycard to open the rear airlock for you.

Ou quelque chose comme ça. Il devrait donner un sens décent des progrès et du temps de calcul, tout en ne ressemblant pas autant à un ralentissement artificiel.

Vous pouvez également aller un peu plus loin et organiser la communication dans un sens plus rigide;

To achieve X, Y needs to Z.

Ce qui commence avec l'objectif et remonte à partir de là. (ce qui pourrait également constituer une façon un peu plus unique de structurer les quêtes).

To open the airlock, I need the blue keycard.

puis quand la personne parle à nouveau à l'IA.

To have the blue keycard, you need to give it to me.
1
PixelSnader