Multiplier un objet le long d'une courbe dans Blender
Je veux mettre des cubes sur une courbe de Bézier, comme une sorte de collier de perles. Dans Inkscape, c'est avec l'effet de chemin Motif le long d'un chemin (Pattern Along Path). Dans Blender, avec une dimension en plus, c'est évidemment plus compliqué :
-
Je pars d'un cube et une courbe qui ont leur origine au même point. C'est important parce que Blender va utiliser l'écart entre leurs origines pour calculer l'écart entre le début de la courbe et le premier cube sur la courbe :
-
Je sélectionne le cube et j'ajoute un modificateur
Array
, je règle le nombre de multiples (Count), et l'écartement relatif (Relative Offset). Puis j'ajoute un modificateurCurve
et je choisis la courbe :
-
Si maintenant je veux que la taille des cubes varie le long de la courbe, pour que ça ressemble plus à une colonne vertébrale qu'à un collier de perles, j'ajoute un empty à l'endroit de l'origine du cube (et de la courbe) :
-
Puis je sélectionne les cubes et je vais dans le modificateur Array. Là, je décoche Relative Offset, je coche Object Offset, et je choisis l'empty :
-
Je ne vois encore rien, pour l'instant, mais je vais déplacer l'empty pour faire apparaître les cubes :
-
Ici, j'ai déplacé l'empty sur l'axe des x pour retrouver à peu près ce que j'avais précédemment :
-
Maintenant, je peux redimensionner l'empty sur n'importe quel axe, ou les 3, pour faire varier la taille des cubes :
-
Ici, j'ai ajouté des cubes dans le paramètre Count du modificateur Array :
-
Ici, je réduis la taille de l'empty sur l'axe des z :
-
C'est différent de régler le radius sur un point de la courbe de Bézier en mode Edit, qui taille les cubes :
-
Ici, je tourne l'empty sur l'axe des x pour vriller la chaine de cubes :
-
C'est différent de régler le tilt sur un point de la courbe de Bézier en mode Edit, qui tord les cubes :
-
Si je veux éviter les déformations sur les cubes (visibles sur les deux les plus à gauche), ça se complique :
-
J'ai trouvé cette recette sur Graphics and Programming. Elle est valable pour Blender 2.8 et 2.9, pas pour les versions antérieures. Il faut repartir du début avec un plan à la place du cube :
-
Appliquer au plan les modificateurs Array et Curve, comme pour le cube :
-
Faire du cube un fils du plan Ctrl P
Parent to Object
:
-
Sélectionner seulement le plan et aller dans son onglet de propriétés, section
Instancing
et cocherFaces
puis décocherRender
(et éventuellement Viewport mais ça devient impossible de sélectionner les cubes autrement que par le plan dans l'outliner) :
Note : à ce stade, pour cacher le cube d'origine dans la vue, je ne sais pas comment faire à part le cacher (H). En tout cas, il n'apparaît pas dans le rendu. -
Et si je veux rendre chaque cube indépendant, je sélectionne les cubes et je fais Ctrl A
Make Instaces Real
:
-
Les cubes ont maintenant chacun une existence réelle, une origine propre, sont listés dans l'outliner et peuvent être manipulés indépendamment :
-
Mais si j'en modifie un (Tab), ils changent tous de forme parce qu'ils sont encore des instances du cube d'origine :
-
Si je veux en modifier un seul, je dois le rendre indépendant par le menu
Object
>Relations
>Make Single User
>Object & Data
(ou par F3, chercher "single"). Maintenant, il est totalement indépendant :
-
Enfin, si je veux que les cubes ne tournent pas pour suivre la courbe, apparemment il faut que j'utilise un système de particules. Je repars d'une courbe avec la résolution correspondant au nombre de cubes que je veux - 1, donc ici 4 :
-
Je convertis ma courbe en mesh par clic droit,
Convert to Mesh
et, en mode édition, je vois bien que j'ai 5 points :
-
Je lui ajoute un système de particules avec les paramètres suivants :
- Type : Emitter
- Emission > Number : 5, section Source, Emit From : Vertices, décocher Random Order
- Rotation > Orientation Axis : None
- Render > Render as : Object, Scale : 1, section Object : choisir le cube, section Extra : cocher Unborn
Résultat, après avoir arrangé un peu les points de la courbe en mode édition :