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

Jeu sur les expressions

Discussion dans 'Adobe After Effects' créé par oscarus, 8 Mars 2004.

Tags:
  1. Julien W.

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    1 499
    Appréciations:
    +0 / 0 / -0
    Ok, parfait, merci encore.
     
  2. oscarus

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    477
    Appréciations:
    +0 / 0 / -0
    bien joué Sequelles ;)
     
  3. Sequelles

    Sequelles Modérateur
    Modérateur So

    Points Repaire:
    11 780
    Recos reçues:
    20
    Messages:
    4 261
    Appréciations:
    +2 / 13 / -0
    Il y a pas longtemps je suis tombé par hasard sur l'utilisation de:

    %

    que je ne connaissais pas. :perplexe:
    Ca permet de limiter une valeur par une limite supérieur et de la reboucler à partir de zéro.

    Ca permet d'éviter des boucles,
    plutôt que de faire:
    Code:
    while(a>b){a=a-b}
    on peut faire:
    Code:
    a%b
    Ca peut servir;)
     
  4. oscarus

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    477
    Appréciations:
    +0 / 0 / -0
    En fait a%b, n'est rien d'autre que le reste de la division euclidienne de a par b.
    C'est à dire que a%b pourrait se remplacer par a-Math.floor(a/b)*b.

    D'ailleurs dans l'expression de "le plein d'expressions" tu pouvais remplacer:
    Y=Math.floor(X/(col+1))
    X-=Y*(col+1)

    par:
    Y=Math.floor(X/(col+1))
    X%=(col+1)
     
  5. Sequelles

    Sequelles Modérateur
    Modérateur So

    Points Repaire:
    11 780
    Recos reçues:
    20
    Messages:
    4 261
    Appréciations:
    +2 / 13 / -0
    en effet ça marche nickel

    maintenant j'écris cette expression comme ça:

    Code:
    AB=thisComp.layer("B").position-thisComp.layer("A").position;
    BC=thisComp.layer("C").position-thisComp.layer("B").position;
    L=thisComp.layer("B").index-thisComp.layer("A").index+1;
    X=thisLayer.index-thisComp.layer("A").index;Y=Math.floor(X/L);X%=L;
    H=Math.floor((thisComp.layer("C").index-thisComp.layer("A").index)/L);
    thisComp.layer("A").position+AB*X/(L-1)+BC*Y/H
     
  6. oscarus

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    477
    Appréciations:
    +0 / 0 / -0
    Oui, ou comme ça:

    A= thisComp.layer("A"); B= thisComp.layer("B"); C= thisComp.layer("C");
    AB=B.position-A.position;BC=C.position-B.position;
    L=B.index-A.index+1;
    X=index-A.index;Y=Math.floor(X/L);X%=L;
    H= Math.floor((C.index-A.index)/L);
    A.position+AB*X/(L-1)+BC*Y/H
     
  7. Sequelles

    Sequelles Modérateur
    Modérateur So

    Points Repaire:
    11 780
    Recos reçues:
    20
    Messages:
    4 261
    Appréciations:
    +2 / 13 / -0
    c'est encore mieux, de plus en plus concis

    je savais pas qu'on pouvais affecter des variables aux éléments du projet ou des comp.:bravo:
     
  8. Julien W.

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    1 499
    Appréciations:
    +0 / 0 / -0
    Il me semble qu'il s'agit de ce qu'on appelle également le "modulo" en programmation.
     
  9. Sequelles

    Sequelles Modérateur
    Modérateur So

    Points Repaire:
    11 780
    Recos reçues:
    20
    Messages:
    4 261
    Appréciations:
    +2 / 13 / -0
    autre truc

    je renomme le calque avec des parmètres numériques
    (rouge vert et bleu séparé par des points)

    et ce nom sert à donner la couleur du calque grace à une expression.
     

    Fichiers attachés:

    • no.gif
      no.gif
      Taille de fichier:
      11.3 KB
      Nb. vues:
      510
  10. oscarus

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    477
    Appréciations:
    +0 / 0 / -0
    ou comme ça (on doit juste faire attention de comblé par des zéros, les nombres inférieur à 100. exemple: 12 s'écrit 012):
     

    Fichiers attachés:

    #160 oscarus, 5 Octobre 2004
    Dernière édition: 5 Octobre 2004
  11. oscarus

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    477
    Appréciations:
    +0 / 0 / -0
    En ce moment je n’ais pas trop de temps, donc si -tu as une meilleure solution...
     
  12. Sequelles

    Sequelles Modérateur
    Modérateur So

    Points Repaire:
    11 780
    Recos reçues:
    20
    Messages:
    4 261
    Appréciations:
    +2 / 13 / -0
    halala si t'as plus le temps, avec qui je vais jouer?:(

    voilà la meilleure solution:
     

    Fichiers attachés:

  13. oscarus

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    477
    Appréciations:
    +0 / 0 / -0
    En effet, ta solution est meilleure. Je me doutais bien qu’il y avait là dessous une méthode qui permettait de séparer une chaîne de caractères par lots, en fonction d’un séparateur (dans ton exemple tu as choisi " . ").
     
  14. Sequelles

    Sequelles Modérateur
    Modérateur So

    Points Repaire:
    11 780
    Recos reçues:
    20
    Messages:
    4 261
    Appréciations:
    +2 / 13 / -0
    Oui cette utilisation des chaînes de caractères peux être intéressantes pour optimiser et manipuler les expressions en fonction du nom que l'on redonne aux calques.

    En faisant des conditions sur des parties du nom ou en utilisant directement des valeurs numériques comme je l'ai fait par exemple.
     
    #164 Sequelles, 6 Octobre 2004
    Dernière édition: 6 Octobre 2004
  15. oscarus

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    477
    Appréciations:
    +0 / 0 / -0
Chargement...

Partager cette page