Collision#

Il y a deux type de collision différents que vous pouvez utilise : collision entre différents objets et collision interne. Nous aimerions mettre quelque chose au clair dès le début – les cibles primaires du calcul de collision sont les sommets d’un corps souple. Aussi si vous avez trop peu de sommets, trop peu de collisions auront lieu. Deuxièmement vous pouvez utiliser les arêtes et les faces pour améliorer le calcul de collision.

Collisions entre d’autres objets#

Pour qu’un corps souple entre en collision avec un autre objet, il y a quelques prérequis :

  • Si Collision Collection est défini, l’objet doit appartenir à la collection.

  • L’objet de collision doit être un objet mesh.

  • Vous devez activer Collision dans l’onglet Physics pour l’objet de collision. L’objet de collision doit de plus êre un corps souple.

Exemples#

Un corps souple cube entrant en collision avec un plan (Fig. Un corps souple cube entrant en collision avec un plan.) fonctionne plutôt bien, mais un corps souple plan traverse un cube avec lequel il est sensé entrer en collision (Fig. Un corps souple plan entrant en collision avec un cube, donc pas d’interaction du tout.).

../../_images/physics_soft-body_collision_cube-plane-1.png

Un corps souple cube entrant en collision avec un plan.#

../../_images/physics_soft-body_collision_cube-plane-2.png

Un corps souple plan entrant en collision avec un cube, donc pas d’interaction du tout.#

Pourquoi cela ? Parce que la méthode de calcul par défaut vérifie seulement si les quatre sommets du corps souple plan entre en collision avec le cube pendant que le plan est poussé vers le bas par la gravité. Vous pouvez activer Collision : Face (dans le panneau Soft Body Edges) pour activer à la place la collision entre la face du plan et l’objet, mais ce type de calcul prend beaucoup plus de temps.

Regardons de plus près le calcul de collision, ainsi vous pourrez avoir une idée sur la manière dont nous pourrions l’optimiser.

Calcul des collisions#

Les simulations de corps souples sont par défaut faites sur chaque sommet. Si les sommets du corps souple n’entrent pas en collision avec l’objet de collision, il n’y aura pas d’interaction entre les deux objets.

Dans la vidéo ci-dessous, vous pouvez voir les sommets entrer en collision avec un plan. Si un sommet pénètre la zone entre Outer et Inner, il est repoussé par une force dans la direction de la normale de la face. La position à laquelle finit un sommet est dépendante des forces qui agissent sur lui. Dans l’exemple (le premier sommet à gauche dans la vidéo ci-dessous) la gravité et la force de répulsion de la face s’équilibrent. La vitesse à laquelle le sommet est poussé hors de la zone de collision est influencée par le paramètre Choke dans les réglages de Soft Body Solver.

Voir aussi

Téléchargez le fichier blend.

Voyons maintenant ce qui se passe si nous alourdissons les sommets et les laissons voyager à une vitesse plus rapide. Dans la vidéo ci-dessus, vous pouvez voir les sommets se déplacer à différentes vitesses. Les deux à l’extrême droite (cinquième et sixième) voyagent si vite qu’ils passent à travers la zone de collision (c’est à cause de la précision du solveur par défaut, que nous pourrons corriger plus tard). Vous remarquerez que le quatrième sommet se déplace également assez rapidement et, comme il est plus lourd, franchit la zone intérieure. Les trois premiers sommets se heurtent correctement.

Vous pouvez configurer votre collision afin que les arêtes et même les faces sont comprises dans le calcul de collision dans le panneau Soft Body Edges avec les options de Collison Face et Edge. La collision est alors calculée différemment. Il est vérifié si l’arête ou la face entrecoupe l’objet de collision, les zones de collision ne sont pas utilisées.

Bonnes collisions#

Si la collision que vous avez configurée ne se comporte pas proprement, vous pouvez essayer ce que suit :

  • L’objet corps souple doit avoir plus de subdivisions que l’objet de collision. Ajoutez à l’objet corps souple dans des zones stratégiques que vous connaissez les plus à même d’être impliquées dans une collision.

  • Vérifier la direction des normales de face.

  • Si l’objet de collision à des pointes aiguës, elles pourraient pénétrer le corps souple.

  • La résolution du solveur doit la vitesse à laquelle les sommets du corps souple voyagent. Baissez le paramètre Error Limit et augmentez prudemment Min Step.

  • Outer et Inner devraient être assez grands, mais les zones des faces opposées ne devraient pas se chevaucher, ou vous aurez des forces dans des directions opposées.

  • Si vous utilisez des forces puissantes. vous devriez utiliser de grandes zones.

  • Définissez Choke à une valeur assez haute (jusqu’en haut si nécessaire) si vous des difficultés avec des sommets repoussés.

  • Les faces en collision sont difficiles à contrôler et nécessitent de longs calculs. Essayez de ne pas les utiliser.

Souvent il est préférable de créer un maillage simplifié à utiliser comme votre objet de collision. Cependant il peut être difficile si vous utilisez un maillage d’animation.

Auto-collisions#

Pour des informations sur les auto-collisions, veuillez vous référer aux paramètres de Self Collision.