Dans ce tutoriel, nous allons voir comment configurer des Rigid Bodies et une contrainte Hinge afin de créer l’animation d’un pendule de Newton.
La version vidéo de ce tutoriel n’est actuellement pas disponible dans cette langue. Vous pouvez regarder ci-dessous la version en anglais avec des sous-titres ; sous la vidéo, vous trouverez la transcription traduite en français.
Transcription de la vidéo
Dans ce tutoriel, nous allons voir comment configurer des Rigid Bodies et une contrainte Hinge afin de créer l’animation d’un pendule de Newton. Le tutoriel a été réalisé avec la version 3.6 de Blender.
Pour commencer, j’utilise un modèle 3D préfabriqué qui contient la structure de base ainsi qu’un certain nombre de sphères avec leurs supports respectifs.
Dans ce modèle 3D, les sphères et les supports ont leurs origines correctement positionnées le long de ce qui sera l’axe de rotation, mais ils sont tous parentés à la structure.
Cela est inutile et pourrait même poser un problème pour la simulation physique.
Par conséquent, comme première étape, je les sélectionne tous puis je supprime le parentage avec le raccourci ALT P. Ensuite, je choisis l’option « Clear Parent and Keep Transformation » dans le menu Separate qui apparaît à l’écran.
En réalité, je dois effectuer des opérations qui seront répétées pour toutes les sphères. Je peux donc supprimer toutes les sphères sauf une. De cette manière, je peux effectuer les opérations sur la sphère restante et obtenir ensuite des copies déjà configurées.

Nous avons maintenant deux objets : la base et la première sphère avec ses supports.
Nous pouvons ignorer la base, car elle ne fera pas partie de la simulation physique.
La sphère possède son origine en haut, le long de l’axe de rotation.
Cela est très utile car c’est précisément à cet endroit, sur l’axe vertical de la sphère, que nous devons ajouter un objet auxiliaire nécessaire pour utiliser la contrainte Hinge.

Lorsqu’on ajoute un nouvel objet dans la scène, il est placé avec son origine à l’endroit où se trouve le curseur 3D. Je positionne donc le curseur 3D sur l’origine de la sphère avec le raccourci SHIFT S, puis je choisis l’option « Cursor to Selected ».
Nous avons maintenant besoin d’un objet auxiliaire pour appliquer la contrainte Hinge. N’importe quel objet convient, j’ajoute donc un simple cube et je le redimensionne pour une meilleure visibilité.
Après le redimensionnement, j’applique les transformations d’échelle avec le raccourci CTRL A. Cette opération est peut-être inutile dans ce contexte, mais c’est une bonne habitude à prendre.

Avec le cube sélectionné, ouvrez l’onglet Physics dans la fenêtre Properties et ajoutez un composant Rigid Body en le définissant comme Passive.

Cet objet participera alors à la simulation Rigid Body sans réagir aux forces. Comme mentionné précédemment, il servira de contrainte pour la rotation de la sphère.
Ajoutons ensuite un Rigid Body à la sphère, mais en changeant son type sur Active, car la sphère doit se déplacer selon la gravité et les autres forces. La valeur de masse par défaut de l’objet est trop faible, je la règle donc sur 100 grammes.

Une autre modification importante concerne le paramètre Collision Shape de la sphère. Par défaut, ce paramètre est défini sur Convex Hull, mais l’enveloppe générée peut provoquer certains problèmes lors des interactions avec les autres objets.
Je change donc le mode sur Mesh. Cette option demande plus de calculs mais fournit un résultat plus précis.

L’infobulle du paramètre Margin suggère de conserver une valeur supérieure à 0. Cependant, après plusieurs essais, j’ai constaté que dans ce contexte il vaut mieux définir cette valeur sur 0 afin d’éviter que la simulation physique détecte des collisions entre des objets immobiles mais très proches au début de la simulation.


De plus, nous devons définir une valeur très élevée, comme 0.9, pour le paramètre Bounciness. Cela permet aux sphères de rebondir fortement, avec des collisions presque parfaitement élastiques.
Dans la section Dynamics, vous trouverez d’autres paramètres liés au Damping, qui contrôle la perte de vitesse ou de moment angulaire au fil du temps. Nous reviendrons sur ces paramètres plus tard lorsque nous effectuerons des tests avec toutes les sphères.
Avant de continuer, enregistrons la scène dans un nouveau fichier.
Pendant tout le tutoriel, je vous conseillerai d’enregistrer le projet avant d’appuyer sur Play ou de lancer un Bake, car Blender a planté plusieurs fois avec cette simulation lorsque j’ai lancé la lecture sans enregistrer les modifications auparavant.
Si nous lançons l’animation à ce stade, la sphère tombera dans le vide.
C’est effectivement le comportement correct, car nous n’avons pas encore créé de contrainte Hinge pour relier la sphère au cube ajouté précédemment.
Avant cela, nous devons cependant effectuer une autre modification : déplacer le centre de masse de la sphère directement à l’intérieur de sa géométrie. Cela peut être fait en plaçant le curseur 3D au centre de la sphère avec SHIFT S en Edit Mode, puis en choisissant « Origin to 3D Cursor » avec le bouton droit de la souris en Object Mode.

La sphère et le cube sont maintenant parfaitement alignés verticalement.
Avant le rendu, nous pourrons masquer le cube, mais pour l’instant il est utile de le garder visible. Sélectionnez-le et passons à la création de la contrainte Hinge.
La contrainte Rigid Body doit être ajoutée, comme le composant Rigid Body, dans l’onglet Physics de l’éditeur Properties.
La première chose à faire est de changer le type de contrainte de Fixed à Hinge.

Dans la section Objects, vous trouverez deux champs permettant de spécifier deux objets de la scène. La contrainte fonctionne en reliant l’objet nommé Second, qui sera mobile, à l’objet nommé First, qui restera fixe.
Dans notre cas, nous pouvons définir le Cube comme First et la sphère comme Second.

Nous n’avons pas encore terminé, car avec la contrainte Hinge, la rotation se fait autour de l’axe local Z de l’objet Rigid Body passif.
En pratique, Hinge est similaire à la contrainte Point mais limite le mouvement de rotation à cet axe. Comme, dans ce projet, la rotation doit se produire autour de l’axe global X de la scène, qui correspond actuellement à l’axe local X du cube, nous devons faire pivoter le cube de 90 degrés autour de l’axe Y. Pour afficher les axes locaux, j’ai changé le Transform Orientation de la vue 3D sur Local.

Effectuons cette rotation avec R Y 90.
En enregistrant le projet puis en lançant la simulation maintenant… rien ne se passera !
Le centre de masse de la sphère est correctement placé à l’intérieur, mais la sphère et la contrainte sont parfaitement alignées verticalement, en équilibre.
Nous devons donc donner une rotation initiale à la sphère, puis la physique se chargera du reste.
Maintenant que l’Origin de la sphère se trouve à l’intérieur, il serait utile de pouvoir faire pivoter la sphère et ses supports autour du point où se trouve le cube.
Pour cette raison, j’ajoute un objet Empty à la scène et je le renomme immédiatement en ROTATION. Je sélectionne ensuite la sphère puis l’Empty ROTATION dans cet ordre avec une multi-sélection. Enfin, j’appuie sur CTRL P pour créer la relation parent-enfant, la sphère devenant enfant de l’Empty ROTATION.

De cette manière, nous pouvons donner la rotation initiale à la première sphère en faisant pivoter l’Empty de contrôle. Enregistrez maintenant le projet puis lancez la simulation. Cette fois, la sphère se déplacera exactement comme souhaité !

La création des autres sphères est en réalité assez simple, car nous pouvons procéder avec des copies de la première sphère et du cube contenant la contrainte Rigid Body.
Remettons l’Empty ROTATION en position verticale, sélectionnons à la fois le cube et la sphère avec une multi-sélection, puis créons une première duplication avec déplacement en utilisant SHIFT D Y et le mouvement de la souris, afin de placer la deuxième sphère juste à côté de la première.

J’ai spécifié SHIFT D Y, avec la contrainte de déplacement le long de l’axe Y, afin d’effectuer le déplacement de la copie en même temps que la duplication. En d’autres termes, Blender considère ces deux opérations comme une seule opération.
Cela nous permet de créer les autres copies, déjà parfaitement positionnées, en appuyant sur SHIFT R, qui est le raccourci pour répéter la dernière opération.
Si nous avons correctement positionné les copies, en enregistrant le projet puis en lançant la simulation, les sphères resteront parfaitement immobiles à leur place.
Cela indique que le simulateur Rigid Body ne détecte pas de fausses collisions entre les objets.
Le seul inconvénient est que toutes les copies seront parentées à l’Empty ROTATION, qui fournit l’orientation initiale de la première sphère.
Nous pouvons toutefois résoudre rapidement ce problème en sélectionnant toutes les copies, en les détachant de l’Empty avec le raccourci ALT P, puis en choisissant « Clear Parent and Keep Transformation ».

Faites pivoter l’Empty qui contrôle la première sphère, enregistrez le projet et lancez la simulation afin d’examiner le résultat obtenu.
Si le résultat est satisfaisant, l’étape suivante consiste à masquer les cubes contenant les contraintes Rigid Body aussi bien dans la scène que dans le rendu final afin de procéder au rendu.
Si les sphères centrales bougent trop, essayez de les repositionner de manière à ce qu’elles soient plus proches les unes des autres dans la configuration initiale. N’oubliez pas de déplacer les sphères en même temps que les cubes contenant les contraintes, sinon les sphères démarreront avec leur propre rotation initiale !
Pour accélérer la simulation ou rendre les oscillations des sphères plus importantes, nous pouvons ajuster quelques paramètres. Pour modifier un paramètre sur toutes les sphères sélectionnées en une seule fois, maintenez la touche ALT enfoncée tout en cliquant avec la souris sur le paramètre à modifier.
Concernant les sphères, je suggère d’augmenter la valeur de Bounciness et de réduire fortement les deux valeurs de Damping, aussi bien pour les mouvements linéaires que pour les rotations dans la section Dynamics de l’onglet Rigid Body.

Je déconseille toutefois de diminuer la valeur de Friction, car cela pourrait générer des mouvements indésirables sur les sphères censées rester immobiles.

Dans l’onglet Scene de l’éditeur Properties, vous trouverez le paramètre Speed, qui permet d’accélérer l’ensemble de la simulation physique.
Dans le même onglet, vous trouverez également les paramètres Substeps et Solver Iterations.
Je recommande de les augmenter uniquement si vous remarquez des erreurs dans la simulation physique.
Ces paramètres demandent à Blender d’effectuer davantage de calculs, ce qui produit une simulation plus précise, mais au prix d’un temps de calcul plus long.
Voilà, c’est tout ! J’espère que ce tutoriel vous a plu ! À bientôt !