Aide pour After Effect, techniques, expressions.

vendredi 2 janvier 2009

les référentiels / bonne année

Faisons d'une pierre deux coups. Donc bonne année.*
Mon âme d'humaniste a parlé, passons aux choses sérieuses.

C'est quoi donc un référentiel ? Einstein l'explique assez bien dans sa théorie de la relativité général et restreinte, Galilée aussi avait pas été trop con sur ce coup là.
Pour AE, on va simplifier la donne;
un référentiel est une base, souvent spatiale dans AE, de laquelle découle d'autres valeurs.
On pourrait dire qu'il s'agit du point [0,0]. Et comme dans AE, chaque calque voit [0,0] à sa porte, il faut que tout ce petit monde puisse communiquer.
L'image suivante va poser la problématique:



















le point A a pour coordonnées [200,100].
le point B a pour coordonnées [400,225].
Jusque là, tout va bien.
SAUF que pour le calque rouge, bah le point A a pour coordonnées [0,0] et B [200,125].
Pour le point B, A est en [-200,-125].

Certains me diront "oui bah moi je m'en fous, j'ai jamais eu ce genre de probleme, donc pourquoi se poser ce genre de question?"
Et bien car il y a quelques cas où vous allez vous dire "crotte, ça marche pas le truc que je veux faire" (je m'adapte à votre langage)
Prenons un exemple simplissime:
Créez un solide plus petit que la composition (ça arrive à tout le monde), et appliquez lui l'effet
"quatre coins" dans "déformation" des effets. (corner pin en anglais)
C'est un effet tres connu et tres utile, qui permet de déformer une image en déplaçant chaque coin.
Et bien vous aller vous rentre compte que les coordonnées de chaque point a pour référentiel non pas la composition, mais le calque. Et c'est bien logique. Sinon, dès que l'on déplacerait le calque, les valeurs changeraient.
Ainsi, le point en haut à gauche est à [0,0], etc.
Et c'est là que se pose le premier probleme. Imaginons que l'on veuille créer ceci :









On veut que le rectangle jaune se déforme en suivant chaque rond rouge. Mais voilà le souci, avec le modificateur quatre coin, on a un point en haut à gauche en [0,0], alors que le rond rouge correspondant doit avoir des coordonnées d'environ [100,100].
Si vous accrochez la valeur de position du rond rouge au coin supérieur, vous n'aurez pas du tout ce que vous voulez.
C'est là qu'intervient une suite de nouveaux mots:

fromComp( [x,y] ) : transforme [x,y] pour qu'il concorde avec le référentiel du calque dans lequel on écrit ça.

Ceci nous donne la solution au probleme que l'on vient de voir.
Voilà ce que l'on doit écrire en français:
"pour le coin supérieur gauche, transforme la position du rond rouge en changeant de référentiel. Pour nouveau référentiel, prend le coin supérieur gauche du calque en tant que [0,0]

imaginons que le rond rouge s'appelle "HG" (haut gauche)
voilà ce qu'on écrit pour la position du coin supérieur gauche de l'effet quatre coin:

fromComp ( thisComp.layer("HG").position)

et faire pareil avec chaque coin.
Et voilà !
Vous savez changer de référentiel. Cela peut s'appliquer dans de nombreux cas. La plupart des effets qui demande une position (effet de dégradé par exemple) utilise le système de coordonnées interne au calque, pas celui de la composition.
Meme principe, avec l'effet "dégradé 4 couleurs"














Le seul cas où on a pas besoin de tout ça, c'est lorsque le calque fait la même taille que la composition, et est centré. Là, évidemment, les deux référentiels sont confondus, donc ça va.

Dans le prochain post, on verra comment faire pour qu'un calque 2d récupère la position d'un calque 3d, tout en restant en 2d.
Ouais ouais c'est possible, et c'est encore une histoire de référentiel.

*phrase non contractuelle.

1 commentaire: