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

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

Interpolation et lissage d'images clés