vendredi 26 août 2011

Transformations aléatoires d'un array d'objets préalablement séparés

Bonsoir.

Si je veux disposer aléatoirement les clones d'un même objet dans ma scène, je fais comment ?

En regardant sur divers forums, divers sites (notamment le blog de Blender Sushi) et en consultant quelques vidéos, je crois avoir compris comment on doit s'y prendre, et je me propose de résumer cette méthode (conseillée un peu partout) ci-dessous pour ne pas l'oublier. C'est parti !

D'une scène neuve avec mon cube central (control+n), j'applique un Array Modifier à mon cube en mode OBJECT :

Cliquez sur l'image pour l'agrandir


On va faire pour l'exemple un Array de 6 cubes, avec un écart suivant les X de 1.1.

A ce stade, nous sommes en face d'un seul et même objet, car lorsque nous déplaçons le cube originel, tous les autres cubes le suivent. Maintenant, cliquons sur Apply pour appliquer l'Array Modifier : que constatons-nous ? C'est toujours le même et unique objet, toujours nommé "cube" dans le Outliner (cadre en haut à droite).

Pour séparer chaque duplication de l'objet "cube" originel, il faut se mettre en mode EDIT, tout sélectionner avec A, et faire ensuite P, en choisissant l'option By loose parts :


Alors, par miracle, on arrive à une situation où chaque objet est séparé, avec son propre nom (voir dans le Outliner), et Blender se retrouve avec un seul cube sélectionné sur les 6 cubes au total, comme vous pouvez le voir ci-dessous :


La commande a donc bien marché, tout est bien séparé comme on le désirait.

Néanmoins, si maintenant nous revenons en mode OBJECT, nous constatons que l'origine de chaque cube séparé est restée à la même place que l'origine du cube initial utilisé pour dupliquer via le Array. Nous ne pouvons pas rester ainsi, car si nous voulons faire des transformations aléatoires, il vaut mieux que chaque cube ait son point de position au même endroit que son centre géométrique.

Pour changer d'un seul coup toutes les origines géométriques de nos cubes, faisons ceci : en mode OBJECT, nous sélectionnons tous les cubes ensemble (avec SHIFT enfoncé), puis nous faisons la combinaison de touches suivante : Control+Shift+Alt+C et nous sélectionnons le choix Origin to geometry :


Ce qui nous mène enfin à ceci :


Maintenant, quand on sélectionne un des cubes séparément, on voit bien que son point d'ancrage correspond bien à son centre géométrique. Ouf !

Transformation aléatoire :

Maintenant, pour disposer aléatoirement les 6 cubes, il n'y a rien de plus simple. Vous re-sélectionnez l'ensemble des 6 cubes (avec SHIFT enfoncé), et vous activez le menu Randomize Transform :


Il apparait alors un menu spécial sur le panneau Tools à gauche, qui vous permet de jouer avec les paramètres de la Randomisation. Ils sont assez intuitifs, on peut faire pas mal de choses avec ça :


Faisons un essai de positionnement aléatoire. Si dans la section location, nous mettons par exemple Y:5.00, que constatons-nous ? Que Blender va chercher une position aléatoire sur l'axe des Y qui s'étend de -5.00 à 5.00. Voici un screenshot du dessus (en ortho) qui montre cela :


Ci-dessous, un exemple avec 1000 cubes, placés initialement avec 3 Array (un vers les X, un vers les Y et un vers les Z). Imaginez le travail que cela vous aurait demandé de faire ce genre de positionnement aléatoire à la main ! Voilà pour aujourd'hui, à la prochaine, cher lecteur.

Cliquez sur l'image pour la voir en grand

1 commentaire:

  1. Simple, mais interessant !
    Il existe aussi un addon "Randomizer" qui te permet les memes choses, avec un peu plus de controle.
    Merci pour le partage !

    RépondreSupprimer