Aide pour After Effect, techniques, expressions.

vendredi 28 décembre 2007

EXPRESSIONS : length

LENGTH: un mot simplissime et très pratique. Il permet de créer une variable qui aura comme valeur la distance en pixel entre deux calques (plus précisement entre leur deux points d'ancrage)

voilà ce qu'on écrit:
length (A,B)

A est la position d'un objet, B la position d'un autre objet.

Créons une petite scenette: créez 3 petits carrés. et disposez les vaguements en triangle. Appelez en un "distance". ouvrez sa rotation. Ouvrez les positions des deux autres.
Dans la rotation de "distance", on cherche à avoir ceci :

pos=thisComp.layer("Blanc uni 3").transform.position;
pposs=thisComp.layer("Blanc uni 2").transform.position;

length ( pos , pposs )









Vous l'aurez compris, on a crée deux variables, chacune d'entre elle etant la position d'un des deux calques. Ensuite, on demande à ce que la rotation soit égale à la distance entre les deux calques. Très pratique donc; on peut en faire ce que l'on veut, nous le retrouverons d'ailleurs dans énormément d'exemple (oui oui, le premier exemple concret de tout ça arrive bientot!)

Exemple d'utilisation: plus tu es pres de moi, plus je suis rouge, plus je suis petit, plus je tremble, plus je suis flou. C'est ce qui s'appelle faire de l'effet.

EXPRESSIONS : wiggle

wiggle, la fonction pratique, la fonction magique.
Pourquoi ? Parce qu'elle peut s'utiliser seule pour un effet immédiat. wiggle en français, c'est tremblement.
il y a bel et bien un menu "tremblement" dans AE. A quoi sert-il ? tout simplement à rajouter un tremblement à une valeur; selectionnez les clefs d'une propriété, et vous pourrez ajouter un tremblement à la valeur, en choisissant une amplitude ( si vous mettez 10 en amplitude, une valeur initiale de 20 oscillera entre 10 et 30) et la fréquence. AE rajoute donc les clefs necessaires au tremblemement. Voilà pour le menu tremblemenent. Je ne continue pas l'explication, car nous allons voir l'expression qui exécute la meme chose, mais en mieux.

Créez un solide, ouvrez sa position, alt clic sur le chrono, effacez la ligne, et écrivez ceci:
wiggle (2,25 )
lancez l'animation, le calque tremble doucement. Explication:

Tout comme le menu tremblement, wiggle nous demande (principalement) 2 paramètres: la fréquence, et l'amplitude.
Plus la fréquence est faible, plus le mouvement sera lent. Des fréquences comme 0.2 ou 0.5 permettent des mouvements extremement lents, ce qui évite qu'on y fasse trop attention.
L'amplitude correspond, tout comme dans le menu tremblement, à l'écart créé par wiggle par rapport à la valeur initiale créée par la clef.

Alors quelle différence avec le menu tremblement ? Et bien avec le menu tremblement, une fois que le tremblement est créé, impossible de revenir en arrière pour régler le tremblement, ou bien modifier la courbe si cela concernait une trajectoire. C'est là tout l'avantage de l'expression wiggle; vous gardez un control total de votre objet avec les clefs, et vous controlez votre tremblement séparément, en pouvant modifier à loisir l'aspect du tremblement. L'utilisation du menu tremblement devient donc quasiement obsolète.

Rentrons un peu dans le vif du sujet, et reprenons notre ligne:
wiggle(2,25)

notre objet se déplace donc doucement (fréquence 2), avec une amplitude de 25. il va donc se déplacer sur x et y de -12.5 à +12.5 par rapport à sa position initiale.
Certains doivent peut être se demander ceci:
Puisqu'apparemment les expressions sont prioritaires sur les clefs, pourquoi est ce que mon objet ne se place t il pas à al position [0,0] et tremble entre -12.5 et +12.5 ?
C'est vrai, cela suivrait la logique des expressions. Sauf que AE est malin et a prévu le coup. Tout l intéret du wiggle, c'est de faire trembler une valeur déjà existante. wiggle n'aurait aucun interet s'il faisait trembler un objet qu'on ne pourrait pas animer avec des clefs.

On peut donc dire que wiggle est une fonction qui modifie les clefs sans y toucher.

Et comme d'habitude, on peut l'appliquer à n'importe quoi: rotation, opacité, valeur de flou, échelle, paramètre de filtre... très pratique pour faire vibrer quelque chose, ou bien lui donner un coté vivant, chaotique...Infaisable avec les clefs.

Et s'il on veut faire varier la fréquence et l'amplitude dans le temps me direz vous ?
Oui oui c'est faisable, voilà comment:

Ca n'est d'ailleurs absolument pas lié au wiggle, mais à l'ensemble des expressions.

Selectionnez votre calque, allez dans effet, option pour expression, paramètre glissière. Retournez dans la timeline, et ouvrer l effet. Vous avez un seul curseur, qui s'appelle d'ailleurs "curseur". Dans la fenêtre effet, cliquez sur le mot "Paramètre glissière", appyez sur ENTREE, et changez le nom pour "frequence". Il est bon de nommer ce genre d'effet, car nous en aurons parfois 4,5 et 6, donc il est bon de savoir qui gère quoi.

Réouvrez votre expression de position, et tapez ceci:
F=
puis prenez votre corde, et attachez la à "curseur". vous aurez donc ceci:
F=effect("fréquence")("Curseur")
Rajouter le ; allez à la ligne, et écrivez:
wiggle (F,25)

On a donc l'expression suivante:
F=effect("fréquence")("Curseur");
wiggle (F,25)

Comme vous vous en doutez, cela permet de faire varier la fréquence en rajoutant des clefs à la valeur curseur.
Ici, on entre aperçoit à nouveau la force des expressions:
Un objet peut réagir tout seul à un évènement sans qu'on lui dise.
Par exemple: plus cette objet est proche de toi, plus tu trembles (nous verrons comment faire ça plus tard, c'est tres simple).

wiggle est un exemple extremement simple qui montre la puissance des expressions: en 30 secondes, vous creez un petit module qui vous permet de faire vibrer n'importe quelle valeur dans le temps, et meme de modifier le type de vibration.

Il va de soit que l'on aurait pu rajouter un nouvel effet "paramètre glissière" à notre calque, l'appeler "amplitude", et avoir donc l'expression suivante:

F=effect("fréquence")("Curseur");
A=
effect("amplitude")("Curseur");
wiggle(F, A)

On se retrouve donc avec un control de la fréquence ET de l'amplitude.
Que demande le peuple?

vendredi 21 décembre 2007

EXPRESSIONS : position rotation ...

position : ce mot fait évidemment référence à la position du calque concerné. Il en va de même pour rotation, scale (échelle), opacity , anchorPoint (point d’ancrage).

Un point important à comprendre : Lorsque l’on utilise ces mots, AE va cherche la valeur correspondante dans le calque en question.

Explication :

Créez un nouveau solide, et ouvrez les transformations dans la timeline (position, rotation…)

Créez une expression pour l’opacité, effacer l’expression écrite (transorm.opacity), cliquez-maintenez sur la spirale, et pointer sur le mot le rotation. Lâchez tout, respirez, et voyons ce qui se passe…







Tout d’abord, notre calque à disparu, en effet, son opacité est égal à 0. Tout comme la valeur de rotation. Faites tourner votre carré de 45 degrés (ou n’importe quelle valeur positive entre 0 et 100), l’opacité est maintenant égale à 45. C’EST MAGIQUE !!!!!

Comme vous l’aurez compris, vous avez demandé à ce que l’opacité soit égale à la valeur de la rotation. A noter qu’AE a écrit transform.rotation. Pourquoi pas juste rotation? Parce que la rotation fait partie des transformations. C’est une sorte de hiérarchie. Toutefois, sachez qu’étant donné la fréquence de ces mots, le transform n’est pas nécessaire.

Comprenez également que l’utilisation de la corde n’est pas obligatoire, il s’agit juste d’un moyen pour qu’AE écrive à votre place une liaison avec une autre valeur.

Effacez l’expression, et écrivez simplement le mot rotation dans l’expression de l’opacité : le résultat est le même. Par défaut, AE va donc chercher la propriété demandée DANS le même calque.

A présent, créer un autre solide, et ouvrez ses transformations dans la timeline.

Effacez le mot rotation, prenez la corde, et attachez la à la propriété rotation de L’AUTRE SOLIDE.

Vous vous retrouvez avec une expression qui ressemble à ça :

thisComp.layer("Rouge sombre uni 1").transform.rotation

oulala quelle horreur !.... Nous vous inquiétez pas, ça n’est rien de compliqué, et comme vous vous en doutez, le principale est que maintenant, l’opacité de votre calque sera égale à la valeur de rotation de l’autre calque.

C’est ici qu’apparait un des principal interet des expressions :

L’interactivité des calques entre eux.

Etant donné que dans AE, tout se fait avec les chiffres (transparence, volume du son, niveau de flou…), on comprend vite qu’on peut lier n’importe quelle valeur avec n’importe qu’elle autre.

Ici, nous avons créé une liaison simplissime, puis qu’on demandait à ce qu’une valeur soit égale à une autre.

Ces liaisons peuvent devenir plus évoluées, en voici quelques exemples :

Cliquez sur le texte de votre expression, et placez vous à la fin. Appuyez sur espace histoire de faire propre, et écrivez *2 . vous vous doutez bien du résultat, la valeur de l’opacité sera égale au double de la rotation (dans une limite de 0 à 100 bien entendu).

Car finalement, aussi longue que soit la ligne thisComp.layer("Rouge sombre uni « ).transform.rotation , il ne s’agit que d’un simple nombre.

La ligne thisComp.layer("Rouge sombre uni 1").transform.rotation * 2 est finalement équivalente à time*2 dans sa complexité/simplicité.

Voyons un moyen pour ranger un peu tout ça. En effet, on se retrouve souvent avec beaucoup de liaisons, et donc beaucoup de ligne.

Voilà ce que l’on peut écrire :

R= thisComp.layer("Rouge sombre uni 1").transform.rotation ;

R*2

Qu’ai-je fait ? Une variable. J’ai dit à AE que R est égal à la rotation de l’autre calque, puis j’ai demandé à ce que la rotation soit égal à R*2. Il s’agit donc exactement de la meme chose, mais en mieux rangé. Prenez immédiatement ce reflexe, car vous serez sinon vite perdu.

J’ai appelé R la rotation. Il s’agit d’un choix complètement libre. Vous pouvez appeler vos variables comme bon vous semble, excepté par les mots existant déjà comme time, rotation… Choisissez bien vos mots pour vous y retrouver, c’est plus pratique. On arrive vite à des expressions à 10 variables, alors si c’est pour avoir R*V/s + (G/T-L), non merci. Utilisez plutôt des mots logiques.

Notez le ; en fin de première ligne. Il indique la fin d’une phrase.

Imaginons à présent un cas :

Créez un solide carré (ou pas), et créez une expression pour la position :

R=rotation ;

[ R*2 , 200 ]





Faites tourner le solide (vers une valeur positive), le carré part à droite en meme temps. Rien de bien compliqué ici, on demande que la position sur X du carré soit égale à 2 fois la valeur de la rotation. La position sur Y est fixe, 200.

Autre possibilité (et enfin le premier cas concret d’utilisation des expressions !!!!)

Effacez toutes les expressions, et créez une autre solide (en gros il vous en faut 2)

Ouvrez les position de chaque solide.

Créez une expression pour un des deux solides, et écrivez ceci :

P=

Puis prenez votre corde préférée, et attachez la à la position de l’autre calque.

Vous Aurez donc quelque chose qui ressemble à ça :

p=thisComp.layer("Rouge sombre uni 1").transform.position;

rajoutez à la fin le ; et allez à la ligne. Rajoutez ceci :

[ p[0] , 200 ]

Maintenant, animez (ou faites juste bouger dans la compo) l’autre calque. Et hop, le 1er calque suit le mouvement, mais en restant sur une ligne horizontale.

Cela est impossible à faire avec une simple liaison parent-enfant.

Mais revenons sur ce que l’on a écrit.

P=thisComp.layer("Rouge sombre uni 1").transform.position;

[p[0],200]

La premiere ligne est simple, elle demande que P soit égal à la position de l’autre calque.

Ensuite, on a la position que l’on désire pour notre calque, à savoir [p[0],200].

Donc apparemment, x est égal à p[0], et y est égale à 200. Y=200, c'est pas compliqué.

Mais qu’elle est ce p[0] ? C’est très simple :

Une position est faite de deux valeurs, x et y. On dit donc que la position est une variable à deux dimensions. L’opacité, la rotation sont des variables à une dimension.

Donc, ce p[0] est donc égal au 1er nombre de p. si on voulait l’autre nombre de p, on aurait écrit p[1]

Si on avait écrit [ p , 200 ] , AE nous aurait gentiment craché à la gueule, car il est important de toujours fournir le bon nombre de valeur. P étant déjà un nombre à deux dimension, [ p , 200 ] n’a pas beaucoup de sens.

De la meme manière, vous ne pouvez pas écrire position dans l'expression d'opacité.

EXPRESSIONS : time

time : (et donc pas Time) Il s’agit d’une valeur qui évolue dans le temps. Sa valeur est en seconde. Par exemple, à la seconde 1 de votre composition, time vaudra 1. Time est donc évidemment extrêmement utilisé, puisque c’est lui qui permet de faire varier les nombres en fonction du temps.

Un exemple pour bien comprendre :

Cliquez dans votre expression de position du solide de tout à l’heure, effacez [200,200], et ecrivez ceci : [time,200]

Faites bouger la ligne de temps, vous verrez que le premier des deux nombres de la position du solide évolue. A la seconde 1, x vaut 1 (on considérera la position d’un objet tel que [x,y] [horizontal,verticale] ) ), à la seconde 10, x vaut 10 (ou bien time vaut 10). Dans la composition, le mouvement du solide est évidemment tres faible, puisqu’il se déplace d’un pixel par seconde.

Changeons l’expression pour ceci : [ time * 50 , 200 ] Cette fois ci, le solide se déplace vers la droite de 50 pixels à la seconde (comme vous l’aurez compris, le symbole * est celui de la multiplication). A la seconde 5, la position horizontale (x) vaut 250.

D’autres propositions :

[ time * 50 , 200 ] + [100,0] le mouvement est le même, mais au début de la composition, le carré part de 100, et non de 0.

[time,time] *50 le carré se déplace dans les deux dimensions à 50 pixels par seconde.

Pas la peine de donner plus d'exemples uniquement avec time, on le verra à l'oeuvre avec d'autres fonctions.

EXPRESSIONS : syntaxe

Dans les expressions, le vocabulaire est relativement simple, mais la syntaxe sera elle obligatoirement parfaite.

Attention !!! Les minuscules et majuscules sont très importantes, il s’agit d’une erreur de base qui vous fera détester AE si vous ne faites pas gaffe. AE vous dira tout simplemement qu'il ne connait pas le mot.

Comme je le disais, vous pouvez mettre des espaces et des retours à la ligne autant de fois que vous voulez entre les mots.

En général, une expression comporte plusieurs lignes, chaque ligne décrivant quelque chose. Chaque ligne se finit donc par un ;

Tous les mots sont en anglais, donc la syntaxe sera la meme dans AE en français et en anglais (sauf quelques cas particuliers bien chiants).

addition: +

soustraction: -

division: /

multiplication: *

EXPRESSIONS : introduction

Pourquoi s’emmerder avec écrire des expressions alors que les clefs sont si simples et si intuitives ?

Plusieurs réponses à cela ; tout d’abord, les expressions ne sont pas là pour remplacer les clefs. C’est une tout autre façon de concevoir l’animation. On s’en sert dans plusieurs cas :

-elles permettent un gain de temps énorme par rapport aux clefs.
-elles permettent de faire des animations complètement infaisables avec les clefs.
-elles permettent d’avoir un control et un potentiel de réglage bien plus riche que les clefs.

C’est pour cette dernière raison que j’en parle ici. Les expressions permettent de se créer un espace de travail modulable, où les modifications seront plus simples à traiter qu’avec les clefs.

Je ne résumerai pas l'apprentissage des expression à la description des différentes fonctions présentes; je donnerai systématiquement des exemples d'utilisation des fonctions fraîchement vues. Les exemples s'enrichiront donc au fur et à mesure.

Mais comment travailler avec les expressions ? Rien de plus simple :

Maintenez ALT, et cliquer sur le chronomètre (à gauche de la valeur) dans la timeline. Au lieu de créer une clef, cela va activer la commande d’expression pour la valeur correspondante. Voyez ce qui se passe :




On se retrouve avec 4 nouvelles icones :

-le dièse : c’est un interrupteur on/off pour l’expression.

-le graph : il permet d’avoir un graphique qui montre le comportement de l’expression dans le temps(tout comme le graph pour les clefs)

-la spirale : qui est en fait une corde, elle permet de relier facilement une valeur à une autre.

-le triangle : il sagit de la bibliothèque de tous les mots disponibles pour écrire les expressions.

Encore à droite, dans la timeline, on peut lire dans mon exemple transform.opacity. Par défaut, AE écrit l’expression qui correspond à la valeur, ici l’opacité.


Il est donc temps d’expliquer les quelques règles des expressions :

-les expressions sont prioritaires sur les clefs. Cela veut dire que si un objet a des clefs de positions ET une expression dans la valeur POSITION, after effect utilisera l’expression pour faire bouger l’objet.

-les espaces et les retour à la ligne ne sont pas lus, vous pouvez donc en mettre autant que vous voulez entre les mots , tres pratique pour structurer un minimum ce qu’on ecrit et s’y retrouver plus tard.

-les nombres sont séparés par une virgules.

-les entiers sont séparés des décimales par un point.

-un ensemble de nombres est entouré par les crochets [ ].

EXEMPLE : une position sera écrite ainsi : [126.6,50.5] ou bien pour plus de clarté [ 126.6 , 50.5 ] ,c’est la meme chose pour AE.

Un exemple en ce qui concerne la priorité des expressions sur les clefs :

Créez un solide(un carré de 50 pixels de coté par exemple), alt-cliquez sur son chrono de position, et écrivez (ou bien copiez-collez pour les fénéants) [200,200] , il suffit de cliquer quelque part dans AE pour valider l'expression

Votre solide se place à la position 200,200. Déplacez le dans la composition, il se replace aussitôt à la position 200,200. Je pense que le message est clair.

Pour ceux qui se demandent à quoi ça sert de se prendre la tête de faire tout ça pour mettre un solide à la position 200,200, garder en tête que la plupart des premiers exemples ne serviront à rien d’autre qu’à l’exemple. Nous rejoindrons par la suite la terre bénie des expressions utiles et d’une puissance insoupçonnée.


dimanche 16 décembre 2007

copier ou dupliquer

Quand vous voulez faire une copie de plusieurs calques à la fois dans une meme composition, vous avez deux choix:
ou bien vous selectionnez tous les calques concernés, et ctrl D (ou pomme D), ou bien vous faites un copié-collé.
Il existe une différence dans les resultats:
avec ctrl D, vous aurez une copie conforme de vos calques, y compris du lien parent-enfant:
si vous copiez un parent et son enfant, le nouvel enfant sera enfant non pas du nouveau parent créé, mais bien de l'ancien parent.
En revanche, avec ctrl C - ctrl V, les liens parents enfants sont gardés: votre nouvel enfant sera bien l'enfant du nouveau parent (c'est en général la réaction qu'on cherche logiquement).
Tout se finit donc bien...

rendu qui plante

Avant de rentrer dans le vif du sujet des expressions sous AE, une petite astuce qui peut etre bien utile. Parfois, lors d'un rendu de composition un peu lourde (un grand nombre de compositions, des éléments lourds en mémoire...), AE peut planter en plein rendu en parlant d'un problème de mémoire. Sur un rendu de 2h, c'est rageant. Ce probleme est directement lié à la gestion de la RAM, en voici la solution:
dans edition (ou dans le menu after sous mac), cliquer sur préférence, puis maintenez SHIFT, et cliquez sur général (maintenez bien SHIFT jusqu'à ce que le menu s'ouvre). Une fois le menu des préférences ouvert, dans le menu déroulant, un nouveau menu est apparu tout en bas, le menu secret. il s'agit d'un menu caché, pour éviter que les gens fassent des betises. Heureusement, nous n'en ferons pas; "purger toutes les ... images pendant la compilation du film". Remplacer 0 par une valeur comme 10,15 ou 20. Cela indique à AE de vider la mémoire toutes les x images, et évite ainsi tout plantage d'AE lors des rendus. Le ralentissement du rendu est négligeable. En général, une valeur entre 10 et 20 devrait régler tous vos soucis.

mercredi 12 décembre 2007

bienvenue

Ouverture du blog du freelance saucisse !
Non pas un blog sur ma vie mes passions "kikoo ma nounou je t'aime trop, t'es trop belle, tu me manques trop" et que sais-je.

Ce blog s'efforcera d'apporter à toi, petit bonhomme derrière ton écran, le maximum d'aide et de techniques pour mener à bien tes projets graphiques, en particulier sous after effect.

Je commencerai par un chapitre en général très mal connu, celui des expressions.
j'avancerai pas à pas, pour ne faire peur à personne, mais étant donné la puissance de l'outil et le nombre collosal d'heures gagnées, ne nous privons pas.

samedi 1 décembre 2007

cuit à point

La cuisson prend fin. C'est la naissance du freelance saucisse, tout chaud.