Introduction
Dans l'idée, on va adapter la méthode que Antoni Gaudi a utilisé pour dessiner les coupoles de la Sagrada Familia à Barcelone.
Il a réalisé une maquette funiculaire du bâtiment; pour simplifier on va dire qu'il a suspendu des bouts de ficelles lestés par des sacs de sable (qui simulent les charges s'appliquant à la structure), et la forme prise par ces bouts de ficelle donne une fois retournée la forme de la coupole qui resistera le mieux à ces efforts. On peut faire plus simple avec juste un bout de ficelle qui va prendre sous son propre poids la forme d'une chainette. Cette courbe retournée est celle d'un arc idéal du point de vue de la descente de charges. En pratique on peut construire un arc en brique même sans mortier avec cette forme, il tiendra tout seul. On retrouve cette forme d'arc dans de nombreuses cultures constructives, par exemple la voute dite nubienne où un exemple en Iran ci dessous.
Bref, revenons à Blender, qui va nous permettre de simuler tout ça avec des softbodies ou corps mous (ou corps élastiques).
Etape 1 : Une grille et un
vertex group
On va maintenant dire à Blender quelles parties de notre grille vont être fixes, et lesquelles vont pouvoir se déformer. Il faut en effet imaginer que notre grille est maintenant un bout de tissu élastique. On va en fixer deux bords, et laisser le reste pendouiller et on va voir ce qui se passe.
Il faut pour ça aller dans le panneau Editing dans une fenêtre de boutons (raccourcis F9) et sur la partie gauche, on a la partie qui concerne les Vertex Groups. Un Vertex Group ça permet d'assigner une valeur (weight ou poids en français) entre 0 et 1 à chaque point de notre mesh. Ca permet aussi de conserver en mémoire une sélection de points de notre mesh. On peut avoir autant de vertex group que l'on veut. Cela peut avoir plusieurs utilités, mais pour nous, les points qui ont un weight de 0 sont complètement libres et les points à 1 sont fixes.
On va déjà créer un nouveau groupe en cliquant sur New:
On a alors quelques options:
Dans notre cas, on veut que tous les points soient utilisés dans la simulation de corps élastique. On va donc avec tous les points sélectionnés cliquer sur Assign. Si vous n'avez rien touché; Weight doit être à 1 et on a donc en même temps donné un poids de 1 à tous les points. (Si ce n'est pas le cas, on va ensuite sélectionner deux bords de la grille comme sur l'image ci-dessus, on règle le Weight à 1, et on clique sur Assign).
On sélectionne maintenant tous les points sauf les deux bords de l'image ci-dessus, on règle Weight à 0 et on clique sur Assign.
Pour vérifier que ça ce soit bien passé, dans une vue 3D, on clique sur le bouton qui permet de choisir le mode (il doit être sur Edit Mode à priori, ou Object éventuellement), et on choisi le mode Weight Paint, qui affiche les valeurs de poids des points, 1 en rouge et 0 en bleu. On devrait donc avoir cela:
Etape 2 : Tansformer notre grid en softbody
On a alors un beau paquet de réglages possibles. Le plus important pour qu'il se passe quelque chose, c'est de dire à Blender d'utiliser le Vertex Group que l'on a défini en cliquant sur la double fleche à droite de Use Goal et en choisissant le groupe que l'on veut (dans notre cas, il n'y en a qu'un qui s'appelle Group :
Etape 3 : Admirer
C'est très simple, il suffit de place la souris sur une vue 3D et de faire Alt+A pour voir s'animer notre tissu. On arrête l'animation avec la barre d'espace :
Si on veut le voir s'animer dans toutes les vues, on fait Schift+Alt+A (ou Maj+Alt+A pour parler français). On peut aussi voir une image après l'autre en utilisant les flèche droite et gauche du clavier. Si votre animation ne bouge plus après l'image 250, pas d'inquiétude, on va régler ça plus tard.
Etape 4 : Quelques réglages
Ce n'est pas encore très élaboré, mais ça va s'améliorer. Pour cela on va maintenant faire une coupole. On peut garder la voûte dans un coin ou sur un autre calque. Et on recommence mais cette fois en ne fixant que les quatres angles.
On remet une grille de 20 par 20 (Espace/Add/Mesh/Grid). On sélectionne tous les points, on crée un nouveau Vertex Group, on met le weight à 0 et on clique sur Assign, puis on sélectionne les quatre points des coins, on met weight sur 1 et on clique Assign. On va cliquer sur Set Smooth en mode objet dans ce même panneau pour adoucir les facettes. On retourne dans le panneau Object (F7) Physics pour activer le Soft Body, on n'oublie pas de choisir le Group à côté de Use Goal, et on peut relancer l'animation avec Alt+A. On va en profiter pour mettre notre coupole à l'endroit en mettant Grav à -9,8 (si vous avez des vagues souvenirs de physique, la valeur de G sur Terre est de 9,81...)
On peut maintenant faire des
essais en
changeant les valeurs de E Pull et E Push qui règlent
l'élasticité en traction (pull) et en compression (push), on voit ci dessous la
même coupole
à l'image 34 avec trois valeurs de E Push/pull
différentes:
On peut aussi cocher Stiff Quads qui rend les faces carrées (les quads) plus rigides comme si elles avaient des ressorts dans leurs diagonales. Ca donne en général des résultats plus réalistes, moins "chewing-gum" et parfois moins rigolos. On voit ci dessous la même coupole avec E Stiff à 0.2 et pour la bleue des Stiff Quads mais pas pour la rouge, à deux moments différents de l'animation:
Etape 5 : cache et bake (ou ce qui se passe derrière tout ça)
Une fois que le resultat vous plait, vous pouvez calculer le résultat une bonne fois pour toute avec le bouton Bake. Vous ne pouvez alors plus modifier vos paramètres de softbody avant de clicker sur le bouton Free Bake. Ca évite de tout perdre par erreur.
Note: Les fichiers de calcul sont enregistrés sur votre disque dur dans un fichier "blendcache_votreblend" dans le même dossier que votre blend. Ils ne sont plus inclus dans le fichier Blend comme avant, même si vous packez votre fichier. L'intérêt est évident quand vous gardez 10 sauvegardes automatiques de chaque fichier et que chacun faisait 200 megas à cause des softbodies. Une question à cent balles: où sont cachés les fichiers de calcul avant que vous ayez sauvé votre fichier pour la première fois ?
Rien ne vous empeche maintenant de remettre du softbody sur ce mesh. Dans cette image, j'ai figée une voute, j'ai ensuite rendu élastique les parties en bleu pour avoir la voute composée de droite.
Etape 6 : Lachons nous
En haut, il y a le slider Weight pour régler le poids que l'on va peindre, de 0 à 1. En dessous on a des boutons qui permettent de règler directement cette valeur par incréments de 1/4. Encore en dessous le slider Opacity permet de régler l'opacité de la brosse avec les boutons de réglage rapide aussi en dessous. Et enfin en dessous il y a Size pour régler la taille de la brosse. On remarquera que la taille de la brosse est réglée par rapport à la fenêtre 3D. En zoomant on aura donc une brosse plus fine par rapport à l'objet.
Sur la partie droite il y a les modes de peintures habituels, on va rester sur Mix. Spray permet d'avoir une brosse qui applique de plus en plus de couleur si on reste au même endroit. Et enfin Soft permet d'avoir une brosse douce ou dure. Le reste on ne va pas y toucher pour le moment, à part peut-être X-Mirror qui permet de dessiner de manière symétrique. Bon le mieux est d'essayer pour pratiquer, on clique dans la vue 3D là où on veut peindre, pour avoir par exemple:
Conclusion
On va s'arrêter là pour le moment.
Pour ceux qui voudraient des formes qui tiennent vaguement debout (du genre des voutes et coupoles), il faudrait alors prendre le resultat de l'animation une fois les mouvement stabilisés. Il faut parfois rallonger l'animation, ou jouer sur la valeur de Speed du panneau Soft Body pour accélerer le mouvement, ou augmenter l'amortissement EDamp, mais pas trop.
Par exemple, sur l'image suivante on peut voir le même softbody à deux images différentes. Celui de gauche a été figé en plein mouvement, ce n'est pas une forme stable du tout. Celui de droite a été figée après qu'il se soit stabilisé. On devrait donc pouvoir construire cette voute en brique même sans mortier, elle tiendrait debout.
Comme d'habitude, les possibilités sont quasi infinies. Il suffit de tester et d'être curieux. Je me suis amusé à voir comment un bâtiment s'écraserait si il était élastique, suivant qu'il aie des planchers ou soit creux. Ca donne l'image suivante, en animation ici :
Creative Commons SA , Viralata (Matthieu Dupont), juillet 2008