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ètre | Effet |
|---|---|
SPEECH_PARAMS_FORCE_NORMAL | la réplique à ton normal |
SPEECH_PARAMS_FORCE_SHOUTED | plus fort, plus d'urgence |
SPEECH_PARAMS_FORCE_SHOUTED_CLEAR | fort et clair, idéal pour ordres et exclamations |
SPEECH_PARAMS_FORCE_MEGAPHONE | au 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 versGENERIC_HIquand 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.