module inscription newsletter haut de page forum mobile

Dismiss Notice

ateliers live resolve avec forest

Ateliers Live Resolve - Formez-vous en ligne tous les mois avec Forest !
Faites rapidement évoluer la qualité de vos étalonnage avec nos ateliers mensuels de 3h.
Toutes les infos

Ateliers et Formations

[Problème] expression décalage

Discussion in 'Adobe After Effects' started by Café Serré, Dec 12, 2013.

  1. Café Serré

    Trophy Points:
    550
    Likes Received:
    0
    Messages:
    16
    Appréciations:
    +0 / 0 / -0
    Bonsoir,
    me voila entrain d'apprendre les expressions d'after depuis une bonne semaine, lorsque je me retrouve soudain face à un dilemme.

    Je m'explique:
    j'ai 2 solides (des cercles), j'en anime un sur sa rotation et je veux que l'autre suive le mouvement avec un décalage.
    Jusque là pas de problème je m'en sort.
    Là où je coince, c'est que je veux que mon deuxième solide s'arrête un peut avant le premier.
    C'est à dire que mes solides se suivent, le second ayant bien quelques secondes de décalage mais il s'arrête au même endroit que le premier, c'est cela que je veux éviter.

    Voici l'expression que j'ai pour le moment, sur la rotation de mon deuxième calque :

    rot= thisComp.layer("rond 1").transform.rotation;
    min= thisComp.frameDuration*thisComp.layer("Nul 1").effect("min")("Curseur");
    max= thisComp.frameDuration*thisComp.layer("Nul 1").effect("max")("Curseur");

    seedRandom (index, true);
    ret= random(min,max);


    rot.valueAtTime (time-(index-1)*ret);

    Quelqu'un a une idée ? :-)
     
  2. beginUndoGroup

    Trophy Points:
    3,170
    Likes Received:
    6
    Messages:
    142
    Appréciations:
    +4 / 2 / -0
    Salut,
    dès que le leader s'arrête, les suiveurs commencent à le rejoindre.
    Il faut que tu recherches ce moment-là dans ton expression.
    Pas moyen d'échapper à une boucle, et si tu ajoutes beaucoup de suiveurs ça peut ralentir le rendu.
    Si c'est le cas, à mon avis il faut repenser ton expression et en trouver une plus simple (pas forcément dans la forme) qui ne dépende pas de valueAtTime().
    Xavier.
    Code:
    seedRandom (index, true);
    
    DT = thisComp.frameDuration;
    ret = DT * random(thisComp.layer("Nul 1").effect("min")("Slider"), thisComp.layer("Nul 1").effect("max")("Slider"));
    
    first = thisComp.layer("rond 1");
    rot = first.transform.rotation;
    
    t = time-(index-first.index)*ret;
    curr = rot.valueAtTime(t);
    t -= DT;
    prev = rot.valueAtTime(t);
    
    while (t>first.inPoint && Math.abs(curr-prev)<0.001) {t-=DT;  curr = prev; prev = rot.valueAtTime(t);};
    
    curr;
     
Loading...

Share This Page

Vous souhaitez annoncer sur le Repaire ? Contactez-nous