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.

Newbies' expressions !

Discussion dans 'Adobe After Effects' créé par bildebool, 7 Décembre 2005.

Tags:
  1. bildebool

    Points Repaire:
    1 450
    Recos reçues:
    0
    Messages:
    940
    Appréciations:
    +0 / 1 / -0
    Merci pour ces explications !

    Bill
     
  2. sweep

    Points Repaire:
    550
    Recos reçues:
    0
    Messages:
    26
    Appréciations:
    +0 / 0 / -0
    un delay

    Bonjour à tous
    Néopyite en expression, je cherche à faire une sorte de "delay", sur les différentes pistes de mon animation, afin de les dynamiser...
    Apres quelques recherches sur le forum je suis tombé sur ça:

    ampl = 50; // amplitude en pixel
    freq = 3; // oscillations par seconde
    decroi = 1; // facteur décroissance
    u = ampl*Math.sin(freq*time*2*Math.PI)*Math.exp(- decroi*time);
    scale + [u,u];

    C'est exactement le principe mais le seul souci c'est que celui ci ne marche que sur la piste scale et qu'il s'active dès la 1er frame. De plus, je ne sais pas si cette expresion correspond bien à ce que j'aimerai faire, car même si j'arrivai à décaler cette expression dans le temps (fin de mon interpolation "scale") je ne suis pas certain qu'il n'y ai pas une sorte de "saut" entre la fin de l'anim et le debut de l'expression....
    Me suis je bien fait comprendre ???

    Merci d'avance pour votre aide
     
  3. bildebool

    Points Repaire:
    1 450
    Recos reçues:
    0
    Messages:
    940
    Appréciations:
    +0 / 1 / -0
    hello sweep, je ne comprend pas des masses non....

    Bill
     
  4. kalex

    Points Repaire:
    100
    Recos reçues:
    0
    Messages:
    13
    Appréciations:
    +0 / 0 / -0
    facteur temps

    salut.. encore plus newbye que newbye... ALORS INDULGENCE...:o
    question: comment gerer le facteur temps derriere (ou devant) une expression random?
    ex: [random(),random(),ramdom(),1] pour les paramètres de couleur aléatiores, mais suite a cette expression, les couleurs changent toutes les frames... c'est bien sur trop rapide. comment donc controler la vitesse de changement aléatoire.
    merci
    kalex
     
  5. bildebool

    Points Repaire:
    1 450
    Recos reçues:
    0
    Messages:
    940
    Appréciations:
    +0 / 1 / -0
  6. Rodgeur

    Rodgeur Guest

    Appréciations:
    +0 / 0 / -0
    Tiens, Bill montre le bout de son muzeau :lol:

    Rodgeur
    :approb:
     
  7. bildebool

    Points Repaire:
    1 450
    Recos reçues:
    0
    Messages:
    940
    Appréciations:
    +0 / 1 / -0
    Bon c'est pas tout ça, mais pour fêter mon grand retour ;) je vous propose de découvrir les expressions "layer space transform" ! :bravo:
    Les masters of expressions du repaire maitrisent deja mais pas moi, et j'imagine pas beaucoup d'entre vous...

    Bon je compte aussi sur vous, non pas pour me donner sur un plateau des solutions, mais plutot pour qu'on essaie de comprendre l'utilisation de ces expressions :perplexe:

    Alors je vais commencer par une que j'ai compris :o parcque les autres va falloir m'aider.

    Si vous le voulez bien on va traiter les expressions une par une histoire de comprendre quelque chose (parcque meme si j'ai compris celle ci dessous, des fois je m'embrouille)

    - Alors la premiere est : toComp

    * d'après moi, toComp sert à récupérer un point avec une coordonnée x,y,z d'un calque dans l'espace et à le ramener à la valeur de sa position en x,y par rapport à la composition.
    * en français cela voudrait dire, peu importe sa position dans l'espace, je regarde qu'elle est la position du point "a" d'un calque par rapport aux bords de la fenetre de la compo.

    *Comment ça marche ?
    - le calque cible : un calque 3D, on lui fait faire ce qu'on veut.
    - le calque avec l'expression : sur la position on met l'expression
    Code:
    thisComp.layer("cible").toComp(a) //avec "a" de la forme [(x,y)] 
    *Ci joint un aep pour piger quelque chose. http://bildebool.free.fr/bill/repaire/Newbiesexpressions/layerspacetransform/LayerSpaceTransform.aep
    - sur l'aep, dans la comp "toComp", 3 calques : la cible, un solide avec l'expression et un solide parenté pour voir la différence.

    Voilà donc si vous avez des explications complémentaires n'hésitez pas.

    La prochaine fois je vous parlerai du "toWorld" que je crois avoir compris aussi, mais mieux vaut ne pas aller trop vite.

    Ne vous inquietez pas, vous allez bientot participer car mes connaissances s'arreterons vite aux trois premieres expressions de base dans cette catégorie.

    Bill
     
  8. apoal1

    Points Repaire:
    1 200
    Recos reçues:
    3
    Messages:
    740
    Appréciations:
    +0 / 0 / -0
    slt,

    cool ça marche aussi avec une caméra.

    cool tu n'est pas passer à AE7.0.

    +
     
  9. bildebool

    Points Repaire:
    1 450
    Recos reçues:
    0
    Messages:
    940
    Appréciations:
    +0 / 1 / -0
    Ben non au boulot j'ai tjr la 6.5 et la 7 personne l'a en plus alors pour la compatibilité c'est pas top !

    Bill
     
  10. apoal1

    Points Repaire:
    1 200
    Recos reçues:
    3
    Messages:
    740
    Appréciations:
    +0 / 0 / -0
    re

    eh bill, et si tu voulais passer le calque "tocomp" en 3D? je trouvais ça un peu kitch qu'il répercute pas les mouvement 3D de "cible", et la l'expression me met un 1065 en positionZ et perd ce beau suivi :(. alors je tatonne, que veut dire: La Fonction xxxx N'est Pas Définie, il manque quoi?

    +

    edit: en fait j'aimerais mettre quelques rotations 3D sur tocomp. bloquer la positionZ de l'expression d'échelle de tocomp à 0 peut suffir (mais j'y arrive pas:(). peut suffir si la vue de la comp n'est pas celle d'une caméra (modifiée), alors peut etre une expression Math, mais la c hors sujet...

    edit: pour fixer positionZ à 0:
    temp = thisComp.layer("cible").toComp([25,25]);
    [temp[0], temp[1], 0]
    l'expression renvoi à un ensemble que l'on nomme temp. et bien after comprend que l'on ne parle que de l'une des valeurs de l'ensemble quand on rajoute [0], [1], [2] au nom de l'ensemble que l'on a choisi, je croyais que ça ne marchais que pour les noms de propriétés, de type ensemble, officielles. on en apprend tout les jours :D
     
    #85 apoal1, 10 Septembre 2006
    Dernière édition: 11 Septembre 2006
  11. magna_

    Points Repaire:
    1 200
    Recos reçues:
    2
    Messages:
    207
    Appréciations:
    +0 / 0 / -0
    bonjour,

    ayant fais un peu de code avant et étant passé sur after apres, ces petits jeux sur les expressions m'intriguent vite. on va dire que je suis de loin vos avancés... voila pour l'intro.

    j'ai regardé ton projet bill et je crois avoir compris. maintenant des petites questions :
    j'ai viré ton code et j'ai lié a la place, la position de "tocomp" à la position de "cible". ce qui donne la meme anim.
    j'ai un peu de mal a voir dans quel cas "toComp" serait bien utile. si vous avez un ptit exemple à m'expliquer...

    EDIT : ah oui bien sur ! en fait j'ai changé la profondeur en Z de "cible" et la "toComp" ne suivait plus exactement. alors qu'avec le code de bill, il ne prend en compte que sa position par rapport a l'écran et suit parfaitement. ok a+
     
  12. bildebool

    Points Repaire:
    1 450
    Recos reçues:
    0
    Messages:
    940
    Appréciations:
    +0 / 1 / -0
    Bon apparemment vous avez eu des questions auxquelles vous avez trouvé réponse !

    Bon si d'autres ont des choses à ajouter ils sont les bienvenue !

    Bill
     
  13. bildebool

    Points Repaire:
    1 450
    Recos reçues:
    0
    Messages:
    940
    Appréciations:
    +0 / 1 / -0
    Hello !

    je reviens pour tenter de piger "toWorld"

    * d'après moi, toWorld sert à récupérer un point avec une coordonnée x,y,z d'un calque dans l'espace, pour réutiliser ces coordonnées.

    *Comment ça marche ?
    - le calque cible : un calque 3D, on lui fait faire ce qu'on veut.
    - le calque avec l'expression : un calque 3D, sur la position on met l'expression
    Code:
    thisComp.layer("cible").toWorld([a]) //avec "a" de la forme [(x,y,z)]
    *Ci joint un aep pour piger quelque chose. http://bildebool.free.fr/bill/repaire/Newbiesexpressions/layerspacetransform/LayerSpaceTransform.aep
    J'ai mis un exemple concret avec une fleche qui pourrait être une fusée ou je ne sais quoi et un particular pour la fumée... (dans ce cas, plus simple aurait été possible, mais si l'émetteur avait été décentralisé, alors ce serait plus compliqué sans le toWorld)
    Je ne sais pas si on peut utiliser cette expression dans d'autres cas de figure, vous êtes les bienvenus si vous trouvez d'autres exemples, quand aux masters en expression, si des infos complémentaires peuvent être données, n'hesitez pas !!


    Bon maintenant je vais tenter de piger quelque chose aux toCompVec et toWorldVec.

    Bill
     
  14. nab17connection

    Points Repaire:
    1 900
    Recos reçues:
    1
    Messages:
    1 051
    Appréciations:
    +0 / 0 / -0
    salut Bill,

    toWorld() te donne les coordonnées 'absolues', c'est à dire indépendantes des systèmes de coordonnées établis par la vue Caméra ou par un Calque.
    Modifier par exemple les paramètres de la caméra (changement de preset), ne modifiera pas le résultat donné par toWorld.

    toComp() te donne les coordonnées dans le système de coordonnées établi par la vue Caméra.
    Modifier par exemple les paramètres de la caméra dans la scène modifiera le résultat donné par toComp().

    toCompVec() et toWolrdVec fonctionnent sur le même principe avec des vecteurs. Sequelles avait toutefois noté quelques incohérences avec ces méthodes lorsque qu'elles utilisaient l'échelle.

    voila ma ptite contrib', je ne sais pas si c'est plus clair pour toi.

    ps: et oui pour ton exemple, le plus simple est de relier la position x/y de l'émetteur à celle de la flèche, et la positionZ à la positionZ de la flèche.
    tu en aurais eu une utilité si par exemple le calque de ta flèche avait été parenté à un autre calque (c'est à dire qd ses coordonnées dans la fenêtre de montage ne reflètent pas forcément celles que tu vois à l'écran...)
     
  15. bildebool

    Points Repaire:
    1 450
    Recos reçues:
    0
    Messages:
    940
    Appréciations:
    +0 / 1 / -0
    Merci Nab pour ces compléments d'informations.
    Effectivemment, mon exemple n'ai pas le meilleur dans ce cas de figure, mais il reste néanmoins valble pour plein d'autre cas donc je l'ai laissé.

    Je sais pas si ça peut aider, mais je me suis rendu compte d'un truc aujourd'hui :
    - toComp = from layer to comp
    - fromComp = from comp to layer

    Bref je ne m'étais jamais rendu compte de cela, et du coup pour moi tout devient plus clair ! Et c'est la meme chose pour les autres "layer space transform"
    Bref ça c'est pour les newbies, car ça ne dit pas comment utiliser tout cela dans differentes situation. C'est donc un bon moyen memotechnique.

    Sinon, comme tu dis, toCompVec et to WorldVec peuvent etre utilisés sur l'echelle. Bon vu que je test en ce moment les tocomp etc., y a t il d'autres propriétés que la position pour utiliser celles ci ?

    Et les toCompVec toWorldVec, d'autre que position et echelle ?
    Bon de toute façon je n'ai pas encore assimiler ces deux dernieres donc j'en reparlerai plus tard.

    Sinon, une petite aide sur une expression :
    maintenant que je commence à maitriser le toworld tocomp etc., j'ai tenté de piger l'expression de sequelles (avec l'effet 4 coins) (je crois) pour le parentage partiel. Je crois que je l'ai comprise.

    J'ai ensuite essayer de la changer, pour ne recuperer que le parentage sur la position. j'ai écrit ceci :


    Code:
    papa=thisComp.layer("parent");
    p=position;
    t1=thisLayer.marker.key(1).time;
    t2=thisLayer.marker.key(2).time;
    t3=thisLayer.marker.key(3).time;
    t4=thisLayer.marker.key(4).time;
    point=papa.fromComp(thisLayer.toComp(p),t1);
    
    if (time>t1)
        {if (time<=t2)
            {thisLayer.fromComp(papa.toComp(point))
            }
            else
            {thisLayer.fromComp(papa.toComp(point,t2))}
        }
        else
        {thisLayer.fromComp(papa.toComp(point,t1))}
    j'ai alors plusieurs questions :
    1/ pourquoi ai je besoin de la derniere ligne "{thisLayer.fromComp(papa.toComp(point,t1))}" alors que dans l'expression de sequelles il n'y en a pas besoin ?

    2/ j'ai un peu de mal à savoir dans quelle partie (en l'occurence j'ai trouvé mais ça a été long) mettre la propriété de temps, je m'explique :
    - papa.fromComp(thisLayer.toComp(p),t1) (dans cette expression, c'est la bonne)
    ou - papa.fromComp(thisLayer.toComp(p,t1)) (c'est la mauvaise)
    y a t il une logique à suivre pour trouver facilement ?

    3/ pour finir, je ne demande pas de solution mais plutot une direction à suivre pour le moment, afin de parenter la position entre t1 et t2, ET t3 et t4, mais pas avant t1, ni apres t4, ni entre t2 et t3. J'ai essayer avec des OU et ET logique dans les IF mais je n'y arrive pas.

    Voilà pour aujourd'hui !

    Merci.

    Bill
     

Dernières occasions

 

Partager cette page