Méthode aléatoire : wiggle
Il existe deux principales méthodes pour obtenir de l'aléatoire dans nos animations:
la méthode "wiggle" que nous traiterons dans cette partie et la méthode "random" qui fera l'objet de la partie suivante.
Nous avions rapidement évoqué au début de notre apprentissage la méthode wiggle avec une instruction du type:
wiggle(2,50);
La méthode wiggle agit comme un tremblement de la valeur de la propriété, un tremblement autour de sa valeur initiale.
L'expression précédente appliquée sur l'opacité, qui serait de 50 initialement, ferait varier cette opacité entre 0 et 100 avec une fréquence de 2 tremblements par secondes.
Plus la fréquence sera grande, plus le tremblement sera rapide. Le deuxième argument désigne l'amplitude du tremblement.
Voyons un petit exemple pour se fixer les idées. Nous avons créé un solide sur lequel nous avons appliqué successivement
l'expression précédente "wiggle(2,50)" sur les différentes propriétés du calque (pour l'opacité nous avons mis
une valeur initiale de 50 pour avoir un effet en permanence visible):
Amusons nous maintenant à reproduire un petit barre-graphe au comportement aléatoire. Nous commençons par créer un solide qui fera office d'une seule barre. Pour cet exemple nous travaillons sur
une composition de taille 320*150 et un solide de taille 3*80.
Ecrivons l'expression suivante dans la propriété de position du calque, cette expression va nous permettre en dupliquant le calque de faire apparaître les nouveaux calques décalés
de quelques pixels à chaque duplication, ceci pour former notre barre-graphe.
dec = 10; // décalage entre deux barres, en pixel
position + [(index - 1)*dec,0];
Ainsi lorsque l'index du calque va augmenter, sa position sur l'axe horizontal (première composante) va également augmenter (d'une quantité
de "dec" pixels vers la droite). Nous mettons "index-1" pour ne pas décaler le premier calque, et nous le positionnons "à la main" sans que sa position soit affectée par l'expression (rappelons que l'index du premier calque est "1").
Nous ajoutons une deuxième expression mais cette fois sur la propriété d'échelle du calque, nous voulons que nos barres augmentent puis diminuent leur taille verticale. On utilise une expression wiggle pour le réaliser.
ampl = 70; // amplitude en pixel
freq = 5; // nb de tremblements par seconde
[100,wiggle(freq,ampl)[1]];
La méthode wiggle retourne une valeur qui est de même dimension que celle de la propriété à laquelle on applique le wiggle. Ici, le wiggle nous retourne un vecteur de dimension 2
(puisque la position est de dimension 2). Or dans notre exemple nous souhaitons n'avoir qu'un tremblement vertical de nos barres,
c'est pour cela que la première composante reste fixe (la largeur des barres ne variera pas) et que nous récupérons uniquement la valeur du tremblement vertical "wiggle(..)[1]".
Et pour finir nous ajoutons une expression similaire sur l'opacité pour donner un côté plus vivant à notre animation (nous mettons aussi l'opacité initiale à 50%).
A la différence que maintenant nous l'appliquons à un vecteur de dimension 1 (l'opacité), le wiggle nous retournera donc une valeur de dimension 1, c'est ce qu'il nous faut.
op = 50; // amplitude opacité
freq = 5; // nb de tremblements par seconde
wiggle(freq,op);
Positionnons notre calque en bordure gauche de la composition et dupliquons le autant de fois que nous le souhaitons. Lançons une prévisualisation, nous avons notre barre-graphe aléatoire.
Remarque
Comme nous l'avions noté sur notre exemple d'illusion dans lequel la duplication avait également été utilisée,
il n'est pas pratique de modifier nos paramètres pour créer immédiatement une nouvelle animation. Nous devons supprimer nos barres, changer les paramètres et dupliquer à nouveau pour visualiser.
Nous verrons donc dans la dernière partie comment gérer nos animations même une fois que tous les calques sont en place. On aurait pu par exemple ici modifier la fréquence, l'amplitude, le décalage, etc,
sans avoir à modifier nos expressions ni à effacer les calques, ces derniers se seraient adaptés automatiquement aux nouveaux paramètres.
|