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. Sequelles

    Sequelles Modérateur
    Modérateur So
    Appréciations:
    +2 / 13 / -0

    Points Repaire:
    11 780
    Recos reçues:
    20
    Messages:
    4 261
    pas évident le "seed_random"...
    J'ai pas encore bien compris comment avoir une nouvelle valeur à intervalle régulier
     
  2. oscarus

    Appréciations:
    +0 / 0 / -0

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    477
    seed_random(n,1);//n étant un nombre quelconque
    random(min,max)

    donne une valeur aléatoire constante prise entre min et max. Cette valeur change si on change la valeur de n. Donc, en faisant varier la valeur de n à intervalle régulier, on obtient une nouvelle valeur à chaque intervalle.
    Le rôle du filtre "Paramètre glissière" est justement de faire varier la valeur de n toutes les 3 secondes.
     
  3. Sequelles

    Sequelles Modérateur
    Modérateur So
    Appréciations:
    +2 / 13 / -0

    Points Repaire:
    11 780
    Recos reçues:
    20
    Messages:
    4 261
    Excellent!
    très astucieux.

    Et le missile?
    le fait d'utiliser la vitesse initiale complique bien les choses...
     
  4. oscarus

    Appréciations:
    +0 / 0 / -0

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    477
    Dans la propriété position du calque "missile bleu":

    t=0
    vel=position.velocity_at_time(t)
    A=position.value_at_time(t)
    while(time>t) {
    t=t+this_comp.frame_duration
    A=A+vel*this_comp.frame_duration
    B=this_comp.layer("objectif").position.value_at_time(t)
    track=B-A
    vel=vel/1.5+normalize(track)*(length(position.velocity_at_time(0))+time*10)
    }
    A
     
  5. Sequelles

    Sequelles Modérateur
    Modérateur So
    Appréciations:
    +2 / 13 / -0

    Points Repaire:
    11 780
    Recos reçues:
    20
    Messages:
    4 261
  6. oscarus

    Appréciations:
    +0 / 0 / -0

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    477
    comme ceci ?
     

    Fichiers attachés:

    • robot.zip
      robot.zip
      Taille de fichier:
      14.2 KB
      Nb. vues:
      231
  7. oscarus

    Appréciations:
    +0 / 0 / -0

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    477
    Cette proposition est nettement meilleure que celle que j'ai proposé ci-dessus, car cette fois, le petit robot a ses rotules parfaitement soudé et ça marche nickel.
     

    Fichiers attachés:

    • robot.zip
      robot.zip
      Taille de fichier:
      13.9 KB
      Nb. vues:
      258
  8. Julien W.

    Appréciations:
    +0 / 0 / -0

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    1 499
    Vraiment impressionant.
     
  9. Sequelles

    Sequelles Modérateur
    Modérateur So
    Appréciations:
    +2 / 13 / -0

    Points Repaire:
    11 780
    Recos reçues:
    20
    Messages:
    4 261
    Encore bravo oscarus pour ta réactivité!

    On peut se passer des calques rotules en mettant les expresssions dans les claques bras.

    J'ai pas utilisé Pythagore mais l'arc cosinus:
     

    Fichiers attachés:

    • abc.zip
      abc.zip
      Taille de fichier:
      3.6 KB
      Nb. vues:
      214
  10. Julien W.

    Appréciations:
    +0 / 0 / -0

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    1 499
    Salut Sequelles. Aurais-tu le temps de m'expliquer ces quelques lignes?

    Code:
    thisComp.layer("A").position+clamp(AB,Vec_min,Vec_max)
    et
    Code:
    cos=length(AB)/2/thisLayer.width;
    rotation+radiansToDegrees(Math.atan2(AB[1],AB[0])+Math.acos(Math.min(cos,1)))
    Merci d'avance.
     
  11. Sequelles

    Sequelles Modérateur
    Modérateur So
    Appréciations:
    +2 / 13 / -0

    Points Repaire:
    11 780
    Recos reçues:
    20
    Messages:
    4 261
    Je commence par clamp.

    Ce que dit la doc en ligne(F1)

    Ca permet donc de contraindre un paramètre entre deux valeurs limites.

    Clamp(value, limit1, limit2)
    Reverra donc value, borné par les limites: limit1 et limit2. Le paramètre évolue dans ces limites sans jamais pouvoir les dépasser: ça le bloque.

    Ca marche sur des nombres ou des ensembles (un vecteur dans l'espace 3D dans mon cas)

    Pour les ensembles sa limite les valeurs: nombre par nombre en fonction de leur rang. Pour un vecteur xyz, ça limite le x dans les limites du x de limit1 et limit2, puis ça limite le y dans les limites du y de limit1 et limit2 etc.

    Dans mon cas les 3 vecteurs: AB, Vec_min et Vec_max ont la même direction ça me permet donc finalement de limiter la longueur du vecteur entre deux valeurs.
     
  12. Julien W.

    Appréciations:
    +0 / 0 / -0

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    1 499
    Je crois avoir compris, merci.
     
  13. Sequelles

    Sequelles Modérateur
    Modérateur So
    Appréciations:
    +2 / 13 / -0

    Points Repaire:
    11 780
    Recos reçues:
    20
    Messages:
    4 261
    pour la deuxième partie faut faire un peu de trigo:
     

    Fichiers attachés:

    • no.gif
      no.gif
      Taille de fichier:
      2.3 KB
      Nb. vues:
      363
  14. Julien W.

    Appréciations:
    +0 / 0 / -0

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    1 499
    C'est bon, j'ai tout compris, merci. Je cherchais plus compliqué en fait...
     
  15. Sequelles

    Sequelles Modérateur
    Modérateur So
    Appréciations:
    +2 / 13 / -0

    Points Repaire:
    11 780
    Recos reçues:
    20
    Messages:
    4 261
    bon ok j'arrête là alors.
     
Chargement...

Partager cette page