Prop FiveM sans collision : la solution
Vous faites spawner votre prop custom et vous passez droit à travers. Il n'y a que trois causes réalistes, et elles sont toutes dans les métadonnées plutôt que dans le mesh. Passez-les en revue dans cet ordre.
Cause 1 : physicsDictionary vide dans le ytyp
C'est celle qui piège presque tout le monde. Votre .ydr peut contenir un collision bound intégré parfaitement correct, mais si l'archetype dans le .ytyp a un <physicsDictionary/> vide, le moteur charge le modèle visuel et ne monte jamais la collision.
Le champ doit nommer le modèle lui-même, et les flags de l'archetype doivent avoir le bit de physique activé :
<physicsDictionary>my_prop</physicsDictionary> et flags value="32"
Cause 2 : pas de ytyp du tout
Sans archetype, le modèle ne s'enregistre jamais : vous n'avez pas un bug de collision, vous avez « model failed to load » ou un prop invisible, car RequestModel n'aboutit jamais. Le manifest doit aussi demander le fichier d'archetype :
data_file 'DLC_ITYP_REQUEST' 'stream/my_prop.ytyp'
Cause 3 : la collision n’a jamais été exportée
Si vous avez construit le prop à la main dans Blender avec Sollumz, la collision intégrée est optionnelle, et quand elle est créée elle hérite du matériau visuel, ce qui produit un avertissement « non-collision materials » et un bound que le jeu ignore. Le mesh de collision doit avoir un vrai matériau de collision, pas le matériau visuel.
Vérifiez aussi votre code de spawn
Un prop avec une collision valide peut encore se comporter bizarrement s'il est spawné comme objet non figé. Pour les props statiques du monde :
SetEntityCollision(obj, true, true) puis FreezeEntityPosition(obj, true), et vérifiez avec IsModelInCdimage avant de faire la requête.
Questions fréquentes
Pourquoi je passe à travers mon prop FiveM custom ?
Dans presque tous les cas, l'archetype .ytyp a un <physicsDictionary/> vide. Il doit nommer le modèle, et les flags de l'archetype doivent inclure le bit de physique (32), sinon le moteur charge le visuel et ignore la collision.
Que signifie « model failed to load » ?
L'archetype n'a jamais été enregistré : en général un .ytyp manquant, ou un manifest sans la ligne data_file DLC_ITYP_REQUEST. RequestModel n'aboutit alors jamais.
Collision box ou mesh ?
La collision box est moins coûteuse et convient aux caisses, panneaux et props cubiques. La collision mesh est précise et vaut le coup pour les props sur lesquels les joueurs grimpent ou qu'ils percutent en voiture. N'utilisez aucune collision que pour la pure décoration.
Les props FIVEFORGE ont-ils une collision ?
Oui. Vous choisissez box, mesh ou aucune dans l'éditeur, et l'archetype, la référence au physics dictionary et les flags sont écrits automatiquement.
Essayez gratuitement
Créez un compte gratuit, rejoignez le Discord pour vos crédits et créez votre premier asset en quelques minutes.
