module inscription newsletter haut de page forum mobile

Rejeter la 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 dans 'Adobe After Effects' créé par Café Serré, 12 Décembre 2013.

  1. Café Serré

    Points Repaire:
    550
    Recos reçues:
    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

    Points Repaire:
    3 170
    Recos reçues:
    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;
     
Chargement...

Partager cette page

Vous souhaitez annoncer sur le Repaire ? Contactez-nous