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.

[Résolu] Expression défilement infini modulo

Discussion dans 'Adobe After Effects' créé par Baptiste12, 9 Avril 2017.

  1. Baptiste12

    Points Repaire:
    100
    Recos reçues:
    0
    Messages:
    6
    Appréciations:
    +0 / 0 / -0
    Bonjour à tous, je souhaiterais savoir on pouvais m'éclairer sur un point : Sur After Effect, je souhaiterais faire défiler une composition de droite vers la gauche de façon régulière et à l'infini selon le temps. Je me suis renseigné sur la toile et j'ai trouvé une expression avec la syntaxe suivante :

    x = largeur de la composition - (Time * facteur % largeur de la composition);
    y = position[0];
    [x,y];


    L'expression marche très bien mais j'aimerais contrôler le facteur afin de pouvoir ralentir ou accélérer la vitesse du défilement de la composition en plaçant des clés. J'ai donc lié la variable facteur à la position en x d'un calque nul. Et j'ai placé des clés plus ou moins élevées en x sur la position de ce calque.

    Et malheureusement, ça ne marche pas... enfin ça fait un rendu très bizarre...l'objet recule parfois au lieu d'avancer...

    Alors voici ma question : Auriez-vous une astuce pour avoir l'effet tant désiré ou sinon sauriez-vous où ça bloque dans mon raisonnement ? Merci à vous...
     
  2. nestaphe

    So

    Points Repaire:
    13 225
    Recos reçues:
    216
    Messages:
    1 764
    Appréciations:
    +169 / 1 207 / -2
    Pour cela, il faut utiliser l'effet "paramètre glissière" (c'est précisément à cela qu'il sert, tu le trouveras dans effets > "options pour expressions"). Ensuite tu dois lier ton facteur avec le lasso (la spirale) et mettre les points clés dont tu as besoin au paramètre glissière qui animera le facteur. Si tu as besoin d'animer plusieurs paramètres d'une expression, alors tu appelles plusieurs effets "paramètre glissière", tu les renommes pour t'y retrouver (genre "facteur", "boulangère", "policier" ;-)) et tu fais les liaisons multiples selon tes besoins.
     
    • J'aime J'aime x 1
  3. Baptiste12

    Points Repaire:
    100
    Recos reçues:
    0
    Messages:
    6
    Appréciations:
    +0 / 0 / -0
    Je viens de faire ce que tu m'as dis mais le problème c'est qu'on voit ma composition reculer avant de reprendre dans le bon sens à une nouvelle vitesse. Au changement de valeur sur mon parametre glissière, ça me fait aller dans l'autre sens jusqu'à la prochaine keyframe.
    J'ai mis une keyframe sur le paramètre glissière à 400 à 2s et à 200 à 3s.
    La composition avance à une vitesse de 400 pendant deux secondes mais entre la 2 et 3ème seconde, la composition recule et à la troisième seconde elle se remet à avancer à une vitesse moins élevé.
     
    #3 Baptiste12, 9 Avril 2017
    Dernière édition: 9 Avril 2017
  4. beginUndoGroup

    Points Repaire:
    3 170
    Recos reçues:
    6
    Messages:
    142
    Appréciations:
    +4 / 2 / -0
    L'expression x = x0+time*factor n'est pas adaptée à ce que tu veux faire. Il faut "intégrer" la vitesse.
    Si tu parles anglais, le lien ci-dessous pourra t'aider.

    Expression Speed and Frequency Control

    Xavier
     
    • Merci Merci x 1
  5. Baptiste12

    Points Repaire:
    100
    Recos reçues:
    0
    Messages:
    6
    Appréciations:
    +0 / 0 / -0
    J'ai bien lu tout ça et cela semble bien être adapté à mon problème. J'ai insérer l'expression dans la position de mon calque et lié à un facteur, celui-ci semble bien pouvoir géré la vitesse.
    Malheureusement je suis incapable de l'adapter à mon code d'origine car celui de l'article ne prend pas en compte ma fonction modulo :

    Code:
    /* CODE D'ORIGINE */
    facteur=thisComp.layer("Facteur SOL AVANT").effect("Paramètre glissière")("Curseur");
    x=1920 - (time * facteur  % 1920);
    y=position[1];
    [x,y]
    
    /* CODE DU BLOG */
    spd = effect("Slider Control")("Slider");
    n = spd.numKeys;
    if (n > 0 && spd.key(1).time < time){
      accum = spd.key(1).value*(spd.key(1).time - inPoint);
      for (i = 2; i <= n; i++){
        if (spd.key(i).time > time) break;
        k1 = spd.key(i-1);
        k2 = spd.key(i);
        accum += (k1.value + k2.value)*(k2.time - k1.time)/2;
      }
      accum += (spd.value + spd.key(i-1).value)*(time - spd.key(i-1).time)/2;
    }else{
      accum = spd.value*(time - inPoint);
    }
    value + accum
    Sauriez-vous m'aidez ?
    Merci.
     
  6. beginUndoGroup

    Points Repaire:
    3 170
    Recos reçues:
    6
    Messages:
    142
    Appréciations:
    +4 / 2 / -0
    Je suppose que remplacer accum+value à la fin par :

    Code:
    x = 1920 - accum%1920;
    y = position[0];
    [x,y];
    devrait marcher.

    Xavier
     
    • Je recommande ! Je recommande ! x 1
  7. Baptiste12

    Points Repaire:
    100
    Recos reçues:
    0
    Messages:
    6
    Appréciations:
    +0 / 0 / -0
    Ça marche du tonnerre, merci beaucoup ! :)
     
Chargement...
Discussions similaires - Expression défilement infini
  1. Magique-Belette
    Réponses:
    2
    Nb. vues:
    239
  2. djayandka
    Réponses:
    1
    Nb. vues:
    1 022
  3. LucasCh
    Réponses:
    5
    Nb. vues:
    771
  4. koumac
    Réponses:
    27
    Nb. vues:
    1 580
  5. rifton007
    Réponses:
    1
    Nb. vues:
    904

Partager cette page

Dernières Occasions

 
Vous souhaitez annoncer sur le Repaire ? Contactez-nous