Scripting/Effets & Clés/Création d'image clé
Création d'image clé
Pour créer des images clés sur une propriété, on peut utiliser soit la méthode
setValueAtTime()
qui nécessite deux paramètres: l'instant où doit être placée
la clé et la valeur à lui affecter, soit setValuesAtTimes()
, qui fonctionne sur
le même principe mais qui permet d'ajouter plusieurs clés à la fois (les paramètres sont donc des tableaux).
L'accès aux propriétés géométriques d'un calque peut se faire soit en utilisant property()
,
soit directement en précisant le nom de la propriété (par exemple myLayer.property("position")
ou myLayer.position
).
L'exemple suivant anime l'échelle et la rotation du premier calque de la composition. La composition dure 4s, elle est de taille 320*240, et le solide est légèrement plus petit, 200*200. On commence par récupérer dans des variables le solide ainsi que les deux propriétés à animer:
mySolid = app.project.activeItem.layer(1); myScale = mySolid.scale; myRotation = mySolid.rotation;
Pour ajouter des images clés, on peut écrire cela (méthode lente):
myScale.setValueAtTime(0,[0,0]); myScale.setValueAtTime(2,[70,70]); myScale.setValueAtTime(4,[0,0]); myRotation.setValueAtTime(0,0); myRotation.setValueAtTime(2,-180); myRotation.setValueAtTime(4,-360);
ou de façon équivalente (méthode rapide):
keyTimes = [0,2,4]; scaleValues = [[0,0],[70,70],[0,0]]; rotationValues = [0,-180,-360]; myScale.setValuesAtTimes(keyTimes, scaleValues); myRotation.setValuesAtTimes(keyTimes, rotationValues);
Création d'images clés
Interpolation et lissage
Il est possbile de paramétrer l'interpolation et le lissage d'images clés. Pour définir un type
d'interpolation pour une image clé, on peut avoir recours à la méthode
setInterpolationTypeAtKey()
qui prend en paramètres l'index de la clé
à modifier, le type d'interpolation en entrée et le type d'interpolation en sortie. Si ce dernier
paramètre n'est pas précisé, il sera considéré comme ayant la même valeur que le type spécifié en entrée. La
valeur d'un type d'interpolation peut être KeyframeInterpolationType.LINEAR
,
KeyframeInterpolationType.BEZIER
ou KeyframeInterpolationType.HOLD
,
respectivement pour une interpolation linéaire, Bézier ou maintien.
Si l'on souhaite par exemple définir pour les images clés d'échelle le type d'interpolation Bézier en entrée
et en sortie, on peut écrire cela (l'attribut numKeys
indique le nombre d'images clés
que comporte une propriété):
for (i = 1; i <= myScale.numKeys; i++) { myScale.setInterpolationTypeAtKey(i, KeyframeInterpolationType.BEZIER); }
On peut contrôler le lissage temporel d'une image clé avec la méthode
setTemporalEaseAtKey()
. Il faut préciser l'index de la clé ainsi que les
paramètres de lissage à l'approche et à l'éloignement (sous forme de tableaux). Si le paramètre de
lissage à l'éloignement n'est pas précisé il sera considéré comme identique à celui du lissage à l'approche.
Un paramètre de lissage correspond à un objet KeyframeEase()
, lequel est
déterminé par la vitesse et l'influence de l'image clé. Le paramètre d'influence s'exprime sur une échelle
de 0 à 100.
L'exemple suivant illustre un lissage des images clés de rotation:
myEase = new KeyframeEase(1,30); for (i = 1; i <= myRotation.numKeys; i++) { myRotation.setTemporalEaseAtKey(i, [myEase]); }
Interpolation et lissage d'images clés
