Il ne s’agit pas exactement d’un tutoriel, mais plutôt d’un petit aperçu de la création de l’animation que vous voyez actuellement à l’écran, dans laquelle un ballon de football entre dans le but et déforme le filet avant de repartir en arrière.
L'audio de ce tutoriel n'est pas disponible en Français. Vous pouvez regarder ci-dessous la vidéo avec l'audio en Anglais et des sous-titres en Français, en Anglais et dans d’autres langues. Sous la vidéo, vous trouverez la transcription traduite en Français.
Transcription de la vidéo
Il ne s’agit pas exactement d’un tutoriel, mais plutôt d’un petit aperçu de la création de l’animation que vous voyez actuellement à l’écran, dans laquelle un ballon de football entre dans le but et déforme le filet avant de repartir en arrière.
Mon intention était d’obtenir ce résultat en utilisant les Rigid Bodies et la simulation Cloth, afin de pouvoir générer différentes animations basées sur divers tirs avec des forces et des directions différentes.
Les tirs, en particulier, ont été réalisés en faisant entrer en collision un objet Rigid Body passif et animé avec le ballon, qui est quant à lui un objet Rigid Body actif.
J’ai expliqué comment créer ces animations dans un précédent tutoriel vidéo publié sur ma chaîne YouTube, en utilisant comme exemple pratique le coup d’ouverture au billard.
Le ballon de football est également équipé d’un composant Collision, ce qui lui permet d’interagir avec le filet du but, configuré avec le simulateur Cloth.
Le filet, en particulier, n’est pas modélisé physiquement, mais composé de plans plats auxquels une texture semi-transparente est appliquée. Ces plans possèdent naturellement un bon nombre de subdivisions afin de produire une simulation Cloth réaliste, mais ils restent beaucoup plus simples à simuler qu’un filet modélisé de manière réaliste.

Certains sommets des plans représentant le filet sont maintenus en place grâce au Pinning, ce qui consiste à les assigner à un Vertex Group. Ce Vertex Group est ensuite utilisé comme Pinning Group dans la simulation Cloth, garantissant que ces sommets restent immobiles pendant la simulation.

En théorie, tout devrait fonctionner correctement, car le ballon vole vers le filet et la collision est bien détectée par le simulateur Cloth. Le problème est que, du moins à ma connaissance, le simulateur Cloth ne renvoie pas un objet vers l’arrière après l’impact. Le ballon finit donc par traverser la géométrie et poursuit sa trajectoire indéfiniment. J’aurais peut-être pu résoudre le problème avec les Soft Bodies, mais comme je ne les maîtrise pas, j’ai trouvé une petite solution alternative.

À partir d’un simple cube, j’ai créé un mesh servant de mur invisible pour les parties extérieures du filet. Ce nouvel objet est équipé d’un composant Rigid Body passif, avec la forme de collision modifiée de Convex Hull à Mesh.

Avec ces réglages, le ballon s’arrête dès qu’il frappe l’obstacle invisible. Pour le faire rebondir, j’ai augmenté la valeur de Bounciness à la fois pour le ballon et pour l’objet invisible.

L’effet obtenu est celui que je vous ai montré au début de la vidéo. Je vous montre également d’autres rendus où le filet semble se séparer immédiatement après l’impact. Cela vient du fait que, dans l’objet original, le filet possédait une certaine épaisseur ; en réalité, il y a donc deux plans avec la texture semi-transparente, qui s’écartent lorsque le filet se déforme. Résoudre ce problème est assez simple : il suffit de supprimer l’un des deux plans.
Cependant, je dois être totalement honnête : le résultat n’est pas toujours optimal ! Selon le point ou l’angle d’impact, des comportements étranges peuvent apparaître, parfois amusants, mais certainement pas précis ! Il y a encore des améliorations possibles, mais je pense que, comme solution imparfaite mais rapide et simple, cela fonctionne !