Aide pour After Effect, techniques, expressions.

mardi 22 janvier 2008

EXPRESSIONS : lookAt

LookAt, ça va être simple à expliquer:












Cette fonction simplissime sert à donc à ce qu'un objet soit aligné avec un ou deux objets. Très pratique. Voilà comment on s'en sert.
Tout d'abord, votre calque doit être un calque 3d, car l'expression est faite pour "orientation" et non la rotation.
Créez deux calques, l'un carré l'autre en forme de barre, passez la barre en mode 3d, ouvrez son orientation, et écrivez ceci:

lookAt (

Comme d'habitude, le deuxieme mot des fonctions commence par une majuscule. La synthaxe est la suivante : lookAt ( A, B ) , ou A et B sont les positions respectives de deux objets. Si l'une des deux positions est celle de l'objet "barre", alors l'objet tournera sur son axe. Si les deux positions sont celles de deux autres objets, la barre s'orientera sur l'axe parallele à l'axe des deux objets.

Reprenons notre expressions
lookAt ( . Placez le curseur apres la parenthese, prenez la corde, attachez la à la position de l autre objet, mettez une virgule, et écrivez position.

On se retrouve donc avec quelque chose qui ressemble à ça:

lookAt( thisComp.layer("Rouge uni 2").transform.position , position )

C'est finalement très simple, il suffit juste de donner les deux positions qu'on souhaite pointer. Il ne vous reste plus qu'à modifier le point d'ancrage de la barre si besoin est. Sur mon exemple, le point d'ancrage est à l'extrémité de l'objet et non en son centre comme initialement.

A noter que l'objet s'alignera, mais pas forcément dans l'axe que vous désiriez. Pour réajuster l'axe, utilisez les rotations X Y Z. (qui sont tjs animables si besoin est).

Il peut arriver qu'on ne veuille pas que le calque soit en 3d. Par exemple, si une camera est présente dans votre scene, le passage en 3d du calque change sa position dans la composition.
Nous verrons plus tard comment orienter un objet sans qu'il soit en 3d, c'est un peu plus compliqué.

4 commentaires:

  1. L'orientation au final, est moins 'mathematique' que son explication ! ;)
    ma barre vrille ds tous les sens ? normal docteur ?

    RépondreSupprimer
  2. hmmm... On a en général des comportements brusques lorsque le calque "target" est très proche de l'objet orienté, car le moindre mouvement change très vite l'angle.
    Mais sinon, non ça n'est pas normal. C'est peut etre du à une addition avec des rotations en plus, je ne sais pas, ça ne m'est jamais arrivé.
    Si jamais tu as un lien pour une vidéo exemple...

    RépondreSupprimer
  3. Bon, le poste est unpeu vieux, mais il m'a bien aidé.

    Si besoin, pour suivre un calque en 2D, j'utilise ça :

    Faire une expression sur la ROTATION du layer à animer.
    Vous avez juste à remplacer la variable objetAPointer
    par le layer à suivre, et ça devrait fonctionner.

    //suivre la direction d'un layer, en 2D

    // selectionner le layer à suivre
    objetAPointer = thisComp.layer("NomDuLayerASuivre");

    // va nous servir a detecter la position du layer à suivre par rapport au layer à bouger
    positionDeObjetApointerX = objetAPointer.transform.position[0]-transform.position[0];
    positionDeObjetApointerY = objetAPointer.transform.position[1]-transform.position[1];

    // position du layer à a pointer
    objetAPointerPosition = objetAPointer.transform.position;

    // faire pointer notre objet vers l'objet a pointer
    directionDuCalque = lookAt (objetAPointerPosition,position);

    // retourner des valeur sur un axe à 360°
    // si l'objet à pointer est au-dessus de notre layer à bouger
    if ( positionDeObjetApointerX < 0 && positionDeObjetApointerY< 0 || positionDeObjetApointerX > 0 && positionDeObjetApointerY < 0 )
    {
    180 - directionDuCalque[1];
    }
    // si l'objet à pointer est en-dessous de notre layer à bouger
    else {
    directionDuCalque[1];
    }

    RépondreSupprimer
  4. Merci beaucoup monsieur De la Saucisse, je ne connaissais point cette fonction. Sans vous, oh grand maître, je n'aurais pu réaliser un exemple avec, comme la vidéo ci dessous. Bonne continuation.

    https://www.vectanim.com/animation-motion-design/formation-after-effects-animations-dillustrations-expressions/

    RépondreSupprimer