Voici les façons possibles d'animer un svg:
SVG SMIL ANIMATIONS
Le SVG peut être animé via son puissant langage de balisage natif, appelé SMIL, exporté directement à partir d'outils d'animation comme le plugin Adobe Animate CC + flash2svg.
Pour animer un SVG avec SMIL même sur des navigateurs ne prenant pas en charge, il vous suffit d'utiliser un polyfill SMIL.
Un polyfill est un morceau de code javascript spécial qui prend en charge les fonctionnalités manquantes d'un navigateur, traduisant l'encodage d'origine en un que le navigateur peut comprendre.
Le polyfill SMIL créé par Eric Willigers fait exactement cela: il traduit SMIL en API Web Animations que même le navigateur Microsoft prend en charge. Il est si efficace que les développeurs de Google Chrome ont décidé d'abandonner le support natif de SMIL et de se concentrer sur les animations Web, laissant au polyfill Eric Willigers la tâche de lire les fichiers SMIL dans Chrome.
Quelqu'un a mal interprété cela comme une dépréciation de SMIL par Chrome, et a critiqué les développeurs pour ce choix. Mais ce n'était pas une véritable dépréciation, juste une délocalisation du travail d'interprétation de SMIL au niveau du polyfill.
En fait, les développeurs Chrome eux-mêmes ont cité le polyfill Willigers dans l'annonce très officielle de leur intention de déprécier SMIL.
Donc, si vous lisez sur le Web la fin de SMIL, ne vous inquiétez pas. La «mort» de SMIL a été grandement exagérée. Cela ressemble plus à une renaissance.
Pour utiliser SMIL sur tous les navigateurs, y compris IE et EDGE, il vous suffit d'ajouter ce polyfill javascript à votre page Web:
https://github.com/ericwilligers/svg-animation
Voici une page de démonstration utilisant le polyfill fabriqué par Tom Byrne, l'auteur du populaire exportateur flash2svg:
la page sans le polyfill:
http://www.tbyrne.org/staging/smil-polyfill/tears.htm
et la même page avec le polyfill:
http://www.tbyrne.org/staging/smil-polyfill/tears_polyfill.htm
Si vous regardez la source, elle est à peu près explicite.
De plus, les performances avec le polyfill sont souvent meilleures que le SMIL d'origine, car sur de nombreux navigateurs Web Animations est accéléré matériellement, alors que SMIL ne l'est généralement pas.
ANIMATIONS D'EXPORTATION DANS SVG SMIL
La façon la plus simple de créer des animations SVG consiste à utiliser des outils comme Adobe Animate CC pour les dessiner et des plugins comme Flash2svg ( https://github.com/TomByrne/Flash2Svg ) pour les exporter en SVG. Avec lui, vous pouvez exporter presque toutes les animations + sons en un seul fichier SVG, comme cet épisode de dessin animé:
http://www.tbyrne.org/portfolio/smil/LoveDota.svg
BIBLIOTHÈQUES SVG ANIMATION JS
La manière javascript est plus compliquée. Tout d'abord, vous devez être un programmeur javascript. Ensuite, vous devez choisir entre de nombreuses bibliothèques. Les plus populaires sont:
SnapSVG
http://snapsvg.io
Cette bibliothèque est le successeur de l'ancienne et populaire bibliothèque d'animation Raphael réalisée par le même auteur. Très stable, mais il convertit SVG dans un format interne au moment de l'exécution pour l'animer. Les options de morphing sont également très basiques, juste une interpolation linéaire. (REMARQUE: il existe également un plugin snap.svg pour Adobe Animate CC, mais les fichiers exportés sont gonflés. L'exportateur produit une commande snap svg pour chaque image de l'animation, pas chaque image clé, produisant un fichier svg de 18 Ko avec plus de 1000 lignes de code, juste pour faire pivoter un simple rectangle de 360 degrés. Le plugin Flash2svg est beaucoup plus efficace, juste une commande et quelques octets pour faire le même travail).
Greensock MorphSVG
http://greensock.com/morphSVG
Une bibliothèque de morphing complète qui permet d'animer facilement SVG, et sans avoir besoin de les convertir dans un format interne. Il vous suffit de créer 3 à 4 images clés svg dans Inkscape et la bibliothèque Greenock SVGMorphing interpolera automatiquement entre les images et créera toutes les images intermédiaires pour une lecture fluide. Voici un exemple:
http://codepen.io/Emasoft/pen/reOqYE
3D Seen.js
http://seenjs.io/demo-svg-canvas.html
Si vous souhaitez animer en 3D cette bibliothèque est très puissante.
Seen.js rend les maillages des fichiers .obj 3D en SVG et les anime très facilement.
ÉDITEURS D'IMAGES SVG
Quant aux outils, vous pouvez créer les images clés d'animation principalement avec trois logiciels:
Inkscape: open source, a des tonnes de fonctionnalités, c'est un package d'édition vectorielle avancé créé par des personnes participant au groupe de travail SVG. La référence pour le format SVG. Pas facile à apprendre.
Adobe Illustrator: logiciel de dessin vectoriel commercial très puissant, il offre de nombreuses fonctionnalités non encore prises en charge par SVG, mais il a également la pire compatibilité avec le format. Vous devrez souvent modifier manuellement le fichier SVG exporté pour corriger le désordre de l'illustrateur. Mais il est très populaire dans les écoles d'art, et tous les graphistes savent comment l'utiliser.
Affinity Designer: il s'agit d'un logiciel commercial comme Illustrator, mais avec une excellente compatibilité SVG, presque au niveau d'Inkscape. L'interface utilisateur est beaucoup plus conviviale et devient maintenant très populaire parmi les artistes SVG.
ÉDITEURS D'ANIMATION SVG
Actuellement, le seul éditeur d'animation SVG est le suivant:
- Adobe Animate CC: l'ancien Adobe Flash Pro a été entièrement réécrit par Adobe pour migrer des animations flash désormais obsolètes vers les animations SVG modernes. Vous pouvez exporter les animations SVG résultantes avec une bibliothèque javascript personnalisée, ou choisir d'enregistrer en SVG + SMIL en utilisant des plugins comme "flash2svg". Cette dernière option est très efficace, je l'utilise toujours à la place de l'exportateur natif gonflé.
Vous pouvez télécharger le plugin gratuit ici:
https://github.com/TomByrne/Flash2Svg
Ou installez-le à partir du panneau Adobe Plugins:
https://creative.adobe.com/addons/products/7232
Malheureusement, Adobe Animate CC est commercial. Il existe des applications d'animation alternatives open source gratuites, mais je les ai toutes essayées et elles sont toujours nulles à mon humble avis. Espérons pour l'avenir.
Références:
Mon article de blog plus exhaustif sur le sujet: https://medium.com/@fmuaddib/the-following-are-the-possible-ways-to-create-professional-animations-in-svg-9d4caca5f4ec
L'affaire référencée sur snap.svg:
/programming/35727635/adobe-animate-snap-svg-plugin-huge-files