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
Rejeter la notice

Nouvelle Formation Prise de son : les inscriptions sont ouvertes !
Maîtrisez la qualité de vos prises de son avec notre formation théorique et pratique de 3 jours ! Du 14 au 16 mai 2024 à Paris.

Disparition progressive layer à un temps donné

Discussion dans 'Adobe After Effects' créé par paulmulti, 22 Octobre 2019.

  1. paulmulti

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    51
    Appréciations:
    +0 / 1 / -0
    Bonsoir à tous, je suis nouveau sur le forum et j'écris ce soir car je suis dans une vraie impasse.

    Voilà, je cherche à créer sur After Effects une animation d'une page Facebook et je m'attarde en ce moment sur la fenêtre de discussion.
    Pour comprendre mon problème, si ceux qui veulent m'aider peuvent aller sur Facebook pour voir de quoi il s'agit :)

    Lorsque l'on scrolle dans la fameuse fenêtre, une barre de défilement apparait sur le côté droit. Lorsque l'on arrête et que le défilement s'immobilise, la barre disparait progressivement.

    Je souhaite donc reproduire cette animation.
    En réalité, la reproduire n'est pas le problème, je souhaite la faire de façon intelligente grâce aux expressions ou scripts.
    J'aimerais que lorsqu'on change la position (en Y) de cette barre, elle apparaisse et lorsqu'on arrête, elle disparaisse progressivement.

    À l'aide d'une expression comme :
    "curseur = thisComp.layer('Nul 2').effect('Paramètre glissière')('Curseur'); //j'ai relié la position Y de la barre à un paramètre glissière de Nul 2.
    if(curseur.valueAtTime(time-0.3) != curseur.valueAtTime(time)){
    100;
    }
    else{
    0;
    }";
    la première étape marche.

    Par contre pour que lorsqu'on arrête de bouger, la barre disparaisse progressivement, impossible d'y arriver :/

    J'ai essayé de mettre dans le else "setValueAtTime(time,100); setValueAtTime(time+1,0);" mais cette fonction ne marche que dans les scripts.

    J'ai voulu faire un script mais le time de la composition n'est évalué que lors de l'appel du script.

    J'ai essayé plein d'autre moyen mais rien ne fonctionne...

    Voilà si j'ai oublié de préciser des choses demandez-moi !
    Je remercie tous ceux qui m'ont lu de l'avoir fait.

    Très bonne soirée à tous ! :D
     
  2. Julienschi

    Points Repaire:
    1 170
    Recos reçues:
    5
    Messages:
    41
    Appréciations:
    +3 / 15 / -0
    En supposant que tu mettes quatre keyframes sur ton curseur (sur le nul) qui déplace ta barre, avec deux codes tu peux y arriver, en utilisant la fonction speed pour faire comprendre à after le moment où ta barre s'arrête :

    1 - crée un paramètre glissière sur ta barre (il va te permettre de pointer les temps des keyframes, et donc de gérer ta disparition dans le temps), sur lui :

    X = thisComp.layer("Nul 1").effect("Paramètre glissière")("Curseur");
    A=X.key(2).time;
    B=X.key(3).time;
    C=X.key(4).time;

    if (time<B) {A} else {C}

    2 - sur l'opacité de ta barre :

    C=thisComp.layer("Nul 1").effect("Paramètre glissière")("Curseur");
    S=C.speed;
    T=effect("Paramètre glissière")("Curseur");

    if (C.valueAtTime(time-2)==C.valueAtTime(time)) {0} else {

    if (S>0) {100} else {easeOut(time,T+1,T+2,100,0)}
    }

    ce qui te donne une barre qui disparaît une seconde après s'être arrêtée, avec un fondu d'une seconde.
     
    • Merci Merci x 1
  3. Julienschi

    Points Repaire:
    1 170
    Recos reçues:
    5
    Messages:
    41
    Appréciations:
    +3 / 15 / -0
    et si tu veux plus mettre de keyframes, ça ne change que le premier code, qui certes ne devient pas très élégant, mais qui n'a rien d'impossible, par ex. avec 6 keyframes :

    X = thisComp.layer("Nul 1").effect("Paramètre glissière")("Curseur");
    A=X.key(2).time;
    B=X.key(3).time;
    C=X.key(4).time;
    D=X.key(5).time;
    E=X.key(6).time;

    if (time<D) {if (time<B) {A} else {C}} else {E}
     
    • Merci Merci x 1
  4. paulmulti

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    51
    Appréciations:
    +0 / 1 / -0
    Merci beaucoup,

    D'ici la fin de semaine je me replonge dedans, teste tes recommandation et te tiens au courant !

    Encore merci :D
     
Chargement...

Partager cette page

Dernières Occasions

 
Vous souhaitez annoncer sur le Repaire ? Contactez-nous