Extraits de gameplay de PNJ qui parlent
Ce qui a fonctionné pour 20 extraits GTA V (examples/gta-v, DirectorClips.cs, tools/shoot.ps1, tools/edit.ts) :
un extrait est un échange, 5-10 s, qui pourrait être un moment de jeu ordinaire.
Scénariser
clip: Pistolet à eau
at: grove un lieu de rue, un domicile, ou "x, y, z, cap"
time: 21 heure de la journée
a: player qui parle en premier : le joueur, un personnage, ou un modèle de piéton avec une voix
b: LamarDavis
line: Lamar, range cette arme. C'est un pistolet à eau.
reply: insiste que c'est quand même flippant et qu'il est l'homme le plus craint de Grove Street (le LLM écrit en direct)
# ou verrouiller une réplique approuvée :
say: [criant] Peur d'un pistolet à eau ? C'est la merde la plus flippante de Grove Street !
do: none l'action à jouer (un nom d'action, ou none)
Les extraits sans joueur (un flic et un bouseux, un marine et un touriste) sont parmi les meilleurs : cachez le joueur et laissez deux PNJ s'affronter.
Rendre le gameplay
- La caméra de gameplay, fixe : à chaque image, définir le mode de vue de la caméra suivante ainsi que son cap et son inclinaison par rapport au joueur, et désactiver la saisie de regard. Fixe convient ; les caméras cinématiques ressemblent à une bande-annonce.
- Cadrer le partenaire : placez-le devant et un peu sur le côté (2 m devant, 1 m à droite) pour que le joueur ne le cache pas ; effectuez un raycast autour de l'endroit et éloignez-vous des murs, kiosques et portes.
- Les ancrer au sol : accrochez-les au trottoir, et effectuez un raycast vers le bas pour le sol (les auvents et les toits trompent les recherches de hauteur).
- Écran propre : l'interface HUD et les sous-titres du jeu sont affichés, rien du mod (pas de notifications, panneaux de développement ou texte d'aide). Supprimez les appels téléphoniques et les textes d'aide pendant une prise.
- Rendre d'abord, puis lancer : écrivez la réponse, choisissez l'action et rendez les deux voix avant que l'extrait ne commence, puis lisez-les en continu. Personne n'attend sur la caméra pour un GPU.
Enregistrer, synchroniser, couper
shoot.ps1: amène le jeu au premier plan, recharge le mod, enregistre l'écran (ffmpegddagrab) et l'audio du PC (boucle WASAPI) dans des fichiers séparés, démarre le script, et redémarre la capture si le focus est perdu (le jeu se met en pause).- Synchronisation : chaque segment de capture commence par un flash blanc et un bip de 1 kHz enregistré avec un horodatage ; le mod enregistre
clip_start/clip_endet chaqueaudio_on/audio_offde ligne dans une timeline. edit.ts --clips <prise>: un MP4 par extrait, de 0,2 s avantclip_startjusqu'au dernier mot ou action, recadré à la fenêtre du jeu, 1920 de large, normalisé en volume. Il limite les extraits à 10 s et signale toute ligne qui serait coupée, au lieu de la couper.- Reprendre, ne pas couper les mots : un extrait trop long est refait (les nouveaux rendus ont des longueurs différentes) ou sa ligne est resserrée de quelques mots. Verrouillez les répliques approuvées avec
say:/do:pour qu'une reprise conserve la blague. - Vérifier avant d'envoyer : une planche contact d'une image par extrait (
ffmpeg -ss 5 ... tile=5x4) permet de repérer en quelques secondes un partenaire caché ou un mur dans le plan.
Pièges à éviter
- Rien ne se passe / le mod n'est pas revenu après un rechargement. Windows Smart App Control a refusé la nouvelle DLL (événement Code Integrity 3077). Testez d'abord le chargement d'une nouvelle version ; conservez la dernière qui a fonctionné.
- La prise n'a pas de début vidéo dans son journal. Un autre processus gardait le fichier journal ouvert (
tail -Fsur Windows bloque l'écriture). Ne regardez pas un fichier auquel un autre script ajoute du contenu ; regardez un autre fichier. - Un appel téléphonique ou un texte d'aide arrive au milieu de l'extrait. Supprimez-les à chaque image pendant le défilement d'un extrait.
- Les voix dans les extraits sont des clones. Avant de publier un extrait où que ce soit, la décision revient à l'humain ; précisez qu'il s'agit d'IA.