Création de calque
Comme nous le savons, les calques que l'on crée dans After Effects
peuvent être de différente nature : une caméra, une lumière, un solide (un calque d'effets si l'option est cochée)
ou encore une composition. Le cas de la composition a été vu dans la partie précédente, penchons nous
donc maintenant sur la création d'autres types de calque.
Comme pour la création d'une composition dans un projet,
nous n'allons pas directement ajouter un calque à l'objet composition mais plutôt
à sa collection de calques, cette collection s'appelle layers.
Création d'un solide
Nous ajouterons un solide grâce à la méthode addSolid(). Cette méthode prend en compte 6
paramètres pour créer un solide : sa couleur, son nom, sa largeur, sa hauteur, les format de ses pixels
et sa durée (si la durée n'est pas spécifiée, elle sera par défaut égale à celle de la composition
dans laquelle le solide est créé).
En supposant que nous ayons déjà créé une composition et qu'elle est active (fenêtre en surbrillance),
nous écrirons par exemple cela pour la stocker dans une variable :
myComp = app.project.activeItem;
Nous ajoutons maintenant un nouveau solide nommé "monSolide", de couleur #97BC9E ou [151,188,158]
(dans le scripting chaque couleur doit être exprimée sur une échelle de 0 à 1, c'est pourquoi nous allons devoir les diviser par 255),
de taille 160*120, avec un format de pixel carré et d'une durée de 10s. Nous stockons
ce solide dans une variable "mySolid" :
mySolid = myComp.layers.addSolid([151/255,188/255,158/255],"monSolide",160,120,1,10);
Création d'un calque texte
La création d'un calque texte se fera par la méthode addText(). Elle prend en paramètre la chaîne de caractères à afficher.
Cette chaîne est facultative, si l'on ne précise rien on crée simplement un calque de texte vide. Il ne semble pas possible par le scripting de choisir
sa police ou la taille des caractères par exemple, ceux-ci seront identiques à ceux utilisés dans le projet précédent.
myTextLayer = myComp.layers.addText("www.nabscripts.com");
Nous mentionnons qu'il est possible d'afficher la date grâce à l'objet Javascript Date(). Il retourne la date correspondant au moment où l'objet a été appelé.
Nous aurons par exemple :
myDateLayer = myComp.layers.addText(Date());
Création d'une caméra
On pourra ajouter une caméra grâce à la méthode addCamera(). Elle nécessite deux paramètres pour fonctionner : le premier est le nom à attribuer au calque
et le deuxième correspond aux coordonnées du "Point ciblé" de la caméra (x et y uniquement) qu'on exprimera sous forme d'un tableau contenant ces deux valeurs.
Nous écrirons par exemple :
myCamera = myComp.layers.addCamera("maCaméra",[160,120]);
Création d'une lumière
D'une façon similaire on utilisera la méthode addLight() pour créer une nouvelle lumière. Cette méthode nécessite les mêmes paramètres qu'une caméra.
myLight = myComp.layers.addLight("maLumière",[160,120]);
Création d'un objet nul
La création d'un objet nul se fera par l'intermédiaire de la méthode addNull() qui prend en paramètre la durée en secondes du calque. Ce paramètre est facultatif.
myNull = myComp.layers.addNull(10);
Précomposition de calques
Nous terminerons cette partie par la méthode precompose(), qui comme son nom l'indique va nous permettre de précomposer un ensemble de calques.
Elle agit également sur la collection "layers".
Elle prend en paramètres un tableau d'indices (ceux des calques à précomposer), le nom de la composition qui va être créée et éventuellement une
indication 'true' ou 'false' pour indiquer l'option "Transférer tous les attributs..." ou non (celle-ci est 'true' par défaut).
Prenons un exemple, supposons que nous ayons un ensemble de calques dans notre composition,
et que nous voulions précomposer tous les calques ayant un numéro impair et ne pas toucher aux autres. Nous pourrions alors écrire quelque chose comme cela : la première instruction sert à déclarer un nouveau tableau et
"myComp.numLayers" représente le nombre de calques dans la composition; notre tableau d'indices va être rempli au fur et à mesure et sa taille "length" va augmenter dès lors que "i" sera impair (i.e. dont la valeur modulo 2 est égale à 1)
layerIndices = new Array();
for(i = 1; i <= myComp.numLayers; i++) {
if (i%2 == 1) layerIndices[layerIndices.length] = i;
}
myComp.layers.precompose(layerIndices,"maPrécomp",true)
|