【えすぶいじーあにめーしょん】

SVGアニメーション とは?

💡 ベクター画像を「滑らかに動かす」Web技術
📌 このページのポイント
SVGアニメーション ― ベクターを動かす技術 主なアニメーション手法 SMIL SVG内に直接記述 <animate>タグ CSSアニメーション @keyframesで制御 transition / animation JavaScript プログラムで制御 GSAP / Web Animations SVGアニメーションの利点 拡大しても綺麗 ベクター形式 軽量 GIF/動画より小さい インタラクティブ クリックで反応 アクセシブル テキスト選択可能
SVGアニメーションのイメージ
ひよこ ひよこ

CSSアニメーションと何が違うの?

ペンギン先生 ペンギン先生

CSSアニメーションHTML要素全般を動かせる。SVGアニメーションはSVG内部のパス、図形、テキストを個別に動かせる。例えばロゴの各パーツが順番に描かれる「ストロークアニメーション」はSVGならでは。stroke-dasharrayとstroke-dashoffsetを使うと、文字が書かれていくような演出ができるんだよ

ひよこ ひよこ

どうやって作る?

ペンギン先生 ペンギン先生

3つの方法がある。①CSS(@keyframesとtransformで回転・移動・拡大)が最もシンプル、②SMIL(SVG内にanimate要素を書く)はSVGネイティブだけどChromeで一時非推奨になり復活した経緯がある、③JavaScript(GSAP、Anime.js、Framer Motion)が最も高機能で複雑なシーケンスアニメーションに向くよ

ひよこ ひよこ

Lottieとの使い分けは?

ペンギン先生 ペンギン先生

LottieはAfter Effectsで作ったアニメーションをJSONで書き出してWebで再生する形式。デザイナーがAEで作る複雑なアニメーションならLottie、エンジニアがコードで制御するシンプルなアニメーションならSVG+CSS/JS。LottieはJSONファイルが大きくなりがちで、ライブラリの読み込みも必要。SVGはネイティブで動くよ

ひよこ ひよこ

おもしろい!パフォーマンスは?

ペンギン先生 ペンギン先生

SVGアニメーションはGPU描画が効くtransformとopacityの変更なら60fps安定。ただしSVG内のpath要素が数千個あると重くなる。対策は①不要なアンカーポイントを減らす(SVGOで最適化)、②will-changeでGPUレイヤーを確保、③画面外のアニメーションはIntersection Observerで停止。canvasベースのアニメーションと比べてDOMアクセスできるのが強みだよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「SVGアニメーション」って出てきたら「ベクター画像をWebで動かす技術」と思えればだいたいOK!
📖 おまけ:英語の意味
「SVG Animation」 = SVGアニメーション
💬 Scalable Vector Graphics(拡大縮小可能なベクター画像)にアニメーションを加えるよ
← 用語集にもどる