-
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