Inside·Rockstar Preuve 0
Dossier complet · série « Le moteur vous ment »

Le feu de GTA obéit à un compteur

Un incendie qui ravage un champ, une voiture qui explose, un immeuble qui s'effondre : tout ça a l'air chaotique. En réalité, chaque flamme est comptée et chaque explosion a des réglages. Cinq preuves, avec des démos où vous mettez le feu vous-même.

Lecture : 8 min Sources : doc des natives FiveM + NativeDB + wiki RAGE MP
Preuve 1 / 5

Un feu de script ne se propage que 25 fois

Quand une mission, un événement ou un mod allume un feu, il passe par une fonction du moteur. Elle demande combien de fois ce feu a le droit de se propager à ce qui l'entoure : chaque nouvelle flamme est un « enfant » de la première. Et il y a un plafond : 25 au maximum.

Demandez plus de 25, et la fonction ne fait rien du tout : pas une flamme. Une fois le feu lancé, le script garde son numéro pour l'éteindre, et d'autres fonctions comptent les feux dans une zone ou les étouffent tous d'un coup. Dans la démo, allumez le champ et regardez le compteur.

La preuvenative GTA V
START_SCRIPT_FIRE(x, y, z, maxChildren, isGasFire)
// maxChildren : 25 au maximum,
// au-delà la fonction ne fait rien
// isGasFire : un feu d'essence
REMOVE_SCRIPT_FIRE(feu)
GET_NUMBER_OF_FIRES_IN_RANGE(x, y, z, rayon)
STOP_FIRE_IN_RANGE(x, y, z, rayon)
25
Cliquez dans le champ pour allumer le feu.
Preuve 2 / 5

Le réservoir a ses propres points de vie

La carrosserie, le moteur et le réservoir d'une voiture ont chacun leur jauge. Celle du réservoir monte à 1 000. Vers 650, il commence à fuir et laisse une traînée d'essence derrière la voiture.

Cette traînée est un vrai chemin pour le feu. Tirez dans le réservoir, puis allumez le bout de la traînée.

La jauge ne s'arrête pas à zéro : elle descend jusqu'à environ -1 000, sans rien déclencher de plus. Et une mission peut rendre un réservoir ininflammable, voiture par voiture.

La preuvenatives GTA V
GET_VEHICLE_PETROL_TANK_HEALTH(véhicule)
// 1000 max · fuite vers 650 · minimum ≈ -999.9
SET_DISABLE_VEHICLE_PETROL_TANK_FIRES(véhicule, true)
START_PETROL_TRAIL_DECALS(p0)
// traînée d'essence tracée par un script,
// paramètre non documenté
réservoir 1000 / 1000
Cliquez sur le réservoir pour tirer, puis sur le bout de la traînée pour l'allumer.
Preuve 3 / 5

Une explosion peut être invisible et muette

La fonction qui crée une explosion a des réglages qu'on ne voit jamais en jouant : le son, l'image et la secousse de la caméra. Coupez les deux premiers, et la voiture s'envole sans flash ni bruit.

Il existe aussi l'inverse : un neuvième réglage, longtemps absent de la documentation, retire les dégâts. L'explosion se voit et s'entend, mais ne blesse personne. Essayez les trois premiers réglages dans la démo, avec le son allumé.

La preuvenative GTA V
ADD_EXPLOSION(x, y, z, type, dégâts,
  isAudible, isInvisible, cameraShake, noDamage)
// noDamage : 9e paramètre, ajouté à NativeDB
Preuve 4 / 5

Une bouche d'incendie est une explosion

Quand vous percutez une bouche d'incendie, l'eau jaillit. Pour le moteur, ce jet n'est pas de l'eau : il est rangé dans la même liste que les grenades et les bombes, comme un type d'explosion « dirigée ».

On y trouve aussi le jet de vapeur, la flamme dirigée et la bonbonne de gaz. Une explosion, pour GTA, c'est simplement quelque chose qui part d'un point et qui pousse.

La liste compte 84 types. L'extincteur en fait partie, tout comme la boule de neige et même la fiente d'oiseau.

La preuvetypes d'explosion
EXP_TAG_DIR_STEAM          // 11 · vapeur
EXP_TAG_DIR_FLAME          // 12 · flamme
EXP_TAG_DIR_WATER_HYDRANT  // 13 · bouche d'incendie
EXP_TAG_DIR_GAS_CANISTER   // 14 · bonbonne
// et aussi : 24 EXTINGUISHER (extincteur),
// 35 BIRD_CRAP (fiente), 39 SNOWBALL
Preuve 5 / 5

Les destructions sont des vidéos

Dans les missions, quand un immeuble s'effondre ou qu'une maison explose, ce n'est pas de la physique. Ce sont des animations « Rayfire » préparées à l'avance. Le script fait passer l'objet par des états numérotés : 2 quand il apparaît, 4 au début de l'animation, 6 quand elle démarre, 9 à la fin.

La preuve : rejouez-la, chaque débris retombe exactement au même endroit. L'avancée se lit comme une frise, de 0 à 1. Faites-la glisser comme dans un logiciel de montage.

Le décor d'après est souvent un calque de carte à part. La maison sur pilotis de Vinewood Hills existe ainsi en version effondrée et en version reconstruite.

La preuvenatives GTA V
GET_RAYFIRE_MAP_OBJECT(x, y, z, rayon, "des_tvsmash")
// exemple de la doc : une télé qui vole en éclats
SET_STATE_OF_RAYFIRE_MAP_OBJECT(objet, état)
// 2 apparu · 4 début · 6 lancé · 9 fin
GET_RAYFIRE_MAP_OBJECT_ANIM_PHASE(objet)
// de 0.0 à 1.0, puis retour à 0.0
REQUEST_IPL("DES_StiltHouse_imapend")
// la maison sur pilotis, effondrée
état : début
Avant-première

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 Discord
Dossier suivant

Sous la carte, il y a une autre ville

Une partie des intérieurs de GTA Online est rangée sous le sol de Los Santos.