Les keyframes définissent des valeurs de propriété spécifiques à des moments précis, avec une interpolation entre elles pour créer des animations fluides.
| Propriété | Type | Requis | Exemple | Plage de valeurs | Description |
|---|---|---|---|---|---|
| id | string | true | - | - | L'identifiant unique du keyframe. |
| time | number | true | - | - | Le moment auquel le keyframe se produit, en secondes (par rapport au temps de début de l'élément). |
| stateObj | object | true | - | - | L'objet d'état contenant les valeurs de propriété à ce keyframe. Peut inclure toute propriété animable comme x, y, rotation, scaleX, scaleY, alpha, etc. |
| cp1 | object | false | - | - | Le premier point de contrôle pour l'assouplissement de la courbe Bezier. Les coordonnées sont normalisées (plage 0-1). Exemple : {x: 0.25, y: 0.1} |
| cp2 | object | false | - | - | Le deuxième point de contrôle pour l'assouplissement de la courbe Bezier. Les coordonnées sont normalisées (plage 0-1). Exemple : {x: 0.25, y: 1} |
Les propriétés cp1 et cp2 définissent une courbe Bezier cubique pour un assouplissement personnalisé entre les keyframes :
cp1: {x: 0.42, y: 0}, cp2: {x: 0.58, y: 1}cp1: {x: 0.42, y: 0}, cp2: {x: 1, y: 1}cp1: {x: 0, y: 0}, cp2: {x: 0.58, y: 1}{
"id": "39ecb75a-3490-43bd-84c2-72366c2f39f2",
"type": "Image",
"start": 0,
"duration": 5,
"trackIndex": 0,
"x": 0,
"y": 0,
"blendMode": "normal",
"anchorX": 1302,
"anchorY": 2312,
"rotation": 0,
"scaleX": 0.23356401384083045,
"scaleY": 0.23356401384083045,
"alpha": 1,
"skewX": 0,
"skewY": 0,
"keyframes": [
{
"id": "800350bd-4a24-4440-904c-ec08a8159508",
"time": 0,
"stateObj": {
"alpha": 0
},
"cp1": {
"x": 0.25,
"y": 0.1
},
"cp2": {
"x": 0.25,
"y": 1
}
},
{
"id": "ce3f9b10-2b9e-4266-8cdb-77167f9f16aa",
"time": 3,
"stateObj": {
"alpha": 1
},
"cp1": {
"x": 0.25,
"y": 0
},
"cp2": {
"x": 0.25,
"y": 0.9
}
}
],
"externalUrl": "https://images.pexels.com/photos/30465303/pexels-photo-30465303.jpeg",
"ext": "jpeg"
}
Lorsqu'un élément a plusieurs méthodes d'animation appliquées :
keyframes) - animations de propriété standardanimations) - animations avancées comme les expressions, les chemins, les séquencesSi la même propriété est animée par plusieurs méthodes, l'ordre de priorité est :
Cela permet aux animations avancées de remplacer les valeurs des keyframes si nécessaire.
time des keyframes sont relatives au temps de start de l'élément, pas au temps absolu de la timeline.stateObj.cp1 et cp2.fill, stroke) sont interpolées dans l'espace RGB.