Aller au contenu principal

Natives voix

GTA embarque une énorme bibliothèque de répliques vocales indexées par le dictionnaire audio du jeu, et la famille PLAY_PED_AMBIENT_SPEECH_* les joue. C'est ainsi que les vrais mods font parler leurs acteurs sans embarquer de fichiers audio.

Jouer une réplique

PLAY_PED_AMBIENT_SPEECH_NATIVE(ped, speechName, speechParams) — où speechName est la réplique connue du dictionnaire audio du jeu et speechParams la remonte ou la baisse dans le mix.

Quand en avoir besoin : toute parole diégétique dont votre scène a besoin — le ped qui vous salue, le suspect qui râle, le flic qui aboie un ordre.

Function.Call(Hash.PLAY_PED_AMBIENT_SPEECH_NATIVE, ped.Handle, "GENERIC_HI", "SPEECH_PARAMS_FORCE_SHOUTED_CLEAR");

GENERIC_HI est le salut universel de secours : il fonctionne sur presque tous les peds humains, c'est pourquoi c'est le fallback des vrais projets quand une réplique précise est inconnue.

Les paramètres de voix

La chaîne de paramètres n'est pas décorative, elle change la diction :

ParamètreEffet
SPEECH_PARAMS_FORCE_NORMALla réplique à ton normal
SPEECH_PARAMS_FORCE_SHOUTEDplus fort, plus d'urgence
SPEECH_PARAMS_FORCE_SHOUTED_CLEARfort et clair, idéal pour ordres et exclamations
SPEECH_PARAMS_FORCE_MEGAPHONEau mégaphone, pour les moments haut-parleur de la police

Quand en avoir besoin : la même réplique, autre ton — une insulte criée à travers la rue porte plus de menace qu'un marmonnement, et un ordre aboyé à une foule utilise le canal fort. Les vrais projets choisissent le paramètre en fonction de la situation, pas de la réplique.

Le pipeline de la voix

IS_ANY_SPEECH_PLAYING(ped) vous dit si un ped parle actuellement.

Quand en avoir besoin : le pacing. Vous ne pouvez pas empiler deux répliques sur un ped sans écraser la première ; tant que IS_ANY_SPEECH_PLAYING est vrai, une réplique en attente doit patienter. Les vraies scènes retiennent la réplique suivante jusqu'à la fin de la précédente, pour que le dialogue se lise comme du dialogue et non comme du bruit.

Ce qu'il ne faut pas faire

Le dictionnaire de parole est énorme et n'est pas indexé par les docs lisibles depuis le disque — vous ne pouvez pas le grep, vous découvrez les répliques au runtime. Deux règles pratiques des vrais projets :

  • Garde chaque nouveau speechName (codez un fallback vers GENERIC_HI quand rien n'est connu).
  • Ne supposez jamais qu'une réplique existe pour votre modèle de ped ; les peds humains partagent la plupart des répliques, les animaux et modèles spéciaux presque aucune.

Ne mélangez jamais l'eau du jeu dans une scène de parole — TASK_PLAY_ANIM pour les gestes, la parole ambiante pour le son, et gardez deux playlists séparées dans votre tête.