module inscription newsletter haut de page forum mobile

Dismiss 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

Donner un délai à l'exécution d'une expression

Discussion in 'Adobe After Effects' started by t0ma, Sep 8, 2005.

Tags:
  1. t0ma

    Trophy Points:
    550
    Likes Received:
    0
    Messages:
    18
    Appréciations:
    +0 / 0 / -0
    Salut tout le monde, ca fait 2 jours que je me suis mis à after effects et vu que j'arrive pas à trouver de tuto vraiment convaincant sur les expressions (d'ailleurs, en passant, si quelqu'un sait où je peux trouver la liste de toutes les fonctions utilisables dans les expressions avec des explications un peu moins tordues que celle fournies par adobe, je suis preneur :p), je viens vous demander un peu d'aide :p.

    Alors pour commencer, je me suis amusé un peu avec le cubi de nab ce qi m'a permis de comprendre un peu le fonctionnement de la chose et là j'aurai voulu faire rebondir un élément en le déformant. j'ai réussi à le faire se déformer avec les expressions (j'ai réalisé la chute (en ligne droite) de l'élément avec des images clées) mais le pb c'est que mon élément se déforme pendant la chute alors que je voudrais qu'il se déforme à l'atterrissage et pour ca, il faudrait retarder l'exécution de l'expression. J'avais pensé qu'il était possible de faire un truc du style:
    PHP:
    if(time>3)
    {
    ....
    }
    pour que l'expresion ne s'exécute qu'après 3 secondes de film mais after effects n'a pas l'air d'apprécier et me retourne le message d'erreur suivant:

    Erreur, valeur non définie utilisée dans l'expression. Ensemble d'indices hors limites ?
    Erreur dans la ligne 0.

    (là, on peut se demander si adobe a lancé un concours avec microsft où le but est de faire le message le moins explicite possible).

    Voilà, si quelqu'un a une idée pour résoudre mon pb, merci de bien vouloir éclairer ma lanterne (et au passage, si quelqu'un est capable de m'expliquer pourquoi mon if ne fonctionne pas, ca serait cool aussi) :p.


    A plus.
     
  2. nab17connection

    Trophy Points:
    1,900
    Likes Received:
    1
    Messages:
    1,051
    Appréciations:
    +0 / 0 / -0
    salut tOma :) ,

    pour la liste de liens sur les expressions, regarde la FAQ, les liens references y sont inscrits.

    je suis en ce moment même en train de préparer un site entièrement consacré aux expressions (en francais).

    ce site aura pour objectif d'expliquer le fonctionnement des expressions, des bases jusqu'à des choses un peu plus élaborées..

    en attendant, je peux peut-etre t'expliquer pourquoi AE te retourne ce message d'erreur:
    en ajoutant une expression, la valeur de la propriété est maintenant controlee par celle-ci. L expression est évaluée à chaque frame de l animation.

    donc ce qui ne va pas dans ton expression :
    mets toi a la place de la "machine", elle commence a t = 0, au debut de la timeline et évalue ton expression.
    bing ! erreur, elle n'arrive pas a obtenir un résultat, une valeur....car tu precises un comportement pour t > 3s, ok, mais que doit il se passer si t<=3...elle ne va pas te créer une valeur au hasard...

    tu dois donc réércire ton expression de telle sorte qu'en tout temps , AE en évaluant ton expression sera en mesure de produire un résultat...

    par exemple :
    Code:
    if (time <= 3 ) {
                     ...
    }
    if (time >3) {
                  ...
    }
    ce qui se réécrit plus correctement sous la forme:
    Code:
    if (time <= 3 ) {
                     ...
    }
    else {
          ...
    }
    ou de facon équivalente:
    Code:
    if (time > 3 ) {
                    ...
    }
    else {
          ...
    }

    j'espere que cela t'éclaire un peu

    a+ nab :)
     
  3. t0ma

    Trophy Points:
    550
    Likes Received:
    0
    Messages:
    18
    Appréciations:
    +0 / 0 / -0
    Ok, c'est super clair, un simple else et c'est reglé :p. J'pensais que AE allait garder la valeur initiale i aucune ne lui était fournie, maintenant que je sais ca, ca va arranger bien des choses :).
     
  4. nab17connection

    Trophy Points:
    1,900
    Likes Received:
    1
    Messages:
    1,051
    Appréciations:
    +0 / 0 / -0
    salut :)

    oui un simple "else" comme tu dis...j aurais pu te faire une reponse plus concise mais je ne savais ton niveau en terme d'expression ;)

    bon alors maintenant que t as pigé, ca donne quoi pour ton "rebond avec deformation", je suis curieux de voir le résultat car c'est une animation plutot complexe...surtout pour quelqu'un qui a commencé After y a deux jours :bravo:

    as tu une image ? (fixe ou animée, animée c est mieux :) )

    et de quelle expression parles tu pour effectuer la deformation de ton élément (quel est cet element d ailleurs, un cube ? j ai pas bien saisi)
     
  5. t0ma

    Trophy Points:
    550
    Likes Received:
    0
    Messages:
    18
    Appréciations:
    +0 / 0 / -0
    Heu ba pour la déformation, j'ai récupéré une expression toute faite (mais non je suis pas un gros fainéant :D) et il ne s'agit pas d'un rebond avec deformation mais simplement d'une déformation (une fois que l'objet en chute touche le sol, il se déforme mais ne rebondit pas (la déformation se fait avec des sin en fonction du temps sur l'échelle attribuée à l'objet (scale))).
    Pour ce qui est du résultat, on voit bien ce que c'est censé donner mais je suis pas vraiment satisfait de la facon dont l'objet se déforme (j'sens qu'il va falloir que je m'amuse avec les équations, et on peut pas dire que les maths soient ma tasse de thé :().
     
  6. nab17connection

    Trophy Points:
    1,900
    Likes Received:
    1
    Messages:
    1,051
    Appréciations:
    +0 / 0 / -0
    ah d accord :)

    note également que tu peux appliquer des expressions aux propriétés d'un effet....pas uniquement sur les propriétés du calque lui-même
     
  7. t0ma

    Trophy Points:
    550
    Likes Received:
    0
    Messages:
    18
    Appréciations:
    +0 / 0 / -0
    nab -> Oui j'avais vu ca dans le post sur le "jeu" des expressions (mai merci qd meme).



    Après quelques tests d'expressions, voilà quelques questions que je me pose, si quequ'un peut y répondre (ca devrait pas être trop dur), merci d'avance :p.

    1) Est-il possible d'initialiser une variable et de conserver son contenu jusqu'à la prochaine évaluation de l'expression (ou plus tard) ?

    2) Si une expression est évaluée à chaque nouvelle image, pourquoi cette expression mise dans le champ position ne fait pas changer la position de l'objet à chaque image mais seulement à la première image: position+=200; ?

    3) Dans la continuité de la question 2, pourquoi est-ce que cette expression provoque un déplacement constant alors qu'il devrait augmenter de facon linéaire étant donné qu'il dépend du temps écoulé: position+=200*time;

    Je pourrais continuer avec des questions comme ca pdt un bout de temps mais je pense que si je me pose ces questions, c'est parce que j'ai pas compris un principe de base des expressions dans after effects donc avant de vou embeter avec d'autres questions, je vais vous laisser répondre à celles là, ca réglera peut être tous mes pb :p.


    A plus.
     
  8. nab17connection

    Trophy Points:
    1,900
    Likes Received:
    1
    Messages:
    1,051
    Appréciations:
    +0 / 0 / -0
    salut tOma,

    tes questions sont légitimes..

    tentons d y repondre:

    1)oui et non ca depend de quoi on parle..s'il s'agit d'un simple parametre que tu as mis en tant que parametre glissiere par exemple, oui tu peux acceder a sa valeur qd tu veux.
    si c est une variable dans ton expression alors c est non. Elle "meurt" à la fin de la frame. Cest une des limitations des expressions dans AE (enfin je crois ;) )
    Mais là encore y a moyen de recuperer des infos du passé avec quelques astuces , des boucles sur toute la duree de la comp notamment...mais c est long en calcul

    2)deja il n est pas necessaire de mettre de"=" dans la deniere instruction evaluee. AE considere toujours que le reultat de la derniere instruction sera la valeur a affecté a la propriéte concernée.
    le "+=" ne sert a rien, "position" reste une constante (=position initiale du calque).
    pourquoi il ne bouge qu a la premiere frame? la "position" ne s incremente pas..cf question 1)
    tu ajoutes 200 a la position en x, elle devient on va dire 400 (mais la valeur de "position" reste toujours 200, ta valeur initiale), et ensuite a la deuxieme frame tu lui dis "position+200", donc il refait le calcul et te redonne 400..ca bougera plus.

    2) et 3) c est une question de dimension.
    "time" est de dim 1, tu lui ajoutes la "position" qui est de dim 2.
    AE complete celui de plus petite dimension par des "0", exemple [1,2] + 3 = [1,2] + [3,0] = [4,2].


    pour 3)...exemple :[100,100]+200*4 = [900,100]....t'as compris ca ne va se décaler qu'en x qd "time" va augmenter...
    et ton deplacement est lineaire car ton equation est elle meme lineaire, du type " a+ b*t " . La vitesse est constante.


    je suis speedé la tout de suite..j espere que j ai pas dit de betises

    a+
     
  9. t0ma

    Trophy Points:
    550
    Likes Received:
    0
    Messages:
    18
    Appréciations:
    +0 / 0 / -0
    Ok nab, je te remercie pour les réponses, je sais pas si t'as dis des bétises mais en tout cas, tout ce que tu me dis me semble logique (meme quand tu me contredis :rolleyes: ).

    Donc vu que des varaiables telles que "position" sont des constantes et que les autres sont effacées dès la fin de l'image, on est quasiment obligés de faire nos calculs en fonction du temps ou des autres paramètres des éléments qui constituent notre composition (à première vue, je trouve ca plutot con, je pense que c'est une facon de penser à adopter pour programmer mais j'ai l'impression que ca nous limite beaucoup (ou du moins que ca rend les choses plus compliquées) dans la création d'expressions (je dis bien à première vue parce que quand je vois les choses qui ont été faites par des membres du forum, y'a pas de doute, y'a plein de choses intéressantes à faie avec les expressions)).
     
  10. nab17connection

    Trophy Points:
    1,900
    Likes Received:
    1
    Messages:
    1,051
    Appréciations:
    +0 / 0 / -0
    ben tu voudrais utiliser quoi.. c est ces parametres là qui determinent une animation

    si tu veux utiliser des variables "independantes", tu les mets en tant que parametre glisssiere ("Effet>>Outils pour expresionns>>parametre glissiere", renomme comme tu veux le nom du param en tapant su Entree ) , tu lui mets l expression que tu souhaites.

    ensuite dans ton expression principale , tu crees une variable disons " x" , en lui affectant la valeur de ce parametre glissiere (utilise "l escargot")...
    ce "x" varie au cours du temps suivant l expression que tu as ecrite pour le param glissiere..
    et par consequent ton expression (principale), lorsqu elle est evaluee, va aller chercher a chaque frame la valeur de ce "x"...
    tu as du control ...
     
  11. t0ma

    Trophy Points:
    550
    Likes Received:
    0
    Messages:
    18
    Appréciations:
    +0 / 0 / -0
    J'crois que j'me suis mal exprimé quand j'ai dis qu'on etait obligé de faire nos expressions en fonction du temps. En fait, ce qui me trouble le plus dans AE c'est le fait qu'on puisse pas (à moins d'utiliser des glissières comme tu me l'as expliqué (au passage, je crois que je vais essayer de m'en passer parce que si faut faire ca à chaque variable que je veux utiliser, je suis pas sorti de l'auberge :p)) garder en mémoire des variables d'une image à l'autre, j'ai déjà fait pas mal de prog depuis quelques années, j'ai appris pas mal de languages et là je dois dire que c'est quand meme tres inattendu de pas pouvoir utiliser de "vraies" variables mais je vais essayer de m'y faire ( bon je suis quand meme conscient que AE n'a rien à voire avec du C ou de l'assembleur et si ca a été concu come ca, c'est qu'on doit pouvoir se passer de "vraies" variables).
     
  12. nab17connection

    Trophy Points:
    1,900
    Likes Received:
    1
    Messages:
    1,051
    Appréciations:
    +0 / 0 / -0
    tu verras on s y fait vite :)

    mais donne moi un exemple concret de ce que tu veux faire, dans lequel tu es confronté aux problemes mentionnés ...
    y a bien souvent des parades !
     
  13. numerik

    Trophy Points:
    100
    Likes Received:
    0
    Messages:
    12
    Appréciations:
    +0 / 0 / -0
    hello monsieur nab, j'comprends rien mais je suis plutôt d'un avis favorable.

    becots ;)
     
Loading...

Share This Page

Vous souhaitez annoncer sur le Repaire ? Contactez-nous