En mission, la circulation est un film
Pendant une mission de GTA V, les voitures autour de vous ne sont pas toutes conduites par l'IA. Beaucoup rejouent un trajet enregistré à l'avance, image par image, comme une vidéo. Ces enregistrements portent un nom : les YVR. Cinq preuves, de la rue en 3D jusqu'au tournage des bandes-annonces.
En mission, toute la rue est un enregistrement
Quand une course-poursuite démarre, Rockstar ne laisse pas la circulation au hasard. Un développeur a déjà joué la scène. Pendant qu'il roulait, le jeu a enregistré chaque voiture autour de lui : sa position, sa vitesse, son volant. En mission, le jeu rejoue tout ça.
La vue debug de Rockstar trie ces voitures par couleur. En vert, la circulation enregistrée. En rouge, les séquences spectaculaires : un développeur a refait le trajet en conduisant exprès de façon plus folle, pour que la scène soit plus excitante. En bleu, les voitures garées, elles aussi placées par l'enregistrement.
Il reste une couleur : le magenta. C'est une voiture que vous avez percutée. Elle sort de son rail, et l'IA reprend le volant. Dans la démo, touchez une voiture pour voir ce moment.
(UBER) TR 90 // circulation enregistrée, n° 90 (UBER) SP 503 // séquence d'un développeur, n° 503 voitures garées // positions enregistrées aussi hors rails // l'IA a repris le volant
Ce qu'il y a dans un fichier YVR
Un YVR est une longue liste de lignes. Plusieurs fois par seconde, le jeu a noté l'état de la voiture : l'heure de la ligne, sa position, sa vitesse, son orientation, l'angle du volant, l'accélérateur, le frein et le frein à main.
Pour rejouer, le jeu lit la liste et place la voiture entre deux lignes. Le fichier ne dit pas quelle voiture conduisait : n'importe quel véhicule peut le rejouer, même un bus.
- Timele moment de la ligne, en millisecondes
- Position · Velocityoù est la voiture, et à quelle vitesse elle va
- Right · Topdeux flèches qui donnent son orientation
- Steering · Gas · Brakele volant et les pédales, comme le développeur les tenait
- Handbrakele frein à main, tiré ou non
REQUEST_VEHICLE_RECORDING(numéro, "nom") HAS_VEHICLE_RECORDING_BEEN_LOADED(numéro, "nom") START_PLAYBACK_RECORDED_VEHICLE(véhicule, numéro, "nom", true) GET_TIME_POSITION_IN_RECORDING(véhicule) GET_TOTAL_DURATION_OF_VEHICLE_RECORDING(numéro, "nom")
La première mission : Lamar ne conduit pas, il rejoue
Dans « Franklin et Lamar », vous faites la course jusqu'à la concession de Simeon. Lamar a l'air de piloter. En réalité, sa voiture rejoue un enregistrement.
Le script de la mission regarde l'écart entre vous et lui, et il règle la vitesse de lecture. Vous êtes loin derrière : Lamar ralentit et vous attend. Vous passez devant : il accélère pour revenir. La course reste serrée, quoi que vous fassiez.
Et la circulation suit la même horloge. Les voitures qui traversent la route sont elles aussi des enregistrements, calés sur l'avancée de Lamar. Quand il ralentit, toute la rue ralentit avec lui. C'est pour ça qu'une voiture vous coupe toujours la route au même moment.
START_PLAYBACK_RECORDED_VEHICLE(lamar, numéro, "nom", true) SET_PLAYBACK_SPEED(lamar, vitesse) // à chaque image // vous êtes devant : vitesse > 1 // vous êtes derrière : vitesse < 1
Pourquoi des rails plutôt que l'IA
Une voiture conduite par l'IA décide de tout à chaque image : sa trajectoire, son freinage, sa réaction aux autres. Elle ne refait jamais deux fois la même chose. Pour une mission, c'est un problème.
Un enregistrement, lui, rejoue la scène au millimètre à chaque essai. Il permet un spectacle qu'aucune IA ne fait seule, comme une glissade parfaite devant votre capot. Il coûte moins de calcul, puisque la voiture n'a rien à décider. Et tout arrive au bon moment.
Le prix à payer : un enregistrement ne sait pas réagir. Si vous percutez la voiture, le jeu la sort du rail et donne le volant à l'IA. Il peut même lui demander de revenir sur son trajet un peu plus tard.
SET_PLAYBACK_TO_USE_AI(véhicule, styleDeConduite) SET_PLAYBACK_TO_USE_AI_TRY_TO_REVERT_BACK_LATER( véhicule, durée, styleDeConduite, false) IS_PLAYBACK_GOING_ON_FOR_VEHICLE(véhicule)
Les bandes-annonces sont tournées sur des rails aussi
Pour filmer une course-poursuite de bande-annonce, il faut plusieurs prises. Avec des voitures conduites à la main, aucune prise ne ressemble à la précédente. Avec des enregistrements, la scène se rejoue à l'identique, encore et encore.
Seule la caméra bouge d'une prise à l'autre. L'équipe peut chercher le meilleur angle, ralentir le moment d'une glissade, revenir trois secondes en arrière. Les voitures, elles, repassent toujours au même endroit.
Sur FiveM, les mêmes natives existent. Elles rejouent les enregistrements du jeu sur n'importe quelle voiture : c'est comme ça que nous tournons ces plans.
SKIP_TIME_IN_PLAYBACK_RECORDED_VEHICLE(véhicule, ms) SET_PLAYBACK_SPEED(véhicule, 0.25) // ralenti PAUSE_PLAYBACK_RECORDED_VEHICLE(véhicule) UNPAUSE_PLAYBACK_RECORDED_VEHICLE(véhicule)
Le prochain dossier est déjà sur le Discord
Les membres lisent chaque dossier avant sa publication, avec les fichiers de tournage complets.
Rejoindre le DiscordL'eau de GTA est une illusion
La mer, les lacs et les rivières de Los Santos ne sont pas ce qu'ils ont l'air d'être.