expressions after effects

17
© 2009 Nicolas Dufresne - Duduf - http://formations.duduf.fr Les Expressions sur Adobe After Effects Formation de DuDuF http://formations.duduf.fr [email protected] I - Objets, Valeurs Que peut-on manier avec les expressions ? Quels sont les types de valeurs ? Comment les utilise-t-on ? En pratique : manier les outils de création d’expressions, lier des propriétés, créer des contrôleurs. II - Opérations Variables, Opérations mathématiques, additionner, multiplier, etc. En pratique : Combiner plusieurs propriétés, utiliser les fonctions mathématiques... III - Conditions If, then, else En pratique : automatiser des évènements, insérer des conditions. IV - Fonctions Fonctions prédéfinies, fonctions créées En pratique : Utiliser les fonctions After Effects, créer ses propres fonctions. Ce document n’est qu’un résumé, un pense-bête, de la formation dispensée par Duduf. Il réunit les principaux points théoriques à retenir sans être exhaustif, et de nombreuses remarques, astuces pratiques et exemples concrets n’y sont pas présents.

Upload: najib-najib

Post on 02-Oct-2015

277 views

Category:

Documents


3 download

DESCRIPTION

formation complet

TRANSCRIPT

  • 2009 Nicolas Dufresne - Duduf - http://formations.duduf.fr

    Les Expressions sur Adobe After EffectsFormation de DuDuF

    http://[email protected]

    I - Objets, ValeursQue peut-on manier avec les expressions ? Quels sont les types de valeurs ? Comment les utilise-t-on ?

    En pratique : manier les outils de cration dexpressions, lier des proprits, crer des contrleurs.

    II - OprationsVariables, Oprations mathmatiques, additionner, multiplier, etc.

    En pratique : Combiner plusieurs proprits, utiliser les fonctions mathmatiques...

    III - ConditionsIf, then, else

    En pratique : automatiser des vnements, insrer des conditions.

    IV - FonctionsFonctions prdfinies, fonctions cres

    En pratique : Utiliser les fonctions After Effects, crer ses propres fonctions.

    Ce document nest quun rsum, un pense-bte, de la formation dispense par Duduf. Il runit les principaux pointsthoriques retenir sans tre exhaustif, et de nombreuses remarques, astuces pratiques et exemples concrets ny sont

    pas prsents.

  • 2009 Nicolas Dufresne - Duduf - http://formations.duduf.fr 2/17

    I - Objets, Valeurs

    Adobe After Effects a un mode de fonctionnement trs proche du langage JavaScript, couram-ment utilis sur internet. Cest un langage de programmation orient objet . Lutilisation des expres-sions est intimement li ce mode de fonctionnement. Commenons donc par y jeter un oeil.

    Un objet, cest quoi ?

    Pour comprendre, prenons des exemples dobjets : composition, calque, chelle, rotation, flou...Eh oui, un objet, cest tout ce quon peut manipuler dans une composition, et donc aussi avec les ex-pressions.

    Mais encore ?

    Tous les objets sont classs de faon hirarchique : Le grade le plus lev est la composition,le plus bas est le paramtre deffet.On peut dire que les objets sont imbriqus les uns dans les autres, un peu comme des poupes rus-ses.

    Voici un exemple de quatre objets, et la hirarchie entre eux :

    Composition

    Calque

    Transformation

    Position

  • 2009 Nicolas Dufresne - Duduf - http://formations.duduf.fr 3/17

    Un autre exemple plus complexe :

    Que faire de tous ces objets ?

    Nous allons mettre des valeurs dedans ! Lobjet le plus bas dans la hirarchie est celui quicontient une valeur (dans lexemple, la position). La plupart du temps, cette valeur est animable (re-prable au chronomtre juste ct sur After Effects). Et la grande majorit (mais pas toutes) de cesvaleurs peut tre contrle par une expression !

    Un objet ne peut contenir quune valeur.

    Mais une position, ce ne sont pas DEUX valeurs ?

    Eh non ! Il y a les valeurs simples, comme la valeur dun flou ou dun angle, mais certains objetsfont appel au tableau. Cest un type de valeur qui contient en fait plusieurs autres valeurs (position X,Y et Z pour la position par exemple). La plupart des objets font appel soit une valeur simple, soit untableau de valeurs, mais quelques objets utilisent des valeurs encore diffrentes, comme les tracs demasque...

    Composition

    Calque

    Position

    Effets

    Coin

    Marionnette

    Dformation

    Filet

  • 2009 Nicolas Dufresne - Duduf - http://formations.duduf.fr 4/17

    Bon, et les expressions dans tout a ?

    Les expressions sont donc un moyen de contrler ces valeurs. En fait, une expression, cestune commande, une opration mathmatique le plus souvent, dont le rsultat donne la valeur ap-pliquer lobjet.

    Regardons donc comment manier ces expressions !

    Essayons de crer une expression !

    La plus simple de toutes : la valeur.

    - Sur un calque, ouvrez les proprits de transformation, et alt+clic sur le chronomtre de lopacit.- Tapez 20 , par exemple, dans le champ de lexpression.

    On remarque deux choses : laffichage de la valeur de lopacit est devenu rouge, pour indi-quer quelle est le rsultat dune expression, et si on modifie cette valeur en cliquant dessus, elle seremet toujours 20. En effet, quoiquil arrive, le rsultat de lexpression est une constante, 20.

    - Cliquez sur le bouton =. Laffichage de la valeur change et redevient jaune. Ce nest plus le rsultatde lexpression, mais la valeur dfinie pour le calque.

    Alt + clic sur le chronomtrepermet dactiver les expres-

    Permet dactiver ousions sur lobjet voulu

    de dsactiver lex-pression.

    Affichage de la valeur : sicest en rouge, cest le rsul-tat dune expression.

    Si coch, en mode courbes, permetdafficher la courbe rsultant de lex-pression au lieu de la courbe de lavaleur dorigine (avant calcul de lex-pression).

    Bibliothque de fonctions.

    Permet dinsrer un lien vers uneautre valeur, sur le mme principeque le parentage des calques.

  • 2009 Nicolas Dufresne - Duduf - http://formations.duduf.fr

    Et la position ?

    Essayons !

    - Sur un calque, activez les expressions sur la position.- Tapez 20 .

    Ae, a ne marche pas, After me parle de dimensions...

    Souvenez-vous, la position prend un tableau de valeurs !Cest pour a quAfter Effects demande un rsultat de dimension 2 (un tableau deux valeurs) et pas1 !

    - Entrez maintenant [20,20] .

    Maintenant a fonctionne. Vous venez de dcouvrir comment entrer un tableau dans une ex-pression, entre crochets, les valeurs spares par des virgules.

    Mais, et les valeurs virgule alors ? comment les crire, si la virgule sert de sparateur entredeux valeurs ?

    Nous arrivons un point trs important : les dveloppeurs de After Effects sont amricains !Les expressions sont donc en anglais et en anglais, les sparateurs sont des virgules, et les nombresdcimaux scrivent avec un point ! Il va falloir sy faire...

    Une constante cest bien, mais le but cest quand mme danimer...

    Crons notre premire expression dont le rsultat change dans le temps ! Oui, cest juste a uneanimation, un rsultat qui change en fonction de linstant.

    La plus simple des expressions animes, cest le lien entre deux valeurs.

    - Crez deux solides, dpliez leurs transformations.

    - Activez les expressions sur lopacit du premier, et alors que le champ de saisie est actif, utilisez lelasso pour pointer la valeur de lopacit du deuxime puis validez.

    Lexpression ressemble alors thisComp.layer("Nom du Calque").transform.opacity .On y retrouve la hirarchie des objets, et comment on les dsigne :La composition thisComp qui montre la composition actuelle.

    Le calque layer("Nom du Calque") que lon peut remplacer par layer(X) o X reprsente sonindex.

    La transformation, et lopacit (toujours en anglais).

    Maintenant, si on anime lopacit du deuxime calque, le premier suit exactement la mme ani-mation !

  • 2009 Nicolas Dufresne - Duduf - http://formations.duduf.fr

    Exerons nous pour terminer ce chapitre ! Crons nos premires expressions !

    - Sur un solide noir, appliquez un effet gnration/lumire parasite.- Crez un objet nul.

    - Utilisez une expression pour lier le Centre de la source lumineuse la position de lobjet nul.

    Cest une utilisation trs pratique des expressions pour animer certains effets ; dans ce casparticulier il est nettement plus facile danimer la position dun calque que le centre dun effet !

    - Sur le solide noir, ajoutez un effet nettet/flou radial.- Liez le centre du flou la position de lobjet nul avec une expression.

    - Ajoutez sur lobjet nul un effet options pour expressions/paramtre glissire.- Liez lintensit du flou au curseur du paramtre glissire.- Liez lintensit de la lumire parasite au paramtre glissire.

    Ici nous crons un contrleur : un objet trs utile avec les expressions, pour contrler plusieurseffets en mme temps, pour donner des paramtres des expressions... Et qui permet par ailleurs derassembler tous les paramtres animer sur le mme calque (ici, lobjet nul).

    Un autre exemple de lutilisation dun tel contrleur, cest de sparer les diffrentes valeurs dun objet plusieurs dimensions, comme la position :

    - Crez un solide, et ajoutez-y deux paramtres glissire.- Activez les expressions sur la position, tapez un premier crochet [ puis avec le lasso liez le curseurdu premier paramtre glissire, ajoutez une virgule ,, liez le deuxime paramtre glissire, et enfinfermez les crochets ].

    Nous venons de recrer leffet Sparer la position XYZ ! Aucun intrt puisquil existe dj,mais vous savez maintenant le faire aussi sur nimporte quelle position, le centre dun effet, un pointde marionnette, etc. !

    Pensez dj toutes les possibilits des expressions en combinant ces simples bases !

  • 2009 Nicolas Dufresne - Duduf - http://formations.duduf.fr

    II - Oprations

    Nous savons maintenant assigner une valeur et rcuprer la valeur dun autre objet. Cest djpratique, mais encore loin des possibilits des expressions. Il sera encore bien plus utile de pouvoirassocier plusieurs valeurs et raliser des calculs. Pour cela nous allons utiliser des oprateurs, pourraliser des oprations entre diffrentes oprandes.

    Un oprateur, cest le signe de lopration (+, -, =, etc.). Il y en a plein, pour faire plein dechoses.

    Une oprande, cest llment sur lequel travaille loprateur (dans 2+2=4, les 2 et le 4 sont lesoprandes).

    Commenons par les maths, niveau cole primaire.

    Quatre oprations, quatre oprateurs : addition +, soustraction -, division /, multiplica-tion *. Rien de bien sorcier... Une expression 20+30 donnera 50, 20*30 donnera 600.

    Et puisque cest trop simple, ajoutons un cinquime oprateur, le modulo %. Il retourne lereste de la division entire des deux oprandes. 10%8 donnera 2. 30%8 donnera 6.

    Si on crit une opration plus de deux oprandes, cest comme sur le papier, il y a des priori-ts : *, /, % auront la priorit sur + et -. Et bien sr, si a ne nous plait pas, on peut ajouterdes parenthses. 2+2*4 donnera 10 et (2+2)*4 donnera 16. Toujours rien de bien sorcier, maisrevenons du plus concret...

    Utiliser des expressions pour y mettre des valeurs que lon peut trouver avec une calculatrice,ce nest pas trs utile. Mais remplaons nos oprandes numriques par des liens vers les valeursdautres objets...

    - Crez trois solides, animez diffremment lopacit de deux dentre eux, et ajoutez une expression surle troisime.

    - Liez la valeur dopacit du premier solide, ajoutez +, puis liez la valeur dopacit du deuxime so-lide. Vous obtenez une expression du type :

    thisComp.layer("calque1").transform.opacity + thisComp.layer("calque2").transform.opacity(on peut ajouter des espaces pour y voir plus clair, les espaces ninfluencent aucunement les expres-sions).

    La valeur dopacit du troisime calque est donc la somme des deux autres, nimporte quelmoment dans le temps. L a commence devenir intressant.

  • 2009 Nicolas Dufresne - Duduf - http://formations.duduf.fr

    Dis donc, a risque de devenir illisible et dur organiser si on a beaucoup doprandes !

    Dans les cas o on lie beaucoup dobjets, o les oprandes sont nombreuses, et plus forteraison dans les cas o on utilise plusieurs fois la mme oprande, il y a un outil trs pratique : la varia-ble ! Elle permet dassigner une oprande un nom de notre choix, plus simple. Par exemple au lieude mettre thisComp.layer("calque1").transform.opacity, on va pouvoir utiliser calque1Opacit parexemple. Pour crer (on dit dclarer en programmation) une variable, cest tout bte :

    - Reprenez les trois solides de tout lheure. Celui o on a mis lexpression, vous allez effacer lan-cienne et crer celle ci :

    calque1Opacit = thisComp.layer("calque1").transform.opacity;calque2Opacit = thisComp.layer("calque2").transform.opacity;

    calque1Opacit + calque2Opacit

    Le rsultat est exactement le mme que tout lheure, mais la dernire opration est bien plusfacile lire. Cest une mthode trs utile lors de la cration dexpressions plus compliques.

    Notons au passage la syntaxe utilise par les expressions : un point-virgule la fin de chaqueligne pour sparer les oprations, sauf la dernire ligne, celle dont le rsultat doit servir de valeurpour lobjet dans lequel lexpression est applique.

    Et aussi, ce nouvel oprateur =, qui permet daffecter loprande de gauche la valeur decelle de droite. (attention, ce nest pas un oprateur dgalit, mais un oprateur daffectation). Commetous les oprateurs, il subit les priorits. Il vient aprs + et - dans lordre des priorits.

    Maintenant, nous connaissons donc les 6 oprateurs de calcul (en comptant laffectation), ajou-tons-y 5 autres oprateurs pas indispensables mais qui peuvent servir simplifier nos expressions : lesoprateurs daffectation. Exemple : dans certains cas, vous aurez besoin de modifier une variable, dyadditionner ou soustraire une valeur, avant de la rutiliser. Vous pourriez le faire de la faon suivante :variableA = variableA + 23. Loprateur daffectation simplifie cette expression de la faon suivante :variableA += 23. Il y en a donc 5 : +=, -=, *=, /=, %=. Ils ont tous les 5 la mme prioritque loprateur daffectation =.

    Il y a encore deux oprateurs, trs utiles en programmation, mais peu utiliss par les expres-sions : les oprateurs dincrmentation : ++ et -- qui additionnent ou soustrayent une unit lop-rande place juste gauche. Exemple : variableA++ est quivalent variableA += 1 ou encore variableA = variableA + 1. Ces deux oprateurs ont la priorit sur *, / et %, ils sont donc ceuxdont la priorit est la plus haute.

  • 2009 Nicolas Dufresne - Duduf - http://formations.duduf.fr

    Il est temps dentrer au collge !

    Trs vite, vous aurez besoin deffectuer des calculs un peu plus complexes... Rcuprer desvaleurs absolues, calculer des puissances, des racines carres, travailler des angles, etc. After Effectsdispose dun certain nombre de fonctions prtes faire a pour vous !

    Prenons un tout petit peu davance sur le dernier chapitre et regardons o trouver ces fonctions,et comment les utiliser :

    Dans longlet JavaScript Math vous y trouverez par exemple :

    le cosinus : Math.cos(valeur)le cosinus invers : Math.acos(valeur)

    la puissance : Math.pow(valeur, puissance)la valeur absolue : Math.abs(valeur)

    ou encore, larrondi suprieur : Math.ceil(valeur)

    Et dans Other Math, pour la conversion de radian en degrs : radiansToDegrees(valeur) ou lecontraire degreesToRadians(valeur).

    Attention aux majuscules/minuscules, elles sont importantes dans les expressions !

    Bibliothque de fonctions.

  • 2009 Nicolas Dufresne - Duduf - http://formations.duduf.fr

    Exerons nous pour terminer ce chapitre !

    - Crez trois solides (dune taille plus petite que celle de la compo, pour bien voir leur position)- Animez la position des deux premiers, et ajoutez lexpression suivante en position sur le troisime :

    positionA = thisCompiayer("calque1").transform.position;positionB = thisCompiayer("calque2").transform.position;(positionA + positionB) / 2

    Vous venez de faire la moyenne des positions, le calque 3 est toujours a mi-chemin des deuxautres. Vous commencez trouver des applications de plus en plus utiles aux expressions... Essayezaussi avec des coefficients !

    positionA = thisCompiayer("calque1").transform.position;positionB = thisCompiayer("calque2").transform.position;(positionA*2 + positionB) / 3

    Essayez avec encore plus de calques, faites la moyenne de 3, 4 ou mme 5 positions... Au pas-sage notons que nous travaillons sur des tableaux de valeurs 2 ou mme 3 dimensions (puisque cesont des positions), exactement de la mme faon que si ctaient des valeurs simples. After Effectsse charge du calcul vectoriel pour nous !

  • 2009 Nicolas Dufresne - Duduf - http://formations.duduf.fr

    Regardons maintenant une autre expression :

    - Crez un solide de 200pixels sur 200 (dans une compo plusgrande...) - Ajoutez cette expression dans la rotation :

    centre = thisLayer.position;R = 100;radiansToDegrees(centre[0]/R)

    Vous venez dinventer la roue ! Cette expression est presque la mme que celle que cre loutilroue de Duik (http://ik.duduf.fr). Elle automatise la rotation du calque en fonction de son dplace-ment horizontal pour faire rouler le calque. (videmment, si vous mettez un masque en cercle cesera plus parlant).

    Analysons lexpression :

    thisLayer.position est un abrg de thisComp.thisLayer.transform.position. Dailleurs, onaurait mme pu mettre simplement position tout court, mais on naurait pas dcouvert le terme this-Layer en passant ;-). La premire ligne assigne donc la variable nomme centre la valeur de laposition du calque courant.

    R = 100 assigne btement la valeur 100 une variable R. Pourquoi 100 ? si le calque fait200 pixels de large, cest tout simplement le rayon de la roue...

    centre[0], encore quelque chose de nouveau : a permet de rcuprer la premire valeur dutableau centre (centre est une variable qui contient une position, donc un tableau de 2 ou 3 valeurs),donc la valeur de la position en X, horizontale. centre[1], la valeur en Y, centre[2], la valeur en Z.

    Si on se souvient des cours de maths du collge, en radians : 2*R cest la circonfrence du cercle, donc la distance parcourue quand il fait un tour complet. Dailleurs, 2, en radians, cest langle correspondant un tour complet (360, en degrs). Doooooonc (vous me suivez toujours ?) :Angle*Rayon=Distance (en radians, toujours). Et donc on a Angle=Distance/rayon. Bah voil :centre[0]/R quon na plus qu convertir en degrs, puisque After Effects travaille en degrs,radiansToDegrees(centre[0]/R) et le tour est jou !

    Pour faire monter la roue la verticale, changez pour centre[1]/R !

    Ces deux exemples montrent des expressions pour lanimation de transformations, mais nousavons maintenant un attirail trs complet pour crer des expressions pour contrler prcisment tousles effets, que ce soit leurs intensits, leurs positions, etc.

  • 2009 Nicolas Dufresne - Duduf - http://formations.duduf.fr

    III - Conditions

    Maintenant que nous savons manipuler toutes sortes de valeurs, les lier, les associer, calculer,il ne reste plus que : A partir de l, change de sens ou encore Si je te met droite, devient trans-parent. Cest dire les conditions, if(){} else{}

    Une seule condition.

    Le principe est simple : on veut quun calque devienne transparent si il passe sur la droite de lacomposition.

    La syntaxe est la suivante :if (condition) {ce qui se passe si la condition est remplie}

    else {ce qui se passe si la condition nest pas remplie}On mettra donc une expression dans lopacit :

    if (transform.position[0] < thisComp.width/2) {100}

    else {50}Notons en passant thisComp.width : la largeur de la compo, en pixels, et le nouvel oprateur

    infrieur

  • 2009 Nicolas Dufresne - Duduf - http://formations.duduf.fr

    Et si jai plusieurs conditions poser ?

    Essayons de runir les deux cas prcdents : si la case est coche, alors si le calque est sur ladroite, allumons le. Sinon, il reste teint. Dis comme a, on a envie de crer lexpression suivante :if (effect("Paramtre case")("Case")==1) {

    if (transform.position[0] < thisComp.width/2) {100}

    }else {50}

    Non ce nest pas un pige, a fonctionne. Mais il y a plus simple... Pourquoi ne pas se dire sim-plement si la case est coche ET si le calque est sur la droite, allumons le, sinon il reste teint.

    if (effect(Paramtre case)(Case)==1 && transform.position[0] < thisComp.width/2) {100

    } else {50}Voil encore un nouvel oprateur, celui l fait partie des oprateurs logiques : et &&. Il y a

    aussi le ou || (qui se fait avec la touche 6 du clavier) et la ngation !.

    Il est donc possible de mettre autant de conditions que lon veut en combinant les oprateurslogiques. Il est possible dutiliser des parenthses pour prciser la priorit :

    - Sur un solide, en opacit, mettez lexpression suivante :m=12;

    n=8;if ( m

  • 2009 Nicolas Dufresne - Duduf - http://formations.duduf.fr

    IV - Fonctions

    Nous savons maintenant tout faire avec les expressions ! Il ne manque que les fonctions, pourles plus compliques des expressions, qui permettent daccder certaines proprits de After Effects,certains calculs, ou encore de simplifier certaines oprations rptitives...

    Cest quoi, une fonction ?

    Nous en avons dj utilise une... souvenez vous de radianToDegrees(valeur) qui utilisait lavaleur et la convertissait en degrs. Cest a une fonction, cest le fait de prendre une entre ou plu-sieurs entres (ici la valeur, mais a peut tre des objets, des tableaux...), de faire un certain nombredoprations avec ces entres, et den resortir (retourner on dit en programmation) quelque chose. Icien loccurence, la valeur convertie en degrs.

    Il y en a de nombreuses toutes faites et prtes tre utilises dans After Effects, accessiblecomme on la vu prcdemment par la bibliothque de fonctions. Chacune est dfinie par son nom,puis entre parenthses, ses arguments (ce quon doit rentrer). (attention, il y a aussi de simples objetsdans la bibliothque, tout ce qui na rien entre parenthse...).

    Nous allons en aborder trois trs utiles titre dexemples.

    Wigglewiggle(freq, amp, octaves = 1, amp_mult = .5, t = time)

    Cest une fonction qui cre une valeur qui varie dans le temps, selon une certaine frquenceet une certaine amplitude. On distingue deux types darguments : les obligatoires (freq et amp) et lesoptionnels (les autres, reprables au signe =). Cest dire que dans lusage le plus courant de lafonction, crire par exemple wiggle(15,20) est suffisant, les autres arguments sont remplacs parceux par dfaut. Cest donc exactement quivalent wiggle(15,20,1,.5,time).

    Pour tester, essayez sur la position dun calque. On constate en passant que le type de valeurque cre le wiggle est bien un tableau deux dimensions, puisque a fonctionne sur la position. Enfait, le wiggle sadapte la valeur en cours, et la variation se fait autour de la valeur existante.

    freq : cest la frquence, en Hertz, autrement dit en nombre de changements par secondes, laquelle la variation de valeur se fait. La vitesse du wiggle en quelque sorte.

    amp : cest lamplitude du wiggle, sa force.octave : cette valeur permet de rendre le wiggle fractal. Cest dire, plus simplement, de met-

    tre un wiggle sur le wiggle. La valeur par dfaut 1, fait une variation correspondant la frquence etlamplitude des deux premiers arguments, la valeur 2 ajoute par dessus une variation a une frquencedeux fois plus leve et une amplitude multiplie par le quatrime argument, amp_mult.

    amp_mult : cette valeur doit tre comprise entre 0 et 1, cest le multiplicateur de lamplitude deswiggles supplmentaires dfinis par loctave.

    t : cette valeur dfinit comment le wiggle est gr dans le temps. La valeur par dfaut, time,permet dutiliser le droulement logique de la timeline. Si lon entre une constante, le wiggle ne sefait plus (il faut que cette valeur varie dans le temps). Si lon met par exemple time*2 ca revient doubler la frquence. Si lon met time+2, a dcalle le wiggle de deux secondes dans le temps.

    www.cours-ofppt.com

  • 2009 Nicolas Dufresne - Duduf - http://formations.duduf.fr

    Lengthlength(point1, point2)

    Cette fonction nest pas trs complique, mais trs utile. Les deux arguments sont des tableaux deux ou trois dimensions, reprsentant des coordonnes. La fonction retourne la distance entre lesdeux points. Elle permet par exemple de mesurer la distance entre une camra et le point dancragedun calque, permettant de faire varier lopacit ou la couleur du calque par rapport sa distance avecla camra. Essayons, vous verrez quel point cest utile :

    - Crez une camra, en position, mettez la valeur de Z 0.- Crez un solide, mettez le en mode 3D, et mettez le en Z 1000 (ou -1000, suivant dans quel senspointe la camra)

    - Dans lopacit du solide, mettez cette expression :distance = length(thisComp.layer(Camera 1).transform.position,transform.position);if(distance1500) { 200-distance/15 }if(1000

  • 2009 Nicolas Dufresne - Duduf - http://formations.duduf.fr

    toWorld sutilise de la faon suivante : objet.toWorld(coordonnes, t = time). Les coordon-nes, ce sont les coordonnes ramener en coordonnes absolues. Lobjet, cest lobjet par rapportauquel les coordonnes avant convertion sont traites (dans notre cas, le deuxime objet nul, parentdu premier). Lusage est donc simple :

    - Dans le centre de la lumire parasite mettez lexpression :

    thisComp.layer(objet nul 2).toWorld(thisComp.layer(objet nul 1).transform.position)

    Maintenant tout fonctionne. Mais il faut avouer que ce nest pas trs pratique... Il faut savoir parrapport quoi les coordonnes de position sont donnes, ce nest pas forcment vident. Par contre,les coordonnes dun point dancrage sont toujours donnes par rapport son calque. Donc cest plusfacile de transformer les coordonnes du point dancrage en coordonnes absolu, plus besoin de sesoucier des liens entre les calques. Utilisons maintenant lexpression :

    thisComp.layer("objet nul 1").toWorld(thisComp.layer("objet nul 1").transform.anchorPoint) et le tourest jou !

    Quant au deuxime argument, il permet de rcuprer des coordonnes un moment donn(valeur en secondes). La valeur par dfaut time reprsente linstant courant.

    Il y a donc plein de fonctions dans After, mais ne peut-on pas crer les notres ?

    La cration de fonction est assez simple : il suffit dutiliser la syntaxe suivante :function moyenne(argument1,argument2) {

    A = argument1 + argument2;return A/2 ;}

    Le mot return dfinit ce qui sera retourn par la fonction. Ici, le rsultat de lopration A/2.Et lutilisation de la fonction ainsi cre se fait de la faon suivante :

    moyenne(10,12), qui retournera la valeur 11.

    Un exemple de fonction utile, revenons nos trois solides de la page 10 :- Crez trois solides (dune taille plus petite que celle de la compo, pour bien voir leur position)

    - Animez la position des deux premiers, et ajoutez lexpression suivante en position sur le troisime :positionA = thisComp.layer(calque1).transform.position;positionB = thisComp.layer(calque2).transform.position;

    (positionA + positionB) / 2On pourra remplacer cette expression par la suivante, maintenant quon connait toWorld :

    positionA = thisComp.layer("calque1").toWorld(thisComp.layer("calque1").transform.anchorPoint);positionB = thisComp.layer("calque2").toWorld(thisComp.layer("calque1").transform.anchorPoint);(positionA + positionB) / 2

    Ce qui fera fonctionner lexpression mme si les calques ont des liens. Et en crant une fonctionon pourra encore simplifier cette expression :

    function positionAbsolue(calque) {calque.toWorld(calque.transform.anchorPoint);}(positionAbsolue(thisComp.layer("calque1"))+ positionAbsolue(thisComp.layer("calque2"))) / 2

    Ce qui est trs utile si on doit manipuler de nombreux calques...

  • 2009 Nicolas Dufresne - Duduf - http://formations.duduf.fr

    ANNEXE

    Liste des oprateurs :

    Calcul :

    + addition

    - soustraction

    / division* multiplication% modulo

    = affectation

    Affectation :

    += addition

    -= soustraction/= division*= multiplication%= modulo

    Incrmentation :

    ++ addition

    -- soustraction

    Comparaison :

    < strictement infrieur> strictement suprieur= suprieur

    == galit!= diffrence

    Logiques :

    || ou&& et! ngation

    Classement de ces oprateurs par priorit

    priorit maximale

    () []-- ++ !* / %+ -< > =

    == !=

    && ||= += -= *= /= %=

    ,priorit minimale