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.
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.
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)
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.
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é
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é.
ADD_EXPLOSION(x, y, z, type, dégâts, isAudible, isInvisible, cameraShake, noDamage) // noDamage : 9e paramètre, ajouté à NativeDB
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.
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
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.
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
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 DiscordSous 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.