Aide pour After Effect, techniques, expressions.

vendredi 20 mars 2009

c'est pas compliqué pourtant...

une autre petite parenthèse, voilà une petite animation qu'à présent vous savez tous faire :












Allez, au boulot.
Juste un petit truc qu'on n'a pas encore vu (je crois)

calque.propriété.speed

Je vous laisse chercher.

Allez hop, une petite variante.

9 commentaires:

  1. Je me garde ça au frais pour les vacances d'été :)

    RépondreSupprimer
  2. C'est super loin l'été quand même là...

    RépondreSupprimer
  3. Arg... je sèche complet sur le "speed"... snif
    Avec l'aide Adobe, Niet : Renvoie une valeur de vitesse (1D et positive) égale à la vitesse à laquelle la propriété change à l’instant par défaut. Cet élément ne peut être utilisé que pour les propriétés spatiales.
    Et qu'est ce que c'est qu'un "instant par défaut" tiens ?
    Rien de très utile sur les forums AE concernant le "speed".

    Si je comprends bien il faut récupérer le "speed" soit sur les 2 calques qui servent à tracer le vecteur :
    aSpeed = thisComp.layer("A.plafond").transform.position.speed;
    bSpeed = thisComp.layer("B.sol").transform.position.speed;

    soit sur le calque de la particule elle-même :
    S = thisLayer.transform.position.speed;

    Mais comment coupler ce "speed" avec notre "random" qui retarde les particules ?
    Un petit indice serait le bien venu s'il vous plait Monsieur le freelance saucisse, car je vous tiens quelque peu responsable du désarroi dans lequel je me trouve !
    Merci.
    Vincent2


    _____________________________
    a = thisComp.layer("A.plafond").transform.position;
    b = thisComp.layer("B.sol").transform.position;
    plafond = thisComp.layer("A.plafond").index;
    nombre = thisComp.layer("B.sol").index -plafond -1;
    max = thisComp.frameDuration*thisComp.layer("control").effect("max")("Curseur");
    min = thisComp.frameDuration*thisComp.layer("control").effect("min")("Curseur");

    aSpeed = thisComp.layer("A.plafond").transform.position.speed;
    S = transform.position.speed;
    //S = (aSpeed+bSpeed)/2
    //
    seedRandom(index, true);
    R = random(min, max);
    V = sub(b, a);
    I = index-plafond;
    increment = linear(I, 0, nombre+1, 0, 1);
    a.valueAtTime(time -R-S) +V *increment;

    RépondreSupprimer
  4. le code ci dessus est plein d'erreur,
    voilà ce que j'ai pour le moment qui fonctionne.
    __________________
    a = thisComp.layer("A.plafond").transform.position;
    b = thisComp.layer("B.sol").transform.position;
    plafond = thisComp.layer("A.plafond").index;
    nombre = thisComp.layer("B.sol").index -plafond -1;
    max = thisComp.frameDuration*thisComp.layer("control").effect("max")("Curseur");
    min = thisComp.frameDuration*thisComp.layer("control").effect("min")("Curseur");

    seedRandom(index, true);
    R = random(min, max);
    V = sub(b, a);
    I = index-plafond;
    increment = linear(I, 0, nombre+1, 0, 1);
    a.valueAtTime(time -R) +V *increment;

    RépondreSupprimer
  5. Le speed renvoie la valeur de vitesse d'une propriété.
    position.speed donnera une vitesse en pixel/seconde par exemple.
    Dans mon exemple, le speed est utilisé pour gérer la couleur du calque, et rien d'autre. Donc ça n'est pas lié au fait que le retard soit du à un random ou autre chose.
    En gros, dans la couleur, on va par exemple faire varier la couche rouge ainsi :
    R=linear(speed,50,100,0,1);
    [R,V,B,A]
    Si la vitesse est inférieure à 50, rouge=0. Si la vitesse est supérieure à 100, rouge=1.

    Est-ce clair ?

    RépondreSupprimer
  6. Oui, ton code d'en bas fonctionne.
    En ce qui concerne le 2ème exemple, la solution se trouve dans l'article "sélecteur graphique".

    RépondreSupprimer
  7. Merci pour les explications, claires comme d'habitude.
    Je n'ai toujours pas trouvé une réponse satisfaisante. Le "random" ne rend pas le même effet que sur votre premier gif car les petits cercles intermédiaires ne rattrape pas leur retard. Je continue d'avancer vos tutos et, de temps à autre, je reviens m’énerver sur celui-ci !... Bref, si je désespère je viendrai déposer une plainte ici même !
    Encore merci.
    Bon week-end.
    Vincent2

    RépondreSupprimer
  8. Il n'y a rien de bien compliqué au final, le random ne fait qu'attribuer une valeur aléatoire de retard entre le min et le max. Pour qu'ils rattrapent leur retard (ce qui n'est en fait jamais le cas), il faut que les 2 extrémités s’arrêtent de temps en temps. Ainsi, tu auras l'impression qu'ils reviennent à leur position initiale.

    RépondreSupprimer